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

📄 ledcontrol.lst

📁 在51上控制LED屏的显示和输出
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.02a   LEDCONTROL                                                           05/26/2005 13:15:53 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE LEDCONTROL
OBJECT MODULE PLACED IN ledcontrol.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ledcontrol.C OPTIMIZE(4,SPEED)

stmt level    source

   1          /************************************************************************************************/
   2          /*****                                 LED matrix display screen          ***********************/
   3          /*****                     designed by lingfeng              2004-9-3     ***********************/
   4          /*****                     changed by  caocong               2005-5-18    ***********************/        
             -                                    
   5          /*****              main chips: W77E58,DS18B20, PCF8563,27C020, IDT7134   ***********************/        
             -                                     
   6          /*****              main function:1.Communication with the computer       ***********************/
   7          /*****                                   2.Get the RTC &Temperature       ***********************/
   8          /*****                                   3. Send data to IDT7134          ***********************/
   9          /************************************************************************************************/
  10          /**************************checked by lingfeng 2005-5-26*****************************************/
  11          /***********************************include files************************************************/
  12          
  13          #include<absacc.h>
  14          #include<intrins.h>
  15          #include"ledcontrol.h"
  16          
  17          uchar code  num_model[11][16] = {
  18                    0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,          //numb
             -er 0
  19                    0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,          //numb
             -er 1
  20                    0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,         //numbe
             -r 2
  21                    0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,        //number
             - 3
  22                    0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,         //numbe
             -r 4
  23                    0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,        //number
             - 5
  24                    0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,        //number
             - 6
  25                    0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,        //number
             - 7
  26                    0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,       //number 
             -8
  27                    0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,       // number
             - 9
  28                    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00       //   miuns
             -  '-'
  29                            };
  30          
  31          uchar code format_time[6][16]  =     {
  32                     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       //sign  "--"
  33                     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       //sign  "--"
  34                     0x00,0x00,0x00,0x00,0x10,0x10,0xD6,0x38,0x38,0xD6,0x10,0x10,0x00,0x00,0x00,0x00,       //sign  "*"
  35                     0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,      //sign  "  :"
  36                     0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,      //sign  ": "
  37                     0x00,0x00,0x00,0x00,0x10,0x10,0xD6,0x38,0x38,0xD6,0x10,0x10,0x00,0x00,0x00,0x00      //sign  "*"
  38                            };
  39          
  40          
  41          uchar   code format_temp[9][32]  =  {
  42                     0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x12,0x18,0x21,0x8E,0xC0,0x84,       //   "今"
C51 COMPILER V7.02a   LEDCONTROL                                                           05/26/2005 13:15:53 PAGE 2   

  43                    0x00,0x00,0x1F,0xF0,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x01,0x00,
  44                    0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,       //  "日"
  45                    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00,0x00,0x00,0x00,
  46                    0x40,0x00,0x27,0xF0,0x24,0x10,0x07,0xF0,0x94,0x10,0x54,0x10,0x17,0xF0,0x20,0x00,       // "温"
  47                    0x2F,0xFC,0xC9,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x5F,0xFE,0x40,0x00,
  48                    0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x2F,0xFC,0x22,0x20,0x23,0xE0,      //"度"
  49                    0x20,0x00,0x27,0xF8,0x22,0x10,0x21,0x20,0x20,0xC0,0x41,0x30,0x46,0x0E,0x98,0x04,
  50                    0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,        //"是"
  51                    0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x00,
  52                    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       // 无
  53                        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  54                        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,       //无
  55                        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  56                    0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x2F,0xFC,0x22,0x20,0x23,0xE0,         //"度"
  57                    0x20,0x00,0x27,0xF8,0x22,0x10,0x21,0x20,0x20,0xC0,0x41,0x30,0x46,0x0E,0x98,0x04,
  58                    0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x41,0x04,0x1D,0x70,0x01,0x00,0x1D,0x70,0x02,0x80,          //"零"
  59                    0x04,0x60,0x1A,0x1E,0xE1,0x08,0x1F,0xE0,0x00,0x40,0x02,0x80,0x01,0x00,0x01,0x00
  60                                    };
  61           
  62          /*********************************program************************************/
  63          
  64          void main(void)
  65          {               
  66   1      /***************************inital*******************************************/                            
             -     
  67   1               cpu_ini();
  68   1               variable_ini();
  69   1                   pcf8563_init();
  70   1                   ds1820_ini();
  71   1               watchdog();
  72   1      
  73   1               get_c_code(COMBUF.charbuf, 8);
  74   1                       watchdog();
  75   1       
  76   1                       Wrt_IDT7134_Buf1();
  77   1               watchdog();
  78   1      /************************main loop****************************************/
  79   1      
  80   1                while(1)
  81   1                      {
  82   2                              if (flag_5min)
  83   2                                      {       
  84   3                                         flag_5min = False;
  85   3                                      get_time(time);
  86   3                                              watchdog();
  87   3                                              get_temp(time);
  88   3                                              watchdog();
  89   3                                              put_format_dispbuf(format_time,format_temp);
  90   3                                              watchdog();
  91   3                                              Wrt_IDT7134_Buf2();
  92   3                                              watchdog();
  93   3                                      }
  94   2                              commu();
  95   2                              watchdog();
  96   2                              if (flag_30sec)
  97   2                                      {
  98   3                                           flag_30sec = 0;
  99   3                                           DISPBUF.buf_num = 1;
 100   3                                           flag_begin = False;
 101   3                                      }
 102   2                              }
 103   1      }
