16032液晶显示问题,在线等待!!!!
各位大哥,小弟刚买回一个16032A带中文字库的液晶屏,用串口接线方式【Vss-—GND、Vdd--5V、Vo悬空、SID--PD4、SCLK--PD5、CS--PA0(高电平)、PSB--PA1(d低电平)、RST--PA2】
但没有显示任何东西,恳请高手们不吝赐教、帮忙看看?在线等待!下面是我写的代码:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define lcdclk_1 PORTD|= BIT(5) //时钟
#define lcdclk_0 PORTD &= ~BIT(5)
#define lcdsid_1 PORTD|= BIT(4) //串口数据
#define lcdsid_0 PORTD &= ~BIT(4)
#define lcdCS_1 PORTA|=BIT(0) //片选信号,高电平有效
#define lcdPSB_0 PORTA&=~BIT(1) //串口:0 并口:1
#define lcdRST_0 PORTA&=~BIT(2) //复位信号,低电平有效
#define lcdRST_1 PORTA|=BIT(2
uchar START;//启动字节
void lcd_init(void)//初始化LCD屏
{
delayms(50);
START=0xf8;
lcdwd(0x30); // 选择基本指令集
lcdwd(0x0c); //开显示(无游标、不反白)
lcdwd(0x01); //清除显示,把地址指针指向00H单元
delayms(10);
lcdwd(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
delayms(10);
}
void lcdwd(uchar dispdata)
{
sendbit(START);
delayms(10);
sendbit(dispdata&0xf0);//送高4位
delayms(10);
dispdata<<=4;
sendbit(dispdata);//送低4位
delayms(10);
}
void sendbit(uchar cmdcode)//字节数据发送
{
uchar i;
for(i=0;i<8;i++)
{
if((cmdcode&0x80)==0x80)
lcdsid_1;
else
lcdsid_0;
cmdcode<<=1;
lcdclk_0;
lcdclk_1;
}
}
void hzkdisp()
{
START=0xf8;
lcdwd(0x80);
START=0xfa;
hzkdis_1("自动:吊物孔开启!");
START=0xf8;
lcdwd(0x90);
START=0xfa;
hzkdis_1("手动:吊物孔关闭!");
}
void main()
{
//IO初始化
DDRA=0XFF;
PORTA=0X01;
DDRD=0XF0;
PORTD=0X0F;
lcdPSB_0;//串口
lcdRST_0;
delayms(5);
lcdRST_1;
lcdCS_1;//片选信号,高电平有效
lcd_init();//LCD初始化
hzkdisp();//显示中文字符
}