欢迎来到天天文库
浏览记录
ID:38690284
大小:286.52 KB
页数:6页
时间:2019-06-17
《基于51单片机的1602LCD显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、标签:单片机 LCD 基于51单片机的1602LCD显示基于51单片机的1602LCD显示LCD(liquidcrystaldisplay)为液晶显示器,它一般不会单独使用,而是将LCD面板、驱动与控制电路组合成LCD模块(1iquidcrystaldisplaymoulde,简称为LCM)来使用。LCM是一种很省电的显示设备,常被应用在数字或微处理器控制的系统,做为简易的人机接口,但人们一般还是习惯称之为LCD显示器。1硬件设计采用51单片机控制1602LCD显示器的电路如下所示。在桌面上双击图标,打开ISIS7Profes
2、sional窗口(本人使用的是v7.4SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LCD.DSN”。在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。51单片机AT89C51一片晶体CRYSTAL12MHz一只瓷片电容CAP22pF二只电解电容CAP-ELEC10uF一只电阻RES10K一只排阻RESPAC-810K一只1602液晶显示器LM016L一只若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它
3、们都是默认的。在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。2软件设计用1602LCD显示两行字符的流程图如下所示。 用1602LCD显示“WelcomtoChina”和“Hi!Goodmorning!”的详细C51程序如下。//用LCD循环显示"WelcometoChina"和"Hi!Goodmorning!"#include//包含单片机的头文件#include<
4、intrins.h>//包含_nop_()函数定义的头文件sbitRS="P2"^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW="P2"^1;//读写选择位,将RW位定义为P2.1引脚sbitE="P2"^2;//使能信号位,将E位定义为P2.2引脚sbitBF="P0"^7;//忙碌标志位,,将BF位定义为P0.7引脚unsignedcharcodestring[]={"WelcometoChina"};unsignedcharcodestring1[]={"Hi!Goodmorning!"};/********
5、*****************************************函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒*************************************************/voiddelay1ms(){unsignedchari,j;for(i=0;i<10;i++)for(j=0;j<33;j++);}/*****************************函数功能:延时若干毫秒入口参数:n***************
6、***************/voiddelay(unsignedcharn){unsignedchari;for(i=0;i7、定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;returnresult;}/**************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***************************************8、***********/voidWriteInstruction(unsignedchardictate){while(BusyTest()==1);//如果忙就等待RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0;
7、定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;returnresult;}/**************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***************************************
8、***********/voidWriteInstruction(unsignedchardictate){while(BusyTest()==1);//如果忙就等待RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0;
此文档下载收益归作者所有