数码管和LCD1602学习笔记.doc

上传人:灯火****19 文档编号:144145784 上传时间:2020-09-06 格式:DOC 页数:9 大小:864.50KB
返回 下载 相关 举报
数码管和LCD1602学习笔记.doc_第1页
第1页 / 共9页
数码管和LCD1602学习笔记.doc_第2页
第2页 / 共9页
数码管和LCD1602学习笔记.doc_第3页
第3页 / 共9页
数码管和LCD1602学习笔记.doc_第4页
第4页 / 共9页
数码管和LCD1602学习笔记.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数码管和LCD1602学习笔记.doc》由会员分享,可在线阅读,更多相关《数码管和LCD1602学习笔记.doc(9页珍藏版)》请在金锄头文库上搜索。

1、1数码管显示数码管的显示有四种方法先介绍一下段驱动和位驱动都都使用74HC573锁存器的方式:数码管共阴极,直接由单片机的P0口驱动74HC573锁存器真值表如下 /OELED/Q0111在允许输入输出时,输入和输出是一样的。010000任意输出上一个状态值,即已经所存的值。 #include sbit dula=P26;/段选信号的锁存器控制sbit wela=P27;/位选信号的锁存器控制void main()dula=0; /置0的时候无理论573输入什么值,输出端都只输出上一个值而与当前输入的值无关,只有置1的一瞬间才会将此刻输入端的值原样输出。即11脚就像是一个开关,为0关闭输出内容

2、为之前锁存的内容,为1开,输出值就是此刻的输入值。wela=0;P0=0x4f; /数字“3”的代码dula=1; /段置1将P0口的值输入到锁存器中,dula=0;/锁存数字“3”的代码,LE=0(图中的C)无论输入什么值,输出的结果都是上一个状态值。P0=0x00; /选中所有的数码管,要想选哪中一位数码管只需要将对应的位选线置0.wela=1;wela=0;/锁存输入的00while(1);上面的示例是将一个字符显示在一个或者几个数码管上,但是实际的应用却需要在多个数码管上显示出多个字符。这就需要动态扫描以实现静态显示的效果。我们已经可以通过程序让任意一位数码管显示任意一种字符,这样我们

3、可以以时间为轴,循环显示每个数码管需要的数值,当循环显示的时间比较小时,眼睛就不能分辨出闪烁,而是看到一个静态的数值显示,2、 LCD1602显示可以显示2*16个字符,每个字符是5*7的点阵3脚是背光选择用于调节背光亮度LCD1602功能介绍:提供各种控制命令:清屏、字符闪烁、光标闪烁、显示移位80字节显示数据存储器DDRAM192个5*7点阵的字节字符发生器CGROM8个可由用户自定义的字符发生器CGRAM读状态值的目的就是要判断1602是否在工作STA7-=1时不能对其读写。在 一个5*7点阵上显示什么字符 ? 显示一个数字8,即38H或直接8除此之外,还可以自己定义字符,可参考视频第十

4、七讲。在哪一个点阵上显示字符 ? 在第一行第一个字显示,80H,第一行第二个显示81H指令集1 2 2显示开/光标设置的指令0CH开显示、无光标、不闪烁0FH开显示、光标、闪烁0E开显示、光标、不闪烁06H地址指针加一,光标加一07H写一个字符,整屏显示左移3其他指令01H显示清屏(数据指针清零,所有显示清零)02H显示回车:(数据指针清零)怎样编写程序?测忙(定义状态标志位sta7)、写命令、写数据函数,LCD初始化函数简单程序实例#include /包含单片机寄存器的头文件typedef unsigned char uint8; /数据类型的宏定义sbit RS = P10 ; /寄存器选

5、择位,将RS位定义为P1.0引脚sbit RW = P11 ; /读写选择位,将RW位定义为P1.1引脚sbit EN = P25 ; /使能信号位,将E位定义为P2.5引脚sbit BF = P07 ; /忙碌标志位,将BF位定义为P0.7引脚sbit du = P26 ; /让数码管在LCD显示的时候关闭不工作sbit wei = P27 ; /*测忙函数功能:判断液晶模块的忙碌状态 BF=1,忙碌;BF=0,不忙*/void wait(void)P0 = 0xFF; /预读先写1doRS = 0;RW = 1;EN = 0;EN = 1;/读状态指令while (BF = 1); /ST

6、A7=1禁止读写操作,等待EN = 0;/*函数功能:写数据入口参数:unint8 dat*/void w_dat(uint8 dat)wait(); /忙则等待EN = 0;P0 = dat;RS = 1;RW = 0;EN = 1;EN = 0;/*函数功能:写命令入口参数:unint8 cmd*/void w_cmd(uint8 cmd)wait(); /忙则等待EN = 0;P0 = cmd;RS = 0;RW = 0;EN = 1;EN = 0;/*函数功能:对LCD的显示模式进行初始化设置*/void Init_LCD1602(void)w_cmd(0x38); / 16*2显示,

7、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、Awhile (1); 自己定义一个头文件一般格式是这样的:#ifndef #define .#endif 标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也

8、变成下划线,如:stdio.h #ifndef _STDIO_H_ #define _STDIO_H_ . #endif 之后可以在程序中引用了#include #include 2、#include 头文件#ifndef _INTRINS_H_#define _INTRINS_H_extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsig

9、ned char);extern unsigned long _lror_ (unsigned long, unsigned char);extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);extern void _push

10、_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);#endif头文件中声明了很多的函数,extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此头文件中最常用的就是移位、nop _crol_,_irol_,和_lrol_将变量val循环左移n位,它们与8051单片机的“RL A”指令相关。这三个函数的不同之处在于参数和返回值的类型不同。 _cror_,_iror_和_lror_将变量val循环右移n位,它们与8051单片机的“RRA”指令相关。这三个

11、函数的不同之处在于参数和返回值类型不同。4、IIC总线介绍PCF8591功能介绍(1) 地址:包括固定地址和可编程两部分组成开发板上A0A2都接地所以90H是写地址、91H是读地址起始条件之后的第一个字节是地址,第二个字节是控制字发送到pcf8591的控制寄存器中,用于控制控制器件。典型信号模拟子程序e/图文教程/板载模块学习方法/AD模块(2) 控制字PCF8591默认起始信号后的第一个字节是地址,它会根据自身的硬件设置(A2/A1/A0)地址判断单片机是否访问自己。之后收到的第二个字节是就是控制字。D6是模拟输出允许端AOUT高电平有效,D5、D4是模拟输入方式选择(差分输入、单通道输入)。D0/D1是模拟量输入通道选择。程序设计部分:主要有四个函数要用到,开始、结束、应答、非应答1001A2A1A0R/W-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号