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

📄 rs1.lst

📁 一个基于LABwindowsCVI和单片机的串口双向通讯程序
💻 LST
字号:
C51 COMPILER V7.50   RS1                                                                   05/29/2008 14:00:53 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE RS1
OBJECT MODULE PLACED IN RS1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RS1.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<INTRINS.H>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define NOP _nop_()
   6          #define DISOFF 0X3F
   7          #define TH0_RELOAD      0xd8    //10ms定时器中断重载值
   8          #define TL0_RELOAD      0xef
   9          /*Timer*/
  10          bit             bdata   f_10ms;         /*T0中断10ms到标志*/
  11          bit             bdata   f_20ms;         /*20ms按键判断标志*/
  12          bit             bdata   f_200ms;                /*20ms按键判断标志*/
  13          bit             bdata   f_400ms;                /*400ms按键判断标志*/
  14          bit             bdata   f_1s;           /*1秒采样标志*/
  15          bit             bdata   f_20s;          /*20秒一个控制周期标志*/
  16          #define INT20MSCOUNT            2
  17          uchar   data    cnt_20ms=INT20MSCOUNT;/*按键判断20ms*/
  18          #define INT200MSCOUNT           10
  19          uchar   data    cnt_200ms=INT200MSCOUNT;/*AD读500ms*/
  20          #define INT400MSCOUNT           2
  21          uchar   data    cnt_400ms=INT400MSCOUNT;/*AD读500ms*/
  22          #define INT1SCOUNT      2
  23          uchar   data    cnt_1s=INT1SCOUNT;/*1s*/
  24          #define INT20SCOUNT     20
  25          uchar   data    cnt_20s=INT20SCOUNT;/*定时20s计数器*/
  26          //********************************
  27          #define LED2_PORT P0
  28          uchar   data    disbuf[2]={0,0};
  29          uchar   data    temper[2]={0,0};
  30          uchar   code    distab[10]={0x41,0xe7,0x52,0x62,0xe4,0x68,0x48,0xe3,0x40,0x60};
  31          uchar   code    tab_w[]={0X80,0X40};/*LED2,LED1,位选码表 P2.6-->LED2,P2.7-->LED1*/
  32          //P1 |= B0000_0111 熄灭
  33          sbit    LED1 = P2^7;
  34          sbit    LED2 = P2^6;
  35          uchar   data    scan;/*显示哪个LED*/
  36          uchar   data    adtmp[10];
  37          uchar   data    sec_cnt;
  38          uchar   data    keytask;
  39          bit             bdata   fkey;
  40          uchar   data    led_cnt;
  41          //********************************
  42          void    main_init(void);
  43          void    uart_init(void);
  44          void    ad_init(void);
  45          void    dis_init(void);
  46          void    send8(uchar temp);
  47          void    delay(uint temp);
  48          uchar   tlc549(void);
  49          uchar   datlb(uchar data adc);/*数据滤波,和前9次采样值一起,去最大最小值,取平均值*/
  50          void    datclf(uchar data ad_dat);
  51          void    tim0_mainloop(void);
  52          void    dis_mainloop(void);
  53          void    ad_mainloop(void);
  54          void    data_mainloop(void);
  55          void    tim0_init(void);
C51 COMPILER V7.50   RS1                                                                   05/29/2008 14:00:53 PAGE 2   

  56          void    key_mainloop(void);
  57          //********************************
  58          void    main(void)
  59          {
  60   1              main_init();
  61   1              EA = 1;
  62   1              //send8(0x55);send8(0xaa);
  63   1              while(1)
  64   1              {
  65   2                      tim0_mainloop();
  66   2                      dis_mainloop();
  67   2                      //send8(0x55);send8(0xaa);
  68   2              }
  69   1      }
  70          //****************************
  71          void    dis_mainloop()
  72          {
  73   1              uchar ch;
  74   1              if(!f_10ms)return;
  75   1              f_10ms = 0;
  76   1              P2 &= DISOFF;//关显示
  77   1              ch = disbuf[scan];      /*得到当前要显示值*/
  78   1              LED2_PORT = distab[ch];
  79   1              P2 |= tab_w[scan];
  80   1              if(++scan==2)scan=0;
  81   1      }
  82          //********************************
  83          //*产生各种时间控制
  84          void    tim0_mainloop()
  85          {       if(!f_10ms) return;
  86   1              if(--cnt_20ms==0)
  87   1              {
  88   2                      cnt_20ms=INT20MSCOUNT;
  89   2                      f_20ms=1;       /*20ms*/
  90   2                      if(--cnt_200ms==0)
  91   2                      {
  92   3                              cnt_200ms=INT200MSCOUNT;
  93   3                              f_200ms=1;      /*200ms*/
  94   3                              if(--cnt_400ms==0)
  95   3                              {
  96   4                                      cnt_400ms=INT400MSCOUNT;
  97   4                                      f_400ms=1;      /*400ms*/
  98   4                                      if(--cnt_1s==0)
  99   4                                      {
 100   5                                              cnt_1s=INT1SCOUNT;
 101   5                                              f_1s=1; /*1s*/
 102   5                                              if(--cnt_20s==0)
 103   5                                              {
 104   6                                                      cnt_20s=INT20SCOUNT;
 105   6                                                      f_20s=1;        /*20秒*/
 106   6                                              }
 107   5                                      }
 108   4                              }
 109   3                      }
 110   2              }
 111   1      }
 112          
 113          //*********************
 114          void    main_init(void)
 115          {
 116   1              uart_init();
 117   1      //      dis_init();
C51 COMPILER V7.50   RS1                                                                   05/29/2008 14:00:53 PAGE 3   

 118   1              tim0_init();
 119   1              scan=0;
 120   1              sec_cnt=0;
 121   1      }
 122          //*********************
 123          /*定时器0中断服务,产生10ms定时*/
 124          void    tim0(void) interrupt 1
 125          {
 126   1              TH0=TH0_RELOAD;TL0=TL0_RELOAD;
 127   1              f_10ms=1;
 128   1      }
 129          //*********************
 130          void serial(void) interrupt 4
 131          {
 132   1              uchar   temp;
 133   1              if(RI)RI=0;
 134   1              temp=SBUF;
 135   1              send8(temp);
 136   1              disbuf[0]       =temp/10;
 137   1              disbuf[1]       =temp%10;
 138   1              if(disbuf[0]>9){disbuf[0]=9;disbuf[1]=9;}
 139   1      
 140   1      }
 141          
 142          //*********************
 143          void    tim0_init(void)
 144          {
 145   1              TMOD=0x01;              /*T0定时10ms中断显示*/
 146   1              TH0=TH0_RELOAD;
 147   1              TL0=TL0_RELOAD;
 148   1              ET0=1;
 149   1              TR0=1;
 150   1      }
 151          //*********************
 152          void    uart_init(void)
 153          {
 154   1              T2CON = 0x34;//12clk-9600 6clk-19200
 155   1              RCAP2H = 0xFF;
 156   1              RCAP2L = 0xD9;
 157   1              SCON = 0x50;
 158   1              ES=1;//串口中断
 159   1      }
 160          //*********************
 161          void    send8(uchar     temp)
 162          {
 163   1              SBUF = temp;
 164   1              while(!TI);
 165   1              TI=0;
 166   1      }
 167          //*********************
 168          
 169          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    259    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     23       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
C51 COMPILER V7.50   RS1                                                                   05/29/2008 14:00:53 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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