-
大小: 49.19 KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2024-11-18
- 語言: 其他
- 標(biāo)簽: msp430f149??ps2鍵盤??lcd1602??
資源簡介
msp430f149控制PS2鍵盤并用1602顯示,調(diào)試通過
代碼片段和文件信息
#include?
#include?“cry1602.h“
typedef?unsigned?char?uchar;
typedef?unsigned?int??uint;
/**************宏定義***************/
#define?DataDir?????P4DIR
#define?DataPort????P4OUT
#define?Busy ????0x80
#define?CtrlDir?????P3DIR
#define?CLR_RS?P3OUT&=~BIT0?????//RS?=?P3.0
#define?SET_RS?P3OUT|=BIT0
#define?CLR_RW?P3OUT&=~BIT1? //RW?=?P3.1
#define?SET_RW?P3OUT|=BIT1
#define?CLR_EN?P3OUT&=~BIT2 ????//EN?=?P3.2
#define?SET_EN?P3OUT|=BIT2
/*******************************************
函數(shù)名稱:DispNchar
功????能:讓液晶從某個(gè)位置起連續(xù)顯示N個(gè)字符
參????數(shù):x--位置的列坐標(biāo)
??????????y--位置的行坐標(biāo)
??????????n--字符個(gè)數(shù)
??????????ptr--指向字符存放位置的指針
返回值??:無
********************************************/
void?DispNchar(uchar?xuchar?y?uchar?nuchar?*ptr)?
{
????uchar?i;
????
for?(i=0;i {
Disp1Char(x++yptr[i]);
if?(x?==?0x0f)
{
???x?=?0;?
???????????y?^=?1;
}
}
}
/*******************************************
函數(shù)名稱:LocateXY
功????能:向液晶輸入顯示字符位置的坐標(biāo)信息
參????數(shù):x--位置的列坐標(biāo)
??????????y--位置的行坐標(biāo)
返回值??:無
********************************************/
void?LocateXY(uchar?xuchar?y)?
{
????uchar?temp;
temp?=?x&0x0f;
y?&=?0x01;
if(y)???temp?|=?0x40;??//如果在第2行
temp?|=?0x80;
????
LcdWriteCommand(temp1);
}
/*******************************************
函數(shù)名稱:Disp1Char
功????能:在某個(gè)位置顯示一個(gè)字符
參????數(shù):x--位置的列坐標(biāo)
??????????y--位置的行坐標(biāo)
??????????data--顯示的字符數(shù)據(jù)
返回值??:無
********************************************/
void?Disp1Char(uchar?xuchar?yuchar?data)?
{
LocateXY(?x?y?);
LcdWriteData(?data?);
}
/*******************************************
函數(shù)名稱:LcdReset
功????能:對1602液晶模塊進(jìn)行復(fù)位操作
參????數(shù):無
返回值??:無
********************************************/
void?LcdReset(void)?
{
????CtrlDir?|=?0x07;?????????????????//控制線端口設(shè)為輸出狀態(tài)?
????DataDir?|=?0xFF;?????????????????//數(shù)據(jù)端口設(shè)為輸出狀態(tài)
??
??? LcdWriteCommand(0x38?0); ????//規(guī)定的復(fù)位操作
Delay5ms();
LcdWriteCommand(0x38?0);
Delay5ms();
LcdWriteCommand(0x38?0);
Delay5ms();
LcdWriteCommand(0x38?1); //顯示模式設(shè)置
????LcdWriteCommand(0x08?1); //顯示關(guān)閉
??? LcdWriteCommand(0x01?1); ????//顯示清屏
LcdWriteCommand(0x06?1); //寫字符時(shí)整體不移動(dòng)
LcdWriteCommand(0x0c?1); //顯示開,不開游標(biāo),不閃爍
}
/*******************************************
函數(shù)名稱:LcdWriteCommand
功????能:向液晶模塊寫入命令
參????數(shù):cmd--命令,
??????????chk--是否判忙的標(biāo)志,1:判忙,0:不判
返回值??:無
********************************************/
void?LcdWriteCommand(uchar?cmduchar?chk)?
{
if?(chk)?WaitForEnable();???//?檢測忙信號?
CLR_RS;
CLR_RW;?
_NOP();
DataPort?=?cmd;?????????????//將命令字寫入數(shù)據(jù)端口?
_NOP();
SET_EN;?????????????????????//產(chǎn)生使能脈沖信號
_NOP();
_NOP();
CLR_EN;
}
/*******************************************
函數(shù)名稱:LcdWriteData
功????能:向液晶顯示的當(dāng)前地址寫入顯示數(shù)據(jù)
參????數(shù):data--顯示字符數(shù)據(jù)
返回值??:無
********************************************/
void?LcdWriteData(?uchar?data?)?
{
WaitForEnable();????????//等待液晶不忙
SET_RS;
CLR_RW;?
_NOP();
????DataPort?=?data;????????//將顯示數(shù)據(jù)寫入數(shù)據(jù)端口
????_NOP();
SET_EN;??????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????12489??2008-03-22?21:37??MSP430f149-ps2-1602\P1\Backup?of?P1.ewd
?????文件??????43826??2008-03-22?21:37??MSP430f149-ps2-1602\P1\Backup?of?P1.ewp
?????文件????????689??2008-03-05?14:30??MSP430f149-ps2-1602\P1\BoardConfig.h
?????文件???????2248??2007-12-31?10:47??MSP430f149-ps2-1602\P1\code.h
?????文件???????4420??2008-03-05?15:30??MSP430f149-ps2-1602\P1\cry1602.c
?????文件????????401??2007-12-29?21:25??MSP430f149-ps2-1602\P1\cry1602.h
?????文件??????19318??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Exe\P1.d43
?????文件??????13831??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Obj\cry1602.r43
?????文件??????16994??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Obj\Keyboard.r43
?????文件??????21420??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Obj\main.r43
?????文件????????265??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Obj\P1.pbd
?????文件????????391??2007-12-31?13:06??MSP430f149-ps2-1602\P1\gdata.h
?????文件???????3519??2011-06-16?10:41??MSP430f149-ps2-1602\P1\Keyboard.c
?????文件????????124??2007-12-31?12:54??MSP430f149-ps2-1602\P1\Keyboard.h
?????文件???????4676??2011-06-16?10:41??MSP430f149-ps2-1602\P1\main.c
?????文件???????6729??2011-06-16?10:41??MSP430f149-ps2-1602\P1\P1.dep
?????文件??????17846??2011-06-15?21:23??MSP430f149-ps2-1602\P1\P1.ewd
?????文件??????47264??2011-06-15?21:23??MSP430f149-ps2-1602\P1\P1.ewp
?????文件????????156??2008-03-22?21:37??MSP430f149-ps2-1602\P1\P1.eww
?????文件???????4145??2011-06-16?10:41??MSP430f149-ps2-1602\P1\Release\Exe\P1.txt
?????文件???????7666??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Release\Obj\cry1602.r43
?????文件??????10002??2011-06-16?10:41??MSP430f149-ps2-1602\P1\Release\Obj\Keyboard.r43
?????文件??????12646??2011-06-16?10:41??MSP430f149-ps2-1602\P1\Release\Obj\main.r43
?????文件????????271??2011-06-16?10:41??MSP430f149-ps2-1602\P1\Release\Obj\P1.pbd
?????文件???????2594??2011-06-16?10:25??MSP430f149-ps2-1602\P1\settings\P1.cspy.bat
?????文件???????3880??2011-06-16?10:41??MSP430f149-ps2-1602\P1\settings\P1.dbgdt
?????文件????????981??2011-06-16?10:41??MSP430f149-ps2-1602\P1\settings\P1.dni
?????文件???????3116??2011-06-16?10:41??MSP430f149-ps2-1602\P1\settings\P1.wsdt
?????目錄??????????0??2011-06-15?21:23??MSP430f149-ps2-1602\P1\Debug\Exe
?????目錄??????????0??2011-06-15?21:22??MSP430f149-ps2-1602\P1\Debug\List
............此處省略12個(gè)文件信息
評論
共有 條評論