1、本科毕业设计(论文) 目录前言1第1章 系统的总体设计方案21.1 设计概要21.1.1 系统的设计特点21.1.2 系统的主要组成21.1.3 系统的总体电路框图2第2章 系统的硬件设计42.1 单片机系统42.1.1 MSP430结构概述42.2.2 MSP430F14X系列单片机的介绍52.1.2 MSP430F14X系列的A/D转换62.1.3 MSP430单片机的最小系统电路72.2 恒流源部分92.2.1 电流源92.2.2 放大器92.2.3 跟随器112.3 LCD显示部分112.3.1 1602芯片简介112.3.2 显示电路132.4 时钟电路142.4.1 S-3530A
2、芯片的特性142.5电源电路16第3章 系统软件设计183.1 初始化程序设计183.1.1 端口初始化183.1.2 A/D初始化193.1.3 定时器A的初始化203.2 A/D采集程序213.3 显示模块流程图223.4 测试程序24结论29谢 辞30参考文献31附 录33外文资料翻译37 基于MSP430的电阻测量系统的设计摘 要在仪器仪表应用领域中,电阻测量是一个比较普遍的要求。本系统将介绍采用MSP430单片机实现电阻测量系统。本设计基于单片机技术原理,以MSP430单片机芯片作为核心,用点阵式液晶显示芯片LCD1602完成液晶显示功能,增加了显示的美观性与直观性;有电流源电路、放
3、大器电路、跟随器电路组成的恒流源作为电源为MSP430单片机提供稳定的电流;在模拟信号采集和输出模块中运用TI公司生产的PGA204可编程增益仪表放大器,使产品实现了高精度、微功耗以及微小型封装的完美组合,对模拟信号进行前置滤波放大,减小无用信号的干扰,提高了稳定性。本系统大部分功能通过软件编程来实现,LCD显示功能,提供了友好的人机交互界面,能适合各种工作场合。关键词:MSP430单片机,1602芯片,PGA204芯片,电阻测量,恒流源The Design of Resistance Measurement Systembased on MSP430ABSTRACTThe instrumen
4、ts used in the field of resistance and the measurement is a more popular demand. this system will introduce the MSP430 monolithic integrated circuits for resistance measurement system.This design revivification theory to MSP430 monolithic integrated circuits, with a chip as a core four-three-three f
5、ormation LCD display chip LCD1602 through liquid crystal display the functions, and visualization and display of current ; a circuit or circuit, an amplifier with the constant flow of electrical power source as for the supply of the current monolithic integrated circuits MSP430,The signal collecting
6、 and output of a module of the use of programmatic PGA204 gain appearance of an amplifier, the product of high precision, a small package TDP and perfect combination of a signal, which filtering, less interference from no signal, and improves stability.The system of functional programming by softwar
7、e to implement and LCD display provides functionality and friendly man-machine interaction and interface to the workplace.KEY WORDS: MSP430 monolithic integrated circuits,1602 chip,PGA204 chip,measurement of resistance,constant current source1 前言在科学研究和工程应用中,我们经常会遇到需要进行电阻测量的场合,传统的方法是伏安法,这种方法需同时测电压和电流
8、,所以系统误差较大。众所周知,在科学技术与社会生产高度发达的今天,智能测试仪器与仪器仪表系统发展迅速,被测对象的跨度既广泛又具有多样性。计算机技术的迅猛发展使仪器仪表的发展上了一个新台阶,传统的检测设备被智能化仪器所取代。智能化仪表的两个主要的发展方向是大型自动测试系统和便携式低功耗智能仪表,电阻测量问题也就成为电路设计所需考虑的重要因素之一。在本文中,我将提出一种基于MSP430的通用型电阻测量仪表系统的设计方案。本设计是基于单片机的电阻测量,应用恒流源测电阻具有测量电路简单、快速、准确等特点。与普通的电阻测量方法相比较:该测量仪表的测试电流小并加有多种保护电路,具有很高的安全性能。主要用于
9、军工、国防、民用爆破等行业的点火工品的低电阻的测量。 近年来随着以计算机为轴心的各种各样信息处理装置的诞生,为适应这种新形势,信息家电,网络终端,广播-通信等用途的LCD市场也将迅速扩大,而且如今LCD发展方向不仅在于大屏幕,而且在中小屏幕方面,例如汽车导航系统,摄像机,数字式照相机,便携式电视,娱乐/游戏机,摄影机等有着进一步的发展。由此可见LCD的应用之广泛,所以在电子产品作为主力军的21世纪里用单片机控制液晶显示器的电阻测量具有广阔的发展前景。 第1章 系统的总体设计方案1.1 设计概要通常,电阻测量在准确度、分辨率、测量范围上有很大不同,且三者很难同时达到最优。为了克服传统电阻测量的缺
10、点,本设计提出了一种优化方法的电阻测量电路。有恒流源部分为系统提供稳定的电流,该部分包括电流源电路、放大器电路和跟随器电路;LCD显示电路、数字时钟电路和单片机电路。1.1.1 系统的设计特点1. 单片机的电阻测量,应用恒流源提供的稳定电流(电流已知)测电阻具有测量电路简单、快速、准确等特点。2. 通过MSP430单片机的A/D转换通道使模拟量数字化,测量电阻上的电压1。3. 有LCD液晶显示部分可直接读出电阻上的阻值,因此可得电阻值。1.1.2 系统的主要组成本系统主要包括电流源电路、放大器电路、跟随器电路、单片机电路、LCD液晶显示电路以及时钟电路。1.1.3 系统的总体电路框图该系统的硬
11、件电路由电流源电路、放大器电路、跟随器电路、单片机电路、显示电路和时钟电路组成。图1-1为系统的原理框图。由图1-1可以看出整个系统具有结构简单等特点。时钟电路记录系统时间,显示电路用来显示正常测量时的电阻实时值。电源电路是任何一个测量电路所不可缺少的重要环节,电源主要为整个电路提供可靠的电源,另外考虑到工作的需要有复位功能,因此也为系统提供了复位信号,可以使系统再遇到故障时进行复位2。MSP430F149单片机电源电路时钟电路电流源放大器跟随器增益显示电路控制 A/D地 R图 1-1 系统原理框图 第2章 系统的硬件设计2.1 单片机系统2.1.1 MSP430结构概述MSP430系列单片机
12、是一个特别强的超低功耗性能的单片机品种。它适合应用在各种要求极低功耗的场合,具有一定的技术特点。在这个系列中有多个型号,它们由一些基本功能模块按不同的应用目标组合而成。其中FLASH型芯片又可分为几个分支,如11x,11x1,13x,14x等。它们都具有开发设备简便、可现场编程等特点。MSP430系列采用存储器存储器结构,即用一个公共的空间对全部功能模块寻址,同时用精简的指令对全部功能模块进行操作。MSP430的CPU运行正交的精简指令集,由16位ALU(Arithmetic and Logic Unit)、指令控制逻辑和16个寄存器组成。寄存器中有4个具有特殊用途,即程序计数器RO/PC(R
13、egister O/Program counter)、堆栈指针RI/SP(Stack pointer)、状态寄存器和常数发生器R2/SR/CG 1(Special Register/Constant Generator 1):R3/CG2。除了CGI和CG2,所有寄存器都可作为通用寄存器,用所有指令操作。常数发生器只用于指令执行时提供常数,但不能存储数据3。对CG1: CG2访问时的寻址模式可以区分所获得的常数数值。PC(program counter):SP和SR配合精简指令所实现的控制,可以使应用系统的程序设计实现复杂的寻址模式和软件算法。对程序存储器进行访问时,对于程序代码总是以字形式取
14、得,而对于数据可以用字或字节指令进行访问。每次访问均需要16位数据总线(MDB;即:Memory Data Bus)和访问当前存储器模块所需的地址总线(MAB,即:Memory Address Bus)。存储模块由内部模块允许信号自动选中,这样可以减少总的电流消耗。对于MSP430F系列,程序存储器是FLASH的。在程序设计中,可以将数据安排在程序存储器中,它们可以用字或字节指令方式访问,因此可以实现查表处理等应用。64 KB空间顶部的16 位(0FFFF-OFFEO)保留用作复位及中断的向量地址。数据存储器(RAM)与程序存储器相同,经地址总线(MAB)和数据总线(MDB)与CPU相连。RA
15、M内的数据可以以字或字节宽度访问。由于RAM与程序存储器是经过相同的地址总线和数据总线与CPU相连,因此程序代码可以装入RAM,也可以在RAM内运行。这给程序的调试提供了很大的方便。所有指令都有字节操作或字操作形式。但是,对堆栈和PC的操作是按字宽度进行的,寻址时必须对准偶地址4。2.2.2 MSP430F14X系列单片机的介绍该系列单片机主要有MSP430F147、MSP430F1471、MSP430F148、MSP430F1481、MSP430F149和MSP430F1491等几种型号。该系列单片机主要有以下特点。具有很低的供电电压。单片机的供电电压最低可以低到1.8V,单片机的供电电压范
16、围是:1.83.6V。超低功耗。这是目前其他单片机没有的特色。它在休眠的条件下工作的电流只有0.8uA,就是在2.2V、1MHz条件下工作电流只有280uA。快速的唤醒时间。从休眠方式唤醒只需要6us。快速的指令执行时间。它采用的是16位的RISC结构,指令执行时间只需要150ns,是传统单片机不能比拟的。片内有12位的A/D转换器,片内提供参考电压。A/D转换器具有采样保持和自动扫描特点。16位的定时器带有7个捕获/比较寄存器。片内提供温度传感器。具有灵活的时钟设置。主要有以下几种方式:32kHz的晶体方式、高频率晶体方式、谐振器方式和外部时钟源方式。这样可以根据功耗要求和速度要求进行灵活的
17、时钟设置。16位的定时器带有3个捕获/比较寄存器。片内提供模拟信号比较器。串口通信模块:USART0、USART1。两个串口都可以通过软件选择设置成UART方式或者SPI方式,由于该系列单片机提供了两个串口,因此能为用户进行多机通信设计提供方便。片内提供较多的存储器,MSP430F147提供的片内FLASH为32KB,MSP430F149提供的片内FLASH为60KB,同时片内还提供较多的RAM以便进行运算处理。提供P1.0P6.0共6个数据端口,能为用户提供更多的处理功能。在提供的外围数据端口中,有两个端口,能为用户提供更多的处理功能5。在提供的外围数据端口中,有两个端口具有中断功能,这样能
18、丰富硬件系统的中断资源,也为实现多任务系统提供方便。代码保护功能。单片机的安全熔丝能对程序的代码进行保护,从而可以对知识产权进行保护。具有JTAG仿真调试接口,这样非常便于软件的调试。为了对MSP430F14X系列有比较清楚的认识,在此特意介绍一下该系列单片机的各个管脚。图2-1为该系列单片机的管脚图。图2-1 MSP430F149单片机的管脚图2.1.2 MSP430F14X系列的A/D转换在MSP430F1XX系列单片机中,有的型号的单片机(比如MSP430F13X和MSP430F14X)有ADC模块,在该系列单片机里,ADC模块为12位的ADC模块,叫做ADC12。ADC12模块支持快速
19、的12位A/D转换。ADC12模块应用了12位的SAR核、采样选择控制、参与产生和16位的转换控制缓冲区。转换控制缓冲区可以支持多达16个ADC采样转换存储。ADC12模块主要有以下特点6。 采样速度快。 在采样周期可以编程的情况下,采样保持的时间可以由软件或者定时器控制。 转换开始可以由软件、定时器A和定时器B实现。 片内参考电压的产生可以由软件编程选择,也可以由软件选择内部参考还是外部参考。 每个信道可以单独选择正极性或者负极性的参考源。 可以选择的转换时钟源。 具有单通道单次转换、单通道多次转换、序列通道单次转换和序列通道多次转换4种转换模式。 ADC转换核和参考电压能够单独关断以节省功
20、耗。 具有中断失量寄存器,这样可以快速解码ADC的各个不同中断。 16位的转换结果存储寄存器。2.1.3 MSP430单片机的最小系统电路单片机电路作为整个系统的核心部分,将处理的结果采用某种方式表示出来,比如显示或者报警7。图2-2为单片机电路。图2-2 MSP430F149的接口电路通过图2-2可以看出,单片机的接口电路非常简单,分别采用单片机的一般I/O口实现与其他电路的接口,在单片机的时钟设计上与其他单片机有一定区别,MSP430F149单片机采用两个时钟输入,一个32KHz的时钟信号,一个8MHz的时钟信号。该系统的时钟部分都是采用晶体振荡器实现的。考虑到电源的输入纹波对单片机的影响
21、,在电源的管脚增加了一个0.1uF的电容来实现,以减少输入端受到的干扰8。另外单片机还有模拟电源的输入端,因此在这里需要考虑干扰问题。在该系统中的干扰比较小,因此模拟地和数字地共地,模拟电源输入端增加一个滤波电容以减少干扰。2.2 恒流源部分本系统由恒流源提供稳定的电流,而恒流源有电流源电路、放大器电路和跟随器电路组成。2.2.1 电流源电流源电路采用美国的BURR-BROWN公司的REF200来实现。该芯片内含有两个100mA的恒流源和一个镜像电流源。该芯片的精度非常高,提供的电流精度为(1000.5)mA,并且低温度系数为25ppm/0C。该芯片的使用非常简单,只要在7管脚或8管脚加上2.
22、5V40V之间的任何一个电压,就可以在1管脚或2管脚上分别输出100mA电流9。如图2-3具体的电路图。图2-3 电流源电路由图2-3可以看出,该电路非常简单。由于该芯片能提供两个100mA的电流和一个镜像电流,因此适当修改电路还可以实现200mA电流的输出。在本系统中,只使用了一个100mA的电流源。2.2.2 放大器在本系统中,由于电流源提供的电流为100mA,因此需要进行放大处理。考虑通过单片机控制放大器的增益,因此使用数字放大器。本系统中的数字放大器采用的是TI公司的PGA204芯片。PGA204芯片1、10、100和1000的可选增益,其输入偏置电压最大为50mV,输入偏置电流最大为
23、2nA,具有很高的共模抑制比(115dB,G=1000时),适合作为测试仪精密的电压放大电路。如图2-4示为具体的放大电路。图2-4 放大电路图由2-4可以看出,电流源提供在电阻R501上的压降为2mV,经过PGA204适当放大后在V0管脚输出放大后的电压。在设计电路时,需要将反馈管脚FB与输出管脚V0连接在一起。PGA204芯片的A0管脚和A1管脚控制PGA204的增益。该两个管脚与单片机的一般I/O管脚进行连接,通过单片机来选择PGA204的增益10。表2-1为A0、A1管脚上输入电平与增益的关系。 表2-1 PGA204的增益选择A1的逻辑电平A0的逻辑电平增益0010110101001
24、11000由表2-1可以看出,通过在A0管脚和A1管脚上输入相应的高电平或者低电平就可以获得相应的增益,使用起来非常方便。2.2.3 跟随器为了获得稳定的恒流源,在放大器电路后增加跟随器电路。恒流源跟随器电路选用TI公司生产的具有极低偏置电流(1pA)的精密运算放大器OPA602来实现11。如图2-5所示为具体的跟随器电路图。图2-5 跟随器电路图 在图2-5中REF和FB分别是放大电路的参考输入和输出。由电流源电路、放大器电路和跟随器电路组成了本系统的恒流源电路6。本恒流源电路提供GmA(G为放大电路的增益)的恒定电流12。当G为1时,本系统测量的最大电阻为3k(选用模拟AVcc为3V)。本
25、系统的单片机电路很简单,只需要将待测电阻的一端与单片机的1路A/D转换通道进行连接,通过2个一般I/O管脚(P1.0和P1.1)与PGA204的A0和A1进行连接。2.3 LCD显示部分2.3.1 1602芯片简介1602芯片:各个引脚的定义如表2-2所示。表2-2 LCD的引脚定义引脚号引脚名电平输入输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令1=输入数据5R/W0/1输入0=向LCD写入指令或数据1=从LCD读取信息6E1,10输入使能信号,1 时读取信息,10(下降沿)执行指令7DB00/1输入输出数据总线Line0(最低位)8DB10/1
26、输入输出数据总线Line09DB20/1输入输出数据总线Line110DB30/1输入输出数据总线Line211DB40/1输入输出数据总线Line312DB50/1输入输出数据总线Line413DB60/1输入输出数据总线Line514DB70/1输入输出数据总线Line6(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极1602芯片主要用于显示时间和定时时间。由点阵字符液晶显示器件和专用的行、列驱动器、控制及必要的链接件、结构件组装而成,可以显示数字和西文字符,但不能显示图形,已经可以满足本次设计的需要。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1
27、602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,MSP430F149有丰富的端口,共48个I/0数据口,本设计单片机通过P2和P5的部分口与显示器进行连接,其中P2.0P2.7与显示器DB0DB7连接,做数据I/O口。P5.0,P5.1,P5.2连接显示器的E, R/W, RS来控制1602并且具有字符对比度调节和背光功能。笔段式LCD显示器:类似于LED数码管显示器。每个显示器的段电极包括a, b, c, d, e, f, g七个笔划(段)和一个背电极BP(或COM)。可以显示数字和简单的字符。点阵式LCD显示器:段电极与背电极呈
28、正交带状分布,液晶位于正交的带状电极间。点阵式LCD的控制一般采用行扫描方式。2.3.2 显示电路单片机应用系统中使用的显示器主要有发光二级管LED液晶显示器和液晶LCD显示。液晶显示器简称是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。其特点是体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。本设计采用LCD1602作为显示器LCD显示电路用于本系统的显示实现,由于MSP430FW14X单片机本身带有LCD控制器,因此LCD实现非常简单,只需要LCD模块就可以实现。LCD1602共有16个引脚,VSS为接地电源,VCC、Vee接+
29、5V电源,RS为寄存器选择,高电平时,选择数据寄存器、低电平时,选择指令寄存器。R/W为读写信号线,高电平时,进行读操作,低电平时,进行写操作。当RS和RW共同为低电平时,可以写入指令或者显示地址,当RS为低电平、RW为高电平时,可以读忙信号,当RS为高电平、RW为低电平,可以写入数据。E为使能端,A和K用于带背光模块,不带背光的模块,这两个管脚悬空不接。DB0DB7为8位双向数据线12。如图2-6所示为LCD电路图。 图2-6 LCD液晶显示电路2.4 时钟电路S-3530A是一种支持I2C总线的CMOS实时时钟芯片,它按照CPU传送来的数据设置时钟和日历。该芯片通过两线式与CPU连接,并有
30、两个中断/报警系统,这样可减少CPU的软件工作。当振荡电路工作于恒定电压时,该芯片功耗很小。芯片封装形式有8脚DIP与8脚SSOP等封装形式。时钟电路主要由S-3530A芯片来实现。2.4.1 S-3530A芯片的特性S-3530A主要具有以下特性: 低功耗:典型值0.7A。 宽工作电压:1.7V5.5V。 年、月、日、星期、时、分、秒的BCD码输入输出。 I2C总线接口。 自动日历到2009(包括闰年自动换算功能)。 内置电源电压检测电路。 内置稳压电路。 内置上电/掉电检测电路。 内置报警中断(双系统)。 可设固定中断频率/事件。 内置32KHz石英晶体振荡电路(内部Cd外部Cg)。 8个
31、管脚DIP和8个管脚SSOP的封装13。为了便于进行硬件电路的设计,下面给出芯片的管脚图,如图2-7所示。图2-7 S-3530A管脚图 由图2-7所示可以看出,该芯片只有8个管脚,这样使用起来方便,只需要简单的外围电路即可,下面对具体的管脚进行介绍。l INT1 :报警中断1输出脚,根据中断寄存器与状态寄存器来设置其工作的模式。l XIN:晶体连接脚(32768Hz).l XOUT:晶体输出管脚。l GND:电源接地。l INT2:报警中断2输出脚,根据中断寄存器与状态寄存器来设置其工作模式,当定时到达时,输出低电平或时钟信号。它可通过重写状态寄存器来禁止。l SCL:串行时钟输出脚,由于在
32、SCL上升/下降沿处理信号,要特别注意SCL信号的上升/下降的升降时间,应严格遵守说明书。l SDA:串行数据输入/输出脚,此管脚通常用1个电阻上拉至Vcc,并与其它漏极开路或集电器开路输出的器件通过“线或”方式连接。Vcc:电源管脚。2.4.2 时钟电路时钟电路主要由S-3530A芯片来实现。S-3530A通过I2C与单片机进行接口14。如图2-8所示为具体的时钟电路图。图2-8 时钟电路由图2-8可以看出该电路的设计很简单。由32KHz晶体、20pF电容和10pF电容构成时钟电路的振荡部分,这里电容的值必须严格一致才能保证时间的精度。因此XIN管脚必须接20pF的电容来代替,晶体振荡器采用
33、32768Hz的晶体。2.5电源电路该硬件系统的电源部分采用TI公司的TPS76033芯片实现,该芯片是一个降压芯片,由于整个系统采用3.3V供电,考虑到硬件系统对电源要求具有稳压功能和纹波小等特点,另外也考虑到硬件系统的低功耗等特点,因此该芯片能很好满足该硬件系统的要求。电源电路具体如图2-9所示。为了使使输出电源的波纹小,在输出部分用了一个2.2uF和0.1uF的电容,另外在芯片的输入端放置一个0.1uF的滤波电容,减小输入端受到的干扰。在使用时应该尽可能地选择最低的电源电压。对于MSP430而言,可用的最低电压是很低的,最低可达1.8V。我们使用TI公司推荐使用的3V。通常的电源只提供5
34、V电压,因此,需要将5V电压由一个3V的稳压管降压后给CPU供电,也可以直接锂电池供电。3V不是标准的TTL电平,因此,在使用时需要用接口电路使CPU的非TTL标准电平能与TTL标准电平的器件连接。这些接口电路应该也是低功耗的,否则会造成一方面使用低电压降低了功耗,另一个方面使用额外的接口电路又增加了系统的功耗。或者直接使用支持3V电压的外围芯片。图2-9 电源电路17洛阳理工学院毕业设计(论文)第3章 系统软件设计3.1 初始化程序设计初始化程序主要初始化端口,并设置A/D转换相应的寄存器。下面为具体的程序。3.1.1 端口初始化 void Init_Port(void) /将P1、P2、P
35、3、P4、P5、P6口的管脚设置为一般I/O端口 P2SEL=0; P2SEL=0; P3SEL=0; P4SEL=0; P5SEL=0; P6SEL=0; /设置管脚为输入管脚 P1DIR=0; P2DIR=0; P3DIR=0; P4DIR=0; P5DIR=0;P6DIR=0;/设置P1.0、P1.1和P1.3为输出管脚P1DIR |=BIT0;P1DIR |=BIT1;P1DIR |=BIT3;/将中断寄存器清零P1IE=0; P1IES=0;P1IFG=0;/管脚START使能中断P1IE |=BIT2;/对应的管脚由高到底电平跳变,并使相应的标志置位P1IES=BIT2; retu
36、rn; 上面的程序是对所有的端口都进行初始化,并设置P1.0和P1.1为输出管脚,用来与PGA204的A0管脚和A1管脚进行连接,实现增益的选择。P1.3用来控制LCD的显示,P1.2用来进行按键的处理,如果按下按键,则开始测量处理。3.1.2 A/D初始化A/D初始化程序主要设置A/D的相应参数。A/D转换有单通道单次转换、序列通道单次转换、序列通道多次转换等几种方式12。本系统采用的是单通道单次转换方式。下面为具体的A/D初始化程序。 void Init_ADC(void) /设置P6.0为模拟输入通道 P6SEL=0X01; /设置ENC为0,从而修改ADC12寄存器的值 ADC12CT
37、L0 &= (ENC); /转化的起始地址为:A/DCMEM0 ADC12CTL1 |=CSTARTA DD_0; /设置参考电压分别为AVss和Avcc,输入通道为A0 ADC12MCTL0 = INCH_0; ADC12CTL0 |=ADC12ON; ADC12CTL0 |=MSC; /转换模式为:单通道、单次转换 ADC12CTL1 |=CONSEO_0; /时钟源为SMCLK ADC12CTL1 |ADC12SSEL_1; /时钟分频为1 ADC12CTL1 |ADC12DIV_0; /采样脉冲由所采用的定时器产生 ADC12CTL1 |= (SHP); /使能ADC转换 ADC12C
38、TL0 |=ENC; return; 3.1.3 定时器A的初始化在本系统中,采用定时器A来控制A/D转换的控制,因此需要对定时器A进行初始化设置,下面为具体的程序。Void Init_timerA(void) TACTL = TASSEL1 + TACLR; /选择SMCLK,清除TAR TACTL += ID1; /1/8 SMCLK TACTL += ID0; /CCR0 中断允许 CCTL0 = CCIE; /时间间隔为250HZ CCR0 = 4000; /增计数模式 TACTL |= MC0; Return; 3.2 A/D采集程序 A/D采集程序由定时器A来控制,即通过定时器A来
39、确定A/D转换的频率。通过前面介绍的关于定时器A的初始化程序可知:定时器工作模式为增计数模式,当条件满足时,就会产生相应的中断,在中断程序里就可以读出A/D转换的数据。下面为定时器A的中断服务程序。 #if_VER_200 Interrupt TIMERA0_VECTOR void TimerA_ISR(void) #else #pragma vector=TIMERA0_VECTOR _interrupt void TimerA_ISR(void) #endif int i; If(nStart =1) /关闭转换 ADC12CTL0 &= ENC; /读出转换结果 ADC_BUFnADC_
40、Count=ADC12MEM0; nADC_Count +=1; If(nADC_Count=32) /设置标志 nADC_Flag=1; nADC_Count=0; /将数据倒向数据缓冲区 for(i=0;i32;i+) ADC_BUF_Tempi=ADC_BUFi; /开启转换ADC12CTL0 |=ENC+ADC12SC; 在上面的程序中,首先检测“nStart”是否为“1”,如果为“1”则开始测量,在进行测量时,首先停止A/D转换,然后读出转化结果,最后再开启A/D转换。在上面的程序中,通过全局变量和全局缓冲区与其他程序进行数据交互。 3.3 显示模块流程图单片机应用系统中使用的显示器
41、主要有发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器LCD(Liquid Crystal Display);近几年也有配置CRT显示器的。液晶显示器简称是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的液晶显示器显示功能强大,可现实各种字体的数字、图象,还可以自定义显示内容,增加了显示的美观性与直观性。最重要的是提供了友好的人机界面。其特点是体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。显示模块流程如图3-1所示:初始化清屏取字节地址检测忙闲取字符送显示YN开始取下一个字符图3-1 显示模块流程
42、图233.4 测试程序在本系统中,A/D采集的参考电源选择的是AVcc,其电压为3V,由于A/D采样是12位,因此每1位对应的电压为0.73mV。由于PGA204的增益是以10倍为基础的,因此在测量的时候,首先将增益设置为1,当测量得到的值小于407(对应的电压为0.3V)时,增大增益,继续测量,直到在增益合适的情况下得到测试结果。如图3-2所示为测试程序的流程示意图。开始 测量开始NO Yes 得到测量结果 增益合适NO YesLCD显示,结束 下一次 图3-2 测试程序流程图24根据图3-2所示的流程图,下面给出具体的测试程序。 int nStart; int nADC_Count; int nADC_Flag; int ADC_BUF_Temp32; int ADC_BUF32; Void main(void) int i; int pBuf32; int sum; int nTemp; float fVal; /关闭看门狗 WDTCTL = WDTPW + WDTHOLD; /关闭中断 _DINT(); /变量初始化