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 物品分拣远超人类水平