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

📄 128-64.lst

📁 LCD显示流行的有字符,图形和带字库的图形三种,编程各不一样,此为带字库的编程示例,有详细的说明
💻 LST
字号:
C51 COMPILER V6.23a  128_64                                                                03/04/2008 23:28:41 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE 128_64
OBJECT MODULE PLACED IN 128-64.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 128-64.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"address.h"
   2          /*
   3          //128*64LCD
   4          //左右屏
   5          #define         LCDIICOM                XBYTE[0xFBFC]//写命令
   6          #define         LCDIIACOM               XBYTE[0xFBFE]//读命令
   7          #define         LCDIIDATA               XBYTE[0xFBFD]//写数据
   8          //左屏
   9          #define         LCDIILCOM               XBYTE[0xFBF4]//写命令
  10          #define         LCDIILACOM              XBYTE[0xFBF6]//读命令
  11          #define         LCDIILDATA              XBYTE[0xFB05]//写数据
  12          //右屏
  13          #define         LCDIIRCOM               XBYTE[0xFBF6]//写命令
  14          #define         LCDIIRACOM              XBYTE[0xFBF8]//读命令
  15          #define         LCDIIRDATA              XBYTE[0xFB07]//写数据
  16          */
  17          #define uchar   unsigned char 
  18          #define uint    unsigned int
  19          
  20          #define         On              0x01
  21          #define         Off             0x00
  22          #define         L               0x01   //左屏幕
  23          #define         R               0x02   //右屏幕
  24          #define         LR              0X03   //左右屏幕
  25          
  26          void delay1()
  27          {
  28   1       uint i;
  29   1       uchar j;
  30   1       for(i=500;i!=0;i--)for(j=200;j!=0;j--);
  31   1      }
  32          
  33          void init()
  34          {
  35   1      LCDIICOM=0X34;
  36   1      delay1();
  37   1      LCDIICOM=0X30;
  38   1      delay1();
  39   1      LCDIICOM=0X01;
  40   1      delay1();
  41   1      LCDIICOM=0X06;
  42   1      delay1();
  43   1      LCDIICOM=0X0C;
  44   1      delay1();
  45   1      }
  46          
  47          
  48          
  49          
  50          void delay()
  51          {
  52   1       while(LCDIIACOM&0x80);    //判断LCD是否忙
  53   1      }
  54          //开关LCD显示
  55          
C51 COMPILER V6.23a  128_64                                                                03/04/2008 23:28:41 PAGE 2   

  56          //设置第一行
  57          void SetStar(uchar Line)
  58          {
  59   1       Line=Line%64;
  60   1       LCDIICOM=192+Line;
  61   1       delay();
  62   1      }
  63          //设置X
  64          void SetX(uchar x,uchar y,uchar LoR)
  65          {
  66   1      LCDIICOM=0X34;
  67   1      delay();
  68   1       //x=x%8;
  69   1      
  70   1       switch(LoR)
  71   1       {
  72   2        case L:        //左
  73   2                      LCDIILCOM=128+y;
  74   2                      break;
  75   2        case R:        //右
  76   2                      LCDIIRCOM=128+y;
  77   2                      break;
  78   2        case LR:       //左右
  79   2                      LCDIICOM=128+y;
  80   2                      break;
  81   2        default:
  82   2        break;
  83   2       }
  84   1       delay();
  85   1       
  86   1       switch(LoR)
  87   1       {
  88   2        case L:        //左
  89   2                      LCDIILCOM=128+x;
  90   2                      break;
  91   2        case R:        //右
  92   2                      LCDIIRCOM=128+x;
  93   2                      break;
  94   2        case LR:       //左右
  95   2                      LCDIICOM=128+x;
  96   2                      break;
  97   2        default:
  98   2        break;
  99   2       }
 100   1       delay();
 101   1      
 102   1      
 103   1      }
 104          //设置Y
 105          void SetY(uchar y,uchar LoR)
 106          {
 107   1       y=y%64;
 108   1       switch(LoR)
 109   1       {
 110   2        case L:        //左
 111   2                      LCDIILCOM=64+y;
 112   2                      break;
 113   2        case R:        //右
 114   2                      LCDIIRCOM=64+y;
 115   2                      break;
 116   2        case LR:       //左右
 117   2                      LCDIICOM=64+y;
C51 COMPILER V6.23a  128_64                                                                03/04/2008 23:28:41 PAGE 3   

 118   2                      break;
 119   2        default:
 120   2        break;
 121   2       }
 122   1       delay();
 123   1      }
 124          //向LCD写数据
 125          void WriteData(uchar lcddata,LoR)
 126          {
 127   1       switch(LoR)
 128   1       {
 129   2        case L:          //向左屏写数据
 130   2                      LCDIILDATA=lcddata;
 131   2                      break;
 132   2        case R:          //向右屏写数据
 133   2                      LCDIIRDATA=lcddata;
 134   2                      break;
 135   2        case LR:         //向左右屏写数据
 136   2                      LCDIIDATA=lcddata;
 137   2                      delay();
 138   2                      break;
 139   2        default:
 140   2        break;
 141   2       }
 142   1      }
 143          //清屏
 144          void Clr()
 145          {
 146   1       uchar i,j;
 147   1       for(i=0;i!=8;i++)
 148   1       {
 149   2        SetX(i,0,LR);
 150   2        SetY(0,LR);
 151   2        for(j=0;j!=64;j++)WriteData(0,LR); //向左右屏写0
 152   2       }
 153   1      }
 154          


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