当前位置:文档之家› 基于单片机的8255动态显示设计

基于单片机的8255动态显示设计

物理与电气工程学院课程设计报告基于单片机的8255动态显示设计姓名王秋雨学号 111102042专业电子信息工程指导教师李艾华成绩日期 2013.06.22基于单片机的8255动态显示设计王秋雨(安阳师范学院物理与电气工程学院河南安阳455002)摘要:数码管是非常常见的东西,他能显示数字以及字母,应用非常的广泛。

本文和大家谈谈如何用单片机来驱动数码管以及用扩展芯片来实现单片机对数码管的管理。

本文以显示06:18:52开始。

关键字:单片机AT89S52 ,电子时钟,汇编语言,8255,动态显示1 引言随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。

由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。

本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。

在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。

主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。

实验证明效果良好,可以投入使用。

动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。

其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共COM是各自独立地受I/O线控制。

CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。

而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。

在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

2 技术要求用单片机和8255扩展芯片实现数码管的显示。

3 方案论证3.1单片机设计这种方案采用AT89C52单片机作为系统的控制核心。

用8255做扩展,显示出六个代显数据。

进行加一的运算。

而且单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制。

液晶显示器具有体积小、外形薄、重量轻、耗能少、工作电压低、无辐射,特别是视域宽、显示信息量大等优点。

3.2LED数码显示模块方案一:静态显示方式。

静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终选中。

在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。

由于单片机本身提供的I/O口有限,实践使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。

静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。

其不足之处是占用硬件资源较多,每个LED 数码管需要独占8条输出线。

随着显示器位数的增加,需要的I/O口线也将增加。

方案二:动态显示方式。

动态显示方式是指一位一位得轮流点亮每位显示器,即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。

对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。

通过调整时间和时间参数,可以既保证亮度,又保证显示。

若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描,控制每位显示器所显示的字形也需一个8位口。

为使设计板面尽量简单,本次设计采用方案二。

4 总体设计4.1设计目的1.加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

2.用单片机模拟实现具体应用,使个人设计能过真正使用。

3.把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

4.提高利用已学知识分析和解决问题的能力。

5.提高实践动手能力。

4.2设计内容编写程序并将调试好的程序固化到单片机中。

开始仿真,运行程序,现实相应的结果。

4.3硬件模块整个设计以AT89C51单片机为核心,由数码管显示,LED数码管显示,复位电路三部分组成。

图1 硬件设计方框图4.3.1复位电路复位方式有许多种,本设计采用按键复位,接线图如图2所示。

图2 复位电路在设定时间内,89C51必须在RST引脚产生一个由高到低的电平变化,以清内部定时器。

4.3.2晶振电路晶振电路原理图如图3所示。

选取原则:传统做法,但能够实现所需,即最简单也是实用。

电容选取33pF,晶振为12MHz。

4.3.3硬件连接图各硬件连接方式如图4所示。

4.4软件模块软件设计方框图如图5所示。

图3 晶振电路图4 硬件连接图图5 软件设计方框图4.4.1程序流程图主程序流程图如图7所示,子程序流程图如图8所示。

图6 主程序流程图4.4.2数码管显示子程序:disp0: mov r0,#52h mov r1,#30h mov r3,#3 lll: mov a,@r0 mov b,#10 div ab mov @r1,binc r1mov @r1,ainc r1dec r0djnz r3,lllretdisp1: MOV R0,#DBUFMOV R1,#TEMPMOV R2,#6MOV DPTR,#SEGTAB DP00: MOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R1INC R0DJNZ R2,DP00retDISP2: MOV R0,#TEMPMOV R1,#6MOV R2,#0fehl1: MOV DPTR,#PBmov a,r2MOVX @DPTR,Arl amov r2,amov a, @r0mov dptr,#PAmovx @dptr, a inc r0Acall Delaydjnz r1,l1rett00: mov th0,#3ch mov tl0,#0b0hdjnz 20h,eedmov 20h,#10mov a,#01add a, 52hmov 52h,acjne a,#60,eedmov 52h,#0mov a,#01add a, 51hmov 51h,acjne a,#60,eedmov 51h,#0mov a,#01add a, 50hmov 50h,acjne a,#24,eedmov 50h,#0eed: retiSEGTAB:DB 3FH,06H,5BH,4FH,66H,6DHDB 7DH,07H,7FH,6FH,77H,7CHDB 58H,5EH,7BH,71H,00H,40H5 心得与体会总结经过两个多月的工作,基于单片机的电子时钟系统的设计已经完成。

