单片机原理与应用.docx
《单片机原理与应用.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用.docx(52页珍藏版)》请在冰点文库上搜索。
单片机原理与应用
单片机原理与应用
第1章微机基础知识
考试知识点:
1、各种进制之间的转换
(1)各种进制转换为十进制数
方法:
各位按权展开相加即可。
(2)十进制数转换为各种进制
方法:
整数部分采用“除基取余法”,小数部分采用“乘基取整法”。
(3)二进制数与十六进制数之间的相互转换
方法:
每四位二进制转换为一位十六进制数。
2、带符号数的三种表示方法
(1)原码:
机器数的原始表示,最高位为符号位(0‘+’1‘-’),其余各位为数值位。
(2)反码:
正数的反码与原码相同。
负数的反码把原码的最高位不变,其余各位求反。
(3)补码:
正数的补码与原码相同。
负数的补码为反码加1。
原码、反码的表示围:
-127~+127,补码的表示围:
-128~+127。
3、计算机中使用的编码
(1)BCD码:
每4位二进制数对应1位十进制数。
(2)ASCII码:
7位二进制数表示字符。
0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H。
考试复习题:
1、求十进制数-102的补码(以2位16进制数表示),该补码为。
2、123=B=H。
3、只有在________码表示中0的表示是唯一的。
4、真值-0000000B的反码为;其补码为。
5、+1000110B的反码是;-0110011B的补码是。
6、10101.101B转换成十进制数是( )。
(A)46.625(B)23.625(C)23.62(D)21.625
7、3D.0AH转换成二进制数是()。
(A)111101.0000101B(B)111100.0000101B
(C)111101.101B(D)111100.101B
8、73.5转换成十六进制数是()。
(A)94.8H(B)49.8H(C)111H(D)49H
9、十进制29的二进制表示为原码()
A11100010B10101111C00011101D00001111
10、-49D的二进制补码为.()
A11101111B11101101C0001000D11101100
11、已知某数的BCD码为0111010101000010则其表示的十进制数值为()
a)7542Hb)7542c)75.42Hd)75.42
第2章MSC-51单片机的硬件结构
考试知识点:
1、80C51单片机的部逻辑结构
单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型计算机,主要由以下几个部分组成。
(1)中央处理器CPU
包括运算器和控制器。
运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中。
控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。
程序计数器PC是一个16位寄存器,PC的容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行。
(2)存储器
分类:
随机存取存储器RAM:
能读能写,信息在关机后消失。
可分为静态RAM(SRAM)和动态RAM(DRAM)两种。
只读存储器:
信息在关机后不会消失。
掩膜ROM:
信息在出厂时由厂家一次性写入。
可编程PROM:
信息由用户一次性写入。
可擦除可编程EPROM:
写入后的容可由紫外线照射擦除。
电可擦除可编程EEPROM:
可用电信号进行清除和改写。
存储容量:
存储容量指存储器可以容纳的二进制信息量,M位地址总线、N位数据总线的存储器容量为2M×N位。
80C51单片机的存储器有部RAM(128B,高128B为专用寄存器)、外部RAM(64KB)、部ROM(4KB掩膜ROM)、外部ROM(64KB)。
(3)输入输出接口
4个8位并行I/O口(P0、P1、P2、P3)
(4)其它资源
一个全双工串行口、5个中断源、2个16位的定时/计数器、时钟电路。
2、80C51单片机的信号引脚
(1)电源部分:
VCC接+5V、VSS接地。
(2)时钟电路部分:
XTAL1和XTAL2接晶振。
1个机器周期=6个状态=12个拍节
6MHZ的晶体机器周期2us,12MHZ的晶体机器周期1us。
(3)I/O口部分:
P0——8位数据总线/地址总线低8位、P1——用户口、P2——地址高8位、P3——第二功能。
(4)控制部分:
地址锁存控制信号ALE,用于控制把P0口输出的低8位地址送入锁存器锁存地起来。
外部程序存储器读选通信号PSEN,低电平有效,以实现外部ROM单元的读操作。
访问程序存储器控制信号EA,低电平时只读外部ROM,高电平时先读部ROM,再读外部ROM。
复位信号RST,当输入的复位信号延续2个机器周期以上高电平时即为有效。
复位值:
PC=0000H,SP=07H,P0=0FFH。
3、部RAM的基本结构与功能
80C51的部数据存储器低128单元区,称为部RAM,地址为00~7FH。
(1)寄存器区(00~1FH)
共分为4组,组号依次为0、1、2、3,每组有8个寄存器,在组中按R7~R0编号。
由PSW中RS1、RS0位的状态组合来决定哪一组。
(2)位寻址区(20H~2FH)
可对单元中的每一位进行位操作,16个字节单元共128个可寻址位,位地址为00~7FH。
位起始地址D0=(字节地址-20H)*8
(3)用户RAM区(30H~7FH)堆栈、缓冲区
堆栈是在部RAM中开辟的,最大特点就是“后进先出”的数据操作原则。
两项功能:
保护断点和保护现场。
两种操作:
进栈和出栈。
SP堆栈指针,它的容就是堆栈栈顶单元的地址。
4、专用寄存器(部数据存储器高128单元)
(1)累加器A(ACC)
(2)寄存器B
(3)程序状态字PSW
CY——进位标志位,最高位的进位或借位。
AC——半进位标志位,低4位向高4位的进位或借位。
OV——溢出标志位,同符号数相加,结果为异符号,有溢出;异符号数相减,结果和减数符号相同,有溢出。
P——A中1的个数,奇数个P=1,偶数个P=0。
(4)数据指针DPTR:
80C51中惟一一个供用户使用的16位寄存器。
高8位DPH,低8位DPL。
考试复习题:
1、80C51单片机的()口的引脚,还具有外中断、串行通信等第二功能。
a)P0 b)P1c)P2 d)P3
2、单片机应用程序一般存放在( )
a)RAM b)ROM c)寄存器 d)CPU
3、CPU主要的组成部部分为( )
a)运算器、控制器 b)加法器、寄存器 c)运算器、寄存器 d)运算器、指令译码器
4、80C51是( )位的单片机
a)16 b)4 c)8 d)准16
5、80C51复位后,PC与SP的值为( )
a)0000H,00H b)0000H,07H c)0003H,07Hd)0800H,00H
6、80C51单片机中既可位寻址又可字节寻址的单元是( )
a)20H b)30H c)00H d)70H
7、PSW=18H时,则当前工作寄存器是()
A.0组B.1组C.2组D.3组
8、MCS—51单片机外部有40个引脚,其中,地址锁存允许控制信号引脚是()
(A)ALE(B)
(C)
(D)RST
9、PC中存放的是()
A.下一条指令的地址B.当前正在执行的指令
C.当前正在执行指令的地址D.下一条要执行的指令
10、MCS-51单片机的堆栈区应建立在()。
A.片数据存储区的低128字节单元 B.片数据存储区
C.片数据存储区的高128字节单元 D.程序存储区
11、MCS-51单片机有片ROM容量()
A.4KBB.8KBC.128BD.256B
12、MCS-51单片机的RS1,RS0=11时,当前寄存器R0—R7占用部RAM( )单元。
A.00H—07H B.08H—0FHC.10H—17H D.18H—1FH
13、单片机即一个芯片的计算机,此芯片上包括五部分:
运算器、_________、________、输入部分、________。
14、半导体存储器分成两大类和,其中具有易失性,常用于存储。
15、在MCS—51单片机部RAM中,字节地址围是20H~2FH的区域称为而字节地址围是30H~7FH的一段区域称为。
16、MCS-51系列单片机部数据存储器,即RAM中位寻址区的地址围是工作寄存器区的地址围是。
R0M中寻址区的地址围是。
17、若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为______。
18、MCS—5l单片机的堆栈区只可设置在,堆栈寄存器5P是位寄存器。
19、P0、P1、P2、P3四个均是___位的____口(填“串行”还是“并行”),其中P0的功能是______________________;P2口的功能是___________;而_________是双功能口;______是专门的用户口。
20、程序状态标志字寄存器PSW中的PSW.7的含义是;PSW.0的含义是。
21、当MCS-51引脚信号有效时,表示从P0口稳定地送出了低8位地址.
22、当EA接地时,MCS-51单片机将从______的地址0000H开始执行程序。
23、1个机器周期=个状态,1个状态=个拍节。
24、MCS51系列单片机的部资源有哪些?
说出8031、8051和8751的区别。
25、简述累加器的ACC的作用。
26、80C51的振荡周期、机器周期、指令周期是如何分配的?
当晶振频率为6MHz时,一个机器周期为多少微秒?
27、开机复位后,CPU使用的是哪组工作寄存器?
它们的地址是什么?
CPU如何确定和改变当前工作寄存器组?
28、80C51单片机片256B的数据存储器分为哪几个区?
分别作什么用?
29、80C51单片机的程序存储器和数据存储器共处同一地址空间,为什么不会发生总线冲突?
第3章单片机指令系统
考试知识点:
1、寻址方式
(1)立即寻址(#data,#data16)例:
MOVA,#00H
(2)直接寻址(direct)部RAM:
00~7FH、特殊功能寄存器例:
MOVA,00H
(3)寄存器寻址(A、B、Rn、DPTR)
(4)寄存器间接寻址(Ri、DPTR)例:
MOVXA,DPTR
(5)变址寻址(A+DPTR,A+PC)例:
MOVCA,A+DPTR
(6)位寻址(bit)20~2FH:
00~7FH、特殊功能寄存器例:
MOVC,00H
(7)相对寻址(rel)例:
JZrel
2、数据传送类指令
(1)部RAM数据传送指令
MOV目的,源;目的→源
交换指令:
XCHA,direct/Rn/Ri;A和源交换
XCHDA,Ri;只换低4位
SWAPA;A的高低4位交换
注意:
A作目的操作数会影响P。
PUSHdirect
POPdirect
(2)外部RAM数据传送指令
MOVXA,Ri/DPTR;外部地址容→A
MOVXRi/DPTR,A;A→外部地址容
(3)ROM数据传送指令
MOVCA,A+DPTR/A+PC;查表指令
3、算术运算指令
(1)加法指令
ADD/ADDCA,#data/direct/Rn/Ri;会影响CY、AC、OV、P
INCA/direct/Rn/Ri/DPTR;加1,P
DAA;十进制调整,大于9加6
(2)减法指令
SUBBA,#data/direct/Rn/Ri;会影响CY、AC、OV、P
DECA/direct/Rn/Ri;减1
(3)乘除指令
MULAB;(A)*(B)→BA,会影响CY=0,OV,P
DIVAB;(A)/(B)的商→A,余数→B
4、逻辑运算及移动指令
(1)逻辑运算指令
ANL/ORL/XRLA,#data/direct/Rn/Ri
ANL/ORL/XRLdirect,A/#data
与→清0,或→置1,异或→取反
CLR/CPLA;清0和取反
(2)移位指令
RL/RR/RLC/RRCA
注意:
每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P。
5、控制转移类指令
(1)无条件转移指令
LJMPaddr16;addr16→PC,64KB
AJMPaddr11;(PC)+2→PC,addr11→PC10~0,2KB
SJMPrel;(PC)+2+rel→PC,256B
JMPA+DPTR;(A)+(DPTR)→PC,64KB
(2)条件转移指令
累加器A判0转移指令
JZrel;A为0
JNZrel;A不为0
比较不相等转移指令
CJNEA/Rn/Ri,#data,rel
CJNEA,direct,rel
注意:
第一操作数和第二操作数不相等,程序转移,若第一大于第二,CY=0,第一小于第二,CY=1。
第一操作数和第二操作数相等,程序顺序执行,CY=0。
减1不为0转移指令
DJNZRn/direct,rel;(Rn/direct)-1不为0,程序转移。
(3)调用和返回指令
LCALLaddr16;(PC)+3→PC,先入低8位,再入高8位,addr16→PC
ACALLaddr11;(PC)+2→PC,先入低8位,再入高8位,addr11→PC10~0
RET;先出高8位,再出低8位
6、位操作类指令
(1)位传送指令
MOVC,bit
MOVbit,C
(2)位赋值指令
CLRC/bit
SETBC/bit
(3)位逻辑运算指令
ANL/ORLC,bit或/bit
CPLC/bit
注意:
实现逻辑表达式
(4)位控制转移指令
JCrel;(CY)=1
JNCrel;(CY)=0
JBbit,rel;(bit)=1
JNBbit,rel;(bit)=0
JBCbit,rel;(bit)=1,转移,清0
考试复习题:
1、下列指令中不影响标志位CY的指令有( )。
a)ADD A,20H b)CLRA c)RRC A d)INC A
2、当需要从MCS-51单片机程序存储器取数据时,采用的指令为()。
a)MOV A, R1 b)MOVC A, A + DPTR
c)MOVX A, R0 d)MOVX A, DPTR
3、下列哪条指令是正确的()
a)PUSHR2b)ADDR0,A
c)MOVXADPTRd)MOVR0,A
4、MOVXA,R0指令中,源操作数采用()寻址方式,指令作用在()区间。
(A)寄存器,外部数据存储器(B)直接,程序存储器
(C)寄存器间接,部数据存储器(D)寄存器间接,外部数据存储器
5、在中断服务程序中,至少应有一条()
A、传送指令B、转移指令C、加法指令D、中断返回指令
6、要用传送指令访问80C51外部RAM,它的指令助记符应是()
A、MOVB、MOVXC、MOVCD、MOVD
7、执行LCALL4000指令时,80C51所完成的操作是()
A、保护PCB、PC←4000HC、保护现场D、PC+3入栈,PC←4000H
8、以下运算中对溢出标志OV没有影响或不受OV影响的运算是()
A、逻辑运算B、符号数加减法运算C、乘法运算D、除法运算
9、必须进行十进制调整的十进制运算()
A、只有加法B、有乘法和除法C、有加法和减法D、只有减法
10、指令AJMP的跳转围是()
A、256BB、1KBC、2KBD、4KB
11、执行PUSHACC指令,80C51完成的操作是()
A、SP←(SP)+1(SP)←(ACC)B、(SP)←(ACC)SP←(SP)-1
C、SP←(SP)-1(SP)←(ACC)D、(SP)←(ACC)SP←(SP)+1
12、A7H和5BH两个立即数相加后,和为(),(CY)是()。
(A)1CH,0(B)C1H,0(C)02H,1(D)C1H,1
13、若(A)=86H,(PSW)=80H,则执行RRCA指令后()
(A)C3H(B)B3H(C)0DH(D)56H
14、如果(P0)=65H,则当
CPLP0.2
SETBC
MOVP0.4,C
执行后(P0)=()
(A)61H(B)75H(C)71H(D)17H
15、80C51单片机中,将累加器A中的数送入外RAM的40H单元,可执行的指令()。
(A)MOVR1,40H(B)MOVR1,#40H
MOVXR1,AMOVXR1,A
(C)MOVX40H,A(D)MOVR1,#40H
MOVXR1,A
16、ORG2000H
LACLL3000H
ORG3000H
RET
上边程序执行完RET指令后,PC=()
A.2000HB.3000HC.2003HD.3003H
17、JNZREL指令的寻址方式是()
A.立即寻址B.寄存器寻址C.相对寻址D.位寻址
18、下面哪条指令产生
信号()
A.MOVXA,DPTRB.MOVCA,A+PCC.MOVCA,A+DPTRD.MOVXDPTR,A
19、MOVXA,DPTR指令中源操作数的寻址方式是()
A.寄存器寻址B.寄存器间接寻址C.直接寻址D.立即寻址
20、已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。
各个位的值是()。
(A)0、0、0(B)1、0、1(C)1、1、1(D)1、1、0
21、ORG0003H
LJMP2000H
ORG000BH
LJMP3000H
当CPU响应外部中断0后,PC的值是()
A.0003HB.2000HC.000BHD.3000H
22、假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()
A、36HB、37HC、38HD、39H
23、要把P0口高4位变0,低4位不变,应使用指令()
A.ORLP0,#0FHB.ORLP0,#0F0HC.ANLP0,#0F0HD.ANLP0,#0FH
24、MCS-51执行完MOVA,#08H后,PSW的哪一位被置位()
A.CYB.F0C.OVD.P
25、对于指令JNB12H,$,其操作码为80H,其操作数(即偏移量)为______。
26、JZe的操作码地址为1000H,e=20H,它的转移目的地址为。
27、执行下列程序段后,(P1)=_______。
MOVP1,#5DH
CPLP1.1
CPLP1.2
CLRP1.6
SETBP1.7
28、执行下列程序段后,(A)=_______,(CY)=____。
MOVA,#C5H
RLA
29、下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。
MOVR0,#7EH
MOV7EH,#0FFH
MOV7FH,#40H
1NCR0
1NCR0
1NCR0
30、已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)=____。
31、ORLA,#0F0H是将A的高4位置1,而低4位。
32、SJMPe的指令操作码地址为0050H,e=65H,那么它的转移目的地址为。
33、假定(A)=0FBH,(B)=12H。
执行指令:
DIVAB后,CY的容为,OV的容为。
34、假定(SP)=40H, (39H)=30H,(40H)=60H。
执行下列指令:
POP DPH
POP DPL
后,DPTR的容为 ,SP的容是 。
35、下列各条指令其源操作数的寻址方式是什么?
各条指令单独执行后,A中的结果是什么?
设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOVA,#48H;寻址方式:
(A)=
(2)ADDA,60H;寻址方式:
(A)=
(3)ANLA,R0;寻址方式:
(A)=
36、(A)=3BH,执行ANLA,#9EH指令后,(A)=(CY)=
37、JNZREL为2B指令,放于1308H,转移目标地址是134AH,求偏移量REL=
38、若(A)=C3H,(R0)=AAH,执行ADDA,R0后,(A)=(CY)=
(OV)=(AC)=
39、若(A)=50H,(B)=A0H,执行MULAB后,(A)=(B)=(CY)=
(OV)=
40、SJMP0E7H为2B指令,放于F010H,目标地址=
41、判断以下各条指令是否正确(LL1和PROC为标号)(10分)
(1)MOVXR0,B
(2)MOVA,30H
(3)MOVXA,30H
(4)ADDCA,R7
(5)SUBA,R2
(6)ANL#99H,36H
(7)MOVC,ACC.0
(8)ORLP1.0,P3.1
(9)JBCP0,LL1
(10)ACALLPROC
42、判断指令(或伪指令)正误
(1).MOV20H,R1()
(2).ADDCA,2030H()
(3).CLRA()(4).MOVX40H,#30H()
(5).ORG3000H()(6).MOVCA+PC,A()
(7).MOVXA,2000H()(8).DJNZ#data,rel()
(9).INCR5()(10).DECDPTR()
(11).MOVR1,R2()(12).SWAPR1()
(13).SETB2000H()(14).JZA,LOOP()
(15)DAR2()
43、设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=
ORLA,#27H
ANLA,28H