AT89S51课程设计报告电子钟滚动显示时间日期矩阵键盘设置时间.doc
《AT89S51课程设计报告电子钟滚动显示时间日期矩阵键盘设置时间.doc》由会员分享,可在线阅读,更多相关《AT89S51课程设计报告电子钟滚动显示时间日期矩阵键盘设置时间.doc(33页珍藏版)》请在三一办公上搜索。
1、目 录摘要2第一章 设计任务3一、设计任务3二、设计目的3三、设计环节及进程安排3第二章 总体方案设计与方案可行性说明4一、预期效果4二、总体方案设计及程序设计思路4第三章 总框图及总体软件设计说明6一、总框图6二、总体软件设计说明6第四章 接口电路逻辑图及硬件设计说明,或系统资源使用说明7一、接口电路逻辑图7二、接口电路逻辑图说明:8三、硬件设计说明及系统资源使用说明8第五章 主要子程序框图及其设计说明9一、外部中断流程图9外部中断0说明9二、定时器0流程图10定时器0说明11三、定时器1流程图12定时器1说明14四、键盘扫描子程序流程图15键盘扫描子程序说明17第六章 源程序清单18第七章
2、 调试记录及调试结果19第八章 系统实现功能与操作说明20一、系统实现功能:20二、操作说明:20第九章 课程设计总结21一、实现的效果:21二、程序各部分说明及系统资源使用情况:21三、本次实习的经验总结22附录23摘 要数字电子钟是采用数字电路实现对年、月、日、时、分、秒数字显示的计时装置。在这次设计中,采用LED数码管滚动显示年、月、日、时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用11MHz的晶振产生振荡脉冲,定器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。第一章 设计任务一、设计任务:用实验室的AT89S51实验板,写出数字时钟的程序
3、,能滚动显示实时时间日期于LED数码管,并可以修改时间日期,在规定的时间内完成设计、调试,经答辩合格后,提交设计说明书。二、设计目的:通过一个微机应用系统的设计与调试过程,运用微机原理及接口技术课程所学的知识,在设计中加以实践,达到理解、巩固和发展所学内容的目标。通过系统构造、流程设计、编程与调试的过程,掌握分析与解决实际问题的方法与手段,提高系统设计、程序编码与调试方面的实际动手能力,作为从事工程技术工作的一次系统训练。三、设计环节及进程安排: 1、布置课题,明确任务、总体方案及程序案头设计 2天2、局部程序模块设计调试 3天4、整体程序联合调试 2天5、程序功能完善、改进、扩展 1天6、答
4、辩及编写设计说明书 2天第二章 总体方案设计与方案可行性说明一、预期效果:时间、日期从最右边移入显示,逐渐缓慢向左移动,直至从最左边移出;时间、日期可调,按外部中断键时间暂停,进入时间日期设置,此时可以矩阵键盘输入时间日期,输入完后再按一下外部中断键时间按照设置的值接着走。二、总体方案设计及程序设计思路:1、主程序:功能1赋初始值,功能2查询44H是否为0,移动显示完一位后,44H减1 ,每一轮显示23位后,44H减到0,则跳转到RESTAR,每滚动显示完一轮,将显示内容的初始地址重置为50H,不断循环滚动显示。外部中断0用于:CPL TR1,每按一次外部中断按键,对TR1取反,关掉定时器1,
5、此时数码管还是移动显示,但时间不走; CPL F0,用于定时器0中判断是否扫描矩阵键盘,时间正常走时不扫键盘,当按下外部中断后,取反F0,进行键盘扫描;MOV R1,#2FH ,每次按外部中断后,给R1 重新赋值,让每次键盘扫描时都将扫描到的第一个键值赋给30H2、定时器0:功能1数码管的滚动动态显示时间日期,定时器0设置为2mS中断一次,每中断一次动态显示1位数码管,设置标志位(40H=#8),每中断一次40H减1、存首地址的R0增1、存位码的R3左移1位,进入下一次中断后显示第二位值,按该规律不断对40H、R0、R3的值进行修改,直至40H等于0,当40H等于0时表明已经动态显示了8位,重
6、新赋要显示数存的初始首地址R0=50H、位码R3=80H和40H=8,进入下一轮对相同初始首地址动态显示。这样循环250次以后,动态显示的初始首地址增1,再进入与之前同样的循环,每动态显示完8位,从新赋要显示数存的初始首地址、位码R3=80H和40H=8,每动态显示完250位后,向左边移动一位,如此循环,当移动了23位(灭灯的7位+显示时、分、秒、年、月、日和中间间隔的16位)后,回到最初刚开始滚动显示的状态,开始新一轮的滚动显示,如此不断循环。字节单元50H6DH存储的值对应于定时器要滚动动态显示的内容(50H56H和67H6DH存的#10H对应的数码管段码为熄灭,让显示效果为所有显示的数都
7、是从最右边一直移动到最左边,57H对应小时十位,58H对应小时个位,59H对应“”的段码,5AH对应分钟十位,5BH对应分钟个位,5AH对应“”的段码,5DH对应秒钟十位,5EH对应秒钟个位,60H对应年份十位,61H对应年份个位,62H对应月份十位,63H对应月份个位,64H对应日期十位,65H对应日期个位)。功能2定时器0还用于矩阵键盘扫描,每中断250次(大概为250*2mS)后判断标志位F0是否位1,如果为1,则调用键盘扫描子程序。键盘扫描子程序中不仅判断是否有按键按下,如果有按下,通过查表法找到对应的预定义的按键值,并将每次按键值赋给以30H为首地址的连续字节单元,还将以30H为首地
8、址的连续字节单元的内容赋给定时器0对应显示时、分、秒、年、月、日的字节地址,以供定时器0显示设置的时间日期。3、定时器1:功能1计时,每计时完1秒,秒字节地址中的值增1,满60秒分节地址中的值增1,满60分小时节地址中的值增1如此不断向高位进位。功能2将时、分、秒、年、月、日对应的字节地址进行处理,将处理结果赋给定时器0对应显示时、分、秒、年、月、日的字节地址,以供定时器0显示实时时间。第三章 总框图及总体软件设计说明8255(1)LED8LED15矩阵键盘数码管位码数码管断码外部中断0按键LED0LED7AT89S51一、总框图: PAPB PC PA8255(2)图18255用于扩展外部端
9、口,8255(1)的地址为0FE00H0FE03H,PA口地址0FE00H ,PB口地址0FE01H, PC口地址0FE02H,控制口地址:0FE03H。8255(2)的地址为0FD00H0FD03H,PA口地址0FD00H ,PB口地址0FD01H, PC口地址0FD02H,控制口地址:0FD03H。二、总体软件设计说明:程序设置57H66H字节地址为存储时分秒年月日的区域,定时器0将该区域的内容进行滚动动态显示,定时器0还对预设的标志位进行判断,看是否要进行矩阵键盘扫描,如果需要则调用键盘扫描子程序,对矩阵键盘进行扫描并将扫描的到键值进行处理,赋给57H66H字节地址,以供定时器0对正在设
10、置的时间值进行显示。定时器1计时并对时分秒年月日的进位进行处理,并将处理后的数据赋值给57H66H,以供定时器0对实时时间进行显示。外部中断0对TR1取反,关掉定时器1,此时数码管还是移动显示,但时间不走,进入时间日期的设计。对F0取反,F0用于定时器0中判断是否扫描矩阵键盘,时间正常走时不扫键盘,当按下外部中断后,取反F0,进行键盘扫描。第四章 接口电路逻辑图及硬件设计说明,或系统资源使用说明一、接口电路逻辑图:图2图3二、接口电路逻辑图说明:单片机AT89S51的P1口接LED0LED7 8个数码管,P0口接8255用于扩展端口,8255PA口接数码管段码输入,PB口接数码管位码输入,PC
11、矩阵键盘。三、硬件设计说明及系统资源使用说明:外部中断0按键INT0用于设置时间日期,按一下时间不走,但照样滚动显示,进入时间日期的设置,此时可以用矩阵键盘输入特定的时间,输入完后,再按一下外部中断0按键INT0,退出时间日期设置,同时时间按照输入的时间开始走。数码管用于滚动显示时间日期。下图是显示格式(H小时,M分钟,S秒,Y年,M月,D日)HHMMSS YYMMDD图4矩阵键盘用于设置时间日期是的输入。下图对应各个按键的键值。1 2 3 45 6 7 89 0 A BC D E F图5第五章 主要子程序框图及其设计说明一、外部中断流程图:进入外部中断CPL TR1,每按一次外部中断按键,对
12、TR1取反,关掉定时器1,此时数码管还是移动显示,但时间不走,进入时间设置CPL F0,F0用于定时器0中判断是否扫描矩阵键盘,时间正常走时不扫键盘,当按下外部中断后,取反F0,进行键盘扫描MOV R1,#2FH ,每次按外部中断后,给R1 重新赋值,让每次键盘扫描时都将扫描到的第一个键值赋给30HACALL DEL1S,调用延时子程序,防止中断在按键没有放开是一直有效,重复中断退出外部中断图6外部中断0说明:外部中断0对TR1取反,关掉定时器1,此时数码管还是移动显示,但时间不走,进入时间日期的设计。对F0取反,F0用于定时器0中判断是否扫描矩阵键盘,时间正常走时不扫键盘,当按下外部中断后,
13、取反F0,进行键盘扫描。定时器0说明:程序设置57H66H字节地址为存储时分秒年月日的区域,定时器0将该区域的内容进行滚动动态显示,定时器0还对预设的标志位进行判断,看是否要进行矩阵键盘扫描,如果需要则调用键盘扫描子程序,对矩阵键盘进行扫描并将扫描的到键值进行处理,赋给57H66H字节地址,以供定时器0对正在设置的时间值进行显示。三、定时器1流程图:N24小时到?分单元清零,时单元加1NNNYY时单元清零,日加1 Y开始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY时单元清零,日单元加1YN月单元清零,年单元加11个月到?日单元清零,月单元加11天到? N10年到?
14、 N Y年单元清零将小时(48H)除以10,商赋给57H(动态显示对应的小时十位),余数赋给58H(动态显示对应的小时个位)将分钟(49H)除以10,商赋给5AH(动态显示对应的分钟十位),余数赋给5BH(动态显示对应的分钟个位)将秒钟(4AH)除以10,商赋给5DH(动态显示对应的钟秒钟十位),余数赋给5EH(动态显示对应的秒钟个位)将年份(4BH)除以10,商赋给60H(动态显示对应的年份十位),余数赋给61H(动态显示对应的年份个位)将月份(4CH)除以10,商赋给62(动态显示对应的月份十位),余数赋给63H(动态显示对应的月份个位)将日期(4DH)除以10,商赋给64H(动态显示对应
15、的日期十位),余数赋给65H(动态显示对应的日期个位)中断返回定时器1说明:定时器1计时并对时分秒年月日的进位进行处理,并将处理后的数据赋值给57H66H,以供定时器0对实时时间进行显示。四、键盘扫描子程序流程图:将行列位置编码与表格中的数据进行对比,每对比1次,R4加1,当找到表格中的相等的值时,R4的值就是按下的按键对应的值不相等,有按键按下退出键盘扫描相等,没有按键按下将列扫描时有效的高4位和行扫描时有效的低4位组合成 8位的行列位置编码,并将其与0FFH比较置列线为1,行线为1,再读PC口值,将其和0FH相与,取有效低四位初始化8255置列线为0,行线为1,再读PC口值,将其和0F0H
16、相与,取有效高四位初始化8255CPL P1.1,用于指示是否在扫键盘开始CPL P1.41.7,用于指示扫描到键值扫描到的键值要赋给的目标地址增1键值赋给的目标地址将扫描到的第1个键值(30H)乘以10并加上扫描到的第2个键值(31H),并赋给48H(时)将扫描到的第3个键值(32H)乘以10并加上扫描到的第4个键值(33H),并赋给49H(分)将扫描到的第4个键值(34H)乘以10并加上扫描到的第5个键值(35H),并赋给4AH(秒)将扫描到的第6个键值(36H)乘以10并加上扫描到的第7个键值(37H),并赋给4BH(年)将扫描到的第8个键值(38H)乘以10并加上扫描到的第9个键值(3
17、9H),并赋给4CH(月)将扫描到的第10个键值(3AH)乘以10并加上扫描到的第11个键值(3BH),并赋给4DH(日)将扫描到的第 112个键值赋给定时器0滚动动态显示对应的小时的十位、个位,分钟的十位、个位,秒钟的十位、个位,年分的十位、个位,月份的十位、个位,日期的十位、个位,CPL P1.2,用于指示键盘扫描完成,并赋值成功退出键盘扫描矩阵键盘子程序说明:每中断250次(大概为250*2mS)后判断标志位F0是否位1,如果为1,则调用键盘扫描子程序。键盘扫描子程序中不仅判断是否有按键按下,如果有按下,通过查表法找到对应的预定义的按键值,并将每次按键值赋给以30H为首地址的连续字节单元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89S51 课程设计 报告 电子钟 滚动 显示 时间 日期 矩阵 键盘 设置
链接地址:https://www.31ppt.com/p-5030185.html