由上位機發送1給單片機時,蜂鳴器以400ms頻率發聲 明天再調鬱悶

/*1.由上位機發送1給單片機時,蜂鳴器以400ms頻率發聲
,發2時以200ms頻率發聲,
發3時以100ms頻率發聲,
發4時關閒蜂鳴器 
頻率 11.0592M HZ
0011 0001 49(十)    31(16)          1
0011 0010 50        32          2
0011 0011 51        33         3

*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint num;
uint temp;//用於記錄num的變化
uchar a;
sbit buzzer=P2^3;
void main()

 TMOD=0x21;//定時器T1選擇工作方式2
 TH1=0xfd;
 TL1=0xfd;//定時器T1裝初值
 TR1=1;
 REN=1;//SOCN中開串行接受
 SM0=0;
 SM1=1;//SCON中設定定時器工作方式爲1
 EA=1;
 ES=1;//IE中開串行口中斷
 
 buzzer=0;
 num=0;
 temp=0;
 TH0=(65536-45972)/256;
 TL0=(65536-45872)%256;
 ET0=1;
 TR0=1;

 while(1)
 {
  switch(a)
  {
   case '1':
    temp++;
    if(temp==4)
     { 
      temp=0;
      buzzer=~buzzer;
     }
    break;
   case '2':
    num++;
    temp++;
    if(temp==2)
     { 
      temp=0;
      buzzer=~buzzer;
     }
    break;
   case '3':
    num++;
    temp++;
    if(temp==1)
     { 
      temp=0;
      buzzer=~buzzer;
     }
    break;
   default: break; 
  }
 }
 
}
void ser() interrupt 4
{
 RI=0;
 a=SBUF;
}
void enter0() interrupt 1//50ms
{
 TH0=(65536-45872)/256;
 TL0=(65536-45872)%256;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章