第九章并行接口与串行接口习题选解
微机原理及接口第九章作业答案

“微机系统原理与接口技术”第九章习题解答(部分)1. 什么是并行接口和串行接口?它们各有什么作用?答:并行接口是指接口与外设之间按字长传送数据的接口,即4位、8位或16位二进制位同时传送;而串行接口是指接口与外设之间依时间先后逐位传送数据的接口,即一个时刻只传送一个二进制位。
并行接口传送速度较快,但在远距离传送数据时成本高,损耗大,且平行数据线之间干扰大,所以并行接口一般适用于近距离的高速传送,而串行接口则适用于远距离传送。
2. 试画出8255A与8086CPU连接图,并说明8255A的A o、A i地址线与8086CPU的A i、A2地址线连接的原因。
答:8255A与8086CPU的连线图如下图所示:题9-2图8086系统有16根数据线,而8255只有8根数据线,为了软件读写方便,一般将8255 的8条数据线与8086的低8位数据线相连。
8086在进行数据传送时总是将总线低8位对应偶地址端口,因此8086CPU要求8255的4个端口地址必须为偶地址,即8086在寻址8255 时A0脚必须为低。
实际使用时,我们总是将8255的A0、A1脚分别接8086的A1、A2脚,而将8086的A0脚空出不接,并使8086访问8255时总是使用偶地址。
4. 简述8255A工作在方式1时,A组端口和B组端口工作在不同状态(输入或输出)时,C端口各位的作用。
注:带*的各中断允许信号由 C 口内部置位/复位操作设置,非引脚电平。
5. 用8255A控制12位A/D转换器,电路连接如下图所示。
设B 口工作于方式1输入,C 口上半部输入,A 口工作于方式0输入。
试编写8255A的初始化程序段和中断服务程序(注:CPU采用中断方式从8255A中读取转换后的数据)。
答:设8255的A、B、C及控制端口的地址分别为PORTA、POATB、PORTC和PCON,则一种可能的程序段实现如下:初始化8255AMOV AL,10011110B;设置8255A的工作方式控制字OUT PCON,ALMOV AL,00000101B;设置C 口置位復位控制字,使INTEA (PC2)为OUT PCON,AL;高电平,允许B 口中断MOV AL,00000010B;设置C 口置位/复位控制字,使PC1(IBF B)输出OUT PCON,AL;低电平,启动第一次A/D转换6. 用8255A作为CPU与打印机接口,8255的A 口工作于方式0,输出;C 口工作于方式0。
微型计算机原理作业第九章 习题与思考题

第九章习题与思考题典型例题解析一、填空题:1.8255A把①和②分别称为A组和B组,可组成两个独立的并行接口。
答案:①A口和C口的上半部分(PC4~PC7);②B口和C口的下半部分(PC0~PC3)。
分析:8255A的内部控制部分包括A组和B组控制部分,A组控制电路控制端口A和端口C 的上半部分,B组控制电路控制端口B和端口C的下半部分。
每组控制部件从读写控制逻辑接受各种命令,从内部数据总线接收控制字,并发出适当的命令到相应的I/O端口,以确定各个端口的工作方式。
2.8255A中,A组有①种工作方式,它们是②,B组有③种工作方式,它们是④。
当A组工作于方式2时,B组可以工作于⑤。
答案:①3;②方式0、方式1和方式2;③2;④方式0和方式1;⑤方式0或方式1。
分析:8255A的A组和B组可以通过程序分别设置于不同的方式组合,在此要注意只有A组能工作于方式2。
3.当8255A的PC4~PC7全部为输出线时,表明8255A的A端口的工作方式是。
答案:方式0分析:A口工作在方式1或方式2时,均要使用PC4~PC7中部分或全部信号线作为固定的应答信号线和中断请求线。
此题全部PC4~PC7为输出线,说明A口工作时无固定的应答控制线,由此判断A口只能工作在方式0。
二、选择题1.并行接口和串行接口的区别主要表现在()之间的数据传输前者是并行,后者是串行。
A.接口与CPU B.接口与外设 C.CPU与外设 D.接口与CPU和外设答案:B分析:无论是并行接口还是串行接口,接口与CPU之间的数据传输都是并行的,主要区别是在接口与外设之间。
2.8255A有两种控制字,分别为工作方式字和C口位控字,其工作方式控制字一定是()。
A.不等于80H B.小于等于80H C.大于等于80H D.都不是答案:C分析:8255A的方式控制字最高位D7是特征位,固定为1,所以只有答案C是正确的。
3.8255A工作在方式1的输入状态时,可以通过()知道端口是否已经准备好了输入的数据。
微机原理及接口技术重点及例题

