您好,欢迎访问三七文档
18位LED串行显示器设计一、设计目的利用74LS164芯片扩展8位LED串行显示。学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、设计要求1、要求将片内30H-37H单元中数据,8个数码管,用扩展串行的显示端口显示出来。2、要求做出实物。三、硬件电路设计3.1系统结构框图3.2STC89C52单片机介绍89C52共有四个八位的并行双向口,即有32根输入输出口线。各口的每一位均单片机STC89C5274LS164移位寄存器LED数码管2由锁存器、输出驱动器和输入缓冲器组成。引脚功能:VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。P1口特点是输出锁存器,输出时没有条件。输入缓冲,输入时有条件,即需要先将该口设为输入状态,先输出1。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)P3口为准双向口。可以字节访问,也可以位访问。P3.0---RXD,串行输入口。P3.1---TXD,串行输出口。P3.2---INT0,外部中断0的请求。P3.3---INT1,外部中断1的请求。P3.4---T0,定时器/计数器0外部计数脉冲。P3.5---T1,定时器/计数器,1外部计数脉冲。P3.6---WR,外部数据存储器写选通。P3.7---RD,外部数据存储器读选通。RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。ALE(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。STC89C52引脚图如图3-1所示。33.3显示电路74LS164芯片各引脚定义,当清除端(CLEAR)为低电平时,输出端(Q0-Q7)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。引脚功能:CLOCK:时钟输入端CLEAR:同步清除输入端(低电平有效)A、B:串行数据输入端Q0-Q7:输出端74LS164芯片引脚图如图3-2所示。图3-1STC89C52引脚图图3-274LS164芯片引脚图5161AS型号数码管采用共阴极接法,有十个引脚,工作电压1.8V,工作电流2mA~33mA。LED是发光二极管的缩写。LED数码管里面有8只发光二极管,与实验板P1端口所接的二极管是相同的。分别记作a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp﹑其中dp为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样4也引到外部引脚上,记作公共端(COM),如图3-3所示。图3-3数码管引脚图3.4复位电路在单片机启动0.1s后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近0V,RST处于低电平,所以系统正常工作。当按键按下时,开关导通,这时电解电容两端形成一个回路,电容被短路,并释放之前充的电量。随着时间的推移,电容的电压在0.1s内,从5V释放到1.5V,甚至更小。根据串联的电压为各处之和,这时10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平,即实现自动复位。5复位电路如图3-4所示。图3-4复位电路图3.5电路参数的选择电路供给电压为5V,数码管最大压降为1.8V,根据欧姆定律,数码管前应串入的最大电阻为(5-1.8)/0.002=1600欧,本题所选电阻为1K。复位电路中,根据复位信号的有效脉冲宽度来计算电容电阻的值,高电平复位至少要10ms才有效,所以选用10K的电阻和10uF的电容。3.6电路原理图74LS164是串行输入并行输出的移位寄存器,每接一片74LS164可扩展一个8位并行输出口,可以作为LED显示器的8根段选线。如图3-3中扩展了8位LED显示器,分别用8个74LS164作为8个LED的段选输入。硬件部分包括89C52芯片、74LS164芯片、8位数码管(5161AS)、电阻、电容等。其中89C52芯片功能为:8K字节FLASH闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个全双工串行通讯口,振荡器及时钟电路;74LS164功能为:作八位串行入/并行输出移位寄存器用;数码管作用为:显示数字结果。6电路原理图如图3-4所示。图3-4电路原理图7四、使用说明本实验显示的结果是·0123456789。利用89C52和74LS164扩展8位LED数码管显示,74LS164是将串行输入转换成并行输出,用来选择数码管的段显示。五、软件设计图5-1程序流程图开始串口初始化发送数据发送成功?TI置0J是否小于11j置0NYYN8六、主程序设计#includereg52.h#defineucharunsignedchar/*定义uchar为数据类型符unsignedchar*/#defineuintunsignedint/*定义uint为数据类型符unsignedint*/ucharduanma[]={0x01,0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};uinti;uintj;voiddelay(uintms)/*延时*/{while(ms10000){for(i=0;i110;i++);/*定时1us*/ms--;}}voidmain(){SCON=0x00;/*80C51初始化*/PCON=0x00;ES=0;while(1){while(j11)/*循环发送数据*/{SBUF=duanma[j];while(TI==0);TI=0;delay(700);/*调用延时程序*/j++;}j=0;9}}七、设计总结通过这次小学期实践,我能够进一步加深对专业知识和理论知识的学习和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。我们这次实验做的是用74LS164扩展数码管,在老师确定题目后,我便在网络上查找了相关资料,然后确定好自己的方案,对自己的设计有了一个大概的思路。然后在学习的过程中,学会了Protel的用法,丰富了专业方面的知识,对以后的发展大有帮助。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过实验,一点点改正。总的来说,这次设计的LED显示还是比较成功的,在设计中遇到了很多问题,如焊出的实物无法运行等,我分析的结果可能是由于管脚太多,有虚焊或者短接的地方。最后在老师的辛勤的指导下,终于迎刃而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且得到了锻炼!八、参考文献[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007.[2]余锡存.微机原理及接口技术.西安电子科技大学[3]李广弟.2001.单片机基础.北京.北京航空航天大学出版社[4]郑坤.微型计算机技术实验指导书.2007.
本文标题:8位LED灯
链接地址:https://www.777doc.com/doc-5372962 .html