lcd1602在proteus中怎么找_lcd1602proteus仿真

显示光电

90人已加入

描述

  lcd1602在proteus中怎么找

  proteus提供了很多LCD的仿真器件,分享一个关于lcd1602的查找操作,希望对需要的朋友有帮助。

  第1步:使用proteus打开一个工程,点击DEVICES的P,准备放置元件。

Proteus

  第2步:在Pick Devices对话框中的“Category”列表找到“Optoelectronics”。在“Sub-category”列表中选择“Alphanumeric LCDs”,可以在右侧的Results中看到可以使用的LCD元件,其中Description列名了分辨率,16x2即为1602,确认后点击“OK”键。

Proteus

  如果不记得1602的具体路径,那么可以使用关键词LCD在Pick Devices对话框进行检索,这样可以缩小查找范围。

Proteus

  另一种比较粗暴的方法是利用proteus自带的Demo工程里的现有元件的信息,经常使用proteus应该都知道它提供了LCD1602的仿真Demo工程。我们可以通过“File”-》“Open Sample Project”打开Sample工程。

Proteus

  在软件弹出的“Sample Projects Browser”的Category列表找到VSM for 8051,右侧Results显示出了几个LCD的工程,其中一个就是LCD1602的。

Proteus

  当然,我们也可以使用LCD关键词进行查找,这样能够更快的锁定LCD1602示例工程。

Proteus

  选择LCD1602工程后,点击“打开”。

Proteus

  在LCD1602工程中找到LCD1602元件,可以看到它的元件具体名称为LM016L,接着通过在Pick Devices检索LM016L关键词即可找到该器件。

Proteus

  lcd1602proteus仿真

  先看懂液晶操作时序图(写操作:写命令、写数据)

Proteus

  1.读操作时序

Proteus

  2.写操作时序

Proteus

  由时序图可知,写操作时(包括写指令、写数据),RS=0;RW=0;再进行I/O口写操作,然后使能端口完成一次高脉冲(——高——低),这是液晶就会执行写操作的内容;

  1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:

Proteus

  思路:

  1、控制液晶显示输出,需要对其进行写数据(写数据前,同样需要先告诉液晶你下一步要在哪里写,因此写数据前,要写命令先设定数据指针)

  程序设计方式:

  write_com();//写命令函数,

  write_date();//写数据函数

  2、由于要先进行初始化,(初始化实际就是对液晶写指令,告诉其工作方式等)因此初始化函数里面自然就需要调用写命令函数write_com();

  程序结构如下:

  int init()

  {

  EN = 0;

  write_com(0X38);//设置16*2显示,5*7点阵,8位数据接口

  write_com(0X0C);//设置开显示,不显示光标

  write_com(0X06);//写一个字符时,整屏右移

  write_com(0X01);//显示清零

  return 0;

  }

  主函数部分程序结构:

  int main()

  {

  init();//调用初始化函数

  write_com(0x80);//调用写指令函数,设置写数据开始指针(第一行)

  for(x=0;x《6;x++)//数据写入循环程序

  {

  write_date(table[x]);

  delay(150);

  }

  write_com(0x80+0x40); ;//调用写指令函数,设置写数据开始指针(第二行)

  for(x=0;x《17;x++)//数据写入循环程序

  {

  write_date(table1[x]);

  delay(150);

  }

  while(1);

  return 0;

  }

  完整程序如下:

  1 #include《reg52.h》

  2 int init(); //声明初始化函数

  3 int write_com(unsigned char);//声明写命令函数

  4 int write_date(unsigned char);//声明写数据函数

  5 int delay(unsigned char);//声明延迟函数

  6 unsigned char x;

  7 sbit RS = P1^0;

  8 sbit RW = P1^1;

  9 sbit EN = P1^2;

  10 unsigned char code table[]=“HELLO!”;

  11 unsigned char code table1[]=“MY name is Terry!”;

  12

  13 int main(void)//主函数

  14 {

  15 init();

  16 write_com(0x80);

  17 for(x=0;x《6;x++)

  18 {

  19 write_date(table[x]);

  20 delay(150);

  21 }

  22 write_com(0x80+0x40);

  23 for(x=0;x《17;x++)

  24 {

  25 write_date(table1[x]);

  26 delay(150);

  27 }

  28 while(1);

  29 return 0;

  30 }

  31

  32 int init()//初始化函数体

  33 {

  34 EN = 0;

  35 write_com(0X38);//设置16*2显示,5*7点阵,8位数据接口

  36 write_com(0X0C);//设置开显示,不显示光标

  37 write_com(0X06);//写一个字符时,整屏右移

  38 write_com(0X01);//显示清零

  39 return 0;

  40 }

  41

  42 int write_com(unsigned char com)//写命令的函数体

  43 {

  44 RS = 0;

  45 RW = 0;

  46 P0 = com;

  47 delay(5);

  48 EN = 1;

  49 delay(5);

  50 EN = 0;

  51 return 0;

  52 }

  53

  54 int write_date(unsigned char date)//写数据的函数体

  55 {

  56 RS = 1;

  57 RW = 0;

  58 P0 = date;

  59 delay(5);

  60 EN = 1;

  61 delay(5);

  62 EN = 0;

  63 return 0;

  64 }

  65

  66 int delay(unsigned char xms)

  67 {

  68 unsigned char x,y;

  69 for(x=xms;x》0;x--)

  70 for(y=110;y》0;y--);

  71 return 0;

  72 }

  显示输出如下:

Proteus

  小编推荐阅读:

  lcd1602液晶显示屏介绍_lcd1602引脚功能

  lcd1602只亮不显示_lcd1602简单显示程序

  lcd1602地址设置_LCD1602内部的控制器指令

  lcd1602的封装_lcd1602的初始化程序

  lcd1602的a和k是什么引脚_lcd1602与单片机的连接方法

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分