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

📄 stc232.lst

📁 里面有源程序.下位机的程序可以验证上位机的全部功能.安装好后,程序在我的电脑---开始里面,数码管我用的P1和P2,流水灯我用的是P0. 温度显示我在程序中设置为了37度,你可以把这个换成你自己的实
💻 LST
字号:
C51 COMPILER V8.09   STC232                                                                01/13/2008 15:50:31 PAGE 1   


C51 COMPILER V8.09, COMPILATION OF MODULE STC232
OBJECT MODULE PLACED IN stc232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE stc232.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*************************************************************
   2          ****************串口工具配套程序******************************
   3          程序功能:1.通过PC端的串口调试工具,从PC端发出一个十六进制的数,
   4                     通过串口传输到单片机,并有单片机通过
   5                     LED数码管显示其ASII码,而且单片机又将
   6                     这个数发回PC端,并在PC端显示出来,从而
   7                     实现单片机与PC机的通讯
   8                    2.可以实现对下位机数据实时采集(如温度)
   9                    3.可以控制流水灯或继电器开关等
  10          *******************谢谢关注www.ednchina.com/Blog/lg05128018/**********************/
  11          #include <reg52.h>
  12          #include <intrins.h>
  13          unsigned char date;
  14          code unsigned char seg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
  15                                         0x82,0xf8,0x80,0x90,0xff}; //共阳数码管段码
  16          
  17          //char code str[] = "read is ok\n\rwww.ednchina.com/Blog/lg05128018/\n\r";
  18          unsigned char k;
  19          //***********************************************************
  20          
  21          //                     延时子程序
  22          
  23          //************************************************************
  24          void delay1ms()
  25          {
  26   1       unsigned char i;
  27   1       for(i=124;i>0;i--);  //延时124*8+10=1002us
  28   1      }
  29          // void delay10ms()
  30          //{
  31          //int i;
  32          // for(i=1240;i>0;i--);  //延时124*8+10=1002us
  33          //}
  34          //**********************************************************//
  35          
  36          //************显示函数,显示四位的date数据******************//
  37          
  38          //*************P2口接段码,P1.0-P1.3接位选******************//
  39          
  40          //**********************************************************//
  41          
  42          void LED_display(int date)  //显示4位数
  43          {
  44   1       P1=0xfd;                 //P1.1=0,选通第二位,百
  45   1       P2=seg7code[date%1000/100];
  46   1       delay1ms();
  47   1       P2=0xff;                 //消隐
  48   1      
  49   1       P1=0xfb;                 //P1.3=0,选通第三位,十
  50   1       P2=seg7code[date%100/10];
  51   1       delay1ms();
  52   1       P2=0xff;                 //消隐
  53   1      
  54   1       P1=0xf7;                 //P1.3=0,选通第四位,个
  55   1       P2=seg7code[date%10];
C51 COMPILER V8.09   STC232                                                                01/13/2008 15:50:31 PAGE 2   

  56   1       delay1ms();
  57   1       P2=0xff;                 //消隐
  58   1      }
  59          
  60          //************************************************************//
  61          
  62          //******************串口初始化函数****************************//
  63          
  64          //************************************************************//
  65          Initial_com()
  66          {
  67   1       EA=1;        //开总中断
  68   1       ES=1;        //允许串口中断
  69   1       ET1=1;        //允许定时器T1的中断
  70   1       TMOD=0x20;   //定时器T1,在方式3中断产生波特率
  71   1       PCON=0x00;   //SMOD=0
  72   1       SCON=0x50;   
  73   1       TH1=0xfd;    //波特率设置为9600
  74   1       TL1=0xfd;
  75   1       TR1=1;       //开定时器T1运行控制位
  76   1      }
  77          //************************************************************//
  78          //************************主函数******************************//
  79          //************************************************************//
  80          main()
  81          {
  82   1      Initial_com();
  83   1      while(1)
  84   1       {        
  85   2        if(RI)
  86   2        {
  87   3                      
  88   3         date=SBUF;
  89   3         if(date!=0x39)
  90   3         SBUF=date;   
  91   3              switch (date)
  92   3                  {
  93   4                          case 0x30: P0=0xff;  break;   //LED全灭
  94   4                              case 0x31: P0=0xfe;  break;   //LED1亮
  95   4                              case 0x32: P0=0xfd;  break;   //LED2亮
  96   4                              case 0x33: P0=0xfb;  break;   //LED3亮
  97   4                              case 0x34: P0=0xf7;  break;   //LED4亮
  98   4                              case 0x35: P0=0xef;  break;   //LED5亮
  99   4                              case 0x36: P0=0xdf;  break;   //LED6亮
 100   4                              case 0x37: P0=0xbf;  break;   //LED7亮
 101   4                              case 0x38: P0=0x7f;  break;   //LED8亮
 102   4                      case 0x39: SBUF=37;      break;
 103   4                              default: break;
 104   4                      }
 105   3         RI=0;  //清除接收中断标志
 106   3        }
 107   2         LED_display(date);
 108   2        }
 109   1      }                       
 110           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    261    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.09   STC232                                                                01/13/2008 15:50:31 PAGE 3   

   DATA SIZE        =      2    ----
   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 + -