微机原理与接口综合设计(19页).doc
《微机原理与接口综合设计(19页).doc》由会员分享,可在线阅读,更多相关《微机原理与接口综合设计(19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、- 学 生 实 训 设 计 报 告 设计题目: 时钟控制系统设计 院 别: 专 业: 班 级: 姓 名: 学 号: 指导教师: 教务处制 二零一零年七月二日课程名称:微机原理与接口综合设计 课程代码: 09402707 实训周数: 1 学 分: 1 实训单位: 机电学院 实训地点: 机电学院 实训时间: 2010-6-28至2010-7-2 设计说明书目录一.课程设计任务与要求3二.课程设计过程31.中断程序设计32. 8259A中断屏蔽与恢复43. 8253初始化程序设计54.中断服务程序的编写55. DOS功能调用56.时间调整模块设计67.硬件电路图6三.软件思想71.主流程图82.时间
2、显示流程图93.日期显示流程图10附录A:源程序及程序注释11参考文献17四.心得体会总结18时钟控制系统设计一、课程设计任务与要求1.设计一个时钟,可以显示时、分、秒、日、月、年,并可以调整。2.利用PC系列微机现有的硬件和软件资源,编写程序,使在CRT屏幕上显示XXXX年XX月:XX日:(时):(分):(秒),并且每秒钟更新一次显示。3.编写程序,利用主机内的8253/8254-2的计数器0产生10ms对称方波输出,该输出送至IRQ0使8259A每10ms产生一次中断,100次中断后秒量+1,然后调整年、月、日、时、分、秒并显示在屏幕上。程序从按下任意键开始显示数据区中存放的时间值,运行中
3、按下空格键则停止运行返回DOS。4.调整程序,直至运行正常。二、课程设计过程1. 中断程序设计(1)IBM PC/XT系统板上使用了一片8253-5,其地址4043H,其中0通道工作于方式3,每55ms向中断控制器8259A的IRQ端发一次中断请求。此定时中断的用途之一是系统报时。现在借用原有电路,重新设置定时器、编写服务程序来做硬件时钟实验,为此程序开始应首先保护原系统的08H中断的中断向量(中断服务程序入口地址),以便程序退出时恢复原系统的设置。保护原系统08H中断矢量可用DOS 35H功能调用读出加以适当保存,也可以用以下指令,将中断矢量压入堆栈保存。CLI ;关中断CLD ;DF=0M
4、OV AX,0000HMOV DS,AX ;DS:SI指向08中断矢量在中断矢量表中的位置MOV SI,0020HLODSWMOV BX,AX ;BX=原中断服务入口偏移地址LODSW :AX=原中断服务程序入口地址PUSH AX ;压栈保护PUSH BX(2)将现中断服务程序入口地址填入中断矢量表中除了可用DOS 25H功能调用外也可使用以下指令。MOV AX,0000HMOV ES,AXMOV DI,0020H;ES:DI指向08H中断矢量在中断矢量表中的存放位置MOV AX,OFFSET TIMERSTOSW;写入中断服务程序的偏移地址MOV AX,SEG TIMERSTOSW ;写入中
5、断服务程序的段地址2. 8259A中断屏蔽与恢复借用系统用的08H中断还应注意保护原8259A的中断屏蔽寄存器内容。读或写8259A的奇地址可以得到和改写IMR寄存器的内容。执行IN AL,21HPUSH AX两条指令可以得到IMR的值并压入堆栈保护。执行MOV AL,0FCHOUT 21H,AL两条指令又可以重写IMR,使之只开放时钟和键盘的中断。在程序退出前又应恢复IMR值。用POP AXOUT 21H,AL指令可以将原压堆栈保护的IMR值重新写入中断屏蔽寄存器。3. 8253初始化程序设计 MOV AL,00110110B ;8253初始化,0通道,工作方式3,采用二进制 OUT 43H
6、,AL MOV AX,11932 ;初值=11932 OUT 40H,AL MOV AL,AH OUT 40H,AL4.中断服务程序的编写中断服务程序主要完成秒,分,时的调整并重写入数据区中。中断服务程序中所用寄存器如与主程序有冲突,应该在中断服务程序一开始用压栈指令保护主程序中寄存器内容,中断返回前用出栈指令恢复此内容。注意,先压入的寄存器应该后弹出。最后在中断返回前还应向8259A发中断结束命令,使8259A内的在服务寄存器中的相应位复位;MOV AL,20HOUT 20H,AL5.有关字符输入的DOS功能调用直接控制台输入输出(DOS6号功能调用)调用格式;MOV DL,X MOV AH
7、,06H INT 21H功能;从控制台(或键盘)输入或向屏幕输出字符。本设计在程序运行过程中检测是否按下空格键或C键,按下空格键则停止运行返回DOS,按下C键则转到调整时间程序。不按键则显示时间。 FOREVER: MOV DL,0FFH ;有键按下么? MOV AH,06H INT 21HJZ DISP ;无按键下则转显示DISP CMP AL,20H ;是有空格键么? JZ EXIT ;是则退出 CMP AL,C ;是有C键么? JZ TET ;是则调整时间DISP: LEA DX,YEAR ;不是则显示时间 MOV AH,09H INT 21H 6. 时间调整模块设计 当程序运行过程中,
8、若有C键按下,则关掉中断,设置好日期时间后打开中断TET:CLI ;调整日期时间 PUSH AX MOV AH,01H INT 21H MOV YEAR,AL POP AXSTIJMP FOREVER 7. 硬件电路图三、软件思想主流程图和中断服务程序流程图1. 程序主流程图2. 时间显示流程图3. 日期显示流程图N等待键按下取原8H中断矢量并压栈保护建立数据段的可寻址性装载现中断服务程序8253初始化长生10MS的方波,10MS中断一次保护原8259A 的IMR(中断屏蔽寄存器)内容重写IMR,只开放时钟和键盘中断检测键盘(DOS6号调用)开中断有键按下?秒值变否?是空格键?显示时间值(DO
9、S9号调用)取秒值关中断恢复IMR重新设置8253.,55MS中断一次回复原中断矢量关中断返回DOSYNY3.1主流程图YNNNNNNYYYYYY发EOI中断结束命令中断返回COUNT-1送COUNT秒量加一COUNT=0?秒十位加一,秒个位清0秒个位小于=9?秒十位小于6?分个位加一,秒十位清0分个位小于9?分个位清0,分十位加1分十位小于6?取时个位,时十位均清0,日个位加1时+1取时个位,时十位,组合成BCD码时小于24?时个位,时十位转换位ASCII码,放回数据区,结束中断3.2 时间显示流程图分十位清0NNNN发EOI中断结束命令中断返回日个位小于9?日十位加一,日个位清0日十位小于
10、3?日十位清0取月个位,月十位,组合成BCD码日个位+1月小于12?月+1取月个位1,月十位清0年个位加1年个位小于9?年个位清0,年十位加1月个位,月十位转换位ASCII码,放回数据区YYYY3.3 日期显示流程图附录A:源程序及程序注释PAGE 60,78STACK SEGMENT DB 256 DUP(0) STACK ENDSDATA SEGMENT COUNT DB 100 YEAR DB 2 YEAR1 DB 0 YEAR2 DB 0 YEAR3 DB 9 DB - MH DB 1 MONTH DB 2DB - TEND DB 2 DATE DB 9 DB - TENH DB 2
11、HOUR DB 3: TENM DB 5 MINUTE DB 9: TENS DB 5 SECOND DB 5,0DH,$DATA ENDSCODE SEGMENTSTART PROC FAR ASSUME CS:CODE,DS:DATA MOV AX,0 PUSH AX MOV AH,01H ;等待按键按下 INT 21H CLI CLD MOV AX,0 MOV DS,AX MOV SI,0020H ;DS:SI指向08H中断向量 LODSW ;取08中断入口的偏移地址 MOV BX,AX LODSW ;取08中断入口段地址 PUSH AX ;压栈保护 PUSH BX MOV AX,DAT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 综合 设计 19
限制150内