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

📄 lcd1602a.lst

📁 LCD(1602).rar
💻 LST
字号:
C51 COMPILER V7.06   LCD1602A                                                              07/11/2009 14:45:46 PAGE 1   


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

stmt level    source

   1          /**********************************Copyright (c)**************************************************
   2          **                               浙 江 师 范 大 学
   3          **   
   4          **--------------文件信息---------------------------------------------------------------------------
   5          功能:在LCD上显示汉字信息    
   6          作者:陈希
   7          时间:2008-08-20
   8          版本:V1.0
   9          注:
  10          
  11          **--------------当前版本修订-----------------------------------------------------------------------
  12          ** 修改人: 
  13          ** 日 期:
  14          ** 描 述:
  15          **
  16          **-------------------------------------------------------------------------------------------------
  17          ***************************************************************************************************/
  18          //-----------------------------------------------------------------------------
  19          //程序描述:
  20          //  这个程序可以在该液晶模块上显示字符:"  BT F020 V1.0  www.xhl.com.cn"
  21          //  此程序用4位数据线来驱动液晶
  22          //  液晶接线方法 :1脚接地;2脚接+5V;3脚通过1个10K电阻接+5v,通过1个430欧电阻接地;
  23          //  15脚接地;16脚通过1个15R电阻接+5v。液晶别的引脚直接接相应的数据或控制信号线。
  24          //作者:ZDP
  25          //时间:2005-11-30
  26          //版本:V1.0
  27          //-----------------------------------------------------------------------------
  28          // 头文件包含
  29          //-----------------------------------------------------------------------------
  30          #include <c8051f020.h>                 
  31          
  32          //-----------------------------------------------------------------------------
  33          //全局变量定义
  34          //-----------------------------------------------------------------------------
  35          
  36                                           
  37          unsigned long x;                 //"www.xhl.com.cn"
  38          unsigned char xdata Netdata[16]={0x77,0x77,0x77,0x2e,0x78,0x68,0x6c,0x2e,0x63,0x6f,
  39                                          0x6d,0x2e,0x63,0x6e};                                
  40                                         
  41                                           //"  BT F020 V1.0  "
  42          unsigned char xdata NCDdata[17]={0x20,0x20,0x42,0x54,0x20,0x46,0x30,0x32,0x30,0x20,
  43                                           0x56,0x31,0x2e,0x30,0x20,0x20};
  44                                                                        
  45          unsigned char *lcdpoint;        //指向 lcddata数组的指针
  46          unsigned char lcd_data_count;
  47          //-----------------------------------------------------------------------------
  48          // 函数定义
  49          //-----------------------------------------------------------------------------
  50          void SYSCLK_Init (void);
  51          void PORT_Init (void);
  52          void LCD_Init(void);
  53          //-----------------------------------------------------------------------------
  54          // 主程序
  55          //-----------------------------------------------------------------------------