C51 COMPILER V7.02a   LEDCONTROL                                                           05/26/2005 13:15:53 PAGE 3   

 104                                                  
 105          
 106          
 107          
 108          
 109          
 110          
 111          
 112          
 113          
 114          
 115          /************cpu_ini************************/
 116          void cpu_ini(void)
 117          {
 118   1              TMOD=0x21;                       //timer1 mode2 timer0 mode1
 119   1              TL1=0xfd;                           //9600bps                         
 120   1              TH1=0xfd;
 121   1              PCON=0;                      //SMOD=0
 122   1              SCON=0x50;                      //serial mode 1
 123   1              TL0=0x00;                         //timer  is 50ms
 124   1              TH0=0x4c;
 125   1              EX0=1;                              //Enable int0
 126   1              IT0=1;                           //falling  edge trigle
 127   1              ET0=1;                            //Enable time0   
 128   1              ES=1;                            //Enable serial 
 129   1              EA=1;                         
 130   1              TR0=1;
 131   1              TR1=1;
 132   1               
 133   1                      
 134   1      }
 135          
 136          
 137          void variable_ini(void)
 138          {
 139   1               fd_dog= 0;                                      //  count for  watchdog
 140   1           RECBUF.flag        = (uchar)0;                      // inital  the communcation buffer
 141   1               SEDBUF.flag    = (uchar)0;
 142   1               RECBUF.len  =  0;
 143   1               SEDBUF.len     = 0;
 144   1               RECBUF.loc = 0;
 145   1               SEDBUF.loc = 0;
 146   1               flag_5min = False;
 147   1               flag_30sec     =False;
 148   1               flag_begin = False;
 149   1               count_sec  = 0;
 150   1               count_min = 0;
 151   1      
 152   1      
 153   1      }
 154          
 155          void int0_process(void)  interrupt 0 using 1
 156          {
 157   1             flag_5min =True;
 158   1              flag_begin = True;
 159   1      }
 160          
 161          
 162          
 163          void put_format_dispbuf(uchar format_time1[][16],uchar format_temp1[][32])                   //using displ
             -ay buffer 2
 164          {
C51 COMPILER V7.02a   LEDCONTROL                                                           05/26/2005 13:15:53 PAGE 4   

 165   1           
 166   1      
 167   1                uchar i,j;          
 168   1      //fill time's format  to dsiplay buffer
 169   1                for (i=0; i<4; i=i+3) 
 170   1                      {
 171   2                         for (j=0; j<16; j++)
 172   2                               {
 173   3                                  DISPBUF.disp_buf2[j][2+i] = ~format_time1[0+i/3][j-16];      // fill    "--"     "--"
 174   3                                  DISPBUF.disp_buf2[j][8+i] = ~format_time1[2+i/3][j-16];          // fill    "*"       " :"
 175   3                          DISPBUF.disp_buf2[j][12+i]= ~format_time1[4+i/3][j-16];          // fill     ": "    "*"
 176   3                              }
 177   2                      }                                         
 178   1      //fill temperature's foramt to display buffer 
 179   1                for (i=0; i<8; i++)
 180   1                      {
 181   2                           for(j=16; j<32; j++)
 182   2                                 {
 183   3                        DISPBUF.disp_buf2[j][i*2]    = ~format_temp1[i][(j-16)*2];
 184   3                                        DISPBUF.disp_buf2[j][i*2+1]  = ~ format_temp1[i][(j-16)*2+1];                   
 185   3                                  }
 186   2                      }
 187   1      }

⌨️ 快捷键说明

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