?? 門鈴發生器.txt
字號:
//MCU:AT89S52
//晶振:12M
#include "AT89X52.H"
unsigned char time_500hz;
unsigned char time_700hz;
unsigned int tcount;
bit stop;
bit flag;
void main(void)
{
unsigned char i,j;
TMOD=0x02; //使用定時器0,選擇方式2(常數自動重裝的8位定時器)
TH0=0x06; //保存數值,用于自動重裝
TL0=0x06; //定時250uS初值
TR0=1; //開定時器0
ET0=1; //開定時器0溢出中斷
EA=1; //開總中斷
P2_6=0;
while(1)
{
if(P2_0==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P2_0==0)
{
time_500hz=0;
time_700hz=0;
tcount=0;
flag=0;
stop=0;
TR0=1;
while(stop==0);
}
}
}
}
/********250uS中斷服務程序*************/
void t0(void) interrupt 1 using 0
{
tcount++;
if(tcount==2500)
{
tcount=0;
if(flag==0)
{
flag=~flag;
}
else
{
stop=1;
TR0=0;
}
}
if(flag==0)
{
time_700hz++;
if(time_700hz==3)
{
time_700hz=0;
P2_6=~P2_6;
}
}
else
{
time_500hz++;
if(time_500hz==4)
{
time_500hz=0;
P2_6=~P2_6;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -