数码管静态显示
使用定时器的方法
- 设置特殊功能寄存器TMOD,配置好工作模式
- 设置计数寄存器TH0和TL0的初值
- 设置TCON,通过TR0置1来让定时器开始计数
- 第四判断TCON寄存器的TF0位,检测定时器溢出情况
TCON——定时器控制寄存器的位分配(地址0x88, 可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
复位值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TCON——定时器控制寄存器的位描述
位 | 符号 | 描述 |
---|---|---|
7 | TF1 | 定时器1溢出的标志, 一旦定时器1发生溢出时硬件置一, 清零有两种方式:软件清零,或者进入定时器中断时硬件清零 |
6 | TR1 | 定时器1运行控制位, 软件置位/清零来启动/停止定时器 |
5 | TF0 | 定时器0溢出标志, 一旦定时器0发生溢出时硬件置1, 清零有两种方式:软件清零, 或者进入定时器中断时硬件清零 |
4 | TR0 | 定时器0运行控制位, 软件置位清零来启动/停止定时(1启动 0停止)器 |
3 | IE1 | |
2 | IT1 | |
1 | IE0 | |
0 | IT0 |
TMOD——定时器模式寄存器的位分配(地址0x89, 不可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | GATE(T1) | C/T(T1) | M1(T1) | M0(T1) | GATE(T0) | C/T(T0) | M1(T0) | M0(T0) |
复位值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TMOD——定时器模式寄存器的位描述
符号 | 描述 |
---|---|
T1/T0 | 标T1的表示控制定时器1的位, 标T0表示控制定时器0的位 |
GATE | 该位置1时为门控位, 仅当'INT0'脚为高并且TR0控制位被置1时使能定时器0, 定时器开始计时, 当该位被清零时, 只要TR0被置1, 定时器0就使能开始计时, 不受单片机引脚INT0外部信号的干扰, 常用测量外部信号脉冲宽度, 这是定时器一个额外功能 |
C/T | 定时器或计数器选择位, 该位被清零时用作定时器功能(内部系统时钟), 被置1作用计数器功能 |
计算TH0的秒数方法:
- (a x 12) / 11059200 = 计算的秒数
- 然后再减 b = 65536 - a, b转16进制就是TH0和TL0的值
IE———中断使能寄存器的位分配(地址0xA8, 可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | EA | —— | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
复位值 | 0 | —— | 0 | 0 | 0 | 0 | 0 | 0 |
IE——中断使能寄存器的位描述
位 | 符号 | 描述 |
---|---|---|
7 | EA | 总中断使能位,相当于总开关 |
6 | —— | ———————————————— |
5 | ET2 | 定时器2中断使能 |
4 | ES | 串口中断使能 |
3 | ET1 | 定时器1中断使能 |
2 | EX1 | 外部中断1使能 |
1 | ET0 | 定时器0中断使能 |
0 | EX0 | 外部中断0使能 |
中断查询序列
中断函数编号 | 中断名称 | 中断标志位 | 中断使能位 | 中断向量地址 | 默认优先级 |
---|---|---|---|---|---|
0 | 外部中断 | IE0 | EX0 | 0x0003 | 1(最高) |
1 | T0 | TF0 | ET0 | 0x000B | 2 |
2 | 外部中断 | IE1 | EX1 | 0x0013 | 3 |
3 | T1 | TF1 | ET1 | 0x001B | 4 |
4 | UART | TI/RI | ES | 0x0023 | 5 |
5 | T2 | TF2/EXF2 | ET2 | 0x002B | 6 |
x * 8 + 3 = 中断向量地址转10进制
IP——中断优先级寄存器的位分配(地址0xB8, 可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | —— | —— | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
复位值 | —— | —— | 0 | 0 | 0 | 0 | 0 | 0 |
IP——中断优先级寄存器的位描述
位 | 符号 | 描述 |
---|---|---|
7 | —— | 保留 |
6 | —— | 保留 |
5 | PT2 | 定时器2中断优先级控制位 |
4 | PS | 串口中断优先级控制位 |
3 | PT1 | 定时器1中断优先级控制位 |
2 | PX1 | 外部中断1中断优先级控制位 |
1 | PT0 | 定时器0中断优先级控制位 |
0 | PX0 | 外部中断0中断优先级控制位 |
CPU 时序有关知识
- 振荡周期
-
有12MHz 和11.0592MHz
-
以12MHz为例:振荡周期为: 1/2 us
-
- 状态周期
-
S = 1/6 us
-
- 机器周期
-
I = 1 us = 12 x T , 也就是一个机器周期等于12个振荡周期, 或者6个状态周期
-
- 指令周期
-
指定周期为1~4 us
-
单片机串口介绍
串口相关寄存器
串口控制寄存器SCON
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
字节地址:98H | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | SCON |
SM0 | SM1 | 方式 | 说明 | 波特率 |
---|---|---|---|---|
0 | 0 | 0 | 移位寄存器 | fosc/12 |
0 | 1 | 1 | 10位异步收发器(8位数据) | 可变 |
1 | 0 | 2 | 11位异步收发器(8位数据) | fosc/64或fosc/32 |
1 | 1 | 3 | 11位异步收发器(9位数据) | 可变 |
SM2 是用来多机通信的控制位
当使用SM2 工作模式就要处于方式2 和方式3
-
当SM2 等于1时:
可以利用收到的RB8来控制是否激活RI,RI是一个接收中断 -
-
当RB8 等于0时:
表示不激活RI, 收到信息就丢弃
-
-
-
当RB8 等于1时:
收到的信息就会进入SBUF 缓冲器当中并激活RI, 从而接收这个数据
-
-
当SM2 等于0时:
无论收到的RB8 等于0 还是等于1 均都可以让数据进入SBUF 缓冲器里 -
当使用多机通信时需要用到RB8 所以需要9位数据
REN 是允许接收位 用软件置1
-
当REN 设置为0 时禁止接收, 当REN设置为 1时可以接收
TB8 是工作在方式2 和方式3的时候是用来发射数据的第九位
RB8 是工作在方式2 和方式3的时候是用来接收数据的第九位
TI 是一个发射中断标志位
-
当方式0 的时候当串型接收第八位结束的时候或者是其他位停止的时候由内部硬件置1,TI 置1 就会向CPU 发送中断请求, 在中断服务程序必须用软件来置0
RI 是接收中断标志位
-
在方式0 的时候, 当串型接收第八位结束的时候或者是其他位停止的时候由内部硬件置1 然后向CPU 发送一个中断申请, 也必须在中断服务程序中置0
电源控制寄存器 PCON
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
字节地址:97H | SMOD | PCON |
方式0
RXD:数据发送和接收
TXD:移位脉冲
方式1(主要使用)
TXD:发送(输出)引脚——输出
-
输出数据的八位(低位到八位)加上起始位和停止位, 一共八位
-
停止位结束后TI 硬件置1, 发送中断完成, 向CPU发送中断的请求, 中断服务函数时我们可以手动将TI置1
RXD:接收(输入)引脚——输入
-
结束接收后RI置1, 需要把RI 置0
先将REN 这个中断使能位置1
-
当RI等于0 时, 且SM2 等于0 ,这是将接收到的9位数据的前八位接收到我们的SBUF当中(单片机串口内部自动完成置1,不需要我们操作)
方式2 3
TXD:发送引脚
RXD:接收引脚
和方式1不同, 他是11位的有9位数据
计算波特率
- 方式0 的波特率 = fosc/12
- 方式2 的波特率 = (2SMOD/64) * fosc
- 方式1 的波特率 = (2SMOD/32) * (T1 的溢出率)
- 方式3 的波特率 = (2SMOD/32) * (T1 的溢出率)
其中 T1 溢出率 = fosc / {12 x [256 - (TH1)]}
标签:定时器,中断,串口,笔记,T1,单片机,寄存器,RI From: https://www.cnblogs.com/xgc030920/p/16821048.html