亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 6963.txt

?? 6963 顯示驅動程序
?? TXT
字號:
t6963c驅動程序-驅動代碼,T6963C液晶顯示控制器多用于小規模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內
藏控制器型圖形液晶顯示模塊的形式出現。

評:系轉載,液晶控制器T6963的C語言驅動程序,T6963應用廣泛,特別是240×128的液晶基本上都是用這個芯片。 

#include "absacc.h"
#include "math.h"
#include "ASCII816.h" //字符點陣庫 0x20--0x7F
#include "HZTable.h" //漢字點陣庫(自做)
#include "menu.h" //漢字點陣庫(自做)

//set following data by user according to LCD
#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)
//hzcode: 漢字代碼(自定義的)
void ShowHZD(unsigned char lin,unsigned char column,unsigned int hzcode)
{
unsigned char i,j;
unsigned int StartAddr;

StartAddr=lin*LineChar*16 +column; //定位起始行

for(i=0;i<35;i++)
{
OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //定位當前操作位置
for(j=0;j<5;j++) OutPortCom2( HZTable[hzcode][i*5+j], 0xc0); //顯示當前一行

StartAddr=StartAddr + LineChar;
}
}

////////////////////////////////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------------------------------*/
//顯示一行字符串(漢字,字母混排,一行16字節)
//lin:行
//lineheadaddr: 此行漢字代碼區首地址
void ShowLine(unsigned char lin,unsigned char column,unsigned char linehead[])
{
unsigned char i,j;
unsigned char byte;
unsigned int hzcode;

for( i= column,j=0; i< column+14 ; )
{ byte=linehead[j];
if(byte < 0x80) //字母
{
ShowChar(lin, i , byte);
i=i+1;j=j+1;
}
else // byte >= 0x80(漢字)
{
byte=byte & 0x7f; //最高位置0,即:減去0x8000
hzcode=byte*256 + linehead[j+1]; //加低8位,組合成整型數地址
ShowHZ( lin,i,hzcode);
i=i+2;j=j+2;
}
}
}

/*-----------------------------------------------------------------------------------*/
//顯示一屏漢字
//pageheadaddr:此屏漢字代碼地址區首地址
void ShowPage(unsigned char lin,unsigned char column1,unsigned char pagehead[][14])
{
unsigned char i;
for(i=0;i< 4 ;i++)
ShowLine((lin+i*20),column1,pagehead[i]); //1行8個漢字,16字節
}

/*----------------------------------------------------------------------------------------------------*/
//反顯一個字符
//lin:行(0-7), column: 列(0-15)
void ReverseShowChar(unsigned char lin,unsigned char column)
{
unsigned char i;
unsigned char dat;
unsigned int StartAddr;

StartAddr=lin*LineChar +column; //定位起始行

for(i=0;i<16;i++)
{
OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
OutPortCom1( 0xc5 ); //數據一次讀,地址不變
dat=InPortData(); //讀入數據
dat=~dat; //取反
OutPortCom2( dat, 0xc4); //送回

StartAddr=StartAddr+ LineChar;
}
}


/*----------------------------------------------------------------------------------------------------*/
//反顯一個漢字
//lin:行(0-7), column: 列(0-15)
void ReverseShowHZ(unsigned char lin,unsigned char column)
{
ReverseShowChar(lin,column);
ReverseShowChar(lin,column+1);
}
/*----------------------------------------------------------------------------------------------------*/
//反顯一行漢字
//lin:行(0-7)
void ReverseShowLine(unsigned char lin)
{
unsigned char column;
for(column=0; column< ColumnChar; column++) ReverseShowChar(lin,column);
}


//////////////////////////////////////////////////////////////////////////////////////
void ShowPicture(unsigned char Startline,unsigned char Startcolumn,unsigned char LineWidth,unsigned char ColumnWidth,unsigned int address)
{
unsigned char i,j;
unsigned int StartAddr;

StartAddr=Startline*LineChar + Startcolumn; //定位起始位置

for(i=0;i<ColumnWidth;i++)
{

OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
for(j=0;j<LineWidth;j++)
{
OutPortCom2( CBYTE[address + i*LineWidth+ j ], 0xc0);
}
StartAddr=StartAddr + LineChar;
}
}

