新闻  |   论坛  |   博客  |   在线研讨会
单片机产生频率和输出电压可调的矩形波信号发生器
szyth | 2008-08-15 10:53:25    阅读:5589   发布文章

单片机产生频率和输出电压可调的矩形波信号发生器
#include <reg51.h>
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;
}
 

 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客