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

📄 myserialport.lst

📁 51单片机开发与应用技术详解(珍藏版)PPT及源码
💻 LST
字号:
C51 COMPILER V8.08   MYSERIALPORT                                                          04/23/2008 10:50:27 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MYSERIALPORT
OBJECT MODULE PLACED IN MySerialPort.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE MySerialPort.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          
   4          typedef unsigned char   BYTE;                           //宏定义
   5          typedef unsigned short   WORD;
   6          typedef unsigned long   DWORD;
   7          
   8          #define MSB(word)      (BYTE)(((WORD)(word) >> 8) & 0xff)
   9          #define LSB(word)      (BYTE)((WORD)(word) & 0xff)
  10          
  11          sbit P3_2=P3^2;                                                 //计算机发送,单片机接收的标志
  12          sbit P3_3=P3^3;                                                 //单片机发送,计算机接收的标志
  13          sbit P3_4=P3^4;                                                 //HM628128最高位地址
  14          sbit P3_6=P3^6;                                                 //HM628128写使能
  15          sbit P3_7=P3^7;                                                 //HM628128读使能
  16          
  17          bit AT89S52Send=0;                                                      //单片机发送,计算机接收的软件标志位
  18          
  19          void main(void)                                                         //主程序
  20          {
  21   1              unsigned int count;
  22   1              DWORD t;
  23   1              int i,j;
  24   1              count=0;                                                                //初始化变量
  25   1              t=0;
  26   1      
  27   1              SCON=0x50;                                                      //串口模式1,允许接收
  28   1              TMOD|=0x20;                                                     //初始化T1为定时功能,模式2
  29   1              PCON|=0x80;                                                     //设置SMOD=1
  30   1              TL1=0xF4;                                                       //波特率4800bit/s,初值
  31   1              TH1=0xF4;
  32   1              IE|=0x90;                                                               //中断
  33   1              TR1=1;                                                          //启动定时器
  34   1              P3_6=1;                                                         //写使能
  35   1              P3_7=1;                                                         //读使能
  36   1              AT89S52Send=1;                                          //软件标志
  37   1      
  38   1              while(1)                                                                //主循环
  39   1              {
  40   2                      while(P3_2==0)                                  //计算机发送,单片机接收
  41   2                      {
  42   3                              if(RI)                                                  //如果单片机接收到数据
  43   3                              {
  44   4                                      P0=LSB(count);                  //取低8位
  45   4                                      P2=MSB(count);                  //取高8位
  46   4                                      if(t<=0xFFFF)
  47   4                                      {
  48   5                                              P3_4=0;                         //最高位
  49   5                                      }
  50   4                                      else
  51   4                                      {
  52   5                                              P3_4=1;
  53   5                                      }
  54   4                                      count++;                                //计数递增
  55   4                                      t++;
C51 COMPILER V8.08   MYSERIALPORT                                                          04/23/2008 10:50:27 PAGE 2   

  56   4                                      
  57   4                                      P3_6=0;                                 //HM628128写使能
  58   4                                      RI=0;                                   //RI清零
  59   4                                      P1=SBUF;                                //将计算机发送的数据写入P1口
  60   4                                      P3_6=1;                                 //HM628128禁止写
  61   4                              }
  62   3      
  63   3                              AT89S52Send=1;                          //软件标志位
  64   3                      }
  65   2              
  66   2                      while(P3_3==0 & AT89S52Send==1)         //单片机发送,计算机接收
  67   2                      {
  68   3                              for (j=0;j<=0xFF;j++)                           //读0000H~FFFFH
  69   3                              {
  70   4                                      P3_4=0;
  71   4                                      for(i=0;i<=0xFF;i++)
  72   4                                      {
  73   5                                              P0=i;
  74   5                                              P2=j;
  75   5                                              P3_7=0;                         //HM628128读使能
  76   5                                              SBUF=P1;                        //将读到的数据写入SBUF,启动串行发送
  77   5                                              while(TI==0);                   //等待发送完毕
  78   5                                              TI=0;                                   //TI清零
  79   5                                              P3_7=1;                         //HM628128禁止读
  80   5                                      }
  81   4                                      P3_7=1;
  82   4                              }
  83   3      
  84   3                              for (j=0;j<=0xFF;j++)                           //读10000H~1FFFFH
  85   3                              {
  86   4                                      P3_4=1;
  87   4                                      for(i=0;i<=0xFF;i++)
  88   4                                      {
  89   5                                              P0=i;
  90   5                                              P2=j;
  91   5                                              P3_7=0;                         //HM628128读使能
  92   5                                              SBUF=P1;                        //将读到的数据写入SBUF,启动串行发送
  93   5                                              while(TI==0);                   //等待发送完毕
  94   5                                              TI=0;                                   //TI清零
  95   5                                              P3_7=1;                         //HM628128禁止读
  96   5                                      }
  97   4                                      P3_7=1;
  98   4                              }
  99   3                              AT89S52Send=0;                          //读标志清零
 100   3                      }
 101   2              }
 102   1      }


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


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

⌨️ 快捷键说明

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