1、3软件设计由于原因将第三章提前了,可忽略不看,可直接跳过第三章从后面看起,整体顺序没变。Keil uVision开发平台:Keil uVision IDE开发平台简称Keil,Keil支持ARM、C51、C166、C251等类型微控制器,能够提供灵活编程的环境进行开发。该开发平台集合项目管理,运行环境,编译代码链接,源代码编辑,程序调试等功能,为开发提供强有力的帮助,一个开发平台集成上述功能,简化开发环境部署,无需多个程序即可完成开发。Keil十分利于新手进行开发,他的易用性能够加快你的嵌入式系统软件开发,能够支持多窗口进行编辑,创建新的源代码以及项目文件管理。Keil内集成的程序调试器,提供
2、了一个独立环境,支持你进行测试,功能验证,定制应用代码。调试器不仅包含了传统的功能,还包括比如说断点,窗口预览,程序执行控制,以及硬件内部操作全可视化等操作。Keil支持C语言、C+语言、汇编语言进行开发,也是各地公司、高校使用频率较高的开发平台。本毕业设计中,用的最多的是C语言,C语言通过Keil内部的编译器,将C语言转换为机器语言,使得我们的微控制器能够识别并执行。相对来说,C语言开发效率较高,比较通用,因此采用C语言进行设计。在程序开头做好相关的准备,不能着急直接开始进行代码的编写。回顾本作品的相关外设,有 PWM无极调光模块,OLED 0.96寸SPI型显示屏,TTP223触摸开关模块
3、,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 头文件定义图此处需要包含所有库文件,不可缺漏,否则会导致相关硬件的代码无法通过编译,从而使得硬件无法正常工作。为了更加方便的编写代码,还需要将数据类型提前定义好,以便后面进行使用,
4、直接使用数据类型更加快捷,也加快了整体程序开发的进展。如图3-2。图3-2 时钟与温湿度模块代码图3.1主时钟的定义做系统主时钟的定义,是因为IAP15W4K61S4微控制器集成系统内部可变时钟,根据所需程序的时钟速度进行设置,无需外部外接晶振,大大提高了硬件、软件的开发效率。定义好RTC所需要的全局变量,使得后面OLED 0.96寸上128*64的显示设置更加方便,同时此处做好准备便于代码衔接。下一步进行引脚端口的定义声明,为后续按键,LED灯占用相应的微控制器的GPIO口进行准备。接下来是微控制器相关资源的初始化, PWM无极调光模块需要用到内部的PWM资源,需要专门进行指定PWM通道、P
5、WM中断服务进行初始化。进行完PWM相关资源的初始化后,需要声明定义延时函数,以至于关系到后续传感器采集数据,OLED显示屏刷新延时等等相关参数设定。综上程序为主函数程序必备所需的准备工作,接下来为主函数主体详细内容,包含所有传感器外设工作所需内容,独立外设所需的代码将在下一个小结进行详细解释,为了方便,我们将会对这些独立外设所需的代码,另成一个C源文件,便于管理。OLED 0.96寸SPI协议单色显示屏针对中景园生产的0.96寸SPI通信协议的OLED显示屏技术手册提供的时序图。如图3-3所示:图3-3 n行m列OLED屏扫描原理时序图3.2 SPI协议的定义先来解释,SPI是Serial
6、Peripheral Interface三个英文单词的首字母缩写,用中文来说即为串行通信外部接口,是摩托罗拉公司首次在MC68HC系列处理器定义。如果要用好SPI协议,则需要关注SPI通信时序根据几根关键的线:SDO主设备输出从设备输入(数据输出),SDI主设备输入从设备输出(数据输入),SCLK时钟信号,CS使能信号(片选)。主要工作方式为主从方式工作,此处的主设备为IAP15W4K61S2微控制器,从设备此处为OLED 0.96寸SPI协议单色显示屏。从上图可知,行同步信号依次输出,等到信号序列1位置,帧同步信号置高电平,依此类推,每逢行同步信号序列1处,帧同步信号跟着一起置高电平,产生的
7、周期即为TFRM。行扫描信号产生在行同步信号序列1的下降沿位置,整个周期在行同步信号序列1和行同步信号序列2的下降沿区间段,即为TLINE。第二行的扫描信号往下类推,也就是行同步信号序列2的下降沿至行同步信号序列3的下降沿区间段,同样是TLINE。后面一直到n行扫描信号均是如此。因为SPI通信协议支持同时送数据以及送地址,于是出现了图中第一列数据是跟随着第一行扫描信号同步进行的。此处的数据写入,按照一个字节进行写入,能够根据时序图的运作状态,较好的实现数据写入,为后续显示更多内容做好铺垫。后续需要制定好数据在OLED显示屏内显示的位置,需要做好坐标管理,把相关的代码需要进行整理并且编写入源文件
8、内。后续发现当前的数据内容没有办法按照指定的位置显示,原因出在我们的程序初始化部分内容:需要提前列出页地址,设置好初始的显示位置,再进行指定位置坐标设定,数据写入,地址送入,才能够正确的显示出来。除此之外还需要设置好OLED相关参数,比如说地址,复位信号,还有清除数据,重新指定初始地址等等。因此初始化程序必不可少,否则内部不完整的数据导致后续显示内容不正常,因此需要补齐初始化内容。初始化做好以后,再想进一步显示指定区域的数据内容,找到初始位置的数据后,进行位置平移以及数据处理,再显示在OLED上,显得更加定制化。由于我们要达到最终的要求,我们需要显示出中文内容,不能够纯粹只显示常量内容,还需要
9、增加其他的内容,包括变量,中文说明。于是先从字符开始做起,能够显示出字符,后续想要显示出中文则困难相对小一些,本着一通百通的想法,继续接着为中文显示进行铺垫。查阅了相关的网页信息后,还需要准备中文字库,字库需要有字体类型,字体大小等等相关的源代码才能够显示出中文。后续能够显示出中文汉字,是通过取字模软件生成文字相关参数文件,形成对应的字库源代码,经过程序内的生成代码插入,从而达到中文显示。要想正确的使用DHT11温湿度传感器,首先需要了解DHT11数字温湿度传感器的相关技术文档,发现DHT11温湿度传感器采用的是单总线双向串行通信协议,每次采集都需要主设备IAP15W4K61S2微控制器进行采
10、集信号的发起,然后DHT11会向主设备IAP15W4K61S2微控制器送入传输开始的40bit数据帧进行确认传输,以MSB作为起始端,格式默认为:8bit湿度整型数据,8bit湿度浮点型数据(浮点型数据为0),8bit温度整型数据,8bit温度浮点型数据,8bit校验和数据。如果传送数据正确时,校验和数据为8bit湿度整型数据,8bit湿度浮点型数据,8bit温度整型数据,8bit温度浮点型数据的末八位数据。因此,在源程序编写的时候,可以密切留意此处的校验和数据结果作为数据正确与否。图3-4 HDT11时序图根据上述时序图可知:每次IAP15W4K61S2微控制器发起信号采集信号时,DHT11
11、会从低功耗模式切换到高速模式,一旦数据采集完成,则又会重新恢复到低功耗模式,如此循环采集温湿度信息。在DHT11技术手册上明确指明,起始信号有明确的低电平时间,在单总线定义下,微控制器需要将SDA数据总线电平拉低18ms-30ms作为起始信号,而DHT11需要在此起始信号后进行相应,DHT11传感器需要将SDA数据总线电平先拉低83us,后87us拉高进行响应IAP15W4K61S2微控制器。后续DHT11传感器将数据通过SDA数据总线送出40bit数据,以MSB优先。40bit数据举例:0011 1011湿度高8bit 0000 0000湿度低8bit 0001 1011温度高8bit 00
12、00 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 DS1302时序图根据官方提供的数据手册,DS1302时钟芯片最重要的功能是数据读写,由于DS1302为串行通信(脉
13、冲串类型),只能够先读写地址,后读写数据。当CE使能信号为高电平时,DS1302芯片处于工作状态,SCLK时钟信号上升沿作为地址命令的读写,而时钟信号下降沿作为数据读写,结束时需要将CE下拉回低电平。共为8位地址,8位数据。时钟源是有32.768K晶振提供,因此依靠此时钟信号进行计时。由于内部时间是通过暂存器进行存储,因此获取时间需要通过访问暂存器进行读取时间信息。此部分代码较简单,选择好指定的暂存器区域进行访问,则可以得到所需要的时间信息,显示出来则需要整理数据信息,才能够按指定格式输出。基于PT4115的智能台灯控制系统设计1绪论 项目背景现在的我们步入了大数据时代,器械智能化的高效率不断
14、的代替了人工的效率,人类的生活方式越来越多元化,产品的实用性是许多人的首选。OLED全称Organic Light-Emitting Diode,中文名为:有机发光二极管。这款产品拥有的OLED屏幕是各个独立发光的像素点,即精准度极高,在背景纯黑的情况下,可以不需要发光就可以呈现真实深邃的黑色,多种智能手机屏幕也是采用OLED显示屏,这种超视网膜的显示屏,材料出众,塑料是容易成形且耐用的材质。台灯是每家每户的必需品,在这个竞争化大的时代,消费者对商品的功能不仅就此一个,买东西会再三斟酌。2010年LED灯成为了农业界和园林艺术界的榜上话题,美国国家航空总局在太空率先使用LED灯进行栽种,由此之
15、后,商业的室内园艺,农业生产和家用也跟随着脚步。这些专用的LED灯经过设计,能促植物生长之余,也减少了有些植物对一些光波不吸收而造成的浪费。在家用上除了提供日常光照外,更可以对室内的植物进行光能的补给,更好的进行光合作用,并且LED灯的发热少,能减少植物的蒸腾作用,加速植物生长。普通和特殊的照明均可以使用LED灯。发出白光的传统颜色的灯通常情况下要增加滤镜,为了分隔开其他颜色所造成的损耗,导致效益和能源低下,LED不仅可以发出单色光还不需要增添滤镜。和荧光灯相比较,它并不含有汞元素,开灯即亮、常开常关的优点但无损伤它的寿命,坚硬,不容易被破坏。环保,对视力伤害不大,可以用来保护视力。OLED的
16、缺点:1) OLED受电压的改变而稍微改变颜色,相同画面内播放时间长,会容易产生烙印,寿命相对其他的显示屏相对短。2) 黑色光显示时,非常省电,但是使用白光的时候,耗电量增大几倍,不省电。3) 从侧面角度观看容易使屏幕产生溢光现象和容易发生色彩偏差。 LED的缺点:1) 制造成本较高,价格稍贵于正常灯的价格,家庭使用可能会有经济负担。2) 光源属于方向性,长期点照,还有色温偏移的情况。RA(演色性),目前尚未能取代某些特殊照明的超高演色性(RA95-100),还需要考虑光学设计,会造成大量灯有亮度却没有光照度。3) 它并不适合于在潮湿地带使用,色温容易发生偏移,防水设计的成本较高,散热重量不利于灯源设计。这项产品设计最主要是切合百姓生活的实用性、智能性与多功能性集合的器件,温湿度和时钟显示给人类的生命活动带来了便捷性,依据市场经济实用模式来设计这