⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 串行通讯_查询方式_switch处理.c

📁 串行通讯_查询方式_switch处理 有详细的文字字说明 方便使用者修改
💻 C
字号:
// 串行通讯_查询方式_switch处理.c

#include <reg52.h>
#include <stdio.h>                /* prototype declarations for I/O functions */

/* T1 定时 时间常数;波特率发生器 */
#define  baud_rate_L   0xFD  /* T1: 8位重装入; 0xFD-->9600b/s (SMOD=1,n=1/32) f=11.0592M */
                             /* T1: 8位重装入; 0xFD-->5208.333b/s (SMOD=1,n=1/32) f=6M   */
unsigned  char  receive_char=0;     /* 接收字符 */
unsigned   int  receive_conter=0;   /* 接收字符计数器 */
unsigned  long  run_conter=0;       /* 测试运行计数器 */

main()
{
                         // T1 作波特率发生器,初始化
   TMOD |= 0x20;         /* timer 1 mode 2: 8-Bit reload.  T1=8位重装波特率发生器.  */
   TH1   = baud_rate_L;  /* T1 : 8位重装入; 0xFD(SMOD=0) --> 9600 b/s (f=11.0592MHz)*/
   TR1   = 1;            /* timer 1 run                           */
                   // 串口初始化
   SCON  = 0x50;   /* mode 1: 8-bit UART, enable receiver. (1启、8数、1仃;可变波特率) */
   TI    = 1;            /* TI:   set TI to send first char of UART */
   // ES = 1;            /* enable serial port interrupt */

   printf ("sio is ready\n");   /* 向PC机报告 */
   while (1)    // 主程序死循环
   {
     if (RI)
     {
    // receive_char=getchar();  // 等待接收一字符(回送),直到收到为止
       receive_char=_getkey();    // 等待接收一字符(等RI=1),直到收到为止(收到后RI=0)
       receive_conter++;          /* 接收字符计数 */
       switch (receive_char)
       {
        case 'A':  printf ("\ndo A\n");
                   break;
        case 'B':  printf ("\ndo B\n");
                   break;
        case 'C':  printf ("\ndo C\n");
                   break;
        case 'N':  printf ("\nN=%d\n", receive_conter);
                   break;
        case 'R':  printf ("\nRUN=%ld\n", run_conter);
                   break;
        default:   printf ("%c", receive_char);
       }
     }
     run_conter++;       /* 测试运行计数器 */
   }
}

⌨️ 快捷键说明

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