C51 COMPILER V7.06   LCD1602A                                                              07/11/2009 14:45:46 PAGE 2   

  56          void main (void)
  57           {
  58   1              static unsigned char data1;
  59   1          WDTCN = 0xde;
  60   1          WDTCN = 0xad;                               //禁止看门狗定时器
  61   1      
  62   1          SYSCLK_Init ();                             // 系统时钟初始化
  63   1                                                
  64   1          PORT_Init ();                               // 交叉开关和通用I/O口初始化
  65   1      
  66   1              while(1){
  67   2                      LCD_Init();                         //LCD初始化
  68   2                  P2  = 0xA0;                         //准备送数据
  69   2                  for(x=0;x<5000;x++);
  70   2                  lcdpoint=&NCDdata;                                  //取地址
  71   2                  for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--)//显示第一行字符
  72   2                  { 
  73   3                          data1=*lcdpoint;                            //读出数据                              
  74   3                          P3 = data1;                                         //写数据到端口
  75   3                              P2 = 0X20;
  76   3                      P2 = 0XA0;                                              //控制LCD       
  77   3                      lcdpoint++;
  78   3                              for(x=0;x<5000;x++);
  79   3                      }
  80   2                      P2 = 0X80;
  81   2                      P3 = 0xc0;
  82   2                      P2 = 0x00;              
  83   2                      P2 = 0x80;              
  84   2                      for(x=0;x<1000;x++);
  85   2                  lcdpoint=&Netdata;
  86   2                  for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--)//显示第一行字符
  87   2                  { 
  88   3                          data1=*lcdpoint;
  89   3                          P3 = data1; 
  90   3      //-----------------------------------------------------
  91   3              //        P2 = 0x20;                   /*原来的LCD程序*/ 
  92   3              //              P2 = 0xA0;
  93   3      //-----------------------------------------------------
  94   3                          P2 = 0xA0;                   //修改后的LCD程序
  95   3                  P2 = 0x20;
  96   3      //------------------------------------------------------/
  97   3                      lcdpoint++;
  98   3                              for(x=0;x<5000;x++);
  99   3                      }
 100   2              }
 101   1      }
 102          
 103          //-----------------------------------------------------------------------------
 104          //函数名称:      SYSCLK_Init ()
 105          //函数功能:      系统时钟初始化
 106          //入口参数:      无
 107          //出口参数:      无
 108          //全局变量引用:  无
 109          //调用模块:      无 
 110          //-----------------------------------------------------------------------------
 111          //
 112          
 113            void SYSCLK_Init (void)
 114          {
 115   1         //int i;                              // delay counter
 116   1      
 117   1         //OSCXCN = 0x67;                      // start external oscillator with
C51 COMPILER V7.06   LCD1602A                                                              07/11/2009 14:45:46 PAGE 3   

 118   1                                             // 22.1184MHz crystal
 119   1      
 120   1         //for (i=0; i < 256; i++) ;           // Wait for osc. to start up
 121   1      
 122   1         //while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle
 123   1      
 124   1         //OSCICN = 0x88;    
 125   1      
 126   1         OSCICN = 0x05;                          // 系统时钟初始化为片内的 24.5MHz / 8                          
             -                                 
 127   1       }
 128          
 129          //-----------------------------------------------------------------------------
 130          //函数名称:      PORT_Init  ()
 131          //函数功能:      通用I/O口及交叉开关初始化
 132          //入口参数:      无
 133          //出口参数:      无
 134          //全局变量引用:  无
 135          //调用模块:      无  
 136          //-----------------------------------------------------------------------------
 137          
 138          void PORT_Init (void)
 139          {
 140   1      
 141   1         XBR0     = 0x00;                       // 没有选择数字外设
 142   1         XBR2     = 0x40;
 143   1         P2MDOUT  = 0xe0;                       // P2口设为推挽方式
 144   1      }
 145          //-----------------------------------------------------------------------------
 146          //函数名称:      LCD_Init ()
 147          //函数功能:      LCD初始化
 148          //入口参数:      无
 149          //出口参数:      无
 150          //全局变量引用:  无
 151          //调用模块:      无  
 152          //-----------------------------------------------------------------------------
 153          void LCD_Init(void)
 154          {
 155   1         P2 = 0X80;
 156   1         for(x=0;x<50000;x++);
 157   1         //P7 = 0x30;                         /*一行显示*/
 158   1         P3 = 0x38;                           /*两行显示*/
 159   1         P2 = 0X00;//0x08;
 160   1         P2 = 0X80;//0x09; 
 161   1         for(x=0;x<1000;x++);
 162   1         P3 = 0x0e;
 163   1         P2 = 0x00;
 164   1         P2 = 0x80;
 165   1         for(x=0;x<1000;x++);
 166   1         P3=  0x06;
 167   1         P2 = 0x00;
 168   1         P2 = 0x80;
 169   1         for(x=0;x<5000;x++);
 170   1         P3 = 0x01;
 171   1         P2 = 0x00;
 172   1         P2 = 0x80; 
 173   1         for(x=0;x<5000;x++);
 174   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    657    ----
C51 COMPILER V7.06   LCD1602A                                                              07/11/2009 14:45:46 PAGE 4   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     33    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   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 + -