北邮微原软件时钟报告.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理软件实验报告 班级:201321112#专业:信息工程姓名: 学号:2013210###你们就猜吧!该代码修复了不按回车就跑动和时间跳变问题,最重要的是流程图也改了。业界良心啊!!实验内容编一程序,在显示器上显示时、分、秒。借用计数器8253的Timer0作为中断源,通过8259A向CPU发中断,每10ms产生一次中断。在中断服务程序中管理刷新时、分、秒。要求:输入文件名(如:CLK)后清屏后显示:Current time is: xx:xx:xx(时分秒键盘输入)打回车,时、分、秒开始计时。时钟不停的刷新。当键入CTRL+C时,停止计时,返回系统,且系统正常运行不死机。8253的初始化程序段可借用。口地址为40H、41H、42H、43H,控制字为36H,时间常数TC=11932:1.1932MHz/11932=100Hz,输出方波频率为100Hz,其周期为1000/100=10ms。设计思路程序流程图开始重新显示定义段 是时间已变?设定时间时间是否合适使用时间错误信息 否 否是 是T是否按下设定8255和8259显示时间Ctrl+c按下? 否结束 是中断子程序流程图计数器芯片8253简介初始化使用8253前,要进行初始化编程。初始化编程的步骤是:1.向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。2.向使用的计数器端口写入计数初值。8253控制字D7D6=00:使用0号计数器,D7D6=01:使用1号计数器D7D6=10:使用2号计数器,D7D6=11:无效D5D4=00:锁存当前计数值D5D4=01:只写低8位(高8位为0),读出时只读低8位D5D4=10:只写高8位(低8位为0),读出时只读高8位D5D4=11:先读/写低8位,后读/写高8位计数值D3D2D1=000:选择方式0,D3D2D1=001:选择方式1D3D2D1=X10:选择方式2,D3D2D1=X11:选择方式3D3D2D1=100:选择方式4,D3D2D1=101:选择方式5D0=0:计数初值为二进制,D0=1:计数初值为BCD码数运行效果图开始画面输入时间开始跑动 T秒表功能 正常退出程序源码datasegmentcount100 db 100;100个10ms=1s,此处count100起计数作用msg1 db Current time is:$msg2 db Sorry,your date entered incorrectly ,please try again!$msg3 db Now, the time is:,0ah,(Press Ctrl+C to EXIT.),0ah,(Press T to use as a Stopwatch.)$msg4 db 0ah,Program EXIT normally.$tenhourdb 0 ;小时十位数hourdb 0,: ;小时个位数tenmindb 0 ;分钟十位数minutedb 0,: ;分钟个位数tensecdb 0 ;秒十位数seconddb 0 ;秒个位数dataendsstacksegment stack stackdb 256 dup(0)stackendscodesegmentassume cs:code,ds:data,es:datastart:mov ax,seg datamov es,axmov ds,axmov dx,offset msg1 ;打印提示信息1mov ah,09hint 21hsettime:mov si,offset tenhour ;设定时间mov ah,01h ;键盘输入int 21hcmp al,0dhjz forever1cmp al,0jc error2 ;如果输入不合法,报错cmp al,3jnc error2 ;如果输入不合法,报错mov [si],alinc sicmp al,2jz ershimov ah,01h ;如果小时高位为1,低位可以设置0~9int 21hcmp al,0dhjz forever1cmp al,0jc error2cmp al,9+1jnc error2mov [si],alinc sijmp fenershi:mov ah,01h ;如果小时高位为2,低位可以设置0~4int 21hcmp al,0dhjz forever1cmp al,0jc error2cmp al,4jnc error2mov [si],alinc

文档评论(0)

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

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

1亿VIP精品文档

相关文档