LCD显示电子时钟设计.docx

上传人:b****6 文档编号:8365304 上传时间:2023-01-30 格式:DOCX 页数:11 大小:303.92KB
下载 相关 举报
LCD显示电子时钟设计.docx_第1页
第1页 / 共11页
LCD显示电子时钟设计.docx_第2页
第2页 / 共11页
LCD显示电子时钟设计.docx_第3页
第3页 / 共11页
LCD显示电子时钟设计.docx_第4页
第4页 / 共11页
LCD显示电子时钟设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LCD显示电子时钟设计.docx

《LCD显示电子时钟设计.docx》由会员分享,可在线阅读,更多相关《LCD显示电子时钟设计.docx(11页珍藏版)》请在冰豆网上搜索。

LCD显示电子时钟设计.docx

LCD显示电子时钟设计

简单控制系统设计与实现学年设计任务书

学院

计算机与信息工程学院

专业

网络工程

课程名称

简单控制系统设计与实现学年设计

题目

LCD显示的电子时钟设计

完成期限

自2015年6月25日至2015年7月10日共2周

一、项目的目的

进一步巩固已学习的理论知识,理论联系实践,增强动协作能力,运用所学知识解决实际生活中遇到的问题,使学生具有初步的单片机系统设计与应用能力。

(1)综合运用《单片机原理与应用》、《数字电路》等课程的内容,为以后的工作奠定基础。

(2)学会使用PROTEUS和KEIL等软件。

(3)了解单片机开发全过程。

二、项目任务的主要内容和要求

使用文字型LCD显示器显示当前时间,显示格式为“时时:

分分:

秒秒”。

用4个功能键操作来设置当前时间。

功能键K1~K4功能如下。

K1——进入设置现在的时间。

K2——设置小时。

K3——设置分钟。

K4——确认完成设置。

程序执行后工作指示灯LED闪烁,表示程序开始执行,LCD显示“00:

00:

00”,然后开始计时。

三、项目设计(研究)思路

(1)查找与LCD显示的电子时钟设计设计相关的文献资料。

(2)根据所查阅的文献资料,完成系统的总体设计方案,并根据设计要求进行单片机等硬件芯片的选型。

(3)根据系统的总体设计方案,完成硬件电路接口连接和软件模块的设计,硬件电路接口连接主要是电子时钟接口电路连接、单片机最小系统等,软件主要包括显示模块、控制模块等。

(5)在软硬件设计好的基础上,进行软硬件的调试。

并进行实物连接。

四、具体成果形式和要求

基于单片机的LCD显示的电子时钟设计系统一份。

学年设计报告一份。

起止日期

工作内容

2015.6.25~2015.6.30

搜集资料,构建主体思路,绘制仿真电路图。

2015.7.1~2015.7.5

编写代码并调试。

2015.7.5~2015.7.10

在单片机中写入程序,准备文档。

[1].刘同法,陈忠平.单片机基础与最小系统[M].北京航空航天大学出版社,2007.

[2].张毅刚.单片机原理与应用[M].高等教育出版社,2009.

[3].马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003.

[4].李全利,迟荣强.单片机原理及接口技术[M].高等教育出版社,2004.

 

指导教师

意见

(签字):

年月日

系(教研室)主任意见

(签字):

年月日

 

简单控制系统设计与实现学年设计说明书

 

学院名称:

计算机与信息工程学院

班级名称:

学生姓名:

学号:

题目:

LCD显示的电子时钟设计

指导教师

姓名:

起止日期:

2015.6.25~2015.7.10

 

第一部分:

正文部分

一、选题背景

当今时代是一个知识爆炸的时代,新科技、新技术、新产品层出不穷,电子技术的发展尤为迅速,它充斥在我们的日常生活中。

随着科学技术的发展和社会的进步,单片机已成为当今计算机应用中空前活跃的领域,人们对数字钟的要求也越来越高,传统的时钟已经不能满足人们的需求。

数字电子时钟是采用数字电路实现对时,分,秒数字显示的装置,广泛应用于车站,码头和办公室等公共场所,成为人们生活中不可或缺的必需品,研究数字时钟及扩大其应用,对现实生活有极其重要的意义。

单片机的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路和数字电路实现的大部分功能,现在单片机通过软件就可以实现了,这种软件代替硬件的控制技术又叫做微控制技术,是传统控制技术的一次革命。

而单片机模块中最常见的数字时钟相对机械时钟来说,有更高的准确性和直观性,且更方便更快捷,使用寿命也远远大于机械时钟,所以得到广泛的应用。

