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

📄 display.lst

📁 51系列单片机上实现PC键盘的识别
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   DISPLAY                                                               07/31/2007 21:14:25 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display\display.c BROWSE DEBUG OBJECTEXTEND PRINT(.\display.lst) OBJECT(dis
                    -play.obj)

stmt level    source

   1          /////////////////////////////////////////////////////////////
   2          //  LED点阵显示函数
   3          //  显示字符A-Z以及数字0-9
   4          //  
   5          #include "at89x52.h"
   6          #include "common.h"
   7          #include "display.h"
   8          
   9          ///////////////////////////////////////////////////////////////////////////////
  10          //    如果需要显示模块
  11          #ifdef NEED_DISPLAY
  12          
  13          /////////////////////////////////////////////////////////////////////////////////////////
  14          //  字母显示编码
  15          const unsigned char code char_A[8]={0x80,0xe0,0xbc,0x22,0xbc,0xe0,0x80,0x00}; 
  16          const unsigned char code char_B[8]={0x00,0x82,0xFE,0x92,0x92,0x92,0x6C,0x00}; 
  17          const unsigned char code char_C[8]={0x00,0x7C,0x82,0x82,0x84,0x66,0x00,0x00}; 
  18          const unsigned char code char_D[8]={0x00,0x82,0xFE,0x82,0x82,0x44,0x38,0x00}; 
  19          const unsigned char code char_E[8]={0x00,0x82,0xFE,0x92,0xBA,0x82,0xC6,0x00}; 
  20          const unsigned char code char_F[8]={0x00,0x82,0xFE,0x92,0x3A,0x06,0x00,0x00}; 
  21          const unsigned char code char_G[8]={0x00,0x7C,0x82,0x82,0x94,0x76,0x10,0x00}; 
  22          const unsigned char code char_H[8]={0x00,0xFE,0x10,0x10,0x10,0x10,0xFE,0x00}; 
  23          const unsigned char code char_I[8]={0x00,0x00,0x82,0xFE,0x82,0x00,0x00,0x00}; 
  24          const unsigned char code char_J[8]={0x00,0x60,0x80,0x82,0x7E,0x02,0x00,0x00}; 
  25          const unsigned char code char_K[8]={0x00,0xFF,0x10,0x08,0x14,0x22,0x41,0x80}; 
  26          const unsigned char code char_L[8]={0x00,0x82,0xFE,0x82,0x80,0x80,0xC0,0x00}; 
  27          const unsigned char code char_M[8]={0x00,0xFF,0x0C,0x30,0xC0,0x30,0x0C,0xFF}; 
  28          const unsigned char code char_N[8]={0x00,0xFE,0x04,0x08,0x10,0x20,0x40,0xFE}; 
  29          const unsigned char code char_O[8]={0x00,0x38,0x44,0x82,0x82,0x82,0x44,0x38}; 
  30          const unsigned char code char_P[8]={0x00,0xFE,0x12,0x12,0x12,0x12,0x1C,0x00}; 
  31          const unsigned char code char_Q[8]={0x3C,0x42,0x81,0xA1,0xA1,0x42,0xBC,0x00}; 
  32          const unsigned char code char_R[8]={0x00,0xFE,0x12,0x12,0x12,0x72,0x9C,0x80}; 
  33          const unsigned char code char_S[8]={0x00,0x6E,0x89,0x89,0x89,0x89,0x72,0x00}; 
  34          const unsigned char code char_T[8]={0x00,0x06,0x82,0xFE,0x82,0x06,0x00,0x00}; 
  35          const unsigned char code char_U[8]={0x00,0x02,0x7E,0x80,0x80,0x7E,0x02,0x00}; 
  36          const unsigned char code char_V[8]={0x00,0x02,0x3E,0xC0,0x38,0x1E,0x02,0x00}; 
  37          const unsigned char code char_W[8]={0x00,0x1E,0xE0,0x3E,0xE0,0x1E,0x00,0x00}; 
  38          const unsigned char code char_X[8]={0x00,0x82,0xC6,0x38,0xC6,0x82,0x00,0x00}; 
  39          const unsigned char code char_Y[8]={0x00,0x02,0x8E,0xF0,0x8E,0x02,0x00,0x00}; 
  40          const unsigned char code char_Z[8]={0x00,0x86,0xC2,0xB2,0x8E,0xC2,0x00,0x00}; 
  41          
  42          ////////////////////////////////////////////////////////////////////////////////////////
  43          //  数字显示编码
  44          
  45          const unsigned char code char_0[8]={0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00}; 
  46          const unsigned char code char_1[8]={0x00,0x00,0x84,0xFE,0x80,0x00,0x00,0x00}; 
  47          const unsigned char code char_2[8]={0x00,0x8C,0xC2,0xA2,0x92,0x8C,0x00,0x00}; 
  48          const unsigned char code char_3[8]={0x00,0x44,0x82,0x92,0x92,0x6C,0x00,0x00}; 
  49          const unsigned char code char_4[8]={0x00,0x10,0x28,0x24,0xFE,0xA0,0x00,0x00}; 
  50          const unsigned char code char_5[8]={0x00,0x4E,0x8A,0x8A,0x8A,0x72,0x00,0x00}; 
  51          const unsigned char code char_6[8]={0x00,0x7C,0x92,0x92,0x96,0x60,0x00,0x00}; 
  52          const unsigned char code char_7[8]={0x00,0x06,0x02,0xF2,0x0E,0x02,0x00,0x00}; 
  53          const unsigned char code char_8[8]={0x00,0x6C,0x92,0x92,0x92,0x6C,0x00,0x00}; 
  54          const unsigned char code char_9[8]={0x00,0x1C,0xD2,0x92,0x92,0xFC,0x00,0x00};
