多功能智能时钟系统设计_第1页
多功能智能时钟系统设计_第2页
多功能智能时钟系统设计_第3页
多功能智能时钟系统设计_第4页
多功能智能时钟系统设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 多功能智能时钟系统设计作者姓名:XXX专业名称:XXXX指导教师:XX讲师基于LCD的多功能智能时钟系统设计摘要随着对时间的要求越来越精确,人们创造了时钟。现在,电子时钟更是人类最基本,最必不可少的一个工具。在上个世纪,电子时钟大多数采用的是分离元件。而这样制造出来的电子时钟体积庞大,使用起来也很麻烦。随着科技和电子行业的飞速发展,现在的电路都是高度集成的。不仅节约空间资源,成本也很低。然电子产品给我们的生活带来了更多的便利。本设计的主控系统采用的是单片机,利用它自带的定时器来进行设计。单片机具有成本低廉、体积小、操作简便等优点。它能够形成各式各样的自动控制系统。设计中将采用单片机中最为典型

2、也是我们在课堂上学习过的51系列的单片机,本次设计以STC89C51单片机为核心,以时钟芯片DS1302为依托,借助外围少量的按键电路实时校准,通过LCD1602液晶显示器来显示日期和时间。在程序的部分,我采用的是C语言来进行编写。使用C语言更有利于我的理解,编写以及修改。本论文主要从系统设计方案的选择,硬件、软件部分的介绍说明以及实物的演示上来详细的描述了整个设计的大致内容。设计主要研究的是智能时钟以及日历显示功能。我们利用了单片机的控制能力和时钟芯片的及时通信的特点,按键来控制时间和日历在液晶显示屏上的显示。最后,在整点的时候通过蜂鸣器进行报时。关键词:单片机 电子时钟 C语言- III

3、-AbstractWith the demand for more precise, people create a clock. Now, the electronic clock is human the most basic, most essential as a tool. In the last century, most electronic clock use is separation of components. And this produced electronic clock bulky, use is also very troublesome. Along wit

4、h the rapid development of science and technology and electronic industry, now circuit are height integrated. Not only save space resource, cost is also very low. Although electronic products to our life brought more convenience. Procedures will be used in the design of the main control system is a

5、single chip, using its own timer design. SCM has low cost, the volume is small, easy to operate, etc. It can form a variety of automatic control system. The design uses a microcontroller is the most typical and I were in the classroom study of 51 series microcontroller, the design STC89C51 microcont

6、roller as the core to the clock chip DS1302 as the basis, by means of a peripheral small amounts of key circuit real-time calibration through LCD1602 LCD display to display the date and time. In part, I use C language to write. The use of C language is more conducive to my understanding, writing and

7、 revision. This paper mainly from the selection of the design scheme of the system, hardware, software part of the description and physical demonstration up detailed describes the general content of the whole design. Design is the main research is intelligent clock and calendar display function. We

8、use the MCU control can timely communication of power and clock chip keys to control the time and calendar on the LCD screen display. Finally, when the whole point of the buzzer timekeeping.Keywords: single chip microcomputer, electronic clock, C language目录摘要IAbstractII目录III前言11 论文设计概述21.1 设计任务21.2

9、设计要求21.3 系统整体框图22 系统方案选择42.1 总体方案设计42.2 主要模块的方案设计42.2.1 主控芯片方案42.2.2 显示模块方案53 系统模块电路介绍及设计63.1 单片机模块63.1.1 单片机基础知识介绍63.1.2 STC89C51介绍73.1.3 单片机最小系统电路93.2 时钟模块113.2.1 DS1302介绍113.2.2 DS1302电路原理133.3 液晶显示模块133.3.1 LCD1602引脚及说明133.3.2 LCD1602电路原理153.4 蜂鸣器报警模块153.5 矩形按键电路模块164 系统软件设计184.1 软件设计流程184.2 系统设

10、计程序214.2.1 主程序224.2.2 LCD1602驱动程序224.2.3 DS1302驱动程序225 系统仿真结果及说明235.1 仿真软件介绍235.1.1 Protues软件介绍235.1.2 Keil软件介绍245.2 时钟系统的仿真256 系统实物调试及结果276.1 系统实物276.1 系统实物调试结果及说明27总结30参考文献31致谢32附件1 主程序33附件2 LCD1602驱动程序36附件3 DS1302驱动程序39前言现在,电子产业随着科学技术的发展而变得日益强大。单片机的集成度也越来越高,体积也越来越小。技术的进步促使人们对智能闹钟的研究和应用的重视度极度提高,这样

