标题:
液晶只显示黑块,请·大家帮我看看程序,谢谢了
[打印本页]
作者:
云中行走
时间:
2016-5-9 23:10
标题:
液晶只显示黑块,请·大家帮我看看程序,谢谢了
[attach]26215[/attach]
#include<reg51.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
unsigned char code table[]= {"Temp wireless "};
unsigned char code table1[]={"Temp: "};
unsigned char code shuzi[]={"123456789ABCDEFG"};
unsigned char num;
sbit rs=P1^2;//LCD数据/命令选择端(H/L)
sbit rw=P1^1;//LCD读/写选择端(H/L)
sbit en=P1^0;//LCD使能控制
/*******************************************************************************
以下是对液晶模块的操作程序
*******************************************************************************/
/***********1602液晶显示部分子程序****************/
void ready()
{
P0=0xff;
rs=0; //RS(H/L),低电平选择命令
rw=1; //RW(H/L),读操作
en=1;
while(P0&0x80); //当为0时表示不忙,退出循环。
en=0;
}
void write_com(uchar com)
{
ready();
rs=0;//命令
rw=0;
P0=com;
en=1;//ready()执行完后,en为0。形成高脉冲,表示可对液晶读写。
en=0;
}
void write_date(uchar date)
{
ready();
rs=1;//数据
rw=0;
P0=date;
en=1;//ready()执行完后,en为0。形成高脉冲,表示可对液晶读写。
en=0;
}
/**************************************************
函数功能:主函数
***************************************************/
void main(void)
{
en=0;
P0=0xff;
write_com(0x38); //设置工作方式
write_com(0x0c); //设置光标
write_com(0x06); //设置输入方式
write_com(0x01); //清屏
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(shuzi[num]);
}
while(1);
}//
复制代码
作者:
欧阳ouy
时间:
2016-5-26 22:45
对1602的操作部分,最好在每执行完一条指令后加个延时,比如delay(5);(具体延时程序我就不说了)延时一小会儿,让1602准备接收数据
作者:
欧阳ouy
时间:
2016-5-26 22:46
lcdrs=1;
lcdrw=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
就像这样,每个后面都加个延时。
作者:
云中行走
时间:
2016-5-26 22:49
欧阳ouy 发表于 2016-5-26 22:46
lcdrs=1;
lcdrw=0;
好的,我试试
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1