//头文件 #include <STC8.H> #include 'intrins.h' #define uchar unsigned char #define uint unsigned int

//定义控制命令 char command_1[15] = 'ONA'; char command_2[15] = 'ONB'; char command_3[15] = 'ONC'; char command_4[15] = 'OND'; char command_0[15] = 'ONF'; char temp=0;

//延迟函数 void Delay_ms(uint k) { uchar data i, j, m; for (m = 0; m < k; m++) { nop(); nop(); nop(); i = 11; j = 190; do { while (--j); } while (--i); } }

//串口初始化函数 void UartInit(void) { PCON &= 0x7F; SCON = 0x50; AUXR &= 0xBF; AUXR &= 0xFE; TMOD &= 0x0F; TMOD |= 0x20; TL1 = 0xFD; TH1 = 0xFD; ET1 = 0; TR1 = 1; }

//串口发送函数 void UartSend(char dat) { SBUF = dat; while (!TI); TI=0; }

//串口发送字符串函数 void UartSendStr(char *p) { while (*p) { UartSend(*p++);// 发送数据 } }

//主函数 void main() { UartInit(); //串口初始化 ES = 1; //开启串口中断 EA = 1; //开启总中断 while (1) { Delay_ms(10); //延迟10ms } }

//串口接收中断函数 void UART_Interrupt() interrupt 4 {

  uint m = 300;
  uint n = -300;
    while (!RI);

    RI = 0; // 清除接收中断标志位
   temp = SBUF; 
      

   UartSend(temp);// 读取接收到的数据
    if(temp == '0')
		{
				UartSendStr(command_0); //发送控制命令
		}
		
		 if(temp=='1')
		{
				UartSendStr(command_1); //发送控制命令
		}
		  
		 if(temp=='2')
		{
				UartSendStr(command_2); //发送控制命令
		}
		
		  if(temp=='3')
		{
				UartSendStr(command_3); //发送控制命令
		}
		
		  if(temp=='4')
		{
				UartSendStr(command_4); //发送控制命令
		}

}


原文地址: http://www.cveoy.top/t/topic/oTdC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录