多功能电子闹钟说明书(多功能电子闹钟说明书怎么调静音)

一.首先介绍液晶显示器的特点

具有省电,体积小的特点,共分为三种类型:字段型,字符型,点阵图形型

1.字段型:是以长条状组成的字符显示,主要用于数字显示,也可以用于显示细纹字母或者某些字符。,广泛应用于电子表,计算机,电子仪表中。

单片机学习第七课——LCD1602的使用(数字钟)

单片机学习第七课——LCD1602的使用(数字钟)

2.字符型:用于显示字母,数字,字符。在单片机系统中广泛应用。

单片机学习第七课——LCD1602的使用(数字钟)

3.点阵图形型:广泛应用于图片显示,比如笔记本电脑,彩色电视,游戏机等。

单片机学习第七课——LCD1602的使用(数字钟)

单片机学习第七课——LCD1602的使用(数字钟)

单片机学习第七课——LCD1602的使用(数字钟)

二,LCD1602液晶显示模块介绍

1.字符型液晶显示模块LCD1602的特性与引脚

目前市场上的字符型LCD1602模块常用的有16字*1行,16字*2行,20字*2行,20字*4行等模块。,市场上常用的型号有***1602,***/1604,***2002等。其中***为商标名,16代表液晶显示器每行可以显示16个字符,02表示显示2行。LCD1602内部具有字符库ROM,能显示出192个字符。

2.LCD1602外形特征
单片机学习第七课——LCD1602的使用(数字钟)

1602外形

①显示

LCD1602是显示模块,主要作用当然是显示了。既然是显示,我们可以想一想,无非就是两个内容:

第一点:你打算让它在哪里显示(显示位置)

第二点:你要显示什么内容 (显示内容)

很明显,这两点都是来自于单片机的控制,单片机让它显示什么它就显示什么,单片机让它在哪里显示它就在哪里显示。这一句话也可以换个说法,比如单片机’告诉’LCD1602模块:请你在第1行的第4个位置,显示字符‘A’. 所谓’告诉’,也即是单片机与LCD1602模块进行’沟通’。类比一下我们平时的”沟通”,比如打电话,是不是一上来就开始谈论主题了。当然不是,先要发出一信号,比如”喂”,打个招呼,确定对方能收到信号后才开始谈论主题。当然也有些人会嘘寒问暖几句才开始正题谈话。

总之,在’沟通’之前要有个’打招呼’的过程。对于单片机与LCD1602的’沟通’也一样,同样需要先’打个招呼’,只不过我们这里换了个说法叫做”初始化”。

这样整个思路就出来了:

第一步:初始化 (单片机先跟1602打个招呼)

第二步:确定显示位置 (单片机告诉1602在哪里显示)

第三部:确定显示内容 (单片机告诉1602显示什么内容)

②确定显示位置

如何确定显示位置呢?前面说了显示位置就是2行,每一行16个空格,这样一共是32个空格。那么单片机如何告诉LCD1602在哪个空格显示呢?注意到单片机和LCD1602都是机器,既然是机器之间的沟通当然要使用机器语言了。既然是机器语言无非就是0和1组成的语言。那么现在的问题就是如何通过0和1来确定显示位置。这个就比较容易了,比如我只使用一个位的话,那么就只能确定两个位置,用0来表示第一行的第一个空格显示,用1来表示第一行的第2个空格显示。前面说了,1602有32个空格,很明显一个位肯定不够用。同样的道理,采用两个位的话就是4种组合,也就是可以确定4个空格,三个位的话就是8个空格,仍然不够用。那么就继续增加位数,五个位就够了。比如当单片机发送00000这个信息给1602时就表示要它在第1行的第1个空格显示,00001表示在第1行的第2个空格显示,依此类推。但是通常机器之间的沟通是以字节(8位)为最小单位的,这样我们就能通过8位0和1的组合确定显示位置。至于具体的组合方式对应着什么位置就要查看厂家提供的说明书了。

单片机学习第七课——LCD1602的使用(数字钟)

③显示内容

下的一个问题就是如何确定显示内容。同样显示什么内容也是通过8位的0和1的组合来完成的,这8位不同的组合形式就对应着不同的显示内容,具体如下图所示

单片机学习第七课——LCD1602的使用(数字钟)

3.1602工作形态
单片机学习第七课——LCD1602的使用(数字钟)

1.工作电路

图 1 是字符型模块的电路框图,它由 KS0066、KS0065及几个电阻电容组 成。KS0065 是扩展显示字符用的 (例如:16 个字符× 1 行模块就可不用 KS0065, 16 个字符× 2 行模块就要用 1 片 KS0065)。

