?? t6963c.c
字號(hào):
// T6963c.c
//
// #define _T6963C_C
#include "includes.h"
#include "avr/pgmspace.h" // 使用flash程序區(qū)
/************************************************************************************/
/* 函數(shù)名稱:fnGetRow */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar gCurRow 當(dāng)前行 */
/* 函數(shù)功能:得到當(dāng)前行 */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnGetRow(void)
{
return gCurRow;
}
/************************************************************************************/
/* 函數(shù)名稱:fnGetCol */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar gCurCol 當(dāng)前列 */
/* 函數(shù)功能:得到當(dāng)前列 */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnGetCol(void)
{
return gCurCol;
}
/************************************************************************************/
/* 函數(shù)名稱:fnST */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar */
/* */
/* */
/* 函數(shù)功能:狀態(tài)位判斷(讀寫指令和讀寫數(shù)據(jù)) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnST(void)
{
uchar ucState;
DDRA = 0x00; // 數(shù)據(jù)方向?yàn)檩斎? PORTA = 0xFF; // 使能內(nèi)部上拉電阻
DDRB = 0x0F; // 數(shù)據(jù)方向?yàn)檩敵? PORTB = 0xFF; // 高4位使能內(nèi)部上拉電阻,低4位輸出高電平
// lcd_delay(10);
PORTB |= (1 << CD); // CD (PB2) 賦值1,命令
PORTB &= ~(1 << RD); // RD (PB1) 賦值0,讀操作有效
// lcd_delay(10);
ucState = PINA;
PORTB |= (1 << RD); // RD (PB1) 賦值1,讀操作無效
return ucState;
}
/************************************************************************************/
/* 函數(shù)名稱:fnST01 */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar i */
/* 輸出 0,說明錯(cuò)誤 */
/* 輸出 1到10共10個(gè)整數(shù)中任一個(gè)為正確 */
/* 函數(shù)功能:狀態(tài)位STA1,STA0判斷(讀寫指令和讀寫數(shù)據(jù)) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnST01(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((fnST() & 0x03) == 0x03)
break;
}
return i;
}
/************************************************************************************/
/* 函數(shù)名稱:fnST2 */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar i */
/* 輸出 0,說明錯(cuò)誤 */
/* 輸出 1到10共10個(gè)整數(shù)中任一個(gè)為正確 */
/* 函數(shù)功能:狀態(tài)位ST2判斷(數(shù)據(jù)自動(dòng)讀狀態(tài)) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnST2(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((fnST() & 0x04) == 0x04)
break;
}
return i;
}
/************************************************************************************/
/* 函數(shù)名稱:fnST3 */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar i */
/* 輸出 0,說明錯(cuò)誤 */
/* 輸出 1到10共10個(gè)整數(shù)中任一個(gè)為正確 */
/* 函數(shù)功能:狀態(tài)位ST3判斷(數(shù)據(jù)自動(dòng)寫狀態(tài)) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnST3(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((fnST() & 0x08) == 0x08)
break;
}
return i;
}
/************************************************************************************/
/* 函數(shù)名稱:fnST6 */
/* 輸入?yún)?shù):void */
/* 輸出參數(shù):uchar i */
/* 輸出 0,說明錯(cuò)誤 */
/* 輸出 1到10共10個(gè)整數(shù)中任一個(gè)為正確 */
/* 函數(shù)功能:狀態(tài)位ST6判斷(屏讀/屏拷貝狀態(tài))) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnST6(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((fnST() & 0x40) == 0x40)
break;
}
return i;
}
/************************************************************************************/
/* 函數(shù)名稱:fnCW2P */
/* 輸入?yún)?shù):uchar uCmd,uchar uPar1,uchar uPar2 */
/* uCmd 命令 */
/* uPar1 地址低8位 */
/* uPar2 地址高8位 */
/* 輸出參數(shù):uchar */
/* 輸出 0, 說明成功 */
/* 輸出 1,2 說明錯(cuò)誤 */
/* 函數(shù)功能:寫雙參數(shù)的指令 */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnCW2P(uchar uCmd,uchar uPar1,uchar uPar2)
{
DDRA = 0xFF; // 數(shù)據(jù)方向?yàn)檩敵?// PORTA = 0xFF; // 使能內(nèi)部上拉電阻
DDRB = 0x0F; // 數(shù)據(jù)方向?yàn)檩敵?
if(fnST01() == 0)
return 1;
PORTB &= ~(1 << CD) ; // CD (PB2) 賦值0,低電平表示數(shù)據(jù)
// lcd_delay(1);
PORTA = uPar1; // 賦值
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
// lcd_delay(1);
if(fnST01() == 0)
return 2;
PORTB &= ~(1 << CD) ; // CD (PB2) 賦值0,低電平表示數(shù)據(jù)
// lcd_delay(1);
PORTA = uPar2; // 賦值
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
// lcd_delay(1);
if(fnST01() == 0)
return 3;
PORTB |= (1 << CD) ; // CD (PB2) 賦值1,高電平表示命令
// lcd_delay(1);
PORTA = uCmd; // 賦值
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
return 0;
}
/************************************************************************************/
/* 函數(shù)名稱:fnCW1P */
/* 輸入?yún)?shù):uchar uCmd 命令 */
/* uchar uPar1 數(shù)值 */
/* 輸出參數(shù):輸出 0, 說明成功 */
/* 輸出 1,2 說明錯(cuò)誤 */
/* 函數(shù)功能:寫單參數(shù)的指令 */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnCW1P(uchar uCmd,uchar uPar1)
{
DDRA = 0xFF; // 數(shù)據(jù)方向?yàn)檩敵? PORTA = 0xFF; // 使能內(nèi)部上拉電阻
DDRB = 0x0F; // 數(shù)據(jù)方向?yàn)檩敵?
if(fnST01() == 0)
return 1;
PORTB &= ~(1 << CD) ; // CD (PB2) 賦值0,低電平表示數(shù)據(jù)
PORTA = uPar1; // 賦值
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
if(fnST01() == 0)
return 2;
PORTB |= (1 << CD) ; // CD (PB2) 賦值1,高電平表示命令
PORTA = uCmd;
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
return 0; // 返回0成功
}
/************************************************************************************/
/* 函數(shù)名稱:fnCW0P */
/* 輸入?yún)?shù):uchar uCmd 命令 */
/* 輸出參數(shù):uchar */
/* 0 正確 */
/* 1 錯(cuò)誤 */
/* 函數(shù)功能:寫無參數(shù)的指令 */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnCW0P(uchar uCmd)
{
DDRA = 0xFF; // 數(shù)據(jù)方向?yàn)檩敵?// PORTA = 0xFF; // 使能內(nèi)部上拉電阻
DDRB = 0x0F; // 數(shù)據(jù)方向?yàn)檩敵?
if(fnST01() == 0)
return 1;
PORTB |= (1 << CD) ; // CD (PB2) 賦值1,高電平表示命令
PORTA = uCmd;
// lcd_delay(1);
PORTB &= ~(1 << WR); // WR (PB0) 賦值0,低電平寫操作有效
// _NOP();
// lcd_delay(1);
PORTB |= (1 << WR); // WR (PB0) 賦值1,高電平寫操作無效
return 0; // 返回0成功
}
/************************************************************************************/
/* 函數(shù)名稱:fnDWD */
/* 輸入?yún)?shù):uchar uData 數(shù)據(jù) */
/* 輸出參數(shù):uchar 0 成功 ,否則 錯(cuò)誤 */
/* 函數(shù)功能:自動(dòng)寫數(shù)據(jù) */
/* 作 者 :安車科技大燈儀開發(fā)小組 許孝剛 */
/* 開發(fā)日期: 2005.08 */
/* 版 本 : v1.0 */
/************************************************************************************/
uchar fnDWD(uchar uData)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -