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

📄 1602动态.lst

📁 单片机开发板配套52个程序(c语言源代码)
💻 LST
字号:
C51 COMPILER V7.06   1602__蘝                                                              06/02/2010 22:38:07 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 1602__蘝
OBJECT MODULE PLACED IN 1602动态.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE 1602动态.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          /*1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK*/
   3          
   4          /*-----------------------------------------------
   5            名称:LCD1602
   6            日期:2009.5
   7            修改:无
   8            内容:通过标准程序动态显示字符
   9          ------------------------------------------------*/
  10          #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  11          
  12          sbit RS = P2^4;   //定义端口 
  13          sbit RW = P2^5;
  14          sbit EN = P2^6;
  15          
  16          #define RS_CLR RS=0 
  17          #define RS_SET RS=1
  18          #define RW_CLR RW=0 
  19          #define RW_SET RW=1 
  20          #define EN_CLR EN=0
  21          #define EN_SET EN=1
  22          /******************************************************************/
  23          /*                    微秒延时函数                                */
  24          /******************************************************************/
  25          void delay_us(unsigned int n) //延时 如果需要高精度延时 请嵌入汇编
  26          { 
  27   1       if (n == 0) 
  28   1        {  
  29   2        return ;  
  30   2        } 
  31   1        while (--n);
  32   1       }
  33          /******************************************************************/
  34          /*                    毫秒函数声明                                */
  35          /******************************************************************/
  36           void delay_ms(unsigned char i) 
  37           { 
  38   1       unsigned char a, b; 
  39   1       for (a = 1; a < i; a++) 
  40   1       {
  41   2         for (b = 1; b; b++) 
  42   2         {   ;   } 
  43   2          }
  44   1       }
  45          /******************************************************************/
  46          /*                   写入命令函数                                 */
  47          /******************************************************************/
  48           void LCD_write_com(unsigned char com) 
  49           {  
  50   1       RS_CLR; 
  51   1       RW_CLR; 
  52   1       EN_SET; 
  53   1       P0 = com; 
  54   1       delay_us(5); 
  55   1       EN_CLR;
C51 COMPILER V7.06   1602__蘝                                                              06/02/2010 22:38:07 PAGE 2   

  56   1       }
  57          /******************************************************************/
  58          /*                   写入数据函数                                 */
  59          /******************************************************************/
  60           void LCD_write_Data(unsigned char Data) 
  61           { 
  62   1       RS_SET; 
  63   1       RW_CLR; 
  64   1       EN_SET; 
  65   1       P0 = Data; 
  66   1       delay_us(5); 
  67   1       EN_CLR;
  68   1       }
  69          /******************************************************************/
  70          /*                   清屏函数                                     */
  71          /******************************************************************/
  72           void LCD_clear(void) 
  73           { 
  74   1       LCD_write_com(0x01); 
  75   1       delay_ms(5);}
  76          /******************************************************************/
  77          /*                   写入字符串函数                               */
  78          /******************************************************************/
  79           void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) 
  80           {     
  81   1       if (y == 0) 
  82   1       {     
  83   2       LCD_write_com(0x80 + x);     
  84   2       }
  85   1       else 
  86   1       {     
  87   2       LCD_write_com(0xC0 + x);     
  88   2       }        
  89   1       while (*s) 
  90   1       {     
  91   2       LCD_write_Data( *s);     
  92   2       s ++;     
  93   2       }
  94   1       }
  95          /******************************************************************/
  96          /*                   写入字节函数                                 */
  97          /******************************************************************/
  98           void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data) 
  99           {     
 100   1       if (y == 0) 
 101   1       {     
 102   2       LCD_write_com(0x80 + x);     
 103   2       }    
 104   1       else 
 105   1       {     
 106   2       LCD_write_com(0xC0 + x);     
 107   2       }        
 108   1       LCD_write_Data( Data);  
 109   1       }
 110          /******************************************************************/
 111          /*                   初始化函数                                   */
 112          /******************************************************************/
 113           void LCD_init(void) 
 114           {
 115   1         LCD_write_com(0x38);    /*显示模式设置*/ 
 116   1         delay_ms(5); 
 117   1         LCD_write_com(0x38); 
C51 COMPILER V7.06   1602__蘝                                                              06/02/2010 22:38:07 PAGE 3   

 118   1         delay_ms(5); 
 119   1         LCD_write_com(0x38); 
 120   1         delay_ms(5); 
 121   1         LCD_write_com(0x38);  
 122   1         LCD_write_com(0x08);    /*显示关闭*/ 
 123   1         LCD_write_com(0x01);    /*显示清屏*/ 
 124   1         LCD_write_com(0x06);    /*显示光标移动设置*/ 
 125   1         delay_ms(5); 
 126   1         LCD_write_com(0x0C);    /*显示开及光标设置*/
 127   1         }
 128             
 129          /******************************************************************/
 130          /*                   主函数                                       */
 131          /******************************************************************/   
 132          void main(void) 
 133          { 
 134   1      unsigned char i; 
 135   1      unsigned char *p; 
 136   1      delay_ms(100); 
 137   1      LCD_init(); 
 138   1      while (1) 
 139   1      {  
 140   2      i = 1;  
 141   2      p = "haixiang MCU";  
 142   2      LCD_clear();  
 143   2      LCD_write_str(2,0,"Welcome to");  
 144   2      delay_ms(250);   
 145   2      while (*p) 
 146   2      {   
 147   3      LCD_write_char(i,1,*p);   
 148   3      i ++;   
 149   3      p ++;   
 150   3      delay_ms(250);   
 151   3      }  
 152   2      delay_ms(250);  
 153   2      }
 154   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    252    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -