ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:313.93KB ,
资源ID:8198949      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8198949.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于嵌入式的温度传感器的设计42132.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于嵌入式的温度传感器的设计42132.docx

1、基于嵌入式的温度传感器的设计42132第一章 系统概要1.1 系统背景 温度是日常生活、工业、医学、环境保护、化工等领域遇到的一个物理量。温度测量的基本方法是使用温度计直接读取。最常见的测量温度的工具是各种各样的温度计,它们常常以刻读的形式表示温度的高低,人们必须通过读取刻度的多少来测量温度。由于单片机在检测和控制系统中得到广泛的使用,利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值并显示出来,既简单方便,又直观准确。 本次课程设计的目的是以MC908GP32单片机为核心设计出一个路温度测量系统。设计将温度传感器采样得到的模拟信号转换成数字信号,通过串口在PC的

2、界面显示出来。本次课程设计用温度传感器将被测温度转换为电量,经过放大滤波电路处理后,由模数转换器将模拟量转换为数字量,再和单片机相连,通过可编程键盘显示接口芯片实现温度限值的设定。.被测量经过温度传感器转换为电量,再放大后送给A/D转换器。电量经过A/D转换为二进制数值,单片机根据设计目的完成相应的软件处理。处理完毕后,送键盘显示处理芯片,然后再由数码管显示。这是一种低成本的利用单片机I/O口实现的温度检测电路,该电路非常简单,易于实现,并且适用于几乎所有类型的单片机。1.2 系统功能框图 数据采集和传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片

3、机、PC或其它设备)组成。 A/D转换模块即模/数转换模块,功能是将电压信号转换为对应的数字信号。实际使用中,这个电压信号可能由温度,湿度,压力等实际物理量经过传感器和相应的交换电路转换而来。经过A/D转换后,MCU就可以处理这些物理量。 第二章 系统硬件设计2.1 系统原理图 整个系统软件设计分为两个部分,作为主控的PC端的软件设计及作为数据采集器的单片机终端节点的软件设计。系统采用模块化编程,将各部分功能分别实现,主要的功能子程序有:数据采集、标度变换、数制转换、数值显示、发送、接收和部分中断子程序。 图2.1 系统原理图2.2 单片机(MCU)模块2.2.1 MC908GP32单片机性能

4、概述 MC908GP系列单片机是HC80系列单片机大家族中具有通用性的一族,MC908GP32是MC908GP系列中的一个型号,MC908GP32单片机具有3种封装形式,分别为40脚、42脚、44脚。MC908GP32单片机的主要特点如下:(1)512B片内RAM;32KB片内Flash程序存储器,具有在线编程能力和保密功能。(2)时钟发生器模块,具有PLL电路,可产生各种工作频率;内部总线频率最高可达8MHz。(3)增强的HC50 CPU结构,16种寻址方式(比HC50多8种),16位变址寄存器和堆栈指针,存储器至存储器数据传送,快速8*8指令,扩展的循环控制功能,BCD功能。(4)33根通

5、用I/O脚,包括26根多功能I/O脚和5或7根专用I/O脚;PTA、PTC和PTD的输入口有可选择的上拉电阻;PTC0PTC4有25mA吸流和放流能力,其他口有15mA吸流和放流能力(总体驱动电流应小于150mA);所有口有最高5mA输入电流保护功能。(5) 增强型串行通信口SCI;串行外围接口SPI;两个16位双通道定时器接口模 块(TIM1和TIM2),每个通道可选择为输入捕捉、输出比较和PWM,其时钟可分别选为内部时钟的1、2、4、8、16、32和64的分频值;带时钟预分频的定时基模块有8种周期性实时中断(1、4、16、256、512、1024、2048和4096Hz),可在STOP方式

6、时使用外部32KHz晶振周期性唤醒 CPU;8位键盘唤醒口。(6)系统保护特性:计算机工作正常(COP)复位;低电压检测复位,可选为3V或5V操作;非法指令码检测复位;非法地址检测复位。(7)具有PDIP40、SDIP42和QFP44封装形式。(8)优化用于控制使用;优化支持C语言。2.2.2 内部结构简图和引脚功能1. 内部结构简图(44引脚) 单片机(以下简称GP32单片机)的三种封装形式只是引脚数量和形式有所区别,其它方面是一致的。图中I/O口是按 44引脚的GP32给出的,对于42引脚的GP32单片机则没有PTC5、PTC6两个引脚,对于40引脚的GP32单片机则没有PTC5、PTC6

