89C51单片机控制定时器0、1分别输出5kHz和2.5kHz的方波
1.proteus仿真图
2.keli代码
#include <reg51.h>
sbit sig1=P1^0;
sbit sig2=P1^1;
//定时器中断0控制程序
void Time0test() interrupt 1
{
sig1=~sig1;
}
//定时器中断1控制程序
void Time1test() interrupt 3
{
sig2=~sig2;
}
int main()
{
EA=1; //全局中断使能
ET0=1; //定时器0中断使能
ET1=1; //定时器1中断使能
TR0=1; //定时器0使能
TR1=1; //定时器1使能
TMOD=0x22; //定时器0、1都采用方式2计数,可自动再装入8位计数器,当TLx计数溢出时,THx内容自动装入TLx
TH0=(256-50)%256; //定时器0计数50次,机械周期为2us,周期T0=50*2us*2=0.2ms,频率f0=1/T0
TH1=(256-100)%256; //定时器1计数100次,机械周期为2us,周期T1=100*2us*2=0.4ms,频率f1=1/T1
sig1=0;
sig2=0;
while(1)
{
}
}