




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第11章 实训实训一 排序程序设计实训目的1熟悉8086汇编语言程序的运行环境以及调试工具DEBUG有关命令的功能与操作方法。2熟悉分支结构、循环结构以及子程序调用等基本结构的程序设计过程和技巧。3了解综合程序的设计、编写及调试过程。实训内容 把一组字数据置入存储器的某一连续的存储区中,使存储区的长度就是这组数据的个数。编写一程序,用下沉法对该数据区中数据按增序排序,结果放在原数据区中。设计思想 从第1个数开始,依次把相邻的两个数进行比较,即第1个数与第2个数比较,若第1个数大于第2个数,则两者交换,否则,两数的位置不变。然后,把第2个数与第3个数比较,若第2个数大于第3个数,则两者交换,否则
2、,两数的位置不变。第N-1次是把第N-1个数与第N个数比较,若第N-1个数大于第N个数,则两者交换,否则,两数的位置不变。对于这N个数,经过第1遍的N-1次比较后,最大数将被排在第N个位置,即最大数被排在最后。 对剩下的N-1个数重复中的过程,找出N-1个数中的最大数,并把该最大数放在第N-1个位置。 重复,经过N-1遍后排序后,这N个数将被全部排序好。实训步骤1根据程序设计思想编写源程序。2在EDIT编辑器下输入源程序,并保存程序。3用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可执行的EXE文件。4运行可执行文件。根据需要,可
3、在DOS提示符下直接通过文件名的方式运行程序,或者是用DEBUG将可执行的EXE文件调入内存后,用G命令运行。例:C: DEBUG 文件名. EXE -U ;先用反汇编来查看源程序装入的地址 : -G=xxxx:xxxx ;从程序装入的地址处,开始运行程序5使用DEBUG的有关命令,查看程序结果。实训总结 假设待排序的数共有10个,它们分别是0055H,0033H,0066H, 0077H,0099H, 0011H, 0022H, 0088H, 0044H, 0000H,放在首地址为DATA的一组存储单元中。程序执行结果应为0000H,0011H, 0022H,0033H,0044H,0055
4、H,0066H, 0077H,0088H, 0099H。使用DEBUG的有关命令查看程序执行后,该存储区中的数据是否按升序有序,若不是,查找原因,修改程序,直至得到正确的结果为止。 给出的程序清单是在待排序的数据是已知的情况,即共有10个数。在数据段中完全可以采用($-DATA)/2求出待排序数据的个数,实现未知待排序数据个数的排序。参考程序 接下段接上段实训二 8259A外部中断实训目的 1熟悉8088/86与8259A的连接方法。 2进一步掌握中断控制器8259A的工作原理,进一步了解中断屏蔽寄存器和中断服务寄存器的功能和使用方法。 3熟悉中断服务程序的编写过程及技巧。实训内容 用8088
5、/86控制8259A可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果用74LS273输出到LED显示出来。实训设计过程 18259A硬件线路的设计 根据实际要求,设计如图11-2所示的硬件连接线路,使用实验板上的脉冲发生电路产生的脉冲信号作为中断请求信号与IR0相连。当按下脉冲按钮时,脉冲发生电路就会产生一个正脉冲,使IR0=1,即发生了外部中断。图11-2 8259A外部中断连线图 2中断计数输出硬件线路的设计 中断计数可采用软件计数的方式实现,计数结果输出可采用锁存储器74LS273实现。把74LS273的数据输入线D1D8与CPU的低8位数据线相连
6、,74LS273的数据输出线Q1Q8与8个指示灯LED0LED7相连。CPU通过OUT指令把中断计数值输出到74LS273并锁存,同时中断计数值在74LS273输出端输出,在LED0LED7显示出来,其硬件连线如图11-3所示 图11-3 中断计数输出连接电路图 程序设计思想与程序流程 8259A的初始化 ICW1=13H,即单片8259A,中断请求信号为上升沿触发,需要写如ICW4。ICW2=20H,即IR0的中断类型号为20H。ICW4=01H,即与8086/8088相连,工作在正常EOI方式,非缓冲和全嵌套方式。OCW1=0FEH,即屏蔽除IR0之外的所有中断请求。设259A的端口地址为
7、0A00H和0A001H,74LS273端口地址为8000H。在不同的实验系统中,芯片的地址由与CPU地址线的连接方式确定;在同一个系统中,端口地址是固定的。 设置中断向量表具体实现过程见程序清单。 绘制主程序和中断服务程序的流程图主程序和中断服务程序的流程如图11-4所示。 编写主程序和中断服务程序主程序和中断服务程序见程序清单。实训步骤 1按照图11-2和图11-3在实验板上连接硬件线路。2在EDIT编辑器下输入源程序,并保存程序。3用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可执行的EXE文件。4运行可执行程序。在执行程序
8、的过程中,按下脉冲开关,产生中断。5观察实训结果。如果指示灯LED0LED7显示结果与按下脉冲开关次数相同,说明实训结果正确,否则,需要查找出错原因,并排除之。实训总结本实训主要容易出现以下两种错误结果: 1中断次数与显示值不一致。导致这种错误的主要原因是由于脉冲按钮的抖动造成的,可通过软件去抖动的方法给予解决。 2中断服务程序不被执行。导致这种错误的主要原因一是中断控制电路的设计或连接有问题,导致CPU确实没有接到中断请求信号,二是中断向量与中断服务程序的入口地址在填写中断向量表时不一致。可通过检查8259A控制字、连线以及中断向量表的设置等因素给予排除。程序清单 接下段接上端接下端接上表实
9、训三 8255输入/输出实训目的 1熟悉8255芯片结构及编程方法。 2熟悉8255A的初始化过程和方式控制字的设置过程及方法。 3了解通过8255A并行接口传输数据控制LED发光二极管的亮灭的方法。实训内容 利用8255可编程并行口芯片,实现数据输入/输出功能,实训中用8255PA口作输出,PB口作输入。可编程通用接口芯片8255A有三个八位的数据端口,它有三种工作方式。本实训采用的是方式0:PA,PC口输出,PB口输入。实训电路及连线 实训电路的连接如图11-5所示。设8255A的控制寄存器地址为8003H,PA口地址为8000H, PB口地址为8001H,PC口地址为8002H。 PA0
10、-PA7(PA口)接L0-L7(LED) PB0-PB7(PB口)接S0-S7(开关量) 再接上数据线和读/写信号,地址线只接 A0和A1即可,连接RESET信号,以便8255A可靠复位。图11-5 8255A输入/输出连线图 实训框图 图11-6 8255A输入/输出程序流程 实训步骤 1按照图11-5在实验板上连接硬件线路。 2 在EDIT编辑器下输入源程序,并保存程序。 3用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可执行的EXE文件。 4运行可执行程序。在执行程序的过程中,搬动开关S0-S7,使B口输入不同的数据。 5观
11、察实训结果。如果指示灯LED0LED7显示结果与开关S0-S7的状态一致,说明实训结果正确,否则,需要查找出错原因,并排除之。实训总结 本实训的B口输入数据,A接收数据,然后送LED显示,可能会出现数据不一致情况,其原因可能是B口输入数据连线错或A接收数据连线错或送LED显示连线错,也可能是对8255A初始化不正确,导致结果有误。程序清单 接下段接上段实训四 8251A串行通讯实训目的 1掌握8088/86串行口通信的方法。 2了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3学习串行口通讯程序编写方法。实训内容 利用8088/86CPU控制8251A可编程串行通信控制器,将一组连
12、续存储区域的数据,通过8251A传送出去并予以接收,把接收的数据存储在另一个存储区域中。 实训电路 实训电路的连接如图11-7所示。在实训时把同一片8251A的RxD与TxD直接相连,既实现数据的发送,又实现数据的接收。图11-7 8251A的数据收发连线图实训框图 本实训共分3个部分,即主程序、串行发送和串行接收,它们的程序流程如图11-8所示图11-8 8251A收发数据程序流程 实训步骤 1按照图11-8在实验板上连接硬件线路。 2在EDIT编辑器下输入源程序,并保存程序。 3用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可
13、执行的EXE文件。 4运行可执行程序。在执行程序的过程中,按下脉冲开关,产生中断。 5观察实训结果。如果指示灯LED0LED7显示结果与开关S0-S7的状态一致,说明实训结果正确,否则,需要查找出错原因,并排除之。实训总结 本实训会出现指示灯LED0LED7显示结果与开关S0-S7的状态不一致错误,其原因可能是连接线路有误,或8251A初始化有误,或程序有误。程序清单 接下段接上段接下段接上段实训五 8253计数器 实训目的 1学习8253可编程定时器/计数器定时方法。 2学习8253多级串联实现大时间常数的定时方法。 3学习8086控制8253可编程定时器的方法。 实训内容 用8253对标准
14、脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。实训电路及连线 图11-9 8253计数硬件连线图 实训设计思想 由于本实训定时常数过大,需要用多级串联方式。本实训采用两级计数器串联。定时常数分别为100和10000。将计数器1的输出接到计数器0输入。计数器0的输出接到LED0。计数器0和计数器1都工作于方式3,16位二进制计数,计数初值分别为10000
15、和100。 计数器工作于方式3时,CPU写入控制字后,OUT变为高电平,写完计数值后自动开始计数,输出保持高电平。当计数到一半时,输出变为低电平。计数到0时,输出又变为高电平,重新开始计数。OUT输出端输出连续的方波。可以把OUT接视波器直接观察输出波形,也可以把输出端LED,通过观察LED的亮灭情况,了解实训结果。 实训步骤 1按照图11-9连接线路。 2在EDIT编辑器下输入源程序,并保存程序。 3用MASM.EXE编译源程序,编译无错后,生成相应的OBJ目标文件。用LINK. EXE 连接OBJ文件,生成可执行的EXE文件。 4运行可执行程序。通过LED0观察OUT0的输出。实训总结 本
16、实训可能会出现LED0的亮灭情况与OUT0的输出不一致,原因可能是对8253初试化、时间常数计算以及程序有错造成的。程序流程图 图11-10 8253实训流程图程序清单 实训六 交通灯控制实训目的1通过实验进一步加深对并行接口的认识。2熟悉利用查询方式,检查外设所处状态,确定对事件处理的方法。实训内容1.用8255A作为并行口,通过并行口实现对交通灯的控制。交通灯用两组红、黄、绿发光二极管代表,它们分别用作主干道和支路的交通信号灯。2.把机内时钟源计数值和以开关模似的特种车辆到达传感器信号作为条件,实现交通灯状态的自动转换。3.在不改变硬件结构的情况下,再创造一种两个方向都不通行的人行状态。设
17、计分析 假设实验环境是为某个十字路口设计一个交通灯自动控制系统,该路口由一条主干道和一条支路交叉而成。根据统计,主干道的交通流量为支路的两倍。实验的要求是: 1正常情况下,两条路轮流放行,且主干道的放流时间为支路的两倍。信号转换时,按照以下规律显示: 从通行变为停止时,按绿黄红次序变化; 从停止变为通行时,按红闪动绿次序变化; 主干道与支路的显示必须保证它们是交叉进行的。 2当路上出现特种车辆(如警车、消防车等)时,该路口应将它立即放行,并使另一方向停止。如果两个方向同时出现特种车辆的通行要求时,应使主干道的车辆先放行。 由于所需控制的外部设备不多,作为控制用的输出端只要一个并行就够了。而作为状态输入的端口,虽然信号并不多,但仍要占用一个并行口。下面的例子中,A口用作输入,其中K0作为主干道有特种车辆,K1则对应支路的情况。对A口的状态由CPU定时读取,进行判断,确定是否需要改变路口的通行状况。从这个分析看,这个实验的主要工作集中在软件上。参考电路及调试 对硬件的调试可以分为两步进行。首先,用静态电压测量的方法,保证芯片的各引脚有正常的工作电压。接着用DEBUG给相应的端口写入必要的初始化程序,并使B口输出不同的效
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度环保科技厂房转租服务合同
- 二零二五年度能源互联网建设合同延续补充协议
- 二零二五年度中心人工智能产业投资合伙经营合同
- 2025年度板材行业标准制定合作合同
- 二零二五年度高龄劳动者就业保障与职业发展合同
- 2025年度自媒体账号知识付费课程合作协议
- 二零二五年度电商平台跨界合作推广协议
- 二零二五年度三方共同出资投资设立网络安全公司合作协议
- 2025至2030年硅胶排水管项目投资价值分析报告
- 2025年化纤纱项目可行性研究报告
- 认识DS3自动安平水准仪
- 《语文课程标准》义务教育2022年修订版【原版】
- 某大酒店弱电智能化系统清单报价
- 医院传染病登记簿
- GB/T 30490-2014天然气自动取样方法
- GB/T 17313-2009袋成型-充填-封口机通用技术条件
- 学习中国人民解放军新一代共同条令PPT模板
- 二轮 河流专题(精心)
- 11471劳动争议处理(第3章)
- 食堂工作人员安全培训内容资料
- 患者跌倒的预防及管理课件
评论
0/150
提交评论