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

📄 function.lst

📁 单片机的主控端
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE FUNCTION
OBJECT MODULE PLACED IN function.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE function.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include "sys.h"
   2          #include "user.h"
   3          #include "ShowLcd.h"
   4          
   5          #define MCUCALLPC       0x5b
   6          #define RECEIVEFILEOK   0x55
   7          
   8          //extern UCHAR arrayNum;                     //???????
   9          extern UCHAR groupCurrent;      //已采集得数据组数
  10          UCHAR AddressL,AddressH;
  11          UCHAR UIData[8] = {0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30};//比基站数据多两个字节,估计当时是为了凑足EEPRO
             -M的整数地址 //save the data from the cell
  12          bit receiveFlag,responseFlag,sendFlag;
  13          data UCHAR *p;
  14          typedef struct
  15          {
  16                  UCHAR cellStack[CELLMAXNUM];
  17                  UCHAR length;
  18                  UCHAR point;
  19          }ASTACK;
  20          ASTACK cellInfo; 
  21          
  22          void UserInit()
  23          {
  24   1              cellInfo.length = 0;
  25   1              cellInfo.point  = 0;
  26   1              cellInfo.cellStack[0] = 0;
  27   1              receiveFlag = 0;
  28   1              responseFlag = 0;
  29   1              sendFlag = 0;
  30   1              SEND_RECEIVE    = 1;           //send status
  31   1      }
  32          
  33          void Write_Display(UCHAR *Display_Addr)
  34          {
  35   1          UCHAR tmp;
  36   1          Write_Addr(0);
  37   1          for(tmp = 0;tmp < 16;tmp ++)
  38   1              {
  39   2                  Write_Data(Display_Addr[tmp]);
  40   2                      Delay(1);
  41   2              }
  42   1              Delay(100);
  43   1          Write_Addr(16);
  44   1          for(tmp = 16;tmp < 32;tmp ++)
  45   1              {
  46   2                  Write_Data(Display_Addr[tmp]);
  47   2                      Delay(1);
  48   2              }
  49   1      }
  50          
  51          
  52          
  53          
  54          void PC_CellDisplay()
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 2   

  55          {
  56   1              Init_LCD();
  57   1          Delay(50);
  58   1          LCDClr();
  59   1          Delay(50);
  60   1          Write_Display(backspack);    
  61   1          Delay(50);
  62   1          Write_Display(selectString);
  63   1      }
  64          
  65          void EEPQ_Display()
  66          {
  67   1              Init_LCD();
  68   1          Delay(50);
  69   1          LCDClr();
  70   1          Delay(50);
  71   1          Write_Display(backspack);    
  72   1          Delay(50);
  73   1          Write_Display(EEPQMover);
  74   1      }
  75          
  76          void EEPnum_Display()
  77          {
  78   1              Init_LCD();
  79   1          Delay(50);
  80   1          LCDClr();
  81   1          Delay(50);
  82   1          Write_Display(backspack);    
  83   1          Delay(50);
  84   1          Write_Display(EEPnum);
  85   1      }
  86          
  87          void NUM_GROUG_DISPLAY()
  88          {
  89   1              Init_LCD();
  90   1          Delay(50);
  91   1          LCDClr();
  92   1          Delay(50);
  93   1          Write_Display(backspack);    
  94   1          Delay(50);
  95   1          Write_Display(GROUP);
  96   1      }
  97          
  98          void Err_Display()
  99          {
 100   1              Init_LCD();
 101   1          Delay(50);
 102   1          LCDClr();
 103   1          Delay(50);
 104   1          Write_Display(backspack);    
 105   1          Delay(50);
 106   1          Write_Display(ErorrMessage);
 107   1      }
 108          void TOPC_display(void)
 109          {
 110   1              Init_LCD();
 111   1          Delay(50);
 112   1          LCDClr();
 113   1          Delay(50);
 114   1          Write_Display(backspack);    
 115   1          Delay(50);
 116   1          Write_Display(TOPCSMessage);
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 3   

 117   1      }
 118          
 119          void DELROM_display(void)
 120          {
 121   1              Init_LCD();
 122   1          Delay(50);
 123   1          LCDClr();
 124   1          Delay(50);
 125   1          Write_Display(backspack);    
 126   1          Delay(50);
 127   1          Write_Display(delterom);
 128   1      }
 129          
 130          void CELLCALL_display(void)
 131          {
 132   1              Init_LCD();
 133   1          Delay(50);
 134   1          LCDClr();
 135   1          Delay(50);
 136   1          Write_Display(backspack);    
 137   1          Delay(50);
 138   1          Write_Display(CALLCELLMessage);
 139   1      }
 140          void EEPROMquery_display(void)
 141          {
 142   1              Init_LCD();
 143   1          Delay(50);
 144   1          LCDClr();
 145   1          Delay(50);
 146   1          Write_Display(backspack);    
 147   1          Delay(50);
 148   1          Write_Display(EEPROMQURRYMess);
 149   1      }
 150          void EEPROMDELE_display(void)
 151          {
 152   1              Init_LCD();
 153   1          Delay(50);
 154   1          LCDClr();
 155   1          Delay(50);
 156   1          Write_Display(backspack);    
 157   1          Delay(50);
 158   1          Write_Display(EEPROMMessage);
 159   1      }
 160          
 161          //the frequency of MCU is 12MHz;
 162          void Delay(UCHAR n)         
 163          {
 164   1              UCHAR i;
 165   1              for(i=0;i<n;i++)
 166   1              {
 167   2              _nop_();
 168   2              _nop_();
 169   2              }
 170   1      }
 171          void Delay5s()
 172          {
 173   1          UCHAR tmp;
 174   1              for(tmp=0;tmp<255;tmp++)
 175   1              {
 176   2                      Delay(255);
 177   2              }
 178   1              for(tmp=0;tmp<255;tmp++)
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 4   

 179   1              {
 180   2                      Delay(255);
 181   2              }
 182   1      
 183   1      }
 184          
 185          void Init_LCD(void)
 186          {
 187   1          Delay(3);
 188   1          Write_Com(0x28);    /*设置工作方式*/
 189   1          Delay(3);
 190   1          Write_Com(0x06);    /*设置输入方式*/
 191   1          Delay(3);
 192   1          Write_Com(0x0d);    /*设置显示方式*/
 193   1          Delay(3);
 194   1          Write_Com(0x01);    /*清屏*/
 195   1          Delay(3);
 196   1      }
 197          
 198          void LCDClr(void)
 199          {
 200   1              Write_Com(0x01);             //0x01
 201   1              Delay(3);
 202   1              Write_Com(0x02);             //0x02
 203   1      }
 204          
 205          void Write_Com(UCHAR Com)
 206          {
 207   1          UCHAR tmp;
 208   1          LCD_RS = 0;
 209   1          LCD_R_W = 1;
 210   1          do
 211   1          {
 212   2              P0 = 0xf0 | P0;      /*读BF,AC高四位*/
 213   2              LCD_E = 1;
 214   2              LCD_E = 1;
 215   2              tmp = P0;
 216   2              LCD_E = 0;
 217   2              LCD_E = 0;
 218   2              LCD_E = 1;          /*读BF,AC低4位*/
 219   2              LCD_E = 1;
 220   2              LCD_E = 0;
 221   2              LCD_E = 0;
 222   2          }
 223   1          while(tmp & 0x80);
 224   1          LCD_R_W = 0;
 225   1          P0 = (P0 & 0x0f) | (Com & 0xf0);
 226   1          LCD_E = 1;
 227   1          LCD_E = 1;
 228   1          LCD_E = 0;
 229   1          LCD_E = 0;
 230   1          P0 = (P0 & 0x0f) | (Com << 4);
 231   1          LCD_E = 1;
 232   1          LCD_E = 1;
 233   1          LCD_E = 0;
 234   1          LCD_E = 0;
 235   1      }
 236          
 237          void Write_Addr(UCHAR Dis_Addr)
 238          {
 239   1      
 240   1              if((Dis_Addr >=0) && (Dis_Addr <16))
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 5   

 241   1                      Write_Com((Dis_Addr ) | 0x80);
 242   1              else if((Dis_Addr >=16) && (Dis_Addr <32))
 243   1                              Write_Com(((Dis_Addr-16) + 0x40) | 0x80 );
 244   1      }
 245          
 246          void Write_Data(UCHAR Ddata)
 247          {
 248   1          UCHAR tmp;
 249   1          LCD_RS = 0;
 250   1          LCD_R_W = 1;
 251   1          do
 252   1              {
 253   2              P0 = 0xf0 | P0;      /*读BF,AC高四位*/
 254   2              LCD_E = 1;
 255   2              LCD_E = 1;
 256   2              tmp = P0;
 257   2              LCD_E = 0;
 258   2              LCD_E = 0;
 259   2              LCD_E = 1;          /*读BF,AC低4位*/
 260   2              LCD_E = 1;
 261   2              LCD_E = 0;
 262   2              LCD_E = 0;
 263   2          }
 264   1              while(tmp & 0x80);
 265   1          LCD_RS = 1;
 266   1          LCD_R_W = 0;
 267   1          P0 = (P0 & 0x0f) | (Ddata & 0xf0);
 268   1          LCD_E = 1;
 269   1          LCD_E = 1;
 270   1          LCD_E = 0;
 271   1          LCD_E = 0;
 272   1          P0 = (P0 & 0x0f) | (Ddata << 4);
 273   1          LCD_E = 1;
 274   1          LCD_E = 1;
 275   1          LCD_E = 0;
 276   1          LCD_E = 0;
 277   1      }
 278          
 279          void LCDChar(UCHAR position,UCHAR asc)
 280          {
 281   1              Write_Addr(position);
 282   1              Write_Data(asc);
 283   1      }
 284          
 285          void LCDString(UCHAR position,UCHAR *parrow,UCHAR num)
 286          {
 287   1          UCHAR tmp;
 288   1              if(position<16)
 289   1              {
 290   2                      Write_Addr(position);
 291   2              for(tmp=0;tmp<num;tmp++)
 292   2                 {
 293   3                    Write_Data(parrow[tmp]);
 294   3                 }
 295   2              }
 296   1          if(position>=16)
 297   1          {
 298   2              Write_Addr(position);
 299   2              for(tmp=0;tmp<num;tmp++)
 300   2              {
 301   3                      Write_Data(parrow[tmp]);
 302   3              }
C51 COMPILER V7.09   FUNCTION                                                              10/11/2006 16:32:11 PAGE 6   

 303   2          }
 304   1      }

⌨️ 快捷键说明

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