第一章思考题与习题:1.什么叫微处理器、微机?微机系统包含哪些部分?2 .为什么计算机使用二进制计数制?3.CPU 在内部结构上由哪几部分组成?4 .十六进制的基数或底数是。
5.将下列十进制数分别转换成十六进制、二进制、八进制数:563 6571 234 1286 .将下列十进制小数转换成十六进制数(精确到小数点后4 位数):0.359 0.30584 0.9563 0.1257.将1983.31510转换成十六进制数和二进制数。
8.将下列二进制数转换成十进制数、十六进制数和八进制数:(1)101011101.11011 (2 )11100011001.011 (3 )1011010101.00010100111 9.将下列十六进制数转换成十进制数和二进制数:AB7.E2 5C8.11FF DB32.64E10.判断下列带符号数的正负,并求出其绝对值(负数为补码):10101100;01110001;11111111;10000001。
11.写出下列十进制数的原码、反码和补码(设字长为8 位):+64 -64 +127 -128 3/5 -23/12712.已知下列补码,求真值X :(1)[X]补=1000 0000(2 )[X]补=1111 1111(3 )[-X]补=1011011113.将下列各数转换成BCD 码:30D,127D,23D,010011101B,7FH14.用8421 BCD 码进行下列运算:43+99 45+19 15+3615.已知X =+25,Y =+33,X = -25,Y = -33,试求下列各式的值,并用其对应的真值进行验证:1 12 2(1)[X +Y ]补1 1(2 )[X -Y ]补1 2(3 )[X -Y ]补1 1(4 )[X -Y ]补2 2(5 )[X +Y ]补1 2(6 )[X +Y ]补2 216.当两个正数相加时,补码溢出意味着什么?两个负数相加能产生溢出吗?试举例说明。
微机原理第九章练习题及解

微机原理第九章练习题及解一:单项选择题●8253的端口地址数为( C )。
A:1个B:2个C:4个D:8个●8255的A端口读写操作时,地址线(A)。
A:A1 = 0、A0 = 0 B:A1 = 0、A0 = 1C:A1 = 1、A0 = 0 D:A1 = 1、A0 = 1●写8255的控制字88H,功能是( B )。
A:A口方式0输入B:B口方式0输出C:置PC4为低D:置PC7为高●从8255的C端口读状态信息时,地址线( C )。
A:A1 = 0、A0 = 0 B:A1 = 0、A0 = 1C:A1 = 1、A0 = 0 D:A1 = 1、A0 = 1●8088与8255连接时的写控制字地址是( D )。
A:100H B:101H C:102H D:103H●8086与8255连接时的B口读写地址是( B )。
A:100H B:102H C:104H D:106H●8253写方式控制字时,地址线( D )。
A:A1 = 0、A0 = 0 B:A1 = 0、A0 = 1C:A1 = 1、A0 = 0 D:A1 = 1、A0 = 1●8253的计数器0读写操作时,地址线(A)。
A:A1 = 0、A0 = 0 B:A1 = 0、A0 = 1C:A1 = 1、A0 = 0 D:A1 = 1、A0 = 1●8253的控制字为85H,功能为( B )。
A:计数器0二进制计数B:计数器2十进制计数C:计数器0低8位初值D:计数器2高8位初值●8253的控制字为78H,计数器选择为( B )。
A:计数器0 B:计数器 1 C:计数器 2 D:无作用●8253的控制字为40H,工作方式选择为( C )。
A:方式0 B:方式 2 C:方式 4 D:方式5●8259固定优先权方式的中断请求信号IR0—IR7的优先权顺序为( A )。
A:IR0→IR7 B:IR7→IR0C:IR0→IR7→IR-1 D:每个中断请求信号等优先权。
微机原理测试题(关于并行接口8255、串行接口、数模转换)

