单片机基础及其应用习题Word格式文档下载.docx
《单片机基础及其应用习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机基础及其应用习题Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
11.
若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为
12.
MCS-51中T1中断服务程序入口地址为
13.
欲对300个外部事件计数,可以选用定时器/计数器的工作模式______或_
_。
14.
通常单片机上电复位时PC=________H、SP=________H。
选择题
8031单片机内部RAM中既可位寻址又可字节寻址的单元字节地址是
(
)
A.20H
B.30H
C.00H
D.70H
MCS-51系列单片机外部扩展存储器芯片时,4个I/O口中用作数据总线的是(
)。
A、P0口和P2口
B、P0口
C、P2口和P3口
D、P2口
在单片机内部,反应程序运行状态或反应运算结果的一个特征寄存器是(
)。
A、PC
B、PSW
C、A
D、SP
在堆栈操作中,当进栈数据全部弹出后,这时SP应指向(
A、栈底单元
B、7FH单元
C、栈底单元地址加1
D、栈底单元地址减1
对于INTEL8031来说,EA脚总是
A.接地
B.接电源
C.悬空
D.不用
指令AJMP的跳转空间范围大小是(
A.256B
B.1KB
C.2KB
D.64KB
MCS-51单片机中断源可分为两个优先级别,设定各中断源优先级别的是寄存器(
A、IE
B、IP
C、TCON
D、SCON
下列地址标号中,正确的标号是
A.3BT
B.END
C.MUL
D.STAB31
PC中存放的是(
A.下一条指令的地址
B.当前正在执行的指令
C.当前正在执行指令的地址
D.下一条要执行的指令
MCS-51单片机进位标志CY存在于(
A.累加器ACC
B.算逻运算部件ALU
C.程序状态字寄存器PSW
D.DPTR
下列指令中正确的是(
A、CLRB
B、MOVX@DPTR,B
C、MOVP1.0,R0
D、JBCTF0,$
下列指令中错误的是(
A.MOVA,R4
B.MOV20H,DPL
C.MOV﹫R3,A
D.MOVR7,#03
单片机访问ROM、片外RAM和片内RAM时,所用的指令分别为(
A.MOV
MOVC
MOVX
B.MOVX
MOV
C.MOVC
MOV
MOVX
D.MOVC
MOV
MCS—51单片机的有效复位信号是(
A.至少持续两个机器周期高电平
C.短脉冲
B.至少持续两个机器周期低电平
D.下降沿
15.
定时器若工作在循环定时或循环计数场合,应选用
A.工作方式0
B.工作方式1
C.工作方式2
D.工作方式3
16.
PC是(
A、一根硬件信号线
B、一个可由用户直接读写的RAM单元
C、一个不可寻址的特殊寄存器
D、一个能自动加1计数的ROM单元
17.
MCS-51单片机扩展I/O口与外部数据存储器(
A、分别独立编址
B、统一编址
C、变址编址
D、动态变址
18.
各中断源发出的中断请求信号后,都会标记在MCS-51系统中的(
A、TMOD
B、TCON和SCON
C、IE
D、IP
19.
下列四条叙述中,有错误的一条是(
A、16根地址线的寻址空间可达1MB
B、内存储器的存储单元是按字节地址编址的
C、CPU中用于存放地址的寄存器称为地址寄存器
D、地址总线上传送的只能是地址信息
20.
下列指令或指令序列中,不能实现PSW内容送A的是(
A、MOVA,PSW
B、MOVA,0D0H
C、MOVR0,#0D0H
D、PUSHPSW
MOVA,@R0
POPACC
21.
读取AD转换的结果,应使用的指令是(
A、MOVA,@Ri
B、MOVX@DPTR,A
C、MOVCA,@DPTR
D、MOVXA,@DPTR
22.
A、SETB
ACC.0
B、MOV
A,B
C、JNC
LOOP
D、SUBB
B,R0
程序分析题
1.执行以下程序段后,A和B的内容分别为_______、_______。
SP,#40H
A,#60H
B,#0EEH
PUSH
ACC
B
POP
2.已知片内RAM中20H的内容为01H,执行下列程序后(30H)为_________?
A,20H
INC
A
DPTR,#2000H
MOVCA,@A+DPTR
CPL
30H,A
HERE:
SJMP
HERE
ORG
2000H
DB
3FH,06H,5BH,4FH,77H
3.请填写程序执行结果,已知(59H)=50H,程序如下:
A,59H
R0,A
A,#00
@R0,A
A,#25H
51H,A
52H,#70H
以上程序段执行后(A)=
,(50H)=
,(R0)=
4.阅读下列程序段并回答问题:
MOV
DPTR,#2314H
R0,DPH
14H,#22H
R1,DPL
23H,#56H
A,@R0
XCH
A,DPH
执行以上指令后A=____________,DPTR=__________。
5.下列程序段执行后A=_
_;
R0=
(20H)=
_。
A,#20H
R0,#20H
@R0,A
ANL
A,
#0FH
ORL
#80H
XRL
@R0
6.设在MCS-51单片机片内RAM中,(20H)=40H,(22H)=10H,(40H)=22H,(DPH)=0CFH,当下列程序执行完后,各单元内容分别为多少?
请填入给出的各寄存器中,(B)=_______、(40H)=_______。
R0,#20H
A,@R0
R1,A
B,@R1
@R1,DPH
P3,PSW
编程题
1.若晶振为12MHz,试编制延时2ms和1s子程序。
2.编写程序,查找在内部RAM的40H~5FH单元中出现0FFH的次数,并将查找结果存入60H单元。
3.编写程序,查找在内部RAM的40H~60H单元中是否有0FFH这一数据。
若有,则将B寄存器置01H;
若未找到,则B寄存器清00H。
4.在片外RAM起始地址为2100H,长度为64的数表中找出ASCII码“F”(“F”的ASCII值为46H)的个数,并将其值送到1000H单元中。
5.将单片机内部RAM从20H地址单元开始处连续存放的10个数据,传送到外部RAM的1000H单元开始的存储区。
6.在外部RAM首地址为2000H的数据表中存有10个字节数据,请编程将每个字节的内容取反并存回原处。
7.设在片内RAM40H开始的存储区有若干个字符和数字,已知最后一个为字符“$“(ASCII值24H),并且只有一个,试统计这些字符数字的个数,结果存入30H单元中。
8.试编一程序,分别统计在内部RAM的30H~50H单元的数据区中奇数和偶数的个数,并将奇数和偶数的个数分别存放在51H和52H单元中。
9.请用8051汇编语言编程,先求1、2、3、……、10之和,再求其平均值,并将该值存入片内RAM50H单元。
10.系统晶振试fosc=6MHz,用定时器T0控制P1.0引脚输出周期为100ms、占空比为50%的连续方波信号。
11.设MCS-51单片机系统时钟频率为12MHz,应用定时/计数器T0编制在P1.7引脚上产生周期为1秒,占空比为50%的连续方波信号的程序。
单片机复习答案
(答案未仔细校对,仅供参考。
)
1.略
2。
2
3。
直接寻址
4。
位
5。
片内RAM
6.位
7。
变址寻址
8。
8
9。
4K、15
10。
00H、0AAH
11。
MOVC
12.001BH
13。
0、1
14。
0000H、07H
1.A
2.B
3.B
4.A
5.A
6.C
7.B
8.D
9.A
10.C
11.D
12.C
13.D
14.A
15.C
16.C
17.B
18.B
19.A
20.C
21.D
22.D
1.0EEH、60H
2.0A4H
3.25H、00H、50H
4.23H、5614H
5.0A0H、20H、20H
6.22H、0CFH
程序题
参考程序(略)
参考程序:
MOVR0,#40H
;
RAM单元起始地址
MOVR7,#20H
共20H个单元
MOV60H,#0H
LOOP:
CJNE@R0,#0FFH,L1
INC60H
L1:
INCR0
DJNZR7,LOOP
SJMP$
参考程序1:
MOVR0,#40H
CJNE@R0,#0FFH,LK1
MOVB,#01H
SJMPLK2
LK1:
CJNER0,#61H,LOOP
MOVB,#00H
LK2:
SJMP$
参考程序2:
MOVR7,#21H
4.在片外RAM起始地址为2100H,长度为64的数表中找出ASCII码“F”(“F”的ASCII值为46H)的个数,并将其值送到1000H单元中。
MOVDPTR,#2100H
MOVR7,#64
MOVR3,#0
MOVXA,@DPTR
CJNEA,#46H,LK1
INCR3
INCDPTR
MOVDPTR,#1000H
MOVA,R3
MOV@DPTR,A
5.将单片机内部RAM从20H地址单元开始处连续存放的10个数据,传送到外部RAM的1000H单元开始的存储区。
MOVDPTR,#1000H
外部RAM单元首地址
MOVR0,#20H
MOVR7,#10
MOVA,@R0
取内部RAM单元内容
MOVX@DPTR,A
存入外部RAM单元
INCR0
内部RAM地址指针增1
INCDPTR
外部RAM地址指针增1
MOVDPTR,#2000H
MOVXA,@DPTR
读外部RAM单元内容,并送入累加器
CPLA
内容取反
取反后的内容存入外部RAM单元
INCDPTR
ORG0000H
START:
MOVR1,#40H
;
R1作为地址指针
MOV30H,#0
30H清0
LOOP:
CJNE
@R1,#24H,NEXT
与“$”号比较,不等转移
INC30H
再加入”$”这个字符
SJMP$
找到“$“结束循环
NEXT:
INC30H
计数器加1
INCR1
指针加1
SJMPLOOP
循环
MOV
51H,#0H
52H,#0H
R1,#30H
RAM首地址
R0,#21H
21H个单元
LOOP3:
A,@R1
ANL
A,#01H;
判断最低位是否为0
JZ
LOOP1
INC
51H
INC
R1
SJMP
LOOP2
LOOP1:
52H
R1
LOOP2:
DJNZ
R0,LOOP3
SJMP
$
51H,#0H
52H,#0H
R1,#30H
R0,#21H
LOOP3:
A,@R1
JNB
ACC.0,LOOP1;
判断ACC最低位是否为0,如为0则为偶数,转LOOP1。
51H
LOOP1:
52H
LOOP2:
$
MOVA,#0
MOVR0,#1
MOVR7,#10
ADDA,R0
DJNZR7,LOOP
MOVB,#10
DIVAB
MOV50H,A
10.系统晶振试fosc=6MHz,用定时器T