连接到任意IO都可以的,在编程的时候指定IO功能就可以了如 sbit RS = P1 ^ 0sbit RW = P1 ^ 1sbit EN = P1 ^ 2#define Data_Bus P0。
80是第一行,+40是第二行,+6是第二行第六个位置显示写命令0x80+0x40即可 这就是第二行的首地址 write_com0x80+0x40第2行,第1字 write_date#39c#39显示一个字符“c”Delay1ms12延时。
通过74LS138之类的扩展引脚,也要按照LCD1602的读写时序才行LCDCOM0 = 0x38,是对片外RAM的写操作执行的时候,P2P0输出地址0xe0ff,ALE输出正脉冲,P0输出的FF被锁存到外接的地址锁存器373,P2输出的E0,送到74LS。
一个非常简单的问题,你自己都没有找到那地方程序写错了,你程序是抄别人还是自己写的,你仔细看看LCD1602液晶的时序图,RW写数据和读数据选择端,这个脚可以直接永久接GND,也不会影响LCD1602工作。
你是指数据怎么得到吧定义变量char Data,Data0Data = P10x1FData0=P10xE0Data=Data0Data 就是你要送到数据线的数据。
而对于单片机来说,1602好比那个瓶子漏斗,写入1602中要显示的数据好比油,如果以单片机的高运行速度向1602写数据就很可能造成上面所说的溢出,比如连续写入abc,结果只显示出了a,这是因为1602的显示芯片每次都要花时间来处理。
void write_comuchar com 1602写指令 lcdrs=0P1=comdelay5lcde=1delay5lcde=0 void write_datauchar date 1602写数据,写的是你要显示数据的ASCLL码值 lcdrs=1P1=datedela。