仿真软件proteus构建LCD1602显示字符串实验

Posted luffy5459

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仿真软件proteus构建LCD1602显示字符串实验相关的知识,希望对你有一定的参考价值。

    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 here
  delay(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 set
  writecmd(0x0c); //display set
  writecmd(0x06);  //display mode
  writecmd(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显示字符串实验的主要内容,如果未能解决你的问题,请参考以下文章

Proteus仿真51单片机+LCD1602驱动显示模板程序

Proteus仿真51单片机+DS1302+lcd1602显示

Proteus仿真单片机+DS18B20+LCD1602显示

Proteus仿真51单片机制作简易计算器+ LCD1602显示

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

51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真