第11章 微机原理实训.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 微机原理实训

第11章 实训 实训一 排序程序设计 实训目的 1.熟悉8086汇编语言程序的运行环境以及调试工具DEBUG有关命令的功能与操作方法。 2.熟悉分支结构、循环结构以及子程序调用等基本结构的程序设计过程和技巧。 3.了解综合程序的设计、编写及调试过程。 实训内容 把一组字数据置入存储器的某一连续的存储区中,使存储区的长度就是这组数据的个数。编写一程序,用下沉法对该数据区中数据按增序排序,结果放在原数据区中。 设计思想 ⑴ 从第1个数开始,依次把相邻的两个数进行比较,即第1个数与第2个数比较,若第1个数大于第2个数,则两者交换,否则,两数的位置不变。然后,把第2个数与第3个数比较,若第2个数大于第3个数,则两者交换,否则,两数的位置不变。第N-1次是把第N-1个数与第N个数比较,若第N-1个数大于第N个数,则两者交换,否则,两数的位置不变。对于这N个数,经过第1遍的N-1次比较后,最大数将被排在第N个位置,即最大数被排在最后。 ⑵ 对剩下的N-1个数重复⑴中的过程,找出N-1个数中的最大数,并把该最大数放在第N-1个位置。 ⑶ 重复⑵,经过N-1遍后排序后,这N个数将被全部排序好。 实训步骤 实训总结 假设待排序的数共有10个,它们分别是0055H,0033H,0066H, 0077H,0099H, 0011H, 0022H, 0088H, 0044H, 0000H,放在首地址为DATA的一组存储单元中。程序执行结果应为0000H,0011H, 0022H,0033H,0044H,0055H,0066H, 0077H,0088H, 0099H。使用DEBUG的有关命令查看程序执行后,该存储区中的数据是否按升序有序,若不是,查找原因,修改程序,直至得到正确的结果为止。 给出的程序清单是在待排序的数据是已知的情况,即共有10个数。在数据段中完全可以采用($-DATA)/2求出待排序数据的个数,实现未知待排序数据个数的排序。 参考程序 实训二 8259A外部中断 实训目的 1.熟悉8088/86与8259A的连接方法。 2.进一步掌握中断控制器8259A的工作原理,进一步了解中断屏蔽寄存器和中断服务寄存器的功能和使用方法。 3.熟悉中断服务程序的编写过程及技巧。 实训内容 用8088/86控制8259A可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果用74LS273输出到LED显示出来。 实训设计过程 1.8259A硬件线路的设计 根据实际要求,设计如图11-2所示的硬件连接线路,使用实验板上的脉冲发生电路产生的脉冲信号作为中断请求信号与IR0相连。当按下脉冲按钮时,脉冲发生电路就会产生一个正脉冲,使IR0=1,即发生了外部中断。 2.中断计数输出硬件线路的设计 中断计数可采用软件计数的方式实现,计数结果输出可采用锁存储器74LS273实现。把74LS273的数据输入线D1~D8与CPU的低8位数据线相连,74LS273的数据输出线Q1~Q8与8个指示灯LED0~LED7相连。CPU通过OUT指令把中断计数值输出到74LS273并锁存,同时中断计数值在74LS273输出端输出,在LED0~LED7显示出来,其硬件连线如图11-3所示 程序设计思想与程序流程 ⑴ 8259A的初始化 ICW1=13H,即单片8259A,中断请求信号为上升沿触发,需要写如ICW4。ICW2=20H,即IR0的中断类型号为20H。ICW4=01H,即与8086/8088相连,工作在正常EOI方式,非缓冲和全嵌套方式。OCW1=0FEH,即屏蔽除IR0之外的所有中断请求。设259A的端口地址为0A00H和0A001H,74LS273端口地址为8000H。在不同的实验系统中,芯片的地址由与CPU地址线的连接方式确定;在同一个系统中,端口地址是固定的。 实训步骤 1.按照图11-2和图11-3在实验板上连接硬件线路。 2.在EDIT编辑器下输入源程序,并保存程序。 3.用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可执行的EXE文件。 4.运行可执行程序。在执行程序的过程中,按下脉冲开关,产生中断。 5.观察实训结果。如果指示灯LED0~LED7显示结果与按下脉冲开关次数相同,说明实训结果正确,否则,需要查找出错原因,并排除之。 实训总结 本实训主要容易出现以下两种错误结果: 1.中断次数与显示值不一致。导致这种错误的主要原因是由于脉冲按钮的抖动造成的,可通过软件去抖动的方法给予解决。 2.中断服务程序不被执行。导致这种错误的主要原因一是中断控制电路的

文档评论(0)

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

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

1亿VIP精品文档

相关文档