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

📄 display.lst

📁 一个关于UCOS的KEIL工程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN DISPLAY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DISPLAY.C LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          **===========================================================================
   3          **  lcd driver NT7606
   4          **===========================================================================
   5          */
   6          
   7          /*
   8          **---------------------------------------------------------------------------
   9             xm contrast menu: (default: level 4)
  10             +----------------------------------------------------------------------+
  11             | LCD level  |  contrast value                                         |
  12             |----------------------------------------------------------------------|
  13             | 1          |  0x1B                                                   |
  14             | 2          |  0x16                                                   |
  15             | 3          |  0x12                                                   |
  16             | 4          |  0x0D                                                   |
  17             | 5          |  0x09                                                   |
  18             | 6          |  0x04                                                   |
  19             | 7          |  0x00                                                   |
  20             +----------------------------------------------------------------------+
  21          **---------------------------------------------------------------------------
  22          */
  23          
  24          #include <reg51.h>
  25          
  26          sbit LCD_SI     = P1^3;//spi data
  27          sbit LCD_SCL    = P1^2;//spi clk
  28          sbit LCD_RS     = P1^5;//instruction(0)/data(1) register
  29          sbit LCD_CS     = P1^4;//chip select(0=active)
  30          sbit LCD_RST    = P1^1;
  31          sbit LCD_BL     = P1^6;
  32          
  33          #define LCD_RST_SET()           LCD_RST = 1;//reset(0=reset)
  34          #define LCD_RST_CLR()           LCD_RST = 0;
  35          #define LCD_BL_ON()                     LCD_BL = 1;
  36          #define LCD_BL_OFF()            LCD_BL = 0;
  37          
  38          //instruction 3:power save set
  39          #define powerup         0x0E
  40          #define powersave       0x0D
  41          //instruction 4:function set
  42          #define func2line       0x10
  43          #define func3line       0x14
  44          //instruction 5:line shift mode
  45          #define firlin1         0x18
  46          #define firlin2         0x19
  47          #define firlin3         0x1A
  48          #define firlin4         0x1B
  49          //instruction 6:bias control
  50          #define bias5           0x1E
  51          #define bias4           0x1F
  52          //instruction 7:power control set
  53          #define poweron1        0x24
  54          #define poweron2        0x26
  55          #define poweron         0x27
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 2   

  56          #define poweroff1       0x25
  57          #define poweroff2       0x24
  58          #define poweroff        0x20
  59          //instruction 8:display control
  60          #define dispon          0x29
  61          #define dispoff         0x28
  62          //icon position
  63          #define ICON_Antenna                    0       //fact address:01
  64          #define ICON_LowSignalBar               1       //fact address:02
  65          #define ICON_MediumSignalBar    2       //fact address:03
  66          #define ICON_HighSignalBar              3       //fact address:04
  67          #define ICON_Scan                               4       //fact address:05
  68          #define ICON_Display1                   5       //fact address:21
  69          #define ICON_Display2                   6       //fact address:22
  70          #define ICON_Display3                   7       //fact address:23
  71          #define ICON_Category                   8       //fact address:24
  72          #define ICON_BankA                              9       //fact address:61
  73          #define ICON_BankB                              10      //fact address:62
  74          #define ICON_BankC                              11      //fact address:63
  75          #define ICON_Direct                             12      //fact address:64
  76          //#define ICON_                                 13      //reserved
  77          //#define ICON_                                 14      //reserved
  78          //#define ICON_                                 15      //reserved
  79          
  80          /*CGRAM*/
  81          unsigned char code CGRAM[8][8] =
  82          {
  83                  (0, 0, 0, 0, 0, 0, 0, 0),
  84                  (0, 0, 0, 0, 0, 0, 0, 0),
  85                  (0, 0, 0, 0, 0, 0, 0, 0),
  86                  (0, 0, 0, 0, 0, 0, 0, 0),
  87                  (0, 0, 0, 0, 0, 0, 0, 0),
  88                  (0, 0, 0, 0, 0, 0, 0, 0),
  89                  (0, 0, 0, 0, 0, 0, 0, 0),
  90                  (0, 0, 0, 0, 0, 0, 0, 0),
  91          };
  92          
  93          #define power_on_sequ()                 LCD_RS = 0;\
  94                                                                          sendb(poweron1);\
  95                                                                          delay1_ms(2);\
  96                                                                          sendb(poweron2);\
  97                                                                          delay1_ms(2);\
  98                                                                          sendb(poweron);\
  99          
 100          #define power_off_sequ()                LCD_RS = 0;\
 101                                                                          sendb(poweroff1);\
 102                                                                          delay1_ms(50);\
 103                                                                          sendb(poweroff2);\
 104                                                                          delay1_ms(2);\
 105                                                                          sendb(poweroff);\
 106                                                                          delay1_ms(2);
 107          
 108          /*Icon buffer*/
 109          //unsigned char pdata IconBuff[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,};
 110          unsigned int IconWord = 0;
 111          
 112          // Contrast level
 113          //unsigned char code ContrastTab[7] = {0x18, 0x14, 0x10, 0x0C, 0x08, 0x04, 0x00};
 114          
 115          //void power_on_sequ();
 116          //void power_off_sequ();
 117          void lcdcontrast_set(unsigned char volume)reentrant;
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 3   

 118          void doubheight_on(unsigned char line)reentrant;
 119          void doubheight_off()reentrant;
 120          void fullscr(unsigned char cdata)reentrant;
 121          
 122          void delay_us(unsigned char i) reentrant
 123          {
 124   1              for(; i>0; i--);
 125   1      }
 126          
 127          void delay1_ms(unsigned char count) reentrant
 128          {
 129   1              unsigned int i;
 130   1              for(; count>0; count--)
 131   1              {
 132   2                      for(i=124; i>0; i--);
 133   2              }
 134   1      }
 135          
 136          void sendb(unsigned char x) reentrant
 137          {
 138   1              unsigned char i;
 139   1              
 140   1              for (i=0; i<8; i++)
 141   1              {
 142   2                      LCD_SCL = 0;
 143   2                      x <<= 1;
 144   2                      LCD_SI = CY;
 145   2                      LCD_SCL = 1;
 146   2              }
 147   1              LCD_SCL = 0;
 148   1              LCD_SI = 0;
 149   1      }
 150          
 151          /*
 152          **===========================================================================
 153          **  x.    Function set
 154          **===========================================================================
 155          */
 156          
 157          void nt7606_init() reentrant
 158          {
 159   1              unsigned char i;
 160   1              unsigned char code *p;
 161   1              
 162   1              LCD_CS = 1;
 163   1              
 164   1              /*reset*/
 165   1              LCD_RST_CLR();
 166   1              delay_us(50);
 167   1              LCD_RST_SET();
 168   1              //delay_us(20);
 169   1              delay1_ms(10);
 170   1              
 171   1              LCD_CS = 0;
 172   1              LCD_RS = 0;
 173   1              /*function set*/
 174   1              sendb(func2line);
 175   1              sendb(firlin1);
 176   1              sendb(bias5);
 177   1              /*power up*/
 178   1              sendb(powerup);
 179   1              //sendb(poweron);
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 4   

 180   1              power_on_sequ();
 181   1              delay1_ms(20);
 182   1              
 183   1              /*clear ICONRAM*/
 184   1              sendb(0x40);
 185   1              LCD_RS = 1;
 186   1              for(i=0; i<16; i++)
 187   1              {
 188   2                      sendb(0);
 189   2              }
 190   1              
 191   1              /*clear DDRAM*/
 192   1              LCD_RS = 0;
 193   1              sendb(0x80);
 194   1              LCD_RS = 1;
 195   1              for(i=0; i<64; i++)
 196   1              {
 197   2                      sendb(0x20);
 198   2              }
 199   1              
 200   1              /*CGRAM ini*/
 201   1              p = &CGRAM[0][0];
 202   1              for(i=0; i<64; i++, p++)
 203   1              {
 204   2                      sendb(*p);
 205   2              }
 206   1              
 207   1              /*display on*/
 208   1              LCD_RS = 0;
 209   1              sendb(dispon);
 210   1              
 211   1              LCD_CS = 1;
 212   1              
 213   1              /*contrast set*/
 214   1              lcdcontrast_set(0x0F);
 215   1              
 216   1              LCD_RS = 0;
 217   1      }
 218          
 219          void lcdcontrast_set(unsigned char volume) reentrant
 220          {
 221   1              LCD_CS = 0;
 222   1              
 223   1              LCD_RS = 0;
 224   1              sendb(0x50);//eletronic volume address
 225   1              LCD_RS = 1;
 226   1              sendb(volume);
 227   1              
 228   1              LCD_CS = 1;
 229   1              
 230   1              LCD_RS = 0;
 231   1      }
 232          
 233          /*
 234          void doubheight_on(unsigned char line)
 235          {
 236                  line&=0x03;
 237                  LCD_CS=0;
 238                  LCD_RS=0;
 239                  sendb(line|0x08);
 240                  LCD_CS=1;
 241          }
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 5   

 242          void doubheight_off()
 243          {
 244                  LCD_CS=0;
 245                  LCD_RS=0;
 246                  sendb(0x08);
 247                  LCD_CS=1;
 248          }
 249          */
 250          
 251          /*
 252          **===========================================================================
 253          **  x.    Power control
 254          **===========================================================================
 255          */
 256          
 257          /*
 258          void power_on_sequ()
 259          {
 260                  LCD_RS=0;
 261                  sendb(poweron1);
 262                  delay1_ms(2);
 263                  sendb(poweron2);
 264                  delay1_ms(2);
 265                  sendb(poweron);
 266          }
 267          
 268          void power_off_sequ()
 269          {
 270                  LCD_RS=0;
 271                  sendb(poweroff1);
 272                  delay1_ms(50);
 273                  sendb(poweroff2);
 274                  delay1_ms(2);
 275                  sendb(poweroff);
 276          }
 277          */
 278          
 279          void nt7606_power_wake() reentrant
 280          {
 281   1              unsigned char i;
 282   1              
 283   1              LCD_CS = 0;
 284   1              
 285   1              LCD_RS = 0;
 286   1              sendb(powerup);
 287   1              //sendb(poweron);
 288   1              power_on_sequ();
 289   1              for(i=0; i<10; i++)
 290   1              {
 291   2                      delay_us(200);
 292   2              }
 293   1              sendb(dispon);
 294   1              
 295   1              LCD_CS = 1;
 296   1      }
 297          
 298          void nt7606_power_save() reentrant
 299          {
 300   1              LCD_CS = 0;
 301   1              
 302   1              LCD_RS = 0;
 303   1              sendb(dispoff);
C51 COMPILER V8.08   DISPLAY                                                               04/08/2008 09:22:25 PAGE 6   

 304   1              sendb(powersave);
 305   1              //sendb(poweroff);
 306   1              power_off_sequ();
 307   1              

⌨️ 快捷键说明

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