1602液晶的数据口与单片机并行连接

2024-11-28 13:44:50
推荐回答(4个)
回答(1):

我现在这有个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);}

回答(2):

电源 地
片选 数据口 接单片机IO口

回答(3):

这个……什么单片机??51??

回答(4):

什么问题。