NE555方波发生器

基础知识

NE555不需要进行编程,或者与单片机进行通信,它本身就能产生方波。方波的频率可以调节,只要改变电阻电容的值就可以了。

电路原理

NE555方波发生器_第1张图片
NE555方波发生器_第2张图片

方波产生在排针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 
#include 
#include 

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();
}

你可能感兴趣的:(蓝桥杯学习笔记,单片机,嵌入式硬件)