11、人们对时钟设备的要求也越来越高,又加上微处理器ARM、FPGA、DSP的广泛应用,电子技术更是得到了极大地提高。单片机的使用是十分灵活的,可以用于很多方面,论文中用到STC89C51的优势是:功耗十分的低、成本便宜、硬件设计简单,工业控制、传感器技术,数据采集、智能控制、仪器仪表等领域中。集成电路是电子工业时代的重要发明,其中以单片机的出现最为明显,它的出现使自动控制和智能控制各方飞速的发展。单片机智能时钟的优点是体积小、价格低、可靠性高、功能全。我们广泛的用它在各种智能控制仪器定时与时间测量中,使这些仪器到达高度的自动化,键盘取代了传统的智能仪器中那些开关和旋钮,测试人员通过选择相应的按键来

12、测试,这样就会省掉很多麻烦的人工调试过程。智能仪器能够完成自我自动校准,自动选择合适的测量范围,大部分能自动调整测试点,这样就给我们带来了极大方便,同时精度也相应的提高了几百倍。另外,在电子科技领域,时间作为重要的参数之一,许多电参数的测量方案、结果都与他的测量有着不可分割的密切关系,所以他被广泛的应用在科研、工业控制、教学、测量仪器中。- 31 -1 论文设计概述1.1 设计任务利用Proteus格式的单片机硬件编程平台上的时钟芯片DS1302和液晶显示器LCD1602实现一个“多功能智能时钟系统”。1.2 设计要求1. 设置“启动”、“停止”、时钟显示功能设置”、“日历显示功能设置”等按键

13、,要求上电初始蜂鸣器鸣叫、继电器、电动机、数码管都不工作,按下启动键后开始进入“起始状态”,此时LED灯按500ms间隔全亮全灭,硬件其余部件均不工作,只有在按下启动键后,再按下“时钟显示功能设置”和“日历显示功能设置”才进入“时钟显示”和“日历显示”状态,此时在LCD1602屏幕上显示相应的时钟和日期。2. 要求显示数字的格式为:比如2012年5月2日的显示格式为02-05-12;12点25分30秒的显示格式为12-25-30。3. 扩展该智能时钟系统的功能,实现每到59分57秒开始进行整点报时,蜂鸣器鸣响3秒钟。1.3 系统整体框图整个系统主要由六部分组成:主控模块,时钟模块,矩阵按键模块

14、,LED模块,蜂鸣器报警模块,液晶显示模块。系统整体框图如图1.1所示。LED电路STC89C51时钟芯片DS1302液晶LCD1602矩阵电路蜂鸣器电路图1.1 系统整体框图2 系统方案选择2.1 总体方案设计拿到此次设计题目之后,我通过翻看以前的教材,借阅书籍收集了大量的资料,并在反复的论证以及老师的建议下,确定了最终的系统设计方案。我采用的是STC系列的89C51做主控芯片,时钟芯片采用的是DS1302,通过矩阵键盘来对系统进行操作,最后再以LCD1602来做为液晶显示输出结果。2.2 主要模块的方案设计介绍主控芯片模块以及显示模块的方案设计。2.2.1 主控芯片方案方案一:如果选用我们

15、熟悉的STC89C51单片机当作主控芯片。这款芯片的价钱低,使用起来较为方便。它的功能能够满足本次设计的需求。这款芯片适合此次设计。方案二:如果选用市面上的MSP430F149系列单片机当作我们的主控芯片。这类单片机的运算速度很快,是一款内置12位ADC的高性能且能耗低的16位单片机。但是因为它的成本高,并且它是用TPFQ来进行封装的,所以得利用PCB版图来制版,不适合我们手工焊接。这些种种原因极大的提高了我们此次设计的难度和成本。通常,这类单片机适用于手持等设备,不适合我们开发项目。方案三:如果选用ARM公司的STM32系列当作主控的芯片。此系统中没有必用到这么高级的主控。因为我们这次毕业设

