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

📄 c19264.lst

📁 192X64液晶的80c51单片机语言液晶驱动文件
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   C19264                                                                02/28/2008 11:45:20 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE C19264
OBJECT MODULE PLACED IN C19264.OBJ
COMPILER INVOKED BY: D:\c51v808a\C51\BIN\C51.EXE C19264.c OPTIMIZE(1,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************
   2          **
   3          **      西安博控电子科技有限公司.
   4          **
   5          **  文件名:        C19264.c     
   6          **
   7          **  用途:          C19264 LCD Driver
   8          **
   9          **  修改时间:  $   年 月  日    shw   $
  10          ******************************************************************************/
  11          #include "system.h"
  12          #include <intrins.h>
  13          #include "HANZI.H"
  14          #include <math.h>
  15          
  16          //状态检查
  17          void CheckState()
  18          {
  19   1      Uchar dat;
  20   1      di=0;
  21   1      rw=1;
  22   1      do{
  23   2      LCD12864DataPort=0xff;
  24   2      en=1; 
  25   2      dat=LCD12864DataPort;
  26   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  
  27   2      en=0;
  28   2      dat=0x90 & dat; //仅当第4,7位为0时才可操作
  29   2      }while(!(dat==0x00));
  30   1      }
  31          /******************************************************************************
  32          **  函数名:                     void WriteByte(Uchar dat)
  33          
  34          **  描述:                           写数据
  35          
  36          **  修改的全局变量: 
  37          
  38          **  输入参数:
  39          
  40          **  返回值: 
  41          *******************************************************************************/
  42          void WriteByte(Uchar dat)
  43          {
  44   1      CheckState();
  45   1      di=1; rw=0;
  46   1      LCD12864DataPort=dat;
  47   1      en=0;
  48   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  49   1      en=1; 
  50   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  51   1      en=0;
  52   1      rw=1;
  53   1      }
  54          
  55          /******************************************************************************
C51 COMPILER V8.02   C19264                                                                02/28/2008 11:45:20 PAGE 2   

  56          **  函数名:                     void WriteByte(Uchar dat)
  57          
  58          **  描述:                           写数据
  59          
  60          **  修改的全局变量: 
  61          
  62          **  输入参数:
  63          
  64          **  返回值: 
  65          *******************************************************************************/
  66          unsigned char ReadByte(void)
  67          {
  68   1      unsigned char Dat;
  69   1      CheckState();
  70   1      di=1; rw=1;
  71   1      LCD12864DataPort=0xFF;
  72   1      en=0;
  73   1      en=1;
  74   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  75   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  76   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  77   1      Dat = LCD12864DataPort; 
  78   1      en=0;
  79   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  80   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
  81   1      
  82   1      //Dat = LCD12864DataPort;
  83   1      //Dat = LCD12864DataPort; 
  84   1      return Dat;
  85   1      }
  86          /*-----------------------------------------------------------------------------------------------------*/
  87          /******************************************************************************
  88          **  函数名:   void SendCommandToLCD(Uchar command)
  89          
  90          **  描述:         写命令
  91          
  92          **  修改的全局变量: 
  93          
  94          **  输入参数:
  95          
  96          **  返回值: 
  97          *******************************************************************************/
  98          void SendCommandToLCD(Uchar command)
  99          {
 100   1      CheckState();
 101   1      rw=0;
 102   1      LCD12864DataPort=command;
 103   1      en=1;
 104   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 105   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  
 106   1      en=0;
 107   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 108   1      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  
 109   1      
 110   1      rw=1;
 111   1      }
 112          /*----------------------------------------------------------------------------------------------------*/
 113          //设定行地址(页)--X 0-7
 114          void SetLine(Uchar line)
 115          {
 116   1      line=line & 0x07; // 0<=line<=7
 117   1      line=line|0xb8; //1011 1xxx
C51 COMPILER V8.02   C19264                                                                02/28/2008 11:45:20 PAGE 3   

 118   1      SendCommandToLCD(line);
 119   1      }
 120          //设定列地址--Y 0-63
 121          void SetColumn(Uchar column)
 122          {
 123   1      column=column &0x3f; // 0=<column<=63
 124   1      column=column | 0x40; //01xx xxxx
 125   1      SendCommandToLCD(column);
 126   1      }
 127          
 128          
 129          void Rst_LCD(void)
 130          {
 131   1          LCD_RST=0;
 132   1              delay(2000);
 133   1          LCD_RST=1;
 134   1      }
 135          //选择屏幕
 136          //screen: 0-全屏,1-第一屏,2-第二屏,3-第三屏
 137          void SelectScreen(Uchar screen)
 138          { //北京显示器:负有效 
 139   1      switch(screen)
 140   1      { 
 141   2      //------------------------------------------------------------------------------------------------
 142   2      case 0: cs1=0;//全屏
 143   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 144   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 145   2      cs2=0; 
 146   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 147   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 148   2      cs3=0;
 149   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 150   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 151   2      break; 
 152   2      //------------------------------------------------------------------------------------------------
 153   2      case 1: cs1=0;//
 154   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 155   2      cs2=1;
 156   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 157   2      cs3=1;
 158   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 159   2      break;
 160   2      //------------------------------------------------------------------------------------------------
 161   2      case 2: cs1=1;//
 162   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 163   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 164   2      cs2=0;
 165   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 166   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 167   2      cs3=1;
 168   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 169   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 170   2      break;
 171   2      //------------------------------------------------------------------------------------------------
 172   2      case 3: cs1=1;//
 173   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 174   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 175   2      cs2=1;
 176   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 177   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 178   2      cs3=0;
 179   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
C51 COMPILER V8.02   C19264                                                                02/28/2008 11:45:20 PAGE 4   

 180   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 
 181   2      break;
 182   2      }
 183   1      }
 184          /******************************************************************************
 185          **  函数名:       void SetOnOff(Uchar onoff)
 186          
 187          **  描述:                 开/关显示
 188          
 189          **  修改的全局变量: 
 190          
 191          **  输入参数:
 192          
 193          **  返回值: 
 194          *******************************************************************************/
 195          void SetOnOff(Uchar onoff)
 196          {
 197   1      onoff=0x3e | onoff; //0011 111x
 198   1      SelectScreen(1);
 199   1      SendCommandToLCD(onoff);
 200   1      SelectScreen(2);
 201   1      SendCommandToLCD(onoff);
 202   1      SelectScreen(3);
 203   1      SendCommandToLCD(onoff);
 204   1      }
 205          
 206          /******************************************************************************
 207          **  函数名:                     void ClearScreen(Uchar screen)
 208          
 209          **  描述: 
 210          
 211          **  修改的全局变量: 
 212          
 213          **  输入参数:                   screen: 0-全屏,1-第一屏,2-第二屏,3-第三屏
 214          
 215          **  返回值: 
 216          *******************************************************************************/
 217          void ClearScreen(Uchar screen)
 218          { Uchar i,j;
 219   1      SelectScreen(screen);
 220   1      for(i=0;i<8;i++)
 221   1      { SetLine(i);
 222   2      for(j=0;j<64;j++)
 223   2      {
 224   3      WriteByte(0x00);
 225   3      }
 226   2      }
 227   1      }
 228          
 229          /*--------------------------------------------------------------------------------------------------*/
 230          //显示8*8点阵
 231          //旋转90度:字模被竖着切分

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -