1. 程式人生 > >用51微控制器編寫一個產生38K方波的程式

用51微控制器編寫一個產生38K方波的程式

/* 遺憾的是不能產生標準38kHz頻率的方波,有點誤差*/ 
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int 
sbit Waveout=P1^0; //P1.0口輸出方波
uchar 
void main()
{
TMOD=0x01; //定時器0方式1 
TH0=0xFF; ///由於晶振是11.0592MHz,每個機器週期約是1.09us,38kHz是26.3us產生一個方波,26.3/1.09需要計數24次,因而TH0=(65536-24)/256=255,即0xff
TL0=0xE8; //TL0=(65536-24)%256=232,即E8
EA=1;

ET0=1;
TR0=1;
while(1); 
}

void T0_time() interrupt 1
{
TH0=0xFF;
TL0=0xE8;
Waveout=!Waveout; 
}