利用定时器to通过p1.0引脚输出周期为10ms的方波。设晶体震荡器频率为12mhz,用c语言编程。

利用定时器to通过p1.0引脚输出周期为10ms的方波,设晶体震荡器频率为12HMZ,用c语言编程

img

#include "REG52.h"
sbit k0=P1^0;
void ZhongDuanSheZhi()
{
    TH0+=(65536-5000)/256;/*定时器赋初值,12定时50ms触发中断,自动补偿方式*/
    TL0+=(65536-5000)%256;    
    TMOD=0X01;//16位定时器/计数器
    TR0=1; //启动定时器T0。
    ET0=1; //开启定时器
    EA=1; //全局中断开关
}
void main()
{
    ZhongDuanSheZhi();
    while(1)
    {}
}
void ZhongDuan() interrupt 1
{
k0=~k0;    
    TH0+=(65536-5000)/256;/*定时器赋初值,12定时10ms触发中断,自动补偿方式*/
    TL0+=(65536-5000)%256;    
}

img


#include "REG52.h"
sbit outsig=P1^0;
void timer_init()
{
    TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;    
    TMOD=0x01;
    TR0=1; //启动定时器T0。
    ET0=1; //开启定时器
    EA=1; //全局中断开关
}
void main()
{
    timer_init();
    while(1)
    {}
}
void timer_int() interrupt 1
{
    outsig=~outsig;    
    TH0+=(65536-5000)/256;
    TL0+=(65536-5000)%256;    
}