51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx

上传人:b****6 文档编号:21093058 上传时间:2023-01-27 格式:DOCX 页数:14 大小:422.52KB
下载 相关 举报
51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx_第1页
第1页 / 共14页
51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx_第2页
第2页 / 共14页
51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx_第3页
第3页 / 共14页
51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx_第4页
第4页 / 共14页
51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx

《51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

51单片机实现电子时钟功能 1602液晶显示Word格式文档下载.docx

复位电路如图2.3所示,可以实现上电复位和手动复位功能。

图2.3复位电路

2.2.3按键电路

在单片机的P1.0、P1.1、P1.2三个I/O口接三个简易按键,通过不断检测按键状态,识别按键的按下顺序和次数即可实现时间的任意修改。

按键电路如图2.4所示。

2.2.41602液晶显示模块电路

本设计是通过对1602液晶显示屏的控制来实现时间的显示。

1602液晶显示模块的驱动如下所述:

图2.41602液晶屏实物图

1602采用标准的16脚接口,其中:

第1脚:

VSS为地电源

第2脚:

VDD接5V正电源

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线

第15~16脚:

空脚

1602显示屏的时序图如图2.5。

图2.51602时序图

1602液晶显示屏与单片机的连线图如图2.6所示。

图2.61602与单片机连线图

第三章程序设计及其调试

3.1程序设计

程序设计如下:

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitlcdrs=P2^0;

sbitlcswr=P2^1;

sbitlcden=P2^2;

sbits1=P1^0;

sbits2=P1^1;

sbits3=P1^2;

sbitrd=P3^7;

ucharcount,s1num;

charmiao,shi,fen;

ucharcodetable[]="

2011-6-14TUN"

;

ucharcodetable1[]="

00:

00:

00"

voiddelay(uintz)

{

uintx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

}

voidwrite_com(ucharcom)

lcdrs=0;

lcswr=0;

P0=com;

delay(5);

lcden=1;

lcden=0;

voidwrite_date(uchardate)

lcdrs=1;

P0=date;

voidinit()

ucharnum;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(num=0;

num<

15;

num++)

{

write_date(table[num]);

delay(5);

}

write_com(0x80+0x40);

12;

write_date(table1[num]);

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

voidwrite_sfm(ucharadd,uchardate)

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x40+add);

write_date(0x30+shi);

write_date(0x30+ge);

voidkeyscan()

rd=0;

if(s1==0)

{

delay(5);

if(s1==0)

{s1num++;

while(!

s1);

if(s1num==1)

{

TR0=0;

write_com(0x80+0x40+10);

write_com(0x0f);

}

}

if(s1num==2)

write_com(0x80+0x40+7);

if(s1num==3)

write_com(0x80+0x40+4);

if(s1num==4)

s1num=0;

write_com(0x0c);

TR0=1;

if(s1num!

=0)

if(s2==0)

delay(5);

if(s2==0)

{

while(!

s2);

if(s1num==1)

{

miao++;

if(miao==60)

miao=0;

write_sfm(10,miao);

write_com(0x80+0x40+10);

}

if(s1num==2)

fen++;

if(fen==60)

fen=0;

write_sfm(7,fen);

write_com(0x80+0x40+7);

if(s1num==3)

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write_com(0x80+0x40+4);

}

if(s3==0)

if(s3==0)

s3);

miao--;

if(miao==-1)

miao=59;

fen--;

if(fen==-1)

fen=59;

shi--;

if(shi==-1)

shi=23;

voidmain()

init();

while

(1)

keyscan();

voidtimer0()interrupt1

count++;

if(count==18)

count=0;

miao++;

if(miao==60)

miao=0;

fen++;

if(fen==60)

fen=0;

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write_sfm(7,fen);

write_sfm(10,miao);

}

3.2实验调试

实验过程中出现了很多的问题,经过反复的程序修改和调试,最终完成了本设计的要求,实现了电子时钟功能。

在电路焊接前,通过protues单片机仿真软件多次调试和仿真,得出了正确的实验结果。

Protues仿真图如图3.1所示。

图3.1protues仿真图

结论

经过两周的课程设计,不断的测试与分析,最终完成了电子时钟的设计与制作。

在实验的设计及仿真测试时,当没有得出正确的实验现象是,必须冷静、沉着的思考问题的来源,切勿太过紧张。

在电路的焊接过程,须仔细再仔细,案部分焊接导线,切勿乱了头绪。

这样才能在电路制作过程中减少许多不必要的错误。

本次设计组要是程序设计部分,在程序设计过程中,出现了很多的问题,经过和组员的多次讨论与研究、,并参阅了一些电子资料,解决的很多难题。

此课程设计主要考察了对单片机技术原理及程序设计基础等知识。

理论结合实践,使得在平时学习的单片机技术知识有了一个新的认识。

此次设计的电子时钟是一个典型的单片机应用实例。

通过本次设计,使得对单片机技术有了进一步的认识,并且对此产生了浓厚的兴趣,为以后的学习打下了坚实基础。

通过和组员的共同努力,成功的完成此次课程设计,在排除问题过程中,体验了程序设计及电路设计制作的艰辛,更能够体会到成功的喜悦。

参考文献

[1]张先庭.单片机原理、接口与C51应用程序设计.国防工出版社.2011

[2]吴立新.实用电子技术手册.机械工业出版社.2003

[3]胡汉才.单片机原理及其接口技术.北京:

清华大学出版社,2004.

附录

图1实验电路PCB图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1