1 0 0 0 0 1 1 1
四个端口地址:84H-87H
2、 MOV AL,1001X00X B
OUT 87H,AL
LOOP1: IN AL,84H ; TEST AL,01H
JZ LOOP2 ;PA0闭合,B口发光二极管的PB0-PB3亮,PB4-PB7灭 MOV AL,0FH OUT 85H,AL ; JMP LOOP1
LOOP2: MOV AL,F0H ; PA0打开,B口发光二极管的PB0-PB3灭,PB4-PB7 亮
OUT 85H,AL ;
JMP LOOP1
44、已知8253的四个端口地址分别为70H、71H、72H、73H,请回答如下问题:
(1)设8253计数器0的CLK0输入时钟为10KHz,要求该通道OUT0输出频率为100Hz的方波脉冲,试编写初始化程序段。
(2)试画出输入时钟CLK0与UT00的输出波形。 答案:① 定时时间常数为:T=10KHz ÷100Hz=100=64H 初始化程序段
MOV AL,0001 0110B ;工作方式设置,选择0通道,方式3,二进制数,只读写低8位 OUT 73H,AL MOV AL, 64H ;计数值64H OUT 70H,AL ②
45、8253与CPU和74LS138译码器的硬件电路连接如图所示,请回答如下问题: (1)根据74LS138的输入逻辑计算出8253的四个端口地址。
(2)当计数器0的CLK0输入时钟为1MHz,要求该通道OUT0输出频率为10KHz的方波脉冲,试编写初始化程序。
第 - 16 - 页 共 -21- 页
到CPU数据总线 到CPU控制总线 到CPU地址总线 D0-7 RD WR A0 A1 CLK0 GATE0 OUT0 A6 A5 + A7 G1 Y0 CS M/IO G2A G2B A4 C 8253 A3 B 74LS138 A2 A
四个端口地址为:80H-83H
时间常数为:1000000HZ/10000HZ=100
MOV AL,0001 0110B ;计数器0,工作方式3,二进制格式 OUT 83H,AL
MOV AL,64H ;只写入低8位 OUT 80H,AL
6、8253与CPU和74LS138译码器的硬件电路连接如图所示,请回答如下问题: (1)根据74LS138的输入逻辑计算出8253的四个端口地址。
(2)当计数器0的CLK0输入时钟为10KHz,要求该通道OUT0输出频率为100Hz的方波脉冲,试计算定时时间常数,
(3)编写初始化程序段。
到CPU数据总线
到CPU控制总线
A6
A5
到CPU地址总线 A0 A1 G1 D0-7 RD WR A0 A1 CLK0 GATE0 OUT0 + A7 Y1 CS M/IO G2A G2B A4 8253 C A3 B 74LS138 A2 A 1、8255的硬件电路如图所示,请回答如下问题:
(1)根据74LS138的输入逻辑计算出8255的四个端口地址。给出推算过程。
第 - 17 - 页 共 -21- 页
1、 G1 G2A G2B C B A A1 A0 A7 A6 A5 A4 A3 A2 A1 A0 1 0 0 1 0 0 0 0
1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 四个端口地址:90H-93H
47、设8253三个计数器的端口地址为90H、91H、92H,控制寄存器端口地址93H。试编写初化程序:(1)给计数器0的CLK0输入时钟为2MHz,要求该通道OUT0输出周期为1ms的方波脉冲。(2)要求计数器1的工作方式为0,计数初值为1234H。(3)计数器2的工方式为方式5,读出计数器2的计数值,并将读出的当前计数值保存在BX中 答案:
1、 MOV AL,0011X111B ;工作方式设置 2、MOV AL,01110000B;工作方式设置
OUT 93H,AL OUT 93H,AL
MOV AL, 00H ;计数值为2000 MOV AL, 34H 计数值为1234 OUT 90H,AL OUT 91H,AL MOV AL,20H MOV AL,12H OUT 90H,AL OUT 91H,AL 3、MOV AL,1000101XH ;工作方式设置
OUT 93H,AL IN AL, 92HH MOV BL,AL IN AL, 92H MOV BH,AL
48、设8253的三个计数器的端口地址为90H、91H、92H,控制寄存器端口地址93H。试编写完成下列要求的初始化程序。(注:要给程序加注释说明)
(1)给计数器1的CLK1端输入1MHz时钟脉冲,要求该通道OUT0输出周期为1KHz的方波脉冲。
第 - 18 - 页 共 -21- 页
(2)给计数器2的CLK2端输入1KHZ时钟脉冲,要求每0.1秒输出一个负脉冲(分频)
1)MOV AL,0111 0110B ;计数器1,工作方式3,二进制格式 OUT 93H,AL MOV AX,1000
OUT 91H,AL ;写入低8位 MOV AL,AH
OUT 91H,AL ;写入高8位
2)MOV AL,10010100B ;计数器1,工作方式3,二进制格式 OUT 93H,AL MOV AL,100
OUT 92H,AL ;只写入低8位
49、一个微机系统中包含以下I/O接口:并行接口8255A一片(各端口地址为:A口—60H,B口—61H,C口—62H,控制口—63H)。定时器8253一片(各端口地址为:计数器0—70H,计数器1—71H,计数器2—72H,控制口73H)。中断控制器8259A一片(各端口地址为:C0H,C1H)。
(1)、现将8255的A口连接一输入设备,工作在0方式。B口连接一输出设备,也工作在0方式,PC4作为输出设备的选通输出端且低电平有效。
(2)、8253工作于“方式0”,设置计数器0的计数常数为1080H,进行二进制计数。
(3)、8259的ICW2给定为20H,工作于电平触发方式,完全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。
请填充下面程序中的空白项(注意:控制字中可0可1位选0,8255未用端口设成输入方式),(微处理器8086的A0、A1接各芯片的A0、A1)。
MOV AL,1001000XB ; 8255初始化 OUT 63H, AL
MOV AL, 00110000B ; 8253初始化 OUT 73H, AL
MOV AL, 80H ;设8253计数初值 OUT 70H, AL MOV AL, 10H ; OUT 70H, AL
MOV AL,XXX11X11B ; 8259A初始化 OUT COH, AL MOV AL, 20H ;
第 - 19 - 页 共 -21- 页
OUT C1H, AL MOV AL,00000X01B_ OUT C1H, AL
IN AL,60H ; 从8255的A口读入数据 PUSH AX
MOV AL,0XXX1011B ; 用按位置位/复位方式使选通无效 OUT 63H, AL POP AX
OUT 61H, AL ; 往B口输出数据
MOV AL, 0XXX1010B ; 用按位置位/复位方式使选通有效 OUT 63H, AL
此时,对应8259A的IR1中断类型号是_21H,
中断向量为0段的0084H, 0085H, 0086H, 0087H, 四个单元。
50、设8253三个计数器的端口地址为90H、91H、92H,控制寄存器端口地址93H。试编写完成下列要求的的初始化程序。
(1)给计数器0的CLK0输入时钟为1MHz,要求该通道OUT0输出周期为2ms的方波脉冲。 (2)计数器2的工作方式为方式2,读出计数器2的计数值,并将读出的当前计数值保存在BX中。 (1)时间常数为:1000000HZ/500HZ=1000
MOV AL,0011 0110B ;计数器0,工作方式3,先写低8位,后写高8位,二进制格式 OUT 93H,AL MOV AX,1000 ;
OUT 90H,AL ;写入低8位 MOV AL,AH ;
OUT 90H,AL ;写入高8位 (2)
MOV AL,1000 0100B ;计数器0,锁定当前计数值,先读低8位,后读高8位,二进制格式 OUT 93H,AL
IN AL,92H ;读入低8位 MOV BL,AL ;
IN AL,92H ;写入高8位 MOV BH,AL ;
第 - 20 - 页 共 -21- 页
51、8086可分为几个八位的寄存器?它们是那些寄存器? 52、如果用8086组成最小模式,MN/MX应接什么电平? 53、8086的M/IO线的功能是什么? 54、画出8086读周期的时序波形图
55、8086对存储器的管理为什么采用分段的办法? 56、8086中断分哪两类?8086可处理多少种中断?
57、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?
答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。 58、8086对存储器的管理为什么采用分段的办法?
答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。 59、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。
答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。 60、 8086的中断向量表如何组成?作用是什么?
答:把内存0段中0~3FFH区域作为中断向量表的专用存储区。该区域存放256种中断的处理程序的入口地址,每个入口地址占用4个存储单元,分别存放入口的段地址与偏移地址。
第 - 21 - 页 共 -21- 页