微机原理课程设计--8253定时中断时钟

微机原理课程设计--8253定时中断时钟

ID:16298206

大小:80.00 KB

页数:14页

时间:2018-08-09

微机原理课程设计--8253定时中断时钟_第1页
微机原理课程设计--8253定时中断时钟_第2页
微机原理课程设计--8253定时中断时钟_第3页
微机原理课程设计--8253定时中断时钟_第4页
微机原理课程设计--8253定时中断时钟_第5页
资源描述:

《微机原理课程设计--8253定时中断时钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告(2013—2014年度第一学期)名称:微机原理及应用题目:8253定时中断时钟院系:控计学院班级:学号:学生姓名:指导教师:设计周数:1周成绩:日期:2013年12月30日课程课程设计(综合实验)报告目录一、课程设计的目的与要求21.课程设计的题目22.课程设计的要求2二、设计正文21.基本原理22.代码示例2三、课程设计总结6四、参考文献7附录71.程序源码72.程序流程图1313课程课程设计(综合实验)报告一、课程设计的目的与要求1.课程设计的题目题目:用8253定时器实现屏幕上的日历时钟,带有年月日时分秒(1人)在DOS屏幕上右上角

2、动态显示日期、时间,要求格式:年-月-日时:分:秒。要求采用8253定时器中断方式实现定时及显示刷新。2.课程设计的要求通过对微机系统分析和具体设计,使学生对所学课程的理解。培养分析能问题,解决问题的能力。要求学生掌握汇编语言程序设计的基本方法,学会典型接口的基本设计方法二、设计正文1.基本原理获取系统时间与日期的方式有两种,比较简单的途径是直接用DOS时间与日期功能调。比如:向量号为21,功能号为2A,可以调出系统的时间,分别存放在DX和CX之中;向量号为21,功能号为2C可以调出系统的日期,年月日信息存储在DX和CX中;向量号为1A,功能号为02,

3、也可以调用系统时间,同样存放在DX和CX中,不过是以压缩BCD码的形式存放的;向量号为1A,功能号为04可以调出系统的日期,以BCD码的形式存放在DX和CX中。编程的时候就会发现,后者比前者使用起来方便很多,因为显示的时候要用到ASC码,压缩BCD码可以通过与30H相加,便可以得到相应的ASC码。而前者存储方式十六进制的,所以必须先转换成BCD码,在转换成ASC码,而十六进制与BCD码之间的转换比较复杂。2.代码示例用1A向量实现,程序代码如下:MOVAH,02HINT1AHPUSHDXPUSHCXMOVAH,04HINT1AHPUSHDXPUSHCX

4、13课程课程设计(综合实验)报告这段代码执行后,查看堆栈得:1420020117170752,时间为:2014年1月2日17点17分52秒用21号向量实现,程序代码如下:MOVAH,2CHINT21HPUSHDXPUSHCXMOVAH,2AHINT21HPUSHDXPUSHCX代码执行后,查看堆栈得:DE07020117114016,当前系统时间用16进制表示的,换算之后,可以得到:2014年1月2日17点23分22秒另一种方式就是题目所要求的,利用8253的55MS中断产生定时,不过仍然需要读一次系统的时间,作为计时开始的基准。8253每过50MS,

5、就会申请一次中断,向量号为1C。通过修改这个中断向量,使其指向自己编写的中断服务程序入口。通过计算中断的次数,便可以得到从计时开始到当前时刻的时间。程序的数据段定义如下:DATASSEGMENTCOUNTDB0TEMPDB3DUP(0)TIMEDW0,':',0,':',0,'$'DATEDW0,0,'-',0,'-',0,'$'INT_SEGDW?INT_OFFDW?DATASENDS每次进入中断服务程序,COUNT加一,加到18的时候,便可以计为一秒。TEMP用来存放当前时刻的压缩BCD码,比如:18:37:50,则TEMP中存放18H,37H,5

6、0H。由于显示的时候,必须用ASC码,所以TEMP中的数据不能直接用于显示,需通过下面的TRANSPROC进行转换:TRANSPROC;BCD-ASC码转化,入口AL,出口AXPUSHCXPUSHDXMOVBL,ALMOVBH,ALMOVCL,4SHRBL,CL13课程课程设计(综合实验)报告ADDBL,30HANDBH,0FHADDBH,30HMOVAX,BXPOPDXPOPCXRETTRANSENDP此过程的入口参数为AL,用来存放时刻的压缩BCD码,出口为AX,存放的是转化后的ASC码形式。比如:压缩BCD码18H,转换之后为3138H,就可以直

7、接用来显示。转换思想为:取前四位=01H,加上30H,得到31H,同样取出后四位=08H,加上30H,得到38H。转化之后的结果存入TIME中,用来显示,转换过程的代码如下:MOVSI,OFFSETTEMPMOVDI,OFFSETTIMEMOVAL,[SI]CALLTRANSMOV[DI],AXMOVAL,[SI+1]CALLTRANSMOV[DI+4],AXMOVAL,[SI+2]CALLTRANSMOV[DI+8],AX;将时间的ASC码送入TIME中断向量的修改通过下面代码实现:MOVAX,351CHINT21HMOVAX,ESMOVINT_SE

8、G,AXMOVINT_OFF,BX;保存原中断向量CLIMOVAX,251CHMOVDX,SE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。