完整word版用1602LCD设计的可调式电子钟Word下载.docx

上传人:b****2 文档编号:36335 上传时间:2023-04-28 格式:DOCX 页数:24 大小:354.91KB
下载 相关 举报
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第1页
第1页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第2页
第2页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第3页
第3页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第4页
第4页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第5页
第5页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第6页
第6页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第7页
第7页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第8页
第8页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第9页
第9页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第10页
第10页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第11页
第11页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第12页
第12页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第13页
第13页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第14页
第14页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第15页
第15页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第16页
第16页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第17页
第17页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第18页
第18页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第19页
第19页 / 共24页
完整word版用1602LCD设计的可调式电子钟Word下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

完整word版用1602LCD设计的可调式电子钟Word下载.docx

《完整word版用1602LCD设计的可调式电子钟Word下载.docx》由会员分享,可在线阅读,更多相关《完整word版用1602LCD设计的可调式电子钟Word下载.docx(24页珍藏版)》请在冰点文库上搜索。

完整word版用1602LCD设计的可调式电子钟Word下载.docx

1)选取STC89C52单片机作为核心控制芯片,绘制STC89C52单片机最小系统及相应外设单元1602LCD电路原理图;

2)基于电路原理图,选取万用板作为基板制作单片机实物;

3)编写C源程序文件,用1602LCD实现电子钟显示。

3.2功能要求说明

此多功能数字电子钟采用LCD1602显示时间。

电子钟一上电即可显示。

用四个调整按键调整时间,分别为K1、K2、K3、K4,其中K1键为功能选择键,按一下调节秒,两下是调节分钟,三下是调节闹钟小时;

K2为数值加一键;

K3为数值减一键。

K4为确认键。

4设计课题总体方案

数字电子钟是一个将“时”,“分"

“秒"

显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。

因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒"

和单片机,还有校时电路组成。

8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。

数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。

“分单元"

也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。

“时单元”采用24进制计时器,可实现对一天24小时的累计。

显示电路将“时”、“分”、“秒”通过LCD1602显示器显示出来。

图4-1设计总原理图

4.1硬件设计方案

此设计的硬件采用STC89C52芯片及LCD602显示器,独立式按键组成的多功能电子钟。

设计中是采用单片机的内部定时器定时,硬件组成框图如图4。

1所示:

图4-2程序框图

本文可调时钟设计原理主要利用STC89C52单片机,由单片机的P0口控制数码管的位显示,P2口控制数码管的段显示,P1口与按键相接用于时间的校正。

在设计中引入电源电路,外部电源系统产生+5V电压,用于给CPU及显示电路提供工作电压,这是数字时钟正常工作时的总电压。

整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器"

,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲"

信号,该信号将作为“分计数器”的时钟脉冲.“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”.“时计数器”采用24进制计时器,可实现对一天24小时的累计。

显示电路将“时”、“分”、“秒”计数器的输出,通过LED液晶显示器显示出来。

校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分"

、“秒”显示数字进行校对调整。

该多功能数字电子钟单片机由最小系统、按键模块、LCD显示模块、USB接口电路模块组成,各模块的功能如下:

(1)单片机最小系统

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。

STC89C52使用经典的MCS—51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能.在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式.空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止.最高运作频率35MHz,6T/12T可选。

(2)LCD显示电路

LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形.

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块.它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好).

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

图4—3LCD1602显示仿真电路

(3)USB接口电路

接上一个电容组成的滤波电路和电源显示灯组成一个电源接口,为单片机工作供电.

(4)晶振电路和复位电路

STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C3按图4-2-3所示方式连接。

晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C2、C3的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间.

根据实际情况,本设计晶振选择频率为12MHZ,电容选择30pF如图(4-2—3)。

经计算得单片机工作胡机器周期为:

12×

(1÷

12M)=1us。

振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上。

时钟发生器是个二分频的触发器,将振荡器的信号频率fosc除以2,向CPU提供两相时的时钟信号.

复位电路

时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。

图4-4晶振和复位电路

(5)按键模块

用四个调整按键调整时间,分别为K1、K2、K3、K4,其中K1键为功能选择键,按一下调节秒,两下是调节分钟,三下是调节闹钟小时;

图4—5按键电路

