?? t6963c.c
字號(hào):
#include <AT89X52.h>
#include "t6963c.h"
#include "fangkuai.h"
#include "typedef.h"
static uint txthome=0x0000;
static uint grshome=0x1000;
//LCD接口定義
sfr PORTD = 0x90 ;
sbit PCD = P2^7 ;
sbit PWR = P2^5 ;
sbit PRD = P2^6 ;
//常量數(shù)據(jù)
unsigned char code CCTable[] = {
/*馮 CB7EB */
0x00,0x47,0x20,0x29,0x09,0x09,0x11,0x13,0x21,0xE0,0x2F,0x20,0x20,0x20,0x20,0x20,
0x00,0xF8,0x08,0x08,0x10,0x10,0x10,0xFC,0x04,0x04,0xF4,0x04,0x04,0x04,0x28,0x10,
/*燕 CD1E0 */
0x04,0x04,0xFF,0x04,0x17,0x10,0xF7,0x14,0x34,0xD7,0x00,0x28,0x24,0x66,0xC2,0x00,
0x40,0x40,0xFE,0x40,0xC0,0x14,0xDE,0x50,0x52,0xCE,0x00,0x88,0x44,0x66,0x22,0x00,
/*輝 CBBD4 */
0x10,0x13,0x96,0x58,0x51,0xFE,0x28,0x28,0x29,0x28,0x28,0x2B,0x4C,0x48,0x80,0x00,
0x00,0xFE,0x44,0x40,0xFC,0x40,0xA0,0xA0,0xFC,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,
/*制 CD6C6 */
0x24,0x34,0x24,0x3F,0x44,0x04,0x7F,0x04,0x3F,0x24,0x24,0x24,0x24,0x27,0x05,0x04,
0x04,0x04,0x24,0xA4,0x24,0x24,0xA4,0x24,0xA4,0xA4,0xA4,0xA4,0x84,0x84,0x14,0x08,
/*作 CD7F7 */
0x08,0x0C,0x09,0x13,0x12,0x34,0x50,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x80,0x80,0x00,0xFE,0x80,0x88,0xFC,0x80,0x80,0x84,0xFE,0x80,0x80,0x80,0x80,0x80,
/*得 CB5C3 */
0x13,0x1A,0x23,0x4A,0x8B,0x10,0x13,0x30,0x50,0x97,0x10,0x11,0x11,0x11,0x10,0x10,
0xF8,0x08,0xF8,0x08,0xF8,0x00,0xFE,0x10,0x10,0xFE,0x10,0x10,0x10,0x10,0x50,0x20,
/*分 CB7D6 */
0x08,0x0C,0x08,0x10,0x10,0x20,0x40,0x9F,0x04,0x04,0x04,0x04,0x08,0x10,0x20,0x40,
0x80,0x80,0x40,0x20,0x30,0x18,0x0E,0xE4,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,0x00,
/*等 CB5C8 */
0x20,0x3E,0x28,0x45,0x85,0x3F,0x01,0xFF,0x00,0x00,0x7F,0x04,0x02,0x02,0x00,0x00,
0x80,0xFC,0xA0,0x10,0x10,0xF8,0x00,0xFE,0x20,0x20,0xFC,0x20,0x20,0x20,0xA0,0x40,
/*級(jí) CBCB6 */
0x10,0x13,0x20,0x24,0x44,0xF8,0x10,0x21,0x7D,0x41,0x02,0x1A,0xE4,0x08,0x11,0x06,
0x00,0xF8,0x88,0x88,0x90,0x90,0xBE,0x44,0x44,0x48,0x28,0x10,0x30,0x48,0x8E,0x04,
/*按 CB0B4 */
0x10,0x10,0x10,0x13,0xFE,0x10,0x14,0x1B,0x30,0xD1,0x11,0x10,0x10,0x11,0x56,0x20,
0x40,0x20,0x20,0xFE,0x04,0x40,0x40,0xFE,0x88,0x10,0x90,0x60,0x58,0x8E,0x04,0x00,
/*開 CBFAA */
0x00,0x7F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x40,0x00,
0x00,0xFE,0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*始 CCABC */
0x10,0x18,0x10,0x10,0xFC,0x25,0x24,0x44,0x44,0x28,0x18,0x14,0x22,0x42,0x80,0x00,
0x20,0x30,0x20,0x48,0x84,0xFE,0x84,0x00,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,0x00,
/*太 CCCAB */
0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x02,0x02,0x04,0x05,0x08,0x10,0x20,0x40,
0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x98,0xCC,0x86,0x04,
/*棒 CB0F4 */
0x20,0x20,0x27,0x20,0xFB,0x20,0x77,0x69,0xA2,0xAD,0x20,0x27,0x20,0x20,0x20,0x20,
0x40,0x40,0xFC,0x40,0xF8,0x80,0xFE,0x20,0x58,0xF6,0x40,0xFC,0x40,0x40,0x40,0x40,
/*了 CC1CB */
0x00,0x7F,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x02,
0x00,0xFC,0x18,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*! CA3A1 */
0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/////////////////////////底層調(diào)用小函數(shù)/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//延時(shí)幾微秒
void delay(void)
{
uchar i=0;
i++;
i++;
}
//讀狀態(tài)位0和1,sta0=1:指令讀寫狀態(tài)準(zhǔn)備好;sta1=1:數(shù)據(jù)讀寫狀態(tài)準(zhǔn)備好
void ST01Read(void)
{
PORTD=0XFF;
while(1){
PCD=1;
PRD=0;
PRD=1;
if ((PORTD^0==1)&&(PORTD^1==1)) break; //判斷指令、數(shù)據(jù)讀寫狀態(tài)是否準(zhǔn)備好
}
}
//讀狀態(tài)位sta2, 檢測(cè)數(shù)據(jù)自動(dòng) 讀 狀態(tài)是否準(zhǔn)備好
static void ST2Read(void)
{
PORTD=0XFF;
while(1){
PCD=1;
PRD=0;
PRD=1;
if (PORTD^2==1) break;
}
}
//讀狀態(tài)位sta3, sta3=1:數(shù)據(jù)自動(dòng) 寫 狀態(tài)準(zhǔn)備好
static void ST3Read(void){
PORTD=0XFF;
while(1)
{
PCD=1;
PRD=0;
PRD=1;
if (PORTD^3==1) break;
}
}
//讀狀態(tài)位sta6, 檢測(cè)屏讀或屏拷貝出錯(cuò)狀態(tài):sta6=1:出錯(cuò);sta6=0:正確
static void ST6Read(void)
{
PORTD=0XFF;
while(1)
{
PCD=1;
PRD=0;
PRD=1;
if (PORTD^6==0) break;
}
}
//////////////////////////////////對(duì)T6963C進(jìn)行讀寫數(shù)據(jù)/////////////////////////////////
//寫數(shù)據(jù)
static void WRData(uchar DData)
{
ST01Read();
PCD=0;
PORTD=DData;
PWR=0;
PWR=1;
}
///讀數(shù)據(jù)
static void RDData(void)
{
ST01Read();
PCD=0;
PRD=0;
PRD=1;
}
//寫命令
static void WRCommand(uchar command)
{
ST01Read();
PCD=1;
PWR=0;
PORTD=command;
PWR=1;
}
//單參數(shù)指令
static void WRCommandOne(uchar data1,uchar command)
{
WRData(data1); //寫數(shù)據(jù)
WRCommand(command); //寫命令
}
//雙參數(shù)指令
static void WRCommandTwo(uchar data1,uchar data2,uchar command)
{
WRData(data1); //寫數(shù)據(jù)
WRData(data2); //寫數(shù)據(jù)
WRCommand(command); //寫命令
}
////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////T6963C常用處理程序/////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//初始化T6963 LCD 顯示
void Init_LCD_Graphic(void)
{
//設(shè)置文本顯示首地址
WRCommandTwo(0x00,0x00,0x40);
//設(shè)置文本顯示區(qū)寬度 40字節(jié)
WRCommandTwo(0x10,0x00,0x41);
//設(shè)置圖形顯示區(qū)首地址
WRCommandTwo(0x00,0x10,0x42); //首地址0x0800
//設(shè)置圖形顯示區(qū)寬度
WRCommandTwo(0x10,0x00,0x43); //40字節(jié)
//設(shè)置CGRAM的首地址
WRCommandTwo(0x03,0x00,0x22);
//設(shè)置顯示方式
WRCommand(0x80); //啟用內(nèi)部字符發(fā)生器,顯示方式是文本與圖形邏輯或
//設(shè)置顯示狀態(tài)
WRCommand(0x9f); //啟用光標(biāo)閃爍、光標(biāo)顯示、文本顯示、圖形顯示
}
//清顯示RAM
void ClrGraphic(void){
uint i;
//設(shè)置顯示地址
WRCommandTwo(0x00,0x00,0x24);
//進(jìn)入自動(dòng)寫方式
WRCommand(0xb0);
//清8KRAM
for(i=0;i<256;i++){
WRData(0x00);
}
//退出自動(dòng)寫方式
WRCommand(0xb2);
}
/////////////////////////////////////////////////////////////////////////
//***********************************************************************
//= 函數(shù)原型: void char_addr_Pointer_Set(uchar x, uchar y)
//= 功 能: 根據(jù)字符的行列設(shè)置vram地址
//= 參 數(shù): x行坐標(biāo),y列坐標(biāo)
//= 返 回 值:
//= 函數(shù)性質(zhì):私有函數(shù)
//***********************************************************************
void char_addr_Pointer_Set(uchar x, uchar y)
{
uint iPos;
uint temp;
iPos = y * 16 + x + txthome;
temp=iPos;
y=iPos>>8;
x=temp&0x00ff;
WRCommandTwo(x,y,0x24);
}
//************************************************************************
//= 函數(shù)原型: void image_addr_Pointer_Set(uchar x, uchar y)
//= 功 能: 根據(jù)的行列設(shè)置圖形字節(jié)的地址
//= 參 數(shù):
//= 返 回 值:
//= 函數(shù)性質(zhì):私有函數(shù)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -