您好,欢迎来到世旅网。
搜索
您的当前位置:首页基于单片机的8255动态显示设计

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

来源:世旅网


物理与电气工程学院课程设计报告

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

姓 名 王秋雨 学 号 111102042

专 业 电子信息工程

指导教师 李艾华 成 绩 日 期 2013.06.22

第1页

基于单片机的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数码显示模块

方案一:静态显示方式。

第2页

静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终选中。在这种显示方式下,每一个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数码管显示,复位电路三部分组成。

AT89C51 单片机 晶振电路 复位电路 8255扩展LED数码 芯片 管显示

图1 硬件设计方框图

第3页

4.3.1复位电路

复位方式有许多种,本设计采用按键复位,接线图如图2所示。

图2 复位电路

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

4.3.2晶振电路

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

选取原则:传统做法,但能够实现所需,即最简单也是实用。电容选取33pF,晶振为12MHz。

4.3.3硬件连接图

各硬件连接方式如图4所示。 4.4软件模块

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

图3 晶振电路

图4 硬件连接图

第4页

复位 晶振源 AT89C51 8255扩展 图5 软件设计方框图

数码管动态显示 4.4.1程序流程图

主程序流程图如图7所示,子程序流程图如图8所示。 开 始 地址指针设置 置8255工作方式 置8255PA口

Y 图6 主程序流程图 图7 显示子程序流程图

取段码结束 延 时 调用延时程序 N 数据左移 输出位码 取段码 输出段码

4.4.2数码管显示子程序:

disp0: mov r0,#52h mov r1,#30h mov r3,#3 lll: mov a,@r0 mov b,#10 div ab mov @r1,b

第5页

inc r1 mov @r1,a inc r1 dec r0

djnz r3,lll ret

disp1: MOV R0,#DBUF MOV R1,#TEMP MOV R2,#6

MOV DPTR,#SEGTAB DP00: MOV A,@R0

MOVC A,@A+DPTR MOV @R1,A INC R1 INC R0

DJNZ R2,DP00 ret

DISP2: MOV R0,#TEMP MOV R1,#6 MOV R2,#0feh l1: MOV DPTR,#PB mov a,r2 MOVX @DPTR,A rl a

mov r2,a mov a, @r0

mov dptr,#PA movx @dptr, a inc r0 Acall Delay djnz r1,l1 ret

t00: mov th0,#3ch mov tl0,#0b0h djnz 20h,eed mov 20h,#10 mov a,#01 add a, 52h mov 52h,a cjne a,#60,eed mov 52h,#0 mov a,#01 add a, 51h

第6页

mov 51h,a cjne a,#60,eed mov 51h,#0 mov a,#01 add a, 50h mov 50h,a cjne a,#24,eed mov 50h,#0 eed: reti

SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 58H,5EH,7BH,71H,00H,40H

5 心得与体会总结

经过两个多月的工作,基于单片机的电子时钟系统的设计已经完成。经试验验证,满足设计要求。由于加入了计时修正,在精度方面已经相当准确了,不过还可以达到更高精度,需要精确计算定时器T0中断次数的误差,再予以修正;在软件的定时部分可以进行改进,用循环程序实现,每次循环只需更改相应单元即可,这样使程序精简。由于时间原因,没能实现这两部分。该系统的扩展功能由于硬件原因不能实现,以后如硬件允许可以实现这部分功能,还可增加其它功能。本次设计主要涉及了单片机原理及接口技术的相关知识和汇编语言编程的诸多要领。设计中涉及的许多问题,更是对以前所学的知识的回顾及在过去的三年中学到知识的系统总结,这次设计对我们将来的工作有很大的帮助。在设计中,我积极查阅资料,细心钻研各个细节,完成了多功能时钟的开发与调试,也让我们明白了在设计中考虑问题应该全面。在设计中既锻炼了我的动手能力,又学会查阅资料,提炼需要的信息。由于本人水平有限,文中难免出现错误与不足之处,恳请老师批评指正。

第7页

参考文献 [1]李全利,《单片机原理及接口技术》第2版 高等教育出版社[2]阎石, 《数字电路电子技术》第五版 清华大学出版社 [3]李艾华, 《电子技术及实验》 内蒙古大学出版社

附录1:程序清单 DBUF EQU 30H TEMP EQU 40H

PA EQU 1111001111111111B PB EQU 1111011111111111B PCONT EQU 0FFFFH ORG 0000H LJMP START org 000bh ljmp t00 ORG 0030h

START: mov a,#80h

mov dptr, #PCONT movx @dptr,a mov tmod,#01h mov th0,#3ch mov tl0,#0b0h setb tr0

mov ie,#10000010b mov 20h,#10 MOV 52H,#34h MOV 51H,#12h MOV 50H,#06h abc:lcall disp0 lcall disp1 lcall disp2 sjmp abc

disp0: mov r0,#52h mov r1,#30h mov r3,#3 lll:mov a,@r0 mov b,#10 div ab mov @r1,b inc r1 mov @r1,a inc r1 dec r0

djnz r3,lll ret

第8页

disp1: MOV R0,#DBUF MOV R1,#TEMP MOV R2,#6

MOV DPTR,#SEGTAB DP00: MOV A,@R0

MOVC A,@A+DPTR MOV @R1,A INC R1 INC R0

DJNZ R2,DP00 ret

DISP2: MOV R0,#TEMP MOV R1,#6 MOV R2,#0feh l1: MOV DPTR,#PB mov a,r2 MOVX @DPTR,A rl a

mov r2,a mov a, @r0 mov dptr,#PA movx @dptr, a inc r0

Acall Delay djnz r1,l1 ret

t00: mov th0,#3ch mov tl0,#0b0h djnz 20h,eed mov 20h,#10 mov a,#01 add a, 52h mov 52h,a cjne a,#60,eed mov 52h,#0 mov a,#01 add a, 51h mov 51h,a cjne a,#60,eed mov 51h,#0 mov a,#01 add a, 50h mov 50h,a cjne a,#24,eed

第9页

mov 50h,#0 eed: reti

SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 58H,5EH,7BH,71H,00H,40H DELAY: MOV R4,#03H AA1: MOV R5,#0FFH AA:

DJNZ R5,AA DJNZ R4,AA1 RET END

附录3:原理图

图8 原理图

第10页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务