基于ARM的温度测量系统设计_第1页
基于ARM的温度测量系统设计_第2页
基于ARM的温度测量系统设计_第3页
基于ARM的温度测量系统设计_第4页
基于ARM的温度测量系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安欧亚学院本科毕业论文(设计)1基于ARM的温度测量系统设计摘要本设计以我校自主研发的ARM嵌入式系统用户板为开发平台,外部配有LCM12864显示屏、LED显示模块,按键及各种通讯接口等。该设计主要应用了ARM的ADC模块、液晶显示模块及外加的一个PT100温度传感器。利用温度传感器将温度变化转化为电压变化,再由ADC模块将采集到的电压信号通过液晶显示屏显示出来,以此来实现温度实时测量系统的开发。本文对所用芯片的工作特性、ADC模块及温度传感器PT100的工作原理做了简要说明,对系统软件设计的方法及流程进行了详细的描述。实验测试结果表明,该温度测量系统能正常工作,并可移植应用于多种温度监控系统。关键词PT100ARM7液晶屏ADCADCMODULEDEVELOPMENTANDAPPLICATIONBASEDONTHEARMTEMPERATUREMEASUREMENTSYSTEMABSRTACTTHISDESIGNWITHTAKINGOURSELFDEVELOPEDARMEMBEDDEDSYSTEMUSERPLATEASDEVELOPMENTPLATFORM,USINGARM7TDMISLPC2148PRODUCTEDBYPHILIPSASMCUPERIPHERALEQUIPMENTINCLUDETHELCM12864SCREEN,LEDDISPLAYMODULE,BUTTONS,VARIOUSCOMMUNICATIONINTERFACE,ETCTHEDESIGNMOSTLYDEPENDSONADCMODULEOFARM,LCDMODULE,TEMPERATURESENSORPT100INORDERTOREALIZETHEDEVELOPMENTOFTEMPERATUREREALTIMEMEASURINGSYSTEM,THETEMPERATURESENSORTRANSFORMSTEMPERATUREFLUCTUATIONINTOVOLTAGECHANGE,ANDSHOWTHEVOLTAGESIGNALCOLLECTEDBYADCMODULEONTHELCDDISPLAYTHISARTICLEMAKESBRIEFEXPLANATIONABOUTTHEJOBCHARACTEROFCHIP,BASICPRINCIPLEOFADCANDPT100BESIDESDESCRIBINGTHEMETHODANDPROCESSOFSOFTWAREDESIGNINDETAILSTHETESTRESULTSINDICATETHETEMPERATUREMEASUREMENTSYSTEMCANWORKNORMLY,ANDCANBEAPPLIEDTOVARIOUSTEMPERATUREMONITORINGSYSTEMKEYWORDSPT100ARM7LCDADC西安欧亚学院本科毕业论文(设计)2绪论11技术背景基于ARM核的32位RISC微处理器的应用日益广泛,该处理器具有高速、低耗、多功能等独特亮点。尤其是微型操作系统的嵌入,实现了ARM嵌入式系统高实时性、高可靠性、多任务管理等优异特性,成为真正意义上的嵌入式系统。目前,嵌入式系统的应用己遍及网络、通讯、信息家电、工业控制、航空、航天等高端应用领域,并且正在逐步渗入到人们生活的各个方面,越来越多的工程技术人员进入了ARM嵌入式系统的开发应用。12选题意义121ADC的作用采集是认知的开始、测量的前提、分析的基础,绝大多数的电子设备、仪器都是以数据采集技术为基础。随着电子技术和数字技术的飞速发展,信号的传输速度和CPU的处理速度越来越快,因此对数据采集和处理的要求也越来越高。模数转换是把模拟信号转换成等效数字量的量化过程,可采用单片集成电路和高性能的组件。模数转换器的重要特性通过精度、线性度、单调性、分辨率、转换速度、稳定性等指标来衡量,还有一些可供选用的其它技术性能,诸如输入范围、数字输出编码等。模拟数据以数字形式收集后可便于存贮、传送、处理和显示,因此,模数转换在音、视频信号处理、电子测量和工业控制等领域得到了广泛的应用。122基于ARM的温度测量系统开发的意义数据采集系统多用于电子测量和工业控制系统。采集到的信号通过A/D转换送入微处理器主控单元,通过处理实现过程控制。现在的高速系统对ADC模块的要求很高,由于低端的MCU和ADC芯片已经难以满足高性能的应用要求,因此大多数开发人员将目光瞄向了ARM芯片的模数转换器。AMR芯片的模数转换器由于其高速、多路、廉价等诸多优势而被广泛采用。利用ARM的10位AD转换器,外加一个铂电阻(PT100精密温度传感器)就可以实现宽温度范围、高精度温度测量系统。选择基于ARM的温度测量系统题目,在于提高我对ARM系列单片机的应用能力和工业测控系统的设计能力。13开发设计方案本课题设计是根据我校老师自主研制的ARM实验板进行设计开发的。用IAR软件对各个模块进行程序编写并进行调试,当程序调试无误后,将程序下载到ARM西安欧亚学院本科毕业论文(设计)3实验板上。运用一个PT100温度传感器将温度信号转换为电压,经ARM芯片的AD转换器,经过模数转换器,将输入的模拟信号电压转换成数字信号,再通过LCD显示出所采集到的数字信号。由PT100温度传感器将温度转换为电压,将电压送到LPC2148的ADC模块中,经过数模转换,将得到的数字信号存储在寄存器中并送到实验班的LCD显示屏上,实时显示温度变化。设计方案如图11所示PT100温度传感器LPC2148模数转换LPC2148数据处理温度信号电压信号LCD显示屏显示温度数字信号数字信号图11设计方案图2功能模块说明21ARM主控芯片(LPC2148)211工作特性LPC2148是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMIS的微控制器,带有32KB和512KB嵌入的高速FLASH存储器。独特的加速结构,使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位THUMB模式将代码规模降低超过30,而性能的损失却很小。其主要特性如下116/32位ARM7TDMIS微控制器,超小LQFP64封装;西安欧亚学院本科毕业论文(设计)4232KB的片内静态RAM和512KB的片内FLASH程序存储器,加速器可实现60MHZ工作频率;3通过片内BOOT装载程序实现在系统编程和在应用编程(ISP和IAP),单个FLASH扇区或整片擦除时间只有400MS,256字节的编程时间为1MS;4EMBEDDEDICERT和嵌入式跟踪接口提供实时调试通过片内REALMONITOR软件和高速跟踪指令执行;5USB20全速设备控制具有2KB的端点RAM,此外LPC2146/8提供8KB的片内RAM,可被USB的DMA控制器访问;62个10位ADC转换器,提供总共6/14路模拟输入,每个通道的模数转换时间低至244US;71个10位的D/A转换器提供可变的模拟信号的输出;82个32位定时器/外部事件计数器带4路捕获和4路比较通道,PWM单元6路输出和看门狗;9低功耗实时时钟RTC具有独立的电源和特定的32KHZ时钟输入;10多个串行接口,包括2个UART16C550、2个高速I2C总线400KBIT/SSPI和具有缓冲作用和数据长度可变功能的SSP;11向量中断控制器(VIC)可以配置优先级和向量地址;12多达45个可承受5V电压的通用I/O接口(LQFP64封装);13多达9个边沿或电平触发的外部中断管脚;14通过一个可编程的片内PLL100MS的设置时间可以实现最大为60MHZ的CPU操作;15片内集成振荡器可操作频率为1MHZ30MHZ的外部晶体或频率高达50MHZ的外部振荡器;16具有低功耗模式空闲和掉电模式;17可以通过个别使能/禁止外围功能和外围时钟分频来优化额外的功耗;18可外部中断,USB,掉电检测或实时时钟将处理器从掉电模式中唤醒;19单电源,具有上电复位和掉点检测功能;20CPU可操作电压范围30V36V(33V10);212结构图结构图如图21所示西安欧亚学院本科毕业论文(设计)5图21LPC2148结构方框图由上图可见,LPC2148的结构包含一个支持实时仿真的ARM7TDMISCPU、片内存储器控制接口ARM7局部总线、中断控制接口的AMBA高性能总线AHB和链接片内外设功能的VLSI外设总线VPB,ARM,AMBA总线的兼容超集。AHB外设分配了2MB的地址范围,它位于4GB的ARM存储器空间的最顶端,每个AHB外设也分配了16KB的地址空间。并且其外设功能都能连接到VPB总线,外设包括外部中断、I2C串行接口、捕获/比较定时器0/1、SPI串行接口、ADC、UART、通用I/O接口、PWM、看门狗定时器、实时时钟、系统控制等。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2MB的地址范围,从35GB地址开始,并且每个VPB外设在VPB地址空间内斗分配了16KB的地址空间。西安欧亚学院本科毕业论文(设计)6213应用ARM芯片开发应用最重要的环节之一就是底层软件的开发,即用汇编语言及C语言混合编写的启动代码。本应用中系统配置及部分启动代码如下1系统配置头文件CONFUGHDEFINE_CONFIG_HDEFINE_CONFIG_HIFNDEFTRUEDEFLNETRUEENDIFIFNDEFFALSEDEFINEFALSE0ENDIFTYPEDEFUNSIGNEDCHARUINT8;/无符号8位整型变量/TYPEDEFSIGNEDCHARINT8;/有符号8位整型变量/TYPEDEFUNSIGNEDSHORTUINTL6;/无符号16位整型变量/TYPEDEFSIGNEDSHORTINT16;/有符号16位整型变量/TYPEDEFUNSIGNEDINTUINT32;/无符号32位整型变量/TYPEDEFSIGNEDINTINT32;/有符号32位整型变量/TYPEDEFFLOATFP32;/单精度浮点数32位长度/TYPEDEFDOUBLEFP64;/双精度浮点数64位长度/INCLUDE”NXP/IOLPC2148H”INCLUDE”STDIOH”INCLUDE”INTRINSICSH”/ARM核特征头文件/系统时钟配置FOSC、FCCLK、FCCO、FPCLK/DEFINEFOSC12000000/时钟频率12MHZ/DEFINEFCCLKFOSC5/系统时钟60MHZ/DEFINEFCCOFCCLK4/流控振荡频率240MHZ/DEFINEFPCLKFCCLK/42/外设时钟频率30MHZ/DEFINEKOM_HIOLSET_BITP1_241;DEFINEKOM_LIOLCLR_BITP1_241;VOIDZLG7289_COD_DATCHARCMD,CHARDAT;西安欧亚学院本科毕业论文(设计)7VOIDZLG7289_INIT;ENDIF2用汇编语言编写的部分启动代码/MODEMSKDEFINEOX1FUSRMODEDEFINE0X10FIQMODEDEFINE0X11IRQMODEDEFINE0X12SVCMODEDEFINE0X13ABTMODEDEFINE0X17UNDMODEDEFINEOX1BSYSMODEDEFINEOX1FMSRR0,CPSRBICR0,R0,MODE_MSKORRR0,R0,SVC_MODEMSRCPSR_C,R0LDRSP,SFESVC_STACKBICR0,R0,MODE_MSKORRR0,R0,ABT_MODEMSRCPSR_C,R0LDRSP,SFEABT_STACKBICR0,R0,MODE_MSKORRR0,R0,UND_MODEMSRCPSR_C,R0LDRSP,SFEUND_STACKBICR0,R0,MODE_MSKORRR0,R0,FIQ_MODEMSRCPSR_C,R0LDRSP,SFEABT_STACKBICR0,R0,MODE_MSKORRR0,R0,IRQ_MODEMSRCPSR_C,R0西安欧亚学院本科毕业论文(设计)8LDRSP,SFEIRQ_STACKBICR0,R0,MODE_MSKORRR0,R0,SYS_MODEMSRCPSR_C,R0LDRSP,SFECSTACK22ADC模块221概述在科研、生产中,要经常进行模拟量的测量和控制。为了对温度、压力、流量、速度、位移等物理量进行测量和控制,需要通过各种传感器把上述物理量转换成模拟量的电信号,即模拟电信号;将模拟电信号经过处理并转换成计算机能识别的数字量,送进计算机,这就是A/D变换过程或称为数据采集。大部分传感器输出的是电压或电流等模拟信号,所以需要将这些模拟信号转换成易于处理和存储的数字信号。A/D转换可分为4个阶段即采样、保持、量化和编码。A/D模数转换器将测试得到的模拟量转换为数字量,送入ARM微处理器控制单元,经计算、处理后输出至外设显示和控制。LPC2148中的A/D转换器的基本时钟由VPB时钟提供。每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的45MHZ。完全满足精度要求的转换需要11个这样子的时钟周期。222技术特性1有两个10位逐次逼近式模数转换器;26或8个管脚复用为输入脚ADCO和ADC1;3可用掉电模式;4测量范围0VVREF通常为3V;不超过VDDA电压电平;510位转换时间244US;6一个或多个输入的突发转换模式;7可选择由输入跳变或定时器匹配信号触发转换;8转换器的全局起始命令。223功能寄存器框图A/D寄存器及功能框图如图22所示西安欧亚学院本科毕业论文(设计)9图22A/D转换器内部寄存器及功能框图224相关寄存器ADC模块的工作模式设置和转换结果控制由两个32位寄存器完成,对于这两寄存器的描述见表21表21主要寄存器名称描述访问复位值地址ADCRA/D控制寄存器A/D转换开始前,必须设置ADCR寄存器来悬着工作模式;读写0X000000010XE0034000ADDRA/D数据寄存器该寄存器包含ADC的结束标志位和10转换结果当结束标志位为1时,换换结果才有效;读写NA0XE0034004A/D控制寄存器(ADCR0XE0034000)ADCR寄存器描述见下表22表22A/D控制寄存器ADCR名称描述复位值70SEL从AIN3AIN0LPC2114/2124或AIN7AIN0LPC2212/2214中选择采样和转换输入脚。在0X01西安欧亚学院本科毕业论文(设计)1064脚封装的LPC2114/2124中只有BIT3BIT0可置位。软件控制模式下,只有一位可被置位。硬件扫描模式下,SEL可为18中的任何一个值(在64脚封装的LPC2114/2124中SEL从14中取值)。SEL为零时等效于为0X01158CLKDIV将VPB时钟(PLCK)进行(CLKDIV的值1)分频得到A/D转换时钟,该时钟必须小于或等于45MHZ。典型地,软件将CLKDIV编程为最小值来得到45MHZ或稍低于45MHZ的时钟,但某些情况下(例如测量高阻抗的模拟信号)可能需要更低的时钟016BURST如果该位为0,转换由软件控制,需要11个时钟方能完成。如果该位为1,A/D转换器以CLKS字段选择的速率重复执行转换,并从SEL字段中为1的位对应的引脚开始扫描。A/D转换器起动后的第一次转换的是SEL字段中为1的位中的最低有效位对应的模拟输入,然后是为1的更高有效位对应的模拟输入(如果可用)。重复转换通过清零该位终止,但该位被清零时并不会中止正在进行的转换01917CLKS该字段用来选择BURST模式下每次转换使用的时钟数和所得ADDR转换结果的LS位中可确保精度的位的数目,CLKS可在11个时钟(10位)4个时钟(3位)之间选择00011个时钟/10位,00110个时钟/9位,1114个时钟/3位00021PDN1A/D转换器处于正常工作模式。0A/D转换器处于掉电模式。02322TEST10这些位用于器件测试。00正常模式,01数字测试模式,10DAC测试模式,11一次转换测试模式。0002624START当BURST为0时,这些位控制着A/D转换是否启动和何时启动000不启动(PDN清零时使用该值)001立即启动转换010当ADCR寄存器BIT27选择的边沿出现在P016/EINT0/MAT02/CAP02脚时启动转换011当ADCR寄存器BIT27选择的边沿出现在P022/CAP00/MAT00脚时启动转换注意START选择100111时MAT信号不必输出到引脚上100当ADCR寄存器BIT27选择的边沿在MAT01出现时启动转换101当ADCR寄存器BIT27选择的边沿在MAT03出现时启动转换110当ADCR寄存器BIT27选择的边沿在MAT10出现时启动转换111当ADCR寄存器BIT27选择的边沿在MAT11出现时启动转000西安欧亚学院本科毕业论文(设计)1127EDGE该位只有在START字段为010111时有效0在所选CAP/MAT信号的下降沿启动转换1在所选CAP/MAT信号的上升沿启动转换A/D数据寄存器(ADDR0XE0034004)ADDR寄存器描述见表23,其中ADDR156为10位的A/D转换结果,BIT15为最高位。表23A/D数据寄存器ADDR名称描述复位值31DONEA/D转换完成标志位,当A/D转换结束时该位置位。该位在ADDR被读出和ADCR被写入时清零。如果ADCR在转换过程中被写入,该位置位,并启动一次新的转换。030OVERUNBURST模式下,如果在转换产生LS位的结果前一个或多个转换结果被丢失和覆盖,该位置位。该位通过读ADDR寄存器清零02927这些位读出为0。它们用于未来CHN字段的扩展,使之兼容包含更多通道的转换器。02624CHN这些位包含的是LS位的转换通道。X2316这些位读出时为0。它们允许连续A/D值的累加,而不需要使用与门屏蔽处理,使得至少有256个值不会溢出到CHN字段。0156V/VDDA当DONE为1时,该字段包含一个二进制数,用来代表SEL字段选中的AIN脚的电压。该字段根据VDDA脚上的电压对AIN脚的电压进行划分。该字段为0表明AIN脚的电压小于,等于或接近于VSSA;该字段为0X3FF表明AIN脚的电压接近于,等于或大于VDDA。X50这些位读出时为0。专门用于未来的扩展和功能更强大的A/D转换器。0读取A/D转换结果时,必须要等到转换结束,然后才可以读取。由于10位二进制数位于ADDR156这个位置,所以转换结束后还必须将值从这个位置取出来,程序如下UINT32ADC_DATA;WHILEADDR0X8000000000;/等待转换结束/ADC_DATAADDR;ADC_DATAADC_DATA60X3FF;/取出转换值/225初始化初始化ADC模块如下程序所示,使用AIN0进行10位ADC转换的初始化程序,转换时钟设置为1MHZPINSEL10X00400000;/设置P027为AIN0功能/西安欧亚学院本科毕业论文(设计)12ADCR140MS功能设置控制字30H延时100US功能设定控制字30H延时37US显示开关控制字0C0H延时100US清除显示屏控制字01H延时10MS进入设定点控制字06H初始化结束图26液晶显示模块初始化流程图西安欧亚学院本科毕业论文(设计)213开发工具31IAR开发环境311功能简介IAREMBEDDEDWORKBENCH(简称IAREW)是调试/仿真/编程/的集成开发环境,是一种非常高效的嵌入式系统开发工具。它使用户能够充分有效地开发和管理嵌入式应用项目,其界面类似于MSVISUALC,可以在WINDOW95/98/2000/XP平台上完美运行,功能十分完善。IAREW中包含了源程序文件编辑器、项目管理器、源程序调试器等,并且为C/C编译器、汇编器、链接定位器等提供了单一而且灵活的开发环境。IAREW的源级浏览器功能利用符号数据库使用户可以快速浏览源文件,还可以通过详细的符号信息来优化变量存储器;文件查找功能可在制定的若干文件中进行全局搜索。IAREW还提供了强大的第三方工具软件的接口,允许用户启动指定的应用程序,为用户带来方便的编译环境。IAREW适用于开发基于8位、16位以及32位微处理器的嵌入式系统,其集成开发环境具有统一界面,为用户提供了一个易学和具有最大代码继承能力的开发平台,以及对各种特殊目标的支持。IAR公司提出了所谓“不同架构,惟一解决方案”的理念用户可以针对多种不同的目标处理器,在相同的集成开发环境中进行基于不同CPL嵌入式系统应用程序的开发,以效提高工作效率,节省工作时间。IATEW还是一种可扩展的模块化环境,允许用户采用自己喜欢的编辑器和源代码控制系统,链接定位器可以输出多种格式的目标文件,使用户可以采用第三方软件进行仿真调试。编译器、汇编器和链接器也可在命令行上运行,用户可以在一个已建好的项目中把它们作为外部工具使用。312主要功能模块1高度优化的IARARMC/C斗编译器COMPILE;2IARARM汇编器ASSEMBLER;3通用的IARXLINK链接器LINKER;4IARXAR和XLIB建库程序和IARDLIBC/C运行库;5功能强大的编辑器;6项目管理器;7命令行实用程序;8IARCSPY调试器先进的高级语言调试器;313软件特点1完善的ARM内核支持;2客户化地芯片级支持;西安欧亚学院本科毕业论文(设计)223编译器速度优化及浮点运算库功能扩展;4支持多种嵌入式操作系统;5功能强大的DEBUG功能;314芯片及支持特性1各场商完整的ARM处理器C/C和汇编语言外设寄存器定义文件(H);2大量适于嵌入式代码的编程语言扩展特性,包括存储器关键字、本征关键字、本征函数、中断函数、存储器映射I/O等;3多种评估板例程,包括IAR、ANALOGDEVICES、AIJISYSTEM、ARM、ATMEL、CIRRUSLOGIC、FREESCALE、KEIL、OKI、OLIMEX、PASAT、PHILIPS、PHYTEC、ST和TI等等;4支持ARM或THUMB模式下大至4G字节的应用程序;5每个函数都能选择在ARM或THUMB模式下编译;6可生成VFP向量浮点协处理器代码;7支持ANALOGDEVICES、ATMEL、FREESCALE、OKI、PHILIPS、ST和TI等场商的ARM处理器的FLASHLOADER程序;8支持ARMANGELDEBUGMONITOR;315IAR集成开发环境界面特色1分层次的工程组织;2同一工作空间中允许存放多个工程;3可停靠的窗口和多视图;4源代码浏览;5创建和维护库的工具;6可以和源代码控制系统相集成;7文本编辑器;316IAR开发界面IAR开发界面图如图31所示西安欧亚学院本科毕业论文(设计)23图31IAR开发界面32JTAG321JATG简介JTAG是基于边缘扫描技术的嵌入式系统软件开发工具,具有程序代码的实时仿真、调试及编程功能。常见的JTAG有HJTAG、JLINK、FTDI等。图32HJTAG实物图西安欧亚学院本科毕业论文(设计)24PC机JTAG实验目标板图34JTAG与PC机和目标板连接示意图西安欧亚学院本科毕业论文(设计)254编程和调试41初始化411整机初始化流程图整机初始化如图41所示开始功能选择时钟配置ADC初始化LCD初始化初始化界面显示主程序图41整机初始化412初始化源程序功能初始化ADC、LCD、时钟频率/ADC初始化/VOIDADC_INTAD0CR_BITSEL2;/允许ADC01西安欧亚学院本科毕业论文(设计)26AD0CR_BITCLKDIVPCLKFREQ/4500000;AD0CR_BITBURST1;/开启连续转换模式AD0CR_BITCLKS0;/10位精度AD0CR_BITPDN1;/上电PINSEL1_BITP0_281;/配置电位器输出/PLC端口初始化/VOIDPLC_PORT_INITVOIDSCS_BITGPIO1M1;IO0DIR0X0040000F;FIO1DIR30X01;FIO1DIR20XFF;/时钟频率初始化/VOIDFEEDVOIDPLLFEED0XAA;PLLFEED0X55;/LCD初始化/VOIDLCD_INITVOIDWRITECOMMAND0X30;/使用8位控制界面WRITECOMMAND0X30;/使用基本指令集WRITECOMMAND0X0C;/整体显示ONWRITECOMMAND0X06;/显示右移/LCD初始化界面显示/西安欧亚学院本科毕业论文(设计)27VOIDINTSHOWVOIDSTR1“;UPDATEDISP0,STR1;STR1“温度检测系统“;LINEDISP1,STR1;STR1“;LINEDISP2,STR1;STR1“;LINEDISP3,STR1;DELAY2000000;42ADC程序设计421ADC流程图ADC流程框图如图42所示西安欧亚学院本科毕业论文(设计)28开启A/D转换取出ADCR中转换值换算取出的值查表显示温度再次启动A/D转换判断转换是否完成DONE0DONE1DELAY图42A/D转换程序流程图422A/D转换源程序WHILE1WHILEAD0DR_BITDONE0;/等待转换AD0DR_BITCHN0;/通道0数据ADCRESULTAD0DR_BITVVDDA;/保存ADC的值ADCRESMVADCRESULT2/256;/取出ADC的值SHOWTEMP;/显示温度AD0CR_BITSTART0X0001;/启动下次转换DELAY2000000;西安欧亚学院本科毕业论文(设计)29VOIDSHOWTEMPVOID/显示温度TEMPADCRESMV;STR2“温度检测系统“;UPDATEDISP0,STR2;STR2“当前温度“;LINEDISP1,STR2;STR2“;LINEDISP2,STR2;STR2“;LINEDISP3,STR2;IFTEMP867/温度201度到300度SHOWT1TEMP;ELSEIFTEMP611/温度101度到200度SHOWT2TEMP;ELSEIFTEMP355/温度51度到100度SHOWT3TEMP;ELSEIFTEMP99/温度0度到50度SHOWT4TEMP;ELSESHOWT5TEMP;/温度60度到1度DELAY100000;西安欧亚学院本科毕业论文(设计)3043液晶显示模块程序设计431液晶显示字符串程序流程图液晶显示字符串程序流程图如图43所示第一行第二行第三行第四行写入相应的端口地址判断输入字符是否结束在LCD中输出字符指向下一个字符NOYES图43液晶显示字符串流程图在程序中,根据用户设置判断要写入的行数,再将对应的显示端口地址写入液晶屏中,最后再逐个将字符写入液晶屏中。在显示数字的程序设计与字符显示基本相同。先将数字转化为该数字的字符,然后以同样的方式写入液晶屏中。在显示转化出来的温度时详细流程图如图44所示西安欧亚学院本科毕业论文(设计)31判断输入字符是否结束取出个(十/百)位数NOYES转换为该字符的ASCII码存入字符串数组字符串指针加1在LCD中输出字符串图44温度显示流程图432液晶显示源程序INCLUDE“CONFIGH“/INCLUDEINCLUDE“LCDH“/判忙LCD函数功能当前状态判断/UNSIGNEDCHARBUSY;VOIDBUSYLOOPVOIDLCDIN_0;/LCD数据端口输入模式DOLCDRS_CL;/RS0LCDRW_RH;/RW1西安欧亚学院本科毕业论文(设计)32LCDE_EH;/E1DELAY20;BUSYLCDIN;LCDE_EL;/E0WHILEBUSY0X7F;/高位1忙/读取操作函数说明DATA写入的值CD0指令写入,CD1数据写入,/EXTERNVOIDWRITEOPERATEUNSIGNEDCHARVALUE,UNSIGNEDCHARCDBUSYLOOP;/IFCDLCDRS_DH;/RS1;ELSELCDRS_CL;/RS0;LCDRW_WL;/RW0;LCDE_EH;/E1;LCDOUTVALUE;LCDOUT_1;DELAY20;LCDE_EL;/E0/液晶初始化功能/VOIDLCD_INITVOID/DELAY1000;/DELAY10000;WRITECOMMAND0X30;/使用8位控制界面WRITECOMMAND0X30;/使用基本指令集西安欧亚学院本科毕业论文(设计)33WRITECOMMAND0X0C;/整体显示ONWRITECOMMAND0X06;/显示右移/DELAY10000;/整行显示函数功能NUMLINE03;STRTMP要显示的字符串,以空格结尾显存里面写东西,控制器会根据写入的数据值范围来自动选择字符往屏上刷汉字是A1A1HF7FEH。LINE180H87HLINE290H97HLINE388H8FHLINE498H9FH/VOIDLINEDISPUNSIGNEDCHARNUMLINE,CHARSTRTMPBUSYLOOP;SWITCHNUMLINECASE0WRITECOMMAND0X80;BREAK;CASE1WRITECOMMAND0X90;BREAK;CASE2WRITECOMMAND0X88;BREAK;CASE3WRITECOMMAND0X98;BREAK;WHILESTRTMP0X00WRITEOPERATESTRTMP,1;STRTMP;西安欧亚学院本科毕业论文(设计)3444在程序调试中出现的问题1在液晶显示的初始化中,由于刚开始对管脚的不熟悉导致在液晶屏显示的调试中出现了乱码。2由于ARM芯片的AD转换寄存器比较复杂,在AD程序设计的初期一直都转换不出值。起初还以为是管脚设置错误,经过检查管脚未出现错误,电位器也工作正常。最后经过老师的知道后才发现是在初始化中,忘记了初始化INT了,导致转换失败;3在采集的转化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论