引脚号 引脚名称 方向 功能说明
1 VSS - 模块的电源地
2 VDD - 模块的电源正端
3 V0 - LCD驱动电压输入端
4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号
5 R/W(SID) H/L 并行的读写选择信号;串行的数据口
6 E(CLK) H/L 并行的使能信号;串行的同步时钟
7 DB0 H/L 数据0
8 DB1 H/L 数据1
9 DB2 H/L 数据2
10 DB3 H/L 数据3
11 DB4 H/L 数据4
12 DB5 H/L 数据5
13 DB6 H/L 数据6
14 DB7 H/L 数据7
15 PSB H/L 并/串行接口选择:H-并行;L-串行
16 NC 空脚
17 /RET H/L 复位 低电平有效
18 NC 空脚
19 LED_A (LED+5V) 背光源正极
20 LED_K (LED-OV) 背光源负极
液晶屏资料
谁能帮帮我写一下。我自己也写了一个,但是不好用
我是5引脚(SID)接的IOPF1引脚(SCLK)接的是F3口 其他的正常
先设置的*PFDATDIR = 0x00FF;
unsigned int SID=0;
unsigned int SCLK=0;
void write(unsigned int start, unsigned char ddata);
void sendbyte(unsigned char bbyte);
void delaynms(unsigned int di);
void lcdinit(void);
unsigned char ma1[] ={"运行状态"} ;
unsigned char ma2[]={"运转 "};
unsigned char ma3[]={"停止 "};
void lcdinit(void) //初始化LCD
{
delaynms(10); //启动等待,等LCM讲入工作状态
write(0,0x30); //8 位介面,基本指令集
write(0,0x0c); //显示打开,光标关,反白关
write(0,0x01); //清屏,将DDRAM的地址计数器归零
}
void write(unsigned int start, unsigned char ddata) //写指令或数据
{
unsigned char start_data,Hdata,Ldata;
if(start==0) start_data=0xf8; //写指令
else start_data=0xfa; //写数据
Hdata=ddata&0xf0; //取高四位
Ldata=(ddata<<4)&0xf0; //取低四位
sendbyte(start_data); //发送起始信号
delaynms(10); //延时是必须的
sendbyte(Hdata); //发送高四位
delaynms(3); //延时是必须的
sendbyte(Ldata); //发送低四位
delaynms(3); //延时是必须的
}
void sendbyte(unsigned char bbyte) //发送一个字节
{
unsigned char i;
for(i=0;i<8;i++)
{
SID=0;
SID=bbyte&0x80; //取出最高位
SID>>6;
*PFDATDIR=*PFDATDIR|SID;
*PFDATDIR=*PFDATDIR&0x0008;//SCLK
*PFDATDIR=*PFDATDIR&0;//SCLK
*PFDATDIR=0x00F8;
bbyte<<=1; //左移
}
}
void delaynms(unsigned int di) //延时
{
unsigned int da,db;
for(da=0;da<di;da++)
for(db=0;db<10;db++);
}void main(void)
{
unsigned char i;
lcdinit();
while(1)
{
write(0,0x80); for(i=0;i<8;i++) write(1,ma1
);
write(0,0x84); for(i=0;i<8;i++) write(1,ma2);
write(0,0x84); for(i=0;i<8;i++) write(1,ma3);
write(0,0x90); for(i=0;i<8;i++) write(1,ma4);
}
}
谁能告诉我我什么地方错了,液晶屏上什么都没显示
此帖出自小平头技术问答
一周热门 更多>