二、设计理念

本次设计以AT89C51单片机为核心,通过编写时钟程序,实现在LCD上的显示。

此编程的核心在于定时器中断及循环往复判断是否有按键操作,而且每个按键的操作都会在LCD显示器上做出相应的反应。

本次设计采用的方案完全用软件实现数字时钟,原理:

在单片机内部存储器设三个字节分别时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节加1;若分值达到60,则将其清零,并将相应的时字节加1;若时值达到24,则将其清零。

该方案的特点是硬件电路简单,缺点是在每次执行程序时,都要对定时器重新赋值,因此该时钟精度不高。

并且程序的执行与时钟的显示是同步进行的,当程序不执行时,时钟也会停止工作。

三、电路硬件设计部分

3.1基于单片机的电子时钟基本框图

基于单片机电子时钟总体框图,如下图3-1所示,总体结构包括单片机主控电路,按键电路,LCD显示电路,晶振与复位电路,蜂鸣器电路电路,还有电源。

图3-1电子时钟基本框图

3.2单片机AT89C51

AT89C51[1]有以下标准功能:

32可编程I/O线,片内振荡器和时钟电路,可编程串行通道,5个中断源,低功耗的闲置和掉电模式,4K字节可编程闪烁存储器,128*8位内部RAM两个16位定时器/计数器。

 

AT89C51具有如下特性:

全静态工作:

0Hz-24Hz,具有128*8位内部RAM,数据保留时间10年,具有4k自节可编程FLASH存储器,可编程串行通道,具有5个中断源。

AT89C51部分引脚功能:

(1)P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

  (2)P1口(P1.0-P1.7)是一个带有内部提升电阻的8位准双向I/O口。

