找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

头一次接触单片机1602显示屏出了故障,帮一下新手菜鸟吧

查看数: 1825 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-6-26 09:15

正文摘要:

我是按照每个元件的原理图装的线路,之前也检查了下午也没有发现错误。那些百度到的方法也试过了,也没用。程序在仿真的时候没有问题。 程序 #include<reg51.h> #define uchar unsigned char #define uint unsi ...

回复

ID:682755 发表于 2020-6-27 10:24
会不会是单片机的引脚没接对,实物的引脚和仿真的不一样的要吧程序里的
sbit LCD_E=P1^7;         //液晶使能端
sbit LCD_RS=P1^5;       //液晶数据命令选择端
sbit LCD_RW=P1^6;        //液晶读写选择端
引脚该为单片机实物上面的引脚
ID:790246 发表于 2020-6-27 10:08
这程序和你的单片机硬件不匹配吧
ID:213173 发表于 2020-6-27 09:05

这是典型的LCD1602初始化失败的现象。程序能够正常仿真,不能用于实际电路最大可能是LCD1602驱动程序的时序有问题。看楼主程序中的延时函数有疑点。
void delay(unsigned char z)
{
   unsigned char x,y;
   for(x=z;x>0;x--)
      for(y=110;y>0;y--);
}
从表面看似乎这是1ms延时程序,实际由于数据类型使用unsigned char,delay(5);的延时只有577us,要把延时函数中数据类型改为unsigned int 才能近似1ms。MCU处理不同数据类型耗时也不同!

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

Powered by 单片机教程网

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