浙江工业大学微机原理及应用试卷答案
微机原理练习题
一、填空题
1.80C51单片机部 4 KB程序存储器,地址为 0000H 到 0FFFH 。
2.在基址加变址寻址方式中,以 A 作变址寄存器,以 DPTR 或PC作基址寄存器。3.PSW是程序状态寄存器,其包括RS1、RS0位,这两个位的作用是:
确定工作寄存器组。
4.设累加器(A)=7FH,(Cy)=0,则执行DA A指令后,(A)= 85H 。
5.汇编语言指令是由__操作码______和____操作数____两部分组成。
6.MCS-51单片机访问外部存储器时,利用ALE 信号锁存来自P0 口的低8位地址信号。
7.MCS-51的定时/计数器可以有 4 种工作方式,编制程序时需要通过设定 TMOD 特殊功能寄存器的值设定T0和T1的工作方式,当T0需要工作在16位定时器方式,T1工作在8位自动重装方式时,该寄存器值为 21H 。
8.指令“MOV A,R0”和“MOVX A,R0”的区别是:
前一个部数据存储器操作,后一个外部数据存储器操作。
9.INT0中断和INT1中断的入口地址分别为0003H 和0013H 。假设软件设定INT0为低优先级别、INT1为高优先级别,当CPU正在执行INT0中断时,发生了INT1中断请求,CPU应如何响应?先中断INT0中断,先执行INT1中断。。
10.MOV C,20H,源操作数的寻址方式为:位寻址方式。11.假定累加器A的容30H,执行指令:
1000H:MOVC A,A+PC
后,把程序存储器1031H 单元的容送累加器A中。
二、程序填空、解释程序语句,并填写运行结果
1.PROG:MOV 40H,#3AH
MOV A ,#08H
ORL A,#0F0H ;将A的高4位置1
MOV 30H,A
ANL A,#0F0H
SW AP A ;A中的高4位与低4位交换
MOV 31H,A
当执行完以上指令后,填写下面的寄存器或地址中的值:
当执行完以上指令后,填写下面的寄存器或地址中的值:
(A)= 0FH ;(40H)= 2AH ;(30H)= 0F8H ;(31H)= 0FH 。
2.已知PSW=91H,(30H)=05H,(31H)=09H (41H)=06H,(40H)=0AAH,试执行如下程序,写出执行结果。
ORG 1000H ;确定以下程序从1000H开始存放代码
MOV A,30H
ADD A,40H
DA A
MOV 50H,A
MOV A,31H
ADD A,41H
DA A ;对A进行BCD码调整
MOV 51H,A
LL: SJMP LL ;进行死循环
(51H)= 15H ;(50H)= 15H ;(41H)= 06H ;(40H)= 0AAH 。
3.若部(61H)=0F2H,(62H)=0CCH ,:
MOV A, 61H
MOV B, #02H
DIV AB ;A与B相乘
ADD A, 62H
MOV 63H, A
CLR A ;清楚A的容
ADDC A, B
MOV 64H, A
(63H)= 45H ;(64H)= 01H ;(A)= 01H ; (B)= 00H
4.MOV R0,#DATA ; 把立即数DATA给R0
MOV A,R0
RL A ; 累加器A循环左移一位
MOV R1,A
RL A
RL A
ADD A,R1
MOV R0,A ; (A)--((R0))
1>该程序的功能是:
(把DATA所指的存储单元容乘以10);
2>若不使结果产生溢出,则运行前A的值应小于等于( 25)。
5.MOV A,#04
MOV 50H,A
MOV 51H,A
MOV 52H,A
MOV 53H,#80H
MOV R6,#03H
MOV R0,#50H
MOV A,R0
CLR C ; 清楚进位标志
AA:INC R0
ADDC A,R0 ; 将(A)和((R0)) 及(C)相加
DJNZ R6,AA ; 当第3次执行该指令时,(R6)= 0
RET
该程序的功能是:将50H,51H,52H,53H四个单元的容相加
当上面程序执行完成后,填写下面的寄存器或地址中的值:
(A)8CH ;(进位位C)00H ;(R0)53H ;(R6)00H ;
(50H)04H ;(51H)04H ;(52H)04H ;(53H)80H 。
三、简答题
1.试简述80C51单片机的存储器组织。
(1)分为部数据存储器、SFR、部程序存储器,外部数据存储器(0000H-0FFFFH),外部程序存储器(和部之和为64K)。
(2)部数据存储器:地址为00H-7FH;4个工作寄存器组,每组个寄存器,由R0-R7表示;
(3)位寻址区:20H-2FH(位地址00H-7FH)及SFR地址能被8整除的地址单元;
(4)SFR地址为80H-0FFH,采用直接地址方式。
2.MCS-51的寻址方式有哪七种?
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基地址加变址寻址、相对寻址、位寻址。
3.80C51单片机具有多少个中断请求源?分多少个优先级别?简述多源中断优先级管理和中断嵌套。
(1)8051共有5个中断源:INT0,T0,INT1,T1,SERIAL 。中断能否响应由中断控制寄存器IE 的设置来决定。
(2)有2个中断优先级,由IP 寄存器的位来确定,当对应位设置为高电平时,对应的中断为高优先级,否则为低优先级,IP (-,-,-,PS ,PT1,PX1,PT0,PX0)
中断优先级管理:(1)高优先级的中断可以中断低优先级的中断服务程序,从而可以实现中断嵌套;同级或低优先级的中断则不能;(2)同级的中断同时申请,按照INT0,T0,INT1,T1,SERIAL 顺序先后响应。
4.设定时器1设成方式2,作为波特率发生器,若系统时钟频率为12MHz ,确定在串行方式1下可能产生的最高波特率与最低波特率。
串行方式1的波特率公式为:mod 6212103212(256)s c ??-
定时器为自动重装载模式,(1)当C=0,SMOD=0时,得到最小波特率为:122.1bps ; (2) 当C=255,SMOD=1时,得到最大波特率为:62.5Kbps ;
四、编制程序
1. 编程求逻辑函数L 的值,()()
L U V W X W Y Z =?++?+。式中,L ,U ,V ,W ,X ,Y ,Z 均为位变量。
2. 设有100个有符号数,连续存放在以3000H 为首地址的存储区中,试编程统计其中
正数、负数、零的个数并分别存放在部RAM30H 、31H 、32H 单元中。
3. 从部RAM30H 单元开始,有10个单字节数据。试编一个程序,把其中的正数、负
数分别送40H 和50H 开始的部RAM 单元。
4. 设单片机晶振频率F OSC =6MHz ,使用定时器1以工作方式1产生周期为500mS 的等宽
方波,用中断方式实现编程,并在P1.7输出。
要求:(1)写出T1定时器的方式控制字,T1定时器初值计算;
(2)试编写程序完成此功能。
1.
MOV C,V
ORL C,/W
CPL C
ANL C,U
MOV L,C
MOV C,W ANL C,/Y
ORL C,Z
CPL C
ANL C,X
ORL C,L
MOV L,C
位寻址方式写程序(2分),第一部分(2分),第二部分(2分),程序完成性(4分)
2.MOV DPTR,#30000H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV R2,#100
LOOP: MOVX A,DPTR
CJNE A,#00H,LOOP1
INC 32H
SJMP LOOP3
LOOP1: JC LOOP2
INC 30H
SJMP LOOP3
LOOP2: INC 31H
LOOP3: INC DPTR
DJNZ R2,LOOP
END
评分标准;初始化2分,循环体5分,程序完整性3分
3.MOV R0,#30H
MOV R2,#10
MOV R4,#40H ;目标指针1
MOV R4,#50H ;目标指针2
LOOP: MOV A,R0
ACC.7, LOOP2
;为正数
MOV A,R4
MOV R1,A
MOV A,R0
MOV R1,A
INC R4
SJMP LOOP3
LOOP2: MOV A,R5
MOV R1,A
MOV A,R0
MOV R1,A
INC R5
LOOP3: DJNZ R2,LOOP
END
评分标准;初始化2分,循环体5分,程序完整性3分
4. 500Ms= 25ms*20
TMOD=10H,Fosc=12MHZ,t=25ms,L=16,2L =216=65536
则定时常数TC=2L-foscxt/12=65536-(12x106x25x10-3)/12=65536-25000=40536=9E58H TCH=9EH,TCL=58H (2分)
ORG 0000H
LJMP START
ORG 000BH
MOV TH0,#0B1H
MOV TL0,#0E0H
DJNZ R7, TIM0_END
CPL P1.0
MOV R7,#20
TIM0_END: RETI
中断服务程序得2分
START: MOV TMOD,#01H
MOV TH0,#0B1H
MOV TL0,#0E0H
MOV R7,#20
CLR P1.0
SETB ET0
SETB EA
SETB TR0
SJMP $
初始化部分得2分,程序完善性及其他得4分