基础知识
NE555不需要进行编程,或者与单片机进行通信,它本身就能产生方波。方波的频率可以调节,只要改变电阻电容的值就可以了。
电路原理
方波产生在排针J3的15(SIGNA)脚上,方波的频率通过Rb3电位器进行调节的
P34是一个特殊的计数器,每个下降沿来临+1,可以统计方波的下降沿,通过对下降沿个数的判断,就能知道此时方波的频率。
计数器来自单片机的外部引脚,计数器0(T0)为P34,T2为P31,T3为P07,P4为P05。计数器的配置类似于定时器
获得计数器1s后TH0和TL的值,就可以得到外部脉冲的频率。
NE555频率测量编程
void Conuter2_init()
{
TMOD |=0X05;
TL0=0;
TH0=0;
TR0=1;
}
#include <STC15F2K60S2.H>
#include <SYSTEM.H>
#include <SMG.H>
u16 cnt_ne555;
u16 temp_ne555;
void NE555_process()
{
cnt_ne555++;
if(cnt_ne555==1000)
{
cnt_ne555=0;
temp_ne555=(TH0<<8)|TL0;
TL0=0;
TH0=0;
}
}
void smg_process()
{
smg_code[0]=t_display[temp_ne555/10000];
smg_code[1]=t_display[temp_ne555/1000%10];
smg_code[2]=t_display[temp_ne555/100%10];
smg_code[3]=t_display[temp_ne555/10%10];
smg_code[4]=t_display[temp_ne555%10];
smg_code[5]=0;
smg_code[6]=0;
smg_code[7]=0;
}
//数码管显示NE555电压值
void main()
{
system_init();
Timer2Init();
Conuter2_init();
while(1)
{
smg_process();
}
}
void t2int() interrupt 12 //中断入口
{
smg_display();
NE555_process();
}