51单片机学习笔记,操作1602液晶
扫描二维码
随时随地手机看文章
TX-1C板
操作并行模式的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!='