資源簡介
已經(jīng)經(jīng)過多次下載驗(yàn)證過,完全可以實(shí)現(xiàn),沒有問題。

代碼片段和文件信息
#include?
#include?“cry1602.h“
typedef?unsigned?char?uchar;
typedef?unsigned?int??uint;
/**************宏定義***************/
#define?DataDir?????P2DIR
#define?DataPort????P2OUT
#define?Busy ????0x80
#define?CtrlDir?????P6DIR
#define?CLR_RS?P6OUT&=~BIT3;????//RS?=?P6.3
#define?SET_RS?P6OUT|=BIT3;
#define?CLR_RW?P6OUT&=~BIT4; //RW?=?P6.4
#define?SET_RW?P6OUT|=BIT4;
#define?CLR_EN?P6OUT&=~BIT5; //EN?=?P6.5
#define?SET_EN?P6OUT|=BIT5;
/*******************************************
函數(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();???//?檢測忙信號(hào)?
CLR_RS;
CLR_RW;?
_NOP();
DataPort?=?cmd;?????????????//將命令字寫入數(shù)據(jù)端口?
_NOP();
SET_EN;?????????????????????//產(chǎn)生使能脈沖信號(hào)
_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í)間???名稱
-----------?---------??----------?-----??----
?????文件???????4420??2013-03-06?15:22??18b20\1602.c
?????文件????????159??2013-03-06?15:22??18b20\1602.eww
?????文件???????4206??2013-03-06?16:23??18b20\18b20.c
?????文件???????3488??2013-03-11?09:27??18b20\18b20.dep
?????文件??????15457??2013-03-06?15:22??18b20\18b20.ewd
?????文件??????46360??2013-03-06?15:22??18b20\18b20.ewp
?????文件????????444??2008-03-21?10:48??18b20\cry1602.h
?????文件??????24597??2013-03-07?20:55??18b20\Debug\Exe\18b20.d43
?????文件??????17427??2013-03-06?15:22??18b20\Debug\Obj\1602.r43
?????文件????????247??2013-03-11?09:12??18b20\Debug\Obj\18b20.pbd
?????文件??????20186??2013-03-07?20:55??18b20\Debug\Obj\18b20.r43
?????文件??????24265??2013-03-07?20:55??18b20\Debug\Obj\main.r43
?????文件????????260??2007-12-31?11:56??18b20\DS18B20.h
?????文件???????3607??2013-03-06?15:30??18b20\main.c
?????文件???????3148??2013-03-11?09:27??18b20\settings\1602.wsdt
?????文件???????2650??2013-03-11?09:11??18b20\settings\18b20.cspy.bat
?????文件???????4761??2013-03-11?09:27??18b20\settings\18b20.dbgdt
?????文件????????676??2013-03-11?09:27??18b20\settings\18b20.dni
?????目錄??????????0??2013-03-06?15:31??18b20\Debug\Exe
?????目錄??????????0??2013-03-06?15:21??18b20\Debug\List
?????目錄??????????0??2013-03-11?09:12??18b20\Debug\Obj
?????目錄??????????0??2013-03-06?15:21??18b20\Debug
?????目錄??????????0??2013-03-06?16:17??18b20\settings
?????目錄??????????0??2013-03-06?16:23??18b20
-----------?---------??----------?-----??----
???????????????176358????????????????????24
- 上一篇:dsp28335AD7606程序
- 下一篇:OPC 環(huán)境搭建詳解
評論
共有 條評論