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

📄 testlcd.lst

📁 1602液晶的显示程序
💻 LST
字号:
C51 COMPILER V7.07   TESTLCD                                                               05/04/2007 11:53:52 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE TESTLCD
OBJECT MODULE PLACED IN testlcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE testlcd.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*----------------------------------www.00IC.com-----------------------------------------
   2                                ╔=======================================╗
   3                                ┆     00IC-51开发板配套实验学习例程     ┆
   4                                ┆             Version 2.0.1             ┆
   5                                ┆                                       ┆
   6                                ┆               零零电子                ┆
   7                                ┆                                       ┆
   8                                ┆          http://www.00IC.com          ┆
   9                                ┆         E-mail:sales@00IC.com         ┆
  10                                ╚=======================================╝
  11          ********************************** 程序功能说明 ******************************************************
  12                    在1602液晶上分别显示“www.00IC.com”和“^_^00IC-51MCU^_^”两行内容,延时后从左到右循环输出                                            
  13          ******************************************************************************************************/
  14          
  15          #include "reg52.h"
  16          #include <intrins.h>
  17          
  18          #define uchar unsigned char
  19          
  20          typedef bit BOOL  ; 
  21          
  22          sbit rs = P2^6 ; 
  23          sbit rw = P3^6 ;
  24          sbit ep = P2^7 ;
  25          
  26          
  27          void delay(uchar) ;
  28          void lcd_wcmd(uchar) ;
  29          BOOL lcd_bz() ;
  30          void lcd_pos(uchar) ;
  31          void lcd_wdat(uchar) ;
  32          void display(uchar,uchar *) ;
  33          
  34          code uchar  dis1[] = {" WinXP MCE 2005 "} ;
  35          code uchar  dis2[] = {"P4/3G/1G YPRHTPC"} ;
  36          
  37          
  38          
  39          void longdelay(uchar s)  //长延时
  40          {
  41   1               while(s--)
  42   1               {
  43   2                      delay(60) ;
  44   2               }
  45   1      }
  46          
  47          void delay(uchar ms)
  48          {       // 延时子程序
  49   1               uchar i ;
  50   1               while(ms--)
  51   1               {
  52   2                      for(i = 0 ; i<250;i++) ;
  53   2               }
  54   1      }
  55          
C51 COMPILER V7.07   TESTLCD                                                               05/04/2007 11:53:52 PAGE 2   

  56          BOOL lcd_bz()
  57          {       // 测试LCD忙碌状态
  58   1               BOOL result ;
  59   1               rs = 0 ;
  60   1               rw = 1 ;
  61   1               ep = 1 ;
  62   1               result = (BOOL)(P0 & 0x80) ;
  63   1               ep = 0 ;
  64   1               return result ; 
  65   1      }
  66          
  67          void lcd_wcmd(uchar cmd)
  68          {       // 写入指令数据到LCD
  69   1              while(lcd_bz()) ;
  70   1              rs = 0 ;
  71   1              rw = 0 ;
  72   1              ep = 0 ;
  73   1              P0 = cmd ;
  74   1              ep = 1 ;
  75   1              ep = 0 ;  
  76   1      }
  77          
  78          void lcd_pos(uchar pos)
  79          {       //设定显示位置
  80   1              lcd_wcmd(pos | 0x80) ;
  81   1      }
  82          
  83          void lcd_wdat(uchar dat) 
  84          {       //写入字符显示数据到LCD
  85   1              while(lcd_bz()) ;
  86   1              rs = 1 ;
  87   1              rw = 0 ;
  88   1              ep = 0 ;
  89   1              P0 = dat ;
  90   1              ep = 1 ;
  91   1              ep = 0 ; 
  92   1      }
  93          
  94          void lcd_init()
  95          {       //LCD初始化设定
  96   1               lcd_wcmd(0x38) ;   //function set
  97   1               delay(1) ;
  98   1               lcd_wcmd(0x38) ;   //function set
  99   1               delay(1) ;
 100   1               lcd_wcmd(0x08) ;   //display on/off
 101   1               delay(1) ;
 102   1               lcd_wcmd(0x01) ;   //清除LCD的显示内容
 103   1               delay(1) ;
 104   1               lcd_wcmd(0x06) ;   //entry mode set
 105   1               delay(1) ;
 106   1               lcd_wcmd(0x0c) ;   //entry mode set
 107   1               delay(1) ;
 108   1      }
 109          
 110          /*---------------
 111          函数名称:display()
 112          功能 :在LCD上显示数组的数据
 113          说明 :先写显示地址,后写显示数据
 114          调用 :lcd_wcmd(), lcd_pos()
 115          入口参数:pos 写入的位置,q指向要写入的数据所在的数组
 116          返回值 :无
 117          ----------------*/
C51 COMPILER V7.07   TESTLCD                                                               05/04/2007 11:53:52 PAGE 3   

 118          void display(uchar pos, uchar *q)
 119          { 
 120   1               uchar i ;
 121   1               //lcd_wcmd(0x01) ; //clear 
 122   1               delay(10) ;
 123   1               lcd_pos(pos) ;
 124   1               for(i=0 ;i<16;i++)
 125   1               {
 126   2                        lcd_wdat(*q) ;
 127   2                        q++ ;
 128   2                        longdelay(2) ;
 129   2               } 
 130   1      }
 131          
 132          main()
 133          {
 134   1               lcd_init() ;    // 初始化LCD   
 135   1               delay(10) ;
 136   1               display(0x00,dis1) ;
 137   1               display(0x40,dis2) ;
 138   1               display(0x14,dis1) ;
 139   1               display(0x54,dis2) ;
 140   1               lcd_wcmd(0x07) ;   //entry mode set
 141   1               delay(1) ;
 142   1               while(1)
 143   1               { 
 144   2                        display(0x00,dis1) ;
 145   2                        /*
 146   2                        display(0x40,dis2) ;
 147   2                        display(0x14,dis1) ;
 148   2                        display(0x54,dis2) ;
 149   2                        */
 150   2               }
 151   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    279    ----
   CONSTANT SIZE    =     34    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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