sbit?wave=p1^0;
作廢?SetupTimer0()
{
TMOD?& amp=?0XF0?//只保留T1信息。
TMOD?|=?0X02?//設置T0:?定時功能,模式2,自動重載8位定時器/計數器。
TH0?=?256-250;//定時每隔0.25毫秒中斷壹次
TL0?=?256-250;
TR0?=?1;//啟動計時器
ET0?=?1;//定時器0中斷打開
}
?
數據?未簽名?夏爾?us250
數據?未簽名?int?ms;
比特?揮手;//用來記憶波的當前狀態。
作廢?定時器0_ISR()?打斷?1?//定時中斷服務程序,為消除按鍵抖動提供服務。
{
如果?(++ us 250 & lt;4)?返回;?
us 250 = 0;?++ ms;
如果?(ms & lt10)?返回;
//波形每10ms變化壹次,20ms完成壹個波形,所以波形為50Hz。
ms = 0;
WAVE = ~ WAVE?波=波;//方波輸出
}
作廢?主()
{?
us 250 = ms = 0;
WAVE = WAVE = 0;
setup timer 0();
EA?=?1;//全局中斷開啟
while(1);//在中斷函數中實現方波輸出。
}