7、及 PTD6/T2CH0、PTD7/T2CH1四个引脚。从内部结构简图可以看出,GP32内部有以下主要部分:CPU08、存储器、定时器接口模块、定时基模块、看门狗模块、通用I/O接口、串行通信接口 SCI、串行外设接口SPI、断点模块、A/D转换模块、键盘中断模块、时钟发生模块及锁相环电路、低电压禁止模块、复位和中断模块、监控模块MON和系统设置模块。2. GP32单片机的引脚功能40引脚的MC908GP32单片机的引脚图,引脚功能分类简介如下:(1) 电源类引脚VDD、VSS(20脚、19脚):电源供给端。VDDAD /VREFH、VSSAD /VREFL(31脚、32脚):内部A/D转换器

8、的电源供给及参考电压输入端。VDDA、VSSA(1脚、2脚):时钟发生器模块(CGM)的电源供给端。(2) 控制类引脚(6脚):外部低有效复位输入或输出脚,有内部上拉电阻。(14脚):外部中断输入脚,有内部上拉电阻。(3) I/O类引脚PTA7/KBD7PTA0/KBD0(4033脚):8位通用双向I/O口,每个可编程为键盘输入脚。PTB7/AD7PTB0/AD0(3023脚):8位通用双向I/O口,也可作为8路8位A/D转换输入脚。PTC4PTC0(117脚):5位通用双向I/O口。PTD5/T1CH1PTD0/ (22、21、1815脚):6种特殊功能、双向I/O口,其中T1CH1、T1C

9、H0用于定时器模块(TIM1)。SPSCK、MOSI、MISO、 用于串行外围接口(SPI)。PTE0/TxD、PTE1/RxD(12脚、13脚):2位双向I/O口或串行通讯口。(4) 其它CGMXFC(3脚):CGM的外部滤波电容连接脚。OSC1、OSC2(5脚4脚):片内振荡器引脚。2.2.3 GP32最小系统 最小系统图是能够保证单片机正常工作的最小模块,它使用了最少的器件,芯片,并组合了温度测量的一些必备组件,如蜂鸣器,电阻,二极管,电容等。各部件相互配合,共同完成了温度测量系统全部工作。 GP32最小系统1.电源供给和滤波 GP32芯片的20、19脚(VDD、VSS)为芯片的电源输入

10、端,1、2脚(VDDA、VSSA)为内部PLL模块的电源供给。接在电源和地之间的0.1µF电容为滤波电容。PLL电路目的在于由频率小的外部晶振产生较大频率的内部总线时钟,提高芯片的抗干扰性。由于这部分内容涉及的编程内容很少,但原理较难理解,所以放入第14章介绍。这里只要知道GP32内有PLL电路就可以了,而且GP32内的PLL电路模块需要外接电源。在MCU的第3脚,接有内部PLL模块的外部滤波电路。滤波电路的作用主要是增强电路工作稳定性。2.晶振电路 接MCU第4、5脚(OSC2、OSC1)之间的电路为晶振电路,这里选用的晶振频率为f=32.768KHz。通过内部PLL电路模块,可

11、获得小于等于8MHz的内部总线频率。电路及其元件参数是由GP32参考手册确定的。实际开发中,嵌入式使用工程师往往根据参考手册提供的电路及参数,通过自己的实践,构筑MCU的外围支撑电路,而不深究其工作原理。3.复位电路接在MCU第6脚( )的电路为芯片硬件复位电路。正常工作时该脚通过10K电阻接到电源正极(这里设为5V电源供电),所以应为高电平。若按下复位按钮RST,则第6脚通过51Ω接地,为低电平,芯片复位。2.3 传感器模块 温度传感器采用的是NS公司生产的LM35,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压和摄氏温度线性成比例。LM35和用开尔文标准的线性温度传感

