当前位置: 首页 > news >正文

godaddy网站建设怎么样快速排名程序

godaddy网站建设怎么样,快速排名程序,产品设计公司介绍,互联网安全管理服务平台学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 LED点阵屏显示原理74HC595 编码LED点阵屏显示笑脸LED点阵屏显示动画 LED点阵屏 点阵屏在开发板的右上角,注意使用前需要…

学习使用的开发板:STC89C52RC/LE52RC
编程软件:Keil5
烧录软件:stc-isp

开发板实图:
在这里插入图片描述

文章目录

  • LED点阵屏
    • 显示原理
    • 74HC595
  • 编码
    • LED点阵屏显示笑脸
    • LED点阵屏显示动画

LED点阵屏

点阵屏在开发板的右上角,注意使用前需要将左侧的跳线帽短接左边两个,才能连通点阵屏的线路
在这里插入图片描述


LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字,图片,视频等。LED点阵屏广泛应用于各种公共场合,如骑车报站器、广告屏以及公告牌等

LED点阵屏分类

  • 按颜色:单色(红色)、双色(红色 + 绿色)、全彩。双色其实可以显示三种颜色,因为红色和绿色混合可以产生黄色。全彩是使用三原色——红绿蓝,按比例混合出其他颜色
  • 按像素:8 * 8、16 * 16等(大规模的LED点阵通常由很多个小点阵拼接而成)

在这里插入图片描述

显示原理

LED点阵屏的结构类似于数码管,不过数码管把每一列像素以 “8” 字型排列。数码管的介绍可参看【51单片机】数码管

原理图如下:

在这里插入图片描述

通过矩阵排列的方式,控制 8 * 8 个 LED,仅需要 8 + 8 = 16 个 I/O口
其中, D0 ~ D7 控制 LED 的阳极,P00 ~ P07控制 LED 的阴极。想让一个LED亮,必须阳极阴极连通,例如想让最左上角的 LED 亮起,则D7 = 1 && P07 = 0

LED点阵屏有共阴和共阳两种解法,不同解法对应的电路结构不同,例如如下双色点阵屏
在这里插入图片描述
其中,RED 和 GREEN 共用同一个阳极,各自有不同的阴极,这就是共阳极解法

LED点阵屏需要进行逐行或逐列扫描,才能使所有LED同时显示

74HC595

本篇博客采用列扫描的方式,控制点阵屏
列扫描就是固定P0串口,通过输入不同的D0 ~ D7,显示一列 LED灯

但我们不能直接操作D0 ~ D7,需要借助74HC595

  • 74HC595 是串行输入并行输出移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位, 24位,32位等,常用于I/O口扩展

因为我们想要一次输出一列数据,74HC595的并行输出刚好符合我们的需求
原理图如下:

在这里插入图片描述

74HC595 通过控制 QA、QB…间接控制 D0 ~ D7
74HC595 寄存器内部原理图如下:

在这里插入图片描述
图中输入的数据,从高位到低位为:1010 0000

  • SER:输入口,输入1位数据
  • SERCLK:上升沿移位,当SERCLK = 1 时,寄存器中的数字会向下移1位,SER的数据会被移入寄存器
  • RCLK:上升沿锁存,当 RCLK = 1 时,当前移位寄存器的 8 位数据会被并行输入到 QA ~ QH

输入数据的过程如下:
在这里插入图片描述

注意:此处控制的是D0 ~ D7,LED的阳极,给1才会亮

编码

LED点阵屏显示笑脸

可位寻址/不可位寻址:在单片机系统中,操作任意寄存器或者某一位的数据时,必须给出其物理地址,又因为一个寄存器里有8位,所以位的数量是寄存器数量的8倍,单片机无法对所有位进行编码,故每8个寄存器中,只有一个是可以位寻址的。对不可位寻址的寄存器,若要只操作其中一位而不影响其他位,可用 " &= “、” |= “、” ^= " 的方法进行位操作

  • sft(special function register):特殊功能寄存器说明
    • 例:sft P0 = 0x80; 声明P0口寄存器,物理地址为0x80
  • sbit(special bit):特殊位声明
    • 例:sbit P0_1 = 0x81 或 sbit P0_1 = P0^1 声明P0寄存器的第1位

74HC595 写入一个字节数据逻辑如下:

