设MCS51单片机的晶振频率12MHz,请编程使得P1.0端输出频率为20kHz的方波 C51编

如题所述

20KHz,周期T=50us,半周期 t=25us;标准51单片机,12MHz晶振,机械周期为 1us,足以满足25us需求。使用定时器定时 25us,每次中断取反输出(P1.0)。
小贴士:25us时间短,可以采用定时器的 8位自重装模式,程序就不需要在中断中继续赋初值了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-27
#include<reg51.h>
sbit out = P1^0;
void main()
{
TMOD = 0x01;
TH0 = (65536 - 50000)/256;
TL0 = (65536-50000)%256;
ET0 = 1;
EA = 1;
TR0 = 0;
while(1)
{
out = ~out;
}
}

void Timer() interrupt 1
{

TH0 = (65536 - 50000)/256;
TL0 = (65536-50000)%256;
}
采用定时器0 ,16位。标准51单片机,12MHz晶振,机械周期为 1us。赋给初值。每次到50us时,中断函数执行完后,回到主函数中执行取反。从而完成