第8章:并行接口8255、第9章:串行接口、第11章:数模转换1.8255有三种工作方式——方式0、方式1和方式2,其中方式2能用于()A.PORT AB.PORT BC.PORT CD.A、B、C都可以2.在异步串行通信中,传送ASCⅡ字符′Z′(′Z′的ASCII码为1011010B),采用1位起始位、1位偶校验位和l位停止位,此时串行口发送的帧信息为()A.01011010l1B B.00101101l1B C.010*******B D.0010110101B3.串行接口中,并行数据和串行数据转换的实现是用()A.数据寄存器B.移位寄存器C.数据缓冲器D.A/D转换器4.在串行接口中,接口芯片同CPU之间传送的数据以及接口芯片同外设之间传送的数据分别是A.并行和并行B.并行和串行C.串行和并行D.串行和串行5. 8位模/数转换器ADC的输入电压满刻度值为V FS,则该ADC的分辨率为V FS的()A.1/8 B.1/128C.1/256D.1/5126 异步串行通信的数据格式为1位启动位,7位数据位,1位奇校验,1位停止位,若采用传送速率为9600波特,则每秒钟可传送多少个字符?7.8255A用作发光二极管L0、L1、L2和开关K0、K1、K2的接口如下图所示。
(1)计算8255A的端口地址。
(2)写出8255A的PA口和PB口各工作于8255A的哪种工作方式(方式0、方式1还是方式2)?(3)该接口中PA口和PB口各处于哪种控制方式(无条件传送、查询输入、查询输出还是程序中断)?8.在上图接口中通过检测开关K0、K1、K2的通/断状态,控制三个发光二极管的点亮和熄灭。
要求:K0、K1、K2全部接通时,L0点亮;K0、K1、K2全部断开时,L1点亮;其余状态,L2点亮。
其控制程序如下,请在空格处填上正确的内容。
MOV DX,_____(1);8255A初始化MOV AL,_____(2)OUT DX,ALMOV DX,_____(3);检查开关状态IN AL,DXAND AL,(4);屏蔽AL高5位CMP AL,_____(5);是否全通JZ REDCMP AL,(6);是否全断JZ GREENMOV AL,_____(7);置黄灯(L2)亮JMP DISPLEDRED:MOV AL,_(8);置红灯(L0)亮JMP DISPLEDGREEN:MOV AL,__ (9);置绿灯(L1)亮DISPLED:MOV DX,_____(10);点亮相应的LED OUT DX,ALMOV AH,4CHINT 21H。
微机接口技术试题答案

微机接口技术试题答案前言在当今数字化时代,微机接口技术的发展已经成为了现代社会中不可或缺的一部分。
微机接口技术主要涉及计算机与外部设备之间的通信和数据交互,能够极大地提高工作效率和便利性。
下面将就微机接口技术的试题进行详细解答,希望能对读者有所帮助。
第一部分:串行接口技术串行接口技术是一种将数据位按顺序进行传输的通信协议,它以数据位的序列化方式进行传输。
串行接口技术在现代通信设备中得到广泛应用,如USB、RS-232等。
下面是对几道关于串行接口技术的试题进行解答。
1. 解释什么是串行接口技术?答:串行接口技术是指将数据位按顺序进行传输的一种通信协议。
它将数据位逐位地发送或接收,通过时钟信号将数据位转换为串行的比特流进行传输。
2. 什么是波特率(Bit rate)?答:波特率是指单位时间内传输的比特数,用来衡量串行数据传输的速率。
它通常以每秒传输的比特数(bps)来表示。
3. 请列举几种常见的串行接口标准。
答:常见的串行接口标准有RS-232、RS-422、RS-485、USB等。
第二部分:并行接口技术并行接口技术是一种将多个数据位同时进行传输的通信方式,它以平行传输的方式进行数据交换。
并行接口技术常用于计算机内部的各个子系统之间的数据传输,如内存与CPU之间的数据传输。
下面是对几道关于并行接口技术的试题进行解答。
1. 解释什么是并行接口技术?答:并行接口技术是一种将多个数据位同时进行传输的通信方式。
它通过多个信道同时传输数据位,以提高数据传输速率和并行处理能力。
2. 并行接口技术有哪些优点?答:并行接口技术的优点包括传输速率高、数据带宽大、传输稳定等特点。
并行接口技术在计算机内部的数据传输中应用广泛,能够提高计算机的处理效率。
3. 并行接口技术常见的应用有哪些?答:并行接口技术在计算机内部的数据传输中常见应用包括内存与CPU之间的数据传输、硬盘控制器与硬盘之间的数据传输等。
第三部分:USB接口技术USB(Universal Serial Bus)是一种用于计算机和外部设备之间连接和数据传输的通信接口标准。
接口与外围设备主教材习题解析

