收藏 分销(赏)

LED点阵设计方案8乘8.doc

上传人:仙人****88 文档编号:11895744 上传时间:2025-08-19 格式:DOC 页数:9 大小:306.04KB 下载积分:10 金币
下载 相关 举报
LED点阵设计方案8乘8.doc_第1页
第1页 / 共9页
LED点阵设计方案8乘8.doc_第2页
第2页 / 共9页


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

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服