版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,MOV AL10000001B;A口方式0,输出;C口高位输出,低位输入 OUT 83H,AL Mov al,0dH;置stb#为H,00001101 Out 83H,al Pull: in al,82H;查询busy(PC2) Test al,04H ;若busy(PC2=1), Jnz pull; 则继续读C口 Mov al,data;将data送A口 Out 80H,al Mov al,0cH;置stb#为L Out 83H,al Mov al,0dH;置stb#为H Out 83H,al ret,8.17 8255A用作查询方式打印机接口时的电路连接和打印机各信号的时序如习图8-2
2、所示,8255A的端口地址为80H83H,工作于方式0,试编写一段程序,将数据区中变量DATA的8位数据送打印机打印,程序以RET指令结束,并写上注释。,.,8.19若用共阴极LED数码管作显示器它的接口连接图如习图8-3所示,写出显示7 的段选码 答:07H,.,8.20若输入设备输入的ASCII码通过8255A端口B,采用中断方式,将数据送入INBUF为首址的输入缓冲区中,连续输入直到遇到$就结束输入。假设此中断类型码为52H,中段端服务程序的入口地址为INTRP。8255A的端口地址为80H83H。 (1)写出8255A初始化程序(包括把入口地址写入中断向量表)。 (2)写出完成输入一个
3、数据,并存入输入缓冲区BUF1的中断服务程序。,.,. MODEL SMALL . DATA INBUF DB N DUP (?) . CODE . STARTUP MOVAL,86H OUT83H,AL MOVAL,0000 0101B OUT83H,AL;中断允许PC2=1 PUSHES;写中断向量地址 MOVAX,0 MOVES,AX MOVWORD PTR ES:0148H,OFFSET INTRP MOVWORD PTR ES:014AH,SEG INTRP POPES LOP:STI CMPAL,$ JZEXIT1 JMPLOP ;等待中断 EXIT1: . EXIT INTRPP
4、ROC FAR;中断服务程序 INAL,81H MOVINBUF,AL IRET INTRPENDP END,方式字为:10000110B=86H; 中断允许:PC2=1 中断类型码:52H, 向量地址:52H*4=148H,14AH SEG INTRP送14AH OFFSET INTRP 送 148H,.,MOV AL,86H;10000110 OUT83H,AL MOV AL,05h;00000100;中断允许PC2=1 OUT 83h,AL MOV 4*52H,OFFSET INBUF MOV 4*52H+2,SEG INBUF STI INBUF PROC FAR;子程序定义 MOV
5、BX,OFFSET BUF1 IN AL,81H CMP AL,$ JZ DONE MOV BX,AL INC BX JMP LOP IRET,LOP:,DONE:,.,8.21 定时器8253通道0按方式3(方波发生器)工作,时钟CLK0的频率为1MHz,要求输出方波的频率为40kHz,此时写入的数据初值应为多少?输出方波的“1”和“0”各占多少时间。 解:初值1M/40k=25;方波的周期是25s,方波的“1”和“0”分别占13s和12s时间,.,8.22定时计数器8253输入时钟频率为1MHZ,并设定为按BCD码计数,若写入的计数值为0080H,则该通道定时时间是多少?,解: 对于BCD
6、码计数则0080H表示计数值为80 通道的输出频率为:1M/80=12500HZ 定时时间为:1/12500=810-5(S)=80(S),.,(1)若采用定时测试已转换过的脉冲个数而转换为测试转轴的速度,单位为转/秒。说明它的计算过程。(2)若用计数器0对脉冲计数,用计数器1作为定时,设它的CLK1频率为200KHz,用定时100ms来计数。写出计数器0、1的工作方式控制字和计数初值,并注释,并且写出8253的初始化程序。,8.25 若8253计数器对设备的转轴的旋转速度进行测试,接口电路如图习8-5所示。从图可知,若与转轴相连的转盘上均匀地钻有50个圆孔 ,当旋转时,通过光电转换,每通过一
7、个小孔,产生一个正脉冲,当转轴转一圈,就会产生50个脉冲通过CLK输入8253计数器进行减法计数,若假设此转轴的速度范围在50-1000转/秒,并设8253的端口地址为84H87H。,.,解: 因为最高转速为1000转/秒,因此,转1s的脉冲数最高为100050=50000个=C350H,因此计数器必须用16位计数,并且用二进制计数。 (1)采用定时测试转速,计算方法为: 如定时时间为:TIME=100ms=0.1s 则 转速=(定时到的计数值)/50)/0.1s 转/秒,.,(2)初始化程序段: 计数器0初始化程序段: 计数初值=0000H MOV AL,0011 0000B ;通道0,方式
8、0,16位计数,二进制计数 OUT 87H,AL;计数初值65536,先写入低8位字节到CRL, MOV Al,FFH OUT 84H,AL OUT 84H,AL;后写入高8位字节到CRH, 计数器1初始化程序段: 计数初值= 200kHz / (1/100ms)=20000D4E20H MOV AL,0111 0000B;通道1,方式0,16计数,二进制计数 OUT 87H,AL MOV AL,20H OUT 85H,AL MOV AL,4EH OUT 85H,AL,.,8.26设异步传输时,每个字符对应1个起始位、7个信息位, 1个奇/偶校验位,一个停止位,波特率为9600b/s,每秒传输
9、的最大字符数多少? 一个起始位,七个信息位,一个奇/偶校验位和一个停止位 共 10 位 9600 / 10 = 960 字符/秒,.,8.28 对8251A进行初始化,要求:工作于异步方式,采用奇校验、指定2个停止位、7位ASCII字符、波特率因子为16 ,出错指示处于复位状态、允许发送、允许接受、数据终端就绪、不发送空白字符、内部不复位。 解:设端口地址为80H和81H,方式字为11011010,命令字为00010111 初始化程序为 MOV AL,0DAH OUT 81H,AL MOV AL,17H OUT 81H,AL,.,答:模式字为:01111011B=7BH。控制字为:001101
10、01B=35H。 XOR AL,AL OUT 42H,AL OUT 42H,AL OUT 42H,AL MOV AL,40H ; 发复位命令 OUT42H,AL MOV AL,7BH ;设置模式字,异步方式,规定波特率因子为64 OUT42H,AL ;7个数据位,1个停止位,偶校验 MOV AL,35H ;设置控制字,使发送器和接收器启动,清除出错标志 OUT 42H,AL PUSH DS MOV BX,2000H ;DS:BX指向输出缓冲区首址 MOV DS,BX MOV BX,3000H ;缓冲区指针初始化 MOV CX,100H ;发送100H个字节 BEGIN: IN AL,42H ;
11、读取状态字,测试TxRDY是否为1 TEST AL,01H JZ BEGIN ;为0表示外设还未取走字符 MOV AL,BX ;从输出缓冲区取数 OUT 40H,AL ;发送字符 INC BX ;修改缓冲区指针 LOOP BEGIN ;则再发送下一个字符 POP DS,8.29 设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,一个停止位,用偶校验,端口地址为40H、42H,缓冲区为2000H:3000H。,01 1 1 10 11,0 0 1 1 0 1 0 1,.,8.30如果8251A的工作方式寄存器内容为01111011,那么发送的字符格式如何?为了使接受的波
12、特率和发送的波特率分别位300b/s和1200b/s,试问加到RxD和TxC上时钟信号的频率应为多少?,RxC#上时钟信号的频率为3006419.2kHZ TxC#上时钟信号的频率为12006476.8kHZ 时钟频率与波特率的关系: 时钟频率 =波特率因子*波特率 波特率=时钟频率/波特率因子 (其中n=1,16,64),01111011:1位停止位,偶校验,有校验,字符长度7位,波特率因子为64,.,8.32 ADC0809通过并行接口芯片8255与系统总线相连接的接口电路如习图8-7所示,假定8255A端口片选地址范围为80H83H,ADC0809输出允许使能地址范围为84H87H。 试
13、编写一个子程序完成通道IN0的A/D数据输入。(应包括程序注释与8255A芯片的初始化部分),1 0 0 1 1 0 0 0,.,程序段: MOV AL,10011000B;初始化8255A,A口方式0,输入, OUT 83H,AL ; C口高4位输入,低4位输出 MOV AL,00H;开始传送数据;通道IN0 OUT 82H,AL ;连通IN0 MOV AL,00000111B ; PC3置1 OUT 83H,AL ;送出开始启动信号 NO_EOC: IN AL,82H ;开始读EOC信号 TEST AL,10000000B ;测PC7,即EOC信号 JNZ NO_EOC ;若仍为高电平,继
14、续等待 ;此时EOC低电平,等待ADC0809完成转换 WAIT: IN AL,82H ;PC7=0,已启动转换 TEST AL,10000000B ;再查PC7 JZ WAIT ;PC7=0,转换未结束 ;此时数据传送完成 IN AL,82H ;从A口读数据;保存到内存,.,8.34一个采用查询传送的输出接口,其数据端口地址为205H,状态端口地址为206H,外设状态位用D0传送,输出数据时可启动外设,将存储器缓冲BUFFER中的5000B数据输出,画出流程图,编写控制程序段。,MOV BX,O MOV CX,5000 NEXT: IN AL,206H TEST AL,01H JNZ NEX
15、T;ZF=0,转至地址标号处 MOV AL,BUFFER+BX OUT 205H,AL INC BX LOOP NEXT HLT,开始,初始化,读外设状态,送数据到数据端口,Do为1?,修改指针,CX减1,yes,no,CX为0?,结束,yes,no,.,8.34一个采用查询传送的输出接口,其数据端口地址为205H,状态端口地址为206H,外设状态位用D0传送,输出数据时可启动外设,将存储器缓冲BUFFER中的5000B数据输出,画出流程图,编写控制程序段。,MOV BX,O MOV CX,5000 NEXT: IN AL,206H TEST AL,01H JNZ NEXT;ZF=0,转至地址
16、标号处 MOV AL,BUFFER+BX OUT 205H,AL INC BX LOOP NEXT HLT,开始,初始化,读外设状态,送数据到数据端口,Do为1?,修改指针,CX减1,yes,no,CX为0?,结束,yes,no,.,835用一片8255A控制一组红、绿、黄灯,如习图8-8所示,反复检测s1、s2,要求由s1、s2的“闭合”和“断开”控制红、绿、黄3灯的点亮。 当s1合,S2合时,黄灯亮; 当s1合,s2断时,红灯亮; 当s1断,s2合时,绿灯亮; 当s1断,s2断时,黄灯亮。 试根据上述条件编制初始化程序以及控制程序(已知8255A的端口地址为60H63H)。,.,S2 S1
17、 (PA1 PA0) 00 A口(00H) PC2=1 C口(04H) 1 0 A口(02H) PC0=1 C口(01H) 01 A口(01H) PC1=1 C口(02H) 11 A口(03H) PC2=1 C口(04H),当s1合,S2合时,黄灯亮; 当s1合,s2断时,红灯亮; 当s1断,s2合时,绿灯亮; 当s1断,s2断时,黄灯亮。,.,解: A口是输入,C口是输出,控制字为10010000B (90H) 8255口的地址为60H63H,MOV AL,90H OUT 63H,AL;8255A初始化 LOP: IN AL,60H CMP AL,01H JZ GREEN CMP AL,02
18、H JZ RED MOV AL,04H JMP SHOW GREEN: MOV AL,02H JMP SHOW RED: MOV AL,01H SHOW: OUT 62H,AL ;灯亮 JMP LOP,当S2合(0),s1合(0) (PA= 00H), 黄灯亮(pc2=1)04H; 当s2断(1),s1合(0) (PA= 02H) , 红灯亮(pc0=1)01H; 当s2合(0), s1断(1) (PA= 01H) ,绿灯亮(pc1=1)02H; 当s2断(1), s1断(1)(PA=03H) , 黄灯亮(pc2=1)04H 。,.,8.37 82535的通道0按方式3工作,时钟CLK0的频率
19、为1MHz,要求输出方波的重复 频率为40KHz,此时应如何写入计数初值。,Ci=CLK/OUT=1000000/40000=25 即N=19H MOVAL,00010110B;计数器0控制字 OUTDX,AL MOVAL,19H;计数器0计数初值为25=19H OUTDX,AL,.,8.38 设8253-5与8086相连,8253-5的时钟频率为2MHZ,其口地址为340H343H,通道0工作于定时方式,要求每20ms向8086发出一中断请求信号,通道1要求输出频率为1000HZ的方波,请编写初始化程序。,通道0计数初值为2MHZ/(1/20ms)=40000次=94c0;计数器0初始化程序
20、段: MOV DX,343H MOV AL,34H ; 00110100=34H,通道0,方式 ;2,16位计数,二进制计数 OUT DX,AL MOV DX,340H MOV AL,0C0H ;计数初值94C0H,先写入低8位 OUT DX,AL MOV AL,94H ;计数初值94C0H,后写入高8位 OUT DX ,AL;,.,8.38 设8253-5与8086相连,8253-5的时钟频率为2MHZ,其口地址为340H343H,通道0工作于定时方式,要求每20ms向8086发出一中断请求信号,通道1要求输出频率为1000HZ的方波,请编写初始化程序。,通道1计数初值为2000000HZ/
21、1000HZ=2000次 计数器1初始化程序段: MOV DX,343H MOV AL,01110111B ; 通道1,方式3,16位计数,BCD计数 OUT DX,AL MOV DX,341H MOV AL,00H ;先写入低8位 OUT DX,AL MOV AL,20H ;后写入高8位 OUT DX,AL;,.,8.40有8086系统同ADC0809的接口如习图8-11所示,请回答如下问题: (1)启动ADC0809模拟通道IN7转换的指令(或指令段) (2)查询ADC0809转换是否结束,为结束则继续查询的指令段。 (3)使ADC0809的OE有效的指令段。 (4)若CLK88的重复频率
22、为4kHz,则CLOCK的重复周期为多少?,XXX X X 1 1 0 1,控制字10010010 地址1011001XX,启动IN7地址101101111,.,(1) MOV AL,92H; 8255初始化控制字10010010 MOV DX,167H OUT 167H,AL;送控制字地址101100111 MOV DX,16FH OUT 16FH,AL;启动IN7 (2) LOP: MOV DX,165H ;判断PB0 IN AL DX; TEST AL 00H JZ LOP ;判断PB0=0,没有结束 (3) MOV DX,164H IN AL , DX ; 从PA输入数据,RD有效,
23、OE有效 (4) T(CLOCK )=8* T(CLK88)=8/(4KHz)=0.002S,.,8.44有一温度控制电路如习图813所示。通过计数器/定时器8253的通道1产生周期为1s的方波,向可编程中断控制器8259的申请中断。若上无中断请求信号IRQ,则CPU响应,转向相应的中断服务程序INTJ。在INTJ中启动ADC0809,对IN5信号(来自温度传感器的温度信号)进行A/D转换,然后返回主程序。当A/D转换结束后,向8259的发出中断请求。,若上无中断请求信号IRQ,则CPU响应,转向相应的中断服务程序INTK,在INTK中通过接同风扇与加热电炉来调节温度。上述程序中,若在上有IR
24、Q信号,则程序结束返回操作系统。 (1)计算8253,8255A,8259的端口地址。 (2)对8253初始化。 (3)启动0809工作的程序段。,100XX,地址1001 0XXX,地址1000 1XXX 控制字01110111,地址1000 0XXX,地址1001 1XXX,.,(1)8253地址: 88H8FH, 8255 A地址90H97H, 8259地址80H87H (2)MOV AL,77H OUT 8BH,AL;对8253初始化。 MOV AL ,50H;计数初值1s/(1/1.25kHz)=1250 OUT 89H,AL MOV AL,12H OUT 89H,AL (3)启动0
25、809工作的程序段。 MOV AL,05H; IN5 OUT 9DH,AL IN AL,9DH HTL,.,8.45 8255的PA口写8个LED管连接如习图814,用8253作定时器控制8个LED管自下向上闪动,8253连接如习图815,闪动频率为10次/s(既每秒钟每个LED管亮10次),8253 3个计数通道和控制字寄存器的地址为40H43H,8255A的端口地址为60H63H,其控制程序如下: 主程序 MOV AL, 80H (1) OUT 63H, AL (2) MOV AL, 34H (3)0011 0100B,方式2 OUT 43H, AL (4) MOV AL, 0A8H (5
26、)计数初值61A8H=25000D, OUT 40H, AL (6) MOV AL, 61H (7) OUT 40H, AL (8) MOV AL, 7FH (9),01111111,从下向上闪动,PA7输出低电平 OUT 60H, AL (10) STI,.,中断服务程序: INTROUT SEGMENT (11) (设CS=1480H) ORG 3000H (12) ROR AL, 1 (13) OUT 60H, AL (14) IRET (15) 试问:(1)从程序中给出的数据,计算8253中的时钟周期以及该控制程序中所使用的中断服务程序的中断类型号n的值,中断向量表如习图 816所示。
27、 解答:(1)Tck0=1/(25000*(8*10)=1/2000000=5*10-7s 中断向量地址为0034H=52D;终端类型号52/4=13,.,8.46 8086CPU通过8255A同发光二极管LED0LED7以及开关S0S7的接口电路如习图8-18所示,发光二极管LED0LED7不断显示对应开关S0S7的通断状态。要求:,(1)S0S7的状态每隔半分钟改变一次,把每次变化的状态记录在从2000H:1000H开始的内存单元中。 (2)S接通时,对应二极管熄灭,S断开时,对应的二极管发亮(即断开,发亮;接通,熄灭)。 (3)连续工作24小时结束。 用8086汇编语言编写的控制程序如下
28、,请填上程序中空缺的部分(包括指令,操作数或标号,初始化时无关项置“0”)。,1 00 1 0 0 0 0,地址1 0 1 1 1 0 0 XX,.,START:MOV AL,(90H);初始化10010000B MOV DX,(173H) (OUT) DX,AL MOV AX,(2000H);送段地址1011100XXB;170H173H; MOV DS,AX LOP: MOV CX,(2880);工作24小时24*60*2=2880=0B40H LOP1:MOV BX,(1000H) LOP2:MOV DX,(170H);读PA口 (IN) AL,DX MOV BX,AL;存 INC (B
29、X) XOR AL,(FFH);写PB口 MOV DX,(171H) (OUT) DX,AL (PUSH CX) ( PUSH BX ) CALL DELAY30S ( POP BX) ( POP CX) LOOP (LOP2) HLT,.,(2)若闪动频率改为1次/min,且为自上到下闪动,可采用如习图817所示的串接形式,中断类型为(1)中计算值加1,请对程序作最小程度的更改,以满足上述要求(计数通道0工作不变),(2)计数初值10/(1/60)=600=258H 中断类型号14,地址0038H,CS=3000H,IP=1480H 主程序: (1)-(10) MOV AL, 74H (11
30、)0111 0100B,方式2 OUT 43H, AL (12) MOV AL, 58H (13) ;计数初值=600=258H, OUT 41H, AL (14) MOV AL, 02H (15) OUT 41H, AL (16) MOV AL, 0FEH (17);11111110,从上向下闪动,PA0输出低电平 OUT 60H, AL (18) STI,.,847 让8253计数器0在1ms脉冲信号源CLK0且工作在方式3定时1min,用8255A的PC6提供GATE0,在定时期间,由PC7控制的灯亮(=1,亮),对OUT0的检测通过PC0进行,定时结束灯灭,先画出脉冲信号源,8253,
31、8255A的连接关系图,再编写程序段。,8255控制字10000001B=81H C口方式0,C口低四位输入 8253计数初值60s/1ms=60000 确定通道控制字00110110B=36H PC0置1 控制字00000001 PC6置1 控制字00001101 PC7置1 控制字00001111,8255 PC7 PC6 PC0,8253 GATE0 OUT0,CLK0,1 0 0 0 0 0 0 1,.,程序段 MOV AL, 81H;8255A初始化: OUT 63H, AL MOV AL, 0FH ; 8255A的PC7输出高电平, OUT 63H, AL ;灯亮 MOV AL,
32、0DH ; 8255A的PA6输出高电平, OUT 63H, AL ;启动8253计数通道0工作 MOV AL, 36H ; 8253计数通道0初始化:方式3, OUT 43H, AL ;二进制计数 MOV AL, 60H OUT 40H, AL ;写计数初值低8位 MOV AL, 0EAH OUT 40H, AL ; 写计数初值高8位 WAIT: MOV DX,62H IN AL,DX; 8255A的PC0输入低电平,停止8253计数通道0工作 CMP AL,01H JZ WAIT MOV AL,0EH OUT 63H,AL IRET,8253计数初值60s/1ms=60000=EA60H 控制字00110110B=36H 8255控制字10000001B=81H PC0置1 控制字00000001 PC6置1 控制字00001101 PC7置1 控制字00001111 PC7置0 控制字00001110 设8253的端口地址为40H43H, 8255A的端口地60H63H,.,848
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床甲状腺手术后护理查房
- 水肥一体化设备日常维护保养规程
- 番茄早疫病综合防治技术方案
- 苹果果树夏季拉枝技术操作规程
- 网格化安全风险排查管理细则
- 拔罐走罐起罐安全操作指南
- 视力健康筛查实施方案
- 出口农产品农残检测技术规程
- 消防器材使用与维护管理规程
- 更年期女性营养膳食调整指南
- 儿童夏日防暑安全知识课堂
- 2026年少先队考核模拟试题及答案详解(全优)
- 中国金谷国际信托有限责任公司招聘笔试备考试题及答案解析
- 小学一年级语文下册《荷叶圆圆》跨学科融合教学设计(导学案)
- 湖南 2026 政府采购评审专家续聘考试(3) 真题
- 2026天津富凯建设集团有限公司招聘工作人员招聘4人考试参考题库及答案解析
- 2025年芯片测试岗笔试题目及答案
- 预应力混凝土空心方桩08SG360
- 安宁疗护病区工作制度
- 2026年上海市杨浦区中考数学二模试卷(含解析)
- 电梯施工临时用电安全方案
评论
0/150
提交评论