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

📄 t6963c.lst

📁 51单片机游戏程序包括图纸
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  T6963C                                                                 04/27/2007 22:08:22 PAGE 1   


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

stmt level    source

   1          #include <AT89X52.h>    
   2          #include "t6963c.h"
   3          #include "fangkuai.h"
   4          #include "typedef.h"
   5          
   6          static uint txthome=0x0000;
   7          static uint grshome=0x1000;
   8          
   9          //LCD接口定义
  10          sfr   PORTD = 0x90 ;
  11          sbit  PCD = P2^7 ;
  12          sbit  PWR = P2^5 ;
  13          sbit  PRD = P2^6 ;
  14          
  15          //常量数据
  16          unsigned char code CCTable[] = {
  17          /*冯   CB7EB */
  18          0x00,0x47,0x20,0x29,0x09,0x09,0x11,0x13,0x21,0xE0,0x2F,0x20,0x20,0x20,0x20,0x20,
  19          0x00,0xF8,0x08,0x08,0x10,0x10,0x10,0xFC,0x04,0x04,0xF4,0x04,0x04,0x04,0x28,0x10,
  20          
  21          /*燕   CD1E0 */
  22          0x04,0x04,0xFF,0x04,0x17,0x10,0xF7,0x14,0x34,0xD7,0x00,0x28,0x24,0x66,0xC2,0x00,
  23          0x40,0x40,0xFE,0x40,0xC0,0x14,0xDE,0x50,0x52,0xCE,0x00,0x88,0x44,0x66,0x22,0x00,
  24          
  25          /*辉   CBBD4 */
  26          0x10,0x13,0x96,0x58,0x51,0xFE,0x28,0x28,0x29,0x28,0x28,0x2B,0x4C,0x48,0x80,0x00,
  27          0x00,0xFE,0x44,0x40,0xFC,0x40,0xA0,0xA0,0xFC,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,
  28          
  29          /*制   CD6C6 */
  30          0x24,0x34,0x24,0x3F,0x44,0x04,0x7F,0x04,0x3F,0x24,0x24,0x24,0x24,0x27,0x05,0x04,
  31          0x04,0x04,0x24,0xA4,0x24,0x24,0xA4,0x24,0xA4,0xA4,0xA4,0xA4,0x84,0x84,0x14,0x08,
  32          
  33          /*作   CD7F7 */
  34          0x08,0x0C,0x09,0x13,0x12,0x34,0x50,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
  35          0x80,0x80,0x00,0xFE,0x80,0x88,0xFC,0x80,0x80,0x84,0xFE,0x80,0x80,0x80,0x80,0x80,
  36          
  37          /*得   CB5C3 */
  38          0x13,0x1A,0x23,0x4A,0x8B,0x10,0x13,0x30,0x50,0x97,0x10,0x11,0x11,0x11,0x10,0x10,
  39          0xF8,0x08,0xF8,0x08,0xF8,0x00,0xFE,0x10,0x10,0xFE,0x10,0x10,0x10,0x10,0x50,0x20,
  40          
  41          /*分   CB7D6 */
  42          0x08,0x0C,0x08,0x10,0x10,0x20,0x40,0x9F,0x04,0x04,0x04,0x04,0x08,0x10,0x20,0x40,
  43          0x80,0x80,0x40,0x20,0x30,0x18,0x0E,0xE4,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,0x00,
  44          
  45          /*等   CB5C8 */
  46          0x20,0x3E,0x28,0x45,0x85,0x3F,0x01,0xFF,0x00,0x00,0x7F,0x04,0x02,0x02,0x00,0x00,
  47          0x80,0xFC,0xA0,0x10,0x10,0xF8,0x00,0xFE,0x20,0x20,0xFC,0x20,0x20,0x20,0xA0,0x40,
  48          
  49          /*级   CBCB6 */
  50          0x10,0x13,0x20,0x24,0x44,0xF8,0x10,0x21,0x7D,0x41,0x02,0x1A,0xE4,0x08,0x11,0x06,
  51          0x00,0xF8,0x88,0x88,0x90,0x90,0xBE,0x44,0x44,0x48,0x28,0x10,0x30,0x48,0x8E,0x04,
  52          
  53          /*按   CB0B4 */
  54          0x10,0x10,0x10,0x13,0xFE,0x10,0x14,0x1B,0x30,0xD1,0x11,0x10,0x10,0x11,0x56,0x20,
  55          0x40,0x20,0x20,0xFE,0x04,0x40,0x40,0xFE,0x88,0x10,0x90,0x60,0x58,0x8E,0x04,0x00,
C51 COMPILER V7.01  T6963C                                                                 04/27/2007 22:08:22 PAGE 2   

  56          
  57          /*开   CBFAA */
  58          0x00,0x7F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x40,0x00,
  59          0x00,0xFE,0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  60          
  61          /*始   CCABC */
  62          0x10,0x18,0x10,0x10,0xFC,0x25,0x24,0x44,0x44,0x28,0x18,0x14,0x22,0x42,0x80,0x00,
  63          0x20,0x30,0x20,0x48,0x84,0xFE,0x84,0x00,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,0x00,
  64          
  65          /*太   CCCAB */
  66          0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x02,0x02,0x04,0x05,0x08,0x10,0x20,0x40,
  67          0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x98,0xCC,0x86,0x04,
  68          
  69          /*棒   CB0F4 */
  70          0x20,0x20,0x27,0x20,0xFB,0x20,0x77,0x69,0xA2,0xAD,0x20,0x27,0x20,0x20,0x20,0x20,
  71          0x40,0x40,0xFC,0x40,0xF8,0x80,0xFE,0x20,0x58,0xF6,0x40,0xFC,0x40,0x40,0x40,0x40,
  72          
  73          /*了   CC1CB */
  74          0x00,0x7F,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x02,
  75          0x00,0xFC,0x18,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  76          
  77          /*!   CA3A1 */
  78          0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,
  79          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  80          
  81          };
  82          
  83          
  84          /////////////////////////底层调用小函数/////////////////////////////////////////
  85          ////////////////////////////////////////////////////////////////////////////////
  86          
  87          //延时几微秒
  88          void delay(void)
  89          {
  90   1       uchar i=0;
  91   1       i++;
  92   1       i++;
  93   1       }
  94          //读状态位0和1,sta0=1:指令读写状态准备好;sta1=1:数据读写状态准备好 
  95          void ST01Read(void)
  96          {
  97   1        
  98   1              PORTD=0XFF;
  99   1              while(1){
 100   2                      PCD=1;          
 101   2                      PRD=0;          
 102   2                      PRD=1;          
 103   2                      if ((PORTD^0==1)&&(PORTD^1==1))  break;  //判断指令、数据读写状态是否准备好
 104   2              
 105   2              }
 106   1      }
 107          
 108          //读状态位sta2,    检测数据自动 读 状态是否准备好 
 109          static void ST2Read(void)
 110          {
 111   1        
 112   1              PORTD=0XFF;
 113   1              while(1){
 114   2                      PCD=1;           
 115   2                      PRD=0;          
 116   2                      PRD=1;                                           
 117   2                      if (PORTD^2==1)  break;  
C51 COMPILER V7.01  T6963C                                                                 04/27/2007 22:08:22 PAGE 3   

 118   2              }
 119   1      }
 120          
 121          //读状态位sta3,    sta3=1:数据自动 写 状态准备好 
 122          static void ST3Read(void){
 123   1        
 124   1              PORTD=0XFF;
 125   1              while(1)
 126   1              {
 127   2                      PCD=1;          
 128   2                      PRD=0;          
 129   2                      PRD=1;          
 130   2                      if (PORTD^3==1)  break; 
 131   2              }
 132   1      }
 133          
 134          //读状态位sta6,   检测屏读或屏拷贝出错状态:sta6=1:出错;sta6=0:正确 
 135          static void ST6Read(void)
 136          {
 137   1        
 138   1              PORTD=0XFF;
 139   1              while(1)
 140   1              {
 141   2                      PCD=1;          
 142   2                      PRD=0;          
 143   2                      PRD=1;                  
 144   2                      if (PORTD^6==0)  break;  
 145   2              }
 146   1      }
 147          
 148          //////////////////////////////////对T6963C进行读写数据/////////////////////////////////
 149          
 150          //写数据
 151          static void WRData(uchar DData)
 152          {
 153   1              ST01Read();
 154   1              PCD=0;                  
 155   1              PORTD=DData;
 156   1              PWR=0;
 157   1              PWR=1;                  
 158   1      } 
 159          
 160          ///读数据
 161          static void RDData(void)
 162          {
 163   1              ST01Read();             
 164   1              PCD=0;                          
 165   1              PRD=0;                          
 166   1              PRD=1;                  
 167   1      }
 168          
 169          //写命令
 170          static void WRCommand(uchar command)
 171          {
 172   1              ST01Read();             
 173   1              PCD=1;           
 174   1              PWR=0;                  
 175   1              PORTD=command;      
 176   1              PWR=1;          
 177   1      }
 178          
 179          //单参数指令