16、计所要用到的系统主控芯片必须要满足我们设计要求的运算能力,还要有成本低廉,功耗低,体积小,使用起来方便等特点。所以我们不管是从价格还是我们芯片的各项性能指标上,讨论得出第一种方案是最适合我们此次的设计方案。2.2.2 显示模块方案方案一:选用LCD1602字符液晶作为显示模块,它不仅成本相对低廉之外,它还有利于用户控制。因为它可以在液晶上面显示数字与字符的信息。同时,它在后期驱动程序的编写上也较为容易,满足本次设计要求。 方案二:选用LCD128x64液晶作为显示的模块。它可以实现字符的显示,也可以显示出图片,但是图片色彩只能是黑白,且精度不高,而且成本也很高。此次设计中不用对图片进行显示,所

17、以对整个显示的设计效果不适合。方案三:选择主控为TFT的带字库的320x240的彩色液晶作为显示模块 ,可以显示出我们经常使用的的汉字、ASCII码、并且他的液晶屏的分辨率高、同时也可以描绘出彩色的图片。但在此系统中我们只需要简单的字符显示,且考虑到价格的因素,所以不考虑用此芯片作为显示。方案四:采用数码管显示。数码管的设计复杂且后期驱动程序难写,还有连接时需要很多的I/O口。不适合开发此项目。综合以上方案,我们选择了方案一作为显示器。3 系统模块电路介绍及设计本设计的系统模块电路大致分为以下几部分,下面为大家分别来介绍这几个模块电路的主要信息。3.1 单片机模块单片机是一个微型的计算机系统。

18、它是一种高度集成的芯片。它将CPU,RAM,ROM,定时器、中断系统、计数器等功能集成起来。由于单片机的高度集成,体积小,实用性强,运算效率高,价格便宜以及使用起来较为方便。所以本次设计中,系统采用STC89C51单片机作为主控芯片。3.1.1 单片机基础知识介绍1. 单片机的定义单片机是一个高度集成了CPU,RAM,ROM,内部和外部总线的微型且完整的计算机系统。单片机是通过导入程序来实现指定的功能。所以单片机也是十分的智能化。虽然单片机只是一块小小的芯片,但是它却拥有价格便宜,运算效率高,实用性强,性能好,集成度高,体积小,使用方便,质量轻等优点。所以,在学习和生产中,单片机受到了大量的使

19、用者的青睐。单片机在工业发展中被使用的相当广泛。单片机从早期的8位或4位发展到16位。随着科技的飞速发展,在90年代,16位的单片机迅速的取代了16位的单片机,并且延用至今。到现在为止,32位单片机晶振的频率已经超过了300兆赫兹,价格也越来越便宜,得到了广泛的应用。单片机也因为难度不大,易于理解,使用简单等原因作为我们电子专业的一个非常重要的学习和实践的内容。在本次的设计中,采用STC89C51单片机做出的一个多功能智能时钟系统,使用C语言编程,将程序导入到系统内,再反复进行调试。最终实现所要求的功能。2. 单片机的运用单片机不仅应用于我们的教学当中,在我们生活生产的各种电子产品中,都能看到

20、单片机的影子。应用领域大致有以下几点:一、由于单片机的功耗小,体积小,效率高,使用起来也十分的方便,所以在各类的仪器仪表和精密的测量设备中,比如说示波器等,都有单片机的存在。二、同时,单片机的用途在医疗领域中的使用情况也是十分的常见。比如说是血糖仪,超声仪,血液细胞分析仪,血压计等等。三、单片机在我们家电里面的应用更可谓是无所不在。大到电视机,空调,冰箱,洗衣机,小到照相机,手机,电子秤,计算器都集成有单片机。随着我们的家电越来越智能化。而单片机因为集成度高,可靠性高,功能好,体积小,功耗低等优点,更加受到各个生产厂家的青睐。四、各个商场的智能报警系统,电梯的智能控制以及便民的自助缴费系统等等

21、都是利用单片机可以形成多钟多样的控制系统的特点。所以,在工业领域中,它能够得到广泛的应用和使用者的认可。五、单片机为计算机通信,提供了一个良好的物质条件。比如说在地铁站里,工作人员使用的无线对讲机,各个学校寝室里面使用的交换机还有单元楼下面的呼叫系统等等。可见,单片机对于我们生活生产来说是多么的重要。为我们提供了很大的便利。当然在这次设计的多功能智能时钟系统中,单片机也起到了至关重要的作用,随着科技的发展,单片机的性能也越来越好。不管是在设计还是操作中,都为我带来了很多的便利。3.1.2 STC89C51介绍1. STC89C51的主要特性单片机的主要特性如表3.1所示。表3.1 STC89C

