毕业设计(论文)-基于单片机的多功能台灯设计.doc_第1页
毕业设计(论文)-基于单片机的多功能台灯设计.doc_第2页
毕业设计(论文)-基于单片机的多功能台灯设计.doc_第3页
毕业设计(论文)-基于单片机的多功能台灯设计.doc_第4页
毕业设计(论文)-基于单片机的多功能台灯设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计题目 基于单片机的多功能台灯设计 院(系) 电子电气工程学院 指导教师 职 称 讲 师 二o一二年 五 月 二十 日3摘 要随着时代的进步,科学技术的发展,单片机已经渗透到我们生活中的各个角落。伴随着人们生活水平的提高,人们对日常生活用品的功能和集成度的要求也越来越高,并且人们的低碳环保理念也越来越强。台灯是我们生活中的必需品,使用非常广泛,对此设计了多功能台灯。该设计以51系列单片机at89s52为控制核心,来实现集多种功能于一体的电子台灯,设计系统时采用模块化的设计方法,分别设计了各个功能的单元模块,系统的硬件部分主要包括八大部分。单片机最小系统选用at89s52单片机;温度传感器电路主要由数字芯片ds18b20来完成;显示模块用lcd1602a来显示温度、时间和日期等内容;按键模块用来调整时间、日期,电位器来调整led的亮度;闹钟模块选用时钟芯片ds1302完成,来产生时间和日期,当液晶显示的当前时间和闹钟设定的时间一致时,用蜂鸣器来报警。系统的软件部分用单片机c语言来编程,实现了该设计全部控制功能。该多功能台灯可以显示当前温度、时间和日期、调节灯泡的照明强度、可以设置闹钟时间、具有闹钟报警功能。整个系统结构清晰明了,功能齐全,操作简单,具有很强的实用价值。关键字:单片机;芯片;多功能淄博职业学院毕业设计 目录abstract with the progress of the times, the development of science and technology, scm has been infiltrated into our lives in every corner. with the improvement of peoples living standard, people on the daily necessities, function and integration requirements are also getting higher and higher, and people of low carbon environmental protection concept is also getting stronger and stronger. the lamp is necessary in our life, is widely used, this design of the multifunctional desk lamp. the design of 51 series single-chip microcomputer at89s52 as the control core, to realize the integration of multiple functions of electronic lamps, the design of the system uses a modular design method, respectively, design of each function module, system hardware consists of eight parts. the smallest single-chip system selects at89s52microcontroller; temperature sensor circuit is mainly composed of a digital chip ds18b20 to complete; display module using lcd1602a to display the temperature, time and date content; key module is used to adjust the time, date, a potentiometer to adjust the brightness of led; alarm module selects the clock chip ds1302completed, to generate a time and date, when the liquid crystal display the current time and alarm set time, buzzer alarm. the software of system mcu c language programming, realize the design of all control function. the multifunctional desk lamp can display the current temperature, time and date, adjust the bulb lighting intensity, can set the alarm clock time, with alarm clock function. the structure of the whole system is clear, complete functions, simple operation, and has a strong practical value.keywords: single chip microcomputer ;chip ;multi-function目 录摘 要iabstractii目 录iii第一章 绪论11.1 课题的背景11.2 课题的目的和意义11.3 课题研究的内容21.4 国内外研究现状2第二章 系统方案的设计32.1系统方案的确定32.2系统设计的主要元器件介绍5 2.2.1单片机的介绍5 2.2.2时钟芯片ds1302的介绍8 2.2.3温度传感器ds18b20的介绍9第三章 电路的硬件与软件的设计 113.1单片机控制电路的设计113.2时钟电路的设计113.3显示电路的设计133.4温度测试电路的设计143.5闹钟电路的设计143.6按键电路的设计153.7电源电路的设计与电路原理图153.8程序设计框图17第四章 总结与展望30谢 辞31参考文献3232淄博职业学院毕业设计 第一章 绪论第1章 绪 论1.1课题的背景台灯已是千家万户的必需生活电器。在我国,照明耗电占年发电总量的12% (超过100亿kwh) , 现在的台灯绝大部分是采用普通的白炽灯、荧光灯、节能灯和螺旋节能灯 ,并且功能单一,与现在家电的智能化,人性化,低碳设计理念相违背。led被认为是21世纪的照明光源。led发光器件是冷光源,光效高,工作电压低,而且能耗低,可控制好、无辐射,同样亮度下,led能耗为白炽灯的10,荧光灯的50。led寿命可达10万小时,是荧光灯的10倍,白炽灯的100倍。随着能源紧缺、电价越来越高、环保要求及led的光效的提高,用led替代现在台灯普遍使用的白炽灯或荧光灯,环保无污染。另外,led的光谱几乎全部集中于可见光频段,其发光效率可达8090%,并且传统的台灯中的光源体使用的是交流电,所以每秒钟会产生100120次的频闪。led灯是把交流电直接转换为直流电,不会产生闪烁现象,保护眼睛,可以获得“柔和”的灯光环境。家用电器因为单片机的加入而走向多功能化,并且随着人们生活水平的提高日益走向平民化,我们的生活也随着家用电器的发展越来越方便和舒适。随着家用电器的发展,作为家用电器当中的小台灯也逐步适应科技发展的步伐走向多功能化。虽然按键式的台灯依旧是台灯市场上的主体。但是随着现代电子技术的发展和人们需求的提高,传统的台灯已经感受到产品更新换代的威胁。1.2课题的目的和意义台灯不仅在功能上日趋于多功能化,同时在外观上也逐步向组合化、装饰化、情趣化方向发展。组合化是随着人们生活节奏的加快,一些方便实用、新颖、美观的组合台灯正在市场上兴起,有闹钟与台灯组合的,有温度计与台灯组合的,有电子钟与台灯组合的,也有笔架、文具盒等与台灯组合的,是台灯更具实用性。同时,有些台灯不仅具有现代化工艺,而且样式多样,工艺精湛,造型别具匠心,材质各异,颜色多样。消费者可以按照房间装饰风格以及家具风格来选取不同款式、质料的台灯,使台灯与室内布置形成一个完善的艺术整体。灯具作为人们日常生活的必需品,目的就是为人们提供一个最佳的视觉光照环境。一个好的灯具设计,应该是以人为本的,不止功能上有优越性,而且在造型上要领先时尚潮流,符合大众审美观,还要为生产节省成本,注意环保,而不好的灯具设计恰好反之。在造型方面,会根据现时符合潮流的设计,让这款台灯在功能上和装饰上都能最大限度地满足人们的生活需求。对此,我提出了基于单片机的多功能台灯的设计。因此,我们提出多功能台灯方案。 当今设计的灯具不仅要有最佳的内在质量,而且还要简洁、明快、美观大方和安全经济,以满足人们生活、生产和文化娱乐的要求 ,为人们提供一个最佳的视觉光照环境。多功能台灯的市场是面向普通的家庭用户,作为一件家居产品而具有多种用途,意味着能够让用户免去购买其它对应功能产品的开支和麻烦,切身为用户的利益着想。所以,这类集众多功能于一身的产品具有一定的市场占有率。1.3课题研究的内容通过多功能台灯控制器的设计,复习巩固单片机的应用,了解51单片机的功能及使用方法,学习时钟芯片ds1302和温度传感器ds18b20的使用。初步了解项目的实施流程,为将来步入社会做准备。 本课题涉及的知识面较广,既包涵了大部分课程所学内容,如:51单片机,模拟,数字电路等,又有新的知识需要学习,如:温度传感器ds18b20的应用。通过新的器件的应用,学会如何去使用从未接触过的器件,消除对未知器件的恐惧感。主要功能要求利用51单片机,实现电子时钟,闹钟,温度显示等功能。具体可分为以下几种:1) 显示当前时间(24进制的时、分、秒)。2) 可更改时间的时、分、秒的显示状态。3) 可显示当前的室内温度。4) 可调整台灯的亮度。5) 可设置闹钟时间和实现闹钟报警。1.4国内外研究现状灯具行业的发展与电光源的发展有着紧密的关系,同时也与国力及人民生活水平有很大的关系。顾名思义,灯饰是具有照明功能和装饰效果的灯具,有时候往往装饰性优于照明功能。“灯饰”的称呼起源于港台,在大陆出现是在我国改革开放后的20世纪80年代中后期,20世纪90年代已完全被业内和市场所接受。改革开放前,我国的民用灯具几乎没有任何装饰效果,人们只是为了照明而用之。改革开放带来了社会的巨大变革,人们的居住环境得到改善,生活水平迅速提高。在购买灯具时,人们已不仅仅要求照明功能,还对灯具的款式、造型、色彩有了一定的要求,灯具的装饰效果因而逐渐体现,一个巨大的市场逐渐形成,而这也带动了一个行业的蓬勃发展。目前在引进国外先进光源的基础上,我国已研制设计出了许多符合我国国情的电光源生产设备,使我国电光源装备水平不断提高。淄博职业学院毕业设计 第二章 系统方案的设计第2章 系统方案的设计52.1系统方案的确定根据本设计的要求,该多功能台灯的整体设计可以分为以下八大模块:1)单片机控制模块2)时钟模块3)显示模块 4)温度模块5)闹钟模块6)按键模块7)台灯模块8)红外感应模块这七大模块以单片机控制系统为核心,来实现多功能台灯的各项要求,需要外接5v的直流电源,图2.1为单片机控制系统的结构框图。单片机控制模块台灯模块温度模块时钟模块闹钟模块红外感应模块按键模块显示模块图2.1单片机控制系统的结构框图关于各个模块方案的设计如下:1)单片机控制模块方案设计:单片机的选择有以下几种方案:方案一:采用at89s51;方案二:采用at89s52;方案三采用stc89s52。方案一优点:价格便宜,可以基本实现全部功能,缺点:程序存储空间较小只有4k。方案二优点:程序存储空间相对较大,8k的程序存储器空间,后续扩展较为方便,缺点:需要采用并口下载,目前电脑没有并口。方案三优点:采用串口方式下载,缺点:电子市场货源比较紧张。本设计本是选择方案三,但是因为购置器件时,未买到sct89s52,因此在设计中采用的是方案二。2)时钟模块方案设计该多功能台灯要求能够显示24进制的时、分、秒,可以有两种方案:方案一:是利用单片机内部的定时器,采用软件编程的方法来实现时钟的功能;方案二:是采用专门的时钟芯片ds1302来实现时钟的计时功能。方案一优点:充分利用单片机内部资源,不需要外接电路,只需要通过程序来实现,成本较低;缺点:单片机断电后,数据随之丢失。方案二优点:时钟准确,精度更高,系统断点之后数据可以保存并且时钟继续工作,重新上电之后,可以显示出当前时间。缺点:需要外接电路,成本较高。从实际应用和需求出发,选择了第二种方案,采用ds1302时钟芯片。3)显示模块方案设计本设计需要显示出时间温度,需要显示芯片,有两种方案可供选择:方案一:采用12864芯片。方案二:采用常用的1602a。方案三:采用数码管。方案一优点:可以显示汉字,屏幕更大,可以显示更多内容。缺点:芯片较贵,成本较高。方案二优点:相对于12864成本较低,32个字符已足以显示所需要内容。缺点:只能显示字符型数据。方案三优点:成本最低,亮度最大,字体最大最清晰。缺点:需要驱动芯片,例如zlg7289,本设计显示需要较多字符,数码管需求较多,总的成本较高。综合比较,采用了第二种方案,第二种方案中,仍有可供选择绿光黑底的1602和蓝光白底的1602a,其中两者指令相同,只是背景光和字体颜色不同,出于美观和清楚角度,本设计采用1602a。4)温度模块方案设计本设计需要显示当前室内温度,有两种常见方案可供选择:方案一:采用热敏电阻器;方案二:采用ds18b20。方案一优点:温度范围更广,价格便宜;缺点:需要进行ad转换方案二优点:封装简单,实用方便;缺点:价格较高。经过综合比较,采用ds18b20更为实用方便。5)闹钟模块设计闹钟模块采用最简单的蜂鸣器,既节约成本又能实现功能。6)按键模块设计本设计需要采用按键调节时间和设置闹钟,按键可采用两种方案:方案一:直接接io口方式;方案二:采用矩阵式键盘接外部中端口。方案一优点:简单,不用接外围电路,缺点:直接接io口反应不是很灵敏。方案二优点:反应灵敏,缺点需要接外围电路以及驱动芯片或者是外接门电路。因为按键比较少,并未采用矩阵式键盘,io口仍有富余,所以键盘采用的是直接接io口的方式,但较少按键灵敏度影响不是很大。但是通过实践证明,采用矩阵式键盘接外部中断的方式比接io口的处理速度和反应要快。7)台灯模块设计台灯供电模块可采用两种两种方案,方案一:是普通的白炽灯。方案二:是采用高亮度的led灯。从环保节能,高效率出发,采用的是高亮度的led灯。2.2系统设计的主要元器件介绍2.2.1单片机的介绍at89s52单片机是一块集成了cpu ram rom 定时器计数器和多功能i/o口等,一台计算机所需的基本功能部件。at89s52单片机的内部结构图如图2.2振荡器及时钟at89s52cpu8kb程序存储空间256b数据存储器64kb总线扩展控制器中断系统3*16位定时计数器全双工串行io口可编程串行口图2.2 at89s52单片机的内部结构图at89s52的工作频率可以是033mhz,有8k字节的flash,256字节的ram,32位的i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。at89s52有40个管脚,如图2.3所示: 图2.3 at89s52结构图该芯片一共有32个i/o口,包括p0、p1、p2、p3口,以及几个特殊的管脚。第9管脚:rst,复位引脚,通过外接复位电路实现复位。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。第18、19管脚:xtal1和xtal2是用来接122m晶振和微调电容1)p0口:p0口是一组8位漏极开路型双向i/o口,也即地址/数据总线复用口。作为输出口用时,每位以吸收电流的方式驱动8个ttl逻辑门电路,对端口p0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。2)p1口:p1口是一个带内部上拉电阻的8位双向i/o口,p1口的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。另外,p1.0和p1.1还可分别作为定时/计数器2的外部计数输入(p1.0/t2)和输入(p1.1/t2ex)3)p2口:p2是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p2端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movxdptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行movxri指令)时,p2口输出p2锁存器的内容。4)p3口:p3口是一组带有内部上拉电阻的8位双向i/o口。p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3口将用上拉电阻输出电流(iil)。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,如表2-1所示: 表2-1 p3口的第二功能端口引脚第二功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2int0(外中断0)p3.3int1(外中断1)p3.4t0(定时/计数器0)p3.5t1(定时/计数器1)p3.6wr(外部数据存储器写选通)p3.7rd(外部数据存储器读选通)5)第29管脚(psen):程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次rsen信号。6)第30管脚(ale/prog):当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。7)第31管脚(ea/vpp):外部访问允许。欲使cpu仅访问外部程序存储器(地址为0000hffffh),ea端必须保持低电平(接地)。需要注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。2.2.2时钟芯片ds1302的介绍ds1302是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。1) ds1302引脚功能及结构如图2.4图2.4 ds1302引脚结构第一脚:vcc2备用电源正。第二和第三脚:x1、x2 32.768k晶振的介入引脚。第四脚:gnd 电源地。第五脚:/rst 复位引脚,低电平有效。第六脚:i/o 数据输入输出引脚。第七脚:sclk 串行时钟输入引脚。第八脚:vcc1 工作电源正极2) ds1302的寄存器ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。其日历、时间寄存器及其控制字见表2-2表2-2 ds1302的寄存器寄存器名称命令字取值范围各位内容写操作读操作76543210秒寄存器80h81h059ch秒十位秒个位分寄存器82h83h0590分十位分个位时寄存器84h85h023或012t010时时个位ap日寄存器86h87h028,29,30,3100日十位日个位月寄存器88h89h112000月月个位周寄存器8ah8bh1700000星期年寄存器8ch8dh099年十位年个位2.2.3温度传感器ds18b20的介绍ds18b20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有ltm8877,ltm8874等等。主要根据应用场合的不同而改变其外观。封装后的ds18b20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。ds18b20主要由三部分组成:64位的只读存储器;温度传感器;高速暂存寄存器和非易失性的可电擦除的eepram,后者包括高温度和低温度触发器 th、tl、结构寄存器和配置寄存器,其中8位的配置寄存器的第6和第7位来设置分辨率。 图2.5实物图及引脚芯片的封装主要有3个引脚: gnd:接地。i/o:数据输入/输出引脚。vdd:外接电源输入端。 图2.6 ds18b20内部结构图低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。32淄博职业学院毕业设计 第三章 电路的硬件与软件设计第3章 电路的硬件与软件设计3.1单片机控制电路的设计at89s52单片机为主控芯片。at89s52单片机由微处理器,存储器,i/o口以及特殊功能寄存器sfr等部分构成。图3.1为单片机控制电路图3.1单片机控制电路这里选用的单片机为at89s52,晶振采用12m晶振。在这里需要指出的是并且需要注意的是,at89s52的ea必须接高电平,单片机才能正常工作。3.2时钟电路的设计图3.2时钟电路at89s52系列的单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的xtal1和xtal2的两引脚外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片系统工作的快慢;二是指系统的标准定时时钟,即定时时间。在本设计中采用的是外部时钟方式,用一个32.768mhz晶振和两个0.1uf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.图3.2为时钟电路若时钟芯片ds1302采用的晶振是32.768k,与单片机不同的是,其晶振不用接电容和地。其中2.3脚接晶振。1脚接主电源,8脚接备用电源,4脚接地。为了使电源稳定,在主电源处并接一个0.1uf的电容。ds1302有涓电流功能,能够在主电源和备用电源同时工作时给备用电源充电,在实际工作中,这样会使得芯片发烫发热,为了防止芯片损坏,在备用电源处串接一个稳压二极管4148,也可以选择在程序里面关闭涓电流充电功能。在这里需要指出的是,如果备用电池能够充电,建议开启充电功能,并且不串接二极管。备用电池无法充电,强烈建议关闭涓电流充电功能,或者在备用电池正极串接一个二极管。在本次设计中为了双重保险,在程序里面既关闭了涓电流充电功能并且在备用电池正极端当串上了二极管。主电源高于备用电源0.2v时,芯片有主电源供电,当备用电源高于主电源时,芯片由备用电源供电。采用备用电源,这样使得当不使用台灯时,关闭电源后,时钟芯片仍然继续工作,同步并保存时间,使得任何时候打开台灯都能看到准确的时间。5,6,7脚接单片机io口p1.2, p1.3,p1.4。因为at89s52除了p0口内部用上拉电阻之外其他i/o口均没有,所以在5,6,7脚上要接上10k的上拉电阻。程序设计思路首先对ds1302进行初始化,禁止写入保护,允许写入,设置二十四小时格式。设计对ds1302进行字操作函数,进行字读操作和写读操作,进行字操作通常是通过移位的方式写入或读出数据。然后设根据字操作函数计对ds1302进行指定地址的操作函数,采用对指定地址进行读数据和写数据。其中ds1302里面的数据是以bcd码形式存储的,在进行读数据和写入数据时要进行转换,这样才能最后显示出正确的时间。然后设计显示函数,把读出的数据经过转换在液晶上显示。其中里面的时间日期均采用数组的形式保存,但是显示时时一位一位显示,将还要将数组中的数据进行取余或取整,得出时间每一位的数据,才能方便的写入1602.在这里还需要指出的是因为ds1302里面有涓电流功能,为了防止芯片在工作时发热发烫,最好是在程序中加上禁止涓电流功能。也可以在备用电源处串联一个二极管,防止电流倒流。3.3显示电路的设计液晶显示部分,采用的是1602a,其接法与普通的1602接法相同。1,2脚接电源和地,3脚接电位器来调节液晶显示器的亮度,4,5,6脚接p2.3,p2.4,p2.5。7-14脚接p0口。15脚接背光电源,16脚接地。需要注意的时,在测试过程中,有时候发现液晶不亮,没有显示,其中多半原因在于遗漏了背光电源。程序设计思路首先设计对1602检测是否为忙子函数,然后设计对1602进行写命令指令子函数和对1602进行写数据子函数。并对其设计初始化函数。并且为了更好的为之后时钟调节和闹钟设置服务,并设计一个反白子函数,对指定地方进行两位进行写空格,由于指令和按键的延时原因,反白的效果将会是闪烁效果。虽然也可以直接调用液晶1602里面的开光标和开闪烁指令来实现指定地方闪烁,但是由于开了光标之后,1602上面的数据显示就会不清晰,再加上闪烁,从实际测试中得到的效果数据将会很模糊不清,无法辨认,从而在按键调节时无法看到当前实际数据,对时间修正和闹钟设置带来不便。图3.3为显示电路图3.3显示电路3.4温度测试电路的设计图3.4温度测试电路由于ds18b20温度传感器集成度很高,封装简单,1脚接电源,2脚数据线接p1.0,3脚接地。程序设计思路首先设计初始化函数,然后设计读ds18b20数据和对ds18b20写数据的子函数,再写出从ds18b20读取温度并转换为十进制的函数,最后设计出显示温度的函数。3.5闹钟电路的设计图3.5闹钟电路闹钟模块比较简单,采用普通的蜂鸣器有三极管来驱动,为了使工作功率更高一点,这里的三极管采用的是8550。后面的led灯得驱动也是采用的8550。关于蜂鸣器对其所接io口进行写0就能实现其蜂鸣,但程序中往往需要对其写0和1并在其中加一段延时,制作成闹钟的铃声。关于闹钟,首先设置闹钟的函数,由数组来存储闹钟的值,当闹钟里面的小时和分钟与当前ds1302里面的时间相对应的时候,调用闹钟函数,闹钟的精确位为分钟,闹钟铃声也为一分钟。这里的闹钟也有两种方案,方案一:采用单片机音乐;方案二:采用普通的滴滴闹铃声。方案一优点:音乐声更悦耳 缺点:需要更多的程序编程,单片机播放音乐时,是每一个音符一个一个播放,音乐存储形式是数组形式,进入播放之后,比较难以跳出,除非采用中断,可能造成1602a刷新延时,造成数据无法及时更新。方案二优点:程序实现简单,可以从任何时间跳出缺点:铃声单一,不悦耳。综合比较采用方案二更为简单实用,本设计采用方案二。3.6按键电路的设计图3.6按键电路s3,s4,s5按键是用来调节时钟和闹钟。按键均采用低电平有效连接方式。程序设计思路按键中用来设置闹钟时间和修正时间。s3和s4用来设置修正时间,s4和s5用来设置闹钟。当检测到s3有按键按下时,设置一个计数count,每当有有效按键按下时,count就加1,一直加到6,因为有年月日时分秒六个需要调节的参数,一个count的值对应调节一个时间单位,当在一个count下时,如有检测到s4按键有效值,将对对应的时间单位进行加一操作,并调用lcd里面的反白函数,因为存在一定的指令的延时,所以反白为闪烁效果,这样能够清楚地看到调节的是哪一个时间单位。设置闹钟时,也需设置一个count1,当检测到s5有有效键值时,,count1加一,一直到2,因为只有时分两个时间单位需要操作;在count1的有效值下,若检测到s4有有效键值,调用指定地方反白函数,对对应的时间单位进行加一操作。 为了有效的读取键值,防止键盘抖动,需要在程序中加入去抖动,即加入一个10ms左右的延时。3.7电源电路的设计与电路原理图电源部分是将220v的交流电通过变压器转换成9v交流电,再通过整流桥转换成5v直流电(因为计算机工作需要5v直流电)。此时5v直流电很不稳定,不符合计算机工作的需求。因此还须将电流通过电解电容和集成稳压块7805,逐步达到稳压、滤波的作用c13、c14、c15、c16为滤波电容。图3.7电源电路图3.8 电路整体原理图3.8程序设计框图与源程序开始lcd初始化 1302初始化 启动台灯显示温度 读取时间 显示时间有键按下?修正时间 设置闹钟设置闹钟闹钟和时间匹配闹钟结束while(1)循 环ynyn 图3.9程序主框图图3.10中断流程图源程序:# include # include 1602.h # include led1.h #include 1820.h #include 1302.h void main()/主函数 unsigned char a=210,b=210,i=0,k;init_lcd();ds1302_init();while(1) for(i=0;ib;i+) led_on; for(i=b;i=180?210:b+30); else if(k=2) b=(b=30)?0:b-30; display_temp();/显示温度 ds1302();/读取时间set_time();/设置时间display_time();/显示时间set_clock();/设置闹钟baoshi();/闹钟报警 unsigned int readtemp()/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;init_ds18b20();writeonechar(0xcc); writeonechar(0x44); init_ds18b20();writeonechar(0xcc); writeonechar(0xbe); a=readonechar(); b=readonechar(); t=b;t=t8;t=t|a; tt=t*0.0625; t= tt*100+0.5; return(t);void display_temp()/显示温度unsigned int num; unsigned int shi,ge,xiaoshu1,xiaoshu2; num=readtemp();shi=num/1000;ge=num%1000/100;xiaoshu1=num%100/10;xiaoshu2=num%10;lcd_wcmd(0x80+2);lcd_wdat(wendushi);lcd_wcmd(0x80+3);lcd_wdat(wenduge);lcd_wcmd(0x80+4);lcd_wdat(0x2e);lcd_wcmd(0x80+5);lcd_wdat(wenduxiaoshu1);lcd_wcmd(0x80+6);lcd_wdat(wenduxiaoshu2);/1602#include #define uchar unsigned char #define uint unsigned int sbit lcdrs=p24;sbit lcdrw=p23;sbit lcden=p22;uchar code t0=t:;uchar code t1=date:; void delayms(uint ms)/延时-uchar i;while(ms-)for(i=0;i120;i+); bit lcd_busy() /检测lcd是否为忙 bit result; lcdrs = 0; lcdrw = 1; lcden = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(p0&0x80); lcden = 0; return result; void calculate(void)/计算时间 second0=tab_13020/10+0x30 ; second1=tab_13020%10+0x30 ; minute0=tab_13021/10+0x30 ; minute1=tab_13021%10+0x30 ; hour0=tab_13022/10+0x30 ; hour1=tab_13022%10+0x30 ; day0=tab_13023/10+0x30 ; day1=tab_13023%10+0x30 ; month0=tab_13024/10+0x30 ; month1=tab_13024%10+0x30 ; year0=2+0x30 ; year1=tab_13026/100%10+0x30 ; year2=tab_13026/10%10 +0x3

温馨提示

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

评论

0/150

提交评论