×
单片机 > 单片机程序设计 > 详情

单片机产生频率和输出电压可调的矩形波信号发生器

发布时间:2020-05-26 发布时间:
|
#include  

typedef unsigned char uchar; 
sbit signal=P3^0; 
uchar counter; 
void main(void) 

    TR0=0;                   //禁止T0 
    TMOD=0x11;               //T0和T1均选择工作方式1,16位定时器 
    TH0=-1000/256;           //定时时间为50ms 
    TL0=-1000%256;            
    signal=0;                //开始时输出为低电平 
    counter=0;               //初始化T1的中断次数为0 
    EA=1;                    //使能CPU中断 
    ET0=1;                   //使能T0溢出中断 
    ET1=1;                   //使能T1溢出中断 
    TR0=1;                   //T0开始运行,注意,T1不能现在运行 
    while(1)                 //无限循环 
    {} 

void isr_t0(void) interrupt 1   //T0中断服务函数 
{    
    TH0=-50000/256;          //装定时器,定时时间为50ms 
    TL0=-50000%256; 
    counter++;               //中断次数 
    if(counter==2)           //若已中断两次,说明已经过去100ms 
    { 
        counter=0;           //中断次数归零 
        signal=1;            //产生矩形波中的高电平 
        TR1=1;               //开始计数T1 
    } 
}

//***********T1中断函数****** 
void isr_t1(void) interrupt 3  

{    
    signal=0;                //矩形波中的低电平 
    TR0=0;                   //禁止T1计数,等待T0将其唤醒 
    TH1=-25000/256;          //25ms中断初值 
    TL1=-25000%256; 

关键字:单片机  电压可调  矩形波  信号发生器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法