22、51主要特性表2. STC89C51芯片介绍许多硬件设计中都有单片机的存在,因为它编程简单灵活的特点,得到大量用户的认可。STC89C51引脚图如图3.1所示。图3.1 STC89C51引脚图下面介绍一下其中一些引脚功能:Vcc和Vss: Vcc接5V电压,Vss:P20接地。3.1.3 单片机最小系统电路单片机的最小系统电路主要是由晶振电路和复位电路构成。接下来,分别来介绍这两部分电路。1. 晶体振荡电路如果想要单片机能够正常工作的话,我们就得保证晶振能够起振并且使用恰当的晶振电容。在本次设计中,我采用的是11.0592MHz的晶振,和两个大小为33pF的电容。其中,一个的作用是通过XTAL

23、1接口提供谐振频率。另一个则是为了能在XTAL2口输出波形为正弦波的高频信号。晶振电路如图3.2所示。图3.2 STC89C51晶振电路图2. 复位电路除了要保证晶振电路的正确以外,我们还应该关注复位电路的设计是否得当。复位操作就相当于是初始化。在许多的意外情况导致系统出错时,复位操作通常都能够帮我们解决问题。外部复位电路的复位方式分为两种,一种是手动复位,另一种是上电复位。在本次的设计中,我采用的是手动复位的方式。手动复位电路的设计原理和思路比较简单易懂,我们只需要通过按下在VCC和复位端之间的按键来将VCC的正5伏的高电平传入到复位端。只要两边电路保持连通的时间超过10ms,那么单片机就会

24、进入到复位状态。复位电路如图3.3所示。图3.3 STC89C51复位电路复位后,PC=0000H。所以,程序一般会从0000H开始执行。单片机复位时各寄存器的状态如表3.2所示。表3.2 单片机复位时的状态表3.2 时钟模块本次设计中采用的是由美国DALLAS推出的DS1302时钟芯片。3.2.1 DS1302介绍DS1302是由美国一家公司推出的一款能够对时间进行设计的软件,它存储着时间、年月日、闰年读取等功能。和我们日常生活中所使用的电子表差不多。在设计中采用此芯片的主要原因是它的能耗低,且满足实时性。工作电压宽为2.5V5.5V。与主控进行通信时采用三线同步式,数据传送方式独特,能够同

25、时传送多个数据字节。内部存在很多的RAM寄存器,在通信时只需要读取寄存器就可以知道时间等数据信息。因其具有价格便宜,使用简单的特点,所以DS1302是现在在教学中的使用较为流行。在本次设计中,我们使用STC89C51往DS1302里面写入时间来进行时间设置,也从DS1302里面读取出时间,所读取出的时间通过LCD1602显示出来。实现了时钟系统的一个基本功能,我们所使用到的DS1302的功能包括了对年、月、日以及时、分、秒的计时。接下来,我们对DS1302的各个引脚进行具体的说明。引脚如图3.4所示。图3.4 DS1302引脚DS1302的各个引脚的具体功能如表3.3所示。表3.3 DS130

26、2各个引脚的功能3.2.2 DS1302电路原理时钟模块的电路如图3.5所示。图3.5 DS1302电路原理图3.3 液晶显示模块设计中通过液晶显示屏将时钟的年月日及时间显示出来。3.3.1 LCD1602引脚及说明LCD1602的使用方法较为简单方便。我们在画PCB的时候,只需要留一排插针就好了,在焊接实物的时候,只需要将液晶显示器插上去就行了。这一部分,需要我们做的最重要的事就是将驱动程序编写好,能够在显示屏上显示我们想要的内容。由于LCD1602液晶显示器的开发应用简单,所以在本次设计中选择它来作为显示屏是最为合适不过了的。而我们具体采用的是字符型的两行16字的液晶显示器。LCD1602

27、液晶显示器采用了标准的16脚接口。其中引脚如图3.6所示。引脚功能如表3.4所示: 图3.6 LCD1602引脚表3.4 LCD引脚功能 3.3.2 LCD1602电路原理LCD 1602与微处理器的连接电路如图3.7所示。图3.7 LCD1602与微处理器的连接电路其中,在这部分电路设计的时候,我设计了一个滑动变阻器和一个电阻。滑动变阻器的作用是调整LCD1602背光的亮度。电阻则是起到保护整个电路的作用,防止电流过大,造成元器件的损坏。3.4 蜂鸣器报警模块多功能智能时钟系统设计中,添加了整点报时的功能,采用蜂鸣器作声音报警。报警电路如图3.8所示:图3.8 蜂鸣器报警电路3.5 矩形按键

