利用定时器to通过p1.0引脚输出周期为10ms的方波,设晶体震荡器频率为12HMZ,用c语言编程
#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;
}
#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;
}