微机原理与接口综合设计.docx
- 文档编号:2178640
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:18
- 大小:217.22KB
微机原理与接口综合设计.docx
《微机原理与接口综合设计.docx》由会员分享,可在线阅读,更多相关《微机原理与接口综合设计.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理与接口综合设计
学生实训设计报告
设计题目:
时钟控制系统设计
院别:
专业:
班级:
姓名:
学号:
指导教师:
教务处制
二零一零年七月二日
课程名称:
微机原理与接口综合设计课程代码:
09402707
实训周数:
1学分:
1
实训单位:
机电学院实训地点:
机电学院
实训时间:
2010-6-28至2010-7-2
设计说明书
一.课程设计任务与要求3
二.课程设计过程3
1.中断程序设计3
2.8259A中断屏蔽与恢复4
3.8253初始化程序设计5
4.中断服务程序的编写5
5.DOS功能调用5
6.时间调整模块设计6
7.硬件电路图6
三.软件思想7
1.主流程图8
2.时间显示流程图9
3.日期显示流程图10
附录A:
源程序及程序注释11
参考文献17
四.心得体会总结18
时钟控制系统设计
一、课程设计任务与要求
1.设计一个时钟,可以显示时、分、秒、日、月、年,并可以调整。
2.利用PC系列微机现有的硬件和软件资源,编写程序,使在CRT屏幕上显示XXXX年XX月:
XX日:
XX(时):
XX(分):
XX(秒),并且每秒钟更新一次显示。
3.编写程序,利用主机内的8253/8254-2的计数器0产生10ms对称方波输出,该输出送至IRQ0使8259A每10ms产生一次中断,100次中断后秒量+1,然后调整年、月、日、时、分、秒并显示在屏幕上。
程序从按下任意键开始显示数据区中存放的时间值,运行中按下空格键则停止运行返回DOS。
4.调整程序,直至运行正常。
二、课程设计过程
1.中断程序设计
(1)IBMPC/XT系统板上使用了一片8253-5,其地址40~43H,其中0通道工作于方式3,每55ms向中断控制器8259A的IRQ端发一次中断请求。
此定时中断的用途之一是系统报时。
现在借用原有电路,重新设置定时器、编写服务程序来做硬件时钟实验,为此程序开始应首先保护原系统的08H中断的中断向量(中断服务程序入口地址),以便程序退出时恢复原系统的设置。
保护原系统08H中断矢量可用DOS35H功能调用读出加以适当保存,也可以用以下指令,将中断矢量压入堆栈保存。
CLI;关中断
CLD;DF=0
MOVAX,0000H
MOVDS,AX;DS:
SI指向08中断矢量在中断矢量表中的位置
MOVSI,0020H
LODSW
MOVBX,AX;BX=原中断服务入口偏移地址
LODSW:
AX=原中断服务程序入口地址
PUSHAX;压栈保护
PUSHBX
(2)将现中断服务程序入口地址填入中断矢量表中除了可用DOS25H功能调用外也可使用以下指令。
MOVAX,0000H
MOVES,AX
MOVDI,0020H;ES:
DI指向08H中断矢量在中断矢量表中的存放位置
MOVAX,OFFSETTIMER
STOSW;写入中断服务程序的偏移地址
MOVAX,SEGTIMER
STOSW;写入中断服务程序的段地址
2.8259A中断屏蔽与恢复
借用系统用的08H中断还应注意保护原8259A的中断屏蔽寄存器内容。
读或写8259A的奇地址可以得到和改写IMR寄存器的内容。
执行
INAL,21H
PUSHAX
两条指令可以得到IMR的值并压入堆栈保护。
执行
MOVAL,0FCH
OUT21H,AL
两条指令又可以重写IMR,使之只开放时钟和键盘的中断。
在程序退出前又应恢复IMR值。
用
POPAX
OUT21H,AL
指令可以将原压堆栈保护的IMR值重新写入中断屏蔽寄存器。
3.8253初始化程序设计
MOVAL,00110110B;8253初始化,0通道,工作方式3,采用二进制
OUT43H,AL
MOVAX,11932;初值=11932
OUT40H,AL
MOVAL,AH
OUT40H,AL
4.中断服务程序的编写
中断服务程序主要完成秒,分,时的调整并重写入数据区中。
中断服务程序中所用寄存器如与主程序有冲突,应该在中断服务程序一开始用压栈指令保护主程序中寄存器内容,中断返回前用出栈指令恢复此内容。
注意,先压入的寄存器应该后弹出。
最后在中断返回前还应向8259A发中断结束命令,使8259A内的在服务寄存器中的相应位复位;
MOVAL,20H
OUT20H,AL
5.有关字符输入的DOS功能调用
直接控制台输入输出(DOS6号功能调用)
调用格式;MOVDL,X
MOVAH,06H
INT21H
功能;从控制台(或键盘)输入或向屏幕输出字符。
本设计在程序运行过程中检测是否按下空格键或C键,按下空格键则停止运行返回DOS,按下C键则转到调整时间程序。
不按键则显示时间。
FOREVER:
MOVDL,0FFH;有键按下么?
MOVAH,06H
INT21H
JZDISP;无按键下则转显示DISP
CMPAL,20H;是有空格键么?
JZEXIT;是则退出
CMPAL,'C';是有C键么?
JZTET;是则调整时间
DISP:
LEADX,YEAR;不是则显示时间
MOVAH,09H
INT21H
6.时间调整模块设计
当程序运行过程中,若有C键按下,则关掉中断,设置好日期时间后打开中断
TET:
CLI;调整日期时间
PUSHAX
MOVAH,01H
INT21H
MOVYEAR,AL
……………
POPAX
STI
JMPFOREVER
7.硬件电路图
三、软件思想
主流程图和中断服务程序流程图
1.程序主流程图
2.时间显示流程图
3.日期显示流程图
附录A:
源程序及程序注释
PAGE60,78
STACKSEGMENT
DB256DUP(0)
STACKENDS
DATASEGMENT
COUNTDB100
YEARDB'2'
YEAR1DB'0'
YEAR2DB'0'
YEAR3DB'9'
DB'-'
MHDB'1'
MONTHDB'2'
DB'-'
TENDDB'2'
DATEDB'9'
DB'-'
TENHDB'2'
HOURDB'3:
'
TENMDB'5'
MINUTEDB'9:
'
TENSDB'5'
SECONDDB'5',0DH,'$'
DATAENDS
CODESEGMENT
STARTPROCFAR
ASSUMECS:
CODE,DS:
DATA
MOVAX,0
PUSHAX
MOVAH,01H;等待按键按下
INT21H
CLI
CLD
MOVAX,0
MOVDS,AX
MOVSI,0020H;DS:
SI指向08H中断向量
LODSW;取08中断入口的偏移地址
MOVBX,AX
LODSW;取08中断入口段地址
PUSHAX;压栈保护
PUSHBX
MOVAX,DATA;建立数据段的可寻址性
MOVDS,AX
MOVAX,0000H
MOVES,AX
MOVDI,0020H;ES:
DS指向08中断向量存放地址
MOVAX,OFFSETTIMER
STOSW;写入偏移地址
MOVAX,CS
STOSW;写入段地址
MOVAL,00110110B;8253初始化,0通道,3方式,HEX
OUT43H,AL
MOVAX,11932;将11932赋给AX初值
OUT40H,AL
MOVAL,AH
OUT40H,AL
INAL,21H;读8259的中段屏蔽寄存器IMR
PUSHAX
MOVAL,0FCH
OUT21H,AL;写IMR,只准许定时器和键盘中断
STI
FOREVER:
MOVDL,0FFH;有按下键没有?
MOVAH,06H
INT21H
JZDISP;无按键情况下则转显示DISP
CMPAL,20H;是有空格键吗?
JZEXIT;是则退出
CMPAL,'C';是有C键吗?
JZTET;是则调整时间
DISP:
LEADX,YEAR;不是则显示时间
MOVAH,09H
INT21H
MOVAL,SECOND;取秒单位值
WAITCHA:
CMPAL,SECOND;改变否?
JZWAITCHA;没改变则等待
JMPFOREVER;改变则跳到FOREVER
TET:
CLI;调整日期时间
PUSHAX
MOVAH,01H
INT21H
MOVYEAR,AL
MOVAH,01H
INT21H
MOVYEAR1,AL
MOVAH,01H
INT21H
MOVYEAR2,AL
MOVAH,01H
INT21H
MOVYEAR3,AL
MOVAH,01H
INT21H
MOVMH,AL
MOVAH,01H
INT21H
MOVMONTH,AL
MOVAH,01H
INT21H
MOVTEND,AL
MOVAH,01H
INT21H
MOVDATE,AL
MOVAH,01H
INT21H
MOVTENH,AL
MOVAH,01H
INT21H
MOVHOUR,AL
MOVAH,01H
INT21H
MOVTENM,AL
MOVAH,01H
INT21H
MOVMINUTE,AL
POPAX
STI
JMPFOREVER
EXIT:
CLI;有空格键按下则退出
CLD
POPAX
OUT21H,AL;恢复IMR
MOVAL,36H;8253初始化,55MS
OUT43H,AL
MOVAL,0
OUT40H,AL
OUT40H,AL
MOVAX,0;恢复08H中断的中断向量
MOVES,AX
MOVDI,4*8
POPAX
STOSW
POPAX
STOSW
STI
RET
TIMERPROCFAR;中断服务程序
PUSHAX
DECCOUNT
JNZL2;不到1秒L2
MOVCOUNT,100;到1秒,重置COUNT,并修改时间
INCSECOND
CMPSECOND,'9'
JLETIMEXT
MOVSECOND,'0'
INCTENS
CMPTENS,'6'
JLTIMEXT
MOVTENS,'0'
INCMINUTE
CMPMINUTE,'9'
JLETIMEXT
MOVMINUTE,'0'
INCTENM
CMPTENM,'6'
JLTIMEXT
MOVTENM,'0'
JMPL3
L2:
JMPTIMEXT
L3:
MOVAL,HOUR:
取时个位,时十位,组合成BCD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 综合 设计