基于51单片机的16×16点阵屏流动显示单片机课程设计_第1页
基于51单片机的16×16点阵屏流动显示单片机课程设计_第2页
基于51单片机的16×16点阵屏流动显示单片机课程设计_第3页
基于51单片机的16×16点阵屏流动显示单片机课程设计_第4页
基于51单片机的16×16点阵屏流动显示单片机课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.,基于51单片机的1616点阵屏流动显示,.,目录,一 ,制作所需器材 二,STC89C52简介 三,点阵的简介 四,程序 五,演示 六,总结,.,一. 制作所需器材,1.单片机开发扳一块; 2.16*16LED点阵一块; 3.杜邦线若干;,返 回,.,二.STC89C52简介,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用

2、系统提供高灵活、超有效的解决方案。,.,单片机实物图与引脚图,返回,.,三、点阵的简介,LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。,.,1. 点阵的用处,汽车报站器、广告屏以及公告牌等。,.,2,点阵的实物图,.,点阵实物图组成,.,3,点阵的原理图简介,.,1. 74HC138芯片,74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3

3、)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。,.,74HC138芯片,.,2. 74HC595芯片,74HC595具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器有相互独立的时钟。 数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,

4、在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。,.,74HC595芯片,.,3. 电路电阵原理图讲解,1.通过P0口控制a,b,c,d; 2. 通过2个74HC138控制行的选取; 3.通过74HC595自动选取列;,返回,原理图,.,四,具体的程序实现,#incl

5、ude sbit T_STR = P26; /锁存引脚,屏上标识位STR sbit R1 = P04; /数据引脚,屏上标识R1 sbit G1 = P24; /数据引脚,屏上标识G1 sbit T_CLK = P25; /时钟引脚,屏上标识位CLK sbit OE = P21; /使能引脚,屏上标识EN/OE unsigned char MoveBitNum,MoveBitNumtemp,IncNum;/移动位数,临时移动位数,大于一个字节增加字节数,.,定义所需变量,unsigned char MoveBitNum,MoveBitNumtemp,IncNum;/移动位数,临时移动位数,大于

6、一个字节增加字节数 unsigned int HzNum;/汉字个数 unsigned char buff20; unsigned char code hztest32= /取模选择字节倒序 ,正序得出的字是反的,可以在软件中设置自动倒叙 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00, 0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00, 0X00,.,输入要输出的字,0 x10

7、,0 x01,0 x10,0 x01,0 x10,0 x01,0 x88,0 x7F,0 x88,0 x40,0 x4C,0 x20,0 x2C,0 x04,0 x0A,0 x04, 0 x89,0 x14,0 x88,0 x24,0 x48,0 x24,0 x48,0 x44,0 x28,0 x44,0 x08,0 x04,0 x08,0 x05,0 x08,0 x02, 0 x08,0 x00,0 x08,0 x3F,0 x08,0 x20,0 x08,0 x10,0 x3F,0 x08,0 x24,0 x04,0 x24,0 x04,0 xA4,0 x7F, 0 x24,0 x04,0

8、x12,0 x04,0 x14,0 x04,0 x08,0 x04,0 x14,0 x04,0 x22,0 x04,0 x21,0 x05,0 x00,0 x02,.,向595写入一个字节,void InputByte( unsigned char DataR1) /写一个字节 unsigned char i; for(i=8; i0; i-) R1 = !(DataR1 ,.,延时程序,void Delay(unsigned int t) while(-t); ,.,主程序,main() unsigned char count;/16行扫描数据,范围0-15 unsigned int i,

9、j; unsigned char temp; while(1) i+; if(i=100)/更改流动速度,1T单片机和12T单片机速度大约5-8倍,注意更改参数(越小越快),.,主程序, i=0; MoveBitNum+; if(MoveBitNum=16)/每次移动完一个汉字大小后循环 MoveBitNum=0; HzNum+=1; /调用下一个汉字 if(HzNum=6)/需要显示的汉字个数,包括前面的一屏空字符的个数,后面清屏,.,主程序,的空字符不包含在内,这里是(汉字个数+1) 必须为=; HzNum=0; /完全显示完后循环调用 Delay(2);/控制扫描频率 for(j=0;j

10、2;j+) /取每个汉字的前2个字节, /汉字个数+1 buffj+j=hztestHzNum+jcount+count; /每次移动完一个汉字后,选择下一个汉字,.,主程序,buffj+j+1=hztestHzNum+jcount+count+1; if(MoveBitNum8) / 判读移动距离是大于一个字节还是小于一个字节,为一个字节左移右移最大只能8位 IncNum=0; MoveBitNumtemp=MoveBitNum; else IncNum=1; MoveBitNumtemp=MoveBitNum-8;/大于8就减去8得到的数值还是小于8 T_STR=0; /锁存无效,.,主程序,for(j=0;jMoveBitNumtemp)|(buffj+1+IncNum(8-MoveBitNumtemp);/这句比较重要,需要自行拿出2个字节的数据模拟分析 InputByte(temp);/输出到595 /8个字节传输完锁存输出 OE = 1;,.,主程序,P0=15-count;/用P0口的前4位控制16行,屏内部通过4-16译码器工作,循环扫描16行 T_ST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论