MCS_8086习题7.doc

上传人:人*** 文档编号:556325854 上传时间:2023-03-09 格式:DOC 页数:6 大小:567.51KB
返回 下载 相关 举报
MCS_8086习题7.doc_第1页
第1页 / 共6页
MCS_8086习题7.doc_第2页
第2页 / 共6页
MCS_8086习题7.doc_第3页
第3页 / 共6页
MCS_8086习题7.doc_第4页
第4页 / 共6页
MCS_8086习题7.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《MCS_8086习题7.doc》由会员分享,可在线阅读,更多相关《MCS_8086习题7.doc(6页珍藏版)》请在金锄头文库上搜索。

1、习题71.请编写完整8086汇编语言程序统计08010803班计算机原理考试成绩:l 假设成绩存放在数据段0000H开始的85个字节单元中;l 将成绩从高到低进行排序;l 统计最高成绩和最低成绩,分别存放在字节变量max和min单元中;l 统计不及格人数,存放在字节变量var1中;l 统计9099分人数,存放在字节变量var2中;l 计算85人平均成绩,存放在字节变量avg中;2. 如图6-1所示,以IBM-PC/XT计算机为核心构成的炉温控制系统。其中8255的A组与B组工作在方式0,8253定时器0工作在方式3方波发生器方式,8253输入计数频率为100KHz。1) 试说明8259、825

2、3、8255使用的端口地址;(3分)2) 芯片初始化(10分)l 单片8259工作在完全嵌套方式,中断非自动结束,中断申请输入IR0IR7为边沿触发,IR7对应中断类型码为0FH,编写8259初始化子程序,命名为INIT_8259;l 8253每定时500ms向8259申请中断,计算8253定时常数,并编写8253初始化子程序,命名为INIT_8253;l 8255的A口和C口上半部作输出,B口及C口下半部作输入,编写8255初始化子程序,命名为INIT_8255; 3) 编写汇编程序,实现炉温的连续控制,要求包括主程序与中断服务程序:l 主程序完成中断向量的安装,8259、8253、8255

3、初始化,以及开中断,并要求1个小时后,停止控温;(假设系统已经提供中断向量安装子程序INIT_INT,初始化时可直接调用INIT_INT、INIT_8259、INIT_8253、INIT_8255)l 中断服务程序完成保护现场、中断处理、发EOI命令、恢复现场、中断返回等操作;其中,中断处理要求每500ms通过8255的PA口读入一次A/D数据,并启动下一次A/D转换,PC4平时为高电平,输出负脉冲到START端,则启动A/D,转换结束时EOC端由低电平变为高电平,要求每3秒通过PB口输出控制量给D/A转换器进行一次调节。(假设系统已提供控制算法子程序PROC_CTRL,该子程返回参数为AL,

4、返回参数即是D/A需要输出的数字量)图6-1 炉温控制系统参考资料1:8259初始化命令字D7D6D5D4D3D2ICW41A0000SFNMBUFM/SAEOIuPMD0D1D7D6D5D4D3D2ICW21A0T6T7T5T4T3D0D1参考资料2:8259 操作命令字RSLEOI00L2L0L1D7D6D5D4D3D2D1D0OCW2A00参考资料3:8253 控制字SC0RW1RW0M2M1BCDM0D7D6D5D4D3D2D1D0SC1参考资料4:8255方式选择字参考资料5:8255 C口按位控制字B2B11/0B0D7D6D5D4D3D2D1D00D0 = 1 置1D0 = 0

5、复位012345670101010100110011000011113. 如图6-1所示,ADC0809与IBM-PC/XT机相连完成数据采集。ADC0809为8通道的8位逐次比较ADC,D7D0为三态输出数据线,OE为高电平时打开三态门读取数据;START为高电平时启动ADC开始工作;ADDC、ADDB、ADDA为8路模拟输入选择,由ALE锁存;ADC转换结束时EOC输出高电平,ADC0809的转换时间为100微秒。系统设计中,由8253定时器0定时,每隔10毫秒启动ADC0809工作,转换结束后,由EOC向8259的发出中断请求,在中断服务程序中读取转换结果。ADC0809的ADDC、AD

6、DB、ADDA全部接地,总是选择第0通道,其余输入通道均接地。8259工作在普通全嵌套方式,中断申请输入IR0IR7为边沿触发,IR0的中断类型码为08H,中断为非自动结束。图中AEN为地址允许信号,低电平时选中端口,地址总线经译码后,8259占用端口地址20H和21H,8253占用端口地址40H43H,ADC0809占用端口地址160H。图6-1 接口电路应用1) 1)8253定时器0工作在方式2,即分频模式,定时时间为10毫秒,请编写8253初始化程序段。(4分)2) 读取ADC0809转换结果的中断服务程序为New_Int0A,请编写程序段将New_Int0A的入口地址安装到中断向量表中

7、,并且要求在双字变量OldIntVect中保存原来的中断向量。(4分)3) 请编写一段程序设置IF以允许可屏蔽中断请求,并设置8259的中断屏蔽寄存器IMR以允许IR2引脚上的中断请求。(2分)4) 以下为读取ADC0809的中断服务程序New_Int0A,请根据注释在横线处补充8086汇编语句,使得程序完整。(10分)D7D6D5D4D3D2D1D0SC0SC1RW1RW0M2M1M0BCD8253控制字:参考资料:D7D6D5D4D3D28259 OWC1:1A0M6M7M5M4M3M2M1M0D0D1 DOS功能调用25H号子功能为设置中断向量入口参数:AH=25H, AL=中断类型码

8、DS:DX存放中断服务程序的入口地址出口参数:无 DOS功能调用35H号子功能为取中断向量入口参数:AH=35H, AL=中断类型码出口参数:ES:BX为所取的中断向量,其中BX存放偏移量,ES存放段地址New_Int0A proc farpushds ;保护现场 mov ax, DataSeg2movds, ax;使DS指向新的数据段 ;读取ADC0809转换结果 mov AdcData, al;将转换结果保存在内存变量AdcData中 ;发EOI命令 ;恢复现场 popds ;中断返回New_Int0A endp4. 利用PC机现有的硬件和软件资源设计程序,以实现在显示器上显示(选做题)X

9、X(时):XX(分):XX(秒)(1)设计思路 PC机系统板上使用一片8253,其地址为40H43H,其通道0以方式3工作,每55ms向中断控制器8259A IRQ0端发一次中断请求。本设计题要求借用原有电路,重新设置8253的计数器0每10ms产生一次中断,100次中断后加1秒,然后调整时、分、秒并示在屏幕上。 (2) 实时时钟的功能 按下任意键开始显示时间值,并且每秒更新一次,运行中按下空格键则停止运行并返回DOS。程序应保护原系统的08H中断向量以便退出时恢复原系统设置。(3) 题目要求 请采用中断服务程序在屏幕右上角实现时钟时、分、秒显示支持键盘输入字符功能,可通过对时、分、秒的数字修改,实现实时时钟的时间校准。时钟显示方式应美观注:中断服务程序中不要使用DOS功能调用, 因为DOS功能调用不可重入

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号