找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

编写了一段关于lcd1602的单片机代码 修改了一些引脚 但显示屏还是没有显示?

查看数: 2783 | 评论数: 18 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-27 13:32

正文摘要:

main.c 部分 #include <REGX52.H> #include "LCD1602.h" void main() {         LCD_Init();         LCD_ShowChar(1,1,'n'); & ...

回复

ID:149451 发表于 2022-4-30 17:00
名字不是重点 发表于 2022-4-30 10:04
插反了连背光都不会亮了。。

亮不亮看pin说明(常规的):1(电源地)对应16(背光负极);2(电源正极)对应15(背光正极)。怎会不亮?


ID:824490 发表于 2022-4-30 10:04
w1179benp 发表于 2022-4-30 09:18
LZ把1602的方向插反了吧??LCD1602屏的PIN脚,通常边上的是pin1,,,,,,,,,,,,,,pin16,而且插上屏后,不应盖 ...

插反了连背光都不会亮了。。
ID:149451 发表于 2022-4-30 09:21
本帖最后由 w1179benp 于 2022-4-30 09:22 编辑

要安装在16pin排座上,注意方向(排座下有pin的标识)
ID:149451 发表于 2022-4-30 09:18
LZ把1602的方向插反了吧??LCD1602屏的PIN脚,通常边上的是pin1,,,,,,,,,,,,,,pin16,而且插上屏后,不应盖在MCU上(这是开发板设计的基本原则)
ID:213173 发表于 2022-4-28 17:22
linjianxiaoxiao 发表于 2022-4-28 12:53
就只有这样的显示  是不是我安装错误  这个单片机的显示屏是安装在第一排吗

LCD一排方块是典型的初始化失败的现象,确认一下MCU是否与图纸AT89S51一致。MCU型号不同使用方法有差异。
ID:684084 发表于 2022-4-28 14:31
用万用表先量出引脚定义,P0高低位有没有调转了?
ID:984843 发表于 2022-4-28 12:51
wulin 发表于 2022-4-28 06:37
这段代码是按你的最小系统板电路改写的,仿真没有问题,要仔细检查LCD连接是否正确。

只有这样的显示
是不是我显示器的位置插错了
是插在第一排那样装吗
还是要用到线
ID:213173 发表于 2022-4-28 06:37
linjianxiaoxiao 发表于 2022-4-27 22:27
亮的 但依旧无法显示出想要的字母

这段代码是按你的最小系统板电路改写的,仿真没有问题,要仔细检查LCD连接是否正确。


ID:732794 发表于 2022-4-27 22:39
别用P0,换P1或者P2口试试
ID:1022263 发表于 2022-4-27 22:30
是不是硬件坏了
ID:984843 发表于 2022-4-27 22:27
wulin 发表于 2022-4-27 21:45
你用这个程序试试

亮的 但依旧无法显示出想要的字母
ID:213173 发表于 2022-4-27 21:45
linjianxiaoxiao 发表于 2022-4-27 17:38
也不是引脚,就是网上单片机教程的时的代码编写时他的单片机和我的单片机有些区别,所以代码就有要修改的 ...

你用这个程序试试
  1. #include <REG51.H>
  2. sbit LCD_RS=P0^7;
  3. sbit LCD_RW=P0^6;
  4. sbit LCD_EN=P0^5;
  5. #define LCD_DataPort P2
  6. unsigned char table[] ="0123456789ABCDEF";        //第一行
  7. unsigned char table1[]="GIJKLMNOPQRSTUVW";        //第二行
  8. unsigned char i;

  9. void LCD_Delay()//12MHz调用可延时1ms
  10. {
  11.         unsigned char i, j;
  12.        
  13.         i = 2;
  14.         j = 239;
  15.         do
  16.         {
  17.                 while (--j);
  18.         } while (--i);
  19. }

  20. void LCD_WriteCommand(unsigned char Command)// LCD1602写命令
  21. {
  22.         LCD_RS=0;
  23.         LCD_RW=0;
  24.         LCD_DataPort=Command;
  25.         LCD_EN=1;
  26.         LCD_Delay();
  27.         LCD_EN=0;
  28. }

  29. void LCD_WriteData(unsigned char Data)//LCD1602写数据
  30. {
  31.         LCD_RS=1;
  32.         LCD_RW=0;
  33.         LCD_DataPort=Data;
  34.         LCD_EN=1;
  35.         LCD_Delay();
  36.         LCD_EN=0;
  37. }

  38. void LCD_Init()
  39. {
  40.         LCD_WriteCommand(0x38);//八位数据接口,两行显示,5*7点阵
  41.         LCD_WriteCommand(0x0c);//显示开,光标关,闪烁关
  42.         LCD_WriteCommand(0x06);//数据读写操作后,光标自动加一,画面不动
  43.         LCD_WriteCommand(0x01);//光标复位,清屏
  44. }

  45. void main()
  46. {
  47.         LCD_Init();
  48.         LCD_WriteCommand(0x80);
  49.         for(i=0;i<16;i++)
  50.                 LCD_WriteData(table[i]);
  51.         LCD_WriteCommand(0x80+0x40);
  52.         for(i=0;i<16;i++)
  53.                 LCD_WriteData(table1[i]);
  54.         while(1);
  55. }
复制代码
ID:97554 发表于 2022-4-27 19:49
linjianxiaoxiao 发表于 2022-4-27 17:30
这个代码已经研究过了  而且硬件是好的

硬件是好的,代码没有问题,引脚与程序对应了的,那剩下只有两种情况,一、对比度电阻的问题,二、液晶主控使用了偏门。第一种情况很多人掉坑里,第二种情况没见多少人,但是我掉坑了,一般的1602的主控都是44780,但是十年前我买了一块普中开发板,自带程序与配套的液晶可以点亮,换液晶就无法点亮,该液晶换到常见的程序上也不亮。市面上90%以上的1602和2004都用的44780,所以通用程序基本稍加修改就可以随便用,唯有普中这块,于是,对开发板深恶痛绝,脑残设计不知道为何。
ID:984843 发表于 2022-4-27 17:38
wulin 发表于 2022-4-27 17:33
最小系统板的电路是固定的,修改了一些引脚?软件与硬件配套?

也不是引脚,就是网上单片机教程的时的代码编写时他的单片机和我的单片机有些区别,所以代码就有要修改的好像主要是第三部分lcd1602.h部分。我对着我的我的单片机原理图尝试改了一下但是显示屏依旧没有显示,所以不清楚还有哪里有问题
ID:213173 发表于 2022-4-27 17:33
最小系统板的电路是固定的,修改了一些引脚?软件与硬件配套?
ID:984843 发表于 2022-4-27 17:30
man1234567 发表于 2022-4-27 17:27
本坛内大把可用的先抄后研究,然后自己动手写。
原则:先搞出显示,再深入研究(自己写、修改等),否则硬 ...

这个代码已经研究过了  而且硬件是好的  
ID:584814 发表于 2022-4-27 17:27
本坛内大把可用的先抄后研究,然后自己动手写。
原则:先搞出显示,再深入研究(自己写、修改等),否则硬件是好是坏都不知道。

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

Powered by 单片机教程网

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