《LCD显示电子时钟设计》由会员分享,可在线阅读,更多相关《LCD显示电子时钟设计(13页珍藏版)》请在金锄头文库上搜索。
1、简单控制系统设计与实现学年设计任务书学院计算机与信息工程学院专业网络工程课程名称简单控制系统设计与实现学年设计题目LCD显示的电子时钟设计完成期限自2015年6月25日至2015年7月10日共2周一、项目的目的进一步巩固已学习的理论知识,理论联系实践,增强动协作 能力,运用所学知识解决实际生活中遇到的问题,使学生具有初 步的单片机系统设计与应用能力。内(1)综合运用单片机原理与应用 内容,为以后的工作奠定基础。、数字电路等课程的容(2)学会使用PROTEU和KEIL等软件。及(3) 了解单片机幵发全过程。任二、项目任务的主要内容和要求务使用文字型LCD显示器显示当前时间,显示格式为“时时: 分
2、分:秒秒”。用4个功能键操作来设置当前时间。功能键K1K4功能如下。K1进入设置现在的时间。K2设置小时。K3设置分钟。K4确认完成设置。程序执行后工作指示灯 LED闪烁,表示程序幵始执行,LCD显示“ 00: 00: 00”,然后幵 始计时。三、项目设计(研究)思路(1) 查找与LCD显示的电子时钟设计设计相关的文献资料。(2) 根据所查阅的文献资料,完成系统的总体设计方案,并根据 设计要求进行单片机等硬件芯片的选型。(3) 根据系统的总体设计方案,完成硬件电路接口连接和软件模 块的设计,硬件电路接口连接主要是电子时钟接口电路连接、单 片机最小系统等,软件主要包括显示模块、控制模块等。(5)
3、在软硬件设计好的基础上,进行软硬件的调试。并进行实物 连接。四、具体成果形式和要求基于单片机的LCD显示的电子时钟设计系统一份。学年设计报告一份。进起止日期工作内容度20156252015630搜集资料,构建主体思路,绘制仿真电路安图。排2015.7.12015.7.5编写代码并调试。2015.7.52015.7.10在单片机中写入程序,准备文档。主1.刘同法,陈忠平.单片机基础与最小系统M.北京航空航天要大学出版社,2007.参2.张毅刚.单片机原理与应用M.高等教育出版社,2009.考3.马忠梅等.单片机的C语言应用程序设计M.北京航空航天大学出版社,2003.资4.李全利,迟荣强.单片机
4、原理及接口技术M.高等教育出版料社,2004.指导教师(签字):年月 日意见系(教研(签字):年月 日室)主任意见简单控制系统设计与实现学年设计说明书学院名称:计算机与信息工程学院班级名称:学生姓名:学 号:题 目 LCD显示的电子时钟设计 指导教师姓 名:起止日期:20156252015.7.10第一部分:正文部分一、选题背景当今时代是一个知识爆炸的时代,新科技、新技术、新产品层出不穷,电子技 术的发展尤为迅速,它充斥在我们的日常生活中。随着科学技术的发展和社会的进 步,单片机已成为当今计算机应用中空前活跃的领域,人们对数字钟的要求也越来 越高,传统的时钟已经不能满足人们的需求。数字电子时钟
5、是采用数字电路实现对 时,分,秒数字显示的装置,广泛应用于车站,码头和办公室等公共场所,成为人 们生活中不可或缺的必需品,研究数字时钟及扩大其应用,对现实生活有极其重要 的意义。单片机的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计 方法。从前必须由模拟电路和数字电路实现的大部分功能,现在单片机通过软件就 可以实现了,这种软件代替硬件的控制技术又叫做微控制技术,是传统控制技术的 一次革命。而单片机模块中最常见的数字时钟相对机械时钟来说,有更高的准确性 和直观性,且更方便更快捷,使用寿命也远远大于机械时钟,所以得到广泛的应用。二、设计理念本次设计以AT89C51单片机为核心,通过编
6、写时钟程序,实现在LCD上的显示。 此编程的核心在于定时器中断及循环往复判断是否有按键操作,而且每个按键的操 作都会在LCD显示器上做出相应的反应。本次设计采用的方案完全用软件实现数字时钟,原理:在单片机内部存储器设三个字节分别时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节加1;若分值达到60,则将其清零,并将相应的时字节加1;若时值达 到 24,则将其清零。该方案的特点是硬件电路简单,缺点是在每次执行程序时,都 要对定时器重新赋值,因此该时钟精度不高。并且程序的执行与时钟的显示是同步 进行的,当
7、程序不执行时,时钟也会停止工作。三、电路硬件设计部分3.1 基于单片机的电子时钟基本框图基于单片机电子时钟总体框图,如下图 3-1 所示,总体结构包括单片机主控电 路,按键电路,LCD显示电路,晶振与复位电路,蜂鸣器电路电路,还有电源。图 3-1 电子时钟基本框图3.2 单片机 AT89C51AT89C511 有以下标准功能: 32 可编程 I/O 线,片内振荡器和时钟电路,可编程 串行通道,5个中断源,低功耗的闲置和掉电模式,4K字节可编程闪烁存储器,128*8 位内部RAM两个16位定时器/计数器。?AT89C51具有如下特性:全静态工作: 0HZ-24Hz,具有128*8位内部RAM数据
8、 保留时间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 口可以驱动(吸收或输出电
9、流)四个LSTTL负载。(4)P3 口( P3.0 - P3.7 )是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。3.3 LCD16021602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的 点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都 可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符 间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM显示效果也不好)。1602LCD是指显示的内见下方容为 16X2,即可以显示两行,每行 16个字符液晶 模块(显示字
10、符和数字)。1602液晶模块内部的字符发生存储器(CGROM)经存储了 160个不同的点阵字 符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名 等,每一个字符都有一个固定的代码,比如大写的英文字母“ A”的代码是01000001B(41H),显示时模块把地址 41H中的点阵字符图形显示出来,我们就能看到字母“ A”。3. 4晶振电路基于单片机的电子时钟晶振电路,如图3-2所示。图3-2晶振电路晶体振荡器电路3给数字钟提供一个频率稳定在12Hz的方波信号,它可以保证数字时钟的走时准确及稳定,无论什么样式的电子时钟都会使用晶体振荡器电路电 路,是单片机最小系统的重要组成部分
11、。3.4按键电路基于单片机的电子时钟按键功能电路,如图3-3所示。图3-3按键电路按键电路跟显示电路一样,采用扫描方式,并巧妙利用显示时的数码管驱动的位置信号,也就是在显示的同时,判断相应按键的状态。判断的方法是在显示某一数 码管时,判断U1的P3.7的状态,如果P3.7为高电平,说明没有按键按下,如果 P3.7为低电平,则说明相应的按键按下,这时,通过读回U1的P3 口中P3.3 P3.5的值,就可判断是那个按键按下,然后调用相应的处理程序进行处理。按键需要四个,它们分别实现的功能是K1进入设置现在的时间。K2设置小时。K3设置分钟。K4确认完成设置。程序执行后工作指示灯 LED闪动,表示程
12、序幵始执行,LCD显示“ 00: 00: 00”,然后幵始计时,时间的调整按递增 的方式增加,且调整时不对其他时间的显示产生干扰,用单片机的4个I/O接收控制信号。3.5显示电路电子时钟显示电路,如图 3-4所示。图3-4显示电路单片机的P0.1 P0.7与?LCD的DO D7相连,通过单片机的 P0.1-P0.7 将要显 示的字符输入译码器,经译码器编译后在 LCD输出相应的字符,LCD的显示采用扫 描方式。3.5蜂鸣器电路其硬件原理图如下图3-5所示。此电路用于整时提示。 SPEAKER! P1.2 口相连, 当SPEAKE输出高电平时蜂鸣器不响,而 SPEAKE输出低电平时蜂鸣器发出响声
13、。 只需控制SPEAKE输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声 音。图3-5蜂鸣器电路四、软件设计4.1软件需要完成的功能:(1) 显示时间,通过对程序的调节,在LCD上显示时间。(2) 调节时间,通过对按键的调节,实现对时钟的调节。具体为按下K1,进入 设置现在的时间;按下 K2,调节小时;按下 K3,设置分钟;按下 K4,确认完成设 置。4.2系统总流程图软件程序从幵始到执行,先初始化各个寄存器,通过扫描按键来决定是否设定参 数来执行相应的功能程序4,进而在LCD上显示,如图4-1所示。图4-1系统流程图4.4中断程序时钟的最小计时单位是秒,使用定时器的方式1,最大的定时
14、时间也只能达到 131 ms。在这里把定时器的定时时间定为50ms,这样,计数溢出 20次即可得到时钟的最小计时单位一秒。计数20次可以用软件实现,对定时器溢出次数进行计数,计满20次即为1秒。从秒到分,从分到时,以及从时到天都是通过软件累加并进行 比较的方法实现的。void timerO(void) interrupt 1 /TO中断函数,50ms 执行一次TH0 = 0x4c;/ 重新给TH0赋值t0+; t0 %= 20;20,一秒钟if(t0 = 0) n ew_s = 1; LED =LED;是按位取反if(modify) LED = 0; 4.5按键程序定义四个按键,它们分别实现的功能是K1进入设置现在的时间。K2设置小时。K3设置分钟。K4确认完成设置。uchar read_key(void)uchar x1, x2;/定义两个ucharKEY_IO = 255;/初始化KEY_IOx1 = KEY_IO;/将KEY_IO赋值给if (x1 != 255) delay(100);/延时类型的变量x1,x2x1x2 = KEY_IO;