|
5黑幣
一、下面是LCD1602在單片機(jī)上的IO口位置定義
#define LCDEN FP13 //使能位
#define LCDRW FP12
#define LCDRS FP54
#define LCDDAT0 FP20 //數(shù)據(jù)位0 在io口P20上
#define LCDDAT1 FP21 //數(shù)據(jù)位1 在io口P21上
#define LCDDAT2 FP22 //數(shù)據(jù)位2 在io口P22上
#define LCDDAT3 FP23 //數(shù)據(jù)位3 在io口P23上
#define LCDDAT4 FP24 //數(shù)據(jù)位4 在io口P24上
#define LCDDAT5 FP25 //數(shù)據(jù)位5 在io口P25上
#define LCDDAT6 FP00 //數(shù)據(jù)位6 在io口P00上
#define LCDDAT7 FP10 //數(shù)據(jù)位7 在io口P10上
二、下面是我的程序
void Read_state(void)
{
P2 = 0x3f;
P0 = 0x01;
P1 = 0x02;
LCDRS = 0;
LCDRW = 1;
do
{
LCDEN = 1;
LCDEN = 0;
}
while(LCDDAT7);
}
void Writer_Cmd(uchar cmd)
{
Read_state();
LCDRS = 0;
LCDRW = 0;
P2 = cmd & 0x3f;
P0 = (cmd & 0x40) >> 6;
P1 = (cmd & 0x80) >> 7;
LCDEN = 1;
LCDEN = 0;
}
void Writer_Dat(uchar dat)
{
Read_state();
LCDRS = 1;
LCDRW = 0;
P2 = dat & 0x3f;
P0 = (dat & 0x40) >> 6;
P1 = (dat & 0x80) >> 7;
LCDEN = 1;
LCDEN = 0;
}
void LCD_Init(void)
{
Writer_Cmd(0x38);
Writer_Cmd(0x0f);
Writer_Cmd(0x01);
Writer_Cmd(0x06);
Writer_Cmd(0x80|0x06);
}
void main(void)
{
LCD_Init();
Writer_Dat('a');
while(1);
}
|
|