文章目录
前言
学习使用的MCU是:STC89C52RC
C51基础:
常用头文件:
intrins.h:移位函数
C51(C语言)和ASM51(汇编)
C51数据类型:
keil软件的基本配置:
51单片机的定时器和中断系统:
定时器:
STC89C52系列单片机的定时器/计数器有四种工作模式,我们最常用的就是模式1:16位定时器/计数器。
使用定时器的流程:
(1)一般需要先设置工作模式定时器TMOD(Timer mode)
以定时器0举例:
(2)再设置定时器控制寄存器TCON(Timer control)
定时器代码解读:
void Timer0_Init() //1毫秒@12.000MHz 初始化
{
//AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x18; //设置定时初始值
TH0 = 0xFC; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //
EA = 1; //
PT0 = 0; //
}
中断:
C51常用库函数:
常见数字电路的逻辑门:
定时器Timer:
定时器可划分三部分:时钟、计数单元、中断系统
定时器工作模式TMOD:
定时器计数单元:
定时器时钟:
SYSclk:定时器时钟,即晶振周期。
12MHz晶振:频率的单位是赫兹,用Hz表示,含义就是1秒钟振荡多少次。12MHz = 12,000,000Hz,也就是1秒振荡一千二百万次。晶振12MHz可以产生12个机器周期,起到一个定时作用。12MHz晶振用途非常广泛,常见于一般低速单片机。
STC89C52系列单片机的定时器有两种计数速率:-种是12T模式,每12个时钟加1,与传统8051单片机相同;另外–种是6T模式,每6个时钟加1,速度是传统8051单片机的2倍。
中断系统Interrupt:
中断资源:
定时器相关寄存器:
串口通讯:
24C02:是E2PROM
I2C总线:
D/A转换器:
AD:
PWM:
频率=1/Ts
占空比=Ton/Ts
精度=占空比变化步距