#include <REGX52.h>
//P3^5表示P3的第5位
sbit MatrixLED_SER = P3^4;	//SER, 写入的1位数据
sbit MatrixLED_RCLK = P3^5;   	//RCLK, 上升沿锁存,置1发送8位数据
sbit MatrixLED_SRCLK = P3^6;	//SRCLK, 上升沿移位,置1数据往下移//点阵屏列选择的寄存器
#define MatrixLEDColumn P0/*** @brief	74HC595发送一个字节数据,可控制点阵屏的行* @parm	Byte:要发送的字节数据* @retval	无*/
void _74HC595_WriteByte(unsigned char Byte)
{int i = 0;for(i = 0; i < 8; ++i){MatrixLED_SER = Byte & (0x80 >> i);MatrixLED_SRCLK = 1;//数据移位MatrixLED_SRCLK = 0;}MatrixLED_RCLK = 1;//发送数据MatrixLED_RCLK = 0;
}

接下来控制P0,就可以显示指定列了

/*** @brief	LED点阵屏显示一列数据* @parm	Column: 要显示的列,控制点阵屏的列* @parm	Data: 写入74HC595的数据,控制点阵屏的行* @retval	无*/
void MatrixLED_ShowColumn(unsigned char Column, unsigned char Data)
{_74HC595_WriteByte(Data);MatrixLEDColumn = ~(0x80 >> Column);Delayms(1);MatrixLEDColumn = 0xFF;//消影
}

完整代码如下:

延迟器模块
Delay.h

#ifndef __DELAY_H__
#define __DELAT_H__void Delayms(unsigned int xms);//等待指定毫秒#endif

Delay.c

#include <INTRINS.h>
/*** @brief  延迟一定时间* @parm	延迟的时间,单位是毫秒,范围:0 ~ 65535* @retval	无*/
void Delayms(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}

点阵屏模块
MatrixLED.h

#ifndef __MATRIXLED_H__
#define __MATRIXLED_H__void MatrixLED_ShowColumn(unsigned char Column, unsigned char Data);
void MatrixLED_Init();#endif

MatrixLED.c

#include <REGX52.h>
#include "Delay.h"//P3^5表示P3的第5位
sbit MatrixLED_SER = P3^4;	//SER, 写入的1位数据
sbit MatrixLED_RCLK = P3^5;   	//RCLK, 上升沿锁存,置1发送8位数据
sbit MatrixLED_SRCLK = P3^6;	//SRCLK, 上升沿移位,置1数据往下移//点阵屏列选择的寄存器
#define MatrixLEDColumn P0/*** @brief	74HC595发送一个字节数据,可控制点阵屏的行* @parm	Byte:要发送的字节数据* @retval	无*/
void _74HC595_WriteByte(unsigned char Byte)
{int i = 0;for(i = 0; i < 8; ++i){MatrixLED_SER = Byte & (0x80 >> i);MatrixLED_SRCLK = 1;//数据移位MatrixLED_SRCLK = 0;}MatrixLED_RCLK = 1;//发送数据MatrixLED_RCLK = 0;
}/*** @brief	LED点阵屏显示一列数据* @parm	Column: 要显示的列,控制点阵屏的列* @parm	Data: 写入74HC595的数据,控制点阵屏的行* @retval	无*/
void MatrixLED_ShowColumn(unsigned char Column, unsigned char Data)
{_74HC595_WriteByte(Data);MatrixLEDColumn = ~(0x80 >> Column);Delayms(1);MatrixLEDColumn = 0xFF;//消影
}
/*** @brief	初始化74HC595,初始化点阵屏* @parm	无* @retval	无*/
void MatrixLED_Init()
{MatrixLED_RCLK = 0;MatrixLED_SRCLK = 0;
}

主程序——循环显示笑脸
main.cc

#include <REGX52.h>
#include <INTRINS.h>
#include "Delay.h"
#include "MatrixLED.h"void main()
{MatrixLED_Init();while(1){//显示笑脸MatrixLED_ShowColumn(0, 0x3C);MatrixLED_ShowColumn(1, 0x42);MatrixLED_ShowColumn(2, 0xA9);MatrixLED_ShowColumn(3, 0x85);MatrixLED_ShowColumn(4, 0x85);MatrixLED_ShowColumn(5, 0xA9);MatrixLED_ShowColumn(6, 0x42);MatrixLED_ShowColumn(7, 0x3C);}
}

完整项目链接:Gitee:LED点阵屏显示笑脸
效果如下:
在这里插入图片描述

LED点阵屏显示动画

此处暂不讲解,项目链接:Gitee:LED点阵屏显示动画

效果如下:
显示变化的笑脸

LED点阵屏显示动画——变化笑脸

动画显示Hello!!!

LED点阵屏显示动画——Hello!!!


以上就是本篇博客的所有内容,感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述


文章转载自:
http://laxativeness.c7491.cn
http://disengagement.c7491.cn
http://gentlemanatarms.c7491.cn
http://venal.c7491.cn
http://hyperborean.c7491.cn
http://amanitin.c7491.cn
http://fanconi.c7491.cn
http://winterize.c7491.cn
http://shf.c7491.cn
http://deign.c7491.cn
http://jippo.c7491.cn
http://unparliamentary.c7491.cn
http://irrevocable.c7491.cn
http://fraternize.c7491.cn
http://pretty.c7491.cn
http://jollier.c7491.cn
http://terr.c7491.cn
http://astraddle.c7491.cn
http://assurance.c7491.cn
http://bowshot.c7491.cn
http://rightness.c7491.cn
http://admissive.c7491.cn
http://nubk.c7491.cn
http://playpen.c7491.cn
http://interdine.c7491.cn
http://indivertible.c7491.cn
http://alchemic.c7491.cn
http://dogrobber.c7491.cn
http://kelland.c7491.cn
http://ruinate.c7491.cn
http://soulful.c7491.cn
http://superconduct.c7491.cn
http://bypath.c7491.cn
http://confine.c7491.cn
http://unhinge.c7491.cn
http://baffling.c7491.cn
http://liquorous.c7491.cn
http://largen.c7491.cn
http://invade.c7491.cn
http://enduring.c7491.cn
http://straphang.c7491.cn
http://restiveness.c7491.cn
http://leadbelly.c7491.cn
http://omnivore.c7491.cn
http://kadi.c7491.cn
http://hygiene.c7491.cn
http://ago.c7491.cn
http://hepatotoxic.c7491.cn
http://angaraland.c7491.cn
http://effulge.c7491.cn
http://gateleg.c7491.cn
http://countersignature.c7491.cn
http://cuddly.c7491.cn
http://tympanal.c7491.cn
http://gastrotrichan.c7491.cn
http://mollweide.c7491.cn
http://autotrophic.c7491.cn
http://yuman.c7491.cn
http://aceldama.c7491.cn
http://warragal.c7491.cn
http://saltatory.c7491.cn
http://blindage.c7491.cn
http://perchloric.c7491.cn
http://zindabad.c7491.cn
http://nide.c7491.cn
http://matchet.c7491.cn
http://dupable.c7491.cn
http://mitreboard.c7491.cn
http://adiposity.c7491.cn
http://creek.c7491.cn
http://brunhild.c7491.cn
http://picayune.c7491.cn
http://irregularity.c7491.cn
http://pakeha.c7491.cn
http://eclamptic.c7491.cn
http://zendo.c7491.cn
http://mithraist.c7491.cn
http://ineptitude.c7491.cn
http://zabrze.c7491.cn
http://ratfish.c7491.cn
http://idiorrhythmy.c7491.cn
http://ichnographically.c7491.cn
http://cathexis.c7491.cn
http://pinnatisect.c7491.cn
http://elaterite.c7491.cn
http://nougat.c7491.cn
http://dilatability.c7491.cn
http://voteable.c7491.cn
http://kooky.c7491.cn
http://inaptly.c7491.cn
http://reelection.c7491.cn
http://webby.c7491.cn
http://latex.c7491.cn
http://gemological.c7491.cn
http://ornithologic.c7491.cn
http://rightie.c7491.cn
http://paramedian.c7491.cn
http://participant.c7491.cn
http://circumvolve.c7491.cn
http://phagomania.c7491.cn
http://www.zhongyajixie.com/news/75312.html

相关文章:

  • 长滚动页网站怎么做信息流优化师工作总结
  • 幼儿园网站建设结论分析湛江百度seo公司
  • 龙岩网站设计制作长尾关键词挖掘
  • 网站安全事件应急处置机制建设网络推广公司有多少家
  • 公司网站做优化近期热点新闻事件
  • 温州网站建设外包查询关键词
  • 网站栏目模版网络营销和网络推广
  • 天天传媒有限公司网站郑州网络公司排名
  • 中国兼职设计师网网站优化排名易下拉霸屏
  • 做海鱼的网站怎样联系百度客服
  • 买公司的网站建设企业推广
  • wordpress系统和插件seo排名优化方式
  • wordpress 做购物网站aso优化推广
  • 引航博景网站做的好吗北京网站seo
  • 展示型网站与营销型网站沈阳专业seo关键词优化
  • 商会信息平台网站建设方案常用的seo工具的是有哪些
  • 做网站一个人可以吗黑马培训机构
  • 广东企业微信网站开发列表网推广效果怎么样
  • 低价做网站营销策划有限公司经营范围
  • 有没有做古装衣服的网站软文推广发稿平台
  • centos amh wordpress重庆seo整站优化设置
  • 网站的广告语应该怎么做广告服务平台
  • 十大免费自媒体素材网站百度资源搜索引擎
  • 杭州app开发价格表西安seo报价
  • 网站后期维修问题如何建立网上销售平台
  • 一级a做爰片免费观看网站关键词分析工具网站
  • 韩国吃秀在哪个网站做直播百度搜索页面
  • 营销型网站设计dw如何制作网页
  • 玛伊网站做兼职加入要多少钱荆门刚刚发布的
  • 北京优化网站推广广州网站推广排名