版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 26 基于S08的温度检测(jin c)显示系统的设计学 院: 电气(dinq)工程学院 班 级: 姓 名: 学 号: 目 录TOC o 1-4 h u HYPERLINK l _Toc22231 1 绪论(xln) PAGEREF _Toc22231 1 HYPERLINK l _Toc11149 1.1设计(shj)背景 PAGEREF _Toc11149 1 HYPERLINK l _Toc22767 1.2 数据采集(cij)系统简单介绍 PAGEREF _Toc22767 1 HYPERLINK l _Toc1389 2 方案论证 PAGEREF _Toc1389
2、 3 HYPERLINK l _Toc31862 2.1微控制器的选择 PAGEREF _Toc31862 3 HYPERLINK l _Toc4735 2.2显示方案选择 PAGEREF _Toc4735 3 HYPERLINK l _Toc19691 2.3温度传感器的选择 PAGEREF _Toc19691 4 HYPERLINK l _Toc7742 3 温度测量显示系统硬件设计 PAGEREF _Toc7742 5 HYPERLINK l _Toc1517 3.1 温度采集模块硬件设计 PAGEREF _Toc1517 5 HYPERLINK l _Toc25502 3.2 MCU控
3、制器模块设计 PAGEREF _Toc25502 6 HYPERLINK l _Toc21826 3.3 显示模块电路的设计 PAGEREF _Toc21826 7 HYPERLINK l _Toc17760 4 温度测量显示系统软件设计 PAGEREF _Toc17760 7 HYPERLINK l _Toc13912 4.1微控制器程序的开发环境及语言 PAGEREF _Toc13912 8 HYPERLINK l _Toc11812 4.2程序设计 PAGEREF _Toc11812 9 HYPERLINK l _Toc31381 4.2.1 A/D转换原理及程序 PAGEREF _To
4、c31381 9 HYPERLINK l _Toc32248 4.2.2热敏电阻阻值和温度的非线性对性模块原理及程序 PAGEREF _Toc32248 11 HYPERLINK l _Toc27933 4.2.3 温度显示模块程序 PAGEREF _Toc27933 13 HYPERLINK l _Toc22900 总结 PAGEREF _Toc22900 15 HYPERLINK l _Toc13835 参考文献 PAGEREF _Toc13835 16 HYPERLINK l _Toc3749 附录A 温度采集与显示程序 PAGEREF _Toc3749 17 HYPERLINK l _
5、Toc42 附录B 接线原理图 PAGEREF _Toc42 231 绪论(xln)1.1设计(shj)背景在人类(rnli)的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。在工农业生产中,
6、温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越
7、来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。1.2 数据采集系统简单介绍随着自动控制的发展,数据采集越来越被广泛应用,如医疗、工业等方面,数据采集是指将温度,压力,流量,位移等模拟量通过各种传感元件做适当转换后,再经信号调理、采样、量化、编码、传输等步骤采集,转换成数字量后,传给PC 机进行存储,处理,显示或打印的过程,相应的系统称为数据采集系统,可分为以下几种:1.基于通用微型计算机的数据采集(cij)系统将采集来的信号通过(tnggu)外部的采样和A/D转换后的数字信号通过接
8、口电路送入微机内进行处理(chl),然后再显示处理结果或经过D/A 转换输出,主要有以下几个特点:(1) 系统较强的软、硬件支持。通用微型计算机系统所有的软硬件资源都可以用来支持系统进行工作。(2) 具有自开发能力。(3) 系统的软硬件的应用配置比较小,系统的成本较高,但二次开发时,软硬件扩展能力较好。(4) 在工业环境中运行的可靠性差,对安放的环境要求较高;程序在RAM 中运行,易受外界干扰破坏。2.基于单片机的数据采集系统它是由单片机及其些外围芯片构成的数据采集系统,是近年来微机技术快速发展的结果,它具有如下特点:(1) 系统不具有自主开发能力,因此,系统的软硬件开发必须借助开发工具。(2
9、) 系统的软硬件设计与配置规模都是以满足数据采集系统功能要求为原则,因此系统的软硬件应用配置具有最佳的性价比。系统的软件一般都有应用程序。(3) 系统的可靠性好、使用方便。应用程序在ROM 中运行不会因外界的干扰而破坏,而且上电后系统立即进入用户状态。3.基于DSP数字信号微处理器的数据采集系统DSP数字信号微处理器从理论上而言就是一种单片机的形式,常用的数字信号处理芯片有两种类型,一种是专用DSP芯片,一种是通用DSP芯片。基于DSP数字信号微处理器的数据采集系统的特点如下:精度高、灵活性好、可靠性好、容易集成、分时复用等,但其价格不菲。2 方案(fng n)论证2.1微控制器的选择(xun
10、z)微控制器是测量显示装置的核心部分,它要负责数据的处理(chl)及控制液晶屏显示。因此,需要一个高集成度、稳定性高和体积小的微控制器,同时还要注重低成本及实际情况。AT89S52是一种低功耗、高性能8位微控制器,具有8K系统可编程FLASH存储器和256字节ROM,可实现0Hz33Hz的全静态操作,支持4.0V5.5V电源。使用Atmel公司高密度非易失性存储器技术制造,与MCS-51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。其内部没有A/D转换模块,需要外部扩展模数转换芯片。S08AW60拥有62KB片上在线可编程FLASH存储器和2KB片上RAM
11、,具有模块保护与安全选项功能,支持2.75.5V电源。片内总线时钟最高可达20MHz,可选择宽范围的时钟频率。其内部集成了高性能模/数转换器(ADC)和串行通信模块,具有很宽的工作温度范围(-40+125),可适应各类恶劣环境。该芯片还可以通过BDM在计算机与微控制器进行在线编程及后台调试,避免频繁的插拔单片机,编译软件调试功能强大。对比之后,根据实际的应用需求,本设计选择了飞思卡尔公司生产的增强型8位微控制器MC9S08AW60(44引脚、LQFP封装)。其拥有足够大的FLASH存储器和ROM,并带有高性能模/数转换器。另外,体积小,稳定性高,调试方便。2.2显示方案选择方案一:LED数码管
12、显示器可分为两种显示方式:静态显示和动态显示。LED数码管静态显示,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块,所以排除此方案。方案二:LED数码管显示器动态显示方式下,将所有位的段选线并联在起,由位选线控制哪位接收字段码。采用动态扫描显示,也就是在显示过中,轮流向各位送出字形码和相应的字位选择,同一时刻只有一位显示,其他各位熄灭。但是此显示方案稳定性较差,并且还需要焊接外围电路,所以不采用此方案。方案(fng n)三:LCD液晶(yjng)显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示
13、的位数多,显示得清晰多样、美观,同时液晶显示器的编写程序简单,价格便宜,故采用此种方案。 LCD类型繁多,价格不等。根据本设计需要显示的信息量小的特点(tdin),选用价格便宜的LCD1602液晶屏。其特点如下:(1) 液晶显示屏是以16列2行=32个510或57点阵块组成的显示字符群,每个点阵为一个字符,字符间距和行距都为一个点的宽度。(2) 具有字符发生器ROM,可以显示192种字符。(3) 具有64字节的自定义字符RAM,可自定义8个57或4个510点阵字符。(4) 具有80字节的RAM。(5) 结构紧凑、轻巧、装配容易。(6) 单+5V电源供电,低功耗,长寿命,高可靠性。2.3温度传感
14、器的选择测量温度的关键是温度传感器,因此需要灵敏度高、测温范围宽、稳定性好,同时还要考虑成本和实际情况。DS18B20数字式温度传感器,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本, 搭建电路和焊接电路时更快,调试也更方便简单化 。热敏电阻的主要特点是:灵敏度较高,其电阻温度系数要比金属大10100倍以上,能检测出10-6的温度变化;工作温度范围宽,常温器件适用于-55315,高温器件适用温度高于315(目前最高可达到
15、2000),低温器件适用于-27355;体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;使用方便,电阻值可在0.1100k间任意选择;易加工成复杂的形状,可大批量生产;稳定性好、过载能力强对比之后,根据实际的应用需求(xqi),本设计采用热敏电阻。热敏电阻包括正温度系数(xsh)(PTC)和负温度系数(NTC)热敏电阻,以及临界温度热敏电阻(CTR)本设计(shj)采用NTC热敏电阻。NTC(Negative Temperature Coeff1Cient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料该材料是利用锰、铜、硅、鈷、铁、镍、锌等两种或两种
16、以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化。它的测量范围一般为-10+300,也可做到-200+10,甚至可用于+300+1200环境中作测温用。3 温度测量显示系统硬件设计温度采集系统的硬件部分是由温度采集模块、MCU控制器模块、温度显示模块组成。具体框图如下图3.1所示: 图3.1 系统硬件框图3.1 温度采集模块硬件设计该模块是根据热敏电阻阻值随温度变化而变化的特性,利用串联分压的特点,将热敏电阻所分的电压送到MC9S08AW60的模拟量输入端。具体电路原
17、理如图3.2所示: 图3.2 温度采集(cij)模块电路原理图 该电路(dinl)中R4为热敏电阻,其电压传输到MC9S08AW60单片机的模拟量输入端,即B0口。3.2 MCU控制器模块(m kui)设计MC9S08AW60的外部工作电路如图3.3所示。Vddad和Vssad是MCU内部模拟电路的电源,给模数转换器(ADC)模块供电,VREFH和VREFL是模数转换的参考电压。Vdd和Vss是S08MCU主要的电源引脚,工作电压范围是2.7V5.5V,在该电路中提供的是5V电压。在Vdd和Vss之间接10F钽电容器和0.1F的陶瓷旁路电容器,10F钽电容器来为系统提供大容量的电荷存储,同时应
18、在离MCU电源管脚尽可能近的地方安装一个0.1F的陶瓷旁路电容器来抑制高频噪音。 图3.3 MC9S08AW60外部工作(gngzu)电路原理图该电路为MCU控制器电路,其中,G0、G1、G2口分别(fnbi)与LCD1602的RS、R/W、E引脚连接;C0C3口与LCD1602的DB0DB3引脚连接;D0D3口与LCD1602的DB4DB7引脚连接。.B0口是模拟量输入端,用于输入热敏电阻的电压。3.3 显示(xinsh)模块电路的设计该模块是利用LCD1602液晶屏显示,显示的清晰度是关键,其Vee引脚作用是对比调整,原理是该引脚输入电压不同,调整度不同,所以采用电位器分压作为它的电压输入
19、。Vss及K引脚分别是电源地、LCD背光电源负极,直接接地。Vcc及A引脚分别是电源、LCD背光电源正极,采用+5V电源供电。其电路原理图如图3.4所示:图3.4 显示(xinsh)模块电路原理图该电路(dinl)中,LCD1602的RS、R/W、E引脚分别与MC9S08AW60的G0、G1、G2口连接(linji);DB0DB3引脚分别与MC9S08AW60的C0C3口连接;DB4DB7引脚与MC9S08AW60的D0D3口连接。4 温度测量显示系统软件设计4.1微控制器程序的开发环境及语言在前面,本设计已经选择了MC9S08AW60微控制器,飞思卡尔的微控制器有其专用的开发环境软件Code
20、Warrior IDE。同时,CodeWarrior IDE可以在不同的操作系统(包括Windows, Macintosh和Linux)下使用,而且在这些操作系统下的界面完全相同。本设计使用CodeWarrior6.3版,其界面如图4.1所示,只要在右边打开main.c窗口就可以进行程序编写。 图4.1 CodeWarrior6.3程序开发界面(jimin)在对微控制器进行编程时,可以用汇编语言(hu bin y yn)或者C语言,甚至可以二者混合编程。CodeWarrior IDE支持(zhch)汇编语言,C、C+和Java高级语言。C语言功能丰富、表达能力强、使用灵活方便、目标程序效率高、
21、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,是国内外广泛使用的一种计算机语言。本设计使用C语言对微控制器进行编程,其能直接操作微控制器的硬件和接口,生成的机器代码也是高水平的。4.2程序设计本设计程序主要包括A/D转换模块程序、热敏电阻阻值和温度的非线性对性模块程序、温度显示模块程序,其总程序流程图如图4.2所示:图4.2 系统(xtng)程序总流程图4.2.1 A/D转换(zhunhun)原理及程序传感器获得的信号由于是模拟信号,而CPU处理(chl)的是数字信号,故要经过模数转换。在MC9S08AW60芯片中集成了一个8位/10位精度可选的逐次逼近式ADC模块,使用时不需再
22、扩展片外的A/D转换器。逐次逼近式ADC是一个具有反馈回路的循环系统,主要部件有电压比较器、逐次逼近寄存器(SAR)、结果寄存器、数字/模拟转换器(Digital -To- Analog,DAC)和控制电路,如图4.3所示。逐次逼近式ADC用DAC的输出电压来驱动比较器的反相端。转换时,要用一个逐次逼近寄存器存放转换出来的数字量;转换结束时,将数字量送到结果寄存器。 图4.3 逐次(zh c)逼近式ADC原理图逐次逼近ADC原理是:首先(shuxin)设置SAR中的最高位为1,其余位为0,经D/A转换器转换成模拟电压VO,然后(rnhu)将VO与输入电压Vi在电压比较器中进行比较。如果ViVO
23、,则置1保留,并使下一位置1。如果ViVO,则这一位给予清除,然后使下一位置1。按上述方法对次高位进行转换、比较、判断,决定次高位应取1还是0。重复上述过程,直到确定SAR最低位为止。这时控制电路送出一个转换结束标志信号,这个信号将SAR中的数字量送入结果寄存器供CPU使用。本设计中,由于在S08AW60芯片中的SCI数据寄存器只有8位,所以模数转换选择8位精度,以满足实际情况。针对振动信号高频多变,在ADC初始化中选择连续转换、高速转换和短采样时间。C语言编写的MC9S08AW60微控制器中A/D转换的节选程序代码如下:/* * *函数名称:adc_init()* *作用:A/D模块初始化*
24、/void adc_init(void) APCTL1=0X01; /*ADCP01引脚I/O无效,即B口0位*/ ADC1CFG=0X00; /*高速模式 8位精度,ADCK=总线频率*/ ADC1SC2=0X00; /*软件触发,比较功能禁止*/ ADC1SC1=0X00; /*禁止(jnzh)转换完成中断,单次转换*/* * *函数(hnsh)名称:convert_begin()* *作用(zuyng):启动A/D转换*/unsigned int convert_begin(void) unsigned int Vtemp; ADC1SC1=0X00; /* 写ADC1SC1启动转换*/
25、 while(!(ADC1SC1_COCO); /* 等待转换结束 */ Vtemp=ADC1RL; /*读取转换结果 */ return Vtemp; /* 返回结果 */4.2.2热敏电阻阻值和温度的非线性对性模块原理及程序热敏电阻的阻值温度特性曲线是一条指数曲线,非线性度较大,因此在使用时要进行线性化处理。可采用简单的查表法从电压值中查出相应的温度值。预先将一系列温度与电压对应值存贮到AW60微控制器程序存储器中的一个表内,当给定任意一个电压值时,即可通过查表得出所对应的温度值。当表中没有对应的电压值时,可找出电压值在表中的区域,然后在区间的相邻两点经线性插值得出对应温度值。存入表中点的
26、多少影响温度值的精度。这里以选16个点为例,选8位模式A/D可转换结果范围是0255,因此每两个点的间隔是16。使用插值算法如下: (4.1)式中:当前温度; 当前温度的A/D转换值;,相邻点的温度值;,相邻点的A/D转换值;当A/D转换结果在区间016或240255时,不再计算,直接按温度值79或-40处理。C语言编写的获得(hud)温度值的节选程序代码如下:/* * *函数(hnsh)名称: GetTemperature()* *作用(zuyng):查表及插值程序得到温度值*/signed int GetTemperature(int Value) signed int T; int i;
27、 if(Value= V_T_table015) T=V_T_table115; /* 当A/D转换值在240255时,按-40摄氏度赋值 */ else for(i=1;i V_T_table0i)&(Value V_T_table0i+1) T=(V_T_table1i+1-V_T_table1i)*100)/16; T=T*(Value-V_T_table0i); /* 没有,找到区间并插值 */ T=V_T_table1i+T/100; break; return T; /* 返回(fnhu)温度值T */4.2.3 温度显示(xinsh)模块程序LCD1602采用+5V电压驱动,其数
28、据(shj)接口和读写控制引脚与MC9S08AW60单片机的I/O口直接相连。MC9S08AW60单片机将采集到的模拟电压值经过A/D转换后,查表得到温度值,通过I/O口传输给LCD1602显示。C语言编写的温度值显示的节选程序代码如下:/* * *函数名称:LCD1602_init()* *作用LCD1602初始化*/void LCD1602_init(void) LCD1602_DB(0 x08 ,0 x03); /*显示模式 8位总线 双行显示 5*7点阵*/ RS_RW_E_init(); LCD1602_DB(0 x04 ,0 x01); /*光标移动 每输入一次该指令 光标向右移一
29、格 整体画面不滚动*/ RS_RW_E_init(); LCD1602_DB(0 x0C ,0 x00); /* 屏幕开关 打开显示屏 不显示光标 不闪烁 */ RS_RW_E_init(); LCD1602_DB(0 x06 ,0 x00); /输入方式 RS_RW_E_init(); LCD1602_DB(0 x01 ,0 x00); /清屏 RS_RW_E_init(); /* * *函数名称:LCD1602_display()* *作用LCD1602显示*/void LCD1602_display(void) if(neg_flag) /* 如果(rgu)是负,最高位显示-*/ LCD
30、1602_DB(0 x00,0 x08); /*需要(xyo)显示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(0 x0d,0 x02); else /* 如果(rgu)是正,最高位显示+*/ LCD1602_DB(0 x00,0 x08); /*需要显示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(0 x0b,0 x02); LCD1602_DB(0 x01,0 x08); /*需要显示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(Disp_Value0s,Disp_Val
31、ue1s); LCD1602_DB(0 x02,0 x08); /*需要显示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(Disp_Value0g,Disp_Value1g);总结(zngji)硬件方面。选择硬件,要比较同类产品的稳定性、功耗、体积、价格(jig)等,另外还要符合设计的全部要求。在显示方案上,利用LCD1602显示,程序简单,在硬件电路(dinl)的设计方面,用Protel绘制电路图时要标明元件的大小,有些封装元件要标明名称和封装。其次,软件方面。把程序分块编写能够有效地提高正确性和编程效率。通过本次实验,我学习了很多关于S08AW60的
32、知识,并能通过所学设计一款基于S08AW60的温度测量显示系统,虽然有很多不足,也有很多不理解的地方,但是通过学习和讨论,一一得到了解决,受益匪浅。参考文献1 王威嵌入式微控制器S08AW原理(yunl)与实践M北京:北京航空航天大学出版社,20092 陈杰. 传感器与检测(jin c)技术M北京(bi jn):高教出版社,20043 邵贝贝. 龚光华.单片机认识与实践M.北京:北京航空航天大学出版社,20064 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19895 沈兰荪.数据采集与处理M北京:能源出版社,19876 沙占友、王彦朋、孟志永.单片机外围电路设计.电子工业出版社
33、,20037 谢宜仁.单片机实用技术问答. 人民邮电出版社,20038 孙传友、汉泽西.测控系统原理与设计.北京航空航天大学出版社,20029 章吉良,周勇,戴旭涵等微传感器原理、技术及应用M上海:上海交通大学出版社,2005附录A 温度采集与显示(xinsh)程序/* * *文件名Temprature_LCD1602.c* *MCU:MC9S08AW60* *调试(dio sh)环境:CodeWarrior v6.3* *日期(rq):2010.12*/#include /* for EnableInterrupts macro */#include derivative.h /* incl
34、ude peripheral declarations */const unsigned char Disp_Value210=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x03,0 x03,0 x03,0 x03,0 x03,0 x03,0 x03,0 x03,0 x03,0 x03 ; /*存放显示段码*/const signed int V_T_table217=0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,255,0,79,56,43,34,
35、27,21,15,10,5,-1,-6,-11,-18,-26,-40,0 /*存放A/D转换值和温度值的表*/ ; #define LCD1602_D03_PTB03 PTCD /*1602液晶屏数据接口低4位接C口低4位*/#define LCD1602_D47_PTD03 PTDD /*1602液晶屏数据接口高4位接D口低4位*/#define LCD1602_RS PTGD_PTGD0 /*1602液晶屏数据选择接口接G口0位*/#define LCD1602_RW PTGD_PTGD1 /*1602液晶屏读写选择接口接G口1位*/#define LCD1602_E PTGD_PTGD
36、2 /*1602液晶屏信号使能接口接G口2位*/signed int Temperature; /*温度*/char neg_flag=0; /*温度正负标志,正时为0,负时为1*/int s,g; /*温度十位,个位*/unsigned int adc_value; /*通道电压值*/*函数声明*/void data_deal(void); /*数据处理程序*/void adc_init(void) ; /*ADC初始化程序*/signed int GetTemperature(int Value); /*查表得到温度程序*/unsigned int convert_begin(void);
37、 /*启动转换*/void delay40us(int count); /*LCD显示延时程序*/void RS_RW_E_init(void); /*LCD1602控制程序*/void LCD1602_DB(char x ,char y); /*LCD1602数据接口*/void LCD1602_init(void); /*LCD1602数据(shj)接口*/void LCD1602_write_dat(char x,char y); /*写数据(shj)程序*/void LCD1602_display(void); /*LCD1602显示(xinsh)程序*/void PORT_init(
38、void) ; /*I/O口初始化程序*/*/* * *函数名称:delay40us()* *作用:延时*/void delay40us(int count) int i; for(i=0;icount;i+) _RESET_WATCHDOG(); /* * *函数名称:adc_init()* *作用:A/D模块初始化*/void adc_init(void) APCTL1=0X01; /*ADCP01引脚I/O无效,即B口0位*/ ADC1CFG=0X00; /*高速模式 8位精度,ADCK=总线频率*/ ADC1SC2=0X00; /*软件触发,比较功能禁止*/ ADC1SC1=0X00;
39、 /*禁止转换完成中断,单次转换*/* * *函数名称:convert_begin()* *作用:启动A/D转换*/unsigned int convert_begin(void) unsigned int Vtemp; ADC1SC1=0X00; /* 写ADC1SC1启动转换*/ while(!(ADC1SC1_COCO); /* 等待转换结束 */ Vtemp=ADC1RL; /*读取转换结果 */ return Vtemp; /* 返回结果 */* * *函数名称: GetTemperature()* *作用:查表及插值程序得到温度值*/signed int GetTemperatur
40、e(int Value) signed int T; int i; if(Value= V_T_table015) T=V_T_table115; /* 当A/D转换(zhunhun)值在240255时,按-40摄氏度赋值 */ else for(i=1;i V_T_table0i)&(Value V_T_table0i+1) T=(V_T_table1i+1-V_T_table1i)*100)/16; T=T*(Value-V_T_table0i); /* 没有,找到区间并插值 */ T=V_T_table1i+T/100; break; return T; /* 返回温度值T */ /*
41、* *函数名称:data_deal()* *作用:实现十位,个位的分离*/void data_deal(void) if(Temperature0) /* 温度为负 */ neg_flag=1; /* neg_flag为1*/ Temperature=-Temperature; /* 取正*/ else neg_flag=0; s= Temperature/10; /* 分离十位*/ g= Temperature-s*10; /* 分离个位*/* * *函数名称:RS_RW_E_init()* *作用:LCD1602控制*/void RS_RW_E_init(void) LCD1602_RS=
42、0; LCD1602_RW=0; LCD1602_E =1; delay40us(10000); LCD1602_E =0;/* * *函数(hnsh)名称LCD1602_DB()* *作用:数据(shj)接口*/void LCD1602_DB(char x ,char y) LCD1602_D03_PTB03 =x; LCD1602_D47_PTD03 =y;/* * *函数(hnsh)名称:LCD1602_init()* *作用LCD1602初始化*/void LCD1602_init(void) LCD1602_DB(0 x08 ,0 x03); /*显示模式 8位总线 双行显示 5*7点阵*/ RS_RW_E_init(); LCD1602_DB(0 x04 ,0 x01); /*光标移动 每输入一次该指令 光标向右移一格 整体画面不滚动*/ RS_RW_E_init(); LCD1602_DB(0 x0C ,0 x00); /* 屏幕开关 打开显示屏 不显示光标 不闪烁 */ RS_RW_E_init(); LCD1602_DB(0 x06 ,0 x00); /输入方式 RS_RW_E_init(); LCD1602_DB(0 x01 ,0 x00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 缠绕成型课程设计
- 国际象棋的课程设计
- 游戏人物鉴赏课程设计
- 中考生物考前必背知识手册(含习题详解)
- 美化文字微课程设计
- 统计软件课程设计预测
- 自然主题幼儿园课程设计
- 中风护理工作总结
- 电机顺序启动课程设计
- 2024年设备监理师考试题库含答案(基础题)
- 《ISO56001-2024创新管理体系 - 要求》之4:“4组织环境-确定创新管理体系的范围”解读和应用指导材料(雷泽佳编制-2024)
- 2024-2030年中国散热产业运营效益及投资前景预测报告
- 和父亲断绝联系协议书范本
- 2024时事政治考试题库(100题)
- 2024地理知识竞赛试题
- 《城市轨道交通工程盾构吊装技术规程》(征求意见稿)
- 【新教材】统编版(2024)七年级上册语文期末复习课件129张
- 钦州市浦北县2022-2023学年七年级上学期期末语文试题
- 古典时期钢琴演奏传统智慧树知到期末考试答案章节答案2024年星海音乐学院
- 乐山市市中区2022-2023学年七年级上学期期末地理试题【带答案】
- 两人合伙人合作协议合同
评论
0/150
提交评论