找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2448|回复: 5
收起左侧

请问一下大佬们,为什么我的显示屏不亮

[复制链接]
ID:752659 发表于 2020-5-19 11:42 | 显示全部楼层 |阅读模式
  LCD.c 文件
#include "LCD.h"
extern const unsigned char lcd_Table[]="V=0123456789.";
void lcd_1602_chuzhi(void)
{
// en=0;
// rw=0;
// rs=0;
lcd_1602_xiemingling(0x38);
lcd_1602_xiemingling(0x0c);
lcd_1602_xiemingling(0x06);
delay(50);
  
}
void delay( unsigned int xms)
  {
  int i,j;
  for(i=xms;i>0;i--);
  for(j=110;j>0;j--);
}
void lcd_1602_xiemingling(unsigned char n)
  {
  rs=1;
    rs=0;
    rw=1;
  delay(5);
  rw=0;
   P0=n;
  delay(5);
    en=1;
  delay(100);
  en=0;
  }
  
void lcd_1602_clean()
  {
  lcd_1602_xiemingling(0x01);

}
void lcd_1602_xieshuju(unsigned char m)
{
   rs=0;
  rs=1;
  rw=1;
  delay(5);
  rw=0;
  P0=m;
  en=1;
  delay(100);
  en=0;

}
void lcd_display(int cl)
{
  lcd_1602_xiemingling(0x80+0x00);
  delay(5);
   lcd_1602_xieshuju(lcd_Table[0]);
  lcd_1602_xieshuju(lcd_Table[1]);
  lcd_1602_xieshuju(lcd_Table[cl/100]);
  lcd_1602_xieshuju(lcd_Table[12]);
  lcd_1602_xieshuju(lcd_Table[cl%100/10]);
  lcd_1602_xieshuju(lcd_Table[cl%100]);
}

LCD.h文件

#include <reg52.h>
sbit en=P2^1;
sbit rs=P2^3;
sbit rw=P2^2;
//extern const unsigned char lcd_Table[]="V=0123456789.";
void  delay( unsigned int xms);
void lcd_1602_clean();
void lcd_1602_chuzhi(void);
void lcd_1602_xiemingling(unsigned char n);
void lcd_1602_xieshuju(unsigned char m);
void lcd_display(int cl);
main.c文件
#include "LCD.h"
void main()
{
  int n1;
n1=2;
lcd_1602_chuzhi();
lcd_1602_clean();
while(1)
{
  lcd_display(n1);
}
}




TIM图片20200519114059.png
回复

使用道具 举报

ID:267719 发表于 2020-5-19 13:38 | 显示全部楼层
P0口要上拉,没晶振,没复位。EA接高电平。
回复

使用道具 举报

ID:592807 发表于 2020-5-19 14:02 | 显示全部楼层
单片机最小系统包括:电源  晶振  复位电路,你连最小系统都没构建出来,怎么让单片机工作
回复

使用道具 举报

ID:105364 发表于 2020-5-19 16:54 | 显示全部楼层
其实,PROTEUS仿真是不用接复位、晶振和电源 电路的
不显示是:E、RW和RS接错了。
sbit en=P2^1;
sbit rs=P2^3;
sbit rw=P2^2;

显示函数小改一下:
void lcd_display(int cl)
{
  lcd_1602_xiemingling(0x80+0x00);
  delay(5);
  lcd_1602_xieshuju(lcd_Table[0]);
  lcd_1602_xieshuju(lcd_Table[1]);
//lcd_1602_xieshuju(lcd_Table[cl/100]);
  //lcd_1602_xieshuju(lcd_Table[12]);
  //lcd_1602_xieshuju(lcd_Table[cl%100/10]);
  //lcd_1602_xieshuju(lcd_Table[cl%100]);

  lcd_1602_xieshuju(lcd_Table[2]);
  lcd_1602_xieshuju(lcd_Table[3]);
  lcd_1602_xieshuju(lcd_Table[4]);
  lcd_1602_xieshuju(lcd_Table[5]);
  lcd_1602_xieshuju(lcd_Table[6]);
  lcd_1602_xieshuju(lcd_Table[7]);
  lcd_1602_xieshuju(lcd_Table[8]);
  lcd_1602_xieshuju(lcd_Table[9]);
  lcd_1602_xieshuju(lcd_Table[10]);
  lcd_1602_xieshuju(lcd_Table[11]);
  lcd_1602_xieshuju(lcd_Table[12]);
  lcd_1602_xieshuju(lcd_Table[13]);
}



LCD1602.png

回复

使用道具 举报

ID:739545 发表于 2020-5-19 17:26 | 显示全部楼层
protues仿真可以不用七七八八的东西,但是P0口上拉还是要的,另检查下,LCD驱动代码是否有问题
回复

使用道具 举报

ID:267719 发表于 2020-5-20 09:07 | 显示全部楼层
我认为好的习惯要养成。该画的一定要画,不要缺漏。
不然按这个图打板了,结果和仿真不一样,再过来问。
不光浪费自己的时间和金钱。也给坛友造成时间和精力上的损失。
坛里实物和仿真不一样的提问不是没有,希望大家养成一个良好的习惯。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表