单片机知识点总结.docx
《单片机知识点总结.docx》由会员分享,可在线阅读,更多相关《单片机知识点总结.docx(15页珍藏版)》请在冰点文库上搜索。
单片机知识点总结
单片机考点总结
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。
(3)
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
(4)
方式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、