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

📄 用丁丁斑竹的仿真器调试简单串口接收,发送程序.lst

📁 本人收集和自己写的部分51系列例程,供各位参考
💻 LST
字号:
C51 COMPILER V8.05a   用丁丁斑竹的仿真芲礯试简单串口接收_发送程                            03/30/2007 15:27:05 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 用丁丁斑竹的仿真芲礯试简单串口接收_发送程
OBJECT MODULE PLACED IN 用丁丁斑竹的仿真器调试简单串口接收,发送程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 用丁丁斑竹的仿真器调试简单串口接收,发送程序.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //用丁丁斑竹的仿真器调试简单串口接收,发送程序(DieHeart)
   2          // 
   3          //
   4          //昨天灌了一杯<<用丁丁斑竹的仿真器调试简单串口发送程序>>,连接请点击
   5          //http://www.daxia.com/bbs/moredata.asp?id=40091&syid=440992
   6          //但是只涉及到了用51的串口发送,没有接收,有点遗憾.
   7          //
   8          //今天这个对收发都进行测试.
   9          //请初学参考,DX拍砖!
  10          //
  11          //
  12          /********************************************************************/
  13          /*试验串行口通信的例子                DieHeart.     Sep 14th,2004   */
  14          /********************************************************************/
  15          
  16          //这是包含默认的寄存器头文件, 
  17          //该文件在keil自己的目录里,包含了所有52内核的寄存器定义。 
  18          #include <reg51.h>
  19          
  20          //这是特殊寄存器位定义,IO也是特殊寄存器的位
  21          sbit key1=P3^2; 
  22          sbit key2=P3^5;
  23          sbit key3=P2^4;
  24          sbit key4=P2^5;
  25          
  26          sbit led3=P1^0;
  27          sbit led4=P1^1;
  28          sbit led5=P1^2;
  29          sbit led6=P1^3;
  30          
  31          //包含_getkey读字符库函数,
  32          //目的是确定标准输入是否为COM口,学习与MCU51的联机通信
  33          
  34          //这是设置串口模式的自定义函数,参数可以修改,只要与计算机的串行数据格式一致即可!
  35          void stdio(void)
  36          {
  37   1          SCON = 0x50;//串口工作方式设置字节,1个起始位,8个数据位,1个停止位组成10位帧
  38   1          PCON = 0x80;//波特率加倍模式
  39   1          TMOD = 0x20;//COM2:自动重置初值的8位定时/计数器
  40   1          TH1 =  0xf4;//串行口波特率发生器,=256-f/12/16/9600,f=22118400
  41   1          TR1 = 1;    //启动T1
  42   1          TI = 1;     //中断方式允许位
  43   1      }
  44          
  45          void main(void)
  46          {
  47   1      char key;
  48   1      stdio();
  49   1      while(1)
  50   1      {
  51   2                   if(!key1)     //检测key1是否按下,按下时程序会读到该位为0,平时为1
  52   2                     {
  53   3                     led3=0;       //点亮LED3
  54   3                     led4=1;
  55   3                     led5=1;
C51 COMPILER V8.05a   用丁丁斑竹的仿真芲礯试简单串口接收_发送程                            03/30/2007 15:27:05 PAGE 2   

  56   3                     led6=1;
  57   3      //               printf("1");  //串行输出字符"1"
  58   3                     }
  59   2                   if(!key2)     //检测key2是否按下,按下时程序会读到该位为0,平时为1
  60   2                     {
  61   3                     led3=1;
  62   3                     led4=0;       //点亮LED4
  63   3                     led5=1;
  64   3                     led6=1; 
  65   3      //               printf("2");  //串行输出字符"2"
  66   3                     }
  67   2      if(RI)                       //判断串口是否收到数据
  68   2      {
  69   3      //key=_getkey();               //读串口数据
  70   3      switch(key)
  71   3            {
  72   4            case 1:                //从串口收到数据1
  73   4                     {
  74   5                     led3=1;
  75   5                     led4=1;
  76   5                     led5=0;       //点亮LED5
  77   5                     led6=1;
  78   5      //               printf("3");  //串行输出字符"3"
  79   5                     }
  80   4                   break;
  81   4            case 2:                //从串口收到数据2
  82   4                     {
  83   5                     led3=1;
  84   5                     led4=1;
  85   5                     led5=1;
  86   5                     led6=0;       //点亮LED6 
  87   5      //               printf("4");  //串行输出字符"4"
  88   5                     }
  89   4                   break;
  90   4             }
  91   3      }
  92   2      }
  93   1      }
  94          
  95          /****************************************************/
  96          /*    使用方法:                                     */
  97          /*    将程序下载到仿真器,并置脱机运行模式           */
  98          /*    保持仿真器与计算机的连接状态                  */
  99          /*    启动串口工具软件,并设置与单片机一致的波特率   */
 100          /****************************************************/
 101          
 102          /****************************************************/
 103          /*    运行效果:                                     */
 104          /*    按KEY1,LED3亮,同时计算机接收到许多字符"3"     */
 105          /*    按KEY2,LED4亮,同时计算机接收到许多字符"4"     */
 106          /*    OK啦,和昨天的一样!                            */
 107          /*    从串口工具软件发送1,   ?                     */
 108          /*    LED1亮,同时计算机接收到"1"                    */
 109          /*    从串口工具软件发送2,                          */
 110          /*    LED2亮,同时计算机接收到"2"                    */
 111          /*                                                  */
 112          /*    Hoho,OK!                                      */
 113          /*                                                  */
 114          /*                            ^-^  DieHeart  ^-^    */
 115          /****************************************************/ 


C51 COMPILER V8.05a   用丁丁斑竹的仿真芲礯试简单串口接收_发送程                            03/30/2007 15:27:05 PAGE 3   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     74    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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