C51 COMPILER V7.06   DISPLAY                                                               07/31/2007 21:14:25 PAGE 2   

  55          
  56          /////////////////////////////////////////////////////////////////////////////////////////
  57          //
  58          const unsigned char code char_F1[8]={0x82,0xFE,0x92,0x3A,0x06,0x90,0xF8,0x80}; 
  59          const unsigned char code char_F2[8]={0x82,0xFE,0x92,0x3A,0x06,0xE8,0xA8,0xB8}; 
  60          const unsigned char code char_F3[8]={0x82,0xFE,0x92,0x3A,0x06,0xA8,0xA8,0xF8}; 
  61          const unsigned char code char_F4[8]={0x82,0xFE,0x92,0x3A,0x66,0x50,0xF8,0x40}; 
  62          const unsigned char code char_F5[8]={0x82,0xFE,0x92,0x3A,0x06,0xB8,0xA8,0xE8}; 
  63          const unsigned char code char_F6[8]={0x82,0xFE,0x92,0x3A,0x06,0xF8,0xA8,0xE8}; 
  64          const unsigned char code char_F7[8]={0x82,0xFE,0x92,0x3A,0x06,0x10,0x10,0xF0}; 
  65          const unsigned char code char_F8[8]={0x82,0xFE,0x92,0x3A,0x06,0xF8,0xA8,0xF8}; 
  66          const unsigned char code char_F9[8]={0x82,0xFE,0x92,0x3A,0x06,0xB8,0xA8,0xF8}; 
  67          const unsigned char code char_F10[8]={0x82,0xFE,0x92,0x3A,0xE6,0x00,0xE0,0xA0}; 
  68          const unsigned char code char_F11[8]={0x82,0xFE,0x92,0x3A,0x06,0xF0,0x00,0xF0}; 
  69          const unsigned char code char_F12[8]={0x82,0xFE,0x92,0x3A,0xE6,0x00,0xE8,0xB8};
  70          const unsigned char code char_SP[8]={0xDE,0x92,0xF6,0x00,0xF8,0x28,0x28,0x38}; 
  71          const unsigned char code char_ET[8]={0x20,0x70,0xF8,0x20,0x20,0x21,0x3F,0x01}; 
  72          const unsigned char code char_CT[8]={0x7E,0x82,0x84,0x66,0x00,0x10,0xF0,0x10}; 
  73          const unsigned char code char_SH[8]={0xDE,0x92,0xF6,0x00,0xF8,0x20,0x20,0xF8}; 
  74          const unsigned char code char_AT[8]={0xA0,0xFC,0x22,0xFC,0xA0,0x10,0xF0,0x10}; 
  75          const unsigned char code char_CP[8]={0x7E,0x82,0x84,0x66,0x00,0xF8,0x28,0x38}; 
  76          const unsigned char code char_TB[8]={0x10,0xF0,0x10,0x82,0xFE,0x92,0x92,0x6C}; 
  77          const unsigned char code char_Down[8]={0x00,0x10,0x2E,0x42,0x2E,0x10,0x00,0x00}; 
  78          const unsigned char code char_Upper[8]={0x00,0x08,0x74,0x42,0x74,0x08,0x00,0x00}; 
  79          const unsigned char code char_Left[8]={0x00,0x10,0x28,0x44,0x28,0x28,0x38,0x00}; 
  80          const unsigned char code char_Right[8]={0x00,0x38,0x28,0x28,0x44,0x28,0x10,0x00}; 
  81          const unsigned char code char_Add[8]={0x00,0x08,0x08,0x7E,0x08,0x08,0x00,0x00}; 
  82          const unsigned char code char_Sub[8]={0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x00}; 
  83          const unsigned char code char_Mul[8]={0x00,0x82,0xC6,0x38,0xC6,0x82,0x00,0x00}; 
  84          const unsigned char code char_Dev[8]={0x00,0x08,0x08,0x2A,0x08,0x08,0x00,0x00}; 
  85          const unsigned char code char_Sla[8]={0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00}; 
  86          const unsigned char code char_FSla[8]={0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x00}; 
  87          const unsigned char code char_Dou[8]={0x00,0x00,0x00,0x4C,0x3C,0x00,0x00,0x00}; 
  88          const unsigned char code char_Jue[8]={0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00}; 
  89          const unsigned char code char_Fen[8]={0x00,0x00,0x00,0xB6,0x76,0x00,0x00,0x00}; 
  90          const unsigned char code char_Jian[8]={0x00,0x10,0x0E,0x00,0x00,0x00,0x00,0x00}; 
  91          const unsigned char code char_Dian[8]={0x00,0x00,0x00,0x00,0x0E,0x10,0x00,0x00};
  92          const unsigned char code char_LKuo[8]={0x00,0x7E,0x42,0x42,0x00,0x00,0x00,0x00}; 
  93          const unsigned char code char_RKuo[8]={0x00,0x00,0x00,0x00,0x42,0x42,0x7E,0x00}; 
  94          const unsigned char code char_Den[8]={0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00}; 
  95          const unsigned char code char_Back[8]={0x00,0x08,0x1C,0x08,0x08,0x08,0x08,0x00}; 
  96          const unsigned char code char_Esc[8]={0xFE,0x02,0x12,0xFA,0x92,0x82,0xBE,0x00}; 
  97          const unsigned char code char_DLine[8]={0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00}; 
  98          const unsigned char code char_Win[8]={0x00,0x2A,0x15,0x2A,0x54,0xA8,0x54,0x00}; 
  99          const unsigned char code char_Apps[8]={0x00,0xFE,0xAA,0x82,0xBA,0xDE,0x28,0x40}; 
 100           
 101          ////////////////////////////////////////////////////////////////////////////////////////
 102          //  空编码
 103          const unsigned char code char_NULL[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 104          
 105          ////////////////////////////////////////////////////////////////////////////////////
 106          
 107          const unsigned char Row[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};  //  列扫描编码
 108          unsigned char *ChoicePtr;           //数据选择指针  
 109          unsigned char ScanPtr=0;            //扫描指针
 110          
 111          ///////////////////////////////////////////////////////////////////////////////
 112          //  图形显示函数
 113          //  每次调用扫描一列
 114          //  参数:无
 115          //  返回值:无
 116          void Display()
C51 COMPILER V7.06   DISPLAY                                                               07/31/2007 21:14:25 PAGE 3   

 117          {
 118   1              unsigned char CircleTemp=0x00;
 119   1              gShiftPulse=0x00;                       //RDK控制端 ,用以控制并行数据的输出
 120   1              for(CircleTemp=0x00;CircleTemp<0x08;CircleTemp++)
 121   1              {
 122   2      
 123   2                  lShiftPulse=0x0;                     //SCK移位脉冲
 124   2                  DataPort=Row[ScanPtr]&(0x80>>CircleTemp);  
 125   2                  lShiftPulse=0x1;
 126   2              }
 127   1      
 128   1              for(CircleTemp=0x00;CircleTemp<0x08;CircleTemp++)
 129   1             
 130   1              {   
 131   2                  lShiftPulse=0x00;
 132   2                  DataPort=ChoicePtr[ScanPtr]&(0x80>>CircleTemp); //数据传送端    
 133   2                  lShiftPulse=0x1;
 134   2              } 
 135   1              gShiftPulse=0x01;
 136   1              ScanPtr++;
 137   1              if(ScanPtr==0x08)
 138   1              {
 139   2                  ScanPtr=0x00; 
 140   2              }   
 141   1          
 142   1      }
 143          ////////////////////////////////////////////////////////////////////////////////
 144          //  换码函数
 145          //  通过键盘扫描码获得要输出数据的LED点阵图形代码
 146          //  参数:无
 147          //  返回值:无
 148          
 149          extern unsigned char gSymboleE0;
 150          
 151          void Print(unsigned char lCode)
 152          {
 153   1          if(gSymboleE0==0)                //如果有E0标志位
 154   1          {
 155   2              switch(lCode) 
 156   2              {
 157   3      
 158   3              case 0x1C:                   //获得的是键盘的扫描码  
 159   3              ChoicePtr=char_A; 
 160   3              break; 
 161   3              case 0x32: 
 162   3              ChoicePtr=char_B; 
 163   3              break; 
 164   3              case 0x21: 
 165   3              ChoicePtr=char_C;; 
 166   3              break; 
 167   3              case 0x23: 
 168   3              ChoicePtr=char_D; 
 169   3              break; 
 170   3              case 0x24:   
 171   3              ChoicePtr=char_E; 
 172   3              break; 
 173   3              case 0x2B: 
 174   3              ChoicePtr=char_F; 
 175   3              break; 
 176   3              case 0x34: 
 177   3              ChoicePtr=char_G; 
 178   3              break; 
C51 COMPILER V7.06   DISPLAY                                                               07/31/2007 21:14:25 PAGE 4   

 179   3              case 0x33: 
 180   3              ChoicePtr=char_H; 
 181   3              break; 
 182   3              case 0x43: 
 183   3              ChoicePtr=char_I;
 184   3              break; 
 185   3              case 0x3B: 
 186   3              ChoicePtr=char_J; 
 187   3              break; 
 188   3              case 0x42: 
 189   3              ChoicePtr=char_K;
 190   3              break; 
 191   3              case 0x4B: 
 192   3              ChoicePtr=char_L; 
 193   3              break; 
 194   3              case 0x3A: 
 195   3              ChoicePtr=char_M; 
 196   3              break; 
 197   3              case 0x31: 
 198   3              ChoicePtr=char_N; 
 199   3              break; 
 200   3              case 0x44: 
 201   3              ChoicePtr=char_O; 
 202   3              break; 
 203   3              case 0x4D: 
 204   3              ChoicePtr=char_P; 
 205   3              break; 
 206   3              case 0x15: 
 207   3              ChoicePtr=char_Q;
 208   3              break; 
 209   3              case 0x2D: 
 210   3              ChoicePtr=char_R; 
 211   3              break; 
 212   3              case 0x1B: 
 213   3              ChoicePtr=char_S;
 214   3              break; 
 215   3              case 0x2C: 
 216   3              ChoicePtr=char_T;
 217   3              break; 
 218   3              case 0x3C: 
 219   3              ChoicePtr=char_U; 
 220   3              break; 

⌨️ 快捷键说明

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