单片机学习第七课——LCD1602的使用(数字钟)

图1

接口方面,有 8 条数据,三条控线。可与微处理器或微控制相连 ,通过送入 数据和指令,就可使模块正常工作,图 2 是模块和微处理器相连的例子。

单片机学习第七课——LCD1602的使用(数字钟)

图2

工作电压在4.5-5.5v一般工作电压是5v,工作电流是2MA分为标准的14引脚与16引脚两种。引脚功能表如下:

单片机学习第七课——LCD1602的使用(数字钟)

单片机学习第七课——LCD1602的使用(数字钟)

2.电参数

单片机学习第七课——LCD1602的使用(数字钟)

三,实践项目——数字钟用1602显示

1.要求

基本要求:用定时/计数器完成简单时钟功能,并利用数码管显示时间,起始时间建议设置为23:59:55,方便观察到零点时显示时间的跳变。

提高部分:可在此基础上,利用独立按键K1-K4实现闹钟、调时等功能。(大家可以试试)

2.设计思路

显示部分仍然可借鉴前面讲过的数码管动态显示子函数。数码管显示教程

基本1秒的时间可通过定时计数器(如T0)产生50ms,循环20次,到达1秒;以此类推。设计思路、主函数及中断函数部分可借鉴 中断的使用

3.电路图

单片机学习第七课——LCD1602的使用(数字钟)

PS:共阴数码管

4.源代码(数码管显示)

#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;sbit K1=P3^4;sbit K2=P3^5;sbit K3=P3^6;sbit K4=P3^7;uchar h,m,s,j=0;uchar data led[]={2,3,5,9,5,5};uchar data ledwei[6]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};uchar data displaytab[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay() /*?óê±oˉêy,??1mS*/{ uchar x,y; for(x=2; x>0; x–) for(y=250; y>0; y–); }void display() /*?÷3ìDò*/{ uchar i; for (i=0;i<6;i++) { P0=displaytab[led[i]]; DUAN=1; DUAN=0; P0=ledwei[i]; WEI = 1; WEI = 0; delay(); P0=0xff; /*??ó°2£?????è?2?1???*/ WEI = 1; WEI = 0; P0=0x00; /*??ó°1£??¨?e????*/ DUAN = 1; DUAN = 0; } }void main(){ TMOD=0x01; TH0=(65536-50000)/256; TL0= (65536-50000)%256; EA=1; ET0=1; TR0=1; h=23; m=59; s=55; while(1) { display(); }}void T0_int() interrupt 1{ j++; if(j==20) { j=0; s++; if(s==60) { s=0; m++; } if(m==60) { m=0; h++; } if(h==24){ h=0; }} led[5]=h/10;led[4]=h%10;led[3]=m/10; led[2]=m%10;led[1]=s/10; led[0]=s%10;TH0=(65536-50000)/256;TL0=(65536-50000)%256; }

5.仿真结果展示

视频加载中…

6.源代码(1602显示)

#include<reg51.h>#include<lcd1602.h>#define uchar unsigned char#define uint unsigned intuchar int_time;uchar second;uchar minute;uchar hour;uchar code date[]=” CHINA “;uchar code time[]=” TIME 23:59:55 “;uchar second=55,minute=59,hour=23;void clock_init(){ uchar i,j; for(i=0;i<16;i++) { write_data(date[i]); }write_com(0x80+0x40);for(j=0;j<16;j++){ write_data(time[j] ); }}void write_sfm(uchar wei,uchar date1){uchar shi,ge;shi=date1/10;ge=date1%10;write_com(0x80+wei);write_data(0x30+shi);write_data(0x30+ge);}void clock_write(uint s,uint m,uint h){ write_sfm(0x47,h); write_sfm(0x4a,m); write_sfm(0x4d,s); }void main(){ init1602(); clock_init(); TMOD=0x01; EA=1; ET0=1; TH0=(65536-46080)/256; TL0= (65536-46080)%256; TR0=1; int_time=0; second=55; minute=59; hour=23; while(1) { clock_write(second,minute,hour); }}void T0_interserve(void) interrupt 1 using 1{ int_time++;if(int_time==20){ int_time=0; second ++; } if(second==60) { second=0; minute ++; }if(minute==60){ minute=0; hour ++; } if(hour==24) { hour=0; } TH0=(65536-46080)/256; TL0= (65536-46080)%256; }
单片机学习第七课——LCD1602的使用(数字钟)

获得更多资料(源代码,软件包,PLC等),请先关注我!私信回复 单片机 即可

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。