《基于PT4115的智能台灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于PT4115的智能台灯控制系统设计.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于PT4115的智能台灯控制系统设计1绪论 项目背景现在的我们步入了大数据时代,器械智能化的高效率不断的代替了人工的效率,人类的生活方式越来越多元化,产品的实用性是许多人的首选。OLED全称Organic Light-Emitting Diode,中文名为:有机发光二极管。这款产品拥有的OLED屏幕是各个独立发光的像素点,即精准度极高,在背景纯黑的情况下,可以不需要发光就可以呈现真实深邃的黑色,多种智能手机屏幕也是采用OLED显示屏,这种超视网膜的显示屏,材料出众,塑料是容易成形且耐用的材质。台灯是每家每户的必需品,在这个竞争化大的时代,消费者对商品的功能不仅就此一个,买东西会再三斟酌。20
2、10年LED灯成为了农业界和园林艺术界的榜上话题,美国国家航空总局在太空率先使用LED灯进行栽种,由此之后,商业的室内园艺,农业生产和家用也跟随着脚步。这些专用的LED灯经过设计,能促植物生长之余,也减少了有些植物对一些光波不吸收而造成的浪费。在家用上除了提供日常光照外,更可以对室内的植物进行光能的补给,更好的进行光合作用,并且LED灯的发热少,能减少植物的蒸腾作用,加速植物生长。普通和特殊的照明均可以使用LED灯。发出白光的传统颜色的灯通常情况下要增加滤镜,为了分隔开其他颜色所造成的损耗,导致效益和能源低下,LED不仅可以发出单色光还不需要增添滤镜。和荧光灯相比较,它并不含有汞元素,开灯即亮
3、、常开常关的优点但无损伤它的寿命,坚硬,不容易被破坏。环保,对视力伤害不大,可以用来保护视力。OLED的缺点:1) OLED受电压的改变而稍微改变颜色,相同画面内播放时间长,会容易产生烙印,寿命相对其他的显示屏相对短。2) 黑色光显示时,非常省电,但是使用白光的时候,耗电量增大几倍,不省电。3) 从侧面角度观看容易使屏幕产生溢光现象和容易发生色彩偏差。 LED的缺点:1) 制造成本较高,价格稍贵于正常灯的价格,家庭使用可能会有经济负担。2) 光源属于方向性,长期点照,还有色温偏移的情况。RA(演色性),目前尚未能取代某些特殊照明的超高演色性(RA95-100),还需要考虑光学设计,会造成大量灯
4、有亮度却没有光照度。3) 它并不适合于在潮湿地带使用,色温容易发生偏移,防水设计的成本较高,散热重量不利于灯源设计。这项产品设计最主要是切合百姓生活的实用性、智能性与多功能性集合的器件,温湿度和时钟显示给人类的生命活动带来了便捷性,依据市场经济实用模式来设计这款产品,做出符合指标,安全可靠的产品。严格进行产品设计,展望智能化对台灯市场的的发展前景,来完成此项任务。项目的主要任务本项目的主要任务是利用芯片制作出以PWM为载体的无极调光的控制系统。通过IAP15W4K61S4型单片机来调节PWM。可实现的功能有:1) 可以进行无极调光2) 可以实现显示时间跳转3) 可以显示环境温湿度2硬件功能设计
5、2.1硬件设计2.1.1整体硬件设计思路 本套硬件整体以STC(宏晶)IAP15系列微处理器单片机作为整套系统的主控制器,具体型号为IAP15W4K61S4。外部包含 PWM高调光比恒流LED光源驱动器,LED 3W灯珠带铝基板,TTP223触摸传感器模块,OLED 0.96寸 SPI通信型引脚,DHT11温湿度模块,DS1302 RTC时钟模块(带CR2302锂电池供电)。整体硬件框架如下图所示:图2-1 整体硬件设计框架图2.1.2如何选择主控制器芯片 方案一 :选择传统的51系列微控制器。优点:芯片价格便宜,技术成熟,芯片结构简单,外部电路容易搭建,使用起来相对容易,并且传统的51系列微
6、控制器拥有多种封装,既有传统的DIP,也有各种贴片封装,易于选择体积较小的贴片型进行设计。缺点:微控制器已出时间过长,内部过分简洁,没有多余的资源,微控制器芯片内部没有内置的ADC,以及专用PWM通道,内部没有震荡电路,需要外挂外部有源或无源晶振。方案二:选择新款增强型51系列微控制器。优点:功能以及资源相对丰富,芯片结构简单,外部电路更加精简,更加容易部署单片机最小系统,使用起来相对传统51系列微控制器变化不大,同样拥有各式封装,可供设计者灵活选择封装进行设计。还拥有内置ADC模块,以及专用的PWM通道。缺点:芯片价格相对较高,其他明显缺陷相比传统51来说不太多,上手有一定难度,需要一定的传
7、统型51系列微控制器基础知识以及迁移能力。方案三:选择性能更加强劲的意法半导体公司旗下的STM32系列的32位微控制器。优点:性能强劲,主频可高达72MHZ,支持非常多的GPIO拓展,拥有最新一代ARM公司的Cortex-M系列框架,能够支持快速开发,官方提供非常多的库函数编程(STM32CubeMX编程环境),微控制器自带ADC转换,PWM专用通道。缺点:需要一定的时间熟悉使用,上手难度较大,微控制器成本较高,外部电路设计比较复杂,结构复杂。方案四:选择Arduino开源开发板。优点:适合初级入门的小白进行编程,编程环境已经准备了大量的库函数,使得开发人员开发速度得到了明显的提升,满足快速开
8、发的需求。支持市面上80%的外设,能够拥有大量的例子进行学习开发,能够较快的上手。缺点:Arduino只能买现成的开发板,微控制器周围电路极其复杂,难以部署周围的外部电路,微控制器单片价格较高,都基本上是进口芯片,购买国内取代品会出现兼容性问题。综上所述,相比之下,方案二的选择会更加适合本作品,原因在于,本作品需要的系统资源不多,但是需要专用PWM通道,ADC转换模块,再加上自身有一定51系列微控制器开发基础,能够应对接下来面临的相对较简单的问题,成本预算方面尽可能选择便宜,内部资源够多的微控制器,外部下载电路尽可能简单,这样更加符合本毕业设计要求。2.1.3 如何进行微控制器外部控制电路的设
9、计 以微控制器为核心,外部设备为载体进行外部控制电路的设计。增强型51微控制器是兼容传统的8031系统指令,以此基础进行增加更多的增强型指令使得微控制器性能更加强劲,比原有传统的51微控制器内部集成硬件资源更多并且运算能力、寻址能力得到极大提升。相继20年后,为了争取更多的传统的51系列微控制器的市场份额,STC(宏晶)公司推出了增强型51系列单片机,满足市场日益增加的硬件资源、激增的性能需求。现在市面上得到了广泛的使用,社会口碑好,反响强烈,性价比高,应用广泛,高校内也进行了大力推广,各种电子设计竞赛赞助。目前拥有高度灵活的定制化电路实现方案,能够高效的完成各种嵌入式控制的应用。毕业设计中选
10、择IAP15W4K61S4微控制器,该微控制器是STC(宏晶)公司面对市场需求进行定制化设计的一款增强型、强大的8051内核的微控制器。和最传统的51系列微控制器相比,本款IAP15W4K61S4微控制器增加了内部ADC模块,专用PWM输出等实用性极强的资源,并且在ROM、RAM空间方面也得到了飞跃性的提升,可以利用更强大的算法完成你所需要的功能,不再出现ROM、RAM空间不足的老顽疾。再加上本款IAP15W4K61S4微控制器可以利用内部可调晶振来提供系统所需要的足够的时钟频率,内部内置好看门狗电路,能实现芯片上电的内部复位的功能。综上,本芯片编程设置好相关参数,甚至只需外加电源即能工作,极
11、大的简化了以前传统型51系列微控制器的繁杂操作。此处所述的微控制器的最小系统指的是微控制器正常工作的最小电路。此电路由微控制器芯片、微控制器手动复位电路组成。下面为IAP15W4K61S4微控制器最小系统图。图2-2 IAP15W4K61S4微控制器最小系统图本处重点讲述该微控制器最小系统的复位电路组成,为了让系统在程序运行中途能够重新执行相关部分,于是需要IAP15W4K61S4微控制器最小系统的复位电路进行微控制器系统重启,此处重启为程序能够重头进行执行,但是内部部分数据,例如RAM区域的数据是不会进行清零的。切记,RAM清零需要通过断电清零的过程,而不能通过复位电路进行清除。复位引脚正常
12、电路逻辑为低电平作为起始电平,因此此处需要接地,但是为了过滤电源不稳定的干扰因素,比如电源波纹扰动导致的电平不稳,因此我们常用做法为对地接入电容过滤。由于复位信号需要高电平,还得加入高电平进行复位,因此此处需要VCC=5V进行逻辑高电平进行供给复位信号,还得加入上拉电阻(强上拉比较好,效果好),常用上拉电阻范围为1K至10 K。上电时刻,复位信号逻辑为高电平起始,按键按下,控制复位后,等待电容充电,于是出现低电平的时刻,由此处低电平信号作为复位,时间不得低于10uS,于是需要充分低电平时间维持进行复位。图2-3 复位波形图本处重点讲述IAP15W4K61S4微控制器外部硬件电路设计,设计IAP
13、15W4K61S4微控制器的最小系统后,还需要继续预留外部硬件电路接口。在设计外部硬件电路接口前,需要提前知道相关硬件特性,接下来下面内容主要讲述外部硬件电路正常工作条件。图2-4 PT4115工作电路图关于, 30V/1.2A 高调光比LED恒流驱动器,部分内容 :连续电流电感导通模式降压恒流源,可调输入INPUT电压8V30V,可调OUTPUT电流,典型电流输出95uA(关断状态电流)到1.5A(实际IC稳定恒流输出1.2A)。可灵活调整不同的光源LED以及供电条件,均可满足光源LED调节条件。能够驱动几十瓦的LED光源,内置功率调节,内置高端电流采样电路,能够调节LED光源平均的电流,可
14、通过DIM接受模拟调光,拥有非常宽PWM调节范围。IF VDIM 0.3 V ,功率开关关闭,此时工作电流仅仅只有95uA,超低功耗待机性能。如表2-1。表2-1 PT4115管脚描述表管脚号管脚名称描述1SW功率开关漏端2GND信号和功率地3DIM开关使能、模拟和PWM调光4CSN电流采样端,采样电阻接在CSN和VIN端之间5VIN电源输入端,必须就近接旁路电容-Exposed Pad散热端,内部接地,贴在PCB板上减少热阻ESOP8 4,5NC无连接,接地或悬空本作采用的封装为SOT89-5,优点体积小、引脚数少,外围电路简单易制作。实际引脚数为5个,制作PCB时需要考虑散热,温度升高会伴
15、随着最大功耗会下降,因此该封装SOT89-5配备了散热端供给散热需求,正常工作温度范围支持范围为零下40摄氏度到+85摄氏度,ESD(Electricity Shock Defense抗静电能力)最大支持2kV,适合广大地区使用本 PWM高调光比恒流LED光源驱动器。该IC正常工作电压范围为8V至30V,本作品使用12V给 IC进行供电,符合技术手册内的输入电压范围,能够满足正常工作条件,和 PWM高调光比恒流LED光源驱动器相接的LED光源为3W灯珠带的铝基板,实际功率3W,具体相关参数见下部分LED光源介绍。在室温的工作环境下(约25摄氏度下),12V的外部供电电压,按照技术手册的外部供电
16、电压电流以及整体功率的控制,使得LED光源正常工作。图2-5 整体PCB板图2.1.4光源LED部分论述LED光源部分采用的是3W灯珠带铝基板,厂家提供的参数如下:实际额定功率3W;灯珠带铝基板整体尺寸:直径20mm*20mm;工作电压范围:3.2V至3.5V;工作电流范围为600mA到700mA;,最好不要超出厂家提供的正常工作电压、电流范围,以免导致LED光源工作不正常,切忌不得超过额定功率工作,否则会烧毁该LED灯珠!正常工作亮度范围在220流明(LM)到240流明(LM);正常工作色温范围如下:正白色色温6000K至6500K,中性白色温4000K至4300K,暖白色温3000K至35
17、00K。该灯珠不防水,加了铝基板后工作温度不得高于60摄氏度,否则会烧毁LED灯珠。2.1.5如何选择OLED显示屏OLED采用的是中景园生产的0.96寸单色显示屏,裸屏拥有30PIN排线,左侧1依次到右侧30,切忌不能搞反,否则会烧毁裸屏。整体模块为SPI通信接口。 此款OLED采用的显示驱动芯片型号为SSD1306,属于市面上常见芯片之一,内部集成升压模块,提供升压功能,无需外挂升压电路,大大简化外部电路设计,降低上手难度。SSD1306芯片内每页支持128字节,共有8页,恰好点阵大小也是128*64,满足正常取字模以及图片操作。特别注意一点,本款0.96寸OLED显示屏支持SPI与IIC
18、通信协议,能够微调内部电路完成通信协议更改,根据中景园提供的技术手册内参数调整,默认SPI通信接口是R1、R2、R8的三个电阻不进行焊接,如想切换成IIC通信接口工作,则需要将R3电阻换到R1处,R8电阻可选是否焊接,七针款0.96寸OLED还需要将RES接口接入高电平,也可以将VCC对接,无需复位,DC和CS接口接地即可,即可轻易完成接口协议交换,大大简化了模式切换,适合IO少的微控制器以及代码内容削减。SPI接口与IIC接口包含以下引脚定义:表2-2 SPI接口与IIC接口引脚定义表格SPI接口与IIC接口引脚定义1GND接电源地2VCC(接入范围3V至5.5V)3D0 是OLED内D0脚
19、,SPI与IIC为时钟管脚4D1 是OLED内D1脚,SPI与IIC为数据管脚5RES是OLED内RES#脚,用于复位(切记低电平有效)6DC 是OLED内D/C#E脚,用于数据命令控制管脚7CS 是OLED内CS#脚,片选信号管脚2.1.6为什么要选择TTP223作为触摸开关TTP223触摸开关模块,是由触摸按键和TP223N-BA6触摸检测芯片组成,因为TP223N-BA6芯片性能优异,能够利用可变的触摸按键面积,更加高效的识别到触摸从而进行开关以及调节,从而取代传统按键单一功能(此处单一功能指的是传统按键只能开关)。工作电压范围为2V至5.5V,低功耗工作电流在VDD为3V时,从1.5u
20、A至3.0uA,低功耗功率很低,满足节能需求。特别要注意一下两点:第一点是上电时需要500ms的电路稳定时间,此时按键操作一律无效,所有功能全部禁止,因此注意上电后触摸无效不是按键坏了,而是电路复位需时间。第二点是TOG引脚与AHLB引脚内部集成下拉,不接默认的低电平。如果出现低电平,不是芯片损坏,而是注意检查PCB设计查找问题。在外部电路设计的时候注意以下引脚: TOG引脚决定触发模式,通过TOG引脚选择直接触摸,或者是其他模式,Q引脚提供CMOS电平输出,AHLB脚可以选择高电平有效还是低电平有效,触摸端尽可能离TTP223N-BA6芯片引脚越近越好,最好不要与其他线平行或者交叉。图2-5
21、 TTP223N-BA6引脚图在设计PCB时,调节TTP223N-BA6芯片触发灵敏度时,注意PCB板子上电极面积以及连线电容会对灵敏度造成较大影响,因此根据PCB设计的实际情况,可以外部调节灵敏度的:使用大面积电极面积可提高灵敏度,尽可能减少板厚,可提高灵敏度,可调节Cs电容(不焊接时灵敏度最高,增加Cs电容会降低灵敏度)Cs范围为1pf至50pF。在TTP223N-BA6芯片的输出模式上,有高低电平输出有效以供选择,即通过TOG引脚进行选择,Q引脚输出CMOS电平。引脚号引脚名称I/O简单描述1QOCMOS输出2VSSP电源脚3INI/O触摸输入4AHLBI-PL输出有效选择,0高有效(默
22、认)1低有效5VDDP电源脚6TOGI-PL输出模式选择,0直接模式(模式)1触发模式表2-4 TOG引脚表格注释O:CMOS输出I/O:CMOS输入或输出P: 电源地I-PL:CMOS输入,内置下拉电阻TOGAHLB引脚功能00直接模式,高电平有效01直接模式,低电平有效10触发模式,上电状态为011触发模式,上电状态为1表2-5 TOG与AHLB对应的引脚功能在TTP223N-BA6芯片提供低功耗模式可供选择,低功耗模式能够极大的降低该模块所需的功耗,节约电源。触发条件为按键被释放维持12S后,自动进入低功耗模式。RTC模块电路简介:本作品采用DS1302实时时钟芯片,功能包含时、分、秒、
23、日、月、年的计数,最大年份累计可以去到2100年,闰年芯片能够识别到并且可以自行调整,同时可选择12小时制或者是24小时制,AM与PM也可自行调整。工作电压范围在2.0V至5.5V,能够支持绝大部分的微控制器供电,同时也支持纽扣电池作为备用供电,工作电流在工作电压为2.0V时,电流小于320nA,功耗相对较低。DS1302内部集成31*8位的暂存寄存器、读写时钟寄存器和内部RAM,暂存寄存器能够暂存计数中间数据,后可将数据传送给微控制器,而读写时钟寄存器和内部RAM可以采用单子节或者突发模式进行使用。DS1302拥有多种封装,DIP、SOIC等均可选择,外部电路设计简单,元件数量少,入手难度低
24、。设计时只需要高度关注三根线,此三根线进行数据传递以及控制,/RST(RESET),I/O(Data line),SCLK(Serial clock)。通过备用电源(纽扣电池)可让芯片在超低功率下运行(超低功率低于1mW)。如图2-6。图2-6 DS1302引脚图2.1.7 DHT11模块电路介绍 DHT11温湿度传感器内部集成数字电信号输出、温湿度混合型传感器。特别是温湿度混合型传感器,作为一种新型双用的传感器,内部集成了电阻式湿感元件、NTC温感电阻,使得两用传感器集成在一起,给设计者带来诸多便利,尤其是两者都需要兼顾的电路,能够得到更好处理。内部配备的专用数字信号采集提供了较高的采集精度
25、,确保能够有较高的可靠性以及稳定性提供给对应的设计产品。该传感器价格便宜,采集速率高,抗外部干扰能力强,能够支持超长传输距离进行传输等等一系列的优点。具体参数见下表2-6: 表2-6 DHT11温湿度传感器参数表Pin名称注释1VDD供电3-5.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极外部电路设计简单,外部元件少,能够快速进行设计,上手使用难度小,入门快。具体需要注意的为:DATA引脚作为单总线输出串行数据,需要做到抗干扰等处理,最好不要有线路与其平行,交叉等等的走线行为,单总线还需要接出5.1K左右的上拉电阻,每次空闲状态可维持高电平状态,微控制器作为呼叫方
26、时,DHT11作为被呼叫方,一旦出现时序问题,则不能进行对应操作的响应以及数据传输,因此均严格按照单总线的方式进行通信。单总线通信每次传送40位数据,高位优先。如果使用3.3V供电,尽可能走线短,避免PCB内寄生参数导致内部压降造成的供电不足,出现测量误差较大。工作电压范围为3.5V到5.5V,能够支持绝大部分微控制器供电,测量时工作电流为0.3mA,在待机模式下能够达到60uA的低功耗性能。采集信号周期时间较长,为了保证精度,时间最好大于2S,能够达到精确的效果,每次发送到微控制器的数据,均为上次的数据。如需实时获取数据,则需两次请求读取数据,最好不要连续多次读取数据,否则会出现问题,最好是
27、每次读取间隔最好大于5S,这样能够获取较高精确度的数据。数据格式为:八位温度整形数据+八位湿度单精度/双精度浮点型数据+八位温度浮点型数据+八位校检位数据。如图2-7。图2-7 DHT11接线图3软件设计Keil uVision开发平台:Keil uVision IDE开发平台简称Keil,Keil支持ARM、C51、C166、C251等类型微控制器,能够提供灵活编程的环境进行开发。该开发平台集合项目管理,运行环境,编译代码链接,源代码编辑,程序调试等功能,为开发提供强有力的帮助,一个开发平台集成上述功能,简化开发环境部署,无需多个程序即可完成开发。Keil十分利于新手进行开发,他的易用性能够
28、加快你的嵌入式系统软件开发,能够支持多窗口进行编辑,创建新的源代码以及项目文件管理。Keil内集成的程序调试器,提供了一个独立环境,支持你进行测试,功能验证,定制应用代码。调试器不仅包含了传统的功能,还包括比如说断点,窗口预览,程序执行控制,以及硬件内部操作全可视化等操作。Keil支持C语言、C+语言、汇编语言进行开发,也是各地公司、高校使用频率较高的开发平台。本毕业设计中,用的最多的是C语言,C语言通过Keil内部的编译器,将C语言转换为机器语言,使得我们的微控制器能够识别并执行。相对来说,C语言开发效率较高,比较通用,因此采用C语言进行设计。在程序开头做好相关的准备,不能着急直接开始进行代
29、码的编写。回顾本作品的相关外设,有 PWM无极调光模块,OLED 0.96寸SPI型显示屏,TTP223触摸开关模块,DHT11温湿度模块,DS1302 RTC模块。根据上述的外设类型,可以进行分类:使用到PWM功能的有 PWM无极调光模块,使用到外部中断的有TTP223 , PWM无极调光模块,使用到定时器的有DS1302 RTC模块,DHT11模块,使用到IIC通信协议的有DHT11模块,DS1302 RTC模块,使用到SPI通信协议的有OLED 0.96寸SPI显示屏,普通IO引脚使用的有LED光源灯珠。如图3-1图3-1 头文件定义图此处需要包含所有库文件,不可缺漏,否则会导致相关硬件
30、的代码无法通过编译,从而使得硬件无法正常工作。为了更加方便的编写代码,还需要将数据类型提前定义好,以便后面进行使用,直接使用数据类型更加快捷,也加快了整体程序开发的进展。如图3-2。图3-2 时钟与温湿度模块代码图3.1主时钟的定义做系统主时钟的定义,是因为IAP15W4K61S4微控制器集成系统内部可变时钟,根据所需程序的时钟速度进行设置,无需外部外接晶振,大大提高了硬件、软件的开发效率。定义好RTC所需要的全局变量,使得后面OLED 0.96寸上128*64的显示设置更加方便,同时此处做好准备便于代码衔接。下一步进行引脚端口的定义声明,为后续按键,LED灯占用相应的微控制器的GPIO口进行
31、准备。接下来是微控制器相关资源的初始化, PWM无极调光模块需要用到内部的PWM资源,需要专门进行指定PWM通道、PWM中断服务进行初始化。进行完PWM相关资源的初始化后,需要声明定义延时函数,以至于关系到后续传感器采集数据,OLED显示屏刷新延时等等相关参数设定。综上程序为主函数程序必备所需的准备工作,接下来为主函数主体详细内容,包含所有传感器外设工作所需内容,独立外设所需的代码将在下一个小结进行详细解释,为了方便,我们将会对这些独立外设所需的代码,另成一个C源文件,便于管理。OLED 0.96寸SPI协议单色显示屏针对中景园生产的0.96寸SPI通信协议的OLED显示屏技术手册提供的时序图
32、。如图3-3所示:图3-3 n行m列OLED屏扫描原理时序图3.2 SPI协议的定义先来解释,SPI是Serial Peripheral Interface三个英文单词的首字母缩写,用中文来说即为串行通信外部接口,是摩托罗拉公司首次在MC68HC系列处理器定义。如果要用好SPI协议,则需要关注SPI通信时序根据几根关键的线:SDO主设备输出从设备输入(数据输出),SDI主设备输入从设备输出(数据输入),SCLK时钟信号,CS使能信号(片选)。主要工作方式为主从方式工作,此处的主设备为IAP15W4K61S2微控制器,从设备此处为OLED 0.96寸SPI协议单色显示屏。从上图可知,行同步信号依
33、次输出,等到信号序列1位置,帧同步信号置高电平,依此类推,每逢行同步信号序列1处,帧同步信号跟着一起置高电平,产生的周期即为TFRM。行扫描信号产生在行同步信号序列1的下降沿位置,整个周期在行同步信号序列1和行同步信号序列2的下降沿区间段,即为TLINE。第二行的扫描信号往下类推,也就是行同步信号序列2的下降沿至行同步信号序列3的下降沿区间段,同样是TLINE。后面一直到n行扫描信号均是如此。因为SPI通信协议支持同时送数据以及送地址,于是出现了图中第一列数据是跟随着第一行扫描信号同步进行的。此处的数据写入,按照一个字节进行写入,能够根据时序图的运作状态,较好的实现数据写入,为后续显示更多内容
34、做好铺垫。后续需要制定好数据在OLED显示屏内显示的位置,需要做好坐标管理,把相关的代码需要进行整理并且编写入源文件内。后续发现当前的数据内容没有办法按照指定的位置显示,原因出在我们的程序初始化部分内容:需要提前列出页地址,设置好初始的显示位置,再进行指定位置坐标设定,数据写入,地址送入,才能够正确的显示出来。除此之外还需要设置好OLED相关参数,比如说地址,复位信号,还有清除数据,重新指定初始地址等等。因此初始化程序必不可少,否则内部不完整的数据导致后续显示内容不正常,因此需要补齐初始化内容。初始化做好以后,再想进一步显示指定区域的数据内容,找到初始位置的数据后,进行位置平移以及数据处理,再
35、显示在OLED上,显得更加定制化。由于我们要达到最终的要求,我们需要显示出中文内容,不能够纯粹只显示常量内容,还需要增加其他的内容,包括变量,中文说明。于是先从字符开始做起,能够显示出字符,后续想要显示出中文则困难相对小一些,本着一通百通的想法,继续接着为中文显示进行铺垫。查阅了相关的网页信息后,还需要准备中文字库,字库需要有字体类型,字体大小等等相关的源代码才能够显示出中文。后续能够显示出中文汉字,是通过取字模软件生成文字相关参数文件,形成对应的字库源代码,经过程序内的生成代码插入,从而达到中文显示。要想正确的使用DHT11温湿度传感器,首先需要了解DHT11数字温湿度传感器的相关技术文档,
36、发现DHT11温湿度传感器采用的是单总线双向串行通信协议,每次采集都需要主设备IAP15W4K61S2微控制器进行采集信号的发起,然后DHT11会向主设备IAP15W4K61S2微控制器送入传输开始的40bit数据帧进行确认传输,以MSB作为起始端,格式默认为:8bit湿度整型数据,8bit湿度浮点型数据(浮点型数据为0),8bit温度整型数据,8bit温度浮点型数据,8bit校验和数据。如果传送数据正确时,校验和数据为8bit湿度整型数据,8bit湿度浮点型数据,8bit温度整型数据,8bit温度浮点型数据的末八位数据。因此,在源程序编写的时候,可以密切留意此处的校验和数据结果作为数据正确与
37、否。图3-4 HDT11时序图根据上述时序图可知:每次IAP15W4K61S2微控制器发起信号采集信号时,DHT11会从低功耗模式切换到高速模式,一旦数据采集完成,则又会重新恢复到低功耗模式,如此循环采集温湿度信息。在DHT11技术手册上明确指明,起始信号有明确的低电平时间,在单总线定义下,微控制器需要将SDA数据总线电平拉低18ms-30ms作为起始信号,而DHT11需要在此起始信号后进行相应,DHT11传感器需要将SDA数据总线电平先拉低83us,后87us拉高进行响应IAP15W4K61S2微控制器。后续DHT11传感器将数据通过SDA数据总线送出40bit数据,以MSB优先。40bit
38、数据举例:0011 1011湿度高8bit 0000 0000湿度低8bit 0001 1011温度高8bit 0000 0101温度低8bit 0101 1011校验位8bit先检查一下校验位数据是否正确:0011 1011+0000 0000+0001 1011+0000 0101=0101 1011经过检查校验位数据正确,因此此处可以进行下一步数据转化:湿度:整数部分0011 1011=3CH=60% 小数部分没有,因此湿度为60%(相对湿度)温度:整数部分0001 1011=1CH=28 小数部分0000 0101=05H=0.5,因此温度28+0.5=28.5RTC时钟电路图3-5
39、DS1302时序图根据官方提供的数据手册,DS1302时钟芯片最重要的功能是数据读写,由于DS1302为串行通信(脉冲串类型),只能够先读写地址,后读写数据。当CE使能信号为高电平时,DS1302芯片处于工作状态,SCLK时钟信号上升沿作为地址命令的读写,而时钟信号下降沿作为数据读写,结束时需要将CE下拉回低电平。共为8位地址,8位数据。时钟源是有32.768K晶振提供,因此依靠此时钟信号进行计时。由于内部时间是通过暂存器进行存储,因此获取时间需要通过访问暂存器进行读取时间信息。此部分代码较简单,选择好指定的暂存器区域进行访问,则可以得到所需要的时间信息,显示出来则需要整理数据信息,才能够按指
40、定格式输出。4系统调试OLED屏幕需要两个工作电压,VDD和VCC(或者VPP)。其中VDD是IC逻辑部分的工作电压,通常2.83.3V。VCC(或者VPP)是类似LCD的背光电压,用来点亮像素。在关机或者待机的状态下,需要保证VCC(或者VPP)为0,否折可能会产生mA级别的漏电流。尤其需要注意的是,在使用类似下图的DCDC结构获得VCC(或者VPP)的时候,DCDC芯片的CE端实际上无法真正使输出为0,CE端的关闭只能使输出VOUT=VIN而已。需要在VIN之前关断电源。长期显示固定的画面,可能会引起OLED屏幕烧屏。我们需要去设置屏幕保护,让不停的变动显示内容。DS1302芯片用示波器测
41、量没有波形未必说明没有起振,原因是芯片的功耗都非常低,振荡电路都非常的脆弱,有的示波器一但碰到引脚就停振了。程序仿真过了,实际应用过不了,不能确认你的程序绝对没问题,程序问题的可能性在于:时序不对(文档是400K,未必400K绝对可以,跟环境有关),适当降低总线时钟;不同功能切换时间太短,仿真时可能不在全速或者有断点,全速度时这些缓冲时间没了,工作就当然正常了。秒寄存器的最高位置要提前清零,数据线漏加了10K的上拉电阻,导致烧坏了一个芯片。5总结 首先,我的毕业设计作品选择了PWM无极调光相关的,主要用到的部分有:IAP15W4K61S4微控制器作为我整套毕业设计作品的主控制器,使用 PWM高
42、调光比恒流LED光源驱动器模块作为LED光源的调节工具,我的LED光源采用的是3W的LED灯珠,带有铝基板进行散热。而人手想控制LED的亮度,则需通过触摸开关进行调节,按压时间决定亮度大小。除了照明调节以外,额外添加了部分功能进行互动,比如说使用DS1302 RTC时钟模块,能够给我们提供日常所需的时间信息、日历信息。还有DHT11温湿度传感器,能够采集当前环境下的温度、湿度,以便我们能够知道环境状态。此外,还配备了0.96寸的OLED显示屏,把上述的时钟日期信息,温湿度的数据显示。从刚开始焊坏板子,到一步一步在汇编的困难中慢慢找到体系,直到整套系统能够比较好的工作, 实现了人们对产品的多样化
43、的想法,LED光源在家庭之中使用会达到省电的效果,越来越低碳的生活方式可以给世界增添多一份色彩,环境更加美好。市场前景大好,会引起消费者的购买欲望。 参考文献1 余敏,可调光数字式LED驱动电源设计D,浙江理工大学,2012.2 郭天祥,新概念51单片机C语音教程 M,北京,电子工业出版社, 2009. 3 王水平,PWM控制与驱动器使用指南及应用电路M,西安电子科技大学,2004.4 马家辰,MCS-51单片机原理及接口技术M,哈尔滨工业大学出版社,1997.5 曲学基,稳定电源实用电路选编M,电子工业出版社,2003.6 周志敏,LED驱动电路设计与应用M,北京,人民邮电出版社,2006.
44、7 余锡存,单片机与案例及接口技术M,西安电子科技大学出版社,2007.8 冯大捷,基于DS1302电子时钟的设计J,科技视界,2012.9 崔惠柳,串行实时时钟芯片DS1302及其应用J,广西工学院学报,1998.10 黄明强,DS1302在单片机系统中的应用J,保定专科师范学校学报,2004.11 陈海宴,51单片机原理及应用M,北京,北京航空航天大学出版社,2010.12 楼然苗,单片机课程设计指导M,北京,北京航空航天大学出版社,2007.附录附录一:源代码/* * 描述:主函数 * 入口参数:无 * 返回值:无 */int main() uint8 i=0; /for循环量 uint
45、16 ledpwmval=0; /PWM量值 uint8_t temp3; /温度 uint8_t humidity3; /湿度 uint8_t strTemp13=Temperature:; /温度提示标题 uint8_t strHumidity10=Humidity:; /湿度提示标题/P0M1 = 0;P0M0 = 0;/设置P00P07为准双向口P2M1 = 0;P2M0 = 0;/设置P20P27为准双向口P3M1 = 0;P3M0 = 0;/设置P30P37为准双向口P4M1 = 0;P4M0 = 0;/设置P40P47为准双向口P5M1 = 0;P5M0 = 0;/设置P50P57为准双向口delay_ms(10); /初始化后需要延时 OLED_Init(); /对OLED 0.96寸显示屏PWM6PWM7_Configuration(); /初始化PWM6和PWM7EA = 1; /总中断开启/清空显示OLED_Fill(0x00);OLED_Fill(0x00);OLED_Fill(0x00); /初始化显示for(i=0; i= 60)F0 = 1;/读出秒部分超出范围判
限制150内