28、电路模块人机界面是智能化设计中必不可少的部分,本设计有两部分的人机界面。LCD1602液晶显示界面,另一部分则是键盘输入采集。本设计中采用矩阵键盘按键对时间值和日期值进行设置。在设计中我们采用单片机来对矩阵按键进行扫描,然后得到相应的值,来加减时间值和日期值。液晶上同时可以看到时间值和日期值的改变。设计中采用一个矩阵键盘,相对来说是十分的简单的,且价格十分的便宜,主控芯片的处理压力不大,满足设计的同时又能合理的利用资源。设计电路图如图3.9所示。图3.9 按键电路4 系统软件设计4.1 软件设计流程本次设计的内容是一个多功能的智能系统。这是一个基于单片机的设计。在编写程序的时候,我们采用的是总

29、分结构。先将主程序编写出来。再根据不同的功能模块进行程序的编写。这样的方式有利于我们后期调试的时候,能够更加快速准确的定位到问题的所在。编写程序之前,应该先画出流程图。理清楚每个功能是怎样通过程序一步一步来实现的。所以流程图对于编程来说是至关重要的。有了流程图,我们的程序该怎么去写都已经一目了然了,大大的提高了我们编程的效率。下面一一来介绍时钟系统中主要模块的程序流程图。图4.1 主程序流程图图4.2 DS1302实时控制芯片流程图图4.3 LCD1602液晶显示控制流程图4.2 系统设计程序本次的时钟系统设计中,编程语言我采用的是C语言。由于之前在课堂上我们专门学习过C语言,对C语言也有一定

30、的了解。再加上C语言相比汇编语言可读性更高,更加利于我们理解。所以,我最终选择C语言作为此次程序的编程语言。在程序设计的时候,因为之前已经将主程序和各个模块的流程图画出来了。所以我们在编写程序的时候为我们带来了很大的便利。有了流程图,加上老师给我的程序模块,再根据需要实现的功能,自己再对程序进行编写。通过Keil软件将我编写的代码编译为机器能够识别的机器码,再利用Protues软件将程序导入到仿真电路图,根据得到的结果来对电路和程序进行修改调整,经过反反复复的修改,最终实现其功能。我们在进行设计的时候也有一定的技巧,比如说,我们先将单片机配置好,再把编写好的LCD驱动程序导进去,看功能是否能够

31、实现。然后再将时钟模块以及其他模块的程序分别导入进去,一一来检验,程序是否能够准确的运行。4.2.1 主程序具体程序参见附录1。4.2.2 LCD1602驱动程序具体程序参见附录2。4.2.3 DS1302驱动程序具体程序参见附录3。 5 系统仿真结果及说明5.1 仿真软件介绍在本次设计中,主要采用的是Protues以及Keil这两款软件,下面会分别来介绍这两款软件。5.1.1 Protues软件介绍Protues是一款由一家英国电子公司开发的,在Windows操作系统上运行的可以对电路进行分析以及对实物进行仿真的软件。这款软件优于其他EDA工具,还有一个更加重要的原因,就是Protues还能

32、够仿真单片机和外围的器件。所以不管是在单片机的开发应用中,还是单片机的教学中,Protues已经成为了仿真的首选软件。Protues除了具有简单且实用性强的ISIS原理布图,ARES PCB布线和SPICE仿真的基本功能外,还能够通过键盘,LED灯等外设让使用者进行与电路的实时交互仿真,以及通过仿真单片机,直接在原理图上导入程序,并且能够得到输出的结果。Protues也为我们提供了大量的使用资源。其中仿真的元件就包含数字,模拟,直流,交流等等,且其数量就上千种。除了丰富的仿真元器件资源,而且还蕴藏了丰富的仿真仪表资源。其中就包括了电压表,电流表,示波器,信号发生器等等。不仅仅是存在了这么多的仿

