微机原理课程设计报告软件部分.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 10 / 22 一、 设计题目 微机原理课程设计报告 Pc 机实时时钟的设计二、 设计内容及功能 设计内容:利用 PC机现有的硬件和软件资源设计程序,以实现在显示器上显示 XX(时):XX(分): XX(秒)。 设计功能: 按下任意键开始显示数据区中存放的时间值, 并且每秒更新一次。 运行中按下空格键则停止运行并返回 DOS。 运行过程中按下回车键则依次提示输入时,分,秒的值,输入完毕后时钟自动按照设置的时间工作。 程序中应保护原系统的 08H 中断矢量以便退出时恢复原系统 的设置。 三、 设计思想及原理 设计基本思想: PC 机系统板上使用一片 8253,其地址为40H— 43H,其通道 0 以方式 3 工作,每 55ms向中断控制器 8259A IRQ0 端发一次中断请求。本设计题要求借用原有电路,重新设 置 8253 的计数器 0 每 10ms产生一次中断, 100 次中断后加 1 秒, 然后调整时、分、秒并显示在屏幕上。 设计原理: 100 次中断给秒针的个位加 1 秒,秒针个位加 1 产生进位时,高位加 1,低位回 0. 依此类推。 设置时间时,将输入的 6 个数字依此送入时钟高位开始的时间字符显示区,再显示即可 四、 模块划分及程序流程图 模块划分:本程序分为几大模块 时钟显示模块 display 使用 09H字符串显示 DOS功能调用完成时钟字符显示区的字符显示(即时间显示) ,这种显示在无其他有效指令的情况下不 停进行, 完成对时钟字符显示区的扫描显示, 字符区有任何变化均会显示在屏幕上。对本程序,用户会看到正在工作的时钟。 时钟设置模块 SET 当按下回车键 ENTER即进入设置程序段 SET。 利用使用 09H 字符串显示 DOS功能调用进行提示语的显示input the value of hour[00-23]: 使用两次 AH=01H字符输入显示 DOS功能调用完成对时钟小时值的设定。同理完成分和秒的输入提示及值设定 程序退出模块 exit 当按下空格键 SPACE即进入退出程序段,退出程序先写初始 状态 8253 计数器的控制字(通道 0,先读低 8 位,再读高 8 位,工作方式 3,计数值 2 进制格式),再将计数初值 0000H 送入通道 0,完成了对 8253 设置的恢复,接着完成保护原系统的 08H中断矢量以便退出后恢复原系统的设置。 中断程序模块 int_ret 先关中断 将分钟和秒钟高低位通过 and 0fh (高四位置 0,低四位值不改变)及 or30h (高四位置 0011,低四位值不变) 转化为字符。 通过 mov al,20h Out 20h,al 发出中断结束命令再开中断 计时子程序 timer 计时子程序,先将 count 的值设为 100,使用 dec count 指令,如果 count 不为 0,则进入中断程序段, 100 次中断后 count 的值为 0,秒针低位 +1,再将 count 值置为 100. 当秒针低位加 1 产生进位时,低位置 0,高位加 1. 秒针高位为 6 时,将秒针高位置 0,分钟低位加 1 分钟,时针与秒针类似 当时钟为 24 时,跳转 reset 将时钟高低位均置 0 五、 DOS功能调用及硬件原理DOS功能调用: 本程序只使用 INT 21H 几种功能号的中断调用 AH=01H 单字符输入AH=06H 单字符输入或输出AH=09H 字符串输出显示 硬件原理: 8253A初始状态控制字为(通道 0,先读低 8 位,再读高 8 位,工作方式 3,计数值 2 进制格式),计数初值 0000H(65536) 工作方式 3 为方波发生器,前半周期高电平,后半周期低电平。计数结束后发生一次中断,计数初值为 0000H(65536),计数时间 55ms 现要将其修改为 10ms发生一次中断,必须修改计数初值。计数初值为: (65536/55)*10=11932 故使用前对其初始化: MOV AL OUT 43H,AL MOV AX,11932 OUT 40H,AL MOV AL,AH OUT 40H,AL 六、 程序调试 错误,显示跳转范围不够 解决办法: 先跳转到中转站,中转站再进行一次跳跃,跳到目的地 中转战的下面程序前加标号 next: , 中转站的上一句写 jmp next 七、 运行结果 首先提示按任意键显示时间 按下任意键,显示提示语和初始时间 00:00:00 按下 ENTER键修改时间 显示设置过后的时间: 按下 SPACE键退出系统 八、 课程设计总结及展望 这次课程设计,使我更系统地学习了微机原理相关知识,也 锻炼了我的开放性思维。 在

文档评论(0)

Jane9872 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档