基于单片机的智能调光灯设计.docx
《基于单片机的智能调光灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能调光灯设计.docx(49页珍藏版)》请在冰点文库上搜索。
基于单片机的智能调光灯设计
本科毕业设计论文
题目基于单片机的智能调光灯设计
专业名称自动化
学生姓名
指导教师
毕业时间
设计
论文
毕业任务书
一、题目:
基于单片机的智能调光灯设计
二、指导思想和目的要求:
通过毕业设计,使学生对所学电子工艺、电路基础知识、模电、数电、等电子基础课程的基本知识加深理解,掌握单片机的基本指令及基本结构,并将其与实际工程应用紧密结合起来,培养创新意识,增强分析问题解决问题能力,为尽快进入社会角色,熟悉相关开发工作流程、项目小组组成、分工、合作方式方法等。
增强团队合作意识,提高基本工作技能,为即将踏入社会奠定理论和实践基础。
内容:
设计一电路,不仅亮度可调,还可以显示时间等功能。
具体要求如下:
1)显示当前的时间,24时制的时、分、秒;
2)可调节时间;
3)可调节LED光亮度;
步骤:
l、了解所设计系统的工作原理及要求。
2、设计单片机工作的基本电路,如:
晶振电路、复位电路。
3、根据系统设计要求选择发光二极管、按键等模拟部件。
4、设计系统基本电路。
5、绘制PRTUSE电原理图并编写系统控制程序。
6、联机进行系统仿真调试。
三、进度与要求:
1.第一周~第一周收集设计系统相关资料。
2.第二周~第三周用PROTUSE设计硬件原理图并进行器件选型。
3.第四周~第六周编写系统各功能模块控制程序。
4.第七周~第十周联机进行系统调试。
5.第十一周~第十二周整理并组织论文。
6.第十三周~第十四周完成修改稿,定稿,打印,交评阅。
7.第十五周~第十六周评阅与答辩
学生屈晓东指导教师李雪霞系主任史仪凯
摘要
在实际的应用中发现,当周边亮度大时,LED灯过亮,存在电能浪费;当周边亮度小时,LED灯过暗,又不能提供足够和恰当的光度。
用来改善我们的生活质量,体验到科学技术带给我们更方便的生活,节省电能。
因此,研究实用具有时钟功能的台灯的应用,有着非常现实的意义,具有很大的实用价值。
本文介绍了设计的框架结构和组成模块以及各模块的原理,介绍了各部分硬件设计和各部分软件设计以及软件流程图。
该设计是以AT89C52单片机为控制核心的集多种功能于一体的智能LED台灯。
该台灯具有灯光亮度调节功能;具有时间显示功能。
硬件设计分为单片机控制模块、按键模块、台灯模块、时钟模块、显示模块等五个部分。
单片机控制用AT89C52,显示模块用LCD1602液晶显示时间、日期等内容,按键模块用来调整时间、日期、LED的亮度等,时钟用DS1302时钟芯片,台灯模块用13颗LED灯。
软件设计用单片机C/C++编写,通过PROTEUS和KEIL仿真软件进行程序仿真,实现了全部控制功能。
关键词:
单片机,智能,显示,LED灯,时间
ABSTRACT
Inpracticalapplications,wefoundthatthebrightnessofLEDlightsinthesurroundinglargepowerLEDisstillthesame,thereisawasteofenergy;hoursinthesurroundingbrightnessLEDlightsdonotprovideadequateandappropriateluminosity.Usedtoimproveourqualityoflife,toexperiencescienceandtechnologybringusmoreconvenientlife,tosaveenergy.Therefore,thestudyandpracticalapplicationofelectronicbell,hasaveryrealsense,hasgreatpracticalvalue.
Thispaperdescribesthedesignprinciplesoftheframeworkstructureandcompositionofmodulesandeachmodule,introducesthevariouspartsofthevariouspartsofthehardwaredesignandsoftwaredesignandsoftwareflow.ThedesignisbasedonAT89C52microcontrollercoresetoffunctionsinonesmartLEDlamp.Thelamphasalightbrightnessadjustmentfunction;hasatimedisplayfunction;alarmfunction.Hardwaredesignisdividedintofiveparts.MCUcontrolmodule,thekeymodules,lampmodules,clockmodule,alarmmodule,displaymodule.MCUcontrolwithAT89C52,displaymoduledisplaystime,dateandothercontentwithLCD1602,keypadmoduleisusedtoadjustthetime,date,etc.brightnessLEDclockwithDS1302clockchip,lampmodulewith13LED.SCMsoftwaredesignwritteninC/C++language,therealizationofallthecontrolfunctions.
KEYWORDS:
microcontroller,smart,display,LEDlightsandtime
第一章绪论
1.1选题意义
现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。
智能灯不是传统灯具,而是智能设备的一种,除了智能灯体,还有一个手持智能控制设备,智能灯控制设备具备计算能力和网络联接能力,通过应用程序,功能可以不断扩展。
智能灯的核心功能是控制、灯光效果、创作、分享、光与音乐互动、光提升健康和幸福。
开关灯的控制,不但可以通过控制器,手动遥控灯的开关,还可以进行定时开关灯的控制,可以设定不同的时间开灯关灯。
其次是对光的控制,光的亮度,光的冷暖,光的色彩都可以连续手动控制或自动控制。
白炽灯和金卤灯在调光领域应用得比较广泛,但随着节能减排的不断推广,LED可调光在攻克了调光技术障碍后,开始呈现发展趋势,LED可调光与LED红外智能灯管、LED声光控等一起统称为LED智能化系列,在LED普通灯具价格竞争日趋激烈的今天,LED智能化已经成为大型LED照明企业的发展方向。
电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
随着技术的发展,人们已不再满足于钟表原先简单的报时功能,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹跑表功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。
因此,研究实用电子钟的应用,有着非常现实的意义,具有很大的实用价值。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
现在市场上已有现成的电子钟集成电路芯片出售,价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路技术的发展,特别是MOS集成电路技术的发展,使电子钟具有体积小、携带方便的特点,这里介绍的实用电子钟可以满足使用者的一些基本要求,输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。
实用电子钟是一个时间控制系统,既能作为一般的时间显示器,也可作为一个定时控制器,驱动负载或显示信息,同时可以根据需要扩展其功能。
在此项目的设计研究过程中需综合运用所学的数字电子技术、单片机原理与应用等课程的知识,掌握实用电子钟的设计、组装与调试方法,利用现代的单片机等新电子技术以及现代的设计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质以及创新能力的提高。
1.2设计要求
1.2.1功能实现
(1)LED调光灯功能:
当按下按键K0、K1、K2分为一级亮度红灯、二级亮度黄灯和三级亮度绿灯来实现。
(2)时间、日期显示:
系统采用24小时制。
正常情况下,系统显示当前日期、时间,由LCD显示。
(3)设置功能:
用户可以对LED灯光的亮度进行调节,对时间、日期、星期进行设置。
用户依次进入日期设置、星期设置、时间设置。
在进行设置时,光标停留在相应位,按下K4键、K5键对数值进行加、减调整。
通过K3键,在各个数位间移动。
通过K6键,确定所设置的时间。
1.2.2系统所需功能模块
由功能分析,台灯系统分为灯光模块、键盘模块、显示模块、时钟部分、电源模块和单片机模块,考虑成本时钟模块可由单片机内部计数器模拟实现。
(1)灯光模块用D0~D12个LED灯实现。
(2)按键模块分为调光3个按键和调节时间4个按键,分别是K0、K1、K2和K3、K4、K5、K6。
(3)显示模块负责显示系统的日期、星期、时间。
(4)电源模块采用+5V直流供电。
(5)单片机模块内部计数器负责LED灯光和时钟,通过程序模拟生成亮度调节和时间走时。
同时负责扫描键盘,并将时间送给LCD显示。
1.3系统基本方案选择和论证
1.3.1单片机芯片的选择方案和论证
方案一:
采用STC89C52芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:
采用AT89C52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有STC89C52的功能,且具有在线编程可擦除技术,对所下载的程序能够加密,比较安全。
当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
所以选择采用AT89C52作为主控制系统。
1.3.2显示模块选择方案和论证
方案一:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示。
方案二:
采用LED数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,所以也不用此种作为显示。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,与普通数码管相比功耗较小,硬件连接简单。
所以显示部分采用1602液晶显示。
1.3.3时钟芯片的选择方案和论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、周、月、年以及闰年补偿的年进行计数,而且精度高,RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
第二章系统的硬件设计
2.1系统模块框图
六大模块以AT89C52单片机为控制核心,实现了该智能台灯的各项要求,外接一个5V的直流电源,为整个系统供电。
图2-1系统结构示意图
2.2系统整体硬件图
该设计是以AT89C52单片机为控制核心的集多种功能于一体的智能LED台灯。
该台灯具有灯光亮度调节功能;具有时间显示功能。
硬件设计分为单片机控制模块、按键模块、台灯模块、时钟模块、闹铃模块、显示模块等五个部分。
单片机控制用AT89C52,显示模块用LCD1602液晶显示、时间、日期等内容,按键模块用来调整时间、日期、LED的亮度等,时钟用DS1302时钟芯片,台灯模块用13颗LED,通过按键K0、K1、K2调节灯光的亮度,分为一级亮度、二级亮度和三级亮度。
图2-2系统整体硬件图
2.3各模块电路的设计
2.3.1单片机控制模块
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
AT89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
图2-3AT89C52单片机控制模块
2.3.2晶振/复位模块
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。
晶振是给单片机提供工作信号脉冲的。
这个脉冲就是单片机的工作速度。
单片机的工作频率是有范围的,不能太大。
图中19与18引脚分别为XTAL1、XTAL2,他们分别接晶振的输入与输出,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期。
本设计选择晶振频率为12MHz,输入芯片震荡周期为1/12μs,一个机器周期为1μs。
图2-4晶振电路模块
复位电路,就是利用它把电路恢复到起始状态。
就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。
和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。
一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。
在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
复位电路工作原理如下图所示,Vcc上电时,C3充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C3充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。
工作期间,按下K7,C3放电,在10K电阻上出现电压,使得单片机复位。
K7松手,C3又充电,几个毫秒后,单片机进入工作状态。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路。
图2-5复位电路模块
2.3.3台灯模块
台灯模块用13颗LED作为发光系统,每一颗和一个220
的电阻串联,用P1.4~P1.6口控制。
电阻起限流作用,13个I/O均采用低电平有效方式,即给相应的I/O低电平LED工作。
通过按键K0、K1、K2调节灯光的亮度,亮度分为三个等级:
一级亮度控制红色的D0灯亮;二级亮度控制黄色的D1、D2、D3、D4灯亮;三级亮度控制绿色的D5、D6、D7、D8、D9、D10、D11、D12灯亮。
图2-6台灯模块
(1)
图2-7台灯模块
(2)
2.3.4台灯调光按键模块
图2-8台灯按键模块
按键K0、K1、K2用来调节台灯的亮度,通过按下按键K0可以让台灯变亮,按下按键K1可以让台灯变的更亮,按下按键K2可以让台灯灯光达到最亮。
3个I/O均采用低电平有效方式。
2.3.5DS1302时钟电路模块
下图示出DS1302的引脚排列图,其中Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768KHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。
中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。
SCLK始终是输入端。
表1DS1302引脚功能表
引脚号
引脚名称
功能
1
VCC2
主电源
2、3
X1、X2
振荡源,外接32768Hz晶振
4
GND
地线
5
RST
复位/片选线
6
I/O
串行数据输入/输出端(双向)
7
SCLK
串行时钟输入端
8
VCC1
后备电源
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲。
DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。
对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。
位1至位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。
控制字节总是从最低位开始输入/输出的。
DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
图2-9DS1302时钟电路模块
2.3.61602LCD显示模块
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
1602LCD分为背光和不带背光两种,基控制大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,引脚功能说明:
表21602LCD功能表
编号
符号
引脚说明
编号
符号
引脚说明
1
Vss
电源地
9
D2
数据口
2
Vcc
电源正极
10
D3
数据口
3
VO
液晶显示对比度调节端
11
D4
数据口
4
RS
数据/命令选择端(H/L)
12
D5
数据口
5
R/W
读写选择端(H/L)
13
D6
数据口
6
E
能使信号
14
D7
数据口
7
D0
数据口
15
BLA
背光电源正极
8
D1
数据口
16
BLK
背光电源负极
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2所示:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
1602LCD的一般初始化(复位)过程
延时15mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
LCD1602液晶显示,如下图所示:
图2-101602LCD显示模块
2.3.7调节时钟按键模块
因为有年月日,时分秒几个参数要调,所以设置这几个参数的计数。
当按下一个键时,单片机进行相应的操作。
根据设计要求需要选择四个独立按键分别为选择、加、减、确定,按键用来调整时间和设置闹钟,调光亮度,各键功能在介绍硬件部分已描述。
按键模块下图所示:
图2-11调节时钟按键模块
第三章系统的软件设计
3.1系统软件编程工具C和C++
3.1.1C简介
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。
C程序是由一组变量或是函数的外部对象组成的。
函数是一个自我包含的完成一定相关功能的执行代码段。
我们可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的的,外部程序是不知道的。
外部程序所知道的仅限于输入给函数什么以及函数输出什么。
函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。
C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,整个程序从这个主函数开始执行。
C语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”。
这样的好处是让各部分相互充分独立,并且任务单一。
因而这些充分独立的小模块也可以作为一种固定规格的小“构件”,用来构成新的大程序。
3.1.2C++
C++