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

北京网站建设公司网站优化资讯免费网站建站 知乎

北京网站建设公司网站优化资讯,免费网站建站 知乎,太原seo排名优化公司,合肥计算机培训机构9.1LED点阵屏 1.LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。 2.LED点阵屏工作原理 LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已。原理图如下 每一行的阳极连在一起,每一列…9.1LED点阵屏 1.LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。 2.LED点阵屏工作原理 LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已。原理图如下 每一行的阳极连在一起,每一列的阴极连在一起 LED点阵屏需要进行逐行或逐列扫描(扫描的速度很快),才能使所有LED同时显示 例如,要想显示第二行第二列的LED灯,只需将DPg置1,其余行置0,P06置0,其余列置1,即可 尽管使用8*8的矩阵来控制64个LED等,但16个10口还是比较多的,并且也不能直接使用16个10口,因为本单片机IO口输出是弱上拉的, 输出高电平的电流较小,输出低电平的电流较大(正常),所以如果直接用16个10口的话,LED点阵屏的每一行的输出的电流较小,会使每个的灯光较暗。 于是本开发板使用了74HC595模块来控制A1-A8这8行的I0口,74HC595模块原理图如下,使用P34、P35、P36三个10口来控制8个10口 的输出。J24模块在LED点阵屏的左上方。 3.74HC595 74HC595是串行输入并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位 等,常用于IO口扩展。 OE:输出使能,低电平有效,接GND,即使用跳线帽将J24的OE和GND连起来 RCLK:寄存器时钟 SRCLR:串行清零,接VCC,表示不清空数据 SRCLK:串行时钟,用于输入串行数据 SER: 串行数据输入端 QH’:用于多片级联,接到下一个74HC595的SER口 74HC595工作原理: 74HC595工作原理简图如下: 该模块可用于数据串行输入,并行输出 左边是个移位寄存器,SER输入一位数据,SERCLK在上升沿到来时,将移位寄存器的数据向下移动一位,之后SER再输入一位数据,在SERCLK时钟的上升沿时移位,数据填满移位寄存器后,在RCLK的上升沿到来时,将该寄存器的数据复制到右边的数据缓冲寄存器中,即为输出的数据。同时数据也可以通过QH‘输出到下一个74HC595的SER口作为串行数据输入。 4.开发板引脚对应关系 LED点阵屏的列直接接在IO口上,通过P0口直接输入,行通过74HC595来进行数据输入 9.2LED点阵屏显示图形 C51的sfr、sbit ·sfr (special function register):特殊功能寄存器声明 例:sfr PO0x80; 声明P0口寄存器,物理地址为0x80 ·sbit(special bit):特殊位声明 例:sbit P0_10x81;或 sbit P0_1P0^1; 声明P0寄存器的第1位 ·可位寻址/不可位寻址:在单片机系统中,操作任意寄存器或者某一位的数据时,必须给出其物理地址,又因为一个寄存器里有8位,所 以位的数量是寄存器数量的8倍,单片机无法对所有位进行编码,故每8个寄存器中,只有一个是可以位寻址的。对不可位寻址的寄存器, 若要只操作其中一位而不影响其它位时,可用“”、“”、“A”的方法进行位操作 1、位声明 根据原理图,将IO口进行位声明,方面之后使用 2、74HC595写入字节函数 当i0时0x80为1000 0000Byte第一位为1SER为1第一位为0SER为0即写入第一位 当i1时0x80i为0100 0000Byte第二位为1SER为1第二位为0SER为0即写入第二位 … SCK1为上升沿Byte每写入一位向下移动一位 RCK1为上升沿将八位数据送到IO口 3、显示数据函数 为了消除残影需要在函数的最后进行P0口的清零 如果想要进行扫描的话,也需要进行消影,和数码管的操作类似(之前我们说数码管进行段选-位选-段选-位选-段选-位选的过程中刚把下一位段选送入的时候,它会把这个段选送到上一位选,因为上一位的位选还没来得及改变,产生串位的现象,也就是残影的问题 那么我们需要加一个过程,就是位选后,位选清零。 于是就变成段选-位选-位清零-段选-位选 -位清零-段选-位选 顺便加一段延时过程 段选-位选-延时-位清零-段选-位选-延时-位清零-段选-位选 这样即使它发生串位也是串到了位清零的时刻,但是位清零什么都没有显示,这样就能达到消影的效果。 4、LED点阵屏显示笑脸 main.c #include REGX52.H #include Delay.hsbit RCKP3^5; //RCLK sbit SCKP3^6; //SRCLK sbit SERP3^4; //SER#define MATRIX_LED_PORT P0/*** brief 74HC595写入一个字节* param Byte 要写入的字节* retval 无*/ void _74HC595_WriteByte(unsigned char Byte) {unsigned char i;for(i0;i8;i){SERByte(0x80i);SCK1;SCK0;}RCK1;RCK0; }/*** brief LED点阵屏显示一列数据* param Column 要选择的列范围0~70在最左边* param Data 选择列显示的数据高位在上1为亮0为灭* retval 无*/ void MatrixLED_ShowColumn(unsigned char Column,Data) {_74HC595_WriteByte(Data);P0~(0x80Column);Delay(1);P00xFF; }void main() {SCK0;RCK0;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);} }9.3LED点阵屏显示动画 1、模块化 MatrixLED.c #include REGX52.H #include Delay.hsbit RCKP3^5; //RCLK sbit SCKP3^6; //SRCLK sbit SERP3^4; //SER#define MATRIX_LED_PORT P0/*** brief 74HC595写入一个字节* param Byte 要写入的字节* retval 无*/ void _74HC595_WriteByte(unsigned char Byte) {unsigned char i;for(i0;i8;i){SERByte(0x80i);SCK1;SCK0;}RCK1;RCK0; }/*** brief 点阵屏初始化* param 无* retval 无*/ void MatrixLED_Init() {SCK0;RCK0; }/*** brief LED点阵屏显示一列数据* param Column 要选择的列范围0~70在最左边* param Data 选择列显示的数据高位在上1为亮0为灭* retval 无*/ void MatrixLED_ShowColumn(unsigned char Column,Data) {_74HC595_WriteByte(Data);MATRIX_LED_PORT~(0x80Column);Delay(1);MATRIX_LED_PORT0xFF; }MatrixLED.h #ifndef __MATRIX_LED_H__ #define __MATRIX_LED_H__void MatrixLED_Init(); void MatrixLED_ShowColumn(unsigned char Column,Data);#endif2、利用文字取模软件生成图像数据 点击“基本操作”,再点击“新建图像”,高度选8,宽度随意,这里选32 之后点击“参数设置”,再点击“其他选项”,在这里选择纵向取模,不选择字节倒序,其余不变 点击“模拟动画”,再点击“放大格点”,将图像进行放大 描绘自己想要的图像 点击“取模方式“,选择C51格式,将生成的数据保存 3、保存图像数据 将数据保存在数组中,数组的每一个元素表示一列LED的数据 main.c #include REGX52.H #include Delay.h #include MatrixLED.h//动画数据 unsigned char code Animation[]{0x3C,0x42,0xA9,0x85,0x85,0xA9,0x42,0x3C,0x3C,0x42,0xA1,0x85,0x85,0xA1,0x42,0x3C,0x3C,0x42,0xA5,0x89,0x89,0xA5,0x42,0x3C, };void main() {unsigned char i,Offset0,Count0;MatrixLED_Init();while(1){for(i0;i8;i) //循环8次显示8列数据{MatrixLED_ShowColumn(i,Animation[iOffset]);}Count; //计次延时if(Count15){Count0;Offset8; //偏移8切换下一帧画面if(Offset16){Offset0;}}} }Animation数组是存储在RAM中,当要显示的图像很多时,数据量会很大,RAM可能会不够,所以可以将数据保存在Flash里面, 在char后面添加一个code就行。但是定义之后便不能更改(ROM的特性)。 unsigned char code Animation[]{};
http://www.hkea.cn/news/14375597/

相关文章:

  • 莆田 做网站的公司wordpress是什么软件
  • 滨江网站建设公司wordpress表单邮件
  • 网站被恶意解析app推广软件有哪些
  • 爱的网站台州汇客网站建设
  • 泰安企业网站seo电商网站国内外需求分析
  • 初学者自己做网站洞头区小程序模板源代码
  • 国内做房车游网站九江有没有做网站的公司
  • 网站源码文件公司如何申请域名
  • 一级做爰片a视频网站试看网页升级紧急通知在哪里看
  • 设计企业网站内容单位建设网站硬件
  • 网站流量 龙优化软件天津网站设计网站制作
  • 沈阳中联做网站广州企业网站建设报价
  • 汕头h5建站模板网络公司企业网站源码
  • 栖霞区住房和建设局网站烈焰网页游戏传奇
  • 莆田兼职做外贸网站免费企业自助建站信息发布网
  • 建立网站批复北京百度总部
  • 网站媒体作风建设年工作总结烟台市做网站找哪家好
  • 南山网站建设方案书wordpress 文章登陆可见
  • 免费的网站后台管理系统html企业网站怎么做
  • 大学做视频网站wordpress可以做电影网站吗
  • 扬州高端网站建设韶关市手机网站建设怎么样
  • 龙岗附近做网站公司什么是响应式营销型网站建设
  • 慈溪住房和城乡建设部网站管理系统是网站吗
  • 网站一天要发多少外链网站整体排名大幅下降
  • 布吉建设网站宁波网络推广系统
  • 西安做网站费用适合做装饰公司的名字
  • 网站标题上的小图标怎么做的中国建设局网站
  • 介绍美食的网站模板制作软件的公司有哪些
  • 网站如何做即时聊天unity游戏制作软件
  • 深圳专业o2o网站设计公司个人网页设计html论文