main3.c

来自「zigbee coding donot miss it」· C语言 代码 · 共 98 行

C
98
字号

#include <reg52.h>

/***************Function prototype declaration**************/
void comm_init(void);
void delay(unsigned long );
void check_rx_data(void);
/***************TIMER0 INTERRUPT SERVICE ROUTINE**************/

unsigned char rx_data=0;
bit receive_bit=0;
bit valid_data=0;

void main()
{
	unsigned char i=0;
	P2=0x00; 
	delay(5000);
	comm_init();
 	

 while(1)
 {
 	if(receive_bit)
	{
  	 receive_bit=0;
	 check_rx_data();
	}
 }

} 

void comm_init(void)
{
	TMOD  =   0x20;
	SCON  =   0x50;
	REN=1;
	IE    =   0x90;
    EA=1;
	TH1   =   0xFD; // 9600 baud rate
	TL1   =   0xFD; 
	TR1   =   1;
}
 

void serial_isr() interrupt 4 using 3
{ 

     if(RI)
     {
	   RI=0;
	   rx_data=SBUF;
	   receive_bit=1;
     }
}
 


void delay(unsigned long t)
{
	while(t--);
}



void check_rx_data(void)
{
	    valid_data=0;	   
	    switch(rx_data)
		{
			case '0':
			P2=0x00;
			valid_data=1;
			break;

			case '1':
			P2=0x01;
			valid_data=1;
			break;

			case '2':
			P2=0x02;
			valid_data=1;
			break;

			case '3':
			P2=0x04;
			valid_data=1;
			break;

			case '4':
			P2=0x08;
			valid_data=1;
			break;
		}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?