uart2io.c

来自「use USB WITH 8051 做通訊, 包含源碼.」· C语言 代码 · 共 93 行

C
93
字号
//
//        www.dainau.com
//
#include <AT89X51.H>

void init(void);
void waitRI(int t);
char sendbyte (char c);  


main()
{ 
  char indata;

  init();

  while(1){
    waitRI(0);
    indata=SBUF;
    RI=0;
    switch (indata) {
           case 'A':
                sendbyte(P0);
 				break;
           case 'B':
                sendbyte(P1);
 				break;
           case 'C':
                sendbyte(P2);
 				break;
           case 'D':
                sendbyte(P3 | 3);	//uart
 				break;
           case 'E':
			    waitRI(0);
                P0=SBUF;
 				break;
           case 'F':
			    waitRI(0);
                P1=SBUF;
 				break;
           case 'G':
			    waitRI(0);
                P2=SBUF;
 				break;
           case 'H':
			    waitRI(0);
                P3=SBUF | 3 ;		//uart
 				break;
           default:
 				break;
    }
  }
}

void waitRI(int t)
{
  if(t==0) 
    while(RI==0){
    //  LED=!LED;
    }
  else
    while(--t>0){
       if(RI==1) break;
    //   LED=!LED;
  }
}

void init(void)
{
  
  PCON = 0x80;
  TMOD = 0x21;
  TH1  = 0xFF;
  TCON = 0x55;
  SCON = 0x50;
  
  EA=0;
  ES=0;
  TI=1;

}

char sendbyte (char c)  
{

  while (!(SCON & 0x02));       /* while (!TI); */
  SCON &= 0xFD;                 /* TI = 0 */
  return (SBUF = c);
}


⌨️ 快捷键说明

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