单片机实现时钟的显示_第1页
单片机实现时钟的显示_第2页
单片机实现时钟的显示_第3页
单片机实现时钟的显示_第4页
单片机实现时钟的显示_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及系统课程设计报告单片机原理及系统课程设计专 业:电气工程及其自动化 班 级: 电气091 姓 名: 学 号: 指导教师: 评语:平时(40)修改(30)报告(30)总成绩2012 年 7月1日单片机原理及系统课程设计报告 - 0 -1 引言基于单片机课程的学习,在本次课程设计中利用单片机实现时钟的显示,利用键盘和门电路控制时间的调整,在设计上采用硬件计数与软件计数相结合的方式,并且定时器T0采用了中断方式。2 系统方案及原理本次课程设计是用80C51单片机CPU及接口电路设计一个数字时钟,其核心部件是80C51,时钟的显示采用6个共阴极LED显示灯,四个开关方便的对秒、分、时分别调

2、整,保证功能完善,工作可靠。硬件方面:独立式键盘可以消除时间误差的和方便时间的调整;显示电路采用LED动态显示方式,共阴极端由P2口线控制,分为段选线和位选线,利用人的视觉停留达到显示的效果,段选线控制字符选择,位选线控制显示位的亮或暗,从而简化串行口线的连接。软件方面:四个键盘输入与门74LS21,其输出用作中断信号,当四个键盘有一个键按下后就会向CPU申请中断,这样就可以提高CPU工作效率,达到调整时间的快速性与准确性;定时采用片内定时器定时,提高了电子时钟的准确度。显示电路可以采用点阵液晶显示模块(LED)。一上电,数码管显示的起始时间为0时0分0秒,也就是数码管显示000000,然后每

3、过一秒,秒位加一,到9后10秒位加一,秒位回0.10秒位显示5,秒位显示9后一秒,分钟加一,秒位回0。以此类推,时钟显示的最大值位23小时59分钟59秒。3 硬件设计3.1 硬件原理图根据要求,设计一个时钟。能够显示时间格式为 时.分.秒,并且设置键盘,根据按键任意调整时间。利用8051内部定时器0与软件结合来实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。显示部分用共阴极的LED显示等显示。硬件原理图如图一所示。四个开关方便的对秒、分、时分别调整,保证

4、功能完善,工作可靠,定时采用片内定时器定时,提高了电子时钟的准确度。根据题目要求设计的总体框图,如图1所示。图1 硬件原理图3.2Proteus仿真图 根据硬件原理电路,用在Keil生成hex的可执行文件,仿真结果如图2所示。图2 Proteus仿真结果4 软件设计4.1序包括以下几个部分:(1)主程序:主程序主要完成系统的初始化,以及对数码显示管和键盘子程序的调用。主程序流程图如图3所示。图3 主程序流程图(2)键盘扫描子程序:返回键值键盘扫描子程序流程图如图4所示。图4 键盘扫描子程序流程图(3)处理子程序:确定按键的位置,并进行处理。(4)显示子程序:将显示缓冲区的数据送到LED显示器显

5、示。时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。显示子程序流程图如图5所示。图5 显示子程序流程图5 总结历时一周的单片机课程设计结束了,此次课程设计中,我所做的是要用8051单片机及其他部件完成一个电子时钟。可以实现电子钟的走时和校对;电子钟上电时开始走,通过6个LED显示时、分、秒;通过按键可以进行时间的调整。在完成设计的过程中,我遇到了一些问题,在用Keil uVision3调试程序时,软件提示说“代码”超过2k。这个问题困扰了我半天的时间。后来我直接编译、编译连接、全部重建、停止编译和对工程进行设置,

6、生成了名为 cs.hex文件。之后在Proteus中画图仿真。通过这次单片机课程设计,我不仅将上学期所学的单片机知识应用到设计中,同时更进一步学习了80C51。了解了74HC373驱动芯片、4LS21等芯片。更加熟悉了Keil和Proteus的使用。至于用Visio画流程图,这很简单,以前的课程设计过程中一直是不可缺少的,所以比较熟悉。每次课程设计都会遇到一些问题,随着问题的解决自己又学到了更多的知识。6 参考文献1 李华.单片机原理及应用M.北京:兰州大学出版,2001.2 于殿泓,单片机原理实验教程M.西安:西安电子科技大学出版社,2007.3 蔡明文,冯先成.单片机课程设计M.武汉:华中

