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

📄 main.lst

📁 t6963驱动,keilc51编译
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  12/30/2008 11:47:53 PAGE 1   


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

line level    source

   1           /*------------------------------------------------------------------------------------------
   2                [文件名] t6963.c
   3                [功能] 240X128液晶
   4                [版本] 3.0
   5                [作者] 鞠春阳
   6                [最后修改时间] 2003年5月12日
   7                ===========================================================================================*/ 
   8          
   9                #include "absacc.h"
  10                #include "math.h"
  11          
  12                #include "ASCII816.h" //标准ASCII库
  13                #include "HZTable.h"  //汉字点阵库(自做)
  14                #include "menu.h"     //菜单库(自做)
  15                #define ComPort 0xB101
  16                #define DataPort 0xB000
  17                #define GraphAddr 0x0000 //head of graph
  18                //以8*8字符计算,显示屏横向、纵向可以显示的字符个数
  19                //以240*128为例:
  20                #define LineChar 30 //一行16个字符(8*8)
  21                #define ColumnChar 16 //总共16列
  22          
  23                //指令,数据 读写状态检查
  24                #define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } 
  25                while(sta!=0x03); }
*** ERROR C141 IN LINE 25 OF MAIN.C: syntax error near 'while'
*** ERROR C141 IN LINE 25 OF MAIN.C: syntax error near '!=', expected ')'
  26                //数据自动读 状态检查
  27                #define AutoRCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x04; } 
  28                while(sta!=0x04); }
*** ERROR C141 IN LINE 28 OF MAIN.C: syntax error near '!=', expected ')'
  29                //数据自动写 状态检查
  30                #define AutoWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x08; } 
  31                while(sta!=0x08); }
*** ERROR C141 IN LINE 31 OF MAIN.C: syntax error near '!=', expected ')'
  32                /*------输入/出函数,与T6963通讯------------------------------------------------*/
  33                /*------------------------------------------------------------------------*/
  34                // 向数据口发Data
  35                #define OutPortData(dat ) { RWCheck(); XBYTE[DataPort]=dat; }
  36                //写有 1 个参数命令
  37                #define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }
  38                //写有 2 个参数命令
  39                #define OutPortCom2(dat, command) { OutPortData(dat); 
  40                OutPortCom1(command); }
*** ERROR C141 IN LINE 40 OF MAIN.C: syntax error near 'do'
*** ERROR C231 IN LINE 40 OF MAIN.C: 'sta': redefinition
*** ERROR C141 IN LINE 40 OF MAIN.C: syntax error near '}'
*** ERROR C141 IN LINE 40 OF MAIN.C: syntax error near 'unsigned'
*** ERROR C141 IN LINE 40 OF MAIN.C: syntax error near ')'
*** ERROR C141 IN LINE 40 OF MAIN.C: syntax error near '}'
  41                //写有 3 个参数命令
  42                #define OutPortCom3(data1, data2, command) { OutPortData(data1); 
  43                OutPortData(data2); 
*** ERROR C231 IN LINE 43 OF MAIN.C: 'sta': redefinition
*** ERROR C141 IN LINE 43 OF MAIN.C: syntax error near 'do'
C51 COMPILER V7.50   MAIN                                                                  12/30/2008 11:47:53 PAGE 2   

*** ERROR C279 IN LINE 43 OF MAIN.C: 'sta': multiple initialization
*** ERROR C141 IN LINE 43 OF MAIN.C: syntax error near '}'
*** ERROR C141 IN LINE 43 OF MAIN.C: syntax error near 'unsigned'
*** ERROR C141 IN LINE 43 OF MAIN.C: syntax error near ')'
*** ERROR C141 IN LINE 43 OF MAIN.C: syntax error near '}'
  44                    OutPortCom1(command);
*** ERROR C231 IN LINE 44 OF MAIN.C: 'sta': redefinition
*** ERROR C141 IN LINE 44 OF MAIN.C: syntax error near 'do'
*** ERROR C279 IN LINE 44 OF MAIN.C: 'sta': multiple initialization
*** ERROR C141 IN LINE 44 OF MAIN.C: syntax error near '}'
*** ERROR C141 IN LINE 44 OF MAIN.C: syntax error near 'unsigned'
*** ERROR C141 IN LINE 44 OF MAIN.C: syntax error near ')'
*** ERROR C141 IN LINE 44 OF MAIN.C: syntax error near '}'
  45                    }
  46          
  47                unsigned char InPortData() { RWCheck(); return(XBYTE[DataPort]); }
