1、寄存器总结
1.1 常用 SFR 汇总表格
1.2、TCON(定时器控制寄存器)
2、中断总结
2.1 外部中断
3、IO端口总结
1、寄存器总结
| SFR类别 |
寄存器 |
功能 |
| 定时器/计数器 |
TCON |
定时器控制 |
| 定时器/计数器 |
TMOD |
定时器模式设置 |
| 中断系统 |
IE |
中断允许控制 |
| 中断系统 |
IP |
中断优先级设置 |
| 串行通信 |
SCON |
串口控制 |
1.2、TCON(定时器控制寄存器)
1.TCON寄存器的中断请求标志位
| 位符号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
| 位地址 |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
| (1) IT0:外部中断0触发方式,IT0=0为低电平触发方式,IT0=1为下降沿触发方式。IT1与之类 似。 |
|
|
|
|
|
|
|
|
| (2)IE0:IE0=1表示外部中断0正在向CPU申请中断。IE1与之类似。 |
|
|
|
|
|
|
|
|
| (3)TF0:TF0=1表示向CPU申请中断。TF1与之类似。 |
|
|
|
|
|
|
|
|
| (4)当MCS-51系统复位后,TCON各位被清"0"。 |
|
|
|
|
|
|
|
|
1.3、TMOD(定时器方式控制寄存器)
(1)TMOD用于控制定时器/计数器的工作模式及工作方式
(2)低4位用于决定T0的工作方式,高4用于决定T1的工作方式,M1和M0用来确定所选工作方式
(3)C/T:C/T=1计数工作方式,C/T=0定时工作方式。
(4)定时器/计数器的4种工作方式
下表为51单片机定时器/计数器M1、M0组合对应的工作模式、功能与最大计数值:
| M1 M0 |
工作方式 |
功能 |
最大计数值 |
| 0 0 |
方式0 |
13位计数器,由THx(x=0、1)的8位和TLx的低5位构成 |
M = 2 13 = 8192 M=2^{13}=8192 M=213=8192 |
| 0 1 |
方式1 |
16位定时器/计数器,由THx和TLx构成 |
M = 2 16 = 65536 M=2^{16}=65536 M=216=65536 |
| 1 0 |
方式2 |
可自动重装初值的8位计数器,TLx用作计数器,THx保存计数初值。一旦计数器计满溢出,初值自动装入,继续计数,重复不止 |
M = 2 8 = 256 M=2^{8}=256 M=28=256 |
| 1 1 |
方式3 |
仅适用于T0,分为两个8位计数器,T1停止计数 |
M = 2 8 = 256 M=2^{8}=256 M=28=256 |
该表格是 TMOD 定时器模式寄存器 8 位分布:
| D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
| GATE |
C/T |
M1 |
M0 |
GATE |
C/T |
M1 |
M0 |
51单片机中断系统与IO端口完整详解
一、中断系统
1.1 中断基础概念
- 中断:CPU正常执行程序时,内部/外部产生事件请求处理,CPU暂停当前程序,跳转至中断处理程序;处理完成后返回原程序断点继续运行。
- 中断服务程序:CPU响应中断后执行的专用处理子程序。
- 中断嵌套:CPU正在处理低优先级中断时,收到更高优先级中断请求,会暂停当前中断服务,优先处理高优先级任务;MCS-51单片机最多支持二级中断嵌套。
1.2 51单片机五大中断源
中断源是产生中断请求的信号来源,51子系列共有5路中断源:
- I N T 0 ‾ \overline{INT0} INT0 外部中断0:P3.2引脚输入,低电平/下降沿触发
- I N T 1 ‾ \overline{INT1} INT1 外部中断1:P3.3引脚输入,低电平/下降沿触发
- T0 定时器0溢出中断:计数溢出触发,外部计数脉冲由P3.4输入
- T1 定时器1溢出中断:计数溢出触发,外部计数脉冲由P3.5输入
- TX/RX 串行口中断:串口发送/接收完成触发,TX对应P3.1、RX对应P3.0
1.3 IE 中断允许寄存器
IE寄存器位分布
| 位序号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
| 位符号 |
EA |
— |
ET2 |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
寄存器功能说明
- EA:中断总开关控制位
- EA=0:全局关闭所有中断,任何中断请求都无法响应
- EA=1:打开总中断,各中断源单独由对应位控制开启/关闭
- ET2、ES、ET1、EX1、ET0、EX0:分别对应定时器2、串口、定时器1、外部中断1、定时器0、外部中断0的独立中断允许位。
1.4 IP 中断优先级寄存器
IP寄存器位分布
| 位序号 |
D7 |
D6 |
D5 |
D3 |
D2 |
D1 |
D0 |
| 位符号 |
— |
— |
— |
PS |
PT1 |
PX1 |
PT0 |
寄存器功能说明
- PS:串行口中断优先级控制位
- PS=1:串口中断设为高优先级
- PS=0:串口中断设为低优先级
- PT1、PX1、PT0、PX0 逻辑与PS一致,分别控制定时器1、外部中断1、定时器0的优先级。
- 中断优先级由用户通过IP寄存器自由配置。
硬件默认中断查询优先级表
| 中断源 |
中断名称 |
中断矢量地址 |
中断号 |
硬件查询优先级 |
| IE0 |
外部中断0 |
0003H |
0 |
最高 |
| TF0 |
定时器0溢出中断 |
000BH |
1 |
次之 |
| IE1 |
外部中断1 |
0013H |
2 |
次之 |
| TF1 |
定时器1溢出中断 |
001BH |
3 |
次之 |
| TI/RI |
串行口收发中断 |
0023H |
4 |
最低 |
二、IO端口系统详解
2.1 四路IO端口总对比表
| 端口 |
第二功能 |
内部上拉电阻 |
是否外接上拉电阻 |
主要用途 |
| P0 |
地址/数据复用总线(A0~D7) |
无 |
需要 |
外部存储器扩展、总线外设通信 |
| P1 |
无专用第二功能 |
有 |
不需要 |
普通通用IO(LED、按键等外设) |
| P2 |
高8位地址输出(A8~A15) |
有 |
不需要 |
外部扩展存储器高位地址输出 |
| P3 |
串口、中断、存储器读写控制 |
有 |
不需要 |
串口通信、外部中断、WR/RD控制 |
2.2 P0口(引脚32~39,字节地址80H)
- 硬件特性:8位双向三态I/O口,无内部上拉电阻。
- 两种工作模式
- 总线模式:扩展外部存储器时,复用输出低8位地址、传输8位数据;
- 通用IO模式:作为普通IO输出时,必须外接上拉电阻才能输出高电平,支持双向输入输出。
2.3 P1口(引脚1~8,字节地址90H)
- 硬件特性:准双向通用IO口,自带内部上拉电阻。
- 输入操作规范:读取引脚电平前,需要先向端口锁存器写入
0xFF(全部置1),才能正确读取外部输入电平。
2.4 P2口(引脚21~28,字节地址A0H)
- 硬件特性:双功能I/O口,自带内部上拉电阻。
- 核心功能:扩展外部存储器时输出高8位地址A8~A15;无总线操作时可作为普通IO使用。
2.5 P3口(引脚10~17,字节地址B0H)
- 硬件特性:双功能I/O口,自带内部上拉电阻。
- 两种工作模式
- 模式1:普通通用IO口,读写逻辑同P1、P2;
- 模式2:复用第二功能,承载串口收发、外部中断、定时器计数、存储器读写控制等外设信号。
三、配套定时器SFR寄存器汇总
3.1 常用SFR总表
| SFR类别 |
寄存器 |
功能说明 |
| 定时器/计数器 |
TCON |
定时器运行、溢出标志控制 |
| 定时器/计数器 |
TMOD |
定时器工作模式配置 |
| 中断系统 |
IE |
中断全局/单独允许控制 |
| 中断系统 |
IP |
中断优先级高低配置 |
| 串行通信 |
SCON |
串口收发模式、标志控制 |
3.2 TCON 定时器控制寄存器位定义
| 位符号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
| 位地址 |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
3.3 TMOD 定时器模式寄存器位分配
| D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
| GATE |
C/T |
M1 |
M0 |
GATE |
C/T |
M1 |
M0 |
3.4 M1、M0组合定时器工作模式
| M1 M0 |
工作方式 |
功能描述 |
最大计数值 |
| 0 0 |
方式0 |
13位计数器,THx高8位 + TLx低5位 |
M=2^13=8192 |
| 0 1 |
方式1 |
16位定时器/计数器,完整THx+TLx |
M=2^16=65536 |
| 1 0 |
方式2 |
8位自动重装初值计数器,溢出后THx初值自动载入TLx |
M=2^8=256 |
| 1 1 |
方式3 |
仅T0支持,拆分为2路独立8位计数器;T1停止计数 |
M=2^8=256 |
所有评论(0)