单片机知识点总结.docx
《单片机知识点总结.docx》由会员分享,可在线阅读,更多相关《单片机知识点总结.docx(11页珍藏版)》请在冰豆网上搜索。
单片机知识点总结
单片机考点总结
1.单片机由CPU、存储器及各种I/O接口三部分组成。
2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。
3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051和8751.
(1)I/O引脚
(2)8031、8051和8751的区别:
8031片内无程序存储器、8051片内有4KB程序存储器ROM、8751片内有4KB程序存储器EPROM。
4.MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用为低8位地址输出口和数据口。
MCS-51单片机片外可扩展存储最大容量为216=64KB,地址范围为0000H—FFFFH。
(1.以P0口作为低8位地址/数据总线;2.以P2口作为高8位地址线)
5.MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。
(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H—7FH;
00H—1FH:
工作寄存器区;
00H—1FH:
可位寻址区;
00H—1FH:
用户RAM区。
(2)21个特殊功能寄存器(SFR)(21页—23页);
(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。
PC=0000H,DPTR=0000H,Acc=00H,PSW=00H,B=00H,SP=07H,
TMOD=00H,TCON=00H,TH0=00H,TL0=00H,TH1=00H,
TL1=00H,SCON=00H,P0~P3=FFH
6.程序计数器PC:
存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。
程序计数器PC是16位寄存器,没有地址,不是SFR.
7.PC与DPTR的区别:
PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。
8.MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVEDPTR,#data16是唯一的16位数据传送指令,用来设置地址指针DPTR。
(46页)
定时/计数器T0和T1各由2个独立的8位寄存器组成,共有4个独立寄存器:
TH1、TL1、TH0、TL0,可以分别对对这4个寄存器进行字节寻址,但不能吧T0或T1当作1个16位寄存器来寻址。
即:
MOVT0,#data16;MOVT1,#data16都是错的,
MOVTH0,#data;MOVTL0,,#data是正确的。
9.程序状态字寄存器PSW(16页)
(1)PSW的格式:
D7
D6
D5
D4
D3
D2
D1
D0
PSW
Cy
Ac
F0
RS1
RS0
OV
—
P
D0H
(2)PSW寄存器中各位的含义;
Cy:
进位标志位,也可以写为C。
Ac:
辅助进位标志位。
RS1、RS0:
4组工作寄存区选择控制位。
RS1
RS0
所选的4组寄存器
0
0
0区(内部RAM地址00H~07H)
0
1
1区(内部RAM地址08H~0FH)
1
0
2区(内部RAM地址10H~17H)
1
1
3区(内部RAM地址18H~1FH)
P为奇偶标志位:
该标志位用来表示累加器A中为1的位数的奇偶数
P=1,A中1的个数为奇数;
P=0,A中1的个数为偶数。
另:
使用加法指令时,累加器A中的运算结果对各个标志位的影响:
(1)如果位7有进位,则置1进位标志位Cy,否则清0Cy;
(2)如果位3有进位,置1辅助进位标志位Ac,否则清0Ac;
(3)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有,则溢出标志位OV置1,否则清0OV。
即只要位7和位6中有一个进位,而另一个没进位,OV就置1.
10.MCS-51指令系统的七种寻址方式,熟练掌握各寻址方式。
(40页)。
寻址方式
使用的变量
寻址空间
寄存器寻址方式
R0~R7、A、B、C(位)DPTR、AB
4组通用工作寄存区、部分特殊功能寄存器
直接寻址方式
内部RAM128B、特殊功能寄存器
寄存器间接寻址方式
@R1,@R0,SP
片内RAM
@R1,@R0,@DPTR
片外数据存储器
立即寻址方式
#data
基址寄存器加变址寄存器间接寻址方式
@A+DPTR,@A+PC
程序存储器
位寻址方式
内部RAM20H~2FH单元的128个可寻址位、SFR中的可寻址位(85个)
相对寻址方式
PC+偏移量
程序存储器
11.访问MCS-51单片机中:
(1)访问片内RAM应使用MOV指令;
(2)访问片外RAM应使用MOVX指令;
(3)访问程序存储器应使用MOVC指令。
12.MCS-51有5个中断源,2级中断优先级。
5个中断源名称及其中断入口地址分别是什么?
哪些中断源的中断请求标志位在响应中断时由硬件自动清除?
那些中断源的中断请标志位必须使用软件清除?
记住各个中断请求标志位,优先级标志位,触发方式标志位。
(102页—108页)
中断源
入口地址
响应中断时
中断请求标志位
外部中断0
0003H
硬件自动清除
IE0
定时器/计数器T0
000BH
硬件自动清除
TF0
外部中断1
0013H
硬件自动清除
IE1
定时器/计数器T1
001BH
硬件自动清除
TF1
串行口中断
0023H
软件清除
TI或RI
前面4种都是硬件自动清0,串行中断必须使用软件清除,因为串行接收和发送共享串行中断,在中断处理中必须使用T1和R1判断串行接收还是发送中断。
13.MCS-51的串行口为全双工的异步串行通信口,串行口有几种工作方式?
每种工作方式的帧格式和波特率是什么?
串行口有4种工作方式:
SM0
SM1
方式
功能说明
0
0
0
同步异位寄存器方式(用于扩展I/O口)波特率固定,为fosc/12
0
1
1
8位异步收发,波特率可变(有定时器控制)
1
0
2
9位异步收发,波特率为fosc/64或fosc/32
1
1
3
9位异步收发,波特率可变(有定时器控制)
SM0、SM1:
串行口4中工作方式的选择位。
(1)方式0:
帧格式及波特率
…
D0
D1
D2
D3
D4
D5
D6
D7
…
方式1的波特率是固定的,为fosc/12
(2)方式1:
帧格式及波特率
起始位停止位
方式1的波特率为2SMOD/32×定时器T1的溢出率
(3)方式2:
帧格式及波特率
起始位停止位
方式2的波特率为2SMOD/64×fosc
(3)
方式3:
帧格式及波特率
起始位停止位
方式3的波特率为2SMOD/32×定时器T1的溢出率
14.8255A可扩展3个8位并行I/O口(PA口、PB口和PC口),其中PC口具有按位置为/复位功能。
15.系统总线(仅了解)
所谓总线,就是连接计算机各部件的一组控制信号。
MCS-51使用的是哈佛结构,即并行总线结构(程序存储器和数据存储器的空间是截然分开的),按其功能通常把系统总线分为三组:
(1)、地址总线(AddressBus,简写AB)
地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O端口的选择。
地址总线是单向的,只能由单片机向外送出。
地址总线的数目决定着可直接访问的存储单元数目。
MCS-51单片机最多可以扩展64KB,即65536个地址单元,因此,地址总线为16条。
(2)、数据总线(DataBus,简写DB)
数据总线用于单片机与存储器之间或单片机与I/O之间传送数据。
MCS-51单片机是8位字长,所以,数据总线的位数也是8位的。
数据总线是双向的,可以进行2个方向的传送。
(3)、控制总线(ControlBus,简写CB)
控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其它部件传送给单片机的。
15.单片机外部扩展存储器地址分配的方法线选法和译码法。
外部扩展存储器容量大小的确定方法
(1)由该存储器芯片上的地址根数决定,如程序存储器芯片27128有A0—A13共14根地址线,故27128的存储容量=214=16KB;
(2)用存储器芯片型号后面的数字÷8即可得到该芯片的存储容量,如27128的存储容量=128÷8=16KB;
16.存储器扩展的读写控制:
(做最后一题时需要用到)
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。
外扩的RAM的读写控制引脚分别与MCS-51的RD和WR引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM的芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51的PSEN相连。
17.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和八8位数据线,为何不发生冲突?
外接程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于访问程序存储器时是PSEN信号有效,而访问数据存储器时是RD或WR信号有效。
而这些控制信号是由MCS-51执行访问外部外序存储器和或访问外部数据存储器的指令产生,任何时候只能执行1种指令,只产生1种控制信号,所以不会产生数据冲突的问题。
17.8段共阴极数码管的断码如何编写。
(227页)
记两点即可:
(1)共阴极时1为亮0不亮;
(2)abcdef是按照顺时针走的,知道g,dp的位置。
18.单片机晶振频率fosc与机器周期Tcy的关系式:
1Tcy=12/fosc。
19.编程题
(1)循环程序的编写(即延时程序的编写)(94页例4—17)
例4-17、50ms延时程序。
(注:
一条DJNZ指令消耗两个机器周期)
DEL:
MOVR7,#200
DEL1:
MOVR6,#125
DEL2:
DJNZR6,DEL2
MOVR7,DEL1
RET
(2)中断初始化程序的编写(104页例5—1,107页例5—2)
知识点:
(1)中断允许寄存器IE
MCS-51的CPU的中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。
IE的字节地址为A8H,可进行位寻址。
EA
-----
-----
ES
ET1
EX1
ET0
EX0
EA:
中断允许总控制位;ES:
串行口中断允许位;
ET1:
定时器/计数器T1的溢出中段允许位;EX1:
外部中断1中段允许位;
ET0:
定时器/计数器T1的溢出中段允许位;EX0:
外部中断0中段允许位;
注:
当上述值置为0时,表示禁止;置为1时表示允许。
如当ET1=0表示禁止T1溢出中断,ET1=1表示允许T1溢出中断。
(2)中断优先级寄存器P
MCS-51的片内有一个中断优先级寄存器IP,其字节地址为B8H,可位寻址。
------
------
-----
PS
PT1
PX1
PT0
PX0
PS:
串行口中断优先级控制位;
PT1:
定时器T1中断优先级控制位;PX1:
外部中断1中断优先级控制位;
PT0:
定时器T0中断优先级控制位;PX0:
外部中断0中断优先级控制位;
注:
当上述值置为0时,表示定义为低优先级中断;置为1时表示高优先级中断。
例5-1、若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。
请编写出设置IE的相应程序段:
(A)、用位操作指令编写如下程序段:
CLRES;禁止串行口中断
CLREX1;禁止外部中断1中断
CLREX0;禁止外部中断0中断
SETBET0;允许定时器/计数器T0中断
SETBET1;允许定时器/计数器T1中断
SETBEA;CPU开中断
(B)、用字节操作指令来编写:
MOVIE,#8AH
例5-2、设置IP寄存器的初始值,使得MCS-51的2个外中断请求为高优先级,其它中断请求为低优先级。
(A)、用位操作指令编写如下程序段:
SETBPX0;2个外中断请求为高优先级
SETBPX1
CLRPS;串行口、2个定时器/计数器为低优先级中断
CLRPT0
CLRPT1
(B)、用字节操作指令来编写:
MOVIP,#05H
(3)定时/计数器T0或T1在指定工作方式下产生一个定时或者计数的程序编写。
(125页例6—1,130页例6—4)
(4)书中有一道程序编写,但不知是哪一道,所以都找出来了(99页第10题、第11题,117页第9题、14,136页第4题)
4.10试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。
若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。
ORG0000H
MOVR0,#30H
MOVR2,#21H
LOOP:
MOVA,@R0
CJNEA,#0AAH,NOT
MOV51H,#01H
SJMPDEND
NOT:
INCR0
DJNZR2,LOOP
MOV51H,#00H
DEND:
SJMPDEND
4.11试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。
并将查找到的结果存入41H单元。
ORG0000H
MOVR0,#20H
MOVR2,#21H
MOV41H,#00H
LOOP:
MOVA,@R0
CJNEA,#00H,NOTE
INC41H
NOTE:
INCR0
DJNZR2,LOOP
END
5.9编写出外部中断1为跳沿触发的中断初始化程序。
ORG0000H
AJMPMAIN
ORG0013H
AJMPPINT1
ORG0100H
MAIN:
SETBIT1
SETBEX1
SETBEA
HERE:
AJMPHERE
PINT1:
RETI
END
5.14某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。
试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。
ORG0000H
AJMPMAIN
ORG0003H
LJMPPINT0
ORG0100H
MAIN:
SETBIT0
SETBEX0
SETBEA
HERE:
SJMPHERE
PINT0:
PUSHPSW
PUSHA
JNBP1.3,IR3
JNBP1.2,IR2
JNBP1.1,IR1
PINTIR:
POPA
POPPSW
RETI
IR3:
LJMPIR3INT
IR2:
LJMPIR2INT
IR1:
LJMPR1INT
ORG1000H
IR3INT:
LJMPPINTIR
ORG1100H
IR2INT:
LJMPPINTIR
ORG1200H
IR1INT:
LJMPPINTIR
END
6.4采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。
定时1ms后,又转为计数方式,如此循环不止。
假定MCS---51单片机的晶体震荡器的频率为6MHZ,请使用方式1实现,要求编写出程序。
ORG0000H
AJMPMAIN
ORG000BH
LJMPPT0J
ORG0100H
MAIN:
MOVTMOD,#05H;00000001
MOVTH0,#0FFH;X=65436
MOVTL0,#9CH
CLRF0
SETBTR0
SETBET0
SETBEA
HERE:
AJMPHERE
PT0J:
JBF0,PT0D
MOVTMOD,#01H;00000001
MOVTH0,#0FEH;X=65036
MOVTL0,#0CH
SETBF0
RETI
PT0D:
CLRF0
MOVTMOD,#05H
MOVTH0,#0FFH
MOVTL0,#9CH
RETI
END
(5)最后一道大题的程序编写(185页例8—1,189页例8—4)
20.