智能家居控制系统课程设计报告Word文档下载推荐.docx
- 文档编号:8097560
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:20
- 大小:499.07KB
智能家居控制系统课程设计报告Word文档下载推荐.docx
《智能家居控制系统课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能家居控制系统课程设计报告Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
设计目的:
巩固AD转换模块的应用—光照采集
把握PWM驱动蜂鸣器产生不同频率声音的方法
巩固SSI模块操纵数码管动态显示的方法
把握定时器操纵数码管实现动态扫描的思想
把握DS18B20检测温度的程序设计方法
把握一个完整项目的分析、规划、硬件设计、软件设计、报告撰写的流程方法。
具体任务:
1、编写〔或改写〕发光二极管、按键、继电器、定时器、数码管、ADC、PWM、温度传感器DS18B20等模块的初始化程序及差不多操作程序。
2、为保证数码管显示的稳固性,使用定时器定时扫描各个数码管,可幸免处理器在执行其他程序时,数码管停止扫描而使得显示不正常。
3、通过ADC模块采集开发板上的光敏电阻〔CH3〕,并在数码管低四位显示采集的值,将光照强度分为5级,亮度最亮时开发板上的4颗LED全部熄灭,亮度越来越低时,分别点亮1颗、2颗、3颗,完全黑暗时点亮4颗LED。
4、通过DS18B20检测环境温度,并在数码管高三位显示〔两位整数、一位小数〕,当环境温度低于设定的下限温度时,蜂鸣器报警,同时打开空调制热〔继电器〕;
当环境温度高于上限温度时,蜂鸣器报警,同时打开空调制热〔继电器〕。
5、通过开发板上的三个按键KEY1、KEY2、KEY4〔KEY3引脚与DS18B20共用,在此项目中不使用〕设定上下限温度:
KEY1按一次设定上限温度〔同时数码管显示上限温度〕,按两次设定下限温度〔同时数码管显示下限温度〕,按三次,设定完成〔同时数码管显示实时温度〕;
KEY2按一次,上限或下限温度加1;
KEY3—该引脚被DS18B20占用,不可使用!
!
KEY4按一次,上限或下限温度减1。
智能家居操纵系统设计
前言
当前,随着科学技术的进展,运算机、嵌入式系统和网络通信技术逐步深入到各个领域,使得住宅和家用电器设备网络化和智能化,智能家居差不多开始显现在人们的生活中。
智能家居操纵系统(smarthomecontrolsystems,简称SCS)。
它以住宅为平台,家居电器及家电设备为要紧操纵对象,利用综合布线技术、网络通信技术、安全防范技术、自动操纵技术、音视频技术将家居生活有关的设施进行高效集成,构建高效的住宅设施与家庭日程事务的操纵治理系统,提升家居智能、安全、便利、舒服,并实现环保节能的综合智能家居网络操纵系统平台。
智能家居操纵系统是智能家居核心,是智能家居操纵功能实现的基础。
通过家居智能化技术,实现家庭中各种与信息技术相关的通讯设备、家用电器和家庭安防装置网络化,通过嵌入式家庭网关连接到一个家庭智能化系统上进行集中或异地的监控和家庭事务治理,并保持这些家庭设施与住宅环境的和谐与和谐。
家居智能化所提供的是一个家居智能化系统的高度安全性、生活舒服性和通讯快捷性的信息化与自动化居住空间,从而满足21世纪新秀社会中人们追求的便利和快节奏的工作方式,以及与外部世界保持安全开放的舒服生活环境。
本文以智能家居宽敞的市场需求为基础,选取智能家居操纵系统为研究对象。
1硬件设计
本系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台,系统以32位单片机LM3S8962为主操纵器对各传感器数据进行采集,通过分析后去操纵各执行设备。
硬件电路部分为:
微操纵器最小系统电路、数据采集电路〔光敏电路、温度传感器、霍尔传感器〕、输出操纵电路〔继电器、蜂鸣器、发光二极管〕和八位LED数码管显示组成。
LM3S8962布局如图1-1所示,LM3S8962核心板外围电路如图1-2所示。
图1.1LM3S8962布局图
图1-2LM3S8962核心板外围电路
1.1ADC转换
数模转换〔ADC〕外设用于将连续的模拟电压转换成离散的数字量。
StellsrisADC模块的转换辨论率为10位,并最多可支持8个输入通道以及一个内部温度传感器。
ADC模块含有一个可编程的序列发生器,它可在无需操纵器的干扰的情形下对多个模拟输入进行采样。
Stellaris系列ARM集成有一个10位的ADC模块,支持8个输入通道,以及一个内部温度传感器,ADC模块含有一个可编程的序列发生器,可在无需操纵器干涉的情形下对多个模拟输入源进行采样。
每个采样序列队完全可配置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。
如输入源和输入模式,采样终止时的中断产生,以及指示序列最后一个采样的指示符。
图1.1-1为ADC输入测试电路示意图。
Stellaris系列MCU的ADC模块采纳模拟电源VDDA/GNDA供电。
RW1是音频电位器,输出电压在0V~3.3V之间,并带有手动旋钮,便于操作。
R1和C1组成简单的RC低通滤波电路,能够滤除寄生在由RW1产生的模拟信号上的扰动。
图1.1-1A/D转换电路原理图
1.2SSI操纵数码管显示
SSI模块驱动数码管显示,关于TexasInstruments同步串行帧格式,在发送每帧之前,每遇到SSICLK的上升沿开始的串行时钟周期时,SSIFss管脚就跳动一次。
在这种帧格式中,SSI和片外从器件在SSICLK的上升沿驱动各自的输出数据,并在下降沿锁存来自另一个器件的数据。
不同于其它两种全双工传输的帧格式,在半双工下工作的MICROWIRE格式使用专门的主-从消息技术。
在该模式中,帧开始时向片外从机发送8位操纵消息。
在发送过程中,SSI没有接收到输入的数据。
在消息已发送之后,片外从机对消息进行译码,并在8位操纵消息的最后一位也已发送出去之后等待一个串行时钟,之后以要求的数据来响应。
返回的数据在长度上能够是4~16位,使得在任何地点整个帧长度为13~25位。
图1.2-1显示了一次传输的TexasInstruments同步串行帧格式。
在该模式中,任何时候当SSI闲暇时,SSICLK和SSIFss被强制为低电平,发送数据线SSITx为三态。
一旦发送FIFO的底部入口包含数据,SSIFss变为高电平并连续一个SSICLK周期。
立即发送的值也从发送FIFO传输到发送逻辑的串行移位寄存器中。
在SSICLK的下一个上升沿,4~16位数据帧的MSB从SSITx管脚移出。
同样地,接收数据的MSB也通过片外串行从器件移到SSIRx管脚上。
然后,SSI和片外串行从器件都提供时钟,供每个数据位在每个SSICLK的下降沿进入各自的串行移位器中。
在已锁存LSB之后的第一个SSICLK上升沿上,接收数据从串行移位器传输到接收FIFO。
图1.2-1TI同步串行帧格式〔单次传输〕
图1.2-2TI同步串行帧格式〔连续传输〕
图1.2-2显示了背对背〔back-to-back〕传输时的TexasInstruments同步串行帧格式。
图1.2-3为LM3S8962实验板上数码管通过SSI端口连接的电路原理图。
图1.2-3SSI端口的数码管电路原理图
1.3按键和LED模块
图1.3-1和图1.3-2分别为LM3S8962实验板上的LED和KEY电路原理图,当有按键按下去时,与KEY对应的端口输出低电平,在程序中,当读取到对应的端口输入低电平常,表示有键被按下了,然后将与之关联的LED输出高电平。
图1.3-1为LED灯模块。
此模块中有4颗LED灯,阳极分别通过四个爱护电阻连接电源正极,阴极分别和PB0~PB3相接,当需要点亮某颗发光二极管时,只需要给相应的引脚写低电平就行了。
四颗发光二极管的供电通过了一个跳线帽J3,使用此模块前需要将此跳线帽盖上。
图1.3-2为按键模块的原理图。
K1~K4按键一端与公共地相接,另一端与接有高电平的上拉电阻以及MCU的PB4~PB7相接。
当按键断开时,PB4~PB7读取到的是高电平,当有按键闭合时,对应的引脚便会读到低电平,以判定出被按下的键,再有MCU作出相应的相应。
图1.3-1KEY电路原理图图1.3-2LED电路原理图
1.4PWM驱动蜂鸣器
PWM,脉冲宽度调制,是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。
在脉冲调制中使用高辨论率计数器来产生方波,同时能够通过调整方波的占空比来对模拟信号电平进行编码。
PWM发生器模块产生两个PWM信号,这两个PWM信号能够是独立的信号,也能够是一对插入了死区延迟的互补信号。
PWM发生器模块的输出信号在传递到器件管脚之前由输出模块治理。
LM3S8962实验板驱动直流电机和步进电机的电路原理图如图1.4-1所示,在本电路图中,引出了LM3S8962处理器的六路PWM输出,其中PWM0—PWM3用于驱动四相八拍步进电机,PWM4驱动直流电机,PWM5驱动无源蜂鸣器。
图1.4-1蜂鸣器电路原理图
2软件设计
软件设计要紧操纵光敏电阻电压采集处理与操纵部分、温度采集处理与操纵部分、霍尔传感器报警部分和辅助指示部分。
2.1ADC模块
该StellsrisADC提供以下特性:
☆最多可支持8个模拟输入通道。
☆单端和差分输入配置。
☆内部温度传感器。
☆最高能够达到1M/秒的采样率。
☆4个可编程采样序列,入口长度1~8,每个序列均带有相应的转换结果GPIO。
☆灵活的触发方式:
操纵器〔软件触发〕、定时器触发、模拟比较器触发、GPIO触发、PWM触发。
☆硬件可对多达64个采样值进行平均运算,以便提高ADC转换精度。
☆使用内部3V作为ADC转换参考电压。
☆模拟电源和模拟地跟数字电源和数字地分开。
2.1.1ADC模块原理描述
Stellaris系列ARM集成有一个10位的ADC模块,支持4—8个输入通道,以及一个内部温度传感器。
ADC模块含有一个可编程的序列发生器,可在无需操纵器干涉的情形下对多个模拟输入源进行采样。
每个采样序列均对完全可置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。
▽函数ADCSequenceEnable()和ADCSequenceDisable()用来使能和禁止一个ADC采样序列。
▽函数ADCSequenceDataGet()用来读取ADC结果FIFO里的数据。
▽函数ADCIntEnable()和ADCIntDisable()用来使能和禁止一个ADC采样序列中断。
▽函数ADCIntStatus()用来猎取一个采样序列的中断状态。
程序中通过配置ADC,采集光传感器的光照强度并转换,ADC采样完成后触发中断,在中断中修改采样终止操纵变量ADC_EndFlag。
2.1.2ADC模块程序设计流程图
2.2SSI模块
SSI总线系统是一种同步串行接口,它能够使MCU与各种外围设备以串行方式进行通信以交换信息。
外围设置FLASHRAM、网络操纵器、LCD显示驱动器、A/D转换器和MCU等。
SPI总线系统可直截了当与各个厂家生产的多种标准外围器件直截了当接口,该接口一样使用4条线:
串行时钟线〔SCK〕、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI〕。
SSI接口要紧应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SSI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
SSI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件。
2.2.1SSI模块原理描述
Stellaris系列ARM的SSI〔SynchronousSerialInterface,同步串行接口〕是与具有FreescaleSPI〔飞思尔半导体〕、MicroWire〔美国国家半导体〕、TexasInstruments〔德国仪器,TI〕同步串行接口的外设器件进行同步串行通信的主机或从机接口。
SSI具有以下特点:
●主机或从机操作。
●时钟位速率和预分频可编程。
●独立的发送和接收FIFO,16位宽,8个单元深。
●接口独立可编程,以实现FreescaleSPI、MicroWire或TI的串行接口。
●数据帧大小可编程,范畴4~16位。
●内部回环测试模式,可进行诊断/调试测试。
SSI模块的配置由SSIConfigSetExpClk()函数来治理,它要紧设置SSI协议、工作模式、位速率和数据宽度。
但为了实际的方便,常用函数SSIConfig()代替。
▼函数SSIDataPut()将把提供的数据放置到特定的SSI模块发送FIFO中。
▼函数SSIDataGet()将指定SSI模块的同意FIFO猎取接收到的数据。
▼函数SSIIntEnable()使能单独的一个或多个SSI中断源。
▼函数SSIIntStatus()猎取SSI当前的中断状态。
在使用SSI可通过置位RCGC1寄存器的SSI位来使能SSI外设时钟。
针对不同的帧格式,SSI可通过以下步骤进行配置:
★确保在对任何配置进行更换之前先将SSICR1寄存器中的SSE位禁止。
★SSI引脚配置。
★确定SSI为主机依旧从机。
★通过写SSICR0寄存器来配置时钟预分频除数。
★写SSICR0寄存器,实现串行时钟率、协议模式、数据长度配置。
★通过置位SSICR1寄存器的SSE位来使能SSI。
★通过SSIDR进行读写操作。
2.2.2SSI模块程序设计流程图
2.3定时器模块
2.3.1定时器模块原理描述
定时器的工作原理差不多上对某一特定的时钟进行计数。
如系统时钟为6MHz,那么定时器每计一次数那么为6M分之一秒,假如定时一秒钟,那么定时器需要计数6M次。
定时器API分成3组函数,分别执行以下功能:
处理定时器配置和操纵、处理定时器内容和执行中断处理。
Timer模块的功能在总体上能够分为32位模式和16位模式两大类。
在32位模式下,TimerA和TimerB被连在一起形成一个完整的32位计数器,关于Timer的各项操作,如装载初值、运行操纵、中断操纵等。
在32位模式下,对TimerA的操作作为整体上的32位操纵,而对TimerB的操作无任何成效。
在16位模式下,对TimerA的操作仅对TimerA有效,对TimerB的操作仅对TimerB有效,即对两者的操控是完全独立进行的。
函数TimerConfig()用于配置Timer模块的工作模式,即32位或16位工作模式。
函数TimerIntEnable()使能Timer中断。
函数TimerLoadSet()设置装载值。
函数TimerEnable()使能Timer计数。
函数TimerIntStatus()猎取当前Timer的中断状态。
程序中使用定时器模块,设置为32位周期定时器,每隔10ms扫描一次数码管:
TimerConfigure(TIMER0_BASE,TIMER_CFG_32_BIT_PER);
TimerLoadSet(TIMER0_BASE,TIMER_A,60000);
TimerIntEnable(TIMER0_BASE,TIMER_TIMA_TIMEOUT);
//超时中断
对数码管的动态显示,是通过定时器中断的方式来扫描的。
因此,涉及到中断服务例程和定时器中断的设置。
2.3.2定时器模块流程图
2.4DS18B20模块
运用DS18B20检测温度。
假设指令成功地使DS18B20完成温度测量,数据储备在DS18B20的储备器。
一个操纵功能指挥指示DS18B20的演出测温。
测量结果将被放置在DS18B20内存中,并能够让阅读发出经历功能的指挥,阅读内容的片上储备器。
温度报警触发器TH和TL都有一字节EEPROM的数据。
假如DS18B20不使用报警检查指令,这些寄存器可作为一样的用户经历用途。
在片上还载有配置字节以理想的解决温度数字转换。
写TH,TL指令以及配置字节利用一个经历功能的指令完成。
通过缓存器读寄存器。
所有数据的读,写差不多上从最低位开始。
2.4.1DS18B20模块原理描述
DS18B20的1、2、3引脚分别是Vcc〔电源正〕、DQ〔数据输出〕和GND〔电源地〕。
DS18B20通过引脚2将采集到的数据传输给MCU的PB6引脚,交由MCU处理。
如图2.4.1-1所示:
图2.4.1-1DS18B20原理图
2.4.2DS18B20模块程序设计流程图
2.5按键模块
当有按键按下去时,与KEY对应的端口输出低电平,在程序中,当读取到对应的端口输入低电平常,表示有键被按下了,然后将与之关联的LED输出高电平,即可达到实验内容的要求。
2.5.1按键模块原理描述
按键可用于调控温度上下限的数值。
按一下key1键,再按key2,完成了对上限温度的加操作,按key4,完成对下限温度的减操作。
按两下key1键,再按key2,完成对上限的减操作,按key4,完成对下限的减操作。
当处于上下限温度调剂时,数码管前三位显示的不是当前温度,而是上下限温度的数值。
2.5.2按键模块程序设计流程图
2.6PWM模块
Stellsris系列ARM提供4个PWM发生器模块和一个操纵块。
每个PWM发生器模块包含1个定时器〔16位递减或先递增后递减计数器〕、2个比较器、1个PWM信号发生器、1个死区发生器,以及一个中断/ADC触发选择器。
而操纵模块决定了PWM信号的极性,以及将哪个信号传递到管脚。
PWM发生器模块产生两个PWM信号,这两个信号能够是独立的信号,也能够是一对插入了死区延迟的互补信号。
PWM发生器模块的输出信号在传输到器件管脚之前由输出操纵模块治理。
Stellsris系列ARM的PWM特性:
▲4个PWM发生器,产生8路PWM信号。
▲灵活的PWM产生方法。
▲自带死区发生器。
▲灵活可控的输出操纵模块。
▲安全可靠的错误爱护功能。
▲丰富的中断机制和ADC触发。
2.6.1PWM模块原理描述
脉冲宽度调制〔PWM,Pulse-WidthModulation〕,也简称为脉宽调制,是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。
在脉宽调制中使用高辨论率计数器来产生方波,同时能够通过调整方波的占空比来对模拟信号电平进行编码。
PWM通常使用在开关电源和电机操纵中。
2.6.2PWM模块程序设计流程图
2.6主函数模块
2.6.1主函数模块原理描述
每一个程序里面都必须要有一个主函数的存在。
开始从主函数开始,终止也在主函数终止。
主函数要紧功能是能够调用各个模块的函数从而进行程序的运行,当完成各个模块的程序后,从主函数中终止。
2.6.2主函数模块程序设计流程图
3.验证结果
操作步骤和结果描述
编写完源程序后,编译源文件,并修改,直至编译通过。
用D型USB线连接TF-LM3S8962开发板,按下电源开关,并在Keil软件中点击download按钮,将编译通过后的可执行文件烧写到开发板中,按一下核心板上的复位按键,程序开始运行。
程序运行后,数码管低三位显示当前室内温度,显示位数为3位,并带一位小数位。
当我们用手捏住DS18B20后,我们发觉,当前显示的温度快速增长,然而达到一定值时,温度将坚持一定的幅度,差不多不再发生变化;
松开手后,温度直线下降,最后将保持在室内温度的水平,而差不多不再发生变化。
当温度达到28度时,蜂鸣器报警,继电器开始工作,以模拟空调制热;
当温度达到31度时,蜂鸣器也开始报警,然而发出的声音与之前的声音不同,同时,继电器开始工作,以模拟空调制冷。
通过ADC模块采集开发板上的光敏电阻〔CH3〕,并在数码管低四位显示采集的值,将光照强度分为5级,当光照强度小于300时,四颗发光二极管同时点亮;
光照强度小于500时,点亮了三颗发光二极管;
光照强度小于700时,点亮了两颗发光二极管;
光照强度小于900时,点亮一颗发光二极管;
大于900时,四颗发光二极管都处于熄灭状态。
即亮度最亮时开发板上的4颗LED全部熄灭,亮度越来越低时,分别点亮1颗、2颗、3颗,完全黑暗时点亮4颗LED。
通过开发板上的三个按键KEY1、KEY2、KEY4〔KEY3引脚与DS1820共用,在此项目中不使用〕设定上下限温度:
KEY3——该引脚被DS18B20占用,不可使用!
同时,数码管显示当前的实时温度。
总结
通过本次综合实训,我发觉了自己存在专门多不足,尽管往常也做过如此的设计,但这次设计确实让我长进了专门多,我对智能家居操纵系统有了深入的了解,通过这次设计,我将本学期所学的嵌入式知识贯穿起来,我不仅仅只学到了嵌入式的理论知识,我还将它运用到了实际中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习嵌入式更是如此,技术只有在经常的实际运用过程中才能提高,这确实是我在这次课程设计中的最大收成。
因此,这次智能家居操纵系统设计能够圆满完成,第一要感谢老师的细心指导,为我们指引方向;
其次感谢我的同学们在我迷茫时,关心我理清思路。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能家居 控制系统 课程设计 报告