7、科技大学出版社,2007.附 录源程序代码: ORG 0000H AJMP START ORG 0003H LJMP ST1 ORG 000BH AJMP TT0 ORG 0030HSTART: MOV 30H,#00H ;秒显示个位内存单元 MOV 31H,#00H ;秒显示十位内存单元 MOV 32H,#00H ;分显示个位内存单元 MOV 33H,#00H ;分显示十位内存单元 MOV 34H,#00H ;时显示个位内存单元 MOV 35H,#00H ;时显示十位内存单元 MOV TMOD,#01H ;定时器T0,工作方式1, MOV TH0,#3CH ;定时50MS MOV TL0,#

8、0B0H MOV R0,#30H ;指针指向显示单元 MOV R5,#0FEH ;选中秒个位 MOV R1,#20 MOV 36H,#00H ;时位键盘判断时用 MOV R3,#6 ;秒十位判断时用 MOV R2, #6 ;分十位判断时用 MOV R4,#10 MOV 40H,#10 MOV IE, #81H SETB EA ;开中断 SETB ET0 ;开T0中断 SETB TR0 ;记时开始MAIN: LCALL DIS LJMP MAIN; 显示子程序DIS: MOV A,R5 ;先位码 MOV DPTR,#7FFFH ;位码选择p2.7 MOVX DPTR,A MOV A,R0 ;再段

9、码 MOV DPTR,#TAB ;表地址 MOVC A,A+DPTR ;查表 MOV DPTR,#0BFFFH ;段码选择p2.6; 显示小数点 CJNE R0,#32H,GO111 ;小数点选择(R0)=/=32H转移 ORL A,#80H GO111: CJNE R0,#34H,MIN ORL A,#80HMIN: MOVX DPTR,A ;送出去显示 LCALL DELAY ;1MS延时 LCALL DELAY LCALL DELAY INC R0 ;修改指针指向下一显示单元 MOV A,R5 ;也可写为XCH A,R5 JNB ACC.5,LH ;判断显示完否? RL A ;也可写为X

10、CH R5,A MOV R5,A AJMP ENR ;返回循环显示LH: MOV R0,#30H ;重心定义显示指针 MOV R5,#0FEH ;重设位码,形成循环ACC.0-ACC.3ENR: RET; 定时中断TT0: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R1,FANHUI ;判断1秒到否?未到跳转 MOV R1,#20 INC 30H ;秒个位加一 DJNZ R4,FANHUI ;判断10秒到否?未到跳转 MOV R4,#10 MOV 30H,#00H INC 31H DJNZ R3,FANHUI MOV R3,#6 MOV 31H,#00H INC 32H

11、DJNZ 40H,FANHUI MOV 40H,#10 MOV 32H,#00H INC 33H DJNZ R2,FANHUI MOV R2,#6 MOV 33H,#00H INC 36H ;时位判断时用 MOV A,36H CJNE A,#24,JUMP MOV 36H,#00HJUMP: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AFANHUI: RETI ; 键盘处理程序ST1: CLR EX0 ;键盘1判断时用 PUSH B PUSH ACC JB P1.0,ST2 LCALL DELAY111 JNB P1.0,$ LCALL DELA

12、Y111 DJNZ R3,GO MOV R3,#6GO: INC 31H MOV A,31H CJNE A,#6,$+3 JNB P1.0,$ JC ST2 MOV 31H,#00H MOV A,31HST2: JB P1.1,ST3 ;键盘2判断时用 LCALL DELAY111 JNB P1.1,$ LCALL DELAY111 DJNZ 40H,GO1 MOV 40H,#10GO1: INC 32H MOV A,32H CJNE A,#10,$+3 JNB P1.1,$ JC ST3 MOV 32H,#00H MOV A,32HST3: JB P1.2,ST4 ;键盘3判断时用 LCAL

13、L DELAY111 JNB P1.2,$ LCALL DELAY111 DJNZ R2,GO2 MOV R2,#6GO2: INC 33H MOV A,33H CJNE A,#6,$+3 JNB P1.2,$ JC ST4 MOV 33H,#00H MOV A,33HST4: JB P1.3,ST6 ;键盘4判断时用 LCALL DELAY111 JNB P1.3,$ LCALL DELAY111 INC 36H MOV A,36H CJNE A,#24,JUMP1 MOV 36H,#00HJUMP1: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AST6: POP ACC ;键盘中断返回 POP B SETB EX0 RETI; 延时1MS子程序DE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论