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

📄 12864.lst

📁 单片机的实用程序代码
💻 LST
字号:
C51 COMPILER V7.50   12864                                                                 11/10/2010 11:25:06 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: E:\Program Files\KEIL\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg52.h"
   2          #include "intrins.h"
   3          sbit io_LCD12864_RS = P2^5 ;
   4          sbit io_LCD12864_RW = P2^6 ;
   5          sbit io_LCD12864_EN = P2^7 ;
   6          
   7          #define io_LCD12864_DATAPORT P0
   8          
   9          #define SET_DATA  io_LCD12864_RS = 1 ;
  10          #define SET_INC  io_LCD12864_RS = 0 ;
  11          #define SET_READ  io_LCD12864_RW = 1 ;
  12          #define SET_WRITE io_LCD12864_RW = 0 ;
  13          #define SET_EN    io_LCD12864_EN = 1 ;
  14          #define CLR_EN    io_LCD12864_EN = 0 ;
  15          
  16          void v_Lcd12864CheckBusy_f( void )      //忙检测函数
  17          {
  18   1          unsigned int nTimeOut = 0 ;
  19   1          SET_INC
  20   1          SET_READ
  21   1          CLR_EN
  22   1          SET_EN
  23   1          while( ( io_LCD12864_DATAPORT & 0x80 ) && ( ++nTimeOut != 0 ) ) ;
  24   1          CLR_EN
  25   1          SET_INC
  26   1          SET_READ
  27   1      }
  28          
  29          void v_Lcd12864SendCmd_f( unsigned char byCmd )      //发送命令
  30          {
  31   1          v_Lcd12864CheckBusy_f() ;
  32   1          SET_INC
  33   1          SET_WRITE
  34   1          CLR_EN
  35   1          io_LCD12864_DATAPORT = byCmd ;
  36   1          _nop_();
  37   1          _nop_();
  38   1          SET_EN  
  39   1          _nop_();
  40   1          _nop_();
  41   1          CLR_EN
  42   1          SET_READ
  43   1          SET_INC
  44   1      }
  45          void v_Lcd12864SendData_f( unsigned char byData )    //发送数据
  46          {
  47   1          v_Lcd12864CheckBusy_f() ;
  48   1          SET_DATA
  49   1          SET_WRITE
  50   1          CLR_EN
  51   1          io_LCD12864_DATAPORT = byData ;
  52   1          _nop_();
  53   1          _nop_();
  54   1          SET_EN  
  55   1          _nop_();
C51 COMPILER V7.50   12864                                                                 11/10/2010 11:25:06 PAGE 2   

  56   1          _nop_();
  57   1          CLR_EN
  58   1          SET_READ
  59   1          SET_INC
  60   1      }
  61          
  62          void v_DelayMs_f( unsigned int nDelay )              //延时
  63          {
  64   1          unsigned int i ;
  65   1          for( ; nDelay > 0 ; nDelay-- )
  66   1          {
  67   2              for( i = 125 ; i > 0 ; i-- ) ;
  68   2          }
  69   1      }
  70          
  71          void v_Lcd12864Init_f( void )                  //初始化
  72          {
  73   1          v_Lcd12864SendCmd_f( 0x30 ) ;              //基本指令集
  74   1          v_DelayMs_f( 50 ) ;
  75   1          v_Lcd12864SendCmd_f( 0x01 ) ;              //清屏
  76   1          v_DelayMs_f( 50 ) ;
  77   1          v_Lcd12864SendCmd_f( 0x06 ) ;              //光标右移
  78   1          v_DelayMs_f( 50 ) ;
  79   1          v_Lcd12864SendCmd_f( 0x0c ) ;              //开显示
  80   1      }
  81          void v_Lcd12864SetAddress_f( unsigned char x, y )  //地址转换
  82          {
  83   1          unsigned char byAddress ;
  84   1          switch( y )
  85   1          {
  86   2              case 0 :    byAddress = 0x80 + x ;
  87   2                  break;
  88   2              case 1 :    byAddress = 0x90 + x ;
  89   2                  break ;
  90   2              case 2 :    byAddress = 0x88 + x ;
  91   2                  break ;
  92   2              case 3 :    byAddress = 0x98 + x ;
  93   2                  break ;
  94   2              default :
  95   2                  break ;
  96   2          }
  97   1          v_Lcd12864SendCmd_f( byAddress ) ;
  98   1      }
  99          void v_Lcd12864PutString_f( unsigned char x, unsigned char y, unsigned char *pData )
 100          {
 101   1          v_Lcd12864SetAddress_f( x, y ) ;
 102   1          while( *pData != '\0' )
 103   1          {
 104   2              v_Lcd12864SendData_f( *pData++ ) ;
 105   2          }
 106   1      }
 107          void main( void )
 108          {
 109   1          v_Lcd12864Init_f() ;  
 110   1          v_Lcd12864PutString_f( 0,0, "  东流电子") ;
 111   1          v_Lcd12864PutString_f( 2,1, "开发板商城") ;
 112   1          v_Lcd12864PutString_f( 0,2, "*LCD12864ST7920*") ;
 113   1          v_Lcd12864PutString_f( 0,3, "★○◇◆※☆■△") ;
 114   1          while( 1 ) ;
 115   1      }


C51 COMPILER V7.50   12864                                                                 11/10/2010 11:25:06 PAGE 3   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    278    ----
   CONSTANT SIZE    =     56    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   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 + -