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

📄 lcd12864.lst

📁 stc15单片机测试程序V1.0版
💻 LST
字号:
C51 COMPILER V9.01   LCD12864                                                              07/28/2012 10:10:16 PAGE 1   


C51 COMPILER V9.01, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN LCD12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "STC15F2K.h"
   2          #include <intrins.h>
   3          
   4                  #ifndef uchar
   5                  #define uchar unsigned char
   6                  #endif
   7                  #ifndef uint
   8                          #define uint unsigned int
   9                  #endif                    
  10          #define nop(); {_nop_();_nop_();_nop_();_nop_();};
  11          #define DataPort P0                             //定义P0口为LCD通讯端口
  12          sbit RS=P4^5;                                                            //数据/命令端
  13          sbit RW=P5^5;                                                            //读/写选择端
  14          sbit E=P5^4;
  15          sbit RST=P4^4;
  16          sbit PSB=P4^1;
  17          sbit Busy=DataPort^7;
  18          
  19          void lcd_busy(void)
  20          {
  21   1         DataPort=0xff;
  22   1         RS=0;
  23   1         RW=1;
  24   1         E=1;
  25   1         while(Busy==1);
  26   1         E=0;
  27   1      }
  28          
  29          void lcd_com(uchar com)
  30          {
  31   1         lcd_busy();
  32   1         RS=0;
  33   1         RW=0;
  34   1         DataPort=com;
  35   1         E=1;
  36   1         nop();
  37   1         E=0; 
  38   1      }
  39          
  40          void lcd_dat(uchar dat)
  41          {
  42   1         lcd_busy();
  43   1         RS=1;
  44   1         RW=0;
  45   1         DataPort=dat;
  46   1         E=1;
  47   1         nop();
  48   1         E=0; 
  49   1      }
  50          
  51          void lcd_init(void)
  52          {
  53   1        RST=1;
  54   1        PSB=1;
  55   1        lcd_com(0x30);  /*30---基本指令动作*/   
C51 COMPILER V9.01   LCD12864                                                              07/28/2012 10:10:16 PAGE 2   

  56   1        lcd_com(0x01);  /*清屏,地址指针指向00H*/
  57   1        lcd_com(0x06);  /*光标的移动方向*/
  58   1        lcd_com(0x0c);  /*开显示,关游标*/
  59   1      }
  60          
  61          void lcd_disp(uchar y,uchar *str) //向第y行  写入字符串
  62          {
  63   1         uchar i;
  64   1         switch(y)
  65   1         {
  66   2           case 0:y=0x80;break;
  67   2               case 1:y=0x90;break;
  68   2               case 2:y=0x88;break;
  69   2               case 3:y=0x98;break;
  70   2         }
  71   1         lcd_com(0x30);
  72   1         lcd_com(y);
  73   1         for(i=0;i<16;i++)
  74   1         {
  75   2           lcd_dat(*str);
  76   2               str++;
  77   2         }
  78   1      }
  79          /*lcd_img  此函数可以与for函数组合画图*/
  80          /*
  81          void lcd_img(uchar y,uchar x,uchar dat1,uchar dat2)
  82          {
  83              lcd_com(0x34);
  84                  lcd_com(0x80+y);
  85                  lcd_com(0x80+x);
  86                  lcd_com(0x30);
  87                  lcd_dat(dat1);
  88                  lcd_dat(dat2);
  89              lcd_com(0x36);
  90          }  */
  91          
  92          void lcd_imgclr()        //清除屏幕画点。
  93          {
  94   1        uchar x,y;
  95   1        for(y=0;y<0x20;y++)
  96   1        {
  97   2          for(x=0;x<0x10;x++)
  98   2              {
  99   3                 lcd_com(0x34);
 100   3                 lcd_com(0x80+y);
 101   3                 lcd_com(0x80+x);
 102   3                 lcd_com(0x30);
 103   3                 lcd_dat(0x00);
 104   3                 lcd_dat(0x00);
 105   3              }
 106   2        }
 107   1        lcd_com(0x36);
 108   1      }
 109          
 110          void lcd_rec(uchar y,uchar x,uchar num,uchar dat)
 111          {
 112   1        uchar i,j;
 113   1        x=y>1?(x+8):x;
 114   1        y=y%2?0x10:0x00;
 115   1        for(j=0;j<num;j++)
 116   1        {
 117   2           for(i=0;i<16;i++)
C51 COMPILER V9.01   LCD12864                                                              07/28/2012 10:10:16 PAGE 3   

 118   2           {
 119   3              lcd_com(0x34);
 120   3                      lcd_com(0x80+y+i);
 121   3                      lcd_com(0x80+x+j);
 122   3                      lcd_com(0x30);
 123   3                      lcd_dat(dat);
 124   3                      lcd_dat(dat);
 125   3           }
 126   2        }
 127   1        lcd_com(0x36);
 128   1      }


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