能驱动(吸收或输出电流)四个LSTTL负载。

  (3)P2口(P2.0-P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。

P2口可以驱动(吸收或输出电流)四个LSTTL负载。

  (4)P3口(P3.0-P3.7)是一个带有内部提升电阻的8位准双向I/O口。

能驱动(吸收或输出电流)四个LSTTL负载。

3.3LCD1602

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

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

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

3.4晶振电路

基于单片机的电子时钟晶振电路,如图3-2所示。

             图3-2晶振电路

晶体振荡器电路[3]给数字钟提供一个频率稳定在12Hz的方波信号,它可以保证数字时钟的走时准确及稳定,无论什么样式的电子时钟都会使用晶体振荡器电路电路,是单片机最小系统的重要组成部分。

3.4按键电路

基于单片机的电子时钟按键功能电路,如图3-3所示。

             图3-3按键电路

按键电路跟显示电路一样,采用扫描方式,并巧妙利用显示时的数码管驱动的位置信号,也就是在显示的同时,判断相应按键的状态。

判断的方法是在显示某一数码管时,判断U1的P3.7的状态,如果P3.7为高电平,说明没有按键按下,如果P3.7为低电平,则说明相应的按键按下,这时,通过读回U1的P3口中P3.3—P3.5的值,就可判断是那个按键按下,然后调用相应的处理程序进行处理。

按键需要四个,它们分别实现的功能是K1——进入设置现在的时间。

K2——设置小时。

K3——设置分钟。

K4——确认完成设置。

程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:

00:

00”,然后开始计时,时间的调整按递增的方式增加,且调整时不对其他时间的显示产生干扰,用单片机的4个I/O接收控制信号。

3.5显示电路

电子时钟显示电路,如图3-4所示。

               图3-4显示电路

单片机的P0.1—P0.7与 LCD的D0-D7相连,通过单片机的P0.1-P0.7将要显示的字符输入译码器,经译码器编译后在LCD输出相应的字符,LCD的显示采用扫描方式。

3.5蜂鸣器电路

其硬件原理图如下图3-5所示。

此电路用于整时提示。

SPEAKER与P1.2口相连,当SPEAKER输出高电平时蜂鸣器不响,而SPEAKER输出低电平时蜂鸣器发出响声。

只需控制SPEAKER输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声音。

          图3-5蜂鸣器电路

四、软件设计

4.1软件需要完成的功能:

(1)显示时间,通过对程序的调节,在LCD上显示时间。

(2)调节时间,通过对按键的调节,实现对时钟的调节。

具体为按下K1,进入设置现在的时间;按下K2,调节小时;按下K3,设置分钟;按下K4,确认完成设置。

4.2系统总流程图

软件程序从开始到执行,先初始化各个寄存器,通过扫描按键来决定是否设定参数来执行相应的功能程序[4],进而在LCD上显示,如图4-1所示。

             图4-1系统流程图

4.4中断程序

时钟的最小计时单位是秒,使用定时器的方式1,最大的定时时间也只能达到131ms。

在这里把定时器的定时时间定为50ms,这样,计数溢出20次即可得到时钟的最小计时单位─秒。

计数20次可以用软件实现,对定时器溢出次数进行计数,计满20次即为1秒。

从秒到分,从分到时,以及从时到天都是通过软件累加并进行比较的方法实现的。

voidtimer0(void)interrupt1//T0中断函数,50ms执行一次

{

TH0=0x4c;//重新给TH0赋值

t0++;t0%=20;//20,一秒钟

if(t0==0){

new_s=1;LED=~LED;//~是按位取反

}

if(modify)LED=0;

}

4.5按键程序

定义四个按键,它们分别实现的功能是K1——进入设置现在的时间。

K2——设置小时。

K3——设置分钟。

K4——确认完成设置。

ucharread_key(void)

{

ucharx1,x2;//定义两个uchar类型的变量x1,x2

KEY_IO=255;//初始化KEY_IO

x1=KEY_IO;//将KEY_IO赋值给x1

if(x1!

=255){

delay(100);//延时

x2=KEY_IO;

if(x1!

=x2)return255;//判断

while(x2!

=255)x2=KEY_IO;

if(x1==0x7f)return0;//读取地址返回数值

elseif(x1==0xbf)return1;

elseif(x1==0xdf)return2;

elseif(x1==0xef)return3;

elseif(x1==0xf7)return4;

}

return255;

}

主程序中调用按键程序显示子程序。

Key=read_key();//读出按键

switch(Key){//分别处理四个按键

case0:

modify=1;break;//开始设置

case1:

if(modify){hour++;hour%=24;W_BUFF();break;}

case2:

if(modify){min++;min%=60;W_BUFF();break;}

case3:

modify=0;break;//设置结束

}

五、结果分析

用PROTEUS软件画出电路图,将程序生成的“.hex”[4]文件导入到单片机中,点击仿真按钮,程序开始运行,电路开始正常工作,LCD数字时钟显示如下图5-1所示。

   图5-1数字时钟

程序执行后工作指示灯LED[2]闪动,当出现整点时,蜂鸣器开始整点报时。

开始进入设置时间,按下K1,工作指示灯LED一直亮,说明可以设置时间;按下K2时,小时的个位数加1,当加到9时,十位数加1,当十位数加到2时,十位数清零;按下K3时,分钟的个位数加1,当加到9时,十位数加1,当十位数加到6时,十位数清零;按下K4时,工作指示灯LED闪动,说明设置结束,返回到正常显示的状态。

仿真结果如下图5-2所示。

图5-2总体仿真图

六、总结

这次课程设计采用的是AT89C51单片机,而接口电路则是一个数字时钟,经过反反复复的修改、调试,程序终于达到预期功能。

通过PROTEUS仿真演示也达到预期的功能。

该设计采用了多种芯片,程序虽然不是很长但有很多接口需要定义,而且实现起来也比较麻烦。

虽然关于LCD的显示实验在之前做过,但只是在屏幕上显示时间并没有按键调节,所以在做实验的过程中遇到很多问题,通过上网查询,请教同学和老师都顺利解决了

通过本次单片机课程设计,系统的了解了电子时钟的设计过程,尤其是软、硬件的设计方法,掌握了按键显示电路的基本功能及编程方法,了解了按键电路和显示电路的一般原理,还掌握了有定时器的使用和中断程序的编程方法,提高了自身的实践能力。

还积累了很多宝贵的经验,比如说,在I/O口要保证标准的高电平,不能用悬空来模拟,连接电路图很重要,尤其是两条线之间的节点不能忘记。

只有通过实际动手才能发现自己的不足。

第二部分:

参考文献

[1]刘同法,陈忠平.单片机基础与最小系统[M].北京航空航天大学出版社,2007.

[2]张毅刚.单片机原理与应用[M].高等教育出版社,2009.

[3]马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003.

[4]李全利,迟荣强.单片机原理及接口技术[M].高等教育出版社,2004.

 

学生签名:

填表日期:

年月日

第三部分:

指导教师评语

 

第四部分:

成绩评定

 

指导教师签名:

填表日期:

年月日

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

当前位置:首页 > 高等教育 > 工学

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

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