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

📄 lcd.lst

📁 液晶屏1604的一个驱动程序
💻 LST
字号:
C51 COMPILER V6.12  LCD                                                                    08/20/2005 20:10:09 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\lcd.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89X52.H>
   2          sbit rs=P0^0;      //寄存器类型选择位
   3          sbit rw=P0^1;      //数据读写类型控制位
   4          sbit e=P0^2;       //下降沿使能控制位
   5          sbit flag=ACC^7;   //LCD忙状态判断标志位
   6          void wait(void);
   7          void delay(unsigned int temp);
   8          void initial(void);
   9          unsigned char code seg[]={0x43,0x68,0x69,0x6E,0x61,0x20,0x55,0x6E,0x69,0x76,    //China University of Mini
             -ng and
  10                                      0x65,0x72,0x73,0x69,0x74,0x79,0x20,0x6F,0x66,0x20,  //Techlonogy    17--302
  11          									 0x4D,0x69,0x6E,0x69,0x6E,0x67,0x20,0x61,0x6E,0x64,
  12          									 0x20,0x20,0x54,0x65,0x63,0x68,0x6C,0x6F,0x6E,0x6F,0x67,
  13          									 0x79,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5C,0x5C,
  14          									 0x31,0x37,0x2D,0x2D,0x33,0x30,0x32,0x5C,0x5C,0x20,0x20,0x20};
  15          void main(void){
  16   1            unsigned char data_index;
  17   1      	   unsigned char add_first,add_second,add_third,add_fourth;     //LCD行地址为80H,C0H,90H,D0H
  18   1            initial();        //初始化LCD
  19   1            while(1){     
  20   2      		               data_index=0;add_first=0x80;add_second=0xC0;add_third=0x90;add_fourth=0xD0;
  21   2      		               while(data_index<=15){   
  22   3      	                      rs=0;rw=0;P2=add_first+data_index;e=1;e=0;    //第一行显示
  23   3      								 wait();
  24   3      								 rs=1;rw=0;P2=seg[data_index];e=1;e=0;
  25   3      								 wait();	
  26   3      		 						 data_index++;
  27   3      			           }
  28   2      						  while(data_index<=31){                           //第二行显示
  29   3      	                      rs=0;rw=0;P2=add_second+data_index-16;e=1;e=0;
  30   3      								 wait();
  31   3      								 rs=1;rw=0;P2=seg[data_index];e=1;e=0;
  32   3      								 wait();
  33   3      		 						 data_index++;
  34   3      			           }
  35   2      						  while(data_index<=47){                          //第三行显示
  36   3      	                      rs=0;rw=0;P2=add_third+data_index-32;e=1;e=0;
  37   3      								 wait();
  38   3      								 rs=1;rw=0;P2=seg[data_index];e=1;e=0;
  39   3      								 wait();	
  40   3      		 						 data_index++;
  41   3      			           }
  42   2      						  while(data_index<=63){                        //第四行显示
  43   3      	                      rs=0;rw=0;P2=add_fourth+data_index-48;e=1;e=0;
  44   3      								 wait();
  45   3      								 rs=1;rw=0;P2=seg[data_index];e=1;e=0;
  46   3      								 wait();	
  47   3      		 						 data_index++;
  48   3      			           }
  49   2      	  }
  50   1      }
  51          void initial(void){
  52   1                 rs=0;rw=0;P2=0x3C;   //置功能,8位数据位,2行显示,5×7点阵
  53   1      			  e=1; e=0;wait();
  54   1      			  rs=0;rw=0;P2=0x06;   //地址计数器自动加1,显示屏不移动
C51 COMPILER V6.12  LCD                                                                    08/20/2005 20:10:09 PAGE 2   

  55   1      			  e=1;e=0;wait(); 
  56   1      			  rs=0;rw=0;P2=0x0E;   //显示开,光标显示,光标闪烁
  57   1      			  e=1;e=0;wait();
  58   1      			  rs=0;rw=0;P2=0x01;   //清显示,光标复位到00H
  59   1      			  e=1;e=0;wait();
  60   1      }
  61          void wait(void){                   //判断LCD处于空闲状态
  62   1                   do{
  63   2                        rs=0;rw=1;
  64   2                        e=1;
  65   2      						e=0;delay(0);
  66   2                        P2_7=1;flag=P2_7;
  67   2                     }while(flag==0);
  68   1                    
  69   1      }
  70          void delay(unsigned int temp){
  71   1            unsigned int jj;
  72   1      		for(jj=0;jj<=temp;jj++)
  73   1      		;
  74   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    220    ----
   CONSTANT SIZE    =     64    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   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 + -