求高手指教,这是用盛群HT46RU232编写的LCD1602的显示程序,但是一直不显示,求原因
#include "HT46RU232.h"#define rs _pc0
#define rw _pc1
#define e _pc2
#define data _pa
#define uchar unsigned char
void delay(long int t)//延时子函数
{
long int i;
for(i=0;i<t;i++)
_delay(2000);//1ms
}
void write_cmd(uchar dat)//写指令函数
{
rw=0;//向LCD写入指令
e=0;//屏蔽使能信号
rs=0;//指令输入
data=dat;//dat付给pa
delay(2);
e=1;//下降沿,执行指令
delay(2);
e=0;//
}
void write_data(uchar dat)//写数据函数
{
rw=0;//向LCD写入数据
e=0;//屏蔽使能信号
rs=1;//输入数据
data=dat;//dat付给pa
delay(2);
e=1;//下降沿,执行指令
delay(2);
e=0;
}
void inti()//
{
_pcc&=0x00;//pc2,pc3,pc4为控制信号输出端
_pac=0;//pa口为数据输出口
write_cmd(0x38);//8位格式,2行,5*7
write_cmd(0x0c);//整体显示,无光标,不闪烁
write_cmd(0x06);//设定输入方式,增量不位移
write_cmd(0x01);//清屏
delay(500);
}
void LCD_dispchar(uchar x,uchar y,uchar dat)
{
uchar address;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
write_cmd(address);
write_data(dat);
}
void main()
{
inti();
LCD_dispchar(0,1,'A');
while(1);
}