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

📄 panel.lst

📁 64输入32输出单片机程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 1   


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

stmt level    source

   1          //-------------------------------------------------------------------------
   2          //      Filename :  Panel.c
   3          //      Language :  C for AT89S8252
   4          //      Revision :  1.0
   5          //  Initial Date :  24/06/2000
   6          //   Last Modify :
   7          //  System clock :  24.00MHZ
   8          //   Description :  Lcd40x4 Display Routine Function For "RS" or "KOREA"
   9          //                  P1 is used display Port: P1.3=EN2 P1.2=EN1 P1.0=RS
  10          //-------------------------------------------------------------------------
  11          #define _PANEL_H_
  12          #include <reg52.h>
  13          #include "Panel.h"
  14          #undef _PANEL_H_
  15          //-------------------------------------------------------------------------
  16          #define  DispPort  P1
  17          #define  KeypadPort  P0
  18          #define  OutputPort     P2
  19          #define BAUD19200   65536-(24000000/(32*19200))
  20          sbit K0 = P0^0;
  21          sbit K1 = P0^1;
  22          sbit K2 = P0^2;
  23          sbit K3 = P0^3;
  24          sbit K4 = P0^4;
  25          sbit K5 = P0^5;
  26          sbit K6 = P0^6;
  27          sbit K7 = P0^7;
  28          
  29          //-------------------------------------------------------------------------
  30          #define MSB_PERIOD  -20000/256
  31          #define LSB_PERIOD  -20000%256
  32          //--------------------------------------------------------------------------
  33          unsigned char outp_buf=0xff;
  34          unsigned char key_row_ptr=0;
  35          unsigned char key_ptr;
  36          unsigned char inc_ref;
  37          char manual_buf[4];
  38          
  39          
  40          //-------------------------------------------------------------------------
  41          // function prototype
  42          void _init_serial(unsigned int);
  43          void _set_display (char, char);
  44          void _res_display (char, char);
  45          void _write_char (char, char);
  46          void _delay5ms (void);
  47          void _delay200us (void);
  48          void _delay100us (void);
  49          void _delay5us (void);
  50          //-------------------------------------------------------------------------
  51          //
  52          //      Routinues for 40x4 LCD Display.
  53          //
  54          //-------------------------------------------------------------------------
  55          void _initial_disp (void)
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 2   

  56          {
  57   1          _res_display(0, 0x30);
  58   1          _res_display(1, 0x30);
  59   1          _delay5ms();
  60   1          _res_display(0, 0x30);
  61   1          _res_display(1, 0x30);
  62   1          _delay200us();
  63   1          _res_display(0, 0x30);
  64   1          _res_display(1, 0x30);
  65   1          _delay200us();
  66   1          _res_display(0, 0x20);
  67   1          _res_display(1, 0x20);
  68   1          _delay200us();
  69   1          _set_display(0, 0x2c);
  70   1          _set_display(1, 0x2c);
  71   1          _delay200us();
  72   1          _set_display(0, 0x0f);
  73   1          _set_display(1, 0x0f);
  74   1          _delay200us();
  75   1          _set_display(0, 0x01);
  76   1          _set_display(1, 0x01);
  77   1          _delay200us();
  78   1          _set_display(0, 0x06);
  79   1          _set_display(1, 0x06);
  80   1          _delay5ms();
  81   1          _set_display(0, 0x0c);
  82   1          _set_display(1, 0x0c);
  83   1      }
  84          //-------------------------------------------------------------------------
  85          
  86          void _clear_disp (void)
  87          {
  88   1          _set_display(0, 0x01);
  89   1          _set_display(1, 0x01);
  90   1          _delay5ms();
  91   1      }
  92          //-------------------------------------------------------------------------
  93          void _cursor_switch (char r,char stus)
  94          {
  95   1          switch(r){
  96   2              case 0 :
  97   2              case 1 :
  98   2                  r = 0;
  99   2                  break;
 100   2              case 2 :
 101   2              case 3 :
 102   2                  r = 1;
 103   2          }
 104   1          if (stus == ON )
 105   1              _set_display(r, 0x0f);    // r row ON ,r=0 ,1&2 row r=1 3&4 row
 106   1          else
 107   1              _set_display(r, 0x0c);    // r row OFF
 108   1      }
 109          //-------------------------------------------------------------------------
 110          void _cursor_position (char r, char c)
 111          {
 112   1          switch(r){
 113   2              case 1 :
 114   2                  c += 0x40;
 115   2              case 0 :
 116   2                  c |= 0x80;
 117   2                  _set_display(0,c);
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 3   

 118   2                  break;
 119   2              case 3 :
 120   2                  c += 0x40;
 121   2              case 2 :
 122   2                  c |= 0x80;
 123   2                  _set_display(1,c);
 124   2          }
 125   1      }
 126          //-------------------------------------------------------------------------
 127          void _disp_msge (char r, char c, char *msge)
 128          {
 129   1          char i=0;
 130   1          switch(r){
 131   2              case 1 :
 132   2                  c += 0x40;
 133   2              case 0 :
 134   2                  _set_display(0, c | 0x80);
 135   2                  while (msge[i] != 0)
 136   2                      _write_char(0, msge[i++]);
 137   2                  break;
 138   2              case 3 :
 139   2                  c += 0x40;
 140   2              case 2 :
 141   2                  _set_display(1, c | 0x80);
 142   2                  while (msge[i] != 0)
 143   2                      _write_char(1, msge[i++]);
 144   2                  break;
 145   2          }
 146   1      }
 147          //-------------------------------------------------------------------------
 148          void _disp_char (char r, char c, char v)
 149          {
 150   1          switch (r) {
 151   2              case 0 :
 152   2                  _set_display(0,0x80+c);
 153   2                  r = 0;
 154   2                  break;
 155   2              case 1 :
 156   2                  _set_display(0,0xc0+c);
 157   2                  r = 0;
 158   2                  break;
 159   2              case 2 :
 160   2                  _set_display(1,0x80+c);
 161   2                  r = 1;
 162   2                  break;
 163   2              case 3 :
 164   2                  _set_display(1,0xc0+c);
 165   2                  r = 1;
 166   2                  break;
 167   2          }
 168   1          _write_char(r,(char)('0'+(v/10)));
 169   1          _write_char(r,(char)('0'+(v%10)));
 170   1      }
 171          //-------------------------------------------------------------------------
 172          /* void _write_ascii (char r, char c, char ascii)
 173          {
 174              switch (r) {
 175                  case 0 :
 176                      _set_display(0,0x80+c);
 177                      r = 0;
 178                      break;
 179                  case 1 :
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 4   

 180                      _set_display(0,0xc0+c);
 181                      r = 0;
 182                      break;
 183                  case 2 :
 184                      _set_display(1,0x80+c);
 185                      r = 1;
 186                      break;
 187                  case 3 :
 188                      _set_display(1,0xc0+c);
 189                      r = 1;
 190                      break;
 191              }
 192              _write_char(r,ascii);
 193          }  */
 194          //-------------------------------------------------------------------------
 195          void _disp_interge (char r, char c, unsigned v)
 196          {
 197   1          switch(r){
 198   2              case 0 :
 199   2                  _set_display(0,0x80+c);
 200   2                  r = 0;
 201   2                  break;
 202   2              case 1 :
 203   2                  _set_display(0,0xc0+c);
 204   2                  r = 0;
 205   2                  break;
 206   2              case 2 :
 207   2                  _set_display(1,0x80+c);
 208   2                  r = 1;
 209   2                  break;
 210   2              case 3 :
 211   2                  _set_display(1,0xc0+c);
 212   2                  r = 1;
 213   2                  break;
 214   2          }
 215   1      
 216   1          _write_char(r,(char)('0'+(v/1000)));
 217   1          v %= 1000;
 218   1          _write_char(r,(char)('0'+(v/100)));
 219   1          v %= 100;
 220   1          _write_char(r,(char)('0'+(v/10)));
 221   1          _write_char(r,(char)('0'+(v%10)));
 222   1      }
 223          //-------------------------------------------------------------------------
 224          void _disp_float (char r, char c, int v)
 225          {
 226   1          switch(r){
 227   2              case 0 :
 228   2                  _set_display(0,0x80+c);
 229   2                  r = 0;
 230   2                  break;
 231   2              case 1 :
 232   2                  _set_display(0,0xc0+c);
 233   2                  r = 0;
 234   2                  break;
 235   2              case 2 :
 236   2                  _set_display(1,0x80+c);
 237   2                  r = 1;
 238   2                  break;
 239   2              case 3 :
 240   2                  _set_display(1,0xc0+c);
 241   2                  r = 1;
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 5   

 242   2                  break;
 243   2          }
 244   1          if(v>999)
 245   1          _write_char(r,(char)('0'+(v/1000)));
 246   1          v %= 1000;

⌨️ 快捷键说明

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