串口通讯原理

    技术2024-04-22  286

    #include<reg52.h>#define uchar unsigned char#define uint unsigned int/*由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发声,发4时关闲蜂鸣器。*/sbit beep=P2^3;uchar num,val,count;void  init(){ TMOD=0x21; TH1=0xfd; TL1=0Xfd; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ES=1; ET0=1; SM0=0; SM1=1; REN=1;// ET1=1; TR0=0; TR1=1;}

    void main(){ init(); while(1) {  switch(val)  {   case 1:    num=8;    TR0=1;    break;   case 2:    num=4;    TR0=1;    break;   case 3:    num=2;    TR0=1;    break;   case 4:    beep=1;    TR0=0;    break;   default:    break;  } }

    }

    void ser() interrupt 4{ val=SBUF; RI=0;}

    void time0() interrupt 1{ TH0=(65535-50000)/256; TL0=(65535-50000)%256; count++; if(count==num) {  count=0;  beep=~beep; }}

    最新回复(0)