《LED点阵设计方案8乘》由会员分享,可在线阅读,更多相关《LED点阵设计方案8乘(9页珍藏版)》请在金锄头文库上搜索。
1、 LED点阵设计方案设计作品名称: LED电子点阵参与人员: 电气系电子信息1332班 同学作品设想: 以AT89S51单片机控制发光二极管,能够依次在点阵上显示“0-9”个字符。所需元器件:88LED点阵(共阳)一块 AT89S51晶振频率(f=12M Hz)单片机(附有底座)一个 74HC573芯片 两个瓷片电容30pf 两个电阻1000欧姆 470欧姆各八个 10,000欧姆2个 电源插座一个 显示原理概括:88LED点阵 以发光二极管为像素,分为行控制跟列控制,通过单片机的两个管口的引脚输出高电平与低电平来控制二极管的发光来显示文字,注意控制延时来获得较好的视觉效果。AT89S51单片
2、机介绍:- 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低! - ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。 - 最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。 - 具有双工UART串行通道。 - 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。 - 双数据指示器。 - 电源关闭标识。 - 全新的加密算法,这使得对于89S51的*变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯
3、。 - 兼容性方面:向下完全兼容51全部字系列产品。74HC573芯片介绍:74HC573 八进制 3 态非反转透明锁存器74HC573 高性能硅门 CMOS 器件 SL74HC573 跟 LS/AL573 的管脚一样。器件的锁存器。输入是和标准 CMOS 输出兼容的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。u36755X出能直接接到 CMOS,NMOS 和 TTL 接口上 u25805X作电压范围:2.0V6.0V u20302X输入电流:1.0uA
4、 CMOS 器件的高噪声抵抗特性 OE120Vcc1D2191Q2D3182Q3D4173Q4D5164Q5D6155Q6D7146Q7D8137Q8D9128QGND1011LEOELEDQLHHHLHLLLLXQ0HXXZ1脚三态允许控制端低电平有效1D8D为数据输入端1Q8Q为数据输出端74HC573引脚图LE为锁存控制端部分电路分析及其总体的电路设计 :1.点阵的布局图: 88点阵LED外观及引脚图,其等效电路如图所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴2.复位电路设计图:本电路选取的
5、是按键复位,复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。 3.整体电路设计:1. 把“单片机系统”区域中的P2.0P2.7端口分别通过八个100欧电阻连接到“点阵模块”区域中的“L1L8”端口上;2. 把“单片机系统”区域中的P3.032.7端口通过74HC573和10K电阻连接到“点阵模块”区域中的“S1S8”端口上。4.焊接要求:焊接完应是锡点光亮,圆滑而无毛刺,锡量适中。锡和被焊物融合牢固。不应有虚焊和假
6、焊。虚焊是焊点处只有少量锡焊住,造成接触不良,时通时断。假焊是指表面上好像焊住了,但实际上并没有焊上,有时用手一拔,引线就可以从焊点中拔出。这两种情况将给电子制作的调试和检修带来极大的困难。只有经过大量的、认真的焊接实践,才能避免这两种情况。焊接电路板时,一定要控制好时间。太长,电路板将被烧焦,或造成铜箔脱落。从电路板上拆卸元件时,可将电烙铁头贴在焊点上,待焊点上的锡熔化后,将元件拔出,可以看看。程序设计思路:软件流图: 开始 定时器1初始化 主循环 无 定时中断函数 有无中断 有 调用显示子函数 完整程序:#include#define uchar unsigned char#define
7、uint unsigned intuint i,a,b=0,t;uchar code dxuan0=0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18,;/0uchar code dxuan1=0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x00,;/1uchar code dxuan2=0x00,0x3C,0x24,0x0C,0x18,0x30,0x3C,0x00,;/2uchar code dxuan3=0x00,0x3C,0x24,0x18,0x0C,0x24,0x38,0x00,;/3uchar code dxuan4=0x00,0
8、x08,0x18,0x38,0x28,0x3C,0x08,0x00,;/4uchar code dxuan5=0x00,0x3C,0x20,0x3C,0x04,0x24,0x38,0x00,;/5uchar code dxuan6=0x00,0x18,0x24,0x20,0x38,0x24,0x24,0x18,;/6uchar code dxuan7=0x00,0x3C,0x04,0x08,0x08,0x10,0x10,0x10,;/7uchar code dxuan8=0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,; /8uchar code dxuan9=
9、0x18,0x24,0x24,0x24,0x1C,0x04,0x24,0x18,;/9uchar code wxuan=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,;/位选void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=256;y0;y-);/*显示函数*/void display0()for(a=50;a0;a-) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i0;a-
10、) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i0;a-) for(i=0;i9;i+) P1=wxuani;P0=dxuan9i;delay(1);void main(void)TMOD=0X10; /设置定时器为工作方式1TH1=(65536-50000)/256;TL1=(65536-50000)%256; /定时50000usEA=1; /开总中断ET1=1; /开定时器中断TR1=1; /启动定时器while(1)if(t=40)t=0;switch(b)case 0: display0();break;case 1: display1();break;case 2: display2();break;case 3: display3();break;case 4: display4();break;case 5: display5();break;case 6: display6();break;case 7: display7();break;