问答题
阅读以下关于某嵌入式处理器和8255的叙述。
[说明] 图2-1为使用某嵌入式处理器和8255对打印机进行控制的电路图,其中8255的中断请求PC3接到处理器的中断请求输入端

上,打印机的数据口接在8255的PAO~PA7上,打印机的输出电平

接在8255的PC6上。
为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将8255的PA口设置为工作方式1:PB口设置在工作方式0,配置为输入;PC口的PCO、PC1、PC2、PC3和PC4定义为输出。
为了在打印机输出为低电平时通过8255的PC3产生有效的中断请求信号INTRA,必须使得A口的中断请求使能INTE-1,实际上就是通过C口的按位复位操作将PC6置1,整个程序分为四部分:依次是8255的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序和打印字符的中断处理程序。其中8255的端口配置功能如表2-1所示。嵌入式处理器的中断使能控制字含义如表2-2所示,该处理器的典型汇编指令如表2-3所示。
问答题
根据图2-1所示,通过嵌入式处理器访问8255的PA口、PB口和PC口对应的地址分别是什么?(请用十六进制描述)
对应的地址:
PA口: (1)
PB口: (2)
PC口: (3)
【正确答案】(1) 8000H (2) 8001H (3) 8002H
【答案解析】[解析] 本题考查嵌入式处理器硬件及汇编语言相关知识。
从题中给出的电路图中可以看出,8255控制芯片的CS信号的有效电平为低电平。其对应的CS由嵌入式处理器地址线中的A15~A2通过“或门”进行控制,从这里可以看出,要使得8255的片选信号CS有效,必须使得A15为1,A14~A2都为0。
由题中表2-1提供的端口访问控制表及电路图可知,如果要访问8255的PA口,必须使得A1、AO都为0,PB口访问时Al为0、A0为1,PC口访问时A1为1,A0为0。
因此,结合8255的片选信号CS控制,以及A1、A0对于端口访问的控制,即可得到使用嵌入式处理器进行8255的PA、PB、PC口访问时的地址。
问答题
在嵌入式处理器的汇编语言中,最简单的指令寻址方式为立即寻址和直接寻址,请回答下面两个汇编语言语句所描述的含义,将答案填写在答题纸的对应栏中。
MOV A, #3AH: (1)
MOV R4, 3AH: (2)
【正确答案】(1)将3AH立即数传送到A中 (2)将3AH存储单元的内容传送到R4中
【答案解析】[解析] 立即数的传送指令和直接寻址指令是两种最基本的汇编指令。其中立即数的表示是在进制数前加#号。
问答题
以下汇编程序用于打印机输出控制,请将下面汇编程序的空(1)~(5)补充完整,并将解答填入答题纸的对应栏中。
8255的A口工作在方式1输出,初始化程序:
INTI55:MOV DPTR, #8003H
MOV A, 10100 010B
MOVX @DPTR,A ;配置A口在工作方式1、B口在工作方式0
MOV A, 00001101B
MOVX @DPTR,A ;将PC6口置位
嵌入式处理器的中断初始化程序:
INT031:
MOV IE, (1) :开总中断及所有五个中断源用十六进制表示
ANL TCON,#OFEH;规定INTO下降沿低电平产生中断请求
嵌入式处理器主程序:
(打印存储单元20H开始向后的内容,中断处理程序中每次从20H中取到需要打印的存储单元地址,直到遇到存储单元里面内容不是OAH为止)
ORG
0100H
MOV RO,#20H ;取打印缓冲区地址
MOV DPTR, #8000H
MOV A, (2) ;取打印字符
INC RO
MOV 20H, RO
MOVX @DPTR,A ;输出打印
当字符打印结束会产生一次中断,中断服务程序如下:
ORG 1300H
PRINTER:PUSH PSW :压栈操作
PUSH Acc
PUSH RO
PUSH DPH
PUSH DPL
MOV RO, (3) ;用十六进制表示
MOV DPTR, #8000H
MOVX A,@RO ;取打印字符
MOVX @DPTR,A ;输出打印
INC RO
MOV 20H,RO ;将需要取打印内容的地址放置到20H单元
CJNE A,#OAH, NEXT
ANL IE, (4) ;关INTO中断,用十六进制表示
NEXT:POP DPL
POP DPH
POP (5)
POP Acc
POP PSW
RETI
【正确答案】(1)#09FH (2)@RO (3) 20H (4) #09EH (5) RO
【答案解析】[解析] 由表2-2知道,对于中断使能控制的访问也就是设置该寄存器的对应位为1或者0,为1表示开启对应的中断控制,为0表示关闭对应的中断控制,按照对应的各个位来进行立即数配置即可进行各个中断的控制。
程序中的空(2)处是表示使用寄存器寻址方式获取数据。空(3)处于中断程序的服务程序中,需要重复从20H中获取待打印的内容,使用直接寻址方式。空(4)是指使用“与指令”关闭对应的中断位。空(5)处为与入栈相对应的出栈操作。