1 .NE555数据手册的使用
NE555 features:
工作电压:4.5V-16V(SE555 maximum is 18V)
板子实际图:
说明:通过电容的充放电,trig检测电压超过1/3vcc输出高电平。THR检测电压超过阈值2/3VCC输出低电平 利用th=0.693*(R8+RB3)计算充电时间,
tl=0.693*(R8)计算放电时间,
周期: T=th+tl;
频率: f=1/T; 占空比:th/T
RB3越大,频率越小。
2 NE555频率测量(定时器0计数模式)
a.STC15F2K60S2datasheet:
我们在目录查看 在467页有定时器0 的有关信息;
先看与定时器0,1有关的寄存器:
TCON控制寄存器:
说明:TCON可以位寻址,与定时器0有关的是 TF0,TR0,IE0,IT0,其中TF0是由可以用硬件置位的,不用管。
IE0,IT0是外部中断源,也用不到,所以只考虑TR0即可,
TR0 : 1---开始计数, 0---停止计数
TMOD工作模式配置寄存器:
说明: TMOD.3/ 1---只有INTO引脚为高电平时,才开启定时器/计数器0。
TMOD.2/ 1---定时器0用作计数器,(对引脚P3.4进行外部脉冲计数)
TMOD.1/TMOD.0
0 0 16位自动重装定时器,溢出时RL_TH0,RL_TLO存放的值自动重装入TH0,TL0中。
0 1 16位不可重装载模式,TL0,TH0全用。
1 0 8位自动重装载定时器,当溢出时TH0存放的值自动放入TL0中。
1 1 不可屏蔽的16位自动重装定时器。
利用定时器0的计数器功能, TMOD寄存器:
bit3: 1--计数器,0---定时器,
通过P34进行外部脉冲计数 bit0-1 : 00 16位自动重装定时器,超过自动装入 01 16位不自动重装 10 8位自动重装 11 定时器计数器无效
AUXR辅助寄存器:
定时器0和定时器1的中断控制寄存器:
定时器2,3,4的中断控制器:
AUXR说明:用来配置T0,T1定时器速度,T2使能和速度,串口0速度,串口1波特率发生器。
这是我们要用的模式:
我们要配置定时器0的工作模式为:16位不可重装载模式,计数器模式 。
给TH0,TL0赋初值0,开启定时器(TR0=1)
计数器0配置代码:
cpp
void Counter0_Init(void)
{
TMOD|=0X50; XXXX X101
TH0=0;
TL0=0;
TR0=1;
}
测量频率配置代码:
也就是测量,1s内有多少个脉冲,频率就是多大
cpp
//减少测量时间,加快刷新频率,100ms刷新一次,再搁里面*10仍然是1s的频率
//但是这样会很抖
void NE555_Process(void)
{
ne555_cnt++;//ne555_cnt也为16位
if(ne555_cnt>=100)//把函数在中断里面运行,刚好100ms
{
ne555_cnt=0;
freq=(TH0<<8)|TL0*10;//freq为16位
TH0=0;
TL0=0;
}
}
2025蓝桥杯(单片机)备赛--扩展外设之DS1302的使用(九)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--PCF8591(八)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--AT24C02(七)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设控制之DS18B20(六)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之共阳数码管(四)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之继电器和蜂鸣器(三)-CSDN博客