33、真仪器,而且还具有一个图像显示功能,可以让我们更加直观的看到线路上的信号的变化情况。甚至比实际的示波器具有更多的功能。同时,这些仪器还能提供参数的一个理想状态下的指标,这样我们在使用这款软件时,会更加的便捷。Protues也可以在电路上使用模拟信号和数字信号进行测试。Protues除了强大的功能外,还因其能直观的看见模拟的实物运行的过程和结果,所以不管是在生产应用还是在教学工作中,Protues这款软件使用的情况相当的广泛。并且,这款软件也为使用者们提供了一个十分便利的平台。这让我们在学习的过程中,能够更好地去实践,去创造。在本次设计中,我们便采用了Protues软件对时钟系统进行了仿真。在使

34、用过程中,操作简单易学。而且电路中所需要的元器件在软件的元件库中都能顺利找到。这款软件对我们的原理图的正确性,合理性都进行了检验。导入之前通过Keil编译后的程序,再利用仿真的实验仪器对时间和日历显示,LED闪烁,以及蜂鸣器的整点报时进行了测试。有了这款软件,对元器件的采购又有了新的选择。5.1.2 Keil软件介绍Keil是由美国一家公司研发的MCU软件开发系统。Keil现在是一款主流的集成开发调试工具,它的库函数十分的丰富,功能也很强大。它主要的功能还是我们输入的源程序代码变成机器能够识别的机器码。Keil利用uVision将C编译器,库管理,宏汇编和仿真调试器组合的一个完整的开发方案。我

35、们此次设计使用Keil软件是在Windows XP的环境下运行的。在设计中,我选择的是C语言来进行编写程序。因为在大一的时候专门学习过C语言的课程,所以自己有一定的基础。再加上C语言相较汇编语言,更加简单易懂,便于我们编写。以下是Keil软件具体的操作步骤:(一)新建工程:打开Keil软件,在屏幕上面的菜单选项中点击“工程”,然后在下拉菜单中点击“新建工程”选项。在弹出的文本框内,先选择保存的路径并输入工程文件的名字,点击“保存”。(二)选择单片机型号:在弹出的页面内选择我们本次所采用的型号为“STC89C51”的单片机。然后点击“确定”。(三)新建文件:在屏幕上方的菜单栏点击“新建”,在下拉

36、菜单中点击“新建项目”。再点击“保存”按钮,选择文件名右侧的文本输入框内输入文件并填写正确的扩展名。点击“保存”。(四)将文件添加进工程:在屏幕左侧的文本框内,右键点击工程下的文件夹,在弹出的下拉菜单选项中选择添加文件到*,然后在弹出的文本框内选择之前新建的文件。(五)运行:输入我们之前编好的C语言程序,在屏幕上面的菜单选项中点击“工程”,然后在下拉菜单中点击“建造目标选项”,编译成功后,再点击“调试菜单”,在下拉菜单中点击“开始/停止调试”。(六)调试:点击“调试”按钮,在下拉菜单中点击“运行”,然后再次点击“调试”按钮,在下拉菜单中点击“停止运行”选项,通过寄存器窗口、存储器窗口以及外围设

37、备窗口等就可以看到程序运行后的结果。5.2 时钟系统的仿真首先,使用Altium Designer软件,完成了时钟系统的完整电路图。在老师的指导和帮助下,把电路图修改好。然后在使用Protues软件重新将电路原理图画出来。由于之前已经画过电路图,所以再次画的时候,效率也很高,并且正确性也达到要求。完整电路图如图5.1所示。图5.1 时钟系统电路原理图在完成了电路原理图后,就开始着手准备程序。由于考虑到易用,我们选择的是Keil软件来进行编程。因为这个系统分为几大模块。所以我们的程序也是按照所划分的这些模块来一一进行编写。我们的思路是首先编写主程序,然后再编写LCD程序,时钟程序,报警程序等。将

38、LCD程序编好后,在主程序中调用LCD程序。再将主程序加载到Protues里面的仿真电路里面。观察LCD液晶显示器是否开始工作,再根据实际遇到的一些问题,修改程序,并进行调试。最终,将其功能实现。接下来的时钟程序,报警程序等等也采用同样的方法对其进行仿真和修改。在调试的过程中,我们采用的是一部分一部分的去实现功能。这样做有一个最明显的好处,就是便于我们发现问题。如果我们一开始就将所有程序都写在一起,那么出现问题后,我们很难定位到出现问题的程序具体在哪一部分。程序分开来写也便于我们学习和理解,毕竟在之前的学习中,我们接触的代码量少,对代码理解起来也较为困难。所以我们在编写程序的时候,采用这种方法