12、器相比更有优越之处,LM35无需外部校准或微调,可以提供1/4的常用的室温精度。 工作电压:直流430V; 工作电流:小于133A 输出电压:+6V-1.0V 输出阻抗:1mA负载时0.1; 精度:0.5精度(在+25时); 漏泄电流:小于60A; 比例因数:线性+10.0mV/; 非线性值:1/4; 校准方式:直接用摄氏温度校准; 使用温度范围:-55+150额定范围。 基于LM35开发的温控系统,工作稳定可靠,具有体积小、灵敏度高、响应时间短、抗干扰能力强等特点。LM35的输出电压和摄氏温度的线形关系可用下面公式表示,0时输出为0 V,每升高1,输出电压增加10 mV。其电源供应模式有单电

13、源和正负双电源两种。正负双电源的供电模式可提供负温度的测量,单电源模式在25下电流约为50 mA,非常省电。2.4 信号放大模块 由于温度传感器LM35输出的电压范围为00.99 V,虽然该电压范围在AD转换器的输入允许电压范围内,但该电压信号较弱,如果不进行放大直接进行AD转换则会导致转换成的数字量太小、精度低。系统中选用通用型放大器A741对LM35输出的电压信号进行幅度放大,还可对其进行阻抗匹配、波形变换、噪声抑制等处理。系统采取同相输入,电压放大倍数为5倍,电路图如图所示: 信号放大电路图2.5 A/D转换模块2.5.1 进行A/D转换的基本问题A/D转换模块(Analog To Di

14、gital Convert Module),即模/数转换模块,是将电压信号转换为对应的数字信号。这个电压量是由压力传感器把压力转换过来,传到MCU处理。(1)采样精度:是指数字量变化一个最小量时模拟信号的变化量,即通常所说的采样位数。 (2)采样速率:是指完成一次A/D采样所要花费的时间。 (3)滤波:为了使采样的数据更准确,对采样的数据进行筛选去掉误差较大的毛刺。通常采用中值滤波和均值滤波来提高采样精度。中值滤波是取3次采样的中间值,均值滤波是取多次采样的算术平均值。 (4)物理量回归:把A/D采样值和实际物理量对应起来。2.5.2 A/D转换模块的基本编程方法(1)A/D转换初始化:对AD

15、CLK写入控制字节,决定时钟输入源是内部总线还是外部晶振,决定分频系数等。 (2)启动A/D转换:对ADSCR写入控制字节,选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换等。 (3)获A/D转换结果:若是中断方式,在A/D中断程序中取得,若是查询方式,通过ADSCR的第7位(COCO位)取得,当COCO=1时可从ADR中取数。2.5.3 A/D芯片TCL2543概述一、引脚:TLC2543为20脚DIP封装,引脚图如下图所示。 2.5.3.1 TLC2543引脚图 TLC2543具有4线制串行接口,分别为片选端(CS),串行时钟输入端(I/O CLOCK),串行数据输

16、入端(DATA IN)和串行数据输出端(DATA OUT)。它可以直接和SPI器件进行连接,不需要其他外部逻辑。同时,它还在高达4MHz的串行速率下和主机进行通信。 TLC2543除了具有高速的转换速度外,片内还集成了14路多路开关。其中n路为外部模拟量输入,3路为片内自测电压输入。在转换结束后,EOC引脚变为高电平,转换过程中由片内时钟系统提供时钟,无需外部时钟。在AD转换器空闲期间,可以通过编程方式进入断电模式,此时器件耗电只有25pA。AD芯片TLC2543是一种12位开关电容逐次逼近式模数转换器,带有SPI(Serial Peripheral Interface)接口。它消除了以往许多

17、AD芯片并行输出、连线复杂的缺点,并在AD转换结果串行输出的同时,可以串行输入下次AD转换位的控制字。TLC2543的管脚如图所示。它有三个输入控制端:片选()、 IO时钟(IOclock)以及数据输入端(Data Input),同时还可以通过一个串行的三态输出端和主处理器及其外围串行口进行通讯,以输出转换结果。除了高速的转换功能和通用的控制能力外, TLC2543的片内还具有14通道多路器,可以选择11个模拟输入通道(AIN0AIN10)或3个内部自测电压(selftest)中的一个。转换结束时,EOC输出端变高,指示转换完成。二、控制字:TLC2543的工作过程如下:首先在8、12或16时