4.2系统软件设计

本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、校对设置程序、EEPROM读写程序等组成.主要程序设计流程图如下所示:

图4-6主要程序设计流程图

4.3系统程序流程图

在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分。

秒,在显示初值之后,进入主循环。

在主程序中,对不同的按键进行扫描,实现时间调整,复位清零等功能,系统总流程图如下图4—3.

图4—7按键处理流程图

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。

如图4—8所示:

图4—8时钟显示顺序

5.软件仿真及实物设计调试

5.1PROTUES仿真软件介绍

Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真.Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。

通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。

5.1电子钟系统PROTUES仿真

用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的所示。

图5.1仿真图

5.2仿真运行结果说明

电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。

打开时的正常显示仿真:

图5。

2LCD1602仿真结果图1

图5.3LCD1602仿真结果图2

5。

3实物设计结果与调试

图5.4实物调试图1

5实物调试图2

6课程设计实验总结

通过这次设计我发现,只有理论水平提高了;

才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。

这个设计十分有意义,我获得很深刻的经验。

通过这次设计,我知道了理论和实际的距离,也知道了理论和实际相结合的重要性,,也从中获得了很多书本上无法得知的知识。

我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。

学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题.这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

这次专业课程设计总体来说还算是成功的,但我也发现了自己许多的错漏和不足之处.最简单的程序没写好就想着去写复杂的程序,做事还是缺乏耐心和信心,当有时遇到问题时,总是无从下手,总想让老师解决问题,对于课本上的知识不能很好的组织到一起,不会灵活的运用,总是对书本知识有着模糊的记忆,不能掌握扎实。

在编写个功能的程序时,特别是后来增添更复杂的程序时,明显地显示出自己的不足.通过本次的实训,让我了解到了自己的不足,需要更好的掌握本门课程,书本上的知识是基础,想要更好的掌握就要多动手实践与动脑思考,这样才会达到事半功倍的效果。

此设计是在我敬爱的蒋善超老师的精心指导下完成的.蒋老师严谨的教学作风和孜孜不倦的工作态度一直激励着我,使我在学习中遇到困难时能尽最大努力克服,不断进步,在理论和实践方面的能力都获得了很大的提高。

四年大学生活中,老师们给了我很多指导和支持。

他们严谨的治学,优良的作风和敬业的态度,为我树立了为人师表的典范。

通过这次课程设计,本人不仅加强了自己对所掌握的知识的巩固和进一步理解,同时对自己设计进行了一次全面的检验和提升。

设计过程中丰富了自己的知识,积累了宝贵的设计经验,获得了一定的设计和能力,能承担一些的设计工作;

同时也于此,发现自己还存在不少的知识缺陷,懂得自己要想成为一个杰出的人,我就应该不断地努力学习知识,充实自己的头脑。

通过这次课程设计,让我复习了很多学过的旧知识,同时锻炼了自己的动手能力和查阅资料.尤其是解决在实际中解决排查问题的能力。

由于本次实训考虑到实训时间短,实训的成本低,还有所学的知识不完整等.

这次的设计有很多的不足,和市场上的产品有一定的差距,例如:

电子时钟还可以做到秒表计时,闹钟提示等功能。

参考文献

[1]张兰红.单片机原理及应用。

北京:

机械工业出版社,2012.7

[2]牛昱光。

单片机原理与接口技术[M].北京:

电子工业出版社,2008。

[3]蒋力培.单片机微机系统实用教程[M]。

北京:

机械工业出版社,2007。

附录

附录1:

程序清单

#include〈reg52。

h〉

#defineuintunsignedint

#defineucharunsignedchar

sbitrs=P2^0;

//定义液晶显示器控制端口

sbitrw=P2^1;

sbiten=P2^2;

sbits1=P1^4;

//定义按键控制

sbits2=P1^5;

sbits3=P1^6;

sbits4=P1^7;

ucharshi,fen,miao,ri,yue,nian;

ucharcodetable[]={"

2018:

01:

05"

};

ucharcodetable1[]={”00:

00:

00”};

ucharnum,num1,count;

uinti,sh,ge,s,g;

voidDelay(uchartime)//延时

uintj;

for(;

time〉0;

time-—)

for(j=0;

j〈125;

j++);

}