///////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//圖形函數,用于描點畫圖
//---------------------------------------------------------------------------
//在指定位置顯示一個點
//如果顯示屏超過了256*256,請修改這個函數 PointX,PointY的類型
//Mode 1:顯示 0:清除該點
Pixel(unsigned char PointX,unsigned char PointY, bit Mode)
{
unsigned int StartAddr=0;
unsigned char dat;

StartAddr=PointX*LineChar + PointY/8;
dat=0xf0+7-PointY%8;
if(Mode) dat=dat 0x08;

OutPortCom3( (unsigned char)(StartAddr),(unsigned char)(StartAddr>>8),0x24 ); //設置該點所在單元地址
OutPortCom1(dat);
}

//-------------------------------------------------------------------------------
//劃線函數
void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)
{
unsigned char x,y;
double k,b;

if( abs(y1-y2) <= abs(x1-x2) ) // k <=1
{
k=(float)(y2-y1) / (float)(x2-x1) ;
b=y1-k*x1;

if( x1 <= x2 )
{
for(x=x1;x<=x2;x++)
{
y=k*x+b;
Pixel(x, y, Mode);
}
}
else
{
for(x=x2;x<=x1;x++)
{ y=k*x+b;
Pixel(x, y, Mode);
}
}
}
else // abs(y1-y2) > abs(x1-x2) K >1
{
k=(float)(x2-x1) / (float)(y2-y1) ;
b=x1-k*y1;

if( y1 <= y2 )
{
for(y=y1;y<=y2;y++)
{ x=k*y+b;
Pixel( x , y,Mode );
}
}
else
{
for(y=y2;y<=y1;y++)
{ x=k*y+b;
Pixel( x , y,Mode );
}
}
}
}

/*--------------------------------------------------------------------------------------*/
void ClearScreen()
{

unsigned int i;
///////// 清顯示 RAM 區 0000h--2000h (8k)
OutPortCom3(0x00,0x00,0x24); //設置指針地址0000H

OutPortCom1(0xb0); //設置自動寫狀態
for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;
OutPortCom1(0xb2); // 自動寫結束
}

//初始化LCD
//需要手動設置
void InitLCD()
{
OutPortCom3( 0x00,0x00,0x42 ); //設置圖形顯示區域首地址GraphAddr
OutPortCom3( 30,0x00,0x43 ); //設置圖形顯示區域寬度 : LineChar

// OutPortCom3( 0x00,0x00,0x42 ); //設置圖形顯示區域首地址GraphAddr
// OutPortCom3( 0x10,0x00,0x43); //設置圖形顯示區域寬度:10H

OutPortCom1(0xa7); //設置光標形狀 cursor size 8x8
OutPortCom1(0x80); //設置顯示方式: CGROM方式 文本\圖形 "或"
OutPortCom1(0x98); //設置顯示開關: 1001 1100 圖形

ClearScreen();
}

T6963C 引腳說明
T6963C 的QFD 封裝共有67 個引腳,各引腳說明如下:
1、D0-D7:T6963C 與MPU 接口的數據總線,三態。

2、RD,WR:讀.寫選通信號,低電平有效,輸入信號。
3、CE:T6963C 的片選信號,低電平有效。
4、C/D:通道選擇信號,1 為指令通道,0 為數據通道。
5、RESET,HALT:RESET 為低電平有效的復位信號,它將行、列計數器和顯示寄存器清零,
關顯示;HALT 具有RESET 的基本功能,還將中止內部時鐘振蕩器的工作,以保護液晶顯示器件。
以上引腳為T6963C 與MPU 接口的引腳,時序關系符合8080 系列時序。
6、UAL,SDSEL:
DUAL=1 為單屏結構,DUAL=0 為雙屏結構;
SDSEL=0 為一位串行數據傳輸方式,SDSEL=0 為2 位并行數據傳輸方式。
7、MD2,MD3:設置顯示窗口長度,從而確定了列數據傳輸個數的最大值8、MDS,MD1,MD0:設置顯示窗口寬度(行),從而確定T6963C 的幀掃信號的時序和顯示
驅動的占比系數

