程序分析及编程
1.设(A)=04H,(CY)=1, 写出下列各条指令
的结果。
RL A; (A)= 08H
RR A; (A)= 02H
RLC A; (A)= 09H
RRC A; (A)= 82H
2设(A)=7AH,(R0)=30H,(30H)=A5H,(CY)=1, 写出下列各条指令的结果。
MOV A ,R0 (A)=30H (R0)=30H
XCH A, R0 (A)=30H (R0)=30H
XCHD A,@R0 (A)=A5H (R0)=30H (30H)=30H
ADD A,#30H (A)=D5H (CY)=1
ADDC A,30H (A)=06H (CY)=1
SUBB A,#30H (A)=D5H (CY)=1
4.已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:请问:A=(),SP=(),(51H)=(),(52H)=(),PC=()。
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
答:(A)=50H , (SP)=50H , (51H)=30H , (52H)=50H , (PC)=5030H 5.假定A=83H,(R0)=17H,(17H)=34H,
执行以下指令后,A的内容为()。:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A答:0CBH
6.如果DPTR=507BH,SP=32H,(30H)=50H,
(31H)=5FH,(32H)=3CH,则执行下
列指令后则:DPH=(),DPL=(),SP=
():
POP DPH
POP DPL
POP SP
答:DPH=3CH , DPL=5FH , SP=4FH
7.假定,SP=60H,A=30H,B=70H,执行下
列指令后,SP的内容为(),61H单元的
内容为(),62H单元的内容为()。
PUSH A
PUSH B答:62H , 30H , 70H
8.计算下面子程序中指令的偏移量和程序
执行的时间(晶振频率为 12MHz)。
MOV R3,#15H ;1个机器周期
DL1:MOV R4,#255 ;1个机器周期
DL2:MOV P1,R3 ;2个机器周期
DJNZ R4,DL2 ;2个机器周期
DJNZ R3,DL1 ;2个机器周期
RET ;2个机器周期
答:15348us 析:((2+2)×255+1+2)
×15+1+2=15348us
9. 假定A=83H,(R0)=17H,(17H)=34H,
执行以下指令后,A的内容为()。
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A 答:0CBH
10. 如果(DPTR)=507BH,(SP)=32H,
(30H)=50H,(31H)=5FH,(32H)=3CH,则执
行下列指令后:DPH内容为(),DPL
内容为(),SP内容为()。
POP DPH;
POP DPL;
POP SP;
答:(DPH)= 3CH,(DPL)=5FH,(SP)=50H
11.假设外部数据存储器2000H单元的内容
为80H,执行下列指令后,累加器A中的内
容为()。
MOV P2,#20H
MOV R0,#00H
MOVX A,@R0
答:累加器A中的内容为(80H)
12.阅读下列程序段并回答问题。(1).该
程序执行何种操作? (2).已知初值(60H)
=23H,(61H)=61H,运行程序后62H内容
CLR C
MOV A,#9AH
SUBB A,60H
ADD A,61H
DA A
MOV 62H,A答: 1)、该程序是单字节
BCD码运算,是将(61H)—(60H)→62H
2)、(62H)=38H
13.试编写1个程序,将内部RAM中45H单
元的高4位清0,低4位置1。
答:MOV A, 45H
ANL A, #0FH
ORL A, #0FH
MOV 45H, A
14.试编写程序,查找在内部RAM的30H~
50H单元中是否有0AAH这一数据。若
有,则将51H单元置为“01H”;若未找
到,则将51H单元置为“00H”。
答:START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0AAH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET
15. 编写程序,要求使用T0,采用方式2
定时,在P1.0输出周期为400μs,占空比
为10:1的矩形脉冲。
解:根据题意,从P1.0输出的矩形脉
冲的高低电平的时间为10:1,则高低电平
的时间分别为363.63μs和36.37μs。如
果系统采用6MHz晶振的话,
s
T
cy
μ
2
=
,
因此高低电平输出取整,则约为364μs和
36μs。编写程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN:MOV TMOD,#02H ;定时器/计数器T0
为定时方式2
MOV TL0,#4AH ;定时364μs初值赋值
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
SETB P1.0
WAIT: AJMP WAIT
IT0P: CLR EA
CLR P1.0 ;关中断
MOV R0,#9
DLY: DJNZ R0,DLY ;延时26μs
MOV TL0,#4AH ;定时364μs初值赋值
SETB P1.0
SETB EA
RETI
16. 设在外部RAM中有三个连续单元
2001H,2002H,2003H,其中2001H和2002H
单元中分别存放两个8位无符号二进制数,比较这两个数的大小,然后将大数送到2003H单元。
COMPARE:MOV DPTR, #2001H
MOVX A , @DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
SUBB A ,R0
JNC LOOP
MOV A, R0
INC DPTR
MOVX @DPTR ,A
RET
LOOP:INC DPTR
MOVX @DPTR ,A
RET
17.将内部RAM 40H开始的10个单元,搬移到50H开始的10个单元中。
MOV R0,#40H
MOV R1,#50H
MOV R2, #10
LOOP1:MOV A, @R0
MOV @R1,A
INC R0
INC R1
DJNZ R2 ,LOOP1
RET
18. 设单片机晶振频率为6MHz,使用定时器0,以工作方式2,在P1.5引脚输出一个周期为200us连续方波?
解: MOV TMOD,#02H
MOV TH0, #0CEH
MOV TL0 ,#0CEH
SETB TR0
LOOP: JBC TF0,LOOP1
AJMP LOOP
LOOP1: CPL P1.0
19. 编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。
答:将P1.1的输入脉冲接入INT0,即使用T0计数器完成对P1.1口的脉冲计数。编写程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P MAIN: JNB P1.0,MAIN
MOV TMOD,#05H ;定时器/计数器T0为计
数方式1
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
WAIT: JB P1.2,WAIT
CLR EA
CLR TR0
MOV R1,TH0
MOV R0,TL0
AJMP $
IT0P: INC R2
RETI
20.试编写一个程序(例如将05H和06H拼
为56H),设原始数据放在片外数据区2001H
单元和2002H单元中,按顺序拼装后的单
字节数放入2002H。
答:编程思路:首先读取2001H的值,保
存在寄存器A中,将寄存器A的高四位和
低四位互换,再屏蔽掉低四位然后将寄存
器A的值保存到30H中,然后再读取2002H
的值,保存在寄存器A中,屏蔽掉高四位,
然后将寄存器A的值与30H进行或运算,
将运算后的结果保存在2002H中。
ORG 0000H
MAIN:MOV DPTR,#2001H ;设置数据指针
的初值
MOVX A,@DPTR ;读取2001H的值
SWAP A
ANL A,#0F0H ;屏蔽掉低四位
MOV 30H,A ;保存A
INC DPTR ;指针指向下一个
MOVX A,@DPTR ;读取2002H的值
ANL A,#0FH ;屏蔽掉高四位
ORL A,30H;进行拼装
MOVX @DPTR,A ;保存到2002H
END
21.编写程序,将外部数据存储器中的
4000H—40FFH单元全部清零。
解:本题主要考察了对外部数据块的写操
作;编程时只要注意循环次数和MOVX指令
的使用就可以了。
ORG 0000H
MAIN: MOV A,#0;送预置数给A
MOV R0,#0FFH ;设置循环次数
MOV DPTR,#4000H;设置数据指针的初值
LOOP: MOVX @DPTR,A ;当前单元清零
INC DPTR ;指向下一个单元
DJNZ R0,LOOP;是否结束
END
22.编写程序,采用8255A的C口按位置位
/复位控制字,将PC7置0,PC4置1,(已
知8255A各端口的地址为7FFCH-7FFFH)。
解:本题主要考察对8255A的C口的操作。
其方式控制字的高位为0时,低四位对C
口进行置位。由题目我们得到了方式控制
字的地址为7FFFH。
ORG 0000H
MAIN: MOV DPTR,#7FFFH ;控
制字寄存器地址送DPTR
MOV A,#0EH
;将PC7置0
MOVX @DPTR,A
MOV A,#09H ;将
PC4置1
MOVX @DPTR,A
END
23.试编写逻辑运算程序,功能为:
F=X(Y+Z);
F=XYZ
其中F X Y Z均为位变量,依次存在以30H
为首址的位寻址区中。
解(1):
F BIT 30H
X BIT 31H
Y BIT 32H
Z BIT 33H
LOG1:MOV C,Y ;Y→C
ORL C,Z ;(Y+Z)→C
ANL C,X ;X(Y+Z)→C
MOV F,C ;X(Y+Z)→F
RET ;
解(2):
LOG2:MOV C,Y ;Y→C
ANL C,Z ;YZ→C
ANL C,/X ;XYZ→C
CPL C ;XYZ→C
MOV F,C ;XYZ→F
RET ;
24.试编写程序,统计内RAM 30H~50H单元
中FFH的个数,并将统计结果存51H。
解:编程如下:
LOKF:MOV 51H,#0 ;计数器清零
MOV R0,#30H ;置数据区首址
LOP: MOV A,@R0 ;读数据
CPL A ;取反
JNZ LP1 ;判FFH,非FFH,
转
INC 51H ;FFH,计数
LP1: INC RO ;指向下一数据CJNE R0,#51H,LOP;判循环
RET
25.试编写程序,找出外RAM 2000H~200FH 数据区中的最小值,并放入R2中。
解:编程如下:
SECH:MOV DPTR,#2000H ;置外RAM数据区首址
MOV R2,#OFH ;置外RAM数据区长度(N-1) MOVX A,@DPTR ;读第一个数据 MOV B,A;假设第一个数据为最小值SLOP:INC DPTR ;指向下一个数据
MOVX A,@DPTR ;读下一个数据CJNE A,B,SLP1;新数据与最小值比较SLP1:JNC SLP2 ;新数据≥最小值,判断循环
MOV B,A ;新数据<最小值,新数据→B SLP2:DJNZ R2,SLOP ;判循环结束否?
MOV R2,B ;最小值→R2
RET
26.已知ROM中存有0~100的平方表,首地址为TABDS,试根据累加器A(≤100)中的数值查找对应的平方值,存入内RAM31H30H(双字节)。
解:编程如下:
DSQR:MOVDPTR,#TABDS;置ROM平方表首地址
ADD A,Acc ;A×2→A
MOVC A, @A+DPTR ;读平方值高8位MOV 31H,A ;平方值高8位→31H
INC A ;指向平方值低8位
MOVC A,@A+DPTR ;读平方值低8位MOV 30H,A ;平方值低8位→30H RET
TABDS:DW 0,0,0,1,0,4,0,9,0,16,0,25,…,27H,10H;0~100平方表(双字节)
27.试编程实现3字节无符号数加法:R7R6R5+R4R3R2→@R0(3个连续单元)。
解:编程如下:
ADD3: MOV A,R5
ADD A,R2 ;低位加
MOV @R0,A ;存低位和
INC R0 ;修改存储单元
MOV A,R6 ;
ADDC A,R3 ;中位加
MOV @R0,A ;存中位和
INC R0 ;修改存储单元 MOV A,R7 ;
ADDC A,R7 ;高位加
MOV @R0,A ;存高位和
RET
28.试编写程序,将外部RAM2000H~20FH数
据块,传送到3000H~30FFH区域。
解:编程如下:
DMOV:MOV DPTR,#2000H;置源数据区首址
MOV R2,#00H ;置数据长度(256个)
DLOP:MOVX A,@DPTR ;读数据
MOV DPH,#30H;置目的数据区高8位地址
MOVX @DPTR,A ;存数据
MOV DPH,#20H;置源数据区高8位地址
INC DPTR ;修改源数据区地址
DJNZ R2,DLOP ;判循环结束否?
RET
29.从内RAM20H单元开始存有一组带符号
数(补码),其个数已存放在1FH单元。要
求统计其中大于0,等于0和小于0的数的
个数,并把统计结果分别存入ONE,TWO,
THREE3个单元。
解:编程如下:
ONE EQU 30H
TWO EQU 31H
THREE EQU 32H
STOR:MOV R0,#20H ;置数据区首址
SLOP: MOV A,@R0 ;读数据
JZ LP1 ;数据=0,转
JB Acc.7,LP2 ;数据<0,转
INC ONE ;数据>0,ONE单元加1
LP0: INC RO ;指向下一数据
DJNZ 1FH,SLOP ;判统计结束
否?未结束循环
RET ;统计结束,TWO单元加1
LP1: INC TWO ;数据=0,TWO单元加1
SJMP LPO ;返回循环体
LP2: INC THREE ;数据<0,
THREE单元加1
SJMP LPO ;返回循环体
30.设在内部数据存储器中存放有20个字
节数据,其起始地址为M。试编写程序,找
出数0AH的存放地址,并送入N单元。若
OAH不存在,则将N单元清零。
解:程序如下:
M EQU 30H
N EQU 2FH
SECH:MOV R0,#M
MOV R1,#20
LOOP:CJNE @R0,#0AH,LP1
MOV N,R0
RET
LP1: INC R0
DJNZ R1,LOOP
MOV N,#0
RET
31.试编写程序,求出内RAM20H单元中“1”
的个数,并将结果存入21H单元。
解:编程如下:
LOK1:MOV 21H,#O
MOV R2,#08H
MOV A,20H
LOP: RLC A
JNC LP1
JNC 21H
LP1:DJNE R2,LOP
RET
32.试编写统计数据区长度的程序,设数据
区从内RAM30H开始,该数据区以0结束,
统计结果送入2FH中。
解:编程如下:
ADUP:MOV 2FH,#0
MOV R0,#30H
ALOP:MOV A,@R0
JNZ LP1
RET
LP1: INC 2FH
INC R0
SJMP ALOP
33.从内RAM30H单元开始存放着一组无符
号数,其个数存在21H单元中。试编写程
序,找出其中最小的数,并将其存入20H
单元中。
解:编程如下:
SECH: MOV RO,#3OH
MOV 20H,#FFH
SLOP: MOV A,@R0
CJNE A,20H,NEXT
NEXT: JNC SLP1
MOV 20H,A
SLP1: INC R0
DJNZ 21H,SLOP
RET
34.用程序实现c=a2+b2。设a2b2存于内
RAM,AA,BB单元;c为双字节,存于内
RAMCC,DD单元。
解:该题可用于程序来实现。通过两次调
用查平方表子程序来得到a和b,并在主程
序中完成相加。编程如下:
AA EQU 40H
BB EQU 41H
CC EQU 42H
DD EQU 43H
FUNC:MOV A,AA
LCALL DSQR
MOV DD,A
MOV CC,31H
MOV A,BB
LCALL DSQR
ADD A,DD
MOV DD,A
ADDC A,CC
MOV CC,A
RET
35.利用定时、计数器T1测量某正脉冲宽度,并存入内RAM31H30H。设fosc=12MHz,脉冲从P3.3引脚输入,宽度小于65536us。解:编程如下:
PLUS: MOV TMOD,#90H
MOV TH1,#0
MOV TL1,#0
JB P3.3,$
SETB TR1
JNB P3.3,$
JB P3.3,$
CLR TR1
MOV 31H,THO
MOV 30H,TLO
RET
36. 设在内部RAM中50H开始有连续的10个单元,求这10个单元之和,结果放在60H,61H,低位放在60H,高位在61H.
解:程序编写如下:
ORG 0000H
ACALL ADDTEN
WAIT: AJMP WAIT
ADDTEN:MOV R0 ,50H
MOV R1,#10
MOV A,#00H
MOV 60H, A
MOV 61H, A
LOOP1:ADD A, @R0
INC R0
MOV 60H,A
JC LOOP2
DJNZ R1,LOOP1
RET
LOOP2:
MOV A,61H;
ADD A,#01H
DJNZ R1 ,LOOP1
RET
END
1、请用数据传送指令来实现下列要
求的数据传送。(14分)
(1)把R0的内容送到R1
MOV A,R0
MOV R1,A
(2)内部RAM20H单元的内容传送到
A中。
MOV A,20H
(3)外部RAM2000H单元的内容送到
R0。
MOV DPTR,#2000H(1分)
MOVX A,@DPTR(1分)
MOV R0,A (2分)
(4)外部ROM1000H单元的内容送内
部RAM20H单元。
MOV DPTR,#1000H
MOV A,#00H(2分)
MOVC A,@A+DPTR
MOV 20H,A (2分)
1.请将片外RAM 20H—25H单元清零 MOV
R0,#20H
MOV R7,#06H
CLR A
LOOP:MOVX @R0,A
INC R0
DJNZ R7,LOOP
2.请将ROM 3000H单元内容送R7
MOV DPTR, #3000H
CLR A
MOVC A,@A+DPTR
MOV R7,A
1、设(A)=38H,R0=28H,(28H)=18H,执
行下列程序后,(A)= 0E7H
ORL A,#27H
ANL A,28H
XCHD A,@R0
CPL A
2、设
(A)=38H,(20H)=49H,PSW=00H,(B)=0
2H,填写以下中间结果。
SETB C
ADDC A, 20H (A)= 82H (CY)=
0 (AC)= 1
RLC A (A)= 04H (CY)=
1 (P)= 1
MUL AB (A)= 08H(B)=
00H(OV)= 0
SETB EA
1.程序如下: MOV SP,#13H MOV 33H,#7FH MOV 44H,#0ABH PUSH 33H PUSH 44H POP 33H POP 44H 程序执行后,(33H)=0ABh ,(44H)=7Fh 2.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。 (1)MOV A,#48H ;寻址方式: (A)= 48H (2)ADD A,60H ;寻址方式: (A)= 4DH (3)ANL A,@R0 ;寻址方式: (A)= 10H 3.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能? MOV R1,#30H ;(R1)=30H MOV A,#64H ;(A)= 64H ADD A,#47H ;(A)=ABH ,(CY)= 0 , (AC)= 0 DA A ;(A)=31H ,(CY)=1 , (AC)= MOV @R1,A ;(R1)= 30H ,(30H)= 31H 此程序段完成的功能 4.设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=0 ORL A,#27H ANL A,28H XCHD A,@R0 CPL A 5.设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)=04H (CY)=1 (P)= 1 MUL AB (A)=08H (B)=00H (OV)=0 6.已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后( 40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2 A=20H
单片机原理期末考试试 题_附答案 This model paper was revised by LINDA on December 15, 2012.
单片机原理及应用期末考试试题汇总 1、单片机是将微处理器、一定容量的 RAM 和ROM以及(I/O)口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了(4)KB的FLASH ROM,共有(5)个中断源。 3、两位十六进制数最多可以表示(256)个存储单元。 4、89C51是以下哪个公司的产品( C ) A、INTEL B、AMD C、ATMEL D、PHILIPS 5、在89C51中,只有当EA引脚接(高)电平时,CPU才访问片内的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由(P0)口提供,高八位地址由(P2)口提供,8位数据由(P0)口提供。9、在I/O口中,(P0)口在接LED时,必须提供上拉电阻,(P3)口具有第二功能。10、是非题:MCS-51系列单片机直接读端口和读端口锁存器的结果永远是相同的。F 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 14、MCS-51系列单片机是属于(B)体系结构。 A、冯诺依曼 B、普林斯顿 C、哈佛 D、图灵 15、89C51具有?( 64?) KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外
试题8 一、填空题(35分,每空1分) 1、单片机也可称为微控制器或嵌入式控制器。 2、串行口方式2接收到的第9位数据送SCON 寄存器的RB8 位中保存。 3.串行口方式3发送的第9位数据要事先写入(SCON )寄存器的(TB8)位。 4、内部RAM中,位地址为50H的位,该位所在字节的字节地址为2AH 。 5、如果(A)=65H,(50H)= 50H,(R1)= 50H,执行指令XCHD A, @R1;结果为: (A) = 50 H ,(50H) = 65 H。 6、当AT89S51执行MOVC A,@A+PC指令时,伴随着PSEN控制信号有效。 7、AT89S51访问片外存储器时,利用LEA 信号锁存来自P0口发出的低8 位地址信号。 8、定时器/计数器T0作为计数器使用时,其计数频率不能超过晶振频率fosc的1/24 。 9、AT89S51单片机为8 位单片机。 8.利用81C55可以扩展(3)个并行口,(256)个RAM单元。 9.当单片机复位时PSW=(00 )H,SP=(07H),P0~P3口均为(高)电平。 10、AT89S51单片机有 2 级优先级中断。 11、MCS-51系列单片机的典型芯片分别为8031 、8051 、8751 。 12、当单片机复位时PSW=00 H,这时当前的工作寄存器区是0 区,R6所对应的存储单元地址为06 H。 13、AT89S51单片机指令系统的寻址方式有寄存器寻址、立即寻址、 寄存器间接寻址、直接寻找、位寻址、基址寄存器加变址寄存器寻址。 14、74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中
1.程序如下: MOV SP , #13H MOV 33H ,#7FH MOV 44H ,#0ABH PUSH 33H PUSH 44H POP 33H POP 44H 程序执行后, (33H)=0ABh 2.下列各条指令其源操作数的寻址方式是什么各条指令单独执行后, (60H )=35H ,(A ) =19H ,(R0)=30H ,(30H )=0FH 。 ( 1 ) MOV A , #48H ;寻址方式 A) = 48H ( 2) ADD A , 60H ;寻址方式 A) = 4DH ( 3) ANL A , @R0 ;寻址方式 A) = 10H 3.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能 MOV R1, #30H ;( R1) =30H MOV A , #64H ; ( A) = 64H ADD A , #47H ;( A) =ABH ,( CY) = 0 , ( AC) = 0 DA A ;( A) =31H ,( CY) =1 ( AC) = MOV @R1, A ; ( R1) = 30H , ( 30H) = 31H 此程序段完成的功能 4. 设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A) =0 ORL A , #27H ANL A , 28H XCHD A , @R0 CPL A 5. 设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)=04H (CY)=1 (P) 1 MUL AB (A)=08H (B)=00H (OV)=0 6. 已知( R0) =20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后 ( 40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2 A=20H ,(44H )=7Fh A 中的结果是什么设
一、选择题 访问片外数据存储器的寻址方式是( C ) A、立即寻址 B、寄存器寻址 C、寄存器间接寻址 D、直接寻址 堆栈数据的进出原则是( B ) A、先进先出 B、先进后出 C、后进后出 D、进入不出 若某存储器芯片地址线为12根,那么它的存储容量为( C ) A、1KB B、2KB C、4KB D、8KB 控制串行接口工作方式的寄存器是( C ) A、TCON B、PCON C、SCON D、TMOD 判断是否溢出时用PSW的(B )标志位,判断是否有进位时用PSW的( A )标志位。 A.CY B.OV C.P D.RS0 E.RS1 当串行口向单片机的CPU发出中断请求时,若CPU 允许并接受中断请求时,程序计数器PC的内容将被自动修改为( E )。 A.0003H B.000B C.0013H D.001BH E.0023H 子程序的返回和中断响应过程中的中断返回都是通过改变PC的内容实现的,而PC内容的改变是(D )完成的。 A.通过POP命令B.通过MOV 指令C.通过RET或RETI指令D.自动 单片机复位后,SP、PC、I/O口的内容为(C )A.SP = 07H PC = 00H P0 = P1 = P2 = P3 = FFH B.SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00H C.SP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFH D.SP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H 堆栈指针SP的作用是( B )。 A 指示堆栈的栈底 B 指示堆栈的栈顶 C 指示下一条将要执行指令的地址 D 指示中断返回的地址 下列指令中,不影响堆栈指针的指令是( B)。 A RET B JB bit,rel C LCALL addr16 D RETI 定时器T1的中断入口地址是( C ),从该地址开始一般可(F )。 A 0003H B 000BH C 001BH D 0013H E 连续存放中断服务程序 F 存放转移指令定时器T0的溢出标志TF0,在CPU响应中断后( B )。 A 由软件清零 B 由硬件清零 C 随机状态 D AB都可以 在进行串行通信时,若两机的发送与接收可以同时进行,则称为(D )。 A 半双工传送 B 单工传送 C 双工传送 D 全双工传送 在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是(B )。 A . PC B. PSW C. A D. SP 二、填空题 晶振的频率为6MHz时,一个机器周期为(2)μS。 欲使P1口的低4位输出0,高4位不变,应执行一条(ANL P1,#0F0H )命令。 MCS-51单片机系列有( 5 )个中断源,可分为( 2 )个优先级。 计算机三大总线分别为(数据总线)、(地址总线)和控制总线。 MCS-51指令系统中,ADD与ADDC指令的区别是(是否带进位)。 8051单片机有( 2 )个16位定时/计数器。MCS-51单片机有(4 )个并行输入/输出口,当系统扩展外部存储器或扩展I/O口时,(P0 )口作地
单项选择 1. PC的内容是: A 当前指令前一条指令的地址 B 下一条指令的地址 C 控制器中指令寄存器的地址 D 当前正在执行指令的地址 2. 在MOVX A,@DPTR指令中,DPTR的内容是 A 片内数据存储器地址 B 片外程序存储器地址 C 片内程序存储器地址 D 片外数据存储器地址 3.以下指令没有错误的是 A PUSH DPTR B SUBB R3,R0 C POP DPTR D ADD A,@R1 https://www.wendangku.net/doc/957224155.html,B是 A 总线标准 B 可编程并行接口 C 可编程串行接口 D 译码器 5.在MCS-51中,为实现P0口数据和低位地址分时复用,应使用 A 地址寄存器 B 地址译码器 C 地址缓冲器 D 地址锁存器 6.MCS-51单片机启动复位后,程序计数器PC的内容为 A 0000H B 1000H C 2000H D 3000H 7.不能使MCS-51单片机的SP改变的指令是 A ANL 指令 B PUSH指令 C POP指令 D LCALL指令 8.MCS-51单片机PUSH指令的操作数是 A 位操作数 B 双字操作数 C 字节操作数 D 字操作数 9. 8031片外扩展数据存储器的最大容量是 A 16K B 64K C 8K D 32K 10.在LED显示中,为了输出位控和段控信号,应使用指令 A MOVX B MOV C MOVC D XCH 11.MCS-51执行子程序返回指令,从栈顶弹出的断点地址送给 A DPTR B CY C SP D PC 12.MCS-51执行出栈指令过程中,SP A 加2 B 减2 C 减1 D 加1 13.MCS-51的定时器/计数器是 A 两个16位的加法计数器 B 1个16位的加法计数器 C 两个16位的减法计数器 D 1个16位的减法计数器 14.MCS-51的MOV A,20H指令的源操作数的寻址方式是 A 直接寻址 B 位寻址 C 立即寻址 D 间接寻址 15.以下关于8155的叙述哪一个是错误的 A 是一个可编程的并行接口 B 有256个单元的RAM C 是一个可编程的接口芯片 D 是一个可编程的串行接口 16.D/A是 A 模数转换器 B 解调器 C 调制器 D 数模转换器
试题7 一、填空(25分,每空1分) 1. PSW中的RS0、RS1=01B,此时R2的字节地址为( 0AH )。 2. 假定DPTR的内容1000H,A中的内容为40H,执行指令: 2000H: MOVC A,@A+DPTR 后,送入A的是程序存储器( 2040 H )单元的内容。 3. 假定A中的内容为79H,R5中的内容为78H,执行指令: ADD A,R5 DA A 的内容为( 1 )。 后,累加器A的内容为( 5E )H,C Y 4.当AT89S51单片机响应中断后,必须用软件清除的中断请求标志是( TI,RI )。5.TMOD中的GATEx=1时,表示由两个信号TRx和( INT1(F非) )控制定时器的启停。6.在AT89S51单片机的RESET端出现(持续时间大于两个机器周期)的高电平后,便可以可靠复位,复位后的PC中的内容为( 00000 )H。 7.当AT89S51单片机与慢速外设进行数据传输时,最佳的传输方式是(查询方式)。8.DA转换器的两个最重要的技术指标为(分辨率)和(建立时间)。9.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的( 片选 )端提供(片选)信号。 10. 波特率定义为 ( 每秒传送的位数 )。串行通信对波特率的基本要求是互相 通信的甲乙双方必须具有 ( 相同 ) 的波特率。 11. 若串行通信按方式1传送,每分钟传送3000个字符(8位/每字符),其波特率是(400bit/s )。 12. AT89S51片内( 20H-2FH )地址范围内的数据存储器,既可以字节寻址又可以位寻址。13.8KB RAM存储器的首地址若为1000H,则末地址为(2FFFH)H。 14.AT89S51单片机控制TPμP-40A/16A微型打印机打印英文或数字时,要把打印字符的()码送给微型打印机。 15.已知8段共阴极LED显示器显示字符“H”的段码为76H,则8段共阳极LED显示器显示字符“H”的段码为()。 16.当键盘的按键数目少于8个时,应采用()式键盘。当键盘的按键数目为64个时,应采用()式键盘。
六、设计题 1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。 答:图(5分) 构思(3分) MOV A,#80H (1分) UP:MOV P1,A (1分) RR A (2分) SJMP UP (1分) 2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。 答:图(5分) 构思(3分) 程序(4分) ORG 0000H LJMP MAIN ORG 0003H LJMP AINT0 ORG 0013H LJMP BINT1 MAIN: MOV IE,#83H SETB IT0 SETB IT1 MOV R0,#00H MOV DPTR,#TAB UP: MOV A,R0 MOVC A,@A+DPTR MOV P1,A SJMP UP AINT0: INC R0 CJNE R0,#10,AINT01 MOV R0,#0 AINT01: RETI BINT1: DEC R0 CJNE R0,#0FFH,BINT11 MOV R0,#9 BINT11: RETI 1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 1.SQR:1NC A MOVC A,@A+PC RET TAB:DB 0,1,4,9,16 DB 25,36,49,64,81 2.请使用位操作指令实现下列逻辑操作:BIT=(10H∨P1.0)∧(11H∨C Y) 2.ORL C,11H
MOV 12H,C MOV C,P1.0 ORL C,/10H ANL C,12H MOV BIT,C RET 3.已知变量X存于V AR单元,函数值Y存于FUNC单元,按下式编程求Y值。 Y= 10 0 1 x x x > - = ? ? ?? 3. MOV A,V AR CJNE A,#0,COMP SJMP RES ;x=0,Y=0 COMP:JNC POSI ;x>0,Y=1 MOV A,#0FFH ;x<0,Y=-1 SJMP RES POSI:MOV A,#01H RES:MOV FUNC,A RET 4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的 单元中(低位在前)。 4. MOV R0,#SUM MOV A,R2 ANL A,#OFH MOV @R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SW AP A 1NC R0 MOV @R0,A ;存高字节BCD RET 5.将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。 5. MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H LOOP:MOVX A,@DPTR ;取数 MOVX @R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP RE T
单片机期末考试试题(答案) 01、单片机是将微处理器、一定容量的RAM 和ROM以及I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片集成了 4 KB的FLASH ROM,共有 5 个中断源。 3、两位十六进制数最多可以表示256 个存储单元。 4、89C51是以下哪个公司的产品?( C ) A、INTEL B、AMD C、ATMEL D、PHILIPS 5、在89C51中,只有当EA引脚接高电平时,CPU才访问片的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由P0 口提供,高八位地址由P2 口提供,8位数据由P0 口提供。 9、在I/O口中,P0 口在接LED时,必须提供上拉电阻,P3 口具有第二功能。 10、是非题:MCS-51系列单片机直接读端口和读端口锁存器的结果永远是相同的。F 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 14、MCS-51系列单片机是属于( B )体系结构。 A、诺依曼 B、普林斯顿 C、哈佛 D、图灵 15、89C51具有64 KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片、外ROM区时用MOVC指令,访问片外RAM 区时用MOVX指令,访问片RAM区时用MOV指令。T 17、在89C51中,片RAM分为地址为00H~7FH 的真正RAM区,和地址为80H~FFH 的特殊功能寄存器(SFR) 区两个部分。 18、在89C51中,通用寄存器区共分为 4 组,每组8 个工作寄存器,当CPU 复位时,第0 组寄存器为当前的工作寄存器。
单片机期末考试试题 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT
单片机期末考试试题 01、单片机是将微处理器、一定容量的 RAM 和ROM以及?? I/O?? 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了???? 4??? KB的FLASH ROM,共有??? 5???? 个中断源。 3、两位十六进制数最多可以表示??? 256?? 个存储单元。 4、89C51是以下哪个公司的产品(?? C?? ) A、INTEL??? B、AMD??? C、ATMEL?? D、PHILIPS 5、在89C51中,只有当EA引脚接??? 高??? 电平时,CPU才访问片内的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由?? P0?? 口提供,高八位地址由?? P2?? 口提供,8位数据由??? P0?? 口提供。 9、在I/O口中,??? P0??? 口在接LED时,必须提供上拉电阻,??? P3?? 口具有第二功能。 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 15、89C51具有??? 64?? KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX 指令,访问片内RAM区时用MOV指令。T 17、在89C51中,片内RAM分为地址为?? 00H~7FH?? 的真正RAM区,和地址为80H~FFH的特殊功能寄存器(SFR) 区两个部分。 18、在89C51中,通用寄存器区共分为?? 4?? 组,每组??? 8?? 个工作寄存器,当CPU复位时,第?? 0?? 组寄存器为当前的工作寄存器。 19、是非题:工作寄存器区不允许做普通的RAM单元来使用。F 20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T
单片机原理及应用试卷A 一、填空题(每空1分,共20分) 1、单片微型计算机由CPU、存储器和I/O 三部分组成。 PSEN信号有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51系统中,当 3、访问8031片外数据存储器采用的是寄存器间接寻址方式。 4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。 5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。 6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。 7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。 8、中断请求信号有电平触发和脉冲触发两种触发方式 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对并行I/O口内的锁存器进行的。 12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分) 1、计算机能识别的语言是( C )。 (A)汇编语言(B)自然语言(C)机器语言(C)高级语言 2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 3、在中断服务程序中,至少应有一条( D )。 (A)传送指令(B)转移指令(C)加法指令(D)中断返回指令 4、访问外部数据存储器时,不起作用的信号是( C )。
第5章STC15F2K60S2单片机的程序设计 例题 例5.1 分析ORG在下面程序段中的控制作用 ORG 1000H START: MOV R0,#60H MOV R1,#61H …… ORG 1200H NEXT: MOV DPTR,#1000H MOV R2,#70H …… 解:以START开始的程序汇编后机器码从1000H单元开始连续存放,不能超过1200H 单元;以NEXT开始程序汇编后机器码从1200H单元开始连续存放。 例5.2 分析END在下面程序段中的控制作用。 START: MOV A,#30H …… END START NEXT: …… RET 解:汇编程序对该程序进行汇编时,只将END伪指令前面的程序转换为对应的机器代码程序,而以NEXT标号为起始地址的程序将予以忽略。因此,若NEXT标号为起始地址的子程序是本程序的有效子程序的话,应将整个子程序段放到END伪指令的前面。
例5.3 分析下列程序中EQU指令的作用 AA EQU R1 ;给AA赋值R1 DA TA1 EQU 10H ;给DA TA1赋值10H DELAY EQU 2200H ;给DELAY赋值2200H ORG 2000H MOV R0,DATA1 ;R0←(10H) MOV A,AA ;A←(R1) LCALL DELAY ;调用起始地址为2200H的子程序 END 解:经EQU定义后,AA等效于R1,DATA1等效于10H,DELAY等效于2200H,该程序在汇编时,自动将程序中AA换成R1、DATA1换成10H、DELAY换成2200H,再汇编为机器代码程序。 使用赋值伪指令EQU的好处在于程序占用的资源数据符号或寄存器符号用占用源的英文或英文缩写字符名称来定义,后续编程中凡是出现该数据符号或寄存器符号就用该字符名称代替,这样,采用有意义的字符名称进行编程,更容易记忆和不容易混淆,也便于阅读。
一.单项选择题(30分) 在中断服务程序中至少应有一条() A.传送指令 B.转移指令 C.加法指令 D.中断返回指令 2.当MCS-51复位时,下面说法准确的是() A.PC=0000H B.SP=00H C.SBUF=00H D.(30H)=00H 3.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是() A.MOV B.MOVX C.MOVC D.以上都行 4.ORG2000H LACLL3000H ORG 3000H RET 上边程序执行完RET指令后,PC=()A.2000H B.3000H C.2003H D.3003H 5.要使MCS-51能响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是()A.98H B.84H C.42H D.22H 6.JNZREL指令的寻址方式是() A.立即寻址 B.寄存器寻址 C.相对寻址 D.位寻址 7.执行LACLL4000H指令时, MCS-51所完成的操作是( ) A保护PCB.4000HPC C.保护现场 D.PC+3入栈, 4000HPC 8.下面哪条指令产生信号() A.MOVX A,@DPTR B.MOVC A,@A+PC C.MOVC A,@A+DPTR D.MOVX @DPTR,A 9.若某存储器芯片地址线为12根,那么它的存储容量为() A. 1KB B. 2KB C.4KB D.8KB 10.要想测量引脚上的一个正脉冲宽度,则TMOD的内容应为() A.09H B.87H C.00H D.80H 11.PSW=18H时,则当前工作寄存器是() A.0组 B. 1组 C. 2组 D. 3组 12.MOVX A,@DPTR指令中源操作数的寻址方式是()
单片机原理及应用期末考试试题 一、填空题(每空1分,共20分) 1.相对寻址是以PC的当前值为基准,加上指令中给出的相对偏移量形成目标地址的方式。 2.A T89S51单片机的1个机器周期含有12 个晶振周期或 6 状态周期。 3.AT89S51单片机进行扩展时,用P0 口作为地址/数据总线,用P2口作为地址总线高8位。 4.假定累加器A的内容30H,执行指令:1000H:MOVC A,@A+PC后,把程序存储器1031H单元的内容送累加器A中 5.指令格式是由操作码和操作数部分组成。 6. AT89S51单片机的串行口控制寄存器中有2个中断标志位,它们是TI和RI 7.在进行BCD码加法运算时,紧跟ADD 或 ADDC 指令后的指令必须是DA A 指令 8. JNC rel指令执行时,当CY位为0时程序发生跳转。 9.单片机位寻址区的单元地址是从20H单元到2FH单元,若某位地址是10H,它所在单元 的地址应该是22H 。 10.外部中断0的中断入口地址为0003H,定时/记数器T1的中断入口地址为001BH。 11.串行口工作方式2为9位异步通信,若SMOD=0,f OSC = 6 MH Z,则其相应波特率为6×106/64 b/s 12.堆栈应遵循先进后出规律,堆栈指针的符号为SP 二、单项选择题(每小题1分,共20分) 1.AT89S51单片机的( d )口的引脚,还具有外中断、串行通信等第二功能。 a)P0 b)P1 c)P2 d)P3 2.单片机应用程序一般存放在( b ) a)RAM b)ROM c)寄存器 d)CPU 3.已知某数的BCD码为0111010101000010 则其表示的十进制数值为(b)a) 7542H b) 7542 c) 75.42H d) 75.42
一、填空题(37分) 1. AT89S51单片机芯片共有 40 个引脚,MCS-51系列单片机为8位单片机。 2. AT89S51的异步通信口为全双工(单工/半双工/全双工), 3. AT89S51内部数据存储器的地址范围是00H-7FH,位地址空间的字节地址范围是20H-2FH,对应的位地址范围是00H-7FH,外部数据存储器的最大可扩展容量是64K字节。 4. 单片机也可称为微控制器 或 嵌入式控制器。 5.当MCS-51执行MOVC A,@A+PC指令时,伴随着 PSEN控制信号有效。 6. 当单片机复位时PSW= 00 H,这时当前的工作寄存器区是 0区,R4所对应的存储单元地址为 04 H。 7. MCS-51系列单片机指令系统的寻址方式有 寄存器寻址 、直接寻址、 寄存器间接寻址、立即寻址、 基址加变址 、 位寻址 。(相对寻址也可) 8. 51系列单片机的典型芯片分别为 AT89S51 、8031 、AT89C51 。 9. AT89S51的 P3口为双功能口; 10. 由AT89S51组成的单片机系统在工作时,EA引脚应该接 地(或0); 11. AT89S51外部程序存储器的最大可扩展容量是 64K ,其地址范围是0000H - FFFFH 。ROM芯片2764的容量是 8 KB,若其首地址为 0000H,则其末地址 1FFFH 。 12. AT89S51的中断源有 外中断0, T0 ,外中断1, T1,串行口,有 2个中断优先级。 13. AT89S51唯一的一条16位数据传送指令为 MOV DPTR, data16。 14. LJMP的跳转范围是64K,AJMP的跳转范围是 2K B,SJMP的跳转范围是 ±128 B(或256B) 。 15. 若A中的内容为68H,那么P标志位为 1。 判断: 1.PC是一个不可寻址的特殊功能寄存器。(√) 2.在AT89S51单片机中,一个机器周期等于1μS。(×) 3.特殊功能寄存器SP内装的是栈顶首地址单元的内容。(×) 6.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。 7.输出模拟量的最小变化量称为A/D转换器的分辨率。(×) 8.转移指令中的偏移量rel是一个无符号的8位二进制数。(×)
第2章习题参考答案 2-1 MCS-51系列单片机内部有哪些主要的逻辑部件? 答:一个8位CPU;一个片内振荡器及时钟电路;4K字节ROM程序存储器;128字节RAM数据存储器;两个16位定时器/计数器;可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;具有五个中断源、两个优先级嵌套中断结构 2-2 MCS-51设有4个8位端口(32条I/O线),实际应用中8位数据信息由哪一个端口传送?16位地址线怎样形成?P3口有何功能? 答:实际应用中8位数据信息由P1口传送。16位地址线由P0口输出低8位地址A7~A0,P2口输出高8位地址A15~A8。P3口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同P1口;当作第二功能使用时,P3.0—RXD串行输入(数据接收)口,P3.1—TXD串行输出(数据发送)口,P3.2—外部中断0输入线,P3.3—外部中断1输入线,P3.4—T0定时器0外部输入,P3.5—T1定时器1外部输入,P3.6—WR外部数据存储器写选通信号输出,P3.7—外部数据存储器读选通信号输入。 2-3 MCS-51的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何作用? 答:MCS-51存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统、控制信号和功能。 程序存储器用来存放程序和始终要保留的常数,如经汇编后所编程序的机器码。数据存储器通常用来存放程序运行中所需要的常数或变量,例如模/数转换时实时采集的数据等。2-4 MCS-51内部RAM区功能结构如何分配?4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少? 答:MCS-51系列单片机内部数据存储器:00H ~ 7FH单元组成的低128字节地址空间的RAM 区,又分为为工作寄存器区(00H~1FH)、位寻址区(20H~2FH)和数据缓冲区(30H~7FH)。80H ~ FFH(128 ~255)单元组成的高128字节地址空间的特殊功能寄存器(又称SFR)区。对于8032、8052、8752的单片机还有80H~FFH单元组成的高128字节地址空间的RAM区。 4组工作寄存区是由程序状态字PSW(特殊功能寄存器,字节地址为0D0H)中的D4、D3 位寻址区域的字节地址范围是20H~2FH(对应的位地址范围是00H~7FH)。 2-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么? 答:P0字节地址80H,TCON字节地址88H,P1字节地址90H,SCON字节地址98H,P2字节地址A0H,IE字节地址A8H,P3字节地址B0H,IP字节地址B8H,PSW字节地址D0H,ACC字节地址E0H,B字节地址F0H。 2-6 简述程序状态字PSW中各位的含义。 答:CY(PSW·7)进位标志,AC(PSW·6)辅助进位标志,F0(PSW·5)用户标志位RS1、RS0(PSW·4、PSW·3)寄存器区选择控制位,OV(PSW·2)溢出标志,P(PSW.0)奇偶标志,每个指令周期都由硬件来置位或清“0”,以表示累加器A 中1的位数的奇偶数 2-7 一个时钟频率为6MHz的单片机应用系统,它的时钟周期、机器周期、指令周期分别是
单片机考试试题及答案(10) 一填空题(共20分,每题4分) 1、我们使用的单片机试验箱型号是。 2、输入文件后,按F2保存程序,此时文件扩展名是。 3、提示装载完毕后,使用命令进行反汇编,检查程序是否正确装入。 4、将30H单元的内容#67H送R1,用最少的指令实现,指令为:。 5、弹出操作,使用指令。 二、程序分析题(共20分,每题10分) 1、程序如下 2506HM5: MOVSP,#58H; 2509HMOV10H,0FH; 250CHMOV 11H,#0BH; 250FHACALLXHD; 2511HMOV20H,11H 2514HM5A: SJMPM5A XHD: PUSH 10H PUSH 11H POP 10H POP 11H RET 问:(1)执行POP10H后堆栈内容 (2)执行M5A:SJMPM5A后,(SP)=(20H)=
MOVA,20H ANLA,#0FH MOV@R0,A INC R0 MOVA,20H SWAPA ANLA,#0FH MOV@R0 1.在某单元(如20H)存入待分字的某数(如5BH)。 2.单步或带断点运行该段程序。 3.运行过程中注意检查程序的变化,并在最后检查(21H)= , 4.(22H)= 。 2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASC II码存放》,该字符串以$<其值为24H>结束,试统计该字符串的长度,其结果存于LON单元。 (1)输入所编程序 START:CLRA ;计数单元清零 MOV R0,#STR LOOP:CJNE R0,#24H,NEXT;判断字符串是否结束 SJMP COMP NEXT:INTA INCR0 SJMP LOOP COMP:MOV LON,A ;将长度存入LON单元 SJMP $ (2)在以STR为首的地址内部RAM单元开始存放待统计长度的数据块(自设),并以#24作为数据块的结束标志。 (3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。
机模拟试卷006及答案 一、填空题(每空1分,共10分) 一、填空(每题2分,共10分) 1、MCS-51单片机片内有 5 个中断源,其中 2 个外部中断源。 2、设定T1为计数器方式,工作方式2,则TMOD中的值为 60H(高位为6即可)。 3、若IT1=0,当引脚P3.2为低电平的时候,INT0的中断标志位IE0才能复位。 4、在接口电路中,把已经编址并能进行读写操作的寄存器称为端口。 5、在单片机中,为实现数据的I/O传送,可使用三种控制方式,即无条件传送方式、查询方式和中断方式 二、选择题(每小题2分,共10分) 1、寻址空间为数据程序存储器所用的指令是(A): A. MOVX B.MOV C.MOVC D.ADDC
2、执行中断返回指令,从堆栈弹出地址送给(C). A. A B. CY C. PC D. DPTR 3、七段共阴极发光两极管显示字符‘H’,段码应为(E) A.67H B. 6EH C. 91H D. 76H E.90H 4、在串行通信中,8031中发送和接收的寄存器是( B) 。 A.TMOD B. SBUF C. SCON D. DPTR 5、波特的单位是(B) A. 字符/秒 B. 位/秒 C. 帧/秒 D. 字节/秒 三、指令题(每小题4分,共16分) 1、将20H单元清零 MOV 20H,#00H 或 CLR A MOV 20H, A 2、将片外RAM2000H中的低字节与片内20H中的低字节交换。 MOV DPTR,#2000H XCHD A,@R0
MOV R0,#20H MOVX @DPTR,A MOVX @DPTR,A 3、已知某端口地址为2FFFH,将片内RAM20H的内容写到该端口中。 MOV A, 20H MOVX DPTR, #2FFFH MOVX @DPTR, A 4、把DPTR的内容压入堆栈 PUSH DPH PUSH DPL 四、填写下表(每空2分,共10分)
单片机上机考试试题 1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。#include
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 K1=0,K2=0 ○○○○○○○○ K1=0,K2=1 ●●●●○○○○ K1=1,K2=0 ●●○○●●○○ K1=1,K2=1 ●●●●●●●● #include
有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。) 源程序如下: ORG 1000H MOV R0,#40H MOV R7,#10 NEXT:MOV A,① ACALL SEPA MOV @R0,A INC R0 DJNZ ②,NEXT SJMP $ SEPA:ADD A,#00H ③PSW.0,SRET ORL A,④ SRET:⑤ ① @R0 ② R7 ③ JNB ④ #80H ⑤ RET 4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?(8分) MOV R0,#30H ;R0=30H MOV A,@R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV @R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H 解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。 四、程序阅读与分析题 1、试阅读下面的程序,指出该程序结束后累加器ACC和寄存器TH0的值,并说明该程序完成了怎样的功能。ORG 0000H MOV SP,#60H MOV A,#10H MOV TH0,#20H PUSH ACC PUSH TH0 POP ACC POP TH0 END 答:利用堆栈交换了ACC和TH0的内容,(A)=20H,(TH0)=10H