您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 东南大学微机作业第5-2章
《微机系统与接口》课程作业2019-20201习题五(第5章-2)1.如题图5-1所示,此为开关状态检测电路和继电器控制电路。当开关K闭合时,将驱动对应的继电器(即动作);如开关处于断开状态,则无电流流过继电器线圈,继电器不动作。如系统每隔10ms检测一次开关状态和对继电器作相应控制,定时控制由8253完成。试编写对8255A的初始化程序(初始态时应保证继电器不动作)和完成上述功能的检测、控制程序。设8255A地址为60H~63H。解:初始化程序:;第一次MOVDX,63HMOVAL,10000010B;1000X01XB,A出,B入,方式0OUTDX,ALMOVDX,60HMOVAL,11111111B;PAi都为1时,不动作OUTDX,AL;10s一个中断?MOVDX,61H;读入PBINAL,DXMOVSWITCHS,ALNOTAL;对AL取非,因为PBi为1,对应的PAi为0时,继电器才动作MOVNOTSWITCH,ALMOVDX,60H;PA输出OUTDX,AL题图5—1《微机系统与接口》课程作业2019-202022.设8255A的4个寻址地址号为0060H~0063H,试编写出下列各种情况的初始化程序⑴将A组和B组设置成方式0,A口、B口为输入口,C口为输出口。MOVDX,0063HMOVAL,10010010B;A入,B入,C出,方式0OUTDX,AL⑵将A组工作方式置成方式2,B组为方式1,B口作为输出口。MOVDX,0063HMOVAL,110XX10XB;方式2是双向OUTDX,AL⑶将A口、B口均置成方式1,均为输入口,PC6和PC7作为输出。MOVDX,0063HMOVAL,1011011XB;OUTDX,AL3.8250的主参考时钟频率为1.8432MHZ,其________________BAUDOUT和RCLK相连。试完成以下要求的初始化程序设计:每字符的数据位数位7,1位停止位,奇校验,波特率为1200B/S,允许发送器空中断。设8250的端口及寄存器地址从02C0H开始。解:MOVDX,02C0H+3MOVAL,80H;先访问波特率因子寄存器OUTDX,ALMOVDX,02C0H+1;除数控制寄存器MOVAL,60HOUTDX,ALINCDXMOVAL,00H;0060H1843.2K/16/1200=96=0060HOUTDX,ALMOVDX,2C0H+3;访问收发数据寄存器MOVAL,00001010B;数据位数位7,1位停止位,奇校验OUTDX,ALMOVDX,02C0H+1;中断MOVAL,00000010B;发送中断请求OUTDX,AL《微机系统与接口》课程作业2019-202034.如两台计算机利用8250进行串行通讯。通讯规程如下:异步传送,波特率为2400B/S,每字符的数据位为8位,1位停止位,无校验。试完成下列程序设计:⑴发送程序:将数据段中以T_BUF为起始地址的一组数据送到收方,字符串的长度存于字节变量T_LEN中,发送时,先发两个起始符AAH和55H,发送完全部数据后,再发送两个结束符55H和AAH作为发送结束标志。⑵接收程序:将接收到的一组数据存放在从R_BUF开始的接收缓冲区中,所收到的数据长度存于字节变量R_LEN中,只统计数据个数。如一组数据接收正确,将字节变量ERROR置为00H,否则置为FFH。解:(1)MOVDX,03FBH;03F8H+3MOVAL,80H;除数OUTDX,ALMOVDX,03F9H;除数控制寄存器MOVAL,30HOUTDX,ALINCDXMOVAL,00H;0060H1843.2K/16/2400=48=0030HOUTDX,ALMOVDX,03FBMOVAL,00000011B;8位,1位停止位,无校验OUTDX,AL;发送KEEP_TRY:MOVDX,3FDHINAL,DXTESTAL,1EHJNEERROR_ROUTINETESTAL,1JNZRECEIVE_FIRST;TESTAL,20H;检查可否发送字节;JZKEEP_TRYCALLCHECK_SREGMOVDX,3F8HMOVAL,0AAHOUTDX,ALCALLCHECK_SREGMOVAL,55HMOVDX,3F8HOUTDX,ALCALLCHECK_SREG《微机系统与接口》课程作业2019-20204MOVCH,0MOVCL,T_LENMOVSI,T_BUFSEND:MOVAL,[SI]MOVDX,3F8HOUTDX,ALCALLCHECK_SREGINCSIDECCLJNZSENDMOVAL,0AAHMOVDX,3F8HOUTDX,ALCALLCHECK_SREGMOVAL,55HMOVDX,3F8HOUTDX,ALCALLCHECK_SREG;=======================CHECK_SREGPROCNEARCHECKS:MOVDX,3FDH;LSRINAL,DXTESTAL,00100000B;发送寄存器空?JZCHECKS;是0就继续RET;不是0就完成;=======================(2);接收KEEP_TRY2:CALLCHECK_RREGMOVDX,3F8HINAL,DXCMPAL,0AAH;JNZKEEP_TRY2INAL,DXCMPAL,55H《微机系统与接口》课程作业2019-20205JNZKEEP_TRY2MOVCX,0MOVR_LEN,ALMOVSI,OFFSETR_BUFRECEIVE:CALLCHECK_RREGMOVDX,3F8HINAL,DX;接收CMPAL,55H;接收到结束标志JZEND1MOV[SI],ALINCR_LENINCSIJMPRECEIVEEND1:MOVDX,3F8HINAL,DXCMPAL,0AAH;接收到结束标志JZENDMOVAL,0FFHMOVERROR,ALEND:MOVAL,0MOVERROR,AL;=======================CHECK_RREGPROCNEARCHECKR:MOVDX,3FDH;LSRINAL,DXTESTAL,00000001B;接收完成?JZCHECKR;是0就继续RET;不是0就完成;=======================
本文标题:东南大学微机作业第5-2章
链接地址:https://www.777doc.com/doc-8060291 .html