经试验验证,满足设计要求。

由于加入了计时修正,在精度方面已经相当准确了,不过还可以达到更高精度,需要精确计算定时器T0中断次数的误差,再予以修正;在软件的定时部分可以进行改进,用循环程序实现,每次循环只需更改相应单元即可,这样使程序精简。

由于时间原因,没能实现这两部分。

该系统的扩展功能由于硬件原因不能实现,以后如硬件允许可以实现这部分功能,还可增加其它功能。

本次设计主要涉及了单片机原理及接口技术的相关知识和汇编语言编程的诸多要领。

设计中涉及的许多问题,更是对以前所学的知识的回顾及在过去的三年中学到知识的系统总结,这次设计对我们将来的工作有很大的帮助。

在设计中,我积极查阅资料,细心钻研各个细节,完成了多功能时钟的开发与调试,也让我们明白了在设计中考虑问题应该全面。

在设计中既锻炼了我的动手能力,又学会查阅资料,提炼需要的信息。

由于本人水平有限,文中难免出现错误与不足之处,恳请老师批评指正。

参考文献[1]李全利,《单片机原理及接口技术》第2版高等教育出版社[2]阎石,《数字电路电子技术》第五版清华大学出版社[3]李艾华,《电子技术及实验》内蒙古大学出版社附录1:程序清单DBUF EQU 30HTEMP EQU 40HPA EQU 1111001111111111BPB EQU 1111011111111111BPCONT EQU 0FFFFHORG 0000HLJMP STARTorg 000bhljmp t00ORG 0030hSTART: mov a,#80hmov dptr, #PCONTmovx @dptr,amov tmod,#01hmov th0,#3chmov tl0,#0b0hsetb tr0mov ie,#10000010bmov 20h,#10MOV 52H,#34hMOV 51H,#12hMOV 50H,#06habc:lcall disp0lcall disp1lcall disp2sjmp abcdisp0: mov r0,#52hmov r1,#30hmov r3,#3lll:mov a,@r0mov b,#10div abmov @r1,binc r1mov @r1,ainc r1dec r0djnz r3,lllretdisp1: MOV R0,#DBUFMOV R1,#TEMPMOV R2,#6MOV DPTR,#SEGTAB DP00: MOV A,@R0MOVC A,@A+DPTR MOV @R1,AINC R1INC R0DJNZ R2,DP00retDISP2: MOV R0,#TEMPMOV R1,#6MOV R2,#0fehl1: MOV DPTR,#PBmov a,r2MOVX @DPTR,Arl amov r2,amov a, @r0mov dptr,#PAmovx @dptr, ainc r0Acall Delaydjnz r1,l1rett00: mov th0,#3ch mov tl0,#0b0hdjnz 20h,eedmov 20h,#10mov a,#01add a, 52hmov 52h,acjne a,#60,eedmov 52h,#0mov a,#01add a, 51hmov 51h,acjne a,#60,eedmov 51h,#0mov a,#01add a, 50hmov 50h,acjne a,#24,eedmov 50h,#0eed: retiSEGTAB:DB 3FH,06H,5BH,4FH,66H,6DHDB 7DH,07H,7FH,6FH,77H,7CHDB 58H,5EH,7BH,71H,00H,40H DELAY: MOV R4,#03HAA1: MOV R5,#0FFHAA:DJNZ R5,AADJNZ R4,AA1RETEND附录3:原理图图8 原理图。

相关主题