专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

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

作者:佚名   来源:本站原创   点击数:  更新时间:2013年06月15日   【字体:

#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;

 

关闭窗口

相关文章