标题:
LCD1602显示问题
[打印本页]
作者:
芦荟
时间:
2016-5-13 19:41
标题:
LCD1602显示问题
自己焊接的板子可以显示开发板自带的程序,但自己写的程序可以在开发板上运行,却不能在自己焊接的板子上运行。这是怎么回事?原理图和程序如下/*LCD1602驱动程序*/
#include<reg51.h>
#include<string.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;
//延时
void Delay( uint time)
{
while(time--) ;//当晶振为11.0592MHZ,num=10时,延时时间约为70us
}
//通过控制LCD1602的RS、RW、EN三个管脚来获取LCD1602的忙状态
void Busy_Status_LCD1602()
{
while(1)
{
P0=0xFF;
RS=0;
RW=1;
EN=1;
Delay(120);
if((P0&0x80)!=0x80)
{
EN=0;
break;
}
EN=0;
Delay(120);
}
}
//通过控制LCD1602的RS、RW、EN三个管脚向LCD1602传输命令
void Write_Command_LCD1602( uchar command)
{
Busy_Status_LCD1602();
RS=0;
RW=0;
EN=0;
//P2=command;
P0=command;
EN=1;
Delay(120);
EN=0;
}
//通过控制LCD1602的RS、RW、EN三个管脚向LCD1602传输数据
void Write_Data_LCD1602(uchar data_LCD)
{
Busy_Status_LCD1602();
RS=1;
RW=0;
EN=0;
//P2=data_LCD;
P0=data_LCD;
EN=1;
Delay(120);
EN=0;
}
//设置LCD1602的显示模式、数据传输模式等
void Initialize_LCD1602()
{
Write_Command_LCD1602(0x38);//双行显示、显示5x7的点阵字符、8线传输
Delay(120);
Write_Command_LCD1602(0x0C);//显示开、光标关、光标闪烁关
Delay(120);
Write_Command_LCD1602(0x06);//光标移动方向右移、屏幕上所有文字不移动
Delay(120);
Write_Command_LCD1602(0x01); //清屏
Delay(120);
}
void main()
{
uchar i,addr;
Initialize_LCD1602();
Delay(50000);
Delay(50000);
while(1)
{
addr=0x80;
Write_Command_LCD1602(addr);
Write_Data_LCD1602('R');
}
}
LCD1602.PNG
(43.41 KB, 下载次数: 105)
下载附件
LCD1602硬件原理图
2016-5-13 19:36 上传
作者:
wc86110
时间:
2016-5-13 21:15
LZ,应该是你自己焊的板子与开发板不一样吧?
作者:
古人古人
时间:
2016-5-14 11:27
首先看看io口有没有搞错,不然就是你开发上有其他外设需要选择
作者:
谭雅Ayom
时间:
2016-5-15 11:19
看一下你的板子有没有虚焊什么的,用万用表检查一下
作者:
liuzhaoxin1020
时间:
2017-1-8 17:47
硬件有问题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1