39、,能大大的提高我们的效率。在设计中我们遇到了许多的问题。其中有几点很值得我们的注意,就是不要遗漏单片机的复位电路和晶振电路。不然单片机无法正常的工作。还有就是,注意其他模块电路的正负极不能接反了。在proteus软件中进行智能时钟电路原理图的绘制,绘制结果如图5.2所示。图中采用的主控芯片是STC公司出品的STC89C51,加上LCD1602液晶显示电路和一个矩阵键盘组成,加上一些外围的蜂鸣器和LED提示电路,图中的左下部的那个芯片为时钟芯片DS1302,时钟芯片右部为蜂鸣器,原理图中还有单片机的晶振电路和单片机的复位电路。在此次设计中,主要实现的功能有:上电后,蜂鸣器鸣叫,LED灯亮,再进入

40、到初始化页面后,LED灯以500ms的频率闪烁,通过按键的操作在液晶屏上显示时间和日期。显示数字的格式为比如2012年5月2日的显示格式为02-05-12;12点25分30秒的显示格式为12-25-30。最后扩展了一个整点报时的功能。在59分57秒时,蜂鸣器开始报警,报警时间持续3秒,报警在00分00秒停止。6 系统实物调试及结果6.1 系统实物系统实物如图6.1所示:图6.1 智能时钟实物6.1 系统实物调试结果及说明1. 插上电源,进入初始界面。在液晶显示屏上显示:WelcomeRTC,LED灯亮,如图6.2所示。图6.2 进入系统初始界面2. LCD液晶显示器显示时间和日期。如图6.3所

41、示。图6.3 时间和日历显示3. LED灯按照500ms的频率闪烁。如图6.4所示。图6.4 LED闪烁总结本次设计我做的是一个基于LCD的多功能智能时钟系统。虽然在以前的课程中学习过怎么画电路图,PCB,仿真,也学习过编程,焊过板子。但是我却没有将这些事情联系起来完完整整的做过一个项目。通过这次自己独立的完成设计,我收获到了很多。不仅对以前学习的知识有了一个巩固,而且也更加了解做一个单片机系统的实物应该注意哪些问题。在这个时钟系统设计中,采用什么型号的单片机,显示器和时钟芯片。经过几番思考,在考虑了价格,效率,实用性等因素后,最终决定。在选择方案时,通过在网上查找资料,咨询黄老师后,我对这几

42、款芯片又有了更深入的了解。在系统模块电路和软件的设计中,通过查找书本上的资料以及黄老师的指导下,还算进行的顺利。对各个模块电路的功能,程序实现的功能都有了一定的了解。虽然在之前的课程中使用过Keil和Protues这两款软件,但是对这两款软件的使用也很不熟悉。所以在后面仿真的时候,自己也下了很大的功夫,查阅资料,咨询老师。然后在电脑上实际操作软件,慢慢的,对这两款软件的使用熟练起来。最终也顺利完成仿真。在本次设计中,我得到了很多收获。不仅仅是对单片机,电路,程序这些知识的掌握,更多的是让我懂得了遇到问题后,不逃避,积极解决的道理。虽然在这次的设计中,不是一帆风顺,遇到了很多问题,但是最后在我的

43、不懈努力下这些问题也被一一的解决了。参考文献1 王昌平. 电子时钟设计M. 电大理工学报, 2008.2 李军. 单片机技术基础M. 电子科技大学出版社, 2004.3 王同洲,郭云华. 基于单片机的电子时钟系统M. 中国传媒大学学报,2007.4 李宇忠, 徐宏飞. 电子时钟系统M. 西安电子科技大学出版社, 2003. 5 彭小军,周功海. C语言编程技巧M. 浙江电工高专学报, 2009.6 翟小文, 刘儒南. 多功能时钟M. 西安理工电子学院学报, 2008.7 徐林波, 李云英. 基于单片机的多功能智能时钟M. 自然与科学, 2005.8 戴勇凌. 时钟的设计M. 国外电子元器件,

44、2007.9 何萍萍. 可调控的时钟系统M. 中国电子现代化, 2009. 致谢毕业设计已经完成了,这意味着我的大学四年的学习生活即将画上一个圆满的句号。不管是在学习还是生活中,感谢这四年来,所有帮助过的老师和同学。正是因为你们的帮助,我才能快速的成长起来。从一个刚进大学懵懵懂懂,稚气未脱的小孩变成了知道自己要主动学习,做事也不再莽撞,为人也应该谦虚低调的大人。虽然即将离开学校,但是这并不意味着不用再学习了。反而,在以后的工作中,还有更多的东西需要我们去认真学习,更应该努力的去奋斗。通过实际的工作来累积自己的经验,通过大量的学习来提升自己的能力。并且,还要去学习新的东西,跟上社会发展的脚步。这

