电子日历课程设计报告

  • 格式:doc
  • 大小:116.50 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与技术学院

微机原理与接口技术

课程设计报告

题目名称:电子日历

学生姓名:宋涛

学号: 2011508180 专业年级:电信11级

指导教师:裘祖旗

时间: 2014-01

目录

1、课程设计题目及要求 (3)

1.1课程设计的题目:电子日历 ............................ .3

1.2课程设计的要求: (3)

2、功能设计 (3)

2.1、功能模块: (3)

3、详细设计: (4)

3.1、设计方法: (4)

3.2、各功能模块及流程图 (4)

4、运行结果 (6)

5、课程设计总结 (7)

6、参考文献: (8)

附录:源程序 (8)

1、课程设计题目及要求

1.1课程设计的题目:电子日历

1.2课程设计的要求:

6位LED数码管显示年、月、日,年只显示2位,如13;

扩展功能:能切换到用最后一个数码管显示星期几

2、功能设计

2.1、功能模块:

显示模块

利用数码管的显示功能来设计。数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这八个发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的字符和数字。电子日历用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。该模块主要是将运算模块算出来并存放在内存单元里的十六进制表示的年和月数据转化为十进制,并通过数码管显示出来。该模块实现的硬件是7SEG-MPX6-CA。

运算模块

该模块的主要功能是对年、月、日的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择8255A定时/计数器来提供,但又因为8255A所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值符合要求时,才能让秒单元内的数值加1。另外,在中断服务程序里,必须对日、月和年

的单元内的数值进行判断。

延时模块

该模块主要是为了更好的观察日期变化而设置的,有一个合适的变化速度,利于调试观察。

3、详细设计:

3.1、设计方法:

电子日历主要由显示模块、延时模块和运算模块三大部分组成。其中延时模块和运算模块要对年、月、日的数值进行操作,并且日的计算要根据月份来判断,1,3,5,7,8,10,12月为31天,4,6,9,11月为30天,2月份则根据当年是否为闰年判断,闰年29天,非闰年28天,而且月份满12要向年进1自己清零并加1;年计算个位数满10向十位进1自己清零。这样,才能循环记时。

数据段中存储CONT,NIAN,YUE,RI,LED,SEGTAB数据段。其中CONT用来存放计数值,起延时作用。NIAN用来存放年信息。YUE用来存放月信息。RI数据段存放日信息。LED用来存放当前日历初值信息, SEGTAB存储0~9数字的电子显示方式。

在代码段中主函数通过调用各子程序来执行相应的功能。START1 函数通过调用JINIAN对年进行计算。通过调用YUEJIE对月进行计算。通过调用DISP在数码管上显示日期信息。

3.2、各功能模块及流程图

运算时间的模块

首先对年进行判断,是

否为平,闰年

对月份进行判断,1,3,7,

8,10,12为31天,4,

6,,9,11为30天,2,

平年28天,闰年29天

根据月份的判断,选择天

数的大小

运算完成后送入显示模块

将数字显示成数码管的形式的DISP子程序

延时模块

第一次延时

CMP CONT,60

判断是否大于60,

是则继续往下进

行,否则循环计

数,直到60为止

第二次延时

YS: MOV CX,200

4、运行结果

5、课程设计总结

通过此次课程设计,使我更加扎实的掌握了有关微机原理方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。

我认为,在这学期的实践中,不仅培养了独立思考、动手操作的能力,在各种其它

能力上也都有了提高。更重要的是,在实践课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

6、参考文献:

[1] 《IBM-PC汇编语言程序设计》沈美明清华大学出版社 2001年8月第2版

[2] 《微机系统和接口应用技术》朱世鸿著清华大学出版社 2006年9月第1版

[3] 《微型计算机技术及应用》戴梅萼史嘉权著清华大学出版社 2008年2月第1版

附录:源程序

DA TA SEGMENT

CONT DW 0H

NIAN DB 99

YUE DB 12

RI DB 20

LED D B 1,2,3,4,5,6

SEGTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DA TA ENDS

CODE SEGMENT ;

ASSUME DS:DA TA,CS:CODE

IOA EQU 8000H; 1000,0000,0000,0000

IOB EQU 8002H; 1000,0000,0000,0010

IOC EQU 8004H; 1000,0000,0000,0100

IOCON EQU 8006H; 1000,0000,0000,0110

START:

MOV AL,90H ;1001,0000B

MOV DX,IOCON