微机原理与接口综合设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 综合 设计
- 资源描述:
-
学 生 实 训 设 计 报 告 设计题目: 时钟控制系统设计 院 别: 专 业: 班 级: 姓 名: 学 号: 指导教师: 教务处制 七月二日 课程名称:微机原理与接口综合设计 课程代码: 09402707 实训周数: 1 学 分: 1 实训单位: 机电学院 实训地点: 机电学院 实训时间: 2023-6-28至2023-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)IBM PC/XT系统板上使用了一片8253-5,其地址40~43H,其中0通道工作于方式3,每55ms向中断控制器8259A的IRQ端发一次中断请求。此定期中断的用途之一是系统报时。现在借用原有电路,重新设立定期器、编写服务程序来做硬件时钟实验,为此程序开始应一方面保护原系统的08H中断的中断向量(中断服务程序入口地址),以便程序退出时恢复原系统的设立。保护原系统08H中断矢量可用DOS 35H功能调用读出加以适当保存,也可以用以下指令,将中断矢量压入堆栈保存。 CLI ;关中断 CLD ;DF=0 MOV AX,0000H MOV DS,AX ;DS:SI指向08中断矢量在中断矢量表中的位置 MOV SI,0020H LODSW MOV BX,AX ;BX=原中断服务入口偏移地址 LODSW :AX=原中断服务程序入口地址 PUSH AX ;压栈保护 PUSH BX (2)将现中断服务程序入口地址填入中断矢量表中除了可用DOS 25H功能调用外也可使用以下指令。 MOV AX,0000H MOV ES,AX MOV DI,0020H;ES:DI指向08H中断矢量在中断矢量表中的存放位置 MOV AX,OFFSET TIMER STOSW;写入中断服务程序的偏移地址 MOV AX,SEG TIMER STOSW ;写入中断服务程序的段地址 2. 8259A中断屏蔽与恢复 借用系统用的08H中断还应注意保护原8259A的中断屏蔽寄存器内容。读或写8259A的奇地址可以得到和改写IMR寄存器的内容。执行 IN AL,21H PUSH AX 两条指令可以得到IMR的值并压入堆栈保护。执行 MOV AL,0FCH OUT 21H,AL 两条指令又可以重写IMR,使之只开放时钟和键盘的中断。 在程序退出前又应恢复IMR值。用 POP AX OUT 21H,AL 指令可以将原压堆栈保护的IMR值重新写入中断屏蔽寄存器。 3. 8253初始化程序设计 MOV AL,00110110B ;8253初始化,0通道,工作方式3,采用二进制 OUT 43H,AL MOV AX,11932 ;初值=11932 OUT 40H,AL MOV AL,AH OUT 40H,AL 4.中断服务程序的编写 中断服务程序重要完毕秒,分,时的调整并重写入数据区中。中断服务程序中所用寄存器如与主程序有冲突,应当在中断服务程序一开始用压栈指令保护主程序中寄存器内容,中断返回前用出栈指令恢复此内容。注意,先压入的寄存器应当后弹出。最后在中断返回前还应向8259A发中断结束命令,使8259A内的在服务寄存器中的相应位复位; MOV AL,20H OUT 20H,AL 5.有关字符输入的DOS功能调用 直接控制台输入输出(DOS6号功能调用) 调用格式;MOV DL,X MOV AH,06H INT 21H 功能;从控制台(或键盘)输入或向屏幕输出字符。 本设计在程序运营过程中检测是否按下空格键或C键,按下空格键则停止运营返回DOS,按下C键则转到调整时间程序。不按键则显示时间。 FOREVER: MOV DL,0FFH ;有键按下么? MOV AH,06H INT 21H JZ DISP ;无按键下则转显示DISP CMP AL,20H ;是有空格键么? JZ EXIT ;是则退出 CMP AL,'C' ;是有C键么? JZ TET ;是则调整时间 DISP: LEA DX,YEAR ;不是则显示时间 MOV AH,09H INT 21H 6. 时间调整模块设计 当程序运营过程中,若有C键按下,则关掉中断,设立好日期时间后打开中断 TET:CLI ;调整日期时间 PUSH AX MOV AH,01H INT 21H MOV YEAR,AL …………… POP AX STI JMP FOREVER 7. 硬件电路图 三、软件思想 主流程图和中断服务程序流程图 1. 程序主流程图 2. 时间显示流程图 3. 日期显示流程图 N 等待键按下 取原8H中断矢量并压栈保护 建立数据段的可寻址性 装载现中断服务程序 8253初始化长生10MS的方波,10MS中断一次 保护原8259A 的IMR(中断屏蔽寄存器)内容 重写IMR,只开放时钟和键盘中断 检测键盘(DOS6号调用) 开中断 有键按下? 秒值变否? 是空格键? 显示时间值(DOS9号调用) 取秒值 关中断 恢复IMR 重新设立8253.,55MS中断一次 回复原中断矢量 关中断 返回DOS Y N Y 3.1主流程图 Y N N N N N N Y Y Y Y Y Y 发EOI中断结束命令 中断返回 COUNT-1送COUNT 秒量加一 COUNT=0? 秒十位加一,秒个位清0 秒个位小于=9? 秒十位小于6? 分个位加一,秒十位清0 分个位小于9? 分个位清0,分十位加1 分十位小于6? 取时个位,时十位均清0,日个位加1 时+1 取时个位,时十位,组合成BCD码 时小于24? 时个位,时十位转换位ASCII码,放回数据区,结束中断 3.2 时间显示流程图 分十位清0 N N N N 发EOI中断结束命令 中断返回 日个位小于9? 日十位加一,日个位清0 日十位小于3? 日十位清0 取月个位,月十位,组合成BCD码 日个位+1 月小于12? 月+1 取月个位1,月十位清0 年个位加1 年个位小于9? 年个位清0,年十位加1 月个位,月十位转换位ASCII码,放回数据区 Y Y Y Y 3.3 日期显示流程图 附录A:源程序及程序注释 PAGE 60,78 STACK SEGMENT DB 256 DUP(0) STACK ENDS DATA SEGMENT COUNT DB 100 YEAR DB '2' YEAR1 DB '0' YEAR2 DB '0' YEAR3 DB '9' DB '-' MH DB '1' MONTH DB '2' DB '-' TEND DB '2' DATE DB '9' DB '-' TENH DB '2' HOUR DB '3:' TENM DB '5' MINUTE DB '9:' TENS DB '5' SECOND DB '5',0DH,'$' DATA ENDS CODE SEGMENT START 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,DATA ;建立数据段的可寻址性 MOV DS,AX MOV AX,0000H MOV ES,AX MOV DI,0020H ;ES:DS指向08中断向量存放地址 MOV AX,OFFSET TIMER STOSW ;写入偏移地址 MOV AX,CS STOSW ;写入段地址 MOV AL,00110110B ;8253初始化,0通道,3方式,HEX OUT 43H,AL MOV AX,11932 ; 将11932赋给AX初值 OUT 40H,AL MOV AL,AH OUT 40H,AL IN AL,21H ;读8259的中段屏蔽寄存器IMR PUSH AX MOV AL,0FCH OUT 21H,AL ;写IMR,只准许定期器和键盘中断 STI FOREVER: MOV DL,0FFH ;有按下键没有? MOV AH,06H INT 21H JZ DISP ;无按键情况下则转显示DISP CMP AL,20H ;是有空格键吗? JZ EXIT ;是则退出 CMP AL,'C' ;是有C键吗? JZ TET ;是则调整时间 DISP: LEA DX,YEAR ;不是则显示时间 MOV AH,09H INT 21H MOV AL,SECOND ;取秒单位值 WAITCHA: CMP AL,SECOND ;改变否? JZ WAITCHA ;没改变则等待 JMP FOREVER ;改变则跳到FOREVER TET:CLI ;调整日期时间 PUSH AX MOV AH,01H INT 21H MOV YEAR,AL MOV AH,01H INT 21H MOV YEAR1,AL MOV AH,01H INT 21H MOV YEAR2,AL MOV AH,01H INT 21H MOV YEAR3,AL MOV AH,01H INT 21H MOV MH,AL MOV AH,01H INT 21H MOV MONTH,AL MOV AH,01H INT 21H MOV TEND,AL MOV AH,01H INT 21H MOV DATE,AL MOV AH,01H INT 21H MOV TENH,AL MOV AH,01H INT 21H MOV HOUR,AL MOV AH,01H INT 21H MOV TENM,AL MOV AH,01H INT 21H MOV MINUTE,AL POP AX STI JMP FOREVER EXIT: CLI ;有空格键按下则退出 CLD POP AX OUT 21H,AL ;恢复IMR MOV AL,36H ;8253初始化,55MS OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL MOV AX,0 ;恢复08H中断的中断向量 MOV ES,AX MOV DI,4*8 POP AX STOSW POP AX STOSW STI RET TIMER PROC FAR ;中断服务程序 PUSH AX DEC COUNT JNZ L2 ;不到1秒L2 MOV COUNT,100 ;到1秒,重置COUNT,并修改时间 INC SECOND CMP SECOND,'9' JLE TIMEXT MOV SECOND,'0' INC TENS CMP TENS,'6' JL TIMEXT MOV TENS,'0' INC MINUTE CMP MINUTE,'9' JLE TIMEXT MOV MINUTE,'0' INC TENM CMP TENM,'6' JL TIMEXT MOV TENM,'0' JMP L3 L2: JMP TIMEXT L3: MOV AL,HOUR :取时个位,时十位,组合成BCD码 AND AL,0FH MOV Ah,TENH AND AH,0FH MOV CL,4 ROL AH,CL OR AL,AH ADD AL,1 DAA CMP AL,24 JL L1 MOV TENH,'0' MOV HOUR,'0' INC DATE CMP DATE,'9' JLE TIMEXT MOV DATE,'0' INC TEND CMP TEND,'3' JL TIMEXT MOV TEND,'0' MOV DATE,'1' MOV AL,MONTH ; 取月个位,月十位,组合成BCD码 AND AL,0FH MOV AH,MH AND AH,0FH MOV CL,4 ROL AH,CL OR AL,AH ADD AL,1 DAA CMP AL,13 JL L4 MOV MH,'0' MOV MONTH,'1' INC YEAR3 CMP YEAR3,'9' JLE TIMEXT MOV YEAR3,'0' INC YEAR2 CMP YEAR2,'9' JLE TIMEXT MOV YEAR2,'0' JMP TIMEXT L4: MOV AH,AL ;月个位,月十位转换位ASCII码,放回数据区 AND AL,0FH OR AL,30H MOV MONTH,AL MOV CL,4 ROR AH,CL AND AH,0FH OR AH,30H MOV MH,AH JMP TIMEXT L1: MOV AH,AL ; 时个位,时十位转换位ASCII码,放回数据区 AND AL,0FH OR AL,30H MOV HOUR,AL MOV CL,4 ROR AH,CL AND AH,0FH OR AH,30H MOV TENH,AH TIMEXT:MOV AL,20H OUT 20H,AL POP AX IRET TIMER ENDP START ENDP CODE ENDS END START 参考文献 1. 《微型计算机系统原理及应用》 清华大学出版社 杨素行等编著1995年 2. 《微机原理与接口技术》学习指导与实验 电子工业出版社 蔡征宇 缪均达 编 1998.8 3. 《新编微机原理与接口技术》天津大学出版社 耿仁义主编 2023年9月 4. 《微机原理、汇编语言与接口技术》中国水利水电出版社 唐瑞庭等编著 2023年 5. 《微型计算机原理与接口技术》北京大学出版社 刘彦文等编著2023年 6. 《微型计算机原理与接口技术》清华大学出版社 冯博琴 吴宇 主编 2023.8 7. 《微机原理与接口技术》(第2版)清华大学出版社 冯博琴 吴宁编著2023年3月 四.心得体会总结 课程设计是培养学生综合运用所学知识去发现、分析和解决实际问题的能力,同时也是锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 这一次的微机原理课程设计历时一个星期,在这整整一个星期里,基本上也都是在忙碌中渡过,在设计过程中一开始还是挺茫然的,特别是找资料一点也不容易,当然,通过了苦苦的查找之后得出的结果肯定是苦中带着甜的,此外在正式开始过程中,我们需要考虑许多的问题,时不时都要上网查找资料,对此,我们虽然觉得麻烦,但也学到了不少的东西,同时巩固了以前所学过的知识,更涉及到自己之前忽略的知识点。先前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,但通过了这次的课程设计完全改变了我以前的那种错误的结识,以前我接触的那些程序都是很短、很基础的,或者是一个片段,但是在课程设计中要设计一个完整的程序,碰到的那些需要很多代码才干完毕的任务,画程序方框图是很有必要的。由于通过程序方框图,在做设计的过程中,我们可以很直视的明白我将要做什么,以及我们证处在哪个位置上,从而使我们有明确的目的,也让我们的工作效率有所提高,不至于设计到后面就忘掉了前面的,并且在程序测试的过程中也有助于查错。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中碰到问题,可以说得是困难重重,这毕竟第一次做的,难免会碰到过各种各样的问题,同时在设计的过程中发现了自己的局限性之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计在老师的指导下,同学的帮助下终于完毕了。 实训 指导 教师 评语 成绩评估: 指导教师(署名): 2023年 7月 4 日展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




微机原理与接口综合设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4746445.html