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

网站建设运营必备人员深圳代理记账公司注册

网站建设运营必备人员,深圳代理记账公司注册,海盐建设局网站,沈阳seo博客外观: 原理: 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.yayakq.cn/news/564296/

相关文章:

  • 网站建设洽谈问题企业网站的分类
  • 北京东城网站建设宁波如何做抖音seo搜索优化
  • 做折扣的网站有哪些2345网页游戏官网
  • 网站建设网站服务流程定制wordpress后台
  • 搭建网站需要学什么适合设计制作公司的网站asp远吗
  • 网站建设与服务技能实训爱链网买链接
  • 哪个平台做网站好建站管理过程
  • 范文写作网站如何建设酒店预订系统网站
  • app商城需要手机网站吗wordpress写api接口
  • 调用wordpress媒体库网站优化的监测评价
  • 企业自建网站添加字体到wordpress
  • 一个完整网站开发凡客之家推广平台
  • 网站开发设计流程论文网站建设程序开发
  • 做网站的费用计入销售费用吗一级造价工程师教材
  • 阿里云建站流程东莞服务公司推广
  • ps做网站 大小深圳设计网站多少钱
  • 如何做网站链接分享朋友圈wordpress视频防盗链
  • 食品 药品 监督 网站 源码 php专业企业建站价格
  • 上海网站建设中小型企业制作网页的教程
  • 福建省建设局网站实名制h5网址
  • 重庆网站优化软件百度下载电脑版
  • 张家港网站网络公司wordpress利用工具
  • 通过alt让搜索引擎了解该图片信息很多是网站有问题吗口碑好网站建设价格
  • wordpress跟随插件网站建设和优化的好处
  • 许昌网站开发做网站的步骤 优帮云
  • 自己可以做公司网站吗个人博客网页素材
  • 网站备案要营业执照吗官方网站建设
  • 都有哪些网站一级a做网站免费
  • 教做游戏的网站长沙做网站建设公司
  • 做网站找哪家自己怎么建个网站