当前位置: 首页 > news >正文

四川网站建设公司搜索风云榜入口

四川网站建设公司,搜索风云榜入口,网站建设qianhaiyou,参考消息今天新闻外观: 原理: LCD1602是一种工业字符型液晶,能够同时显示16x2即32个字符。 LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图…

外观:

 原理:

        LCD1602是一种工业字符型液晶,能够同时显示16x2即32个字符。 LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

基本接线:


读状态:输入:RS=L,RW=H,E=H
----输出:D0~D7=状态字
写指令:输入:RS=L,RW=L,D0~D7=指令码
----输出:无
读数据:输入:RS=H,RW=H,E=H
----输出:D0~D7=数据
写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲
----输出:无

有开发板的直接接即可,注意不要接反了。

软件设计:

        因为LCD代码是比较多的,有自己的LCD库,所以使用起来比较方便,写个.c和.h文件,再直接引用即可,一般不需要自己写,指定LCD函数是什么意思,怎么使用,能达到自己的目的即可,当然也不反对能独立写出代码的,对目标越熟悉,使用起来越高效。

程序:

        需要自己创建main.c、lcd.c、lcd.h三个文件才能使用。

main.c

//在main.c里面引用LCD相关函数和数据
#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器
#include "lcd.h"typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;u8 Disp[]=" LCD1602";         //数组,将显示字符串void main(void)
{while(1){u8 i;LcdInit();                    //调用LCD初始化函数for(i=0;i<16;i++){LcdWriteData(Disp[i]);	 //通过数组显示字符串}}	    	
}

 lcd.c

//一般.c里面放一些具体函数,main.c调用也是主要调用这个文件里面的函数。
#include "lcd.h"void Lcd1602_Delay1ms(uint c)            //延时函数,延时1ms,带有形参
{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);}      }}/*******************************************************************************
* 函 数 名         : LcdWriteCom
* 函数功能		   : 向LCD写入一个字节的命令
*******************************************************************************/
#ifndef 	LCD1602_4PINS	 //当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com)	  //写入命令
{LCD1602_E = 0;     //使能LCD1602_RS = 0;	   //选择发送命令LCD1602_RW = 0;	   //选择写入LCD1602_DATAPINS = com;     //放入命令Lcd1602_Delay1ms(1);		//等待数据稳定LCD1602_E = 1;	          //写入时序Lcd1602_Delay1ms(5);	  //保持时间LCD1602_E = 0;
}
#else 
void LcdWriteCom(uchar com)	  //写入命令
{LCD1602_E = 0;	 //使能清零LCD1602_RS = 0;	 //选择写入命令LCD1602_RW = 0;	 //选择写入LCD1602_DATAPINS = com;	//由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1;	 //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = com << 4; //发送低四位Lcd1602_Delay1ms(1);LCD1602_E = 1;	 //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名         : LcdWriteData
* 函数功能		   : 向LCD写入一个字节的数据
*******************************************************************************/		   
#ifndef 	LCD1602_4PINS		   
void LcdWriteData(uchar dat)			//写入数据
{LCD1602_E = 0;	//使能清零LCD1602_RS = 1;	//选择输入数据LCD1602_RW = 0;	//选择写入LCD1602_DATAPINS = dat; //写入数据Lcd1602_Delay1ms(1);LCD1602_E = 1;   //写入时序Lcd1602_Delay1ms(5);   //保持时间LCD1602_E = 0;
}
#else
void LcdWriteData(uchar dat)			//写入数据
{LCD1602_E = 0;	  //使能清零LCD1602_RS = 1;	  //选择写入数据LCD1602_RW = 0;	  //选择写入LCD1602_DATAPINS = dat;	//由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1;	  //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4; //写入低四位Lcd1602_Delay1ms(1);LCD1602_E = 1;	  //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名       : LcdInit()
* 函数功能		 : 初始化LCD屏
*******************************************************************************/		   
#ifndef		LCD1602_4PINS
void LcdInit()						  //LCD初始化子程序
{LcdWriteCom(0x38);  //开显示LcdWriteCom(0x0c);  //开显示不显示光标LcdWriteCom(0x06);  //写一个指针加1LcdWriteCom(0x01);  //清屏LcdWriteCom(0x80);  //设置数据指针起点
}
#else
void LcdInit()						  //LCD初始化子程序
{LcdWriteCom(0x32);	 //将8位总线转为4位总线LcdWriteCom(0x28);	 //在四位线下的初始化LcdWriteCom(0x0c);  //开显示不显示光标LcdWriteCom(0x06);  //写一个指针加1LcdWriteCom(0x01);  //清屏LcdWriteCom(0x80);  //设置数据指针起点
}#endif

对于代码中的:

#ifndef  ---------

xxxxxx

xxxxxx

#else

yyyyyy

yyyyyy

#endif

意义:如果没有定义 (---------)的话,就执行xxxxxxx,

           如果定义了  (---------)的话,就执行yyyyyyy,

             #endif  表示结束。

lcd.h

//一般.h里面放一些位定义,变量常量,和一些函数声名等
#ifndef __LCD_H_
#define __LCD_H_//#define LCD1602_4PINS#include<reg52.h>//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif#ifndef uint 
#define uint unsigned int
#endif/**********************************
PIN口定义
**********************************/
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;/**********************************
函数声明
**********************************/
/*在51单片机12MHZ时钟下的延时函数*/
void Lcd1602_Delay1ms(uint c);   //误差 0us
/*LCD1602写入8位命令子函数*/
void LcdWriteCom(uchar com);
/*LCD1602写入8位数据子函数*/	
void LcdWriteData(uchar dat)	;
/*LCD1602初始化子程序*/		
void LcdInit();						  #endif

总结:

要让LCD1602显示数字和字符,有很多种方式,我这里只是一种(显示固定字符),当你需要显示多个变量的时候,这个函数就不适合了,必须要有专门显示数字的函数。

http://www.zhongyajixie.com/news/63991.html

相关文章:

  • 网站认证是什么意思合肥网站推广公司
  • 中国最大网站建设商推荐知乎西安seo优化
  • 学校宣传栏版面设计北京知名seo公司精准互联
  • 查看网站注册信息宁波seo哪家好
  • 做商城网站需要多大的服务器免费发广告的软件
  • 重庆企业网站推广流程职业培训机构
  • 网站建设实验的建议和看法百度数据开放平台
  • 徐州中小企业网站制作西安网
  • 我需要做网站公司网站搭建流程
  • 做请柬网站搜索引擎营销的实现方法
  • 做网站商城需要什么软件软文自助发布平台系统
  • 怎么做网站推广电话江阴网站制作公司
  • 企业展示网站关键词优化公司哪家好
  • wordpress finag主题下载聊石家庄seo
  • 云主机做网站永久保留网站推广品牌的方法
  • 用前端做的比较酷的网站seo的定义
  • 大部分网站是国内虚拟主机和国外虚拟主机河北百度代理公司
  • 做外贸家纺资料网站seo咨询邵阳
  • 做棋牌网站一般多少钱杭州网络
  • 开网站做私彩赚钱吗常见的网络推广方法
  • 中国南京网站广州google推广
  • 课程网站建设网站seo 优化
  • 广州在线网站制作百度一下打开网页
  • 如何提高网站安全性免费推广软件哪个好
  • 怎么做网站赚钱百度公司官方网站
  • 开发网站用php还是jsp最新的即时比分
  • 个人做网站多少钱项目推广方案
  • jsp网站建设课程设计国外免费ip地址
  • 防火墙放行图片域名句容市网站seo优化排名
  • 软件ui设计怎么做网站百度一下百度知道