基于51单片机对1602液晶板的并行操作
tx-1c板操作并行模式的1602液晶液晶第1,2脚是gnd和vcc第3脚是对比度调节第4脚是数据/指令选择端rs第5脚是读写选择端r/w,我们这次只写不读,故直接接地第6脚是读写使能en第7到14脚是数据口。
操作并行模式的1602液晶
液晶第1,2脚是gnd和vcc
第3脚是对比度调节
第4脚是数据/指令选择端rs
第5脚是读写选择端r/w,我们这次只写不读,故直接接地
第6脚是读写使能en
第7到14脚是数据口,我们接stc89c52rc的p0口
第15,16脚是背光源
最终液晶显示
tom is playing the tnt game!
c代码
#include
#include“my51.h”
voidwrite_data(uchardatavalue);//写数据
voidwrite_cmd(ucharcmdvalue);//写指令
ucharcodetablelcd1[]={“tomisplaying”};
ucharcodetablelcd2[]={“thetntgame!”};
voidlcdinit()//初始化函数
{
dula=0;//
wela=0;//防止数码管误显,浪费电流
lcden=low;//给高脉冲之前的状态
lcdrs=high;//初始给高电平,其实上电默认也是高电平
write_cmd(0x38);//液晶显示模式初始化
write_cmd(0x0c);//打开液晶,不显示光标,光标不闪烁
write_cmd(0x06);//地址指针加加,且光标加加
write_cmd(0x01);//液晶数据指针和显示清零
}
voidwrite_cmd(ucharcmdvalue)//写入指令
{
lcdrs=low;//刚上电时是高电平,低电平时是指令模式
p0=cmdvalue;
delayms(1);
lcden=high;//一个高脉冲把数据读走
delayms(1);
lcden=low;
}
voidwrite_data(uchardatavalue)//写入数据
{
lcdrs=high;//高电平是数据模式
p0=datavalue;
delayms(1);
lcden=high;//给一个高脉冲
delayms(1);
lcden=low;
}
voidlcdshow(uchar*pvalue)//液晶显示函数
{
while(*pvalue!=‘