lcd1602在proteus中怎么找_lcd1602proteus仿真

lcd1602在proteus中怎么找 proteus提供了很多lcd的仿真器件,分享一个关于lcd1602的查找操作,希望对需要的朋友有帮助。
第1步:使用proteus打开一个工程,点击devices的p,准备放置元件。
第2步:在pick devices对话框中的“category”列表找到“optoelectronics”。在“sub-category”列表中选择“alphanumeric lcds”,可以在右侧的results中看到可以使用的lcd元件,其中description列名了分辨率,16x2即为1602,确认后点击“ok”键。
如果不记得1602的具体路径,那么可以使用关键词lcd在pick devices对话框进行检索,这样可以缩小查找范围。
另一种比较粗暴的方法是利用proteus自带的demo工程里的现有元件的信息,经常使用proteus应该都知道它提供了lcd1602的仿真demo工程。我们可以通过“file”-》“open sample project”打开sample工程。
在软件弹出的“sample projects browser”的category列表找到vsm for 8051,右侧results显示出了几个lcd的工程,其中一个就是lcd1602的。
当然,我们也可以使用lcd关键词进行查找,这样能够更快的锁定lcd1602示例工程。
选择lcd1602工程后,点击“打开”。
在lcd1602工程中找到lcd1602元件,可以看到它的元件具体名称为lm016l,接着通过在pick devices检索lm016l关键词即可找到该器件。
lcd1602proteus仿真 先看懂液晶操作时序图(写操作:写命令、写数据)
1.读操作时序
2.写操作时序
由时序图可知,写操作时(包括写指令、写数据),rs=0;rw=0;再进行i/o口写操作,然后使能端口完成一次高脉冲(——高——低),这是液晶就会执行写操作的内容;
1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:
思路:
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 }
显示输出如下:
小编推荐阅读:
lcd1602液晶显示屏介绍_lcd1602引脚功能
lcd1602只亮不显示_lcd1602简单显示程序
lcd1602地址设置_lcd1602内部的控制器指令
lcd1602的封装_lcd1602的初始化程序
lcd1602的a和k是什么引脚_lcd1602与单片机的连接方法

比亚迪插混专用1.5L高效发动机刷新全球纪录,获能效之星称号
锤子坚果R1再次降价6GB+128GB组合版1999元起
2022年中国物联网产业大会暨品牌盛会召开 达实品牌荣获2项大奖
什么是5G直放站的带外杂散指标?
UCA认证和DGT V16成品整套认证服务方案
lcd1602在proteus中怎么找_lcd1602proteus仿真
2018未来趋势发布大会亮相未来生活节
如何组织PID命名空间的各种ID?PID命名空间基本概念简析
首例!科创板上会取消审议!这家国内知名芯片企业到底怎么了?
智能监控系统:视频监控行业的一次新的革命
又一年微软全球开发者大会如期而至,带来了一个极具未来感的微软
未来智能随处可见
威迈斯IPO上市:新能源汽车销量持续增长零部件需求旺盛
TPT19新特性之最坏情况执行时间的指示
英众科技携多款PC产品亮相CITE2022
云迹机器人助力酒店营收 帮助酒店渡过难关
联发科、高通对掐:新处理器谁更强?
厉害了我的哥:特斯拉用太阳能为整座小岛600多户居民供电
智能服务机器人在未来会不会成为我们生活的必需品
最灵巧机器人Dex-Net 物品分拣远超人类水平