51单片机(STC89C52RC) lcd1602实验小结

本文探讨了LCD1602液晶显示模块在使用过程中遇到的问题,包括上电复位后的显示现象及解决方案,如对比度调整、电路检查等,并提及了较少数据线实现显示的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  lcd1602是自带控制器的液晶显示模块,能够显示两行点阵数据,其引脚参数请google之.

    在实际使用的时候碰到的现象:

  •   第1行黑块,第2行空白,是1602本身上电复位成功的标志。意味着单片机根本没有进行初始化,需要检查电路.
  •   如果碰到两行都是现实黑块,那么就是意味着初始化不正常,需要尝试使用更长的延时功能,确保数据不丢失.
  •   仿真的时候是可以写入并显示数据的,并且检查电路连线没有问题,开始的时候碰到上述两种任意一种,但是写入数据后屏幕什么也米有了.


    能够碰到上述的现象的任意一种的时候,就需要调节对比度端口,数据有可能已经写入了,只是没有显示出来,经实验证实,带背光的1602 lcd在上电复位的成功的时候,调整正确是看不清一行黑块的.而输出的时候则能正常显示.一般是将对比度端口接入一个可调电阻,比如10k的可调电阻.

  ps:据说网上传闻有用比较少的线实现显示的, 两根数据线就可以,正在查证ing.

转载于:https://www.cnblogs.com/xiaoxia/archive/2011/05/24/2055287.html

基于单片机的的LCD1602显示,C语言编程。#include "lcd.h" void Lcd1602_Delay1ms(uint c) { uchar a,b; for (; c>0; c--) { for (b=199;b>0;b--) { for(a=1;a>0;a--); } } } /******************************************************************************* * 函 数 名 : LcdWriteCom * 函数功能 : 写命令 * 输 入 : com * 输 出 : 无 *******************************************************************************/ void LcdWriteCom(uchar com) { LCD1602_E = 0; LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_DATAPINS = com; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(5); LCD1602_E = 0; } /******************************************************************************* * 函 数 名 : LcdWriteData * 函数功能 : 写数据 * 输 入 : dat * 输 出 : 无 *******************************************************************************/ void LcdWriteData(uchar dat) { LCD1602_E = 0; LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DATAPINS = dat; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(5); LCD1602_E = 0; } /******************************************************************************* * 函 数 名 : LcdInit() * 函数功能 : 初始化LCD屏 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void LcdInit() { LcdWriteCom(0x38); //开显示 LcdWriteCom(0x0c); //开显示显示光标 LcdWriteCom(0x06); //写一个指针加1 LcdWriteCom(0x01); //清屏 LcdWriteCom(0x80); //设置数据指针起点 } /******************************************************************************* * 函 数 名 : LcdIdiszhu() * 函数功能 : 主屏显示 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void lcddiszhu() { uchar i; uchar lcd1[]="Model i ii iii"; uchar lcd2[]="Choose 1 2 3 "; LcdWriteCom(0x80); for(i=0;i<15;i++) { LcdWriteData(lcd1[i]); } LcdWriteCom(0x80+0x40); fo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值