C51 COMPILER V7.01  T6963C                                                                 04/27/2007 22:08:22 PAGE 4   

 180          static void WRCommandOne(uchar data1,uchar command)
 181          {
 182   1              WRData(data1);          //写数据
 183   1              WRCommand(command);     //写命令
 184   1      }
 185          //双参数指令
 186          static void WRCommandTwo(uchar data1,uchar data2,uchar command)
 187          {
 188   1              WRData(data1);          //写数据
 189   1              WRData(data2);          //写数据
 190   1              WRCommand(command);     //写命令
 191   1      }
 192          
 193          ////////////////////////////////////////////////////////////////////////////////////
 194          
 195          /////////////////////////////T6963C常用处理程序/////////////////////////////////////
 196          ////////////////////////////////////////////////////////////////////////////////////
 197          
 198          //初始化T6963 LCD 显示
 199          void Init_LCD_Graphic(void)
 200          {
 201   1              
 202   1              //设置文本显示首地址
 203   1              
 204   1              WRCommandTwo(0x00,0x00,0x40);
 205   1              
 206   1              //设置文本显示区宽度 40字节
 207   1          
 208   1              WRCommandTwo(0x10,0x00,0x41);
 209   1              
 210   1              //设置图形显示区首地址
 211   1              
 212   1              WRCommandTwo(0x00,0x10,0x42);           //首地址0x0800
 213   1              
 214   1              //设置图形显示区宽度
 215   1              
 216   1              WRCommandTwo(0x10,0x00,0x43);   //40字节
 217   1      
 218   1          //设置CGRAM的首地址
 219   1      
 220   1              WRCommandTwo(0x03,0x00,0x22);           
 221   1                      
 222   1              //设置显示方式  
 223   1                      
 224   1              WRCommand(0x80);                //启用内部字符发生器,显示方式是文本与图形逻辑或
 225   1              
 226   1              //设置显示状态  
 227   1                              
 228   1              WRCommand(0x9f);        //启用光标闪烁、光标显示、文本显示、图形显示
 229   1         
 230   1      }
 231          
 232          //清显示RAM
 233          void ClrGraphic(void){
 234   1          uint i;
 235   1              //设置显示地址
 236   1                              
 237   1              WRCommandTwo(0x00,0x00,0x24);
 238   1              
 239   1              //进入自动写方式
 240   1              
 241   1              WRCommand(0xb0);        
C51 COMPILER V7.01  T6963C                                                                 04/27/2007 22:08:22 PAGE 5   

 242   1              //清8KRAM       
 243   1              
 244   1              for(i=0;i<256;i++){
 245   2              
 246   2                      WRData(0x00);
 247   2              }       
 248   1              //退出自动写方式
 249   1              
 250   1              WRCommand(0xb2);
 251   1      }
 252          
 253          /////////////////////////////////////////////////////////////////////////
 254          //***********************************************************************
 255          //= 函数原型: void char_addr_Pointer_Set(uchar x, uchar y)
 256          //= 功    能: 根据字符的行列设置vram地址
 257          //= 参    数: x行坐标,y列坐标
 258          //= 返 回 值:
 259          //= 函数性质:私有函数
 260          //***********************************************************************
 261          
 262          void char_addr_Pointer_Set(uchar x, uchar y)
 263          {
 264   1          uint iPos;
 265   1              uint temp;
 266   1          iPos = y * 16 + x + txthome;
 267   1              temp=iPos;
 268   1              y=iPos>>8;
 269   1              x=temp&0x00ff;
 270   1          WRCommandTwo(x,y,0x24);
 271   1      } 
 272          
 273          //************************************************************************
 274          //= 函数原型: void image_addr_Pointer_Set(uchar x, uchar y)
 275          //= 功    能: 根据的行列设置图形字节的地址
 276          //= 参    数:
 277          //= 返 回 值:
 278          //= 函数性质:私有函数
 279          //************************************************************************
 280          void image_addr_Pointer_Set(uchar x, uchar y)
 281          { 
 282   1          uint iPos;

⌨️ 快捷键说明

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