我现在这有个4位并行的程序 控制线RS RW E接P3.7 P3.6 P3.5口 接线方式在程序中有说明 数据接口是 P2的高4位依次接液晶数据口则凳的高4位 。晶振12M的 51单片机 其他单片机相应的更换晶振和端口 输岩凯出的是码表db中的数据 你可以自己改。
#include
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^7;
sbit e=P3^5;
sbit rw=P3^6;
char code db[]={'a','d','f','g','h','j','k'};
int i;
void delay10us(void) //误差 0us
{
unsigned char a,b;
for(b=123;b>0;b--)
for(a=33;a>0;a--);
}
void lcd_cmd(uchar cmd)
{
rs=0;
P2=cmd;
delay10us();
e=1;
e=0;
P2=cmd<<4;
delay10us();
e=1;
e=0;
}
void lcd_cmd1(uchar cmd)
{
rs=0;
P2=cmd;
delay10us();
e=1;
e=0;
}
void lcd_dat(uchar dat)
{
rs=1;
P2=dat;
delay10us();
e=1;
e=0;
P2=dat<<4;
delay10us();
e=1;
e=0;
}
void Init_lcd()
{
lcd_cmd1(0x28); //4位数据,双列,5*7字形
e=1;
e=0;
delay10us();
lcd_cmd(0x0c); //开粗盯唤启显示屏,关光标,光标不闪烁
// lcd_cmd(0x06); //显示地址递增,即写一个数据后,显示位置右移一位
lcd_cmd(0x01); //清屏
}
void main()
{
rw=0;
Init_lcd();
lcd_cmd(0x80);
for(i=0;i<6;i++)
lcd_dat(db[i]);
while(1);}
电源 地
片选 数据口 接单片机IO口
这个……什么单片机??51??
什么问题。