9、S1,FS0:顯示字符的字體選擇。
FS1 1 1 0 0
FS0 1 0 1 0
字體 5×8 6×8 7×8 8×8
10、X1、X0:振蕩時鐘引腳。
11、AD0-15:輸出信號,顯示緩沖區16 位地址總路線。
12、D0-7:三態,顯示緩沖區8 位數據總路線。
13、R/W:輸出,顯示緩沖區讀/寫控制信號。
14、CE:輸出,顯示緩沖區片選信號,低電平有效。
15、CE0,CE1:輸出,DUAL=1 時的存儲器片選信號。
16、T1、T2、CH1,CH2:用來檢測T6963C 工作使用情況,T1,T2 作為測試信號輸入端,CH1,
點陣圖形液晶顯示模塊T6963C 控制器使用手冊 SYNTOPSTART 北京信通時代科技有限公司
6
CH2 作為輸出端。
17、HOD,HSCP,LOD LSCP(CE1),ED LP,CDATA,FR 為T6963C 驅動部分信號,
我們可以不作太多了解.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品三级在线专区| 日本欧美韩国一区三区| 国产日产欧美一区二区视频| 日韩欧美一区二区三区在线| 欧美精品视频www在线观看| 在线免费观看一区| 欧美综合亚洲图片综合区| 色av一区二区| 日本黄色一区二区| 欧美日韩大陆一区二区| 国产视频一区在线播放| 久久综合九色欧美综合狠狠| 久久久高清一区二区三区| 久久精品男人天堂av| 国产欧美日韩三级| 国产精品久久久久久久久搜平片| 中文字幕免费观看一区| 国产精品视频yy9299一区| 亚洲欧洲精品天堂一级| 亚洲精品va在线观看| 亚洲制服丝袜av| 日韩激情中文字幕| 久久99国产精品尤物| 国产成人精品aa毛片| 91色视频在线| 欧美精品视频www在线观看| 日韩欧美一区在线观看| 国产日韩欧美a| 亚洲日本护士毛茸茸| 亚洲1区2区3区视频| 老司机精品视频一区二区三区| 国产一区二区三区蝌蚪| 91污在线观看| 欧美精品在线观看一区二区| 精品免费日韩av| 中文字幕一区二区三区四区不卡| 一区二区三区精品| 麻豆精品视频在线观看| 国产精品91一区二区| 91视视频在线观看入口直接观看www| 91成人免费电影| 欧美成人免费网站| 国产精品每日更新| 午夜影院久久久| 国产精品911| 欧美色爱综合网| 久久蜜臀中文字幕| 一级女性全黄久久生活片免费| 日韩av一区二区三区| 成人小视频免费观看| 欧美精品久久久久久久久老牛影院| 久久夜色精品一区| 一区二区三区四区高清精品免费观看 | 日韩女优av电影在线观看| 国产精品久久免费看| 日本中文字幕一区二区视频| 成人午夜激情在线| 欧美一区二区成人| 国产精品久久三| 久久精品国产第一区二区三区| 99综合影院在线| 精品国产青草久久久久福利| 亚洲欧美一区二区不卡| 蜜臀av性久久久久蜜臀av麻豆| av不卡在线播放| 精品第一国产综合精品aⅴ| 亚洲摸摸操操av| 久久超碰97中文字幕| 日本电影欧美片| 国产欧美精品在线观看| 日韩国产精品大片| 欧洲国内综合视频| 国产欧美日韩三区| 精品一区二区久久久| 欧美精品电影在线播放| 亚洲蜜臀av乱码久久精品| 国产伦精一区二区三区| 欧美一区二区三区的| 亚洲免费av高清| 成人av免费在线播放| 精品久久一区二区三区| 亚洲国产精品久久人人爱| 91在线国产福利| 国产欧美精品日韩区二区麻豆天美| 日本午夜一区二区| 欧美三区在线观看| 亚洲色图视频免费播放| 成人自拍视频在线观看| 久久众筹精品私拍模特| 日产精品久久久久久久性色| 欧美亚洲动漫制服丝袜| 亚洲精品一卡二卡| 99精品欧美一区| 中文字幕亚洲区| 成人av免费在线观看| 国产精品麻豆视频| 国产精品一级在线| 亚洲精品一区二区在线观看| 久久国产精品免费| 欧美一区二区三区小说| 日本午夜精品一区二区三区电影 | 欧美午夜精品一区二区三区| 亚洲欧洲日韩女同| 成人v精品蜜桃久久一区| 久久精品亚洲精品国产欧美| 国产精品1区二区.| 国产午夜精品一区二区三区四区 | 7777精品伊人久久久大香线蕉完整版 | 伊人夜夜躁av伊人久久| 色噜噜狠狠一区二区三区果冻| 国产精品国模大尺度视频| 国产成人av一区二区三区在线| 国产性做久久久久久| 成人国产视频在线观看| 国产精品成人免费精品自在线观看| 成人深夜在线观看| 亚洲色图在线播放| 欧美丝袜自拍制服另类| 天天色天天爱天天射综合| 欧美高清视频一二三区| 久久精品久久99精品久久| 精品1区2区在线观看| 成人黄色一级视频| 亚洲欧美日韩系列| 欧美日韩精品三区| 精品综合久久久久久8888| 久久免费电影网| 色婷婷av一区二区三区gif| 亚洲国产成人va在线观看天堂| 91精品国产日韩91久久久久久| 久久精品国产久精国产爱| 国产亚洲1区2区3区| 色拍拍在线精品视频8848| 亚洲超碰97人人做人人爱| 精品国产99国产精品| 成人小视频免费观看| 亚洲综合成人网| 欧美一区欧美二区| 国产乱码字幕精品高清av| 国产精品乱人伦中文| 欧美日韩日日夜夜| 狠狠色丁香婷婷综合| 亚洲三级视频在线观看| 欧美日韩高清在线| 国产成人综合自拍| 一区二区三区精品久久久| 日韩精品一区二区三区中文精品| 成人一区二区三区视频在线观看| 伊人婷婷欧美激情| 久久中文字幕电影| 欧洲另类一二三四区| 秋霞成人午夜伦在线观看| 欧美经典一区二区| 欧美优质美女网站| 国产一区三区三区| 一区二区高清免费观看影视大全 | 亚洲黄色小视频| 日韩情涩欧美日韩视频| 成人动漫精品一区二区| 日本va欧美va精品| 日韩一区欧美一区| 欧美成人国产一区二区| 91亚洲精华国产精华精华液| 美女性感视频久久| 亚洲精品va在线观看| 国产女同性恋一区二区| 欧美精品精品一区| 99久久777色| 国精产品一区一区三区mba视频| 一区二区三区四区视频精品免费| 日韩欧美一区二区三区在线| 91丨porny丨户外露出| 国产一区二区三区免费在线观看| 亚洲小说欧美激情另类| 国产精品毛片久久久久久 | 男女男精品视频网| 亚洲综合成人在线| 国产精品福利影院| 久久久.com| 日韩欧美三级在线| 欧美在线观看视频一区二区| 豆国产96在线|亚洲| 国产一区二区网址| 美国十次了思思久久精品导航| 一区二区三区在线播| 中文字幕一区av| 国产精品丝袜久久久久久app| 欧美成va人片在线观看| 欧美日韩激情一区二区三区| 91在线观看地址| 99视频一区二区| 岛国av在线一区| 国产成a人亚洲| 国产精品一区二区三区99| 麻豆专区一区二区三区四区五区| 亚洲二区在线观看| 亚洲国产一区二区视频| 亚洲激情一二三区| 亚洲精品日产精品乱码不卡| 国产精品美女久久久久久久|