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

📄 display.lst

📁 单片机控制的12864液晶显示器的驱动程序,通过按键控制
💻 LST
字号:
C51 COMPILER V7.50   DISPLAY                                                               08/20/2006 14:48:04 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN DISPLAY.OBJ
COMPILER INVOKED BY: E:\Program Files\keil\C51\BIN\C51.EXE DISPLAY.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //2003.1.10
   2          //write by sunny
   3          #include "main.h"
   4          #include "display.h"
   5          #include "disdrive.h"
   6          #include "x.h"
   7          
   8          extern  char code g_DaiJi[];
   9          extern code * code gZiMo_Go[],gZiMo_0[],gZiMo_1[],gZiMo_2[],gZiMo_3[],gZiMo_4[],gZiMo_5[],gZiMo_6[],gZiMo_
             -7[],gZiMo_8[],gZiMo_9[],gZiMo_a[],gZiMo_b[],gZiMo_c[],gZiMo_d[],gZiMo_e[],gZiMo_f[];
  10          char code * code Num2Char[16]={gZiMo_0,gZiMo_1,gZiMo_2,gZiMo_3,gZiMo_4,gZiMo_5,gZiMo_6,gZiMo_7,gZiMo_8,gZi
             -Mo_9,gZiMo_a,gZiMo_b,gZiMo_c,gZiMo_d,gZiMo_e,gZiMo_f,};
  11          
  12          //在一个方框里显示"待机"两个字
  13          void ShowWait(void)
  14          {
  15   1                      LedFillNULL();
  16   1                      ShowBitMap(g_DaiJi,FALSE,0x02,0x04,0x04,8);//画出一个80*48的有边框里面内容为空的方框    
  17   1      }
  18          
  19          
  20          /*show a menu page,显示菜单,传递需要显示页的字模数组指针,和总行数以及需要反现的行,如果总行数大于4,则需
             -要翻页
  21          根据反显行判断页数,如果没有反显行ucSelectLineNum=0,该页即为显示内容,ucNumLine必须<=4*/
  22          void ShowCharPage(char code ** ZiMoPage,unsigned char ucNumLine,unsigned char  ucSelectLineNum)  //cNumLin
             -e = item num
  23          {                     
  24   1                      unsigned char ucLine;   //行变量
  25   1                      unsigned char ucLineMax;//总的行最大值
  26   1                      unsigned char ucSegment;//列变量
  27   1                      unsigned char ucNumFirst;//字模首位变量在行列式中的位置
  28   1                      if(ucSelectLineNum == 0)        //是显示数据页面不是菜单页面,注意:如果是显示数据页面,cNumLine<=4
  29   1                      {               
  30   2                              for(ucLine=0;ucLine<ucNumLine;ucLine=ucLine++)
  31   2                                      for(ucSegment=0;ucSegment<8;ucSegment=ucSegment++)
  32   2                                      {
  33   3                                              ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment),0x00,ucLine+ucLine,ucSegment+ucSegment);
  34   3                                      }
  35   2                      }
  36   1                      else
  37   1                      {       
  38   2                              ucNumFirst = (ucSelectLineNum/4)*32;//显示页面首字在行列式字模当中的首位
  39   2                              
  40   2                              if((ucNumLine-ucSelectLineNum)>=4) ucLineMax = 4;
  41   2                              else 
  42   2                              {
  43   3                                      ucLineMax = ucNumLine-(ucSelectLineNum/4)*4;
  44   3                                      LedFillNULL();
  45   3                              }
  46   2                              for(ucLine=0;ucLine<ucLineMax;ucLine=ucLine++)  
  47   2                                      for(ucSegment=0;ucSegment<8;ucSegment=ucSegment++)      //写入某一行
  48   2                                      {
  49   3                                              if(ucSelectLineNum%4==ucLine)
  50   3                                              {
  51   4                                                      ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment+ucNumFirst),0xFF,ucLine+ucLine,ucSegment+ucSegment);  
C51 COMPILER V7.50   DISPLAY                                                               08/20/2006 14:48:04 PAGE 2   

  52   4                                              }
  53   3                                              else
  54   3                                              {
  55   4                                                      ShowOneChar(*(ZiMoPage+ucLine*8+ucSegment+ucNumFirst),0x00,ucLine+ucLine,ucSegment+ucSegment);          
  56   4                                              }
  57   3                                      }
  58   2                      }
  59   1      }
  60          
  61          /*传递数组指针,屏幕中起始字行位置(<4),起始字列位置(<8),xnum是行宽,ynum是列宽(16*16为最小单位),把屏幕可以
             -看成4*8的矩阵

⌨️ 快捷键说明

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