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

📄 t6963.c

📁 t6963驱动,keilc51编译
💻 C
字号:
	 /*------------------------------------------------------------------------------------------
      [文件名] t6963.c
      [功能] 240X128液晶
      [版本] 3.0
      [作者] 鞠春阳
      [最后修改时间] 2003年5月12日
      ===========================================================================================*/ 

      #include "absacc.h"
      #include "math.h"

      #include "ASCII816.h" //标准ASCII库
      #include "HZTable.h"  //汉字点阵库(自做)
      #include "menu.h"     //菜单库(自做)
      #define ComPort 0xB101
      #define DataPort 0xB000
      #define GraphAddr 0x0000 //head of graph
      //以8*8字符计算,显示屏横向、纵向可以显示的字符个数
      //以240*128为例:
      #define LineChar 30 //一行16个字符(8*8)
      #define ColumnChar 16 //总共16列

      //指令,数据 读写状态检查
      #define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } 
      while(sta!=0x03); }
      //数据自动读 状态检查
      #define AutoRCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x04; } 
      while(sta!=0x04); }
      //数据自动写 状态检查
      #define AutoWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x08; } 
      while(sta!=0x08); }
      /*------输入/出函数,与T6963通讯------------------------------------------------*/
      /*------------------------------------------------------------------------*/
      // 向数据口发Data
      #define OutPortData(dat ) { RWCheck(); XBYTE[DataPort]=dat; }
      //写有 1 个参数命令
      #define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }
      //写有 2 个参数命令
      #define OutPortCom2(dat, command) { OutPortData(dat); 
      OutPortCom1(command); }
      //写有 3 个参数命令
      #define OutPortCom3(data1, data2, command) { OutPortData(data1); 
      OutPortData(data2); OutPortCom1(command);}

      unsigned char InPortData() { RWCheck(); return(XBYTE[DataPort]); }
      /*-----------------------------------------------------------------------------------*/
      //显示8*16字符
      //lin:行(0-7), column: 列(0-15)
      //ch:字符代码(标准ASCII码)
      void ShowChar(unsigned char lin,unsigned char column,unsigned char ch)
      {
      unsigned char i;
      unsigned char dat;
      unsigned int StartAddr;
      StartAddr=lin*LineChar +column; //定位起始行
      for(i=0;i<16;i++)
      {
      dat=ASCII816[ ch-0x20 ][i];
      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
      0x24); //set address
      OutPortCom2( dat, 0xc4);
      StartAddr=StartAddr + LineChar;
      }
      }
      /*----------------------------------------------------------------------------------------------*/
      //显示一个汉字(16*16点阵)
      //lin:行(0-7), column: 列(0-7)
      //hzcode: 汉字代码(自定义的)
      void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
      {
      unsigned char i;
      unsigned int StartAddr;
      StartAddr=lin*LineChar + column; //定位起始行
      for(i=0;i<16;i++)
      {
      OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 
      0x24);
      OutPortCom2( HZTable[hzcode][i*2], 0xc0); //左半部 地址加一
      OutPortCom2( HZTable[hzcode][i*2+1], 0xc4); //右半部 字模地址加一
      StartAddr=StartAddr + LineChar;
      }
      }
      /////////////////////////////////////////////////////////////////////////////////////////////
      //显示一个汉字(16*16点阵)
      //lin:行(0-7), column: 列(0-7)
      

⌨️ 快捷键说明

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