2023年数码管和LCD1602学习笔记_第1页
2023年数码管和LCD1602学习笔记_第2页
2023年数码管和LCD1602学习笔记_第3页
2023年数码管和LCD1602学习笔记_第4页
2023年数码管和LCD1602学习笔记_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1数码管显示数码管的显示有四种方法先介绍一下段驱动和位驱动都都使用74HC573锁存器的方式:数码管共阴极,直接由单片机的P0口驱动74HC573锁存器真值表如下/OELED/Q0111在允许输入输出时,输入和输出是同样的。010000任意输出上一个状态值,即已经所存的值。#include<reg51.h>sbitdula=P2^6; //段选信号的锁存器控制sbitwela=P2^7; //位选信号的锁存器控制voidmain(){ dula=0;//置0的时候无理论573输入什么值,输出端都只输出上一个值而与当前输入的值无关,只有置1的一瞬间才会将此刻输入端的值原样输出。即11脚就像是一个开关,为0关闭输出内容为之前锁存的内容,为1开,输出值就是此刻的输入值。 wela=0;ﻩP0=0x4f; //数字“3”的代码 dula=1;//段置1将P0口的值输入到锁存器中,ﻩdula=0;ﻩ //锁存数字“3”的代码,LE=0(图中的C)无论输入什么值,输出的结果都是上一个状态值。 ﻩﻩ ﻩﻩﻩ ﻩ ﻩ ﻩﻩ P0=0x00; //选中所有的数码管,要想选哪中一位数码管只需要将相应的位选线置0.ﻩwela=1; wela=0;ﻩ //锁存输入的00ﻩwhile(1);}上面的示例是将一个字符显示在一个或者几个数码管上,但是实际的应用却需要在多个数码管上显示出多个字符。这就需要动态扫描以实现静态显示的效果。我们已经可以通过程序让任意一位数码管显示任意一种字符,这样我们可以以时间为轴,循环显示每个数码管需要的数值,当循环显示的时间比较小时,眼睛就不能分辨出闪烁,而是看到一个静态的数值显示,LCD1602显示可以显示2*16个字符,每个字符是5*7的点阵3脚是背光选择用于调节背光亮度LCD1602功能介绍:提供各种控制命令:清屏、字符闪烁、光标闪烁、显示移位80字节显示数据存储器DDRAM192个5*7点阵的字节字符发生器CGROM8个可由用户自定义的字符发生器CGRAM读状态值的目的就是要判断1602是否在工作STA7-=1时不能对其读写。在一个5*7点阵上显示什么字符?显示一个数字8,即38H或直接‘8’除此之外,还可以自己定义字符,可参考视频第十七讲。在哪一个点阵上显示字符?在第一行第一个字显示,80H,第一行第二个显示81H指令集122显示开/光标设立的指令0CH开显示、无光标、不闪烁0FH开显示、光标、闪烁0E开显示、光标、不闪烁06H地址指针加一,光标加一07H写一个字符,整屏显示左移3其他指令01H显示清屏(数据指针清零,所有显示清零)02H显示回车:(数据指针清零)如何编写程序?测忙(定义状态标志位sta7)、写命令、写数据函数,LCD初始化函数简朴程序实例#include<reg52.h>//包含单片机寄存器的头文献typedefunsignedcharuint8;ﻩ//数据类型的宏定义sbitRS=P1^0;//寄存器选择位,将RS位定义为P1.0引脚sbitRW=P1^1;//读写选择位,将RW位定义为P1.1引脚sbitEN=P2^5;//使能信号位,将E位定义为P2.5引脚sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚sbitdu=P2^6; //让数码管在LCD显示的时候关闭不工作sbitwei=P2^7;/*****************************************************测忙函数功能:判断液晶模块的忙碌状态BF=1,忙碌;BF=0,不忙***************************************************/voidwait(void){ P0=0xFF;//预读先写1ﻩﻩdoﻩ{ﻩ RS=0; ﻩRW=1;ﻩ EN=0; ﻩEN=1; //读状态指令ﻩ}while(BF==1);//STA7=1严禁读写操作,等待ﻩEN=0;}/*****************************************************函数功能:写数据入口参数:unint8dat***************************************************/voidw_dat(uint8dat){ﻩwait(); //忙则等待 EN=0;ﻩP0=dat; RS=1; RW=0;ﻩEN=1; EN=0;}/*****************************************************函数功能:写命令入口参数:unint8cmd***************************************************/voidw_cmd(uint8cmd){ﻩwait(); ﻩ//忙则等待 EN=0; P0=cmd;ﻩRS=0; RW=0; EN=1;ﻩEN=0;}/*****************************************************函数功能:对LCD的显示模式进行初始化设立***************************************************/voidInit_LCD1602(void){ﻩw_cmd(0x38);//16*2显示,5*7点阵,8位数据接口ﻩw_cmd(0x0C);//显示器开、光标开、光标允许闪烁 w_cmd(0x06);//文字不动,光标自动右移ﻩw_cmd(0x01);//清屏}main()//主函数{ﻩﻩP0=0x00; du=1; du=0; P0=0xff; wei=1;ﻩwei=0; Init_LCD1602();//调用LCD初始化函数 w_cmd(0x80);//设立显示位置为第一行的第1个字 w_dat('A');//显示字符8、A while(1);}自己定义一个头文献一般格式是这样的:ﻫ#ifndef<标记>ﻫ#define<标记>

......

......

#endif<标记>标记的命名规则一般是头文献名全大写,前后加下划线,并把文献名中的“.”也变成下划线,如:stdio.h#ifndef_STDIO_H_#define_STDIO_H_......#endif之后可以在程序中引用了#include<reg51.h>#include<stdio.h>2、#include<intrins.h>头文献#ifndef__INTRINS_H__#define__INTRINS_H__externvoid_nop_(void);externbit_testbit_(bit);externunsignedchar_cror_(unsignedchar,unsignedchar);externunsignedint_iror_(unsignedint,unsignedchar);externunsignedlong_lror_(unsignedlong,unsignedchar);externunsignedchar_crol_(unsignedchar,unsignedchar);externunsignedint_irol_(unsignedint,unsignedchar);externunsignedlong_lrol_(unsignedlong,unsignedchar);externunsignedchar_chkfloat_(float);externvoid_push_(unsignedchar_sfr);externvoid_pop_(unsignedchar_sfr);#endif头文献中声明了很多的函数,extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文献中,提醒编译器碰到此变量和函数时在其他模块中寻找其定义。此头文献中最常用的就是移位、nop_crol_,_irol_,和_lrol_将变量val循环左移n位,它们与8051单片机的“RLA”指令相关。这三个函数的不同之处在于参数和返回值的类型不同。_cror_,_iror_和_lror_将变量val循环右移n位,它们与8051单片机的“RRA”指令相关。这三个函数的不同之处在于参数和返回值类型不同。4、IIC总线介绍PCF8591功能介绍地址:涉及固定地址和可编程两部分组成开发板上A0~A2都接地所以90H是写地址、91H是读地址起始条件之后的第一个字节是地址,第二个字节是控制字发送到pcf8591的控制寄存器中,用于控制控制器件。典型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论