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

📄 12864.lst

📁 一个用keil 51c实现的单片机系统程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   12864                                                                 08/06/2007 14:13:53 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*------------------------------------------------------------------------------------------
   2          [文件名] 12864.c
   3          [功能] 128X64驱动程序
   4          ===========================================================================================*/
   5          
   6          #include "12864.h"
*** ERROR C202 IN LINE 15 OF 12864.H: 'P2': undefined identifier
*** ERROR C202 IN LINE 16 OF 12864.H: 'P2': undefined identifier
*** ERROR C202 IN LINE 17 OF 12864.H: 'P1': undefined identifier
*** ERROR C202 IN LINE 18 OF 12864.H: 'P2': undefined identifier
*** ERROR C202 IN LINE 19 OF 12864.H: 'P2': undefined identifier
*** ERROR C202 IN LINE 21 OF 12864.H: 'P3': undefined identifier
   7          #include "ASCII816.h"
   8          
   9          
  10          /*----------------------------------------------------------------------------------------------------*/
  11          /* ****函数列表****
  12          
  13          //开关显示
  14          void SetOnOff(unsigned char onoff)
  15          
  16          //选择屏幕
  17          //screen: 0-全屏,1-左屏,2-右
  18          void SelectScreen(unsigned char screen)
  19          
  20          //清屏
  21          //screen: 0-全屏,1-左屏,2-右
  22          void ClearScreen(unsigned char screen)
  23          
  24          //显示8*8点阵
  25          //旋转90度:字模被竖着切分
  26          //lin:行(0-7), column: 列(0-15)
  27          //address : 字模区首地址
  28          void Show88(unsigned char lin,unsigned char column,unsigned int address)
  29          
  30          //显示8*16字符
  31          //旋转90度:字模被竖着切分
  32          //lin:行(0-3), column: 列(0-15)
  33          //character:字符代码(标准ASCII码)
  34          void ShowChar(unsigned char lin,unsigned char column,unsigned char character)
  35          
  36          //显示8*16字符串
  37          //!!!只能显示在一行上即: 串长+column <=15
  38          //旋转90度:字模被竖着切分
  39          //lin:行(0-3), column: 列(0-15)
  40          //address : 字模区首地址
  41          void ShowString(unsigned char lin,unsigned char column, unsigned char *string)
  42          
  43          //显示一个汉字
  44          //旋转90度:字模被竖着切分
  45          //lin:行(0-3), column: 列(0-15)
  46          //hzcode: 汉字代码(自定义的)
  47          void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
  48          
  49          //显示图片
C51 COMPILER V7.09   12864                                                                 08/06/2007 14:13:53 PAGE 2   

  50          //旋转90度 :字模被竖着切分
  51          //startline :开始行
  52          //startcolumn:开始列
  53          //linechar :图片行点除8(图片以8*8点阵为单位)
  54          //columnchar :图片列点除8(图片以8*8点阵为单位)
  55          //address : 字模区首地址
  56          void ShowPicture(unsigned char startline,unsigned char startcolumn,unsigned char linechar,unsigned char co
             -lumnchar,unsigned int address)
  57          //!!问题大户
  58          //显示一行汉字
  59          //lin:行
  60          //lineheadaddr: 此行汉字代码区首地址
  61          void ShowLine(unsigned char lin,unsigned int lineheadaddr)
  62          
  63          //显示一屏汉字
  64          //pageheadaddr:此屏汉字代码地址区首地址
  65          void ShowPage(unsigned int pageheadaddr)
  66          
  67          //反显一个8*8字块
  68          //lin:行(0-3), column: 列(0-7)
  69          void ReverseShow88(unsigned char lin,unsigned char column)
  70          
  71          
  72          //反显一个字符
  73          //lin:行(0-4), column: 列(0-15)
  74          void ReverseShowChar(unsigned char lin,unsigned char column)
  75          
  76          
  77          //反显一个汉字
  78          //lin:行(0-3), column: 列(0-7)
  79          ReverseShowHZ(unsigned char lin,unsigned char column)
  80          
  81          //反显一行汉字
  82          //lin:行
  83          ReverseShow(unsigned char lin)
  84          
  85          //初始化LCD
  86          void InitLCD()
  87          
  88          ****函数列表结束**** */
  89          /*----------------------------------------------------------------------------------------------------*/
  90          /*--基本函数源程序------------------------------------------------------------------------------------*/
  91          //延时
  92          void LCDdelay()
  93          {
  94   1      unsigned int i=500;
  95   1      while(i--) {;}
  96   1      }
  97          /*----------------------------------------------------------------------------------------------------*/
  98          //状态检查
  99          void CheckState()
 100          {
 101   1      unsigned char dat;
 102   1      di=0;
*** ERROR C202 IN LINE 102 OF 12864.C: 'di': undefined identifier
 103   1      rw=1;
*** ERROR C202 IN LINE 103 OF 12864.C: 'rw': undefined identifier
 104   1      do{
 105   2      LCD12864DataPort=0xff;
*** ERROR C202 IN LINE 105 OF 12864.C: 'P0': undefined identifier
 106   2      en=1; dat=LCD12864DataPort; en=0;
*** ERROR C202 IN LINE 106 OF 12864.C: 'en': undefined identifier
C51 COMPILER V7.09   12864                                                                 08/06/2007 14:13:53 PAGE 3   

*** ERROR C202 IN LINE 106 OF 12864.C: 'P0': undefined identifier
*** ERROR C202 IN LINE 106 OF 12864.C: 'en': undefined identifier
 107   2      dat=0x90 & dat; //仅当第4,7位为0时才可操作
 108   2      }while(!(dat==0x00));
 109   1      }
 110          /*----------------------------------------------------------------------------------------------------*/
 111          //写显示数据
 112          //dat:显示数据
 113          void WriteByte(unsigned char dat)
 114          {
 115   1      CheckState();
 116   1      di=1; rw=0;
*** ERROR C202 IN LINE 116 OF 12864.C: 'di': undefined identifier
*** ERROR C202 IN LINE 116 OF 12864.C: 'rw': undefined identifier
 117   1      LCD12864DataPort=dat;
*** ERROR C202 IN LINE 117 OF 12864.C: 'P0': undefined identifier
 118   1      en=1; en=0;
*** ERROR C202 IN LINE 118 OF 12864.C: 'en': undefined identifier
*** ERROR C202 IN LINE 118 OF 12864.C: 'en': undefined identifier
 119   1      }
 120          /*-----------------------------------------------------------------------------------------------------*/
 121          //向LCD发送命令,主要被以下几个函数调用
 122          //command :命令
 123          SendCommandToLCD(unsigned char command)
 124          {
 125   1      CheckState();
 126   1      rw=0;
*** ERROR C202 IN LINE 126 OF 12864.C: 'rw': undefined identifier
 127   1      LCD12864DataPort=command;
*** ERROR C202 IN LINE 127 OF 12864.C: 'P0': undefined identifier
 128   1      en=1; en=0;
*** ERROR C202 IN LINE 128 OF 12864.C: 'en': undefined identifier
*** ERROR C202 IN LINE 128 OF 12864.C: 'en': undefined identifier
 129   1      }
 130          /*----------------------------------------------------------------------------------------------------*/
 131          //设定行地址(页)--X 0-7
 132          void SetLine(unsigned char line)
 133          {
 134   1      line=line & 0x07; // 0<=line<=7
 135   1      line=line|0xb8; //1011 1xxx
 136   1      SendCommandToLCD(line);
 137   1      }
 138          //设定列地址--Y 0-63
 139          void SetColumn(unsigned char column)
 140          {
 141   1      column=column &0x3f; // 0=<column<=63
 142   1      column=column | 0x40; //01xx xxxx
 143   1      SendCommandToLCD(column);
 144   1      }
 145          //设定显示开始行--XX
 146          void SetStartLine(unsigned char startline) //0--63
 147          {
 148   1      startline=startline & 0x07;
 149   1      startline=startline|0xc0; //1100 0000
 150   1      SendCommandToLCD(startline);
 151   1      }
 152          //开关显示,1为开, 0为关。
 153          void SetOnOff(unsigned char onoff)
 154          {
 155   1      onoff=0x3e | onoff; //0011 111x
 156   1      SendCommandToLCD(onoff);
 157   1      }
