基于单片机的简易灯光时钟毕业论文.doc
《基于单片机的简易灯光时钟毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易灯光时钟毕业论文.doc(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于单片机的简易灯光时钟毕业论文目录摘要IABSTRACTII第一章绪论11.1 目的和意义11.2 本系统实现的主要功能1第二章总体方案论证与设计22.1主控模块的选型和论证22.2显示模块的选型和论证22.3时钟芯片的选型和论证22.4温度检测模块的选型和论证32.5整点报时模块的选型和论证32.6 电源模块32.7系统整体设计概述3第三章.系统硬件电路设计53.1主控模块53.1.1 单片机的最小系统设计53.2 LCD液晶显示器简介63.2.1 液晶原理介绍63.2.2液晶模块简介63.2.3液晶显示部分与STC89C52的接口63.3键盘模块设计73.4蜂鸣器模块设计83.5时钟模
2、块的设计83.6温度检测模块设计103.6.1温度传感器工作原理103.6.2 DS18B20硬件电路设计113.7 语音模块设计11第四章.系统软件设计124.1系统软件总体设计124.2程序设计原理165.系统调试185.1硬件调试185.2软件调试18参考文献20致谢21附录22系统整体原理图22系统PCB图22元件清单24系统源程序25第一章 绪论1.1 目的和意义现代社会已经迈上了信息化的步伐,微电子技术的发展也越来越快,单片机的运用也日渐广泛。无论是通信业的学生,老师或者是研发人员,对于单片机的运用均青睐有加,因此单片机已成为研发人员必须掌握的能力之一,而且单片机也会发展成为一个高
3、薪行业。而时钟作为电子类的一个小设计,不仅深受人们的喜爱,也是单片机实验中一个非常常见的题目。由于单片机给人有很大的发挥空间,是以会对制作人以高要求对待,并且在掌握设计的同时程序要以简洁为主,功能上要能满足人们需求,显示界面要大胆创新,标新立异。LCD显示的数字时钟清晰直观的显示准确时间、而且精度很是高、并且有夜视功能,还扩展出多种与人方便功能。本设计中的简易灯光时钟既是一个时间控制系统,又包含温度检测系统,既能准确无误的显示出正确的高精度的时间又能检测当前的温度本文提出了以STC51系列单片机为核心,采用DS1302作为电子时钟的核心芯片的设计方案,与温度传感器DS18B20、LED显示、时
4、钟芯片DS1302、按键等模块组成硬件的电子电路系统。显示采用LCD,以实现显示年、月、日、时、分钟、秒、星期、温度。设计过程中使用Keilc51软件,采用C语言编程;此外,还要从多方面保障系统的稳定性,提高系统的性能指标本设计可以对时间进行实时的校准,读取时间方便、能直观显示实时时间、功能方面表达多样话、简单明了的电路、低廉的成本都是该设计的优点,满足未来电子设计的发展要求,市场前景好。1.2本系统实现的主要功能本系统设计制作一个基于单片机的简易灯光时钟。能实现以下几种功能:(1)键盘扫描,设计按键扫描程序下载到单片机,每个按键赋予一个功能,单片机通过扫描程序检测用户按键,确定后实现功能。(
5、2)通过单片机的ds1302的数据采集,并实时显示年,月,日,时,分,秒,和星期在液晶屏上,并且可以设置时间,系统不供电的情况时钟芯片依然可以由后备纽扣电池供电,使其掉电时间保存。(3)用户可以设定闹钟时间,当时间到了之后,系统自动驱动蜂鸣器发响。(4)系统附带有整点报时功能,以与任何时候通过按键报时功能。(5)系统还带有测温功能,单片机可以实时读取DS18B20的温度数据并在液晶上显示。第二章 总体方案论证与设计本系统可以由主控、显示、时钟、温度检测、电源等模块组成,以下是讨论这几个模块的选型和论证。2.1主控模块的选型和论证方案一:采用MSP430F149,MSP430F169系列单片机,
6、该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其部集成了很多模拟电路、数字电路和微处理器,提供12位ADC,具有采样、保持、自动扫描,有2个16位计数器等强大的功能。但芯片价格昂贵,不适合一般的设计和开发。方案二采用52系列的单片机,该单片机具有可靠性高,价格成本低,解密难,高性能的特点,32个IO口,且STC系列的单片机可以在线编程、调试。因此选用方案二中的52系列单片机作为主控芯片。2.2显示模块的选型和论证方案一:用点阵式数码管显示,它是由发光二极管八行和八列显示文本,更适合用于显示文字,如进行数字显示使用就太浪费了,而且价格比较高,所以不用此种作为显示。
7、方案二:使用LED数码管动态扫描,LED数码管虽然价格适中,最适合数字显示,采用动态扫描的方法与单片机连接,单片机口线占用得少。但是由于数码管动态扫描需要借助74LS164移位寄存器,74LS164在调试的时候,电路方面常出故障,所以不采用LED数码管作为显示。方案三:选用LCD液晶显示屏,它可以清晰可见的显示文字,图像,功能很是强大,关于本设计的要求,我们使用一个LCD1602即能满足要求,成本低,虽然接口线有点多,但是调试会很方便。所以本设计中方案三中的LCD1602液显示屏作为显示模块。2.3时钟芯片的选型和论证方案一:用程序控制单片机实现时间计数。采取该方案虽然能够缩小时钟芯片的使用量
8、,节省成本开支,但是,误差会非常大。方案二:采用DS1302时钟芯片实现时钟,DS1302是美国DALLAS公司推出的一种性能比较高、性价比高,功耗较低、带RAM的实时时钟电路,它可以对年、月、日、时钟、分钟、秒以与星期进行计时,还能进行闰年补偿,工作电压为2.5V5.5V。DS1302里面含有一个8*31的RAM存储器,用于临时存放数据。DS1302主要特点是采用串行数据传输,具有可编程充电和掉电保护功能,采用普通32.768KHz晶振作为标准时钟。因此本设计中采用方案二中的DS1302作为时钟模块2.4温度检测模块的选型和论证方案一:AD590感温电流源的输出电流与绝对温度成比例。电源电压
9、在4 V30 V围,AD590可充当一个高阻抗,调节系数为1 A/K为恒流调节器。通过激光调整的片薄膜电阻,用于校准装置,使该器件在25C时有298.2 A的输出电流。由于该芯片输出为模拟量还同时需要AD转换器对其进行采集。因此不适用于本设计方案二:DS18B20数字温度传感器耐磨耐碰,体积小,主要根据应用场合的不同而外观不同,DS18B20用途广泛,如电缆沟测温,机房测温,弹药库测温、农业大棚测温,高炉水循环测温,锅炉测温,洁净室测温等场合。使用场合广,价格低,实用性强。因此本设计采用方案二中的DS18B20芯片进行温度采集。2.5整点报时模块的选型和论证整点报时模块集成的语音芯片NY3P0
10、35,NY3P035是一款具有PWM输出的OTP语音标准芯片,该芯片部集成了09以与一些常用单位的录音。使用时只要根据录音存放的位置依次读出就能播报出当前的重量和价格。2.6 电源模块方案一: 选用以下两块芯片LM337和LM317自制一个可调的电源模块,LM317和LM337分别是三端可调式输出正电压稳压器和三端可调式输出负电压稳压器。通过这2块芯片,我们可以很容易的得到正负5V,正负12V和正3V电压,但由于本设计需求各模块体积小,而自制电源体积较大,故不采用此方案。方案二: 采用USB接口供电,既能够下载程序,也能供电,一举两得,故采用此方案。2.7系统整体设计概述图2.7 系统结构框图
11、本系统是以STC89C52单片机为核心,首先要对系统进行初始化,然后单片机对键盘,DS18B20等模块进行扫描,实现对键盘的响应,实时显示分钟、秒等,对1602液晶显示,闹钟、温度测量等功能,其中,单片机起到控制和协调各功能模块的工作。系统的结构框图见图2.7。第三章.系统硬件电路设计3.1主控模块单片机在全部设计中起到了统领全局,承前启后的作用,在该设计中单片机需要完成的任务主要有对键盘扫描,对DS18B20进行与时的检测,驱动蜂鸣器,驱动液晶显示需要显示的容,所以,在本设计中我们选用52系列的单片机作为系统的总控制模块。如图3.1所示为STC89C52单片机的结构框图。图3.1 STC89
12、C52单片机结构框图3.1.1 单片机的最小系统设计图3.1.1 单片机最小系统电路图图3.1.1所示的电路图是单片机在本设计中的最小系统,时钟电路选用12M的晶振,作用是为单片机提供一个时钟基准,其执行一条指令需要一个机械周期,单片机的复位电路是让单片机的状态回到刚上电的状态,因为P0口是一个漏极准双向的I/O口,所以需要上拉电阻才能正常工作。3.2 LCD液晶显示器简介由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以把一些相关的参数进行显示。 3.2.1 液晶原理介绍显示部分选用LCD1602字符型液晶,辅以必要的外接电路组成显示模块,单片机控制带字符的
13、LCD1602查找其字符库,从中选出要显示的字符,设置光标,将之前查找到的字符在此对应即可。3.2.2液晶模块简介LCD1602液晶模块的引脚图如图3.2.2所示。图3.2.2LCD1602引脚图液晶寄存器选择控制如表1。表1寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏幕容显示等)01读位地址计数器(DB0DB6)和busy flag(DB7)10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.2.3液晶显示部分与STC89C52的接口如图3.2.3所示。用STC89C52的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD的EN、R/W、RS。其中EN作为
14、片选信号,在出现下降沿的时候触发,RS是寄存器选择信号,R/W是读写信号,在整个显示模块中,我们主要设计步骤如下:首先进行清屏,显示模块初始化。然后将接口数据位设置为8位,显示行数设置为2行,设定字型为57点阵,然后取消光标和字体闪烁, 显示设置为整体显示,最后设置为正向增量方式且不移位。将要显示的字符送到对应的数组中,最后进行统一显示。图3.2.3LCD1602与STC89C52的接口3.3键盘模块设计本按键模块按键一端接单片机的I/O口,另一端接地,由于单片机的I/O口部都有上拉电阻,所以在没有按键按下的时候,我们会检测到高电平,当按键被按下,I/O口与地面等电势,此时为低电平,因此通过I
15、/O端口的状态变化检测即可知道按下了哪个按键。4个按键分别代表以下功能,第一为功能选择按键,可以切换不同参数设置界面,第二个为切换按键,可以切换时、分、秒等参数进行设置,第三个为增加按键,第四个为减少按键。其中按键还可以设置闹钟,重置时间等功能。键盘模块电路图如图3.3所示。图3.3键盘模块电路图3.4蜂鸣器模块设计本设计还带有闹钟功能,用户可以通过按键设定好闹钟,当当前时间跟闹钟时间一致的时候,单片机就可以驱动蜂鸣器发声。通过试验,发现单片机的I/O口无法直接驱动蜂鸣器,是因为蜂鸣器的工作电流一般比较大,所以我们利用三极管开关电路来提供足够大的驱动电流。本处选用的是8550三极管,它是一个P
16、NP型的三极管,当基极给低电平的时候三极管导通,这时候蜂鸣器发声,当给高电平的时候,三极管关闭,蜂鸣器不发声。蜂鸣器模块的电路图如图3.4所示。图3.4 蜂鸣器驱动电路电路图3.5时钟模块的设计在本设计中,时钟模块的设计,我们把DS1302这块串行日历时钟芯片作为核心,因为DS1302具有与单片机的连线很少,节省单片机的系统资源的有点,单片机通过I/O读取DS1302上的数据可以得到实时时间。由于采用单片机作为计时模块会占用硬件资源,而且采用中断、查询等方式也要耗费单片机的资源,可能会造成很大的浪费,而采用DS1302却可以很好的解决这类问题。DS1302是美国DALLAS公司推出的一种带RA
17、M、高性能、能对年、月、日、星期、时、分、秒进行计时,并且低功耗,可以进行闰年补偿的时钟电路,工作电压为2.5V5.5V。采用24小时或是12小时的格式。此外,DS1302采用双电源供电,主电源和备用电源,VCC1作为备用电源,在模块整体供电中提供电压相对低的电压,而VCC2作为主电源,VCC1和VCC2的供电模式决定如下:VCC2VCC1+0.2时 由VCC2供电 VCC2VCC1时 由VCC1供电图3.5.1 DS1302引脚示意图如图3.5.1为DS1302的引脚图。X1和X2是震荡源,外接32.76KHz的晶振,GND为接地端,RST为复位端,低电平有效,图3.5.2为DS1302的引
18、脚功能图引脚号引脚名称功能1VCC2主电源2,3X1,X2振荡源,外接32768HZ晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8VCC1后备电源图3.5.2 DS1302引脚功能表在3.5.3中,最高位控制字(第七位)必须是一个符合逻辑的,即必须为逻辑1,第六位控制字为0是日历时钟对数据的访问,第六位是1表示存取RAM数据,第五位地址到第一位(A4-A0)表示指针指向操作单元地址,电平1或0分别表示写操作是读操作。图3.5.3 DS1302控制字DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日
19、历、时间寄存器与其控制字见表2,其中奇数为读操作,偶数为写操作。总共有12个寄存器DS1302,与日历 ,时钟相关寄存器共7个,都存储为BCD格式,日历,时钟寄存器和相关联的控制字的数据位如表2所示,其特征在于所述奇数读操作,写操作是偶数。表2 DS1302的日历、时钟寄存器与其控制字寄存器名命令字取值围各位容写操作读操作76543210秒寄存器80H81H00-59CH10秒秒分钟寄存器82H83H00-59010分分小时寄存器84H85H01-12或00-2312/24010时时AM/PM日期寄存器86H87H131010日日月份寄存器88H89H01-1200010月周日寄存器8AH8B
20、H01-0700000周日年份寄存器8CH8DH00-9910年年从表2我们可以发现,小时寄存器的第七位为1是12小时计时模式,在12小时计时模式下,第五位为高电平表示AM,低电平表示PM,第七位为0是24小时模式,这是位5为第二个十小时位标志。暂停位位于秒寄存器的第七位,当该位被设置为1时,时钟振荡器停止工作,然后DS1302工作在低功率模式,该位为0时,时钟正常运行。控制寄存器地址是8FH,8EH,其第七位是写保护位,其余七位均要置0,在对时钟进行的任何写操作时,写保护位WP必须是0,否则,写保护位禁止任何一个寄存器进行写操作。3.6温度检测模块设计本设计还带有一个温度检测的功能,系统可以
21、通过读取DS18B20的温度数据并在LCD1602上显示,使整个时钟的功能更加丰富。3.6.1温度传感器工作原理温度传感器DS18B20测温在-55至+125摄氏度围,具有12位的精度。它有0.0625摄氏度的测温分辨率,可设置存储在EEPROM中,用户自定义的报警温度在掉电后仍然可以保存。另外,多个温度传感器可以并联连接,但只需要使用CPU上的一个端口就可以与温度传感器电路进行通信,这样微控制器端口占用最少。它可以节省大量的端口和逻辑电路就能构成温度测量系统。图3.6.1是DS18B20的引脚图。图3.6.1 DS18B20引脚图我在实验中发现,当使用DS18B20,VCC电压应保持在5V,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 简易 灯光 时钟 毕业论文
限制150内