18、钟周期里向片内控制寄存器写入8位的控制字,控制字中的2位决定时钟长度,在最后一个时钟周期的下降沿启动AD转换过程,经过一段转换时间,在随后的8、12或16个时钟周期里,从DATA OUT脚读出数据。控制字的定义见下表: 控制字的前四位(D7-D4)代表11个模拟通道的地址;当其为1100-1110时,选择片内检测电压;当其为1111时,为软件选择的断电模式,此时,AD转换器的工作电流只有25uA。控制字的第3位和第4位(D3一D2)决定输出数据的长度,01表示输出数据长度为8位;11表示输出数据长度为16位;X1表示输出数据长度为12位,X可以为1或0。制字的第2位(D1)决定输出数据的格式,

19、0表示高位在前,1表示低位在前。控制字的第1位(D0)决定转换结果输出的格式。当其为0时,为无极性输出(无符号二进制数),即模拟电压为Vnef+,时,转换的结果为0FFFH;模拟电压为Vnef-时,转换的结果为0000H。其为1时,为有极性输出(有符号二进制数),即模拟电压高于(Vnef+-Vnef-)/2时符号位为0;模拟电压低于(Vnef+-Vnef-)/2时符号位为1;模拟电压为Vnef+时,转换的结果为03FFH;模拟电压为Vnef-时,转换的结果为0800H。模拟电压为(Vnef+-Vnef-)/2时,转换的结果为0000H。三、工作时序 :以MSB为前导, 用CS进行12个时钟传送

20、的工作时序如下图所示。1.上电时,EOC=“1”,CS=“1”2.使CS下降,前次转换结果的MSB即A11位数据输出到Dout供读数。3.将输入控制字的MSB位即C7送到Din,在CS之后tsu=1.425us后,使CLK 上升,将Din上的数据移入输入寄存器。4.CLK下降,转换结果的A10位输出到Dout供读数。5.在第4个CLK下降时,由前4个CLK上升沿移入寄存器的四位通道地址被译码, 相应模入通道接通,其模入电压开始时对内部开关电容充电。6.第8个CLK上升时,将Din脚的输入控制字C0位移入输入寄存器后,Din脚即无效。7.第11个CLK下降,上次AD结果的最低位A0输出到Dout

21、供读数。至此,I/O数据已全部完成,但为实现12位同步,仍用第12个CLK脉冲,且在其第12个CLK下降时,模入通道断开,EOC下降,本周期设置的AD转换开始,此时使CS上升。8.经过时间tconv=10us,转换完毕,EOC上升。9.使CS下降,转换结果的MSB位B11输出到Dout供读数。10.将新周期的输入控制字的MSB位D7送到Din,在CS下降之处,tSU时间处由CLK上升将Din数据移入输入寄存器。11.CLK下降,将AD结果的B10位输出到Dout。上电时,第一周期读取的Dout数据无效,应舍去。2.6 串行通信模块2.6.1 串行通信常用概念()异步串行通信的格式SCI通常采用

22、NRZ数据格式,即:standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的传送格式。(2)串行通信的波特率波特率:每秒内传送的位数。 波特率单位是位/秒,记为bps。通常情况下,波特率的单位可以省略。通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。 (3)奇

23、偶校验字符奇偶校验检查称为垂直冗余检查,它是每个字符增加一个额外位使字符中“1”的个数为奇数或偶数。奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果“1”的数目是奇数,校验位应为“0”。偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如果是奇数则为“1”。 (4)串行通信的传输方式单工:数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。全双工:数据传送是双向的,且可以同时接收和发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。一般情

24、况下,MCU的异步串行通信接口均是全双工的。半双工:数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。2.6.2 RS-232C总线标准 MCU引脚一般输入/输出使用TTL电平,而TTL电平的“1”和“0”的特征电压分别为2.4V和0.4V,适用于板内数据传输。为了使信号传输得更远,美国电子工业协会EIA制订了串行物理接口标准RS-232C。RS-232C采用负逻辑,-3V-15V为逻辑“1”,+3V+15V为逻辑“0”。RS-232C最大的传输距离是30m,通信速率一般低于20Kbps。RS-232接口

