- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计时器汇编语言程序设计
计时器汇编语言程序设计
1设计要求
1.1初始条件
采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统;
软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。
1.2设计任务
设计汇编语言程序,实现计时功能,具体功能要求如下:
设计一个计时器界面,形式为:时:分:秒;
单击“S”或“s”键开始计时,单击“P”或“p”停止计时,单击“G”或“g”键继续计时,单击“C”或“c”键清0;
单击”ESC”键退出程序。
(2)单击”ESC”键退出程序。
根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试。
2总体方案论证
2.1方案一
利用8155芯片设计一个具有时、分、秒显示的电子时钟,启动按键,数码管从初始设置的时间开始显示。从设计要求可知,需要键盘扫描部分,时间控制部分,初始值设置部分,数码管显示部分,延时部分。
时间走动部分的实现:各个时钟的个位部分逢十进一,秒和分钟的十位部分是逢六进一。当时的十位达到2时,个位为4时,程序跳到清零部分,程序从零开始计时。
数码管显示部分的功能是实现时、分、秒的显示,可以用六个数码管从左至右一次显示时间,采用分配存储单元的形式,地址从低到高分别显示秒、分、时。
延时部分是对秒的个位进行延时,延时中调用系统时钟显示程序,以便连续不断地显示并实现一秒延时的计时功能,从而实现电子时钟的设计。
2.2方案二
利用DOS功能设计界面显示时间00:00:00:00,在MFS中的微机原理实验集成环境MF2KP中编写程序,根据设计要求,需要界面设置,键盘按键输入检测,显示初值时间,显示形式,键盘控制设置,时间进位处理,设置中断频率,暂停和继续计时。
通过调用系统的08h号或者1ch号中断来进行设置,使其能够产生100Hz即10ms 一次的中断,同时修改原08号中断的入口地址,使其每次中断执行一次计时的中断服务程序,进而动态显示时间。
2.3方案论证
方案一要用到8155芯片和数码管,而且计时器是调用系统时钟完成的,这种方法必须每秒或者每更短的时间调用系统 时钟然后进行相减操作才能达到计时的每秒时时显示动态时间,虽然理论上可以实现计时 功能,但是会比较的麻烦。
方案二通过调用系统的08h号或者1ch号中断来进行设置,使其能够产生100Hz即10ms 一次的中断进而动态显示时间。这种方法不仅简单易行,而且较方便。而且方案二在DOS环境下运行的,不需要额外的芯片,所以方案二更好更合适。
3程序流程图
3.1主程序流程图
主程序流程图如图3-1所示,主程序是用来完成屏幕初始化:清屏和显示初始界面,同时对键盘按键输入检测和对键盘按下的键值进行判断,执行相应键值所对应的程序,达到开始、暂停、 继续、清零、退出的功能。进而动态显示和控制时间。
3.2中断服务子程序流程图
中断服务子程序流程图如图3-2所示,中断服务子程序的功能是每次中断执行一次该 程序,对十毫秒位、百毫秒位、秒位、十秒位、分钟位、十分钟位、小时位和十小时位进 行加1和判断是否进位操作,即达到该时间的情况下就给该时间对应位进行加1操作,使其能够显示正确的动态的时间。
停止计时 显示停止计时时间 清零 显示初始时间 继续计时 显示动态时间 开中断计时 显示动态时间结束 按ESC键 按c/C键按g/G键检验键盘状态按下p/P键按下s/S键读字符显示提示语和初值时间清屏开始
停止计时
显示停止计时时间
清零
显示初始时间
继续计时
显示动态时间
开中断计时
显示动态时间
结束
按ESC键
按c/C键
按g/G键
检验键盘状态
按下p/P键
按下s/S键
读字符
显示提示语和初值时间
清屏
开始
图3-1 主程序流程图 清零 退出中断 十小时位加1十h位3小时位10 N24 小时位加1 N加1(N初值为0)十分位6 十分钟位加1ms位10 分钟位加1十秒位6 十秒位加1 秒位10十ms位10 秒位加1 十ms位加1ms位10 毫秒位加1 设置中断频率 开中断 设置中断屏蔽器 设置中断入口地址
清零
退出中断
十小时位加1
十h位3
小时位10
N24
小时位加1
N加1(N初值为0)
十分位6
十分钟位加1
ms位1
文档评论(0)