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

📄 1602动态.lst

📁 用c语言实现1602液晶显示器的动态显示 对于单片机初学者有一定参考价值
💻 LST
字号:
C51 COMPILER V7.06   1602__蘝                                                              12/02/2008 10:43:19 PAGE 1   


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

stmt level    source

   1          /*
   2          这是avr上移植程序 动态显示字符,用户可以根据自己需要更改内容
   3          */
   4          #include <reg52.h>
   5          
   6          sbit RS = P2^4;//定义端口 
   7          sbit RW = P2^5;
   8          sbit EN = P2^6;
   9          #define RS_CLR RS=0 
  10          #define RS_SET RS=1
  11          #define RW_CLR RW=0 
  12          #define RW_SET RW=1 
  13          #define EN_CLR EN=0
  14          #define EN_SET EN=1
  15          /*延时函数*/
  16          void delay_us(unsigned int n) //延时 如果需要高精度延时 请嵌入汇编
  17          { 
  18   1       if (n == 0) 
  19   1        {  
  20   2        return ;  
  21   2        } 
  22   1        while (--n);
  23   1       }
  24           /*延时函数*/
  25           void delay_ms(unsigned char i) 
  26           { 
  27   1       unsigned char a, b; 
  28   1       for (a = 1; a < i; a++) 
  29   1       {
  30   2         for (b = 1; b; b++) 
  31   2         {   ;   } 
  32   2          }
  33   1       }/*显示屏命令写入函数*/
  34           void LCD_write_com(unsigned char com) 
  35           {  
  36   1       RS_CLR; 
  37   1       RW_CLR; 
  38   1       EN_SET; 
  39   1       P0 = com; 
  40   1       delay_us(5); 
  41   1       EN_CLR;
  42   1       }
  43           /*显示屏命令写入函数*/
  44           void LCD_write_Data(unsigned char Data) 
  45           { 
  46   1       RS_SET; 
  47   1       RW_CLR; 
  48   1       EN_SET; 
  49   1       P0 = Data; 
  50   1       delay_us(5); 
  51   1       EN_CLR;
  52   1       }
  53           /*显示屏清空显示*/
  54           void LCD_clear(void) 
  55           { 
C51 COMPILER V7.06   1602__蘝                                                              12/02/2008 10:43:19 PAGE 2   

  56   1       LCD_write_com(0x01); 
  57   1       delay_ms(5);}
  58           /*显示屏字符串写入函数*/
  59           void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) 
  60           {     
  61   1       if (y == 0) 
  62   1       {     
  63   2       LCD_write_com(0x80 + x);     
  64   2       }
  65   1       else 
  66   1       {     
  67   2       LCD_write_com(0xC0 + x);     
  68   2       }        
  69   1       while (*s) 
  70   1       {     
  71   2       LCD_write_Data( *s);     
  72   2       s ++;     
  73   2       }
  74   1       }
  75           /*显示屏单字符写入函数*/
  76           void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data) 
  77           {     
  78   1       if (y == 0) 
  79   1       {     
  80   2       LCD_write_com(0x80 + x);     
  81   2       }    
  82   1       else 
  83   1       {     
  84   2       LCD_write_com(0xC0 + x);     
  85   2       }        
  86   1       LCD_write_Data( Data);  
  87   1       }
  88           /*显示屏初始化函数*/
  89           void LCD_init(void) 
  90           {
  91   1         LCD_write_com(0x38);    /*显示模式设置*/ 
  92   1         delay_ms(5); 
  93   1         LCD_write_com(0x38); 
  94   1         delay_ms(5); 
  95   1         LCD_write_com(0x38); 
  96   1         delay_ms(5); 
  97   1         LCD_write_com(0x38);  
  98   1         LCD_write_com(0x08);    /*显示关闭*/ 
  99   1         LCD_write_com(0x01);    /*显示清屏*/ 
 100   1         LCD_write_com(0x06);    /*显示光标移动设置*/ 
 101   1         delay_ms(5); 
 102   1         LCD_write_com(0x0C);    /*显示开及光标设置*/
 103   1         }
 104             
 105             
 106          void main(void) 
 107          { 
 108   1      unsigned char i; 
 109   1      unsigned char *p; 
 110   1      delay_ms(100); 
 111   1      LCD_init(); 
 112   1      while (1) 
 113   1      {  
 114   2      i = 1;  
 115   2      p = "www.doflye.cn";  
 116   2      LCD_clear();  
 117   2      LCD_write_str(2,0,"Welcome to");  
C51 COMPILER V7.06   1602__蘝                                                              12/02/2008 10:43:19 PAGE 3   

 118   2      delay_ms(250);   
 119   2      while (*p) 
 120   2      {   
 121   3      LCD_write_char(i,1,*p);   
 122   3      i ++;   
 123   3      p ++;   
 124   3      delay_ms(250);   
 125   3      }  
 126   2      delay_ms(250);  
 127   2      }
 128   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    252    ----
   CONSTANT SIZE    =     25    ----
   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 + -