LCD1602模块的显示需要注意几点:

1、显示两行,第一行的起始地址是0x80,第二行的地址是0x80+0x40 = 0xC0。

2、RS,RW,EN接线没有说一定要接到P1,P2,P3上,只要给对应的管脚高低电平即可,但是必须要接线。

3、LCD1602 VSS VEE管脚要连在一起并接地,在实际电路板上,这个地方也是需要注意的。

这里使用仿真软件Proteus同样的,只需要在Proteus工具中设计电路图,编写原代码,编译,仿真即可,无需Keil工具,但是系统需要安装Keil工具,因为编写代码需要用到Keil for 8051编译器。

proteus构建硬件工程,选择8051单片机类型,编译器选择Keil for 8051。这样,工程中会显示电路设计图视图,pcb设计图视图,源代码视图。

源代码中main.c代码:

/* Main.c file generated by New Project wizard** Created:   周一 12月 13 2021* Processor: 80C52* Compiler:  Keil for 8051*/#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include <string.h>#define uchar unsigned char
#define uint unsigned int sbit RS = P3^5;
sbit EN = P3^4;
sbit RW = P3^6;uchar code table1[] = {"hello,world!"};
uchar code table2[] = {"0123456789"};void delay(uint time);
void init_1602(void);
void writecmd(uint cmd);
void writedata(uchar dat);
void display(uchar len,uchar* table);void main(void){ // Write your code heredelay(10);init_1602();delay(5);     writecmd(0x80);//delay(5);display(strlen(table1),table1);writecmd(0x80+0x40);display(strlen(table2),table2);while (1);}void delay(uint time){unsigned char a,b,i;for(i=time;i!=0;i--){for(b=199;b>0;b--){for(a=1;a>0;a--);  }       }
}void init_1602(void){delay(15);writecmd(0x38); //mode setwritecmd(0x0c); //display setwritecmd(0x06);  //display modewritecmd(0x01); //clear display
}void writecmd(uint cmd){RS = 0;RW = 0;P1 = cmd;EN = 1;delay(1);EN = 0;
}void writedata(uchar dat)
{RS = 1;RW = 0;P1 = dat;EN = 1;delay(1);EN = 0;
}void display(uchar len,uchar* table){uchar i;for(i=0;i<len;i++){writedata(table[i]); }delay(5);
}

仿真电路图:

运行效果:

LCD1602显示实验,在实际开发中,为了保护LCD1602器件,可能会接上一个排阻,然后与单片机相连。在仿真实验中,为了提高效率,快速看到实验效果,这一步省掉了。

仿真软件proteus构建LCD1602显示字符串实验相关推荐

  1. 仿真软件proteus构建七段数码管显示数字0-9实验

    七段数码管显示原理研究在前一篇博客中已经阐述过,就是利用7个数码管构建一个"8"字形,然后利用数字的形状特点,依次点亮某一些段,就可以显示数字了. 七段数码管显示数字还是二极管发光 ...

  2. 【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。

    LCD1602显示字符和时间是最基本的实验,在综合前面所学知识并结合c语言程序设计,就可以通过独立按键,来对时间进行校准,计时等功能.或者通过矩阵键盘的按键进行输入,进而让LCD屏上显示的出我们想要的 ...

  3. C51单片机驱动LCD1602显示字符串

    之前做了好多外设,都只是玩玩,并不曾记录一下,时间久了,竟也都忘记了,周末无事,重新写了一下LCD1602的驱动函数,给有需要的人做一个参考: 硬件电路: 其中,RS:P1.0 RW:P1.1 EN: ...

  4. 基于STM32的ADC电压采集proteus仿真LCD1602显示

    硬件设计 (末尾附文件) 仿真图如下所示: #include "bsp-lcd1602.h"void LCD1602_GPIO_Config(void) {RCC_APB2Peri ...

  5. 基于STM32的智能路灯控制proteus仿真 LCD1602 显示

    硬件设计 (末尾附文件) 仿真图如下所示: 程序设计 #include "stm32f10x.h" #include "bsp-lcd1602.h" #incl ...

  6. 实验(四):LCD1602显示实验

    一.实验目的与任务 实验目的: 1. 掌握LCD1602显示控制方法: 2. 掌握利用Proteus进行单片机控制系统的仿真及调试方法. 3. 掌握单片机开发板的使用. 任务: 1.根据要求编写程序, ...

  7. STMCubeMX+Proteus仿真DHT11(LCD1602显示)

    本文说明 开发工具:STM32CubeMX+Keil5 开发芯片:STM32F103R6 采温模块:DHT11 数显屏幕:LCD1602 仿真软件:Proteus 8.12 项目目标:DHT11读取温 ...

  8. MSP430+LCD1602显示实验

    MSP430+LCD1602显示实验 LCD12864同样适用 1.本实验用开发板 2.程序代码 3.实验效果 1.本实验用开发板 使用的模块是TI官方的MSP430F5529开发板,只需更改引脚即可 ...

  9. 【Proteus仿真】51单片机汇编实现DS18B20+LCD1602显示

    [Proteus仿真]51单片机汇编实现DS18B20+LCD1602显示 Proteus仿真 汇编代码(.asm) ;**************************************** ...

最新文章

  1. Redis 启动杂项
  2. GBDT Xgboost LightGBM区别与联系
  3. 强化学习的自然环境基准
  4. LeetCode Reorder List
  5. DFTug - Running the Test DRC Debugger
  6. 用python赚零花钱_用Python拓展副业的几种方式
  7. 接触Jenkins(Hudson)API,第1部分
  8. 诗歌rials 之RJS的tips
  9. 12c表空间不存在_一文看懂Oracle查询表空间的每日增长量和历史情况统计
  10. java多线程synchronized底层实现
  11. 基于visual Studio2013解决C语言竞赛题之1094纵横图
  12. Oracle中sql相关的命令
  13. python批量获取百度贴吧_python网络爬虫案例:批量爬取百度贴吧页面数据
  14. 电脑外接显示器或ipad分屏
  15. asp.net session对象
  16. 【MyBatis】框架-----MyBatis的基础知识以及案例分析
  17. 台式电脑开机显示蓝屏 检查计算机上的病毒,电脑出现蓝屏问题的诊断以及处理的方法...
  18. 华为交换机 STP MSTP BPDU保护 边缘端口 BPDU过滤 根保护 环路保护 TC保护
  19. 显示答案c语言代码编程,c语言编程例题及答案
  20. Glide系列(四) — Glide缓存流程分析

热门文章

  1. Linux强制修改Root
  2. 基于深度学习的建筑能耗预测04——能耗建模
  3. 支付宝APP支付(java后台版)
  4. AutoCAD二次开发2-.NET API参考文档
  5. Java实现多级排序
  6. gmsh+fltk配置过程
  7. 新型的网购模式——云购1块夺宝
  8. OpenCV基础(24)改善夜间图像的照明
  9. Spring调用vertx异步service Interface
  10. 第十四届蓝桥杯三月真题刷题训练——第 21 天