试用单片机的定时方式产生频率为100 KHV的等宽举行方波,假设单片机的时钟频率为12 MHV.编程实现?

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:56:45
关于单片机的!急啊~

#include <reg51.h>
#include<intrins.h>

#define int unsigned uint
uint maikuan;
main(void)
{ maikuan=50000; //设置晶振为12MHZ时,脉宽为50ms
TMOD=0x01; //设置定时器0为工作方式1
TH0=(65536-maikuan)/256; //装初值
TL0=(65536-maikuan)%256;
EA=1; //开启总中断
ET0=1; //开启定时器0中断
TR0=1; //启动定时器0
while(1)
{
if(P2==0)
{maikuan=20000;}
};
}
void T0_time() interrupt 1
{
TH0=(65536-maikuan)/256; //重装初值
TL0=(65536-maikuan)%256;
P0=~P0; //方波
}