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

包头做网站广告推广免费平台

包头做网站,广告推广免费平台,推广专员,wordpress 图片限制外观: 原理: 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.ds6.com.cn/news/19586.html

相关文章:

  • 东莞网站建设价格域名交易中心
  • 网站被墙了怎么办开户推广竞价开户
  • 自己做的网站怎么添加采集模块哈尔滨seo关键词排名
  • 华为建站wordpress网站推广策划书
  • 苏州做网站推广的谷歌外链代发
  • 网站群管理平台方案seo投放营销
  • 淄博哪里做网站江西百度推广公司
  • 中国医院考试网站模板下载指数运算公式大全
  • 怎么做网站步骤优化网站有哪些方法
  • 南宁外贸网站建设万物识别扫一扫
  • 如何做网站优化seo手机优化软件下载
  • 新公司 做网站 流程南昌百度快速排名提升
  • 做网站广告软件网络促销的方法有哪些
  • 网站建设费用价格表军事新闻 今日关注
  • 真人做爰直播试看网站深圳网站营销seo费用
  • 类似于美团的网站怎么做的代运营公司哪家好一些
  • 网站更新要怎么做衡阳百度推广公司
  • 济南网站维护公司各种网站
  • 马云1688网站在濮阳如何做关系网站优化公司
  • 外销网站建立公关公司经营范围
  • 甘南网站设计公司广州网站建设推广专家
  • 网站建设入驻网络推广网络营销外包
  • 网站怎么做404页面百度网站推广价格
  • 怎么自己设计房子效果图网站优化包括哪些内容
  • 郑州做网站公司网络推广企划
  • 宁波网站建设设计网站建站在线制作
  • 淘宝客手机网站开发对网站外部的搜索引擎优化
  • 怎么建一个网站卖东西奉化云优化seo
  • 网站开发国内外研究动态网络开发
  • 中国建设招标网是私人网站吗软文范例大全500字