CLI
MOV AX,00 MOV DS,AX MOV SI,08H*4
MOV WORD PTR[SI],0040H INC SI INC SI
MOV WORD PTR[SI],0020H STI 补充:课后题
1: 键盘中断的矢量号为07H,它的中断服务程序入口地址为0BA9H:0125H,求它在中断矢量表中的地址及相应单元内容。
2、若将 ICW2 初始化为78H , 则在中断响应总线周期从数据总线上向CPU送出的对应于 IR2的中断类型码为 ,对应于 IR3的中断类型码为 。
3、优先级自动循环方式开始时,优先级队列还是:
IR0->IR7 若此时出现了IR0请求,响应IR0并处理完成后,队列变为多少?
10 思考与练习题
一、选择题
1.CPU对8255A执行按位置位/复位操作时,写入的端口地址是( )。 D A.端口A B.端口B C.端口C D.控制口 2.8255A的PB口有( )种工作方式? B A.1 B.2 C.3 D.4
3.利用8255A采集100个数据,数据间采样间隔为10ms,要用循环查询方法实现,即每次循环采集一个数据,那么在循环的初始化部分应该( )。 C A.①设置采样次数为100次;②设置用于存放数据的缓冲区地址指针
B.①设置采样次数为100次;②产生10ms的数据间采样间隔;③设置用于存放数据的缓冲区地址指针
C.①设置采样次数为100次;②产生10ms的数据间采样间隔;③设置用于存放数据的缓冲区地址指针;④设置8255A的工作方式控制字
4.8255A工作于方式1输出时,在由外设输入的STD信号( )的控制下将端口A或(端口B)的数据锁存。 D A.上升沿 B.下降沿 C.高电平 D.低电平 二、填空题
1.微机和外设通信的并行传输是指_数据的各位同时传送_;并行接口的特点是_(P226 10.1.2)_;常用于_近距离_场合。P225~P226
2.从并行接口的电路结构来看,并行接口有_输入接口_和_输出接口_之分。P226
3.8255A有两种命令字,一种是_工作方式_命令字,另一种是_C口位操作_命令字。P229 4.8253A内部有_24_个对外输入/输出端口,有3种工作方式,方式0称为_基本I/O工作方
式_,方式1称为_选通I/O工作方式_,方式2称为_选通双向总线I/O方式_。P232~P235 三、简答题
1.从8255A的PC口读出数据,试述控制信号-CS,A1,A0,-RD,-WR的状态。 答:-CS=0,A1=1,A0=0,-RD=0,-WR=1
2.可编程并行接口芯片8255A有哪几种工作方式,每种工作方式有何特点?
答:8255A有3种工作方式。方式0:无条件I/O,用于主机与简单外设数据传送(只有数据线连接);方式1:选通I/O,主机通过联络与外设单向数据传送;方式2:双向I/O,主机通过联络与外设双向数据传送。
3.当8255A工作在中断方式2时,CPU如何区分输入或输出?
答:进入中断服务程序后,查询输入IBF和输出-OBF状态;若IBF=1(输入缓冲器满),输入引起中断;若-OBF=1(输出缓冲器空),输出引起中断。 四、设计题
1.某8255A端口地址范围为03F8H~03FBH,A组和B组均工作在方式0,A口作为数据输出端口,C口低4位作为状态信号输入口,其他端口未用:试画出该8255A与系统的连接图,并编写初始化程序。
解1:8255A与系统的连接图如下。
PC3~0 PC7~4
解2:初始化程序如下。
MOV AL, 10000001B ; A和B组方式0,A口输出和C口低4位输入口。 MOV DX, 03FBH OUT DX, AL
2.用8255A作为接口芯片,编写满足如下要求的3段初始化程序:
(1)将A组和B组置成方式0,A口和C口作为输入口,B口作为输出口。 (2)将A组置成方式2,B组置成方式1,B口作为输出口
(3)将A组置成方式1且A口作为输入,PC6和PC7,作为输出,B组置成方式1且作为输入口。
假设控制端口的符号地址为PORTK。解答如下:
(1)MOV AL, 10011001B ; A和B组方式0,A和C口输入口,B口作为输出口 MOV DX, PORTK OUT DX, AL
(2)MOV AL, 11000100B ; A组置成方式2,B组置成方式1,B口作为输出口 MOV DX, PORTK OUT DX, AL
(3)MOV AL, 10110110B ; A口方式1输入,PC6和PC7输出,B口方式1输入 MOV DX, PORTK OUT DX, AL
11 思考与练习题
一、选择题
1.串行接口芯片825lA可实现( )。 D A.同步传送 B.异步传送 C.并行传送 D.A和B均可
2.825lA工作于串行异步接收时.当检测到( )引脚为低电平时,可能是起始位。 A A.RxD B.TxD C.-WE D.-RTS
3.输入控制发送器数据速率的时钟TxC频率可以是数据传送波特率的( )倍。 C A.1、16或64 B.1、32或64 C.16、32或64 D.16、64或128
4.如8251A设为异步通信方式,发送器时钟输入端和接收时钟输入端连接到频率19.2kHz输入信号上,波特率因子为16,则波特率为( )波特? A A.1200 B.2400 C.9600 D.19200 二、填空题
1.串行通信是指_______,其特点是_______,通常用于_______场合。 2.波特率是指_______,该指标用于衡量_______。
3.串行通信按通信约定的格式可分为_______和_______两种;前者的特点是_______;后者的特点是_______。
4.8251A是一种_______芯片,使用前必须对其进行_______设置,主要内容包括_______。 5.RS-232是应用于_______之间的_______接口。
6.在串行异步数据传送时,如果格式规定8位数据位。1位奇偶校验位,1位停止位,则一组异步数据总共有_______位? 三、设计题
1.某系统中使可编程串行接口芯片8251A工作在异步方式,7位数据位,偶校验,2位停止位,分频系数为96,允许发送也允许接收,若已知其控制口地址为03FBH,试编写初始化程序。
解:初始化程序如下: MOV DX, 03FBH ;
MOV AL, 11111010B ;方式字:异步方式,7位数据位,偶校验,2位停止位,分频系数为n=16 OUT DX, AL
MOV AL, 00010101B ;命令字:允许发送也允许接收,错误复位 OUT DX, AL
12 思考与练习题
一、选择题
1.启动8253的计数器开始或计数的方式有( )。 C A.软件方式 B.硬件方式 C.软件和硬件方式 D.门控信号
2.对8253进行操作前都必须先向8253写入一个( ),以确定8253的工作方式。 A A.控制字 B.计数初值 C.状态字 D.指令
3.8253定时器/数器中,在门控制信号上升沿到来后的( )时刻,输出信号OUT变成低电平。 D A.CLK上升沿 B.CLK下降沿
C.下一个CLK上升沿 D.下一个CLK下降沿
4.8253工作在( )方式时,OUT引脚能输出一个CLK周期宽度的负脉冲。 D A.方式0 B. 方式1 C.方式3 D.方式4或方式5 二、填空题
1.8253称为_______;它具有3个独立的_______;每个计数器有_______种工作方式;可按_______编程?
2.8253的初始化程序包括_______两部分。完成初始化后,8253即开始自动按_______进行工作。
3.8253定时器/计数器工作在某种方式时,需要在GATE端外加触发信号才能启动计数,这种方式称为_______。
4.8253内部有_______个对外输入/输出端口,有_______种工作方式,方式0称为_______,方式1称为_______,方式2称为_______。 5.设8253的工作频率为2.5MHz,若要使计数器0产生频率为1kHz的方波。则送入计数器0的计数初始值为_______,方波的电平为_______ms。 三、简答题
1.试说明8253的6种工作方式各自的功能和特点,其时钟信号CLK和门控信号GATE分别起什么作用?
答案在P265~P272(12.1.5)。
2.8253的最高工作频率是多少(2.6MHz)? 8254与8253的主要区别是什么(工作频率)? 3.对8253进行初始化编程要完成哪些工作?
答:初始化程序包括两部分:一是写各计数器的控制字,二是设置计数初始值。 四、设计题
1.设8253芯片的计数器O、计数器1和控制口地址分别为04B0H、0482H和0486H、定义计数器0工作在方式2,CLK0为5MHz,要求输出OUT0为1kHz方波;定义计数器1用OUT0作为计数脉冲,计数值为1000,计数器减到O时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒向CPU发出一次中断请求。试编写对8253的初始化程序,并画出系统的硬件连接图。
解:(1) 8253定时器0计数初值:5MHz/1KHz=5000 8253定时器1计数初值:1000
(2)8253的初始化程序如下:
MOV DX,04B6H ; 设置控制口
MOV AL,00110100B ; 计数器0工作在方式2、二进制计数、读写低高字节 OUT DX,AL
MOV AL,01110000B ; 计数器1工作在方式0、二进制计数、读写低高字节 OUT DX,AL
; 计数器0计数初值设置 MOV DX,04B0H ; 设置计数器0端口
MOV AX,5000 ; 设置计数器0的计数初值 OUT DX,AL ; 写低字节计数初值 MOV AL,AH
OUT DX,AL ; 写高字节计数初值 ; 计数器1计数初值设置 MOV DX,04B2H ; 设置计数器1端口
MOV AX,1000 ; 设置计数器1的计数初值 OUT DX,AL ; 写低字节计数初值
MOV AL,AH
OUT DX,AL ; 写高字节计数初值
(3)连接示意图 5MHz时钟 CLK0 OUT0 (计数器0) CLK1 OUT1 (计数器1) 连中断源
2.将8253定时器0设为方式3(方波发生器),定时器1设为方式2(分频器)。要求定时器0的输出脉冲作为定时器1的时钟输入,CLK0连接总线时钟2MHz,定时器1输出OUT1约为40Hz,试编写实现上述功能的程序。
解:设控制口:PORTK;计数器0端口:PORT0;计数器1端口:PORT1 (1)计算8253定时器0、1分频系数K0、K1 由40Hz=2MHz/K (K:总分频系数) 求K=2MHz/40Hz=50000=500*100 分别求得K0=500、K1=100
(2)初始化程序如下:
MOV DX, PORTK ;设置控制口
MOV AL, 00110110B ; 设置8253定时器0,方式3,先低后高读写字节计数值,二进制计数 OUT DX, AL
MOV AL, 01010100B ; 设置8253定时器1,方式2,仅读写低字节计数值,二进制计数 OUT DX, AL
MOV DX, PORT0 ; 设置计数器0端口 MOV AX, 500 ; 设置计数器0计数初值 OUT DX, AL ; 写低字节计数值初值 MOV AL, AH
OUT DX, AL ; 写高字节计数值初值
MOV DX, PORT1 ; 设置计数器1端口
MOV AL, 100 ; 设置计数器1计数初值 OUT DX, AL ; 写低字节计数值初值