rs485rxd.c

来自「基于51单片机」· C语言 代码 · 共 57 行

C
57
字号
 /***********************************************
                从机
**********************************************/
#include<reg52.h>
#define uchar unsigned char
sbit led = P1^2;
sbit EN = P1^1;
uchar uart_table[]={0
}; 


void serial () interrupt 4   //接收采用中断
{
   if(RI)
    {  
       uchar uart_data,i,k;
       static uchar num = 0;
       RI=0;
       uart_data=SBUF;
       led = 0;         //接受点亮灯 
       if(num  == 0)
      {
          k=uart_data;      //字节长度处理
       for(i=0;i<k;i++)
        {
          uart_table[i]=0;  //初始化数组
         }
      } 
        else
       {   
       uart_table[num] = uart_data;  //开始接受字节
       }
       num++;  
       if(k == num)                 //字节接受完毕
      {
           EA=0;        //close the uart interrupt
      }                  
      }     
}



void main (void) 
{

    SCON = 0x50;       /* uart in mode 1 (8 bit), REN=1 */
    TMOD = TMOD | 0x20 ;         /* Timer 1 in mode 2 */
    TH1  = 0xFD;                 /* 9600 Bds at 11.059MHz */
    TL1  = 0xFD;        /* 9600 Bds at 11.059MHz */
    IE =0x90;
    TR1 = 1;                     /* Timer 1 run */
    EN = 0;                        /* RS-485 enable,'0'--RX enable; '1'--TX disable */
    led = 1;
    while(1);
 }
   

⌨️ 快捷键说明

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