C51 COMPILER V7.09   12864                                                                 08/06/2007 14:13:53 PAGE 4   

 158          /*---------------------------------------------------------------------------------------------------*/
 159          //选择屏幕
 160          //screen: 0-全屏,1-右屏,2-左屏
 161          void SelectScreen(unsigned char screen)
 162          { //北京显示器:负有效 cs1: 0--右; cs2: 0--左
 163   1      switch(screen)
 164   1      { case 0: cs1=0;//全屏
*** ERROR C202 IN LINE 164 OF 12864.C: 'cs1': undefined identifier
 165   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 166   2      cs2=0;
*** ERROR C202 IN LINE 166 OF 12864.C: 'cs2': undefined identifier
 167   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 168   2      break;
 169   2      case 1: cs1=1;//左屏
*** ERROR C202 IN LINE 169 OF 12864.C: 'cs1': undefined identifier
 170   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 171   2      cs2=0;
*** ERROR C202 IN LINE 171 OF 12864.C: 'cs2': undefined identifier
 172   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 173   2      break;
 174   2      case 2: cs1=0;//右屏
*** ERROR C202 IN LINE 174 OF 12864.C: 'cs1': undefined identifier
 175   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 176   2      cs2=1;
*** ERROR C202 IN LINE 176 OF 12864.C: 'cs2': undefined identifier
 177   2      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 178   2      break;
 179   2      }
 180   1      }
 181          /*---------------------------------------------------------------------------------------------------*/
 182          //清屏
 183          //screen: 0-全屏,1-左屏,2-右
 184          void ClearScreen(unsigned char screen)
 185          { unsigned char i,j;
 186   1      SelectScreen(screen);
 187   1      for(i=0;i<8;i++)
 188   1      { SetLine(i);
 189   2      for(j=0;j<64;j++)
 190   2      {
 191   3      WriteByte(0x00);
 192   3      }
 193   2      }
 194   1      }
 195          /*--------------------------------------------------------------------------------------------------*/
 196          //显示8*8点阵
 197          //旋转90度:字模被竖着切分
 198          //lin:行(0-7), column: 列(0-15)
 199          //address : 字模区首地址
 200          void Show88(unsigned char lin,unsigned char column,unsigned int address)
 201          { unsigned char i;
 202   1      if(column>16) {return;}
 203   1      if(column<8) SelectScreen(2); //如果列数<8(0,1,2,3,4,5,6,7)则写在第二屏上
 204   1      else {
 205   2      SelectScreen(1); //否则 (8,9,10,11,12,13,14,15)写在第一屏上
 206   2      column=column & 0x07; //防止越界
 207   2      }

⌨️ 快捷键说明

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