![]() |
發布時間: 2016-12-11 22:53
正文摘要:本帖最后由 Mak 于 2016-12-11 22:55 編輯 以上是題目: 以下是我寫的程序,下載到單片機后馬上就會響; 按復位鍵后不響了,但是發送完一個數之后,再輸入另一個數發送,蜂鳴器還是那個聲音。 再按復 ... |
#include<reg52.h> sbit beep=P2^3; unsigned char flag1,flags,num,a,hz; void init() { TMOD=0x21; TH1=0xfd; TL1=0xfd; TH0=(65535-50000)/256; TL0=(65535-50000)%256; SM0=0; SM1=1; REN=1; EA=1; ES=1; ET0=1; // ET1=1; TR0=0; TR1=1; } void main() { init(); hz=1; TR0=0; while(1) { if(flags==1) { //EA=0; flags=0; // TR0=0; TR0=1; switch(a) { case '1':hz=8;break; case '2':hz=4;break; case '3':hz=2;break; case '4':TR0=0;break; default: TR0=0; break; } //TR0=1; // EA=1; } } } void serial_port() interrupt 4 { RI=0; a=SBUF; flags=1; P1=a; //LED燈觀察 SBUF=a; //將數送回上位機觀察 while(!TI); TI=0; } void timer0() interrupt 1 { TH1=(65535-50000)/256; TL1=(65535-50000)%256; num++; if(num==hz) { num=0; beep=~beep; } } |