导图社区 单片机基本框架
单片机从硬件到具体软件的学习思维导图。
提示: 本内容由社区用户上传并分享。平台不对内容的真实性、合法性、知识产权归属及是否侵害第三方权利进行事前审核或保证。本内容可能包含受版权保护的图片、字体或其他第三方素材,使用前请自行确认授权范围。
社区模板帮助中心,点此进入>>
安全教育的重要性
电费水费思维导图
D服务费结算
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
材料的力学性能
如何令自己更快乐
头脑风暴法四个原则
思维导图
单片机
1. 单片机结构
1. 内部结构
cpu,ROM,RAM,定时/计数器,串/并行i/O口,震荡/定时电路
2. 存储器
片内ROM(程序)4kb:0000H~0FFFH
片外ROM拓展(64kb):0000H~FFFFH
EA=1时,片内,EA=0时,片外,
ROM几个特殊地址
0000H,复位操作后程序入口
0003H,外中断0程序入口
000BH,定时器0程序入口
0013H,外中断1程序入口
001BH,定时器1程序入口
0023H,串口中断程序入口
片内数据(RAM低128字节)128b:00H~7FH
00H~1FH(32单元):寄存器区
4组,由psw00/01/10/11选择
通用寄存器R0~R7(特指选中的寄存器组里8个单元)
R0,R1作间接寄存器使用
堆栈区(初始sp指07H)
3. 特殊功能寄存器(共21个,高128字节.80H~FFH)
A累加器:自带全零标志Z,A=0时,Z=1(用于JZ)
B,用于乘除法
PSW
4. 时钟和复位电路
外部震荡:信号同步
内部震荡
(时钟)震荡周期:1/f(osc)
状态周期:2*震荡周期
机器周期:12*震荡周期:12/f(osc)
指令周期:(1~4)*机器周期
复位
上电
开关
5. 引脚
2. 指令系统
常用符号
Rn(0~7) Ri(0/1) dir(8位直接字节地址,片内RAM和SFR) #data:二进制B,16进制H,十进制(空白) $:是出现的当前指令的首地址
寻址方式
立即寻址
源操作数前有#都是
直接寻址
直接给出地址(内部数据存储器)
直接使用特殊寄存器的名字,如p0(80H)
寄存器寻址
B在乘除法时寄存器寻址(mul A B),其他为直接寻址
A既可寄存器寻址又可直接寻址,直接时写ACC(push ACC)
寄存器间接寻址 (寄存器里是数据的地址)
R0,R1(内部RAM),(mov A,@Ri)
内部mov
DPTR(外部RAM),(movx A,@DPTR)
外部movx
若外部用Ri,地址低8位在Ri,高8位P2口
变址寻址(ROM)
DPTR+PC+A=操作数地址
只读不写,且目的操作数只能是A(mov A,@A+DPTR/PC)
pc指下一个即将运行的指令
pc不能人为赋值
采用movc(查表)
相对寻址
pc+偏移量=转移的目标地址
rel(8位有符号数)的范围:80H~7FH
位寻址(片内RAM中20H~2FH)
传送和交换指令
传送
外部RAM,只能是A,movx
程序ROM,只能是A,只读不写,读到A里
堆栈操作(内部RAM) (字节操作,直接寻址)
入栈:sp先+1,在把值给新的sp指的地址
出栈:把数据弹出后,sp再减1
复位后SP=07H
内部RAM,只有00H~7FH,不能越界
后进先出
交换
XCH,和其他交换一个字节
XCHD,交换低半字节(低4位)
SWAP,自己高4位和低4位交换
必须有一个操作数是A
算数运算和逻辑运算
对PSW的影响
C(进/借位标志):乘除后,C=0
A
F
RS1,RS2
OV
乘积大于255/除法中B为0时,OV=1
P:A中1的个数为奇时,C=1
指令
ADD,ADDC(借位加)
SUBB(借位减,没SUB)
ANL:逻辑与
ORL:逻辑或
XRL:逻辑异或
自加:INC
自减:DEC
对标志位不影响
十进制调整指令(DA A)
只能作用在A里
对A的专门指令
CLR A(清零) CPL A(按位取反) RL A(左环移1位) RLC A(代进位左环移1) RR A RRC A
乘法:MUL AB(高8位在B,低8位在A)
除法:DIV AB(余数在B,商在A)
控制转移
无条件
长转移
LJMP addr16(标号)
短转移
AJMP addr11(标号) (距离不能超过2kb)
间接转移
JMP @A+DPTR
相对转移
SJMP rel
rel=(目的地址-pc)补
条件
JZ,JNZ
减1不为0,DJNZ (减1,结果回送,再判是否为0)
CJNE A,dir,rel(3字节,pc+rel)
影响C,不影响A和dir的值
绝对转移
调用
调用结束为RET
长调用:LCALL(PC=AS+3)
短调用:ACALL(PC=AS+2)
16位,高5位必须一致,即距离不超过2kb
子程序返回指令RET
中断返回指令RETI
空操作指令
NOP:PC=PC+1,只消耗一个机器周期时间
位操作
对象:C,RAM中20H~2FH字节的地址,SFR中11个
子主题
mov
mov C,bit(不能同时是位)
CLR清零
CPL位取反
SETB(位置1)
3. 程序设计
伪指令
org(定义起始地址)
字节定义:DB
字定义:BW
高位低地址,低位高地址(顺序排列)
保留字节:DS(留空位)
等值指令(EQU)
位定义:标号 BIT 位地址
子程序
ACALL和LCALL
程序分类
顺序
分支
循环
4. 输入输出接口P0~P3
接口
p0口
输入输出口
扩展时,作为低8位地址/数据总线,时分复用
读入时,对其写1
输出接上上拉电阻
p1口
p2口
扩展时,作为高8位地址总线
p3口
第二功能(大部分)
p3.0为RXD,p3.1为TXD,(串口输入R输出T)
p3.2外中断0,p3.3外中断1
p3.4定时器0,p3.5定时器1
p3.6外部拓展写,p3.7外部拓展读
5. 中断系统
中断类型
外0
定0
外1
定1
串行口
IE(中断控制)
总开关EA
EA,,,ES,ET1,EX1,ET0,EX0
TCON(中断标志位及中断方式选择)
TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0
IT为外触方式,1为下降沿,0为低电平
TF为定时器溢出标志位
IP(优先级别控制器)
自然顺序:外0>定0>外1>定1>串行口
PS,PT1,PX1,PT0,PX0
四个阶段
中断请求
人工
中断响应
机器
中断服务
中断返回
RETI
中断编程
流程注意
EA,和小开关
外部中断触发方式选择
预置IP优先级
保护现场
6. 定时/计算器
TMOD(定时器工作方式寄存器)
GATE,C/T,M1,M0,GATE,C/T,M1,M0
C/T:(1/0):C计算,T定时 GATE一般取0 M1M0:工作方式选择
整体赋值,不能位操作
工作方式
方式0
13位
方式1
16位
方式2
8位(还有高8位装初值),非一次性
方式3(仅定0)
一次性
TL0(定时/计算),TH0(定时)
初值的计算
计数
2^n-初值=要计的次数
定时
(2^n-初值)*机器周期=要定的时间,(机器周期=12/fosc)
初值装入
0(13位)
初值高8位入TH0,低5位补零齐入TL0
1(16位)
初值高8位入TH0,低8位入TL0
2(8位)
初值一共8位,同时入TH0和TL0
7. 串行通信
波特率
每秒传送数据的位数
TI发送前清0,发送结束后软件自动置1
RI接收前清0,接收结束后软件自动置1
SCON(串行控制器)
SM0,SM1,SM2,REN,TB8,RB8,TI,RI
SM1,SM0方式选择 REN接收允许位 TI,RI:发,收中断
PCON(只用到最高位SMOD倍增控制位)
SMOD:0不加倍,1加倍
不能位操作,整体赋值
0(8位)
RXD,可发送可接收
TXD输出波特率固定为fosc/12
1(10位)
RXD,仅接收
TXD输出波特率可变,波特率=(2^SMOD/32)*(fosc/(12*(256-初值)))
2(11位)
TXD输出波特率固定为(2^SMOD/64)*fosc
3(11位)
8. 总线与系统扩展