1.中断
基础51单片机有5个中断源,增强型52系列增加了一个定时计数器2,共有6个中断源。其中包含两个外部中断源,其余为内部中断源
51单片机中断部分流程如下:
①检测对应中断源标志位
②检测对应中断开关是否打开
③检测总中断是否打开
④查询是否有优先级更高或同优先级中断正在执行
⑤有高优先级或同级,等待其执行完毕进行中断;无高优先级和同级,直接进行中断
中断控制相关寄存器
中断控制主要由两方面:
A: 是否允许中断
B:中断的优先级设置 EA :中断总控开关 : 1-CPU开中断,0-关闭
低电平和下降沿触发的区别
①触发条件不同
低电平触发:低电平触发后一直处于中断状态
下降沿触发:检测到信号有下降沿时就触发开关动作,
②触发次数不同
低电平触发:只要引脚为低电平时间内中断一直有效,就会一直进入中断,直到变为高电平
下降沿触发:下降沿触发只触发一次,只在下次电平发生变化时才重新触发中断
配置外部中断:
1.开启总中断 : EA
2.开启外部中断 : EX0/1
3.设置中断触发方式: IT0
4.编写中断服务程序
2.串口
51单片机的UART
STC89C52有一个UART
STC89C52的UART有四种工作模式:
模式0: 同步移位寄存器
模式1: 8位UART,波特率可变(常用)
模式2:9位UART,波特率固定
模式3:9位UART,波特率可变
模式图
SUBF: 串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址。 写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器
常用通信接口比较
UART参数及时序图
串口和中断
串口相关寄存器
SUBF: 串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址。 写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器
3.定时器
STC89C52定时器资源
1.定时器个数三个(T0,T1,T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源
注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。
框图
定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号每隔“一秒”,计数单元的数值就加以,当计数单元数值增加到“设定的闹钟提醒时候”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使得程序跳转到中断服务程序
STC89C52的T0和T1均由四种工作模式
模式0:13位定时器/计数器
模式1:16位定时器/计数器(常用)
模式2:8位自动重装载模式
模式3:两个8位计数器
模式一的框图
Sysclk : 系统时钟,即晶振周期,本开发板上的晶振为12MHZ C/T = 0 ->定时器, C/T =1 -> 计数器
定时器相关寄存器
1.寄存器是连接软硬件的媒介 2.在单片机中寄存器就是一段特殊的RAM存储器,一方面,寄存器可以存储和读取数据,另一方面,每一个寄存器背后都连接了一根导线,控制着电路的连接方式。 3.寄存器相当于一个复杂机器的”操作按钮”
中断资源
1.中断源个数: 8个(外部中断0,定时器0中断,外部中断1,定时器1中断,串口中断,外部中断2,外部中断3)
2.优先级个数: 4个
注意: 中断的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的中断资源,例如中断源个数不同,中断优先级个数不同等等。