C51——LCD1602显示

本文详细介绍了如何使用C51语言对LCD1602显示器进行初始化和字符显示操作,包括连接方法、显示地址计算、ASCII码对应以及重要的初始化步骤和显示控制命令。特别强调了在写入指令和数据时检测忙信号的重要性。
摘要由CSDN通过智能技术生成

LCD1602显示,
用c51来实现lcd1602显示字符
1、连接
    D0-D7——P0.1-P0.7口
    vss/bla背光电源正极——5v
    gnd/blk背光电源负极——接地
    V0——接电位器,调节显示对比度,接地对比度最高
    RS——数据/命令切换,1为数据,0为命令
    RW——读/写切换,1为读,0为写
    E使能信号——根据E的高低电平跳变,液晶模块执行命令

2、显示(命令写入、地址选择)
    可见显示为16*2
00—0F
40—4F
当写入显示地址时要求D7恒定为高电平
例如第1行第6列为05地址,0000 0101+1000 0000=0x85;
例如第2行第3列为42地址,0100 0010+1000 0000(D7高电平)=0xC2;

3、显示(数据写入)
     b7-b4为高位,b3-b0为低位
     可直接用ASCII码
例如ASCII a=0110 0001,

根据读写操作时序图来写代码,控制命令的执行
注意要添加lcd1602  8bit的初始化命令
(1)延时 15ms
(2)写指令 38H(不检测忙信号)
(3)延时 5ms
(4)以后每次写指令,读/写数据操作均需要检测忙信号
(5)写指令 38H:显示模式设置
(6)写指

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于单片机的的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、付费专栏及课程。

余额充值