25、,简称“串口”,它主要用于连接具有同样接口的室内设备。目前几乎所有计算机上的串行口都是9芯接口。右图给出了9芯串行接口的排列位置,相应引脚含义见表。引脚号功能1接收线信号检测(载波检测DCD)2接收数据线(RxD)3发送数据线(TxD)4数据终端准备就绪(DTR)5信号地(SG)6数据通信设备准备就绪(DSR)7请求发送(RTS)8清除发送9振铃指示 表1 芯串行接口引脚含义表 图2.6(a) 芯串行接口排列图 图2.6(b) MAX232芯片引脚图 在MCU中,若用RS-232C总线进行串行通信,则需要外接电路实现电平转换。在发送端需要用驱动电路将TTL电平转换成RS-232C电平,在接收端

26、需要用接收电路将RS-232C电平转换成TTL电平。电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。该系统使用MAX232芯片,该芯片使用单一+5V电源供电实现电平转换。图给出了MAX232的引脚。MAX232芯片引脚含义说明如下: VCC(16脚):正电源端,一般接+5V GND(15脚):地 VS+(2脚):VS+=2VCC-1.5V VS-(6脚):VS-=-2VCC-1.5V C2+、C2-(4、5脚):一般接1F的电解电容 C1+、C1-(1、3脚):一般接1F的电解电容输入输出引脚分两组,基本含义见表2。在实际使用时,若只需要一路SCI,可以使用起中的任何一组。组别

27、TTL电平引脚方向典型接口RS-232电平引脚方向典型接口11112输入输出接MCU的TxD接MCU的RxD1314输入输出连接到接口和其他设备通过RS-232相接2109输入输出接MCU的TxD接MCU的RxD87输入输出连接到接口和其他设备通过RS-232相接 表2 MAX232芯片I/O引脚分类和基本接法第三章 系统软件设计3.1 MCU方(C)程序软件设计包括MCU的程序设计和PC机端的软件设计。MCU的所有程序文件如下表所示。文件类型文件名功能简介头文件GP32C. hGP32 MCU映像寄存名定义头文件EnDisInt.h开放或禁止MCU各模块中断头文件Type.h类型别名定义头文

28、件Includes.h总头文件AD.hA/D转换头文件SCI.h串行通信头文件C语言子函数文件Setup.c芯片初始化文件SCI.c串口通信文件AD.cA/D转换文件C语言主函数Main.c主函数文件3.1.1 A/D转换子程序1. A/D转换有关头文件ADC.h/ADC.hA/D转换头文件-#include GP32C.h /GP32 MCU映像寄存器名定义#include Type.h /类型别名定义#define COCOBit 7void ADCinit(void); /A/D转换初始化 INT8U ADCvalue(INT8U channel); /1路A/D转换函数INT8U AD

29、Cmid(INT8U channel); /1路A/D转换函数(中值滤波) INT8U ADCave(INT8U channel, INT8U n); /1路A/D转换函数(均值滤波)2. A/D转换有关C语言子函数AD.C/*- ADsub.c-*文件描述:本文件包含了A/D转换的3个子函数,分别为: *(1)advalue:获取1路A/D转换结果 * unsigned char advalue(unsigned char channel) *(2)admid:获取中值滤波后的A/D转换结果 * unsigned char admid(unsigned char channel) *(3)a

30、dave:获取均值滤波后的A/D转换结果 * unsigned char adave(unsigned char n, * unsigned char channel) /以下为子程序源代码/包含头文件#include GP32C.H#define COCOBit 7 /转换完成标志位/*advalue:1路A/D转换函数-*功能:获取通道channel的A/D转换结果 *参数:channel=通道号 *返回:该通道的A/D转换结果 *-*/ unsigned char advalue(unsigned char channel) /选取通道号ADCH4-ADCH0=00000-00111unsigned char tmp;channel&=0b00011111;tmp=ADSCR&0b11100000;tmp=tmp|channel;ADSCR=tmp; /取A/D转换结果 while(1)if(ADSCR&(1COCOBit)!=0) tmp=ADR;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1