voidwrite_com(ucharcom)//写指令函数

en=0;

rs=0;

Delay(5);

P0=com;

//

en=1;

//高脉冲

Delay(5);

en=0;

voidwrite_data(uchardat)//写数据函数

rs=1;

P0=dat;

}

voidinit()//初始化

{

rw=0;

write_com(0x38);

//设置16X2显示,5X7点阵,8位数据接口

write_com(0x0c);

//设置开显示,不显示光标D=1:

显示开,D=0:

显示关,C=1:

光标显示,C=0:

//光标不显示.B=1:

光标闪烁,B=0:

光标不闪烁。

//说明:

这里的设置是显示开,不显示光标,光标不闪烁,设置字为0x0c。

write_com(0x06);

//写一个字符后地址指针加1I/D=1:

写入新数据后光标右移。

I/D=0:

//写入新数据后光标左移。

S=1:

显示移动。

S=0:

显示不移动。

write_com(0x01);

//显示清零,数据指针清零

for(i=0;

i<

(sizeof(table)—1);

i++)

//第一行写sizeof判断数据类型长度符的关键字

write_com(0x80+i);

//找地址

write_data(table[i]);

//写数据

for(i=0;

i〈(sizeof(table1)-1);

i++)//第二行写

{

write_com(0x80+0x40+i);

//写指令P0=com

write_data(table1[i]);

miao=59;

fen=59;

shi=23;

ri=1;

yue=1;

nian=2018;

TMOD=0x01;

//time0作为定时器工作在模式1下

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

//中断20次为1s

EA=1;

//开启总中断

ET0=1;

//开启time0中断

TR0=1;

//启动time0

voidwrite_sfm(ucharadd,ucharnum)//时分秒函数

sh=num/10;

//分离出十位

ge=num%10;

//分离出个位

write_com(0x80+0x40+add);

//第二行数据指针位置调整

write_data(0x30+sh);

//更改显示数据的十位0

write_data(0x30+ge);

//更改显示数据的个位

voidtimer0()interrupt1//time0中断

TH0=(65536—50000)/256;

//重装初始值

TL0=(65536—50000)%256;

count++;

if(count==20)//20次到则满一秒

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);

voidkeyscan()//键盘扫描

if(s1==0)//按下S1

if(s1==0)

num1++;

while(!

s1);

//等待释放

if(num1==1)

TR0=0;

//关中断

write_com(0x0e);

//显示光标,不闪烁

write_com(0x80+0x40+0x0b);

//数据指针移动到秒的个位处

write_com(0x0f);

//显示光标,闪烁

if(num1==2)

write_com(0x80+0x40+0x08);

//指针移到到分钟的个位处

if(num1==3)

write_com(0x80+0x40+0x05);

//指针移到到小时的个位处

if(num1==4)

num1=0;

//清零

write_com(0x0c);

//重新显示

TR0=1;

//重新启动计时

if(num1!

=0)//按下S2则选择时/分/秒加1

{

if(s2==0)

s2);

if(num1==1)

Delay(20);

miao++;

if(miao==60)

write_com(0x80+0x40+0x0a);

fen++;

fen=0;

write_com(0x80+0x40+0x07);

//分的地址

shi++;

shi=0;

write_sfm(4,shi);

write_com(0x80+0x40+0x04);

=0)

if(s3==0)//按下S3则选择时/分/秒减1

if(s3==0)

while(!

s3);

Delay(20);

miao--;

if(miao==—1)

fen—-;

if(fen==-1)

write_com(0x80+0x40+0x07);

shi——;

if(shi==-1)

shi=23;

write_sfm(4,shi);

write_com(0x80+0x40+0x04);

if(s4==0)//确定按键

if(s4==0)

s4);

voidmain()

init();

while

(1)

keyscan();

盐城工学院

姓名

设计

课题

名称

比例

审核

图号

A4

日期

图名

系统电路原理图

共1张

第1张

附录2:

附录3:

元器件清单

1.STC89C52单片机1块

LCD602显示器1个

1K电阻1个

7。

102排阻1个

8。

12M晶振1个

9.30pF电容2个

10。

10μF电解电容1个

11.排针,导线若干

12。

轻触按钮4个

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2