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

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

?? 240x128液晶t6963控制器驅動程序(c51).txt

?? 240x128液晶T6963控制器驅動程序(C51)
?? TXT
字號:
#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)
//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();
}


/***************************************************************************************/
/***************************************************************************************/
/***************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码一区二区三区| 成人av网站在线| 成人午夜短视频| 欧美日韩国产免费| 亚洲欧洲一区二区在线播放| 三级成人在线视频| 91婷婷韩国欧美一区二区| 欧美一级高清片在线观看| 亚洲伦理在线精品| 国产麻豆成人精品| 欧美一区二区美女| 亚洲国产视频一区二区| 国产福利精品导航| 亚洲精品一区在线观看| 亚洲国产日韩综合久久精品| av不卡免费电影| 国产欧美1区2区3区| 美国精品在线观看| 在线不卡a资源高清| 有码一区二区三区| 成人黄色电影在线| 亚洲国产精品成人综合| 国产一区二区三区在线观看免费 | 国产香蕉久久精品综合网| 亚洲综合色成人| 成人黄色免费短视频| 国产亚洲污的网站| 国产一区视频网站| 久久精品视频在线看| 老司机午夜精品99久久| 欧美变态tickling挠脚心| 日韩av中文字幕一区二区| 制服.丝袜.亚洲.另类.中文| 亚洲成人动漫一区| 911精品国产一区二区在线| 亚洲一区视频在线| 欧美日韩一区二区三区在线| 亚洲成人精品一区二区| 欧美电影影音先锋| 久久综合综合久久综合| 日韩美女天天操| 国产原创一区二区三区| 国产日韩av一区| 成人免费看视频| 国产精品久久国产精麻豆99网站| 国产成人aaa| ...中文天堂在线一区| 色欧美乱欧美15图片| 亚洲午夜久久久久中文字幕久| 欧美午夜宅男影院| 日韩不卡一二三区| 久久精品视频一区二区| 成人av资源在线观看| 一区二区三区在线播放| 欧美老年两性高潮| 裸体一区二区三区| 亚洲国产精品成人综合色在线婷婷| 白白色亚洲国产精品| 亚洲精品大片www| 宅男噜噜噜66一区二区66| 精品一区二区三区在线观看国产| 久久久欧美精品sm网站| 91蜜桃在线免费视频| 亚洲国产精品一区二区久久恐怖片| 91精品婷婷国产综合久久性色| 国产自产v一区二区三区c| 中文字幕亚洲精品在线观看| 欧美三级电影在线看| 国产黄色精品视频| 亚洲综合丁香婷婷六月香| 精品理论电影在线| 色老汉一区二区三区| 裸体在线国模精品偷拍| 中文字幕一区二区三区色视频| 精品视频一区三区九区| 国产麻豆精品95视频| 亚洲成人av免费| 国产女人水真多18毛片18精品视频 | 欧美精品一卡二卡| 风流少妇一区二区| 日本免费新一区视频| 国产精品国产自产拍在线| 欧美军同video69gay| 成人免费视频国产在线观看| 日本午夜一区二区| 亚洲一区二区三区不卡国产欧美 | 三级不卡在线观看| 国产精品嫩草久久久久| 日韩一级成人av| 在线一区二区三区| zzijzzij亚洲日本少妇熟睡| 老司机免费视频一区二区三区| 亚洲精品中文在线观看| 久久精品人人做| 在线不卡中文字幕| 欧美性大战久久久| 成人午夜视频在线| 黑人巨大精品欧美一区| 婷婷夜色潮精品综合在线| 中文字幕一区二区三区在线观看| 精品日产卡一卡二卡麻豆| 欧美日韩成人在线一区| 在线观看精品一区| 91免费视频观看| 粉嫩高潮美女一区二区三区| 久久国产欧美日韩精品| 美国十次了思思久久精品导航| 亚洲在线观看免费| 亚洲一区二区三区四区的| 最好看的中文字幕久久| 国产精品激情偷乱一区二区∴| 国产欧美日韩在线| 国产午夜亚洲精品不卡| 精品成人佐山爱一区二区| 91精品一区二区三区在线观看| 欧美日韩情趣电影| 欧美日韩午夜影院| 欧美精三区欧美精三区| 欧美日韩dvd在线观看| 欧美丝袜丝交足nylons| 欧美日韩免费在线视频| 欧美日韩国产bt| 欧美一区二区三区视频在线| 91精品国产综合久久精品性色| 欧美猛男超大videosgay| 欧美日韩精品一二三区| 6080亚洲精品一区二区| 日韩一区二区免费高清| 日韩视频免费观看高清完整版在线观看 | 国产日韩一级二级三级| 国产欧美一区在线| 亚洲美女一区二区三区| 亚洲va天堂va国产va久| 免费观看91视频大全| 国产精品中文欧美| 成人精品视频一区二区三区| 日本丰满少妇一区二区三区| 欧美日产在线观看| 久久综合色之久久综合| 国产精品夫妻自拍| 亚洲444eee在线观看| 狠狠色狠狠色综合系列| 成人高清免费观看| 欧洲精品视频在线观看| 制服丝袜亚洲色图| 国产亚洲一区二区三区| 亚洲免费av网站| 麻豆高清免费国产一区| 不卡一区在线观看| 69堂亚洲精品首页| 国产欧美日产一区| 亚洲bt欧美bt精品777| 国产福利一区在线| 欧美三级视频在线| 国产欧美精品一区二区三区四区| 亚洲自拍偷拍av| 国产高清一区日本| 91精品国产品国语在线不卡| 国产女同性恋一区二区| 同产精品九九九| 成人97人人超碰人人99| 91精品国产综合久久久久久久 | 99久久免费精品高清特色大片| 欧美日韩亚州综合| 国产精品区一区二区三区| 午夜精品爽啪视频| 丁香婷婷综合色啪| 91精品国产高清一区二区三区| 国产精品视频观看| 久久av资源站| 欧美色手机在线观看| 国产精品日韩精品欧美在线| 视频一区视频二区中文| av资源站一区| 久久久亚洲高清| 午夜电影久久久| 91网上在线视频| 欧美国产激情二区三区| 久久精品99国产国产精| 欧美亚洲综合色| 国产精品国产三级国产aⅴ中文| 奇米精品一区二区三区在线观看一 | 欧美激情在线一区二区| 日韩成人一级大片| 精品视频在线免费看| 亚洲男人电影天堂| 99在线精品一区二区三区| 国产三级一区二区三区| 捆绑调教美女网站视频一区| 欧美日韩一本到| 亚洲图片欧美视频| 欧美在线看片a免费观看| 国产精品美女久久久久av爽李琼| 国产一区二区三区四区五区入口| 日韩一区二区三区高清免费看看| 亚洲成人激情av| 欧美美女bb生活片| 日韩精彩视频在线观看| 欧美日免费三级在线| 亚洲va韩国va欧美va|