45、样才不会被社会淘汰。感谢这四年来,班里的每一位同学。是你们让我在学校感受到了家的温暖,感受到了同学和同学之间的深厚的友谊。更要感谢每一位教过我的老师。你们不仅教授了我们知识,更多的是教会了我们做人的道理。在这里,我要郑重的感谢一个人,就是我的指导老师XX老师。不仅教会了我学习的方法,还教会了我遇到困难的时候,如何去解决问题,而不是去逃避困难。感谢黄宇老师,正是因为他一丝不苟的教学态度,丰富的教学经验,全面悉心的指导下,我才能顺利的完成本次的设计。附件1 主程序-43-/* 文件名: main.c* Copyright 成都理工大学工程技术学院电计系* 创建人: xx* 日期: 2015.02.

46、01* 修改人: xx* 日期: 2015.05.01 * 描述: 系统主函数* 全局变量:待显示十进制数组*/#include "common.h"#include "uart.h"#include "timer.h"#include "lcd1602.h"#include "ds18b20.h"#include "button.h"#include "display.h"#include "warning.h"#include &q

47、uot;ds1302.h"uchar Disp_Dec12=0;/电压电流缓冲器uchar Disp_Num12=0;sbit Buzzer=P33;sbit Led=P34;/*函数名称: SysInit功 能: 系统程序初始化函数,串口初始化和定时器初始化参 数: 无参数返回值 : 无*/void SysInit(void) P1=0XFF; Init_DS1302(); /*定时器初始化*/ Timer_Init();/*函数名称: main功 能: 主程序中包括adc0809的启动,AD数据采集和数据处理过程 再有串口发送给PC机打印。参 数: 无参数返回值 : 无*/voi

48、d main(void) static uchar KeyTemp=0; static bit KeyStart=0;/启动键标志 static uchar KeyFunc=0,KeyFunc1=0; /功能选择键:1控制LED灯全亮全灭/*系统初始化*/ SysInit();/*关蜂鸣器*/ Led=1; Buzzer=0;/*LCD1602初始化*/ write_LCD_Command(0x38); /显示模式设置 write_LCD_Command(0x01); /清屏 write_LCD_Command(0x06); /字符进入模式:屏幕不动,字符后移 write_LCD_Comman

49、d(0x0c); /显示开,关光标 ShowString(2,1,12,"Welcome-RTC"); while(1) KeyTemp=KeyScan();/*注释:按键分成两级:第一级是启停键,第二级是功能键*/ if(KeyTemp=1) KeyStart=1;KeyFunc=0;Led=!Led; write_LCD_Command(0x01); if(KeyTemp=2) KeyFunc=1; if(KeyTemp=3) KeyFunc1=1; if(KeyTemp=4) KeyStart=0;KeyFunc=0;KeyFunc1=0;write_LCD_Comm

50、and(0x01);ShowString(2,1,12,"Welcome-RTC"); if (KeyStart=1) if (ReadFlag1) Led=!Led;ReadFlag1=0; if(KeyStart&&KeyFunc) if(ReadFlag)ReadFlag=0;DatClkProc(); Disp_Dec0=84; Disp_Dec1=105; Disp_Dec2=58; Disp_Dec3=hou/16; Disp_Dec4=hou&0x0f; Disp_Dec5=45; Disp_Dec6=min/16; Disp_Dec7

51、=min&0x0f; Disp_Dec8=45; Disp_Dec9=sec/16; Disp_Dec10=sec&0x0f; ShowTem(2,1,11,Disp_Dec);if(KeyStart&&KeyFunc1) if(ReadFlag)ReadFlag=0;DatCalProc(); Disp_Num0=67; Disp_Num1=97; Disp_Num2=58; Disp_Num3=day/16; Disp_Num4=day&0x0f; Disp_Num5=45; Disp_Num6=mon/16; Disp_Num7=mon&0x0f; Disp_Num8=45; Disp_Num9=year/16; Disp_Num10=year&0x0f; ShowTem(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论