单片机复习.docx
- 文档编号:7688452
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:116.10KB
单片机复习.docx
《单片机复习.docx》由会员分享,可在线阅读,更多相关《单片机复习.docx(21页珍藏版)》请在冰豆网上搜索。
单片机复习
单片机复习
单片机习题
一、选择题
1、单片机的核心部件称为(C)。
A、RAMB、ROMC、CPUD、I/O
2、为了要寻址64KB数据存储器,设置数据指针DPTR为(B)位。
A、8 B、16 C、24 D、32
3、MCS-51系列指令系统的指令格式中,必不可少的部分为(B)。
A、标号B、操作码C、操作数D、注释
4、设当前PC的值为0900H,则执行无条件转移指令AJMP03FFH指令后,程序转移的目的地址为(D)。
A、04FFHB、02FFHC、03FFHD、0BFFH
5、8051单片机定时器/计数器的启动和停止是通过对下列的(A)寄存器编程设定的。
A、TCONB、TMODC、TH0D、SCON
6、若要利用定时器/计数器T1产生串口通信的波特率,则T1一般工作在(C)方式几。
A、方式0B、方式1C、方式2D、方式3
7、8051单片机的中断源中,中断允许控制设置是通过对下列(D)寄存器的编程实现的。
A、TCONB、SCONC、IPD、IE
8、为了要寻址8KB×8位容量的6264数据存储器中的每个存储单元,6264的引脚中提供了(B)根地址线。
A、14B、13C、12D、11
9、8031片内无ROM,必须扩展外部程序存储器,因此必须将引脚
(C)。
A、接5V电源B、悬空C、接地D、和程序存储器对应引脚相连
10、8031单片机扩展外部存储器时,若还要使用到普通的I/O口,一般采用下列(B)口。
A、P0口B、P1口C、P2口D、P3口
11、采用软件方法消抖时,延时时间一般取(B)ms。
A、1B、10C、100D、1000
12、下列存储器中,掉电存储器中的数据会丢失的是(D)。
A、ROM B、FLASHMEMORY C、EPROM D、SRAM
13、进位标志CY在(C)中。
A、累加器 B、算术逻辑运算部件ALU C、PSW D、DPTR
14、MCS-51系列单片机可编程为(D)个优先级。
A、5 B、4 C、3 D、2
15、下列指令中,影响PSW中奇偶标志位的指令为(B)。
A、RL B、RLC C、DECA D、AJMP
16、MCS-51系列单片机在扩展有外部程序和数据存储器时,其(A)口用作低8位地址和8位数据传送端口。
A、P0B、P1C、P2D、P3
17、MCS-51系列单片机的P0口没有锁存功能,在对外扩展存储器时,P0口和存储器的对应地址口之间必须接上(C)。
A、地址译码器B、地址编码器C、地址锁存器D、总线驱动器
18、8031单片机有(A)个引脚。
A、40B、32C、24D、16
19、8051有(D)个中断源。
A、6B、2C、3D、5
20、若定时器T1受外部输入引脚电平(高电平起作用)的影响,则要启动定时器T1运行软件,必须满足(D)。
A、GATE=0,TR1=0B、GATE=0,TR1=1
C、GATE=1,TR1=0D、GATE=1,TR1=1
21、下列中断标志位,在CPU响应中断之后(设中断都是开放的),硬件会自动清除的是(C)。
A、TF2B、RIC、TF0D、TI
16、8051单片机是 位的,有 个 位的定时/计数器。
(8216)
17、若要使定时器/计数器的计数不受外部输入引脚电平的影响,则应将GATE控制位设定为。
(0)
18、最基本的通信方法有 和 两种。
(串行通信并行通信)
19、单片机就是将、、、定时/计数器和多种I/O接口都集成到一块集成电路芯片上的微型计算机。
(CPU、ROM、RAM)
20、写出单片机复位后下列专用寄存器的复位值。
ACC=HP0-P3=HDPTR=HTMOD=H(00HFFH0000H00H)
21、80C51单片机有和两种低功耗工作方式。
(待机掉电)
22、若要使定时器/计数器T0工作在定时状态,方式1,门控位GATE=0;T1工作在计数状态,方式2,门控位GATE=0,则TMOD=H。
(61H)
23、MCS-51系列单片机的寻址方式有、、立即寻址、寄存器间接寻址、变址寻址、和等七种。
(直接寻址、寄存器寻址、相对寻址、位寻址)
24、单片机对外部程序存储器的选通信号是 ,对外部数据存储器进行读控制的信号是 ,对外部数据存储器进行写控制的信号是 。
(PSEN*、RD*、WR*)
25、 若要使定时器/计数器的计数不受外部输入引脚电平的影响,则应将 控制位设定为0。
(GATE)
二、简答题
1、何谓程序状态字PSW?
各位的定义是什么?
答:
程序状态字PSW是一个8位特殊功能寄存器,寄存当前指令执行后的状态,为下条或以后的指令的执行提供状态条件。
Cy、AC、RS1、RS0、OV、P(意义略)
2、何谓地址/数据分时复用总线?
在什么情况下使用这种工作方式?
答:
地址/数据总线是指P0口既是一个真正的双向数据总线口,又是分时输出低8位地址和8位数据口。
单片机在访问外部存储器时,使用这种工作方式。
3、若80C51片内ROM的内容已不符合要求,那么片内硬件如何使用?
答:
把80C51的EA*引脚接地,片外扩展ROM芯片,就等于宣布片内ROM作废,完全执行片外ROM中的程序。
这样,片内硬件资源不受影响,可继续使用。
4、MCS-51单片机内部256B的数据存储器可分为几个区?
其作用分别是什么?
答:
MCS-51单片机片内数据存储器可分为:
00H~7FH单元组成的低128B的片内RAM区、80H~FFH单元组成的高128B的专用寄存器区(未用完,不连续)。
其中低128B的RAM区又分为:
00H~1FH单元为工作寄存器区、20H~2FH单元为位寻址区以及30H~7FH单元为用户RAM区。
工作寄存器可作通用寄存器用,用户RAM区可用堆栈和数据缓冲用。
专用寄存器又称特殊功能寄存器。
5、MCS-8051单片机内部包含哪些主要功能部件?
答:
8位CPU;振荡器和时钟电路;4KBROM;128字节RAM;SFR;4个并行接口;1个全双工串行I/O口;2个16位定时器/计数器;5个中断源及中断控制器;位处理器等。
6、MCS-51单片机有几种复位方式?
应注意什么事项?
答:
单片机有上电自动复位和按钮手动复位两种。
使用时应注意:
上电复位的最短时间应保证为振荡周期建立时间加上两个机器周期的时间。
当单片机运行程序出错或进入死循环时,可用按钮复位来重新启动。
7、如何将80C51当80C31使用?
答:
把80C51的EA*引脚接地,片外扩展ROM芯片,就等于宣布片内ROM作废。
完全执行片外ROM中的程序。
这样,80C51就可以当80C31使用了。
8、主机复位后,PC的内容是多少?
有何特殊含义?
答:
主机复位后,PC=0000H。
开机后单片机从0000H单元开始执行程序。
9、MCS-51的ALE引脚作用是什么?
在主机不访问外部数据存储器时它的输出频率是多少?
答:
ALE是地址锁存允许信号。
在主机不访问外部数据时,它的输出频率为振荡频率的1/6。
10、开机复位后,CPU使用的是哪组工作寄存器?
它们的地址是多少?
CPU如何确定和改变当前工作寄存器组?
答:
系统复位后,CPU选用的是第0组工作寄存器,其地址分别为00H~07H。
如需改变当前工作寄存器组,可设置PSW状态字中的RS1、RS0的值。
如RS1、RS0为00时,则指向第0组;如RS1、RS0为01时,则指向第1组;如RS1、RS0为10时,则指向第2组;如RS1、RS0为11时,则指向第3组。
11、当主频为12MHZ时,一个机器周期为几微秒?
执行一条指令最长需要几微秒?
答:
一个机器周期为1微秒。
执行一条指令最长需要4微秒。
12、何谓堆栈?
堆栈指针SP的作用是什么?
通常为什么需要重新定义指针?
答:
堆栈是一组编有地址的特殊的存储单元,通常是在数据存储器中开辟的一个存储区域。
堆栈顶的地址由栈指针SP指示;堆栈元素的压入和弹出遵循“后进先出”的原则。
在主机复位后,栈指针SP的初值为07H,这避免与工作寄存器重叠,一般在程序初始化时应重新定义SP,再定位堆栈区域。
13、把累加器A写成A与写成ACC有什么不同?
答:
A和ACC虽指的是同一个寄存器,但在指令中它们是有区别的。
ACC是直接地址,在汇编后的机器指令中必有一个字节的操作数是ACC的字节地址E0H,A则隐含在指令操作码中。
所以特殊功能寄存器中的直接寻址和位名称寻址要用ACC,而不能用A。
14、MCS-51指令中有哪几种寻址方式?
答:
有立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、位寻址和相对寻址等7种。
15、80C51指令中没有暂停或程序结束指令,END指令能不能实现程序的正常结束?
为什么?
答:
不能。
因为END属于伪指令,根本就没有相应的机器码,它的作用仅仅是告诉编译程序,将某一段源程序翻译成机器码的工作到止结束。
也就是说它是提供给编译系统的结束命令,而不是提供给CPU执行指令的结束命令。
16、为什么MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突?
答:
是因为访问不同的存储器用的指令是不同的。
如访问ROM中的表格常数用MOVC指令,访问片内RAM用的是MOV指令,访问片外RAM用的是MOVX指令。
不同的指令控制信号不同,故可避免总线冲突。
17、指令LCALLaddr16和指令LJMPaddr16有何异同?
答:
相同点:
都可转到PC=addr16处执行程序。
不同点:
前者转移前保护断点指令地址(下一条指令地址);后者只转移,不能保护下一条指令地址。
18、什么是指令?
何谓是指令系统?
答:
指令是指机器能直接识别和接受并指挥计算机执行某种操作的命令。
指令系统是指一台计算机所有指令的集合。
三、程序分析题
注:
以下括号内的内容为答案。
1、片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中。
分析程序进行填空。
Start:
MOVR0,#40H
MOVR7,(#09H)
MOVA,@R0
Loop:
INC(R0)
MOV30H,@R0
CJNEA,30H,(NEXT)
NEXT:
(JNC),BIE1
MOVA,30H
BIE1:
DJNZR7,Loop
MOV(50H),A
RET
2、片内ROM40H开始的单元内有10个无符号二进制数,编程找出其中最小值并存于50H单元中。
Start:
MOVR0,#40H
MOVR7,(#09H)
MOVA,@R0
Loop:
INC(R0)
MOV30H,@R0
CJNEA,30H,(NEXT)
NEXT:
(JC),BIE1
MOVA,30H
BIE1:
DJNZR7,Loop
MOV(50H),A
RET
3、编程将片外RAM3000H开始的20个字节的数据传送到内部RAM30H开始的单元中去。
Start:
MOVDPTR,(#3000H)
MOVR7,#20
MOVR0,(#30H)
Loop:
(MOVX)A,@DPTR
MOV@R0,A
INC(DPTR)
INCR0
DJNZR7,(Loop)
RET
4、编程将内部RAM40H开始的10个字节数据传送到片外RAM4000H开始的单元中去。
Start:
MOVDPTR,(#4000H)
MOVR7,#10
MOVR0,(#40H)
Loop:
MOVA,@R0
(MOVX)@DPTR,A
INC(DPTR)
INCR0
DJNZR7,(Loop)
RET
5、编程统计内部RAM40H开始的10个带符号数中负数的个数,结果存放在4FH单元内。
Start:
MOVR0,#40H
MOVR2,(#10)
MOV4FH,(#0)
Loop:
MOVA,@R0
JNBACC.7,(NEXT)
INC4FH
NEXT:
INC(R0)
DJNZR2,(Loop)
RET
6、在内部RAM20H开始存放了一个字符串,字符串以00H结束。
试编程统计字符串中字母A的个数,结果存放到1FH单元中。
MOVR0,(#20H)
MOV1FH,#00H
Loop:
MOVA,@R0
INC(R0)
CJNEA,#41H,(NEXT)
INC(1FH)
NEXT:
CJNEA,#00H,(Loop)
RET
7、编程将片外RAM3000H开始的20个字节的数字ASCII转换为BCD码后,存放到内部RAM30H开始的单元中去。
Start:
MOVDPTR,#3000H
MOVR7,(#20)
MOVR0,30H
Loop:
(MOVX)A,@DPTR
ANLA,(#0FH)
MOV@R0,A
INCDPTR
INC(R0)
DJNZ(R7),Loop
RET
8、片内RAM30H开始的单元中有20个无符号数,试编程求它们的和(设和<256),结果存放到40H单元中。
Start:
MOVR0,#30H
MOVR7,(#19)
MOVA,@R0
Loop:
INCR0
ADDA,@R0
DJNZ(R7),Loop
MOV(40H),A
RET
9、在8051型单片机内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,试分析下面程序将各条指令执行后的结果写在右边。
MOVA,40H(A)=48H
MOVR1,A(R1)=48H
MOVP1,#0F0H(P1)=0F0H
MOV@R1,30H(R1)=48H((R1))=38H
MOVDPTR,#1234H(DPTR)=1234H
MOV40H,38H(40H)=40H
MOVR1,30H(R1)=38H
MOV90H,R1(90H)=38H
MOV48H,#30H(48H)=30H
MOVA,@R1(A)=40H
四、程序设计题
1、编程将外部RAM7000H~701FH共32个单元的内容清零。
参考程序:
ORG0000H
LJMPCLEAR
ORG0100H
CLEAR:
MOVR7,#32
MOVDPTR,#7000H
CLRA
CLEAR1:
MOVX@DPTR,A
INCDPTR
DJNZR7,CLEAR1
SJMP$
END
2、编程将外部RAM7000H单元的内容拆开,高4位送7001H单元低4位;低4位送7002H单元中低4位,7001H、7002H单元中高4位清零。
参考程序:
ORG0000H
LJMPCWORD
ORG0100H
CWORD:
MOVDPTR,#7000H
MOVXA,@DPTR
MOVB,A
SWAPA
ANLA,#0FH
INCDPTR
MOVX@DPTR,A
INCDPTR
MOVA,B
ANLA,#0FH
MOVX@DPTR,A
SJMP$
END
3、、编程将外部RAM7000H、7001H单元的低4位内容相拼后送入7002H单元,7000H单元中低4位送7002H单元高4位;7001H单元低4位送7002H单元低4位。
参考程序:
ORG0000H
LJMPPWORD
ORG0100H
PWORD:
MOVDPTR,#7000H
MOVXA,@DPTR
ANLA,#0FH
SWAPA
MOVB,A
INCDPTR
MOVXA,@DPTR
ANLA,#0FH
ORLA,B
INCDPTR
MOVX@DPTR,A
SJMP$
END
4、编程将(R2、R3)源RAM区首址内的(R6、R7)个字节数据,传送到(R4、R5)目的RAM区。
说明:
源RAM区首地址低8位放在R3中,高8位放在R2中;目的RAM区首地址低8位放在R5中,高8位放在R4中;传送字节长度低8位放在R7中,高8位放在R6中。
参考程序:
ORG0000H
LJMPDMV
ORG0100H
DMV:
MOVSP,#70H
DMVE:
MOVDPL,R3
MOVDPH,R2
MOVXA,@DPTR
MOVDPL,R5
MOVDPH,R4
MOVX@DPTR,A
CJNER3,#0FFH,DMVE1
INCR2
DMVE1:
INCR3
CJNER5,#0FFH,DMVE2
INCR4
DMVE2:
INCR5
CJNER7,#00H,DMVE5
CJNER6,#00H,DMVE6
SJMP$
DMVE5:
DECR7
SJMPDMVE
DMVE6:
DECR7
DECR6
SJMPDMVE
5、编程在外RAM7000H~701FH32个单元中查出有几个字节是零,统计“00”的个数存入内RAM40H单元中。
参考程序:
ORG0000H
LJMPFIND
ORG0100H
FIND:
MOVSP,#60H
MOVR0,#32
MOVR1,#00H
MOVDPTR,#7000H
FIND1:
MOVXA,@DPTR
CJNEA,#00H,FIND2
INCR1
FIND2:
INCDPTR
DJNZR0,FIND1
MOV40H,R1
SJMP$
7、已知内RAM以20H为始地址的区域存放8个数,请编程按从小到大进行排序。
参考程序:
SORT:
MOVR0,#20H
MOVR7,#07H
MOVFLAG,#00H;设FLAG为是否需要交换的标志单元
LOOP:
MOVA,@R0
MOV2BH,A;前一个数
INCR0
MOV2AH,@R0;后一个数
CLRC
SUBBA,@R0
JCNEXT
MOV@R0,2BH
DECR0
MOV@R0,2AH
INCR0
MOVFLAG,#01H
NEXT:
DJNZR7,LOOP
MOVA,FLAG
JNZSORT
SJMP$
8、请编写程序将内RAM20H单元中存放的压缩BCD码转换成ASCII码放在21H(高位)和22H(低位)单元中。
参考程序:
ORG0100H
MOVA,20H;待转换数据送A
MOVB,A;暂存待转换数据
ANLA,#0F0H;分离高4位
SWAPA;高低4位交换
ORLA,#30H;完成高4位BCD到ASCII转换
MOV21H,A;高4位转换结果送21H单元
MOVA,B;待转换数据送A
ANLA,#0FH;分离低4位
ORLA,#30H;完成低4位BCD到ASCII转换
MOV22H,A;低4位转换结果送21H单元
SJMP$;结束
END
9、请编写程序将内RAM20H单元中存放的二进制数转换为3位BCD码。
转换结果的百位存于21H单元,十位和个位存于22H单元中。
参考程序:
ORG0100H
MOVA,20H;待转换数据送A
MOVB,#64H;除数100送B
DIVAB;A÷B=A…B
MOV21H,A;百位送21H
MOVA,B;余数送A
MOVB,#0AH;除数10送B
DIVAB;A÷B=A…B
SWAPA;十位BCD送高4位
ORLA,B;完成十位与个位BCD的组合
MOV22H,A;存入22H
SJMP$;结束
END
10、用定时器1方式2计数,要求每计满150次,将P1.0取反。
参考答案:
外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器1,由程序查询TF1.定时器。
T1设置为方式2,自动重装初值。
初值为:
X=28-150=106D=6AH
因此TH1=TL1=6AHTMOD=60H
程序如下:
MOVTMOD,#60H
MOVTL1,#6AH
MOVTH1,#6AH
SETBTR1
DEL:
JBCTF1,REP
AJMPDEL
REP:
CPLP1.0
AJMPDEL
11、已知某单片机控制系统的晶振频率为6MHZ,现需要在P1.0脚输出周期为500us的方波,请编程实现。
(答案请参见教材)
12、根据R3的内容转向对应处理程序。
处理程序的入口分别是PRG0及PRGn。
参考程序:
START:
MOVDPTR,#TAB3
MOVA,R3
ADDA,R3;R3×2
JNCMODIFY
INCDPH;有进位,修正DPTR
MODIFY:
MOVR2,A;暂存偏移量
MOVCA,@A+DPTR;取入口高8位地址
XCHA,R2;暂存入口高8位地址于R2中
INCA;准备取入口低8位地址
MOVCA,@A+DPTR;取入口低8位地址
MOVDPL,A;低8位地址送DPL
MOVDPH,R2;高8位地址送DPH
CLRA;清零A
JMP@A+DPTR;散转
TAB3:
DWPRG0
DWPRG1
……
DWPRGn
13、把内RAM以30H为始址的一批数据传送到内RAM以BUF为始址的区域,遇0DH终止。
参考程序:
MOVR0,#30H
MOVR1,#BUF
LOOP:
CJNE@R0,#0DH,LOOP1
SJMP$
LOOP1:
MOVA,@R0
MOV@R1,A
INCR0
INCR1
SJMPLOOP
14、把外RAM以1000H为始址的32个单元中的数传送到内RAM以BUF为始址的区域。
参考程序:
MOVDPTR,#1000H
MOVR0,#BUF
MOVR7,#32
LOOP:
MOVXA,@DPTR
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 复习