电子日历课程设计完整版Word文件下载.docx
- 文档编号:18944650
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:347.12KB
电子日历课程设计完整版Word文件下载.docx
《电子日历课程设计完整版Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子日历课程设计完整版Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
叶友波
课程设计名称:
学科基础课硬件课程设计
设计题目:
完成期限:
自2009年8月31日至2009年9月11日共2周
设计依据、要求及主要内容(可另加附页):
⒈设计任务:
(1)电子钟具有显示年、月、日、时、分、秒及星期功能,可识别闰年.
(2)给出流程图,编写并调试程序。
(3)撰写设计报告。
⒉设计要求:
⑴完成系统的软件设计及调试。
⑵完成系统的硬件设计及调试。
⑶自行设计系统原理图及程序流程图。
指导教师(签字):
教研室主任(签字):
批准日期:
摘要
电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
本次设计可分为两部分:
硬件系统、软件系统。
硬件主要有:
8088CPU,38译码器,LED数码管显示器等。
通过键盘的按键来决定显示的是年月日还是时分秒。
利用proteus仿真软件进行仿真测试。
关键词:
电子日历;
LED数码管;
proteus仿真
目录
1课题描述1
2设计过程2
2.1硬件电路原理2
2.1.1LED显示2
2.2软件设计思想及流程图4
2.2.1.软件设计思想4
2.2.2程序设计模块4
2.2.3汇编源程序10
3测试14
总结14
参考文献16
1课题描述
在现今的电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
利用LED显示器能显示出当前的时间包括年月日时分秒并且能计算出闰年的功能的电子日历装置。
由于LED显示器只有六个数码管所以不能同时显示年月日和时分秒。
所以通过键盘的按键来决定显示的是年月日还是时分秒,利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求
2设计过程
2.1硬件电路原理
一、实现电子钟计时的基本方法:
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×
1/12MHz×
12μs=50000μs
X=15536→0011110010110000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2.1.1LED显示
6个LED数码显示可以采用P0、P2口实现。
此次设计是基于MCS-51对LED的接口,选用八段共阳LED。
八段LED显示管由八只发光二极管组成,编号是a,b,c,d,e,f,g和SP,分别与同名管脚相连。
八段LED数码显示管原理很简单,是通过同名管脚上所加电平的高低来控制发光二极管是否点亮从而现实不同的字形的。
如图2.1为共阳八段LED数码显示管原理图。
图2.2中,所有发光二极管阳极共连后接到G脚。
正常显示时G脚接+5V,各发光二极管是否点亮取决于a~SP各引脚上是否是低电平0伏。
2.1LED显示结构2.2LED显示原理
2.1.2电路原理设计
2.3电路原理图
2.2软件设计思想及流程图
2.2.1.软件设计思想
程序的设计主要有T0中断服务程序,动态显示程序,数字分离程序,键盘扫描程序,键处理程序,设置时间,设置年月日初值,判闰年程序,清除显示缓冲区程序这几个功能模块。
运用汇编语言,设计一个简单的电子日历,在6位LED七段显示器动态的显示出来年、月、日、和时、分、秒,实现计时,秒到60,分加1分到60,时加1在通过键盘按键的切换小时到24时天加1,由于公历是比较有规律的,1、3、5、7、8、10、12月为大月,每月31天;
4、6、9、11月为小月,每月只有30天;
而2月份,则要根据当前的年份来决定,平年,2月份有28天,闰年,2月份有29天。
所以处理2月份天数前要先判断是平年还是闰年。
因为每个月份的天数不同,则需要设置一个月值表,通过查表找到相应月的天数,先判断到哪个月份,再从月份表中查出此月份的天数值。
实现月加1,月到12时候年再加1.,还需请注意:
平年与闰年的二月份的天数不同,平年二月28天,闰年的二月29天。
2.2.2程序设计模块
1.本程序采用模块化设计的方法,主要由主函数,显示模块,判断是否闰年模块,提取系统日期模块组成
以下是对各个模块的说明:
(1)主函数。
主函数体现着本程序设计的基本思路。
从程序流程图上可以看到主函数执行的过程,这里不再赘述。
需要注意的是主程序中有一段循环结构,其作用是为了等待停止中断服务的申请,即键盘按键,一旦检测到有键盘按键,则跳出循环,根据按键的内容来判断下一步应要做什么。
(2)显示模块。
程序中INITJM子程序,作为显示界面的初始化程序,主要实现显示输入字符提示语和显示当前日期的提示语,根据光标定位的不同分别将其显示在不同的位置
2.主要模块流程图
2-2-1主程序流程图
3.数字分离程序
R0为计时单元地址,R1为显示缓冲区地址。
因为时分秒,都需分离,则设置R2的循环次数为3。
先将41H单元内的时传送给累加器A,再与0F与,保留低四位,这样就使得时的低位被分离出来了。
分离后送与显示缓冲区R1的50H单元。
再将41H单元内的时传送给累加器A,使高低位交换。
交换之后,再与0F进行与运算。
使时的高位也分离出来,并送给显示缓冲区的51H单元内。
分和秒的分离方法与时一样,最终的分离结果为:
时分秒在50H—55H内显示。
同理,年月日,其分离方法也是同时分秒的分离原理一样。
其分离程序的流程图如下所示:
2-2数字分离流程图
4.设置年月日初值程序
先清除显示区的内容,因为年是四位,而月日是一起显示也是4位,所以将R0指向显示区53H单元并设置循环次数为4,再调用键盘扫描程序,判断是否有键按下设置年,然后将R0指向30H单元,键值区。
等到输入四个数,即年份。
这是年份在数码管上的显示,再将其低、高两位分别存放在46H,47H存储区内。
其设置月日的的方法与设置年的方法也是一样的,但将日月分别存放在44H、45H存储区里。
2-3设置年月日初值程序流程图
5.动态显示程序
动态显示程序实现的功能是将年月日,时分秒在LED管中显示出来。
使用第一组工作寄存器组,再调用数字分离程序,数字分离程序能将键如的数值在LED数码管正确显示出来。
然后设置循环次数为6再将其存入R2中,,再将R3,R0分别指向地址为01H和50H。
将显示管字型表首址放如DPTR中再将50H单元的内容送到A中,接着R0加1,查字型码表。
循环6次查字型码表即可在LED上显示出时分秒,年月日。
2-4动态显示程序流程图
6.判断闰年
因为年是四位,而月日是一起显示也是4位。
让A指向46H单元,判断里面的内容是不是世纪年,若是世纪年,则要判断能不能被400整除。
能就是闰年,不能就不是;
若不是世纪年,要判断能不能被4整除,不能被100整除。
满足这两个条件就是闰年,不满足就不是。
在判断过程中,使用A中的高低位互换,再让A中的内容与03H相与,若结果为0,则是闰年,若不为0,则不是闰年。
2-5判断闰年流程图
2.2.3汇编源程序
主程序
LP1:
MOVAH,1;
从键盘输入单个字符
INT21H
CMPAL,'
M'
;
AL='
?
JNELP5
CALLDATE;
显示系统日期
LP2:
MOVAH,1;
CALLTIME;
显示系统时间
LP3:
JNELP4
CALLSTOPWATCH;
显示秒表
LP4:
CALLRING
LP5:
CMPAL,'
Q'
JNELP1
MOVAH,4CH;
返回DOS状态
;
---------------------------------------------------------------
显示日期子程序
DATEPROCNEAR
DISPLAY:
MOVAH,2AH;
取日期CX:
DH:
DL=年:
月:
日AL=星期
MOVSI,0
MOVAX,CX
MOVBX,100
DIVBL
MOVBL,AH
CALLBCDASC1;
日期数值转换成相应的ASCII码字符
MOVAL,BL
CALLBCDASC1
INCSI
MOVAL,DH
MOVAL,DL
MOVBP,OFFSETDBUFFER1
MOVDX,0C0DH
MOVCX,20
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAH,02H;
设置光标位置
MOVDX,0300H
MOVBH,0
MOVBX,0018H
REPEA:
MOVCX,0FFFFH;
延时
REPEAT:
LOOPREPEAT
DECBX
JNZREPEA
MOVAH,01H;
读键盘缓冲区字符到AL寄存器
INT16H
JEDISPLAY
JMPLP2
MOVAX,4C00H
RET
DATEENDP
------------------------------------------------------
显示时间子程序
TIMEPROCNEAR
DISPLAY1:
MOVAH,2CH;
取时间CH:
CL=时:
分DH:
DL=秒:
1/100秒
MOVAL,CH
CALLBCDASC;
将时间数值转换成ASCII码字符
MOVAL,CL
CALLBCDASC
MOVBP,OFFSETDBUFFER
MOVAH,02H
RE:
MOVCX,0FFFFH
REA:
LOOPREA
JNZRE
MOVAH,01H
JEDISPLAY1
JMPLP3
TIMEENDP
显示秒表子程序
STOPWATCHPROCNEAR
DISPLAY2:
PUSHA
CALLWATCH
DISP3:
MOVAX,DATA
MOVDS,AX
MOVAL,WHOUR
CALLBCDASC2;
MOVAL,WMIN
CALLBCDASC2
MOVAL,WSEC
MOVAL,WMSEC
MOVBP,OFFSETDBUFFER2
RE2:
REA2:
LOOPREA2
JNZRE2
JEDISPLAY2
POPA
JMPLP4
STOPWATCHENDP
3测试
利用proteus仿真软件进行仿真测试,测试结果如下:
总结
“纸上得来终觉浅,心中感悟方能深”,作为一种实践取向和经验取向的课程,综合实践活动比其他任何形式的课程都注重过程的教育价值。
从某种意义上说,综合实践活动的设计与实施反映了一种“实践哲学”或“过程哲学”。
因此,处理好过程与结果的关系,是综合实践活动的基本要求。
实践中自主地提出问题,运用已有的知识和经验来尝试问题解决,获得丰富的经验,体验问题解决的基本方法,发展实践能力和良好的情感态度及个性。
综合实践活动为学生的发展提供一种开放的发展空间和发展机会。
这种发展空间和机会是开放的经过此次综合实践设计过程,收获了不少东西,要认真理解课本上的程序与知识点,课下也经常需要上机实践,这样才能使诸多理论实践,实践成功才是真正的理解与领会。
这次硬件部件设计与调试实践,使我学习了很多的东西。
通过两个礼拜的学习和实践,使我对所学的知识进行了系统的复习和巩固,同时,通过课设,培养和锻炼了我的动手能力,这一点非常重要,不仅对我以后的学习有帮助,还可以为以后的工作打下一定的基础。
这一次的课设对我的帮助很大,使我真正的认识到了理论与实际的区别,这将成为我的学习目标和动力,更进一步的挖掘自己的能力,使自己获得进一步的提高。
这段时间的学习,使我了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过和老师、同学交流,加强了自身的分析问题、解决问题的能力。
同时,我也发现了自己在某些方面的不足,这是我以后要加以改进的方面。
在组织电路图的过程中使我也学会了如何搭建单片机的硬件电路,如何根据硬件电路图来编制相误码的程序,使我对硬件课程的学习有了更浓的兴趣,使我对我所学的这个方向服了更浓的兴趣。
虽然在做课设的过程中遇到过许多困难,犹其是思路一开始不正确的时候也产生过放弃的念头,但最终还是坚持了下来,终于把这个课设完整圆满的做完了。
经过这次的练习,我会更加严格要求自己,认真对待每一个课设,认真学好计算机控制这门课,争取有一个新的提高。
参考文献
[1]李建忠编著.单片机原理及应用.西安:
西安电子科技大学出版社,2002
[2]李群芳,肖看编著.单片机原理、接口及应用.北京:
清华大学出版社,2005
[3]于海生编著.微型计算机控制技术.北京:
清华大学出版社,2008
[4]戴梅萼,史嘉权编著.微型计算机技术及应用(第3版).北京:
[5]江晓安,董秀峰编著.数字电子技术(第二版).西安:
西安电子科技大学出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 日历 课程设计 完整版