目录目录 (1)第一章概述 (2)1.1 设计题目 (2)1.2 设计目的 (2)1.3 设计器材 (2)1.4 任务分析 (2)第二章设计原理 (3)2.1 嵌入式操作系统的概述 (3)2.2设计原理 (3)第三章系统设计 (5)3.1 系统需求分析 (5)3.2 硬件设计 (5)3.3 软件设计 (6)第四章详细设计 (8)4.1主函数 (8)4.3湿度的转化实现代码 (9)4.4TFT屏幕显示设置 (9)4.5 下载运行 (9)总结 (10)致谢 (11)第一章概述1.1 设计题目在LPC2103开发板上,实现设定温度以及控制功能。
1.2 设计目的1、本次课程设计的主要目的是实现温度的控制功能,锻炼学生的动手能力以及注重课外实践的培养,使得理论与实践相结合;2、了解并掌握掌握相关专业课程知识和设计能力;3、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技术;4、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;5、加深对专业课的理解,强化学生的逻辑思维能力和动手能力,巩固良好的编程习惯,掌握工程软件设计的基本方法,为将来工作的学习打下坚实基础。
1.3 设计器材本课程设计需要的硬件要求和软件配置具体要求如下:硬件要求:一台PC机、LPC2103开发板一块;软件配置:KEIL软件、J-Flash ARM,串口助手;1.4 任务分析有许多客观需求促进了ARM处理器的设计改进。
首先,便携式的嵌入式系统往往需要电池供电,为降低功耗,ARM处理器已经被特殊设计成较小的核,从而延长了电池的使用时间。
高的代码密度是嵌入式系统的又一个重要需求。
由于成本问题和物理尺寸的限制,嵌入式系统的存储器是很有限的。
所以,高的代码密度对于那些只限于在板存储器的应用是非常有帮助的。
另外,嵌入式系统通常都是价格敏感的,因此,一般都使用速度不高,成本较低的存储器。
ARM内核不是一个纯粹的RISC体系架构,这是为了使他能够更好的适应其主要应用领域——嵌入式系统。
在某种意义上,甚至可以认为ARM内核的成功,正是因为它没有在RISC 的概念上沉入太深。
本系统的设计过程中,根据嵌入式系统的基本设计思想,系统采用了模块化的设计方法,并且根据系统的功能要求和技术指标,系统遵循自上而下,由大到小,由粗到细的设计思想,按照系统的功能层次,在设计中把硬件和软件分为若干功能模块设计和调试,然后全部连接起来统调。
第二章设计原理2.1 嵌入式操作系统的概述嵌入式系统是集成电路发展过程中的一个标志性成果,它把计算机直接嵌入到应用系统中,融合了计算机软/硬件技术、通信技术和微电子技术,是一种微电子产业和信息技术产业的最终产品。
微电子产业是许多国家优先发展的产业。
以超深亚微米工艺和IP核复用技术为支撑的系统芯片技术是国际超大规模集成电路发展的趋势和21世纪集成技术的主流。
2.1.1 嵌入式操作系统的特性随着计算机技术和产品向其它行业的广泛渗透,由于嵌入式系统具有小巧、高度自动化、响应速度快的特点,因而非常适应信息家电和现代控制设备的需要,嵌入式技术成为了一个研究热点。
嵌入式系统,是将计算机直接嵌入至系统中,是信息IT的最终产品。
它根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,实现软件与硬件一体化。
2.1.2 嵌入式操作系统的分类嵌入式操作系统是随着嵌入式系统的发展出现的。
从应用范围角度大致可以分为可分为专用型(如Ucos、Windows CE、VxWorks、嵌入式Linux等)和通用型(如Palm OS、Symbian)的嵌入式操作系统等。
从实时性的角度大致可以分为实时嵌入式操作系统和一般嵌入式操作系统。
2.1.3 嵌入式操作系统的特点嵌入式操作系统是对通用操作系统的继承和发展,具有操作系统的基本功能,包括指令执行、任务调度、存储器管理、设备管理和中断处理等。
但是,由于嵌入式系统的硬件环境和程序运行需求有很大限制,所以嵌入式操作系统又有如下并不同于一般操作系统的特点。
(1)资源限制。
嵌入式操作系统一般只有64MB内存,而且非易失性FLASH通常也就32MB,因此,操作系统运行时,就不能像在PC上那样使用资源了。
(2)安全性限制。
在嵌入式领域,系统在运行之后一般都不能在短时期内停机或者重启,因此死机、蓝屏是绝对不允许的。
(3)可移植性。
2.2设计原理本次课程设计采用SHT10传感器温湿度监测系统,通过SHT10检测室内温度,如果检测到的温度超过设定值时,由LPC2103输出控制信号启动相应的中断报警功能。
温湿度传感器模块默认使用处理器的IIC总线,需要连接开发板的P1端口,IIC总线需要接上拉电阻。
2.2.1 IIC总线IIC总线是一种二进制总线,它通过SDA(串行数据线)及SCL(串行时钟线)连接到总线上的器件,并根据地址识别每个器件。
支持IIC的设备有微控制器,ADC,DAC,存储器,LCD控制器,LED驱动器以及实时时钟等,通过软件寻址实现片选,减少器件片选线的连接。
2.2.2 数字温湿度传感器SHT10SHT10系列单芯片传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用于专利的工业COMS过程微加工技术(CMOSens),确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包含一个电容式聚合体测湿元件和一个能隙式测温元件,并与一个14位的AD转换器以及串行接口电路在同一芯片上实现无缝连接。
因此,该产品具有品质卓越,超快响应,抗干扰能力强,性价比极高等优点。
SHT10的供电电压为2.4-5.5v。
传感器上电后,要等待11ms以越过休眠状态,在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可以增加一个100NF的电容,用以去耦滤波。
串行接口(两线双向),SHT10的串行接口,在传感器信号的读取以及电源损耗方面,都做了优化处理,但与IIC接口不兼容。
串行时钟输入(SCK),SCK用于微处理器与SHT10之间的通讯同步,由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
串行数据(SDA)DATA三态门用于数据的读取,DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部上拉电阻将信号提升至高电平。
上拉电阻通常包含在微处理器的IO电路中。
第三章系统设计3.1 系统需求分析3.1.1 课程设计内容基于LPC2103开发板,完成设定温度控制功能。
3.1.2 课程设计要求(1)熟悉ARM开发板工作及开发环境;(2)熟悉ARM处理器的定时器控制及工作原理;(3)采用温度传感器测试温度用继电器控制加热器,实现设定温度的控制;(4)在LCD屏幕显示当前的温度和设置温度。
(5)控制温度可以设置。
3.2 硬件设计3.2.1 ARM处理器ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。
ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
(1)ARM处理器系列ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列Intel 的Xscale Intel的StrongARM ARM11系列,其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。
(2)ARM处理器特点1、体积小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3、大量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定。
(3)指令结构ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。
其中,ARM指令为32位的长度,Thumb指令为16位长度。
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
3.3 软件设计3.3.1 KEIl软件开发环境的使用建立一个新的工程,单击Project菜单,在弹出的下拉菜单中选中New Project选项,然后选择保存路径,输入工程的文件名字,然后单击保存,根据处理器的型号选择NXP(founded by Philips)的LPC2103处理器,接下来就是软件的详细设计环节了。
3.3.2 SHT10的相关命令定义、#define TEM_TEST 0x03//温度检测命令#define HUM_TEST 0x05//湿度检测命令#define REG_READ 0x07//读寄存器#define REG_WRITE 0x06//写寄存器#define FUNCTION_SET 0x01//设置SHT11的工作精度为8位/湿度12位温度#define SHT_SCK 0x00000400//p0.10#define SHT_DATA 0x00000800//p0.11#define SCL 1<<47#define SDA 1<<48unsigned int flag_tempeture,flag_humidity;3.3.3 相关函数的说明1. void Delay()函数名称:Delay(),函数功能:SHT10内部延时2. void Delay_Ms(unsigned int ms),函数名称:Delay_Ms(),函数功能:SHT11检测等待延时函数,说明:11ms/55ms/210ms 分别对应8位/12位/14位测量结果对应的形参为N 则延时Nms;3. void SHT11_Start()函数功能:SHT11启动时序4. void SHT11_Sendbyte(unsigned char dat) 函数名称:SHT11_Sendbyte(uchar dat)函数功能: 向SHT11发送8bite数据5. void SHT11_Answer()函数名称SHT11_Answer():函数功能:检测SHT11的响应信号(在第九个时钟周期)6. void SHT11_Test_Finish()函数名称:SHT11_Test_Finish()函数功能:检测SHT11温湿度检测是否完毕7. unsigned char SHT11_Receivebyte()函数名称:SHT11_Receivebyte()函数功能:从SHT11接收8bite数据8. void ARM_Answer()函数名称:ARM_Answer()函数功能:ARM向SHT11发送应答信号9. void SHT11_End()函数名称:SHT11_End()当接收两个8byte数据后部接收CRC校验码10. void SHT11_Write_Register(unsigned char command ,unsigned char dat) 函数名称:void SHT11_Write_Register(uchar command ,uchar dat)函数说明:向SHT11的状态寄存器设置功能command为REG_WRITE 0x06写寄存器dat为设置SHT11的功能可以设置检测的数据位数。