*** ERROR C141 IN LINE 47 OF MAIN.C: syntax error near ';', expected 'while'
  48   2            /*-----------------------------------------------------------------------------------*/
  49   2            //显示8*16字符
  50   2            //lin:行(0-7), column: 列(0-15)
  51   2            //ch:字符代码(标准ASCII码)
  52   2            void ShowChar(unsigned char lin,unsigned char column,unsigned char ch)
  53   2            {
  54   2            unsigned char i;
  55   2            unsigned char dat;
  56   2            unsigned int StartAddr;
  57   2            StartAddr=lin*LineChar +column; //定位起始行
  58   2            for(i=0;i<16;i++)
  59   2            {
  60   2            dat=ASCII816[ ch-0x20 ][i];
  61   2            OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
  62   2            0x24); //set address
  63   2            OutPortCom2( dat, 0xc4);
  64   2            StartAddr=StartAddr + LineChar;
  65   2            }
  66   2            }
  67   2            /*----------------------------------------------------------------------------------------------*/
  68   2            //显示一个汉字(16*16点阵)
  69   2            //lin:行(0-7), column: 列(0-7)
  70   2            //hzcode: 汉字代码(自定义的)
  71   2            void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
  72   2            {
  73   2            unsigned char i;
  74   2            unsigned int StartAddr;
  75   2            StartAddr=lin*LineChar + column; //定位起始行
  76   2            for(i=0;i<16;i++)
  77   2            {
  78   2            OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
  79   2            0x24);
  80   2            OutPortCom2( HZTable[hzcode][i*2], 0xc0); //左半部 地址加一
  81   2            OutPortCom2( HZTable[hzcode][i*2+1], 0xc4); //右半部 字模地址加一
  82   2            StartAddr=StartAddr + LineChar;
  83   2            }
  84   2            }
  85   2           /////////////////////////////////////////////////////////////////////////////////////////////
  86   2            //显示一个汉字(16*16点阵)
  87   2       /*240x128液晶T6963控制器驱动程序(C51)-P2
  88   2            240x128液晶T6963控制器驱动程序(C51)-P2
  89   2            作者:佚名    51单片机来源:不详    点击数:540    更新时间:2007-8-4    
  90   2      
  91   2            //hzcode: 汉字代码(自定义的)
  92   2            void ShowHZD(unsigned char lin,unsigned char column,unsigned int hzcode)
C51 COMPILER V7.50   MAIN                                                                  12/30/2008 11:47:53 PAGE 3   

  93   2            {
  94   2            unsigned char i,j;
  95   2            unsigned int StartAddr; 
  96   2            StartAddr=lin*LineChar*16 +column; //定位起始行
  97   2            for(i=0;i<35;i++)
  98   2            {
  99   2            OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
 100   2            0x24); //定位当前操作位置
 101   2            for(j=0;j<5;j++) OutPortCom2( HZTable[hzcode][i*5+j], 0xc0); //显示当前一行
 102   2            StartAddr=StartAddr + LineChar;
 103   2            }
 104   2            }
 105   2            ////////////////////////////////////////////////////////////////////////////////////////////
 106   2            /*-----------------------------------------------------------------------------------*/
 107   2            //显示一行字符串(汉字,字母混排,一行16字节)
 108   2            //lin:行
 109   2            //lineheadaddr: 此行汉字代码区首地址
 110   2          /*  void ShowLine(unsigned char lin,unsigned char column,unsigned char 
 111   2            linehead[])
 112   2            {
 113   2            unsigned char i,j;
 114   2            unsigned char byte;
 115   2            unsigned int hzcode;
 116   2            for( i= column,j=0; i< column+14 ; )
 117   2            { byte=linehead[j];
 118   2            if(byte < 0x80) //字母
 119   2            {
 120   2            ShowChar(lin, i , byte);
 121   2            i=i+1;j=j+1;
 122   2            }
 123   2            else // byte >= 0x80(汉字)
 124   2            {
 125   2            byte=byte & 0x7f; //最高位置0,即:减去0x8000
 126   2            hzcode=byte*256 + linehead[j+1]; //加低8位,组合成整型数地址
 127   2            ShowHZ( lin,i,hzcode);
 128   2            i=i+2;j=j+2;
 129   2            }
 130   2            }
 131   2            }
 132   2            /*-----------------------------------------------------------------------------------*/
 133   2            //显示一屏汉字
 134   2            //pageheadaddr:此屏汉字代码地址区首地址
 135   2          /*  void ShowPage(unsigned char lin,unsigned char column1,unsigned char 
 136   2            pagehead[][14])
 137   2            {
 138   2            unsigned char i;
 139   2            for(i=0;i< 4 ;i++)
 140   2            ShowLine((lin+i*20),column1,pagehead[i]); //1行8个汉字,16字节
 141   2            }
 142   2            /*--------------------------------------------------------------------------------------------------
             ---*/
 143   2            //反显一个字符
 144   2            //lin:行(0-7), column: 列(0-15)
 145   2          /*  void ReverseShowChar(unsigned char lin,unsigned char column)
 146   2            {
 147   2            unsigned char i;
 148   2            unsigned char dat;
 149   2            unsigned int StartAddr;
 150   2            StartAddr=lin*LineChar +column; //定位起始行
 151   2            for(i=0;i<16;i++)
 152   2            {
 153   2            OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
C51 COMPILER V7.50   MAIN                                                                  12/30/2008 11:47:53 PAGE 4   

 154   2            0x24); //set address
 155   2            OutPortCom1( 0xc5 ); //数据一次读,地址不变
 156   2            dat=InPortData(); //读入数据
 157   2            dat=~dat; //取反
 158   2            OutPortCom2( dat, 0xc4); //送回
 159   2            StartAddr=StartAddr+ LineChar;
 160   2            }
 161   2            }
 162   2      
 163   2            /*--------------------------------------------------------------------------------------------------
             ---*/
 164   2            //反显一个汉字
 165   2            //lin:行(0-7), column: 列(0-15)
 166   2           /* void ReverseShowHZ(unsigned char lin,unsigned char column)
 167   2            {
 168   2            ReverseShowChar(lin,column);
 169   2            ReverseShowChar(lin,column+1);
 170   2            }
 171   2            /*--------------------------------------------------------------------------------------------------
             ---*/
 172   2            //反显一行汉字
 173   2            //lin:行(0-7)
 174   2          /*  void ReverseShowLine(unsigned char lin)
 175   2            {
 176   2            unsigned char column;
 177   2            for(column=0; column< ColumnChar; column++) ReverseShowChar(lin,column);
 178   2            }
 179   2      
 180   2            //////////////////////////////////////////////////////////////////////////////////////
 181   2            void ShowPicture(unsigned char Startline,unsigned char 
 182   2            Startcolumn,unsigned char LineWidth,unsigned char ColumnWidth,unsigned int 
 183   2            address)
 184   2            {
 185   2            unsigned char i,j;
 186   2            unsigned int StartAddr;
 187   2            StartAddr=Startline*LineChar + Startcolumn; //定位起始位置
 188   2            for(i=0;i<ColumnWidth;i++)
 189   2            {
 190   2            OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
 191   2            0x24); //set address
 192   2       /*240x128液晶T6963控制器驱动程序(C51)-P3
 193   2            240x128液晶T6963控制器驱动程序(C51)-P3
 194   2            作者:佚名    51单片机来源:不详    点击数:548    更新时间:2007-8-4   
 195   2      
 196   2            for(j=0;j<LineWidth;j++)
 197   2            {
 198   2            OutPortCom2( CBYTE[address + i*LineWidth+ j ], 0xc0);
 199   2            }
 200   2            StartAddr=StartAddr + LineChar;
 201   2            }
 202   2            } 
 203   2            ////////////////////////////////////////////////////////////////////////////////////////////////////
             -////////////////////////////////////
 204   2            /////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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