接口与外围设备主教材习题解析1. 引言接口与外围设备是计算机科学与技术学科中的一门重要课程,主要研究计算机系统与外围设备之间的通信与交互方式,以及接口设计与驱动程序开发等相关内容。
本教材习题解析将针对该主题的一些典型习题进行解答与分析,帮助读者更好地理解与应用接口与外围设备方面的知识。
2. 习题解析2.1 什么是接口?接口是计算机系统中不同部分之间进行通信与交互的一种方式。
它定义了外围设备与计算机系统之间的通信协议和数据格式,使得计算机能够与外围设备进行有效的数据交换。
接口可以是硬件接口,也可以是软件接口。
对于硬件接口,它通常是计算机系统的物理接口,包括电气特性、信号线、插槽等。
而软件接口则是通过编程接口来实现的,包括操作系统提供的系统调用、驱动程序提供的API等。
解答与分析接口在计算机系统中起到了极为重要的作用。
它使得不同的硬件设备可以与计算机系统进行协作,进行数据传输、信号交换等操作。
同时,接口的设计也需要考虑到不同硬件设备和计算机系统之间的兼容性问题,确保数据能够正确地传输和处理。
2.2 接口与外围设备的通信方式接口与外围设备的通信方式有多种,常见的有并行通信和串行通信。
并行通信是指计算机与外围设备之间同时传输多位数据的方式,而串行通信则是逐位进行数据传输的方式。
解答与分析并行通信在传输速度上较快,但受到线路长度、干扰等因素的限制。
而串行通信虽然传输速度较慢,但由于数据逐位传输,可以更好地克服线路长度和干扰问题。
2.3 接口设计的考虑因素在进行接口设计时,需要考虑以下几个因素:•数据传输速率:接口所支持的数据传输速率应与外围设备的需求相匹配,以确保数据能够及时传输。
•数据格式:接口应支持所需的数据格式,以便计算机系统与外围设备之间能够进行正确的数据交换。
•接口类型:根据外围设备的特性和要求,选择合适的接口类型,如USB、PCI等。
•兼容性:接口设计时需要考虑与其他设备和系统的兼容性,以确保接口能够正常工作。
微机原理及接口第9章习题解答

第9章习题解答1、选择题(1)在数据传送过程中,数据由串行变并行或由并行变串行,其转换是通过()A.锁存器B.加法器C.移位寄存器D.数据寄存器(2)在远距离串行通信中,采用调制技术是为了使信号()A.强度加大B.不失真传送C.一位一位传送D.有条不紊传送(3)微处理器通过数据总线向慢速外设输出数据时,接口部分必须含有的部件是()A.反相器B.放大器C.锁存器D.TTL/EIA电平转换器(4)串行接口与设备之间的数据传输是以串行方式并且以()A.单工方式进行的B.半双工方式进行的C.全双工方式进行的D.半/全双工方式进行的(5)甲乙两台计算机近距离通过RS一232C口进行通讯时,常采用最简单的三线联结。
即是()A.甲机的TXD、RXD、GND分别与乙机的TXD、RXD、GND相连B.甲机的TXD、RXD、GND分别与乙机的RXD、TXD、GND相连C.甲机的RTD、TXD、RXD分别与乙机的RTS、TXD、RXD相连D.甲机的DSR、RXD、DTR分别与乙机的DSR、RXD、DTR相连2、什么是比特率、波特率?解:比特率指每秒传送的二进制位数。
波特率指每秒传送的信息位数量。
3、如果串行传输速率是2400波特,数据位的时钟周期是多少秒?数据位的时钟周期是 = 4.17×10-4秒4、若8251A的收发时钟(RxC、TxC)频率为38.4KHz,它的RTS和CTS 引脚相连。
工作在半双工异步通信,每帧字符的数据位数为7,停止位数为1,偶校验,波特率为600b/s,处于发送状态。
写出初始化程序,其端口地址为02C0H和02C1H。
38.4K = n * 600 ,得分频系数为64MOV DX,02C1HMOV AL,01111011 ;方式字OUT DX,ALMOV AL,00110001 ;控制字OUT DX,AL5、设8251A为异步工作方式,波特率因数为16,7位/字符,奇校验,两位停止位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.4写出下列两种情况下8,}55A的工作方式控制字(包括I/O方式控制字和必要的按位置位/复位控制字)。
(1) 8255A用做键盘和终端地址接口,如图9 ..4所示。
.(2)8255A用做基本软盘接日,如图9.5所示。
解:(1)由图9.4可知:A口工作在方式1输人,采用中断读键盘,C口的PC4 , PC5为A口方式1输人提供固定的握手联络信号,而PC6,PC7用于输出“LT忙”和“测试LT",所以C口高4位工作在方式。
输出,B口用于输人终端地址,所以B口应工作在方式。
输人。
由此分析可知,8255A的初始化包括设置工作方式和开中断操作,其控制字为: 工作方式控制字:1011001 x B按位置位/复位控制字(开放中断INTEA=1,即PC4置位):00001001B(2) A口工作在方式2中断方式输人/输出,B口和C口低4位工作在方式0输出,所以8255A的初始化也包括设置工作方式和开中断操作,其控制字为:工作方式控制字:11 x x x 000B开放输人中断按位置位/复位控制字,即PC4置位:0000l001B开放输出中断按位置位/复位控制字,即PC6置位:00001101B9.5设8255A的端口A,B,C和控制寄存器的地址为F4H,F5H,F6H,F7H,要使A口工作于方式0输出,B口工作于方式1输人.C口上半部输人,下半部输出,且要求初始化时使PC6=0.试设计82SSA与PC系列机的接A电路,并编写初始化程序。
解:82SSA与FC系列机的接口电路如图9.5所示。
初始化程序如下:·MO V A L , 10001110F3 ;方式字OUT 0F7H, ALMOV AL,00000110B ;PC6=0OUT 0F7H, ALMOV AL,00000101 ;开中断OUT 0F7H,AL9.6在PC系列微机系统中,用8255A做某快速启停电容式纸带机接口的硬件连接如图9.7所示,试用汇编语言编写8255A的初始化程序。
解:由图9.7可知,A口工作于方式1中断输入.PC6用于输出正脉冲启动纸带机,所以C口上半部工作于方式0输出。
A口、B口、C口和控制寄存器的地址为x x x x x 000B、x x xx x 001B, x x x x x 0l0B, x x x x 011B,可任选其中的一个地址、编制初始化程序如下: MOV AL,10110x x xB ;A口方式1输人,C口上半部愉出卜.OUT 03H;AL ;写方式控制字MOV AL, 00001100B ; Pq输出正脉冲启动纸带机OUT 03H,ALMOV AL,00001101BOUT 03H,ALMOV AL,00001100B;OUT 03H,ALMOV AL,0000l001B. ;PC4置位开放中断OUT 03H,AL,9.7用8255A做某PC系列微机系统中的键盘和显示器的接口,A口与一全译码键盘连接,B口与一自扫描视频显示器连接,如图9.8所示。
试设计其接口驱动程序。
解:A口工作于方式1中断输人,B口工作于方式1中断输出,C口上半部工作于方式0输出。
A口、B口、C口和控制寄存器的地址为x x x x x 000B, x x x x x 001B, x x x x x010B,xxxxx011B,可任选其中的一个地址。
接口驱动程序包括8255A的初始化程序和键盘输人及显示输出程序。
8255A初始化程序如下:INI8255:MOV AL,0B4HOUT 03H,ALMOV AL,09HOUT 03H,ALMOV AL,05HOUT 03H,AL输人/输出中断处理程序如下:INT_IO: PUSHAIN AL,02HTEST AL , 08HJNZ KEYTEST AL,O1HJNZ DISPEXIT: POPASTIIRETKEY: ….JMP EXITDISP: …….JMP EXIT9.8用PC系列微机实现对注塑机的时间顺序控制。
注塑机生产一个工件的工艺流程为:合模(1s)—注射(2 s)—延时(3 s)—开模(1 s)—产伸(1 s)—产退(1 s) 。
假若用8255A的B口PB。
~PB5每根线控制一个执行机构动作,用PA7和PA6作为掉电和低温警告监视输人。
如果正常,各执行机构按工艺流程顺序周而复始地切换;一旦出现异常,则通过PC0控制一红色LED发亮,作为故障报警,并设置6s故障处理时间,时间到,若故障已排除,则系统又继续运行,否则停止生产。
(1)请设计出硬件连接电路;(2)按控制要求编制程序。
解:硬件连接如图9.9所示,8255A各端口地址为0F4H~ 0F7H, A组、B组均工作在方式0。
采用软件延时(用INT 15H的86号功能调用),控制程序如下:DATA SEGMENTDELAY TIME DB 1,2,3,1,1,1 ;定义延时秒值……..DA TA ENDSCODE SEGMENTASSUME GS: CODE, DS: DATASTART: MOV AX,DATAMOV DS,AxMOV AL, l 0010000B : A口方式0输人、B和C口方式0输出OUT 0UF7H.ALMOV AL , 00000000B PC0=0 .发光二极管灭,系统正常OUT 0F7H.ALBEIGlN: MOV DL,01H ;PB口输出控制字初值,从合模开MOV BX,0 ;BX指向对应延时秒值存放单元REPEAT: IN AL.0F4H ;读A口TEST AL, 03HJNZ ERROR ;转故障处理MOV AL,DL ;取PB口输出控制字OUT 0F5H,AL ;控制执行机构SHL DL, 1 ;输出控制字左移1位。
指向下一工艺MOV CL, DELAY_TIME[BX] ;取延时秒值WAIT$:CALL IIELAY1S ;延时1sDEC CL.JNZ W AIT$INC BX : BX指向下一道工艺延时秒遗CMP BX,6 ;6个工艺处理完?JNZ REPEAT :未完.继续下一道工艺JMP BEIGIN ;重开始下一工艺流程ERROR: MOV AL,01HOUT 0F7H ,ALMOV CX, 6WAIT1:CALL DELAY1SLOOP W AIT1IN AL , 0F4HTEST AL , 03HJNZ EXITMOV AL ,00HOUT 0F7HJMP REPEATEXIT:MOV AH, 4CHINT 21H;延时1s子程序,用INT 15H 的86H 号功能调用;1s=1 000 000 us=F4240H usDELAYIS PROCPUSH AX ;保护程序中用到的寄存器PUSH CXPUSH DXMOV AH, 86H ;INT 15H调用的功能号MOVCX ,0FH ;延时时间的高16位MOV DX ,4240H ;延时时间的低16位INT 15HPOP DX ;恢复保存的寄存器值POP CXPOP AXRETDELAYIS ENDPCODE ENDSEND START9.9拟用8255A和AT机系统板上8254通道1设计一个十字路口交通灯管理系统。
要求:东西、南北方向各装有红、黄、绿指示灯;东西向和南北向通行时间分别为30 s和20 s;由绿灯变为红灯前的3s内,绿灯灭而黄灯亮;时间由两位7段LED显示器倒计时显示;当某方向显示红灯时,允许人工干预强行改变两个方向的指示灯颜色,以让救护车、警车通行,但发出改变通行命令后,应有3s时间使显示绿灯的方向变为显示黄灯且以每秒10次的频率闪烁,以示警告。
试完成硬件和软件设计(仍假定8255A和8254的地址分别为03C0H~ 03C3H和04C0H~04C3H )。
解:用8255A设计的十字路口交通灯管理系统如图9.10所示。
A口、B口方式0输出,分别控制东西方向和南北方向LED显示器显示定时时间,C口方式0输出控制交通灯,其中PC7~PC5分别控制东西方向红、黄、绿灯,PC3~PC1分别控制南北方向红、黄、绿灯。
8254用于定时.通道0工作于方式3输出1 kHz方波.计数初值为:通道0计数初值=( 5 MHz) /(1 kHz) = 5 000通道1工作于方式2输出周期为1s的负脉冲作为秒定时中断请求信号,接系统板IRQ3,计数初值为:通道1计数初值=1 s/(1 /(1 kHz ) ) =1 000在秒中断处理程序中,完成开关检测和交通灯控制,处理流程如图9.11所示。
程序如下:·MODEL SMALL·STACK·DA TAFM DB 1 ;方向标志FM = 1东西向通,为0南北向通SCONT DB 30H ;秒计数器,初值30 s(BCD数)KONG DB 00101000B ;红黄绿灯控制字,东西向绿灯亮南北向红灯亮KEYON DB 0 ;强制改变方向标志,初始为正常SA VECS DW ?SA VEIP DW ?KEEP DB ?MODE EQU 10000000B·CODESTART:MOV AX,@DA TAMOV DS,AXCLIMOV AH,35HMOV AL,OBHINT 21H ;保存系统IRQ3原中断向量MOV SA VEIP,BXMOV SA VECS, ESPUSH DSMOV AX,SEG TIMEIS ;计数中断服务程序人口地址MOV DS,AXMOV DX,OFFSET TIMEISMOV AH,25HMOV AL,0BHINT 21HPOP DSMOV AL,MODE ;写8255方式控制字MOV DX,3C3HOUT DX , ALMOV DX,4C3H ;初始化8253通道0工作方式MOV AL, 36HOUT DX,ALMOV DX,4C0HMOV AX,5000 ;通道0计数值OUT DX,ALMOV AL , AHOUT DX,ALMOV DX,4C3H ;初始化8253通道1工作方式MOV AL , 74HOUT DX,ALMOV DX,4C1HMOV AL,1000 ;通道1计数值OUT DX,ALIN AL,21HMOV KEEP, AL ;保存系统中断屏蔽字AND AL, OF7HOUT 21H,AL ;清IRQ3中断屏蔽位STI ;开中断WAIT$: MOV AH,1 ;有键按下?INT 16HJZ W AIT$ ;无键按下,等待MOV AL, KEEP ;退出OUT 21H,AL ;恢复系统中断屏蔽字MOV DX, SA VEIP ;恢复系统IRQ3中断向量MOV AX, SA VECSMOV DS , AXMOV AH, 25HMOV AL, 0BHINT 21HMOV AH, 4CHINT 21H;计数中断服务程序TIM1S PROC FARPUSH AXPUSH DXPUSH DSMOV AX,@ DATAMOV DS,AXIN AL,80H ;输人开关S状态TEST AL,01H ;检测开关S闭合?JNZ LL ;闭合转LL,判是否从断开到闭合CMP KEYON , 0 ;判断是否从闭合到断开?JNZ ONTOFF ;从闭合到断开,转ONTOFFJ MP STRONTOFF: MOV KEYON , 0CALL TURNJMP OUTPUTLL: CMP KEYON,0 ;从断开到闭合?JZ OFFTON ;是,转强制切换处理CALL STIME ;强制状态,修改秒计数值JMP EXIT ;返回OFFTON: MO V KEYON,1NOT FMMOV SCON,99HCMP FM,OFFHJZ QDFM ;是,转QDFMMOV KONG,10000010B ;修改控制字,南北向绿灯亮JMP OUTPUTQDFM: MOV KONG,00101000B ;修改控制字,东西向绿灯亮JMP OUTPUTSTR: MOV AL, SCONTCMP AL,OOHJNZ NEXTCALL TURNJMP OUTPUTNEXT: CALL STIMECMP AL,03HJNZ EXIT;剩3s,绿灯灭,黄灯亮处理CMP FM,OFFHJZ DXFMMOV AL,00000l00BAND KONG, OFOHJMP FDONDXFM: MOV AL,01000000BAND KONG, 0FHFDON: OR KONG, AL ;修改输出控制字JMP OUTPUT ;转控制字输出DFM: MOV SCON, ,30H ;修改定时时间。