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

📄 com_1.lst

📁 使用PROTEUS仿真的RS232串行通信口,可在串口助手输入,激活7段数码管显示相应的数字
💻 LST
字号:
C51 COMPILER V6.12  COM_1                                                                  01/06/2002 05:12:13 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE COM_1
OBJECT MODULE PLACED IN .\com_1.OBJ
COMPILER INVOKED BY: G:\单片机学习\单片机软件\keil\C51\BIN\C51.EXE .\com_1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg51.h"
   2          #include "string.h"
   3          char receive_data[]="0123456789";
   4          char flag;
   5          unsigned char code table[]={
   6          0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
   7          //串口初始化 晶振为11.0592M 方式1 波特率300-57600
   8          void InitCom(unsigned char BaudRate)
   9          {
  10   1      unsigned char THTL;
  11   1      switch (BaudRate)
  12   1      {
  13   2      case 1: THTL = 64; break; //波特率300
  14   2      case 2: THTL = 160; break; //600
  15   2      case 3: THTL = 208; break; //1200
  16   2      case 4: THTL = 232; break; //2400
  17   2      case 5: THTL = 244; break; //4800
  18   2      case 6: THTL = 250; break; //9600
  19   2      case 7: THTL = 253; break; //19200
  20   2      case 8: THTL = 255; break; //57600
  21   2      default: THTL = 208;
  22   2      }
  23   1      SCON = 0x50; //串口方式1,允许接收
  24   1      TMOD = 0x20; //定时器1定时方式2
  25   1      TCON = 0x40; //设定时器1开始计数
  26   1      TH1 = THTL;
  27   1      TL1 = THTL;
  28   1      PCON = 0x80; //波特率加倍控制,SMOD位
  29   1      RI = 0; //清收发标志
  30   1      TI = 0;
  31   1      TR1 = 1; //启动定时器
  32   1      }
  33          
  34          //从串口接收一个定长字符串(非中断方式,只用于字符需有一个的idata字符串数组)
  35          //如unsigned char *Str;
  36          //unsigned char i[]="abcd";
  37          //InHandStr = &i;
  38          void ComInStr(unsigned char *Str)
  39          {
  40   1      while(*Str != 0x00) //判断是否到了字符串的尾部
  41   1      {
  42   2      while(!RI); //空语句判断字符是否收完
  43   2      *Str = SBUF; //保存字符
  44   2      RI = 0; //清RI
  45   2      Str++; //字符串指针加一
  46   2      }
  47   1      }
  48          
  49          void delay1s(void) 
  50          
  51          { 
  52   1      
  53   1        unsigned char i,j,k; 
  54   1      
  55   1        for(k=40;k>0;k--) 
C51 COMPILER V6.12  COM_1                                                                  01/06/2002 05:12:13 PAGE 2   

  56   1      
  57   1        for(i=20;i>0;i--) 
  58   1      
  59   1        for(j=248;j>0;j--); 
  60   1      
  61   1      } 
  62          void main()
  63          {
  64   1         InitCom(6);
  65   1            EA=1;
  66   1            ES=1;
  67   1            ET1=0;
  68   1                     ComInStr(receive_data);
  69   1         while(1)
  70   1         {  char i;
  71   2      
  72   2      
  73   2            for(i=0;i<10;i++)
  74   2            {  //P2=table[1];
  75   3               P2=table[receive_data[i]-48];
  76   3               delay1s();
  77   3            }
  78   2      	  flag=0;
  79   2      	  
  80   2         }
  81   1      
  82   1      
  83   1      }
  84          
  85          //串口接收中断函数 
  86          //void serial () interrupt 4 using 3
  87          //{
  88             //ComInStr(receive_data);
  89             //flag=1;
  90          //}


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    222    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       4
   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 + -