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

📄 sy.lst

📁 本程序能够实现液晶显示
💻 LST
字号:
C51 COMPILER V7.50   SY                                                                    08/26/2007 12:58:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SY
OBJECT MODULE PLACED IN sy.OBJ
COMPILER INVOKED BY: D:\keil uvision3\C51\BIN\C51.EXE sy.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          #include "absacc.h"
   4          #include "intrins.h"
   5          sbit RS  = P2^0;
   6          sbit RW  = P2^1;
   7          sbit E   = P2^2;
   8          sbit PSB = P2^3;
   9          sbit RST = P2^4;
  10          
  11          #define DATA P1
  12          
  13          /*void delay(const unsigned char i)
  14          {
  15                  unsigned char j;
  16          
  17                  j = i;
  18                  while(--j);
  19                  j = i;
  20                  while(--j);             
  21          } */
  22          
  23          /*****************************************
  24          名称:void delay_10us( unsigned char x )
  25          功能:延时10us
  26          实参输入:unsigned char x
  27          返回值:void
  28          *****************************************/
  29          void delay_10us( unsigned char x )
  30          {
  31   1           while( x-- );        
  32   1      }
  33          
  34          /*****************************************
  35          名称:void delay_ms( unsigned int cnt )
  36          功能:延时1ms
  37          实参输入:unsigned int cnt
  38          返回值:void
  39          *****************************************/
  40          void delay_ms( unsigned int cnt ) 
  41          { 
  42   1           unsigned char i; 
  43   1           do{ 
  44   2                  i = 4; 
  45   2                  do{ 
  46   3                         delay_10us(39); 
  47   3                     } while(--i); 
  48   2              } while( --cnt ); 
  49   1      } 
  50          
  51          
  52          void smNop(void)
  53          {
  54   1              _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
  55   1              _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
C51 COMPILER V7.50   SY                                                                    08/26/2007 12:58:15 PAGE 2   

  56   1      }
  57          const unsigned char code suc[] =
  58          {
  59                  "测试成功"
  60          };/*
  61          **      Create : 2007 7 31
  62          **      Author : oDon
  63          **      email  : yuanonline@hotmail.com 
  64          **      Description:**
  65          **      This project is using for a library of solutions of CM12864
  66          **      functions will implements to display ZH_CN ASCII IMAGE on
  67          **      CM12864 LCD.etc..
  68          */
  69          
  70          
  71          
  72          
  73          //volatile uchar command;                               /*Command Word*/
  74          
  75          /**************************************************
  76          *                       Function Definations Below                        */
  77          
  78          void check_busy(void);
  79          void send_com(const unsigned char command);
  80          void send_com_init(const unsigned char command_init);
  81          void send_data(const unsigned char data_a);
  82          void send_data(const unsigned char data_a);
  83          void clear_LCD(void);
  84          void initial_LCD(void); 
  85          void Display_num( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length );
  86          void Display_ch( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length );
  87          /*                      Function Definations End                          *
  88          **************************************************/
  89          
  90          void main(void)
  91          {
  92   1              clear_LCD();
  93   1              smNop();
  94   1              initial_LCD();
  95   1              smNop();
  96   1              clear_LCD();
  97   1              smNop();
  98   1              Display_ch(suc, 2, 1, 6);
  99   1              while(1);
 100   1                      
 101   1      }
 102          
 103          
 104          /******************************************
 105          功能:void check_busy( void )
 106          功能:检查是否LCD忙碌的子程序
 107          实参输入:void
 108          返回值:void
 109          ******************************************/
 110          void check_busy(void) 
 111          {        
 112   1               P1    = 0xff; 
 113   1           RS    = 0; 
 114   1           RW    = 1; 
 115   1           while (1) 
 116   1           {
 117   2                    smNop(); 
C51 COMPILER V7.50   SY                                                                    08/26/2007 12:58:15 PAGE 3   

 118   2                E =1; 
 119   2                smNop();               
 120   2                        if( P1 < 0x80 ) 
 121   2                            break; 
 122   2                smNop();
 123   2                E =0; 
 124   2            } 
 125   1           E = 0; 
 126   1      }
 127          
 128          /*****************************************
 129          名称:void send_com( unsigned char command )
 130          功能:写指令
 131          实参输入:unsigned char command
 132          返回值:void
 133          *****************************************/
 134          void send_com(const unsigned char command) 
 135          { 
 136   1           check_busy(); 
 137   1           RS = 0; 
 138   1           RW = 0;     
 139   1               P1 = command; 
 140   1           E  = 1; 
 141   1           smNop(); 
 142   1           E = 0; 
 143   1      }
 144          
 145          /********************************************************
 146          名称:void send_com_init( unsigned char command_init )
 147          功能:LCD初始化时的送命令
 148          实参输入:unsigned char command_init
 149          返回值:void
 150          ********************************************************/
 151          void send_com_init(const unsigned char command_init ) 
 152          { 
 153   1           RS    = 0; 
 154   1           RW    = 0;
 155   1               P1    = command_init; 
 156   1           E     = 1; 
 157   1           smNop();
 158   1           E     = 0; 
 159   1      }
 160          
 161          /*******************************************************
 162          名称:void send_data( unsigned char data_a )
 163          功能:写数据
 164          实参输入:unsigned char data_a
 165          返回值:void
 166          *******************************************************/ 
 167          void send_data(const unsigned char data_a)
 168          { 
 169   1           check_busy(); 
 170   1           RS    = 1;                 //DB7-DB0为显示数据
 171   1           RW    = 0;             //写入数据
 172   1               P1    = data_a; 
 173   1           E     = 1;         
 174   1           smNop();
 175   1           E     = 0;                         //下降沿
 176   1      }
 177          
 178          /*********************************************************
 179          名称:void clear_LCD( void )
C51 COMPILER V7.50   SY                                                                    08/26/2007 12:58:15 PAGE 4   

 180          功能:清屏
 181          实参输入:void
 182          返回值:void
 183          *********************************************************/
 184          void clear_LCD(void) 
 185          { 
 186   1           send_com(0x01);  //清除显示//
 187   1           send_com(0x34);  // 功能设定:扩充指令集动作 //
 188   1           send_com(0x30);   //功能设定:基本指令集动作//
 189   1      }
 190          
 191          /*************************************************************
 192          名称:void initial_LCD( void )
 193          功能:LCD初始化
 194          实参输入:void
 195          返回值:void
 196          *************************************************************/
 197          void initial_LCD(void) 
 198          {   
 199   1           PSB = 1;   //并行传送
 200   1           RST = 0;   //复位 
 201   1           _nop_(); 
 202   1           _nop_(); 
 203   1           RST = 1;   //不复位
 204   1           _nop_(); 
 205   1           delay_10us(10); 
 206   1           send_com_init(0x30);//30H--基本指令操作 
 207   1           delay_10us(4); 
 208   1           send_com_init(0x0c);//开显示,关光标,不闪烁。 
 209   1           delay_10us(10); 
 210   1           send_com_init(0x01);//清除显示 
 211   1           delay_ms(10); 
 212   1           send_com_init(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。     
 213   1      }
 214          
 215          
 216          /*********************************************************************
 217          名称:void Display_num( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 218          功能:显示字符串                                 2                                        1                                             6
 219          参数输入:unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length
 220          返回值:void
 221          *********************************************************************/
 222          void Display_num( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 223          {    
 224   1           unsigned char ddram = 0x00;
 225   1               unsigned char i1;
 226   1      
 227   1               if(line == 1)
 228   1                      ddram = 0x80;
 229   1               if(line == 2)
 230   1                      ddram = 0x90;
 231   1               if(line == 3)
 232   1                      ddram = 0x88;
 233   1               if(line == 4)
 234   1                  ddram = 0x98;
 235   1      
 236   1           ddram = ddram + col - 1;
 237   1      
 238   1           send_com( ddram );  //定位显示起始地址
 239   1      
 240   1               for( i1 = 0;i1 < length;i1 ++ )
 241   1               {
C51 COMPILER V7.50   SY                                                                    08/26/2007 12:58:15 PAGE 5   

 242   2                       send_data( ptr[i1] );//输出单个字符 
 243   2           }            
 244   1      }
 245          
 246          /********************************************************
 247          名称: void Display_ch( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 248          功能:显示汉字子程序
 249          实参输入:unsigned char *ptr, unsigned char line, unsigned char col, unsigned length
 250          返回值:void
 251          ********************************************************/
 252          void Display_ch( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 253          {
 254   1      
 255   1               unsigned char ddram = 0x00;
 256   1               unsigned char i1;
 257   1               if(line == 1)
 258   1                      ddram = 0x80;
 259   1               if(line == 2)
 260   1                      ddram = 0x90;
 261   1               if(line == 3)
 262   1                      ddram = 0x88;
 263   1               if(line == 4)
 264   1                  ddram = 0x98;
 265   1      
 266   1               ddram = ddram + col - 1;
 267   1           send_com( ddram );   //定位显示起始地址
 268   1               for( i1 = 0;i1 < length;i1 ++ )
 269   1               {
 270   2                       send_data(ptr[i1*2]);//输出单个字符
 271   2                       send_data(ptr[i1*2+1]); 
 272   2           }            
 273   1      }
 274          /****************************************************************
 275          -----------------------------------------------------------------
 276                                     END  OF      MAIN.C
 277          -----------------------------------------------------------------
 278          ****************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    366    ----
   CONSTANT SIZE    =      9    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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