单片机考试复习整理及简答题Word文档下载推荐.docx
《单片机考试复习整理及简答题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机考试复习整理及简答题Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
子程序的第一条指令的地址称为子程序的入口地址。
该指令前必须有标号。
相同点:
中断服务子程序与普通子程序在执行前都会进行断点保护工作,将将要执行的主程序的指令地址进栈保护,返回时都要将断点地址出栈赋给PC,以便正确的返回主程序断点。
不同点:
1.中断的发生是随机的,普通子程序的发生是编程人员控制的。
2.中断服务子程序的返回指令为RETI,普通子程序的返回指令为RET。
中断服务子程序在执行和返回时还要设置中断优先级顺序。
8051响应中断的条件是什么?
CPU响应中断后,CPU要进行哪些操作?
不同的中断源的中断人口地址是多少?
条件:
1无同级或高级中断在执行。
2当前指令执行结束。
3若现行搜集为RETI七访问IE,IP的指令时,执行完该项指令且紧跟其后的另一条指令也已经执行完毕.。
操作:
1保护中断地址入栈;
2进入中断程序3在一个特殊的寄存器里写中断标志4屏蔽同级或低级中断5执行中断程序6执行完清楚中断标志。
(RETI语句)7中断程序地址从堆栈弹
9.单片机对中断优先级的处理原则是什么?
A.CPU同时接收到几个中断源时,首先响应优先级别最高的中断请求。
B.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
C.正在进行的低优先级中断服务,能被高优先级中断请求所中断。
10.80C'
51的外部中断有哪两种触发方式?
它们对触发脉冲或电平有什么要求?
电平触发和边沿触发(脉冲触发)。
电平触发方式:
低电平有效。
CPU在中断请求引入端采样到有效的低电平时,即为有效中断请求。
脉冲方式:
下降沿触发有效。
CPU在相邻的两个机器周期对中断请求引入端采样,如前一次为高电平,后一次为低电平,即为有效中断请求。
11.单片机怎样管理中断?
怎样开放和禁止中断?
怎样设置优先级?
(1)由中断源提出中断,再由中断控制端决定是否中断,再按设定好的优先级的顺序响应中断。
如同一级优先级的中断按:
外部中断0,定时中断0,外部中断1,定时中断1,串行中断。
中断后如果是:
脉冲触发,TEl(0)被清0;
电平触发,IEl(0)不被清零,要用软件清0。
(2)它由中断允许寄存器IE控制:
如开放中断EA必须为1,再使要求中断的申断源的中断允许位为1:
要禁止中断,EA=0即可。
(3)由IP控制,1为高级,0为低级,PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。
使哪个中断源为优先级,就置哪个优先设定位为1。
12.8051单片机定时器一计数器作定时和计算用时,其计数脉冲分别由谁提供?
当做定时用时(C/T=0),计数器TH0、TL0的计数脉冲来自振荡器的12分频后的脉冲(即fosc/12),即对系统的机器周期计数;
当做计算用时(C/T=0),计数器T0、T1的计数脉冲分别来自于引脚T0(P3.4)或者引脚T1(P3.5)上的外部脉冲。
14.8051单片机片内设有几个定时器/计数器?
它们是由哪些特殊功能寄存器组成?
有两个16位的定时/计数器T0,T1。
定时/计数器T1由寄存器TH1,TL1组成,定时/计数器T0由寄存器TH0、TL0组成。
它们均是8位寄存器,在特殊功能寄存器中占地址8AH~8DH。
它们用于存放定时或计数的初始值。
此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作。
19.当定时器T0工作于模式3时,如何使运行中的定时器T1停止下来?
TRl为定时器Tl的运行控制位,通常将该位置1就可启动定时器Tl使之运行起来;
把TRl清0便停止定时器Tl的运行。
但在定时器T0被设定为模式3运行时,就不能再用这种方法来控制定时器Tl的启停了。
因为在这种情况下,TRl借给定时器T0作为8位定时器TH0的运行控制位了。
当定时器T0在模式3下运行时,若把定时器1设定为模式3,即将TMOD寄存器的位5(Ml)和位4(M0)写成llB,则定时器Tl便停止运行;
若此后将其从模式3中切换出来,例如,把这两位再次写成0lB,则定时器Tl将按模式1运行起来。
20.波特率、比特率和数据传送速率的含意各是什么?
答:
在数据通信中,描述数据传送速度的方式有3种:
①波特率:
每秒传送多少个信号码元(或每秒信号码元变换的总个数),单位是波特(Bd)。
②比特率:
每秒传送多少个二进制位(或每秒传送二进制码元的个数),单位是b/s。
③数据传送速率(或字符传送速率):
每秒传送多少个字符(
或单位时间内平均数据传移速
率),单位是字符/秒。
当传输的信号是二进制数位时,波特率和比特率就变成了一回事,尤其是计算机通信中,信号码元常与二进制码元相同,此时可以统一起来。
例如,甲乙双方传送二进制数据的速度是每秒传送300个字符,每个字符附加了起始、停止和校验各一位,此时描述该速度有3种方式:
①数据字符传送速率是300字符/秒。
②忍比特率300×
(8+1+1+l)b/s=300×
llb/s=3300b/s。
③波特率与比特率相同,亦为300×
llRd=3300Bd
21.开机复位后,CPU使用的是哪组工作寄存器?
它们的地址是什么?
CPU如何确定和改变改变当前工作寄存器组?
答:
系统复位后,CPU选用第0组工作寄存器即地址分别为00H~07H。
如需改变当前工作寄存器,可设置PSW状态字中的RSl、RS0。
如RSl、RS0为00则指向第0组;
为01则指向第1组;
为10则指向第2组;
为ll则指向第3组。
22.程序状态寄存器PSW的作用是什么?
常用状态有哪些位?
作用是什么?
程序状态字寄存器PSW主要用于保存程序运行中的各种状态信息。
各位功能如下:
CY(PSW·
7)为进位标志。
在进行加或减运算中,表示有无进位或借位。
位操作时,又可认为是位累加器。
AC(PSW·
6)为辅助进位标志。
加或减操作中,表示低4位数向高4位有无进位或借位,以用作BCD码调整的判断位。
F0(PSW·
5)为用户标志位。
用户可自行定义的一个状态标记。
RSl、RS0(PSW·
4PSW·
3)为工作寄存器组指针。
用以选择CPU当前工作寄存器组。
OV(PSW·
2)为溢出标志。
算术运算时,表示是否溢出。
Fl(PSW·
l)为用户标志位。
同F0。
P(PSW·
0)为奇偶标志位。
表示累加器A中"
1"
的位数的奇偶数。
该位多用作串行通信中的奇偶检验。
23.位地址7CH与字节地址7CH如何区别?
位地址7CH具体在片内RAM的位置?
字节地址是片内RAM的单元地址,而位地址是片内RAM单元申的某一位。
7CH字节地址为RAM的7CH单元,而7CH位地址是RAM2FH单元中的D4位。
25.MCS一51单片机有几种复位方法?
应注意什么事项?
上电复位和开关复位。
上电复位要求接通电源,自动实现复位操作。
开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。
26.MCS一51单片机内部包含哪些主要逻辑功能部件?
89C51单片机主要由下列部件组成:
一个8位CPU、一个片内振荡器及时钟电路、4KBFlashROM程序存储器、256B的RAM、2个16位的定时/计数器、可寻址64KB片外数据存储器和64KB片外程序存储器空间的控制电路、4个8位并行I/O端口及一个可编程全双工串行接口。
27.MCS一51单片机的存储器从物理结构上和逻辑上分别可划分几个空间?
MCS-51系列单片机的存储器配置从物理结构上可分为:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
从逻辑上可分为:
片内外统一编址的64KB的程序存储器、片内256B的数据存储器以及片外64KB的数据存储器。
28.存储器中有几个具有特殊功能的单元?
分别作什么用?
MCS-51系列单片机的存储器中有6个保留特殊功能单元,其中0000H为复位入□)0003H为外部中断0矢量入口、000BH为T0溢出中断人口、0013H为外部中断1矢量入口、00lBH为Tl溢出中断入口、0093H为串行接口中断入口。
29.MCS一51单片机片内256B的数据存储器可分为几个区?
分别作什么月答:
31.MCS-51单片机的PO-P3四个I/O端口在结构上有何异同?
使用时应注意什么事项?
MCS-51单片机的四个端口在结构上相同之处,P0~P3都是准双向I/O口,作输入时,必须先向相应端口的锁存器写入"
。
不同之处:
P0口的输出级与Pl~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而Pl~P3则带内部上拉电阻,可以提供拉电流输出。
当P0口作通用I/O口输出使用时,需外接上拉电阻才可输出高电平;
但作地址/数据总线时,不需要外接上拉电阻。
Pl~P3作I/O输出时,均不需外接上拉电阻。
18.已知晶振频率为6MHz,在P1.0引脚上输出周期为500微秒的等宽矩形波,若采用T1中断,工作方式2,试写出中断初始化程序(6分)MOVTMOD,#20HSETBET1MOVTL1,#06HSETBTR1MOVTH1,#06HSJMP$
26.简述8051单片机的内部组成结构(9分)答:
8051单片机是个完整的单片微型计算机。
芯片内部包括下列硬件资源:
(1)8位CPU;
(2)4KB的片内程序存储器ROM。
可寻址64KB程序存储器和64KB外部数据存储器;
(3)128B内部RAM;
(4)21个SFR;
(5)4个8位并行I/O口(共32位I/O线);
(6)一个全双工的异步串行口;
(7)两个16位定时器/计数器;
(8)5个中断源,两个中断优先级;
1、读程序题(每空2分,共16分)
(1)执行下列程序段后,(P1)=__9BH___。
MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.7
(2)执行下列程序段后,(A)=__8BH(或10001011B)。
MOVA,#C5HRLA
(3)下列程序段执行后,(R0)=_7FH__,(7EH)=_00H_,(7FH)=__41H__。
MOVR0,#7EHMOV7EH,#0FFHMOV7FH,#40H1NC@R01NCR01NC@R0(4)已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=_0345H_,(61H)=_23H_,(62H)=_01H_。
2、程序设计题
(1)某单片机控制系统有8个发光二极管,如右图,编程使它们由左向右轮流点亮。
(6分)MOVA,#80HUP:
MOVP1,ARRASJMPUP
(2)设计一个延时1s的子程序,设单片机时钟晶振频率为fosc=6MHz。
(10分)DELAY:
MOVR0,#100;
延时1s的循环次数DEL2:
MOVR1,#10;
延时10ms的循环次数DEL1:
MOVR2,#7DH;
延时1ms的循环次数DEL0:
NOPNOPDJNZR2,DEL0DJNZR1,DEL1DJNZR0,DEL2RET(3)编写一程序实现将1000H单元开始的100个单元的数据转移到2000H开始的单元中。
ORG0000HMOVDPTR,#1000H;
LOOP:
MOVXA,@DPTRMOVX@R0,AINCDPTRINCR0CJNER0,#64H,LOOPSJMP$
(4)请编写一程序,使数字0~9在P1口所接的一个共阳极数码管上循环点亮。
(14分)ORG0000HSTART:
MOVR1,#10MOVDPTR,#TABMOVR0,#00HLOOP:
MOVA,R0MOVCA,@A+DPTRMOVP1,ALCALLDELAYINCR1DJNZR1,LOOP1SJMPSTARTTAB;
DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HEND
一、填空题(每空1分,共20分)
1、单片微型计算机由CPU、存储器和I/O三部分组成。
2、若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为__08~0FH__。
3、在MCS-51单片机中,如果采用6MHz晶振,一个机器周期为2us。
4、使用8031单片机时,需将EA引脚接低电平,因为其片内无程序存储器。
5、通常,单片机上电复位时PC=_0000H,SP=__07_H。
6、中断源的优先级别被分为高级和低级两大级别,各中断源的中断请求是属于什么级别是由_IP__寄存器的内容决确定的。
上电复位时,__外部中断0_中断源的优先级别最高。
7、8031有两个16位可编程定时/计数器,其中定时作用是指对单片机_机器周期__脉冲进行计数,而计数器作用是指对单片机__外部脉冲进行计数。
8、中断请求信号有电平触发和脉冲触发两种触发方式。
9、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。
10、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是P0,具有外中断、串行通信等第二功能的I/O口是P3。
一.选择
1、计算机能直接识别的语言是(C)。
A.汇编语言B.自然语言C.机器语言D.硬件和软件
2、在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是(B)。
A.PCB.PSWC.AD.SP
3、子程序的返回和中断响应过程中的中断返回都是通过改变PC的内容实现的,而PC内容的改变是(C)完成的。
A.通过POP命令B.通过MOV指令C.通过RET或RETI指令D.自动
4、8031定时/计数器共有四种操作模式,由TMOD寄存器中M1M0的状态决定,当M1M0的状态为10时,定时/计数器被设定为(C)A.13位定时/计数器B.16位定时/计数器C.自动重装8位定时/计数器D.T0为2个独立的8位定时/计数器,T1停止工作
5、若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为(C)。
A.500B.1000C.216-500D.216-1000
6、定时器1工作在计数方式时,其外加的计数脉冲信号应连接到(D)引脚。
A.P3.2B.P3.3C.P3.4D.P3.5
7、单片机应用程序一般存放在(B)A.RAMB.ROMC.寄存器D.CPU
8、INTEL8051CPU是(C)位的单片机A.16B.4C.8D.准16
9、七段共阴极发光两极管显示字符‘H’,段码应为(B)A.67HB.90HC.91HD.76H
10、A/D转换方法有以下四种,ADC0809是一种采用(C)进行A/D转换的8位接口芯片。
(A)计数式(B)双积分式(C)逐次逼近式(D)并行式
课后
第三章
1、
指令:
CPU根据人的意图来执行某种操作的命令指令系统:
一台计算机所能执行的全部指令集合机器语言:
用二进制编码表示,计算机能直接识别和执行的语言汇编语言:
用助记符、符号和数字来表示指令的程序语言高级语言:
独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言
2、见第1题
3、操作码[目的操作数][,源操作数]
4、寻址方式寻址空间立即数寻址程序存储器ROM直接寻址片内RAM低128B、特殊功能寄存器寄存器寻址工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址片内RAM低128B、片外RAM变址寻址程序存储器(@A+PC,@A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM的20H-2FH字节地址、部分SFR
5、SFR:
直接寻址,位寻址,寄存器寻址;
片外RAM:
寄存器间接寻址
6、MOVA,40H;
直接寻址(40H)→AMOVR0,A;
寄存器寻址(A)→R0MOVP1,#0F0H;
立即数寻址0F0→P1MOV@R0,30H;
直接寻址(30H)→(R0)MOVDPTR,#3848H;
立即数寻址3848H→DPTRMOV40H,38H;
直接寻址(38H)→40HMOVR0,30H;
直接寻址(30H)→R0MOVP0,R0;
寄存器寻址(R0)→P0MOV18H,#30H;
立即数寻址30H→18HMOVA,@R0;
寄存器间接寻址((R0))→AMOVP2,P1;
直接寻址(P1)→P2最后结果:
(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:
→左边是内容,右边是单元
7、用直接寻址,位寻址,寄存器寻址
8、、MOVA,DATA;
直接寻址2字节1周期MOVA,#DATA;
立即数寻址2字节1周期MOVDATA1,DATA2直接寻址3字节2周期MOV74H,#78H;
立即数寻址3字节2周期如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A
9‘MOVA,@R0((R0))=80H→AMOV@R0,40H;
(40H)=08H→(R0)MOV40H,A;
(A)=80→40HMOVR0,#35H;
35H→R0最后结果:
(R0)=35H(A)=80H,(32H)=08H,(40H)=80H
10、用直接寻址,位寻址,寄存器寻址
11、只能采用寄存器间接寻址(用MOVX指令)
12、低128字节:
直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)高128字节:
直接寻址,位寻址,寄存器寻址
13、采用变址寻址(用MOVC指令)
14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。
用DAA指令调整(加06H,60H,66H)
15、用来进行位操作
16、ANLA,#17H;
83H∧17H=03H→AORL17H,A;
34H∨03H=37H→17HXRLA,@R0;
03H⊕37H=34HCPLA;
34H求反等于CBH所以(A)=CBH
17、
(1)SETBACC.0或SETBE0H;
E0H是累加器的地址
(2)CLRACC.7CLRACC.6CLRACC.5CLRACC.4(3)CLRACC.6CLRACC.5CLRACC.4CLRACC.3
18、MOV27H,R7MOV26H,R6MOV25H,R5MOV24H,R4MOV23H,R3MOV22H,R2
MOV21H,R1MOV20H,R0
19、MOV2FH,20MOV2EH,21MOV2DH,22
20、CLRCMOVA,#5DH;
被减数的低8位→AMOVR2,#B4H;
减数低8位→R2SUBBA,R2;
被减数减去减数,差→AMOV30H,A;
低8位结果→30HMOVA,#6FH;
被减数的高8位→AMOVR2,#13H;
减数高8位→R2SUBBA,R2;
被减数减去减数,差→AMOV31H,A;
高8位结果→30H注意:
如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位
21、
(1)A≥10CJNEA,#0AH,L1;
(A)与10比较,不等转L1LJMPLABEL;
相等转LABELL1:
JNCLABEL;
(A)大于10,转LABEL或者:
CLRCSUBBA,#0AHJNCLABEL
(2)A>10CJNEA,#0AH,L1;
(A)与10比较,不等转L1RET;
相等结束L1:
(A)大于10,转LABEL
RET;
(A)小于10,结束或者:
CLRCSUBBA,#0AHJNCL1RETL1:
JNZLABELRET(3)A≤10CJNEA,#0AH,L1;
(A)与10比较,不等转L1L2:
LJMPLABEL;
JCL2;
(A)小于10,转L2RET或者:
CLRCSUBBA,#0AHJCLABELJZLABELRET
22、(SP)=23H,(PC)=3412H参看书上80页
23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H参看书上79页
24、不能。
ACALL是短转指令,可调用的地址范围是2KB。
在看这个题的时候同时看一下AJMP指令。
同时考虑调用指令ACALL和LCALL指令和RET指令的关系。
25、MOVR2,#31H;
数据块长度→R2
MOVR0,#20H;
数据块首地址→R0LOOP:
MOVA,@R0;
待查找的数据→ACLRC;
清进位位SUBBA,#0AAH;
待查找的数据是0AAH吗JZL1;
是,转L1INCR0;
不是,地址增1,指向下一个待查数据DJNZR2,LOOP;
数据块长度减1,不等于0,继续查找MOV51H,#00H;
等于0,未找到