第六讲:MSP430的外围模块的功能简介

合集下载

MSP430寄存器手册

MSP430寄存器手册

2-时钟模块
微控网为你准备的 MSP430F 单片机入门必修课
微控网
MSP430F1XX 系列时钟模块图 时基模块结构如上图 : MSP430 系列单片机基础时钟主要是由低频晶体振荡器,高频晶体振荡器,数字控制 振荡器(DCO),锁频环(FLL)及 FLL+等模块构成。由于 430 系列单片机中的型号不同, 而时钟模块也将有所不同。虽然不同型号的单片机的时基模块有所不同,但这些模块产 生出来的结果是相同的.在 MSP430F13、 14 中是有 TX2 振荡器的, 而 MSP430F11X,F11X1 中是用 LFXT1CLK 来代替 XT2CLK 时钟信号的.在时钟模块中有 3 个(对于 F13,F14)时钟 信号源(或 2 个时钟信号源,对于 F11X、F11X1): 1-LFXT1CLK: 低频 /高频时钟源.由外接晶体振荡器,而无需外接两个振荡电容器.较 常使用的晶体振荡器是 32768HZ。 2-XT2CLK: 高频时钟源.由外接晶体振荡器。需要外接两个振荡电容器,较常用 的晶体振荡器是 8MHZ。 3-DCOCLK: 数字可控制的 RC 振荡器。
微控网为你准备的 MSP430F 单片机入门必修课
微控网
1-复位模块
MSP430 单片机系统复位电路 从上 MSP430 系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信 号 POR(Power On Reset)和上电清除信号 PUC(Power Up Clear)。 POR 信号是器件的复位信号,此信号只有在以下的事件发生时才会产生: □器件上电时。 □RST/NMI 引脚配置为复位模式,当 RST/NMI 引脚生产低电平时。 当 POR 信号产生时, 必然会产生 PUC 信号; 而 PUC 信号的产生时不会产生 POR 信号。 会引起产生 PUC 信号的事件: □POR 信号发生时。 □ 启动看门狗时,看门狗定时器计满时。 □ 向看门狗写入错误的安全参数值时。 □向片内 FLASH 写入错误的安全参数值时。 MSP430 单片机系统复位后器件的初始 当 POR 信号或 PUC 信号发生时引起器件复位后,器件的初始化状态为: □RST/NMI 引脚配置为复位模式。 □ I/O 引脚为输入模式。

msp430各功能模块的介绍

msp430各功能模块的介绍

各个时钟信号源介绍如下:1、LFXT1CLK:低频/高频时钟源。

可以外接32768Hz的时钟芯片或频率为450KHz~8MHz的标准警惕或共振器。

2、XT2CLK:高频时钟源。

需要外接两个震荡电容器。

可以外接32768Hz的时钟芯片或频率为450KHz~8MHz的标准警惕或共振器和外部时钟输入。

较常用的晶体是8MHz的。

3、DCOCLK:内部数字可控制的RC振荡器。

MSP430单片机时钟模块提供3个时钟信号以供给片内各部分电路使用,这3个时钟信号分别是:(1)ACLK:辅助时钟信号。

ACLK是从LFXT1CLK信号由1/2/4/8分频器分频后得到的。

由BCSCTL1寄存器设置DIV A相应位来决定分频因子。

ACLK可提供给CPU外围功能模块做时钟信号使用。

(2)MCLK:主时钟信号。

MCLK是由3个时钟源所提供的。

它们分别是:LFXT1CLK、XT2CLK、和DCO时钟源信号。

MCLK主要用于MCU和相关模块做时钟。

同样可设置相关寄存器来决定分频因子及相关设置。

(3)SMCLK:子系统时钟。

SMCLK由2个时钟源信号提供,他们分别是XT2CLK 和DCO。

如果是F11或F11X1系列单片机,则由LFXT1CLK代替XT2CLK。

同样可设置相关寄存器来决定分频因子及相关的设置。

低频振荡器LFXT1:LFXT1支持超低功耗,它在低频模式下使用一个32768Hz的晶体。

不需要任何电容因为在低频模式下内部集成了电容。

低频振荡器也支持高频模式和高速晶体,但连接时每端必须加电容。

电容的大小根据所接晶体频率的高低来选择。

低频振荡器在低频和高频模式下都可以选择从XIN引脚接入一个外部输入时钟信号,但所接频率必须根据所设定的工作模式来选择,并且OSCOFF位必须复位。

高频振荡器LFXT2:LFXT2作为MSP430的第二晶体振荡器。

与低频相比,其功耗更大。

高频晶体真大气外接在XIN2和XOUT2两个引脚,并且必须外接电容。

MSP430外围模块功能简介[3]

MSP430外围模块功能简介[3]

控制寄存器FCTL3
EXIT
基于模拟前端信号处理与控制技术的专业论坛,网站
微控设计网
中国MSP430单片机专业网站
FLASH存储器的操作:由于FLASH存储器由很多相对独立的段组成,因此可以在 某一段运行程序,而在另一个段进行擦写数据.正在执行 FLASH操作的段,CPU是不能访问的.大约4817个时钟. 操作步骤:1,擦除 2,写入 3,读出
基于模拟前端信号处理与控制技术的专业论坛,网站
微控设计网
中国MSP430单片机专业网站
EXIT
基于模拟前端信号处理与控制技术的专业论坛,网站
微控设计网
中国MSP430单片机专业网站
控制寄存器FCTL1
控制寄存器FCTL2
擦除操作:要对FLASH存储器写入数据,首先要擦除将被写入的段,而且是 全部擦除该段.经过一次擦除后该段所有位为1.擦除可以对一段,几段或整个模 块进行. 顺序: 1,选择适当的时钟和分频因子,其目的为时序发生器提供输入时钟
2,将 LOCK=0,后判断BUSY是否为0,为0时执行下一步 3,擦除一段将ERASE置为位,擦除多段擦除时,则将MERASE置位.如 擦除整个模块则将两位都置一. 4,对要擦除地址范围内任意位置进行一次空写操作.如CLR &XXXH 写操作:顺序 1, 2,3, 同上 4,如果写入单字节或单字,将控制位EWRT置位,如果在指定的段进行 或多字,多字节顺序的写入,则将WRT和BLKWRT同时置位. 此时启动了时许序发生器后数据在时序发生器的控制下完成写入. 读操作:可在任意时间访问该数据,不需要设置.
8位计数器 BTCNT2
EXIT
基于模拟前端信号处理与控制技术的专业论坛,网站
微控设计网

msp430

msp430

MSP430单片机系列种类
非基于LCD
MSP430x1xx: : 基于闪存/ ROM的MCU提供 伏至3.6伏的工作电压, 基于闪存 的 提供1.8伏至 伏的工作电压, 提供 伏至 伏的工作电压 高达60kB和8MIPS(带有基本时钟 带有基本时钟) 高达 和 带有基本时钟 MSP430F2xx: : 基于闪存的MCU 提供 提供1.8 伏至 伏至3.6 伏工作电压,掉电复位及 伏工作电压, 基于闪存的 16MIPS(带有基本时钟 带有基本时钟) 带有基本时钟 MSP430F5XX: : 基于闪存的MCU 提供 提供1.8 伏至 伏至3.6 伏工作电压,掉电复位及 伏工作电压, 基于闪存的 18MIPS(带有基本时钟 带有基本时钟) 带有基本时钟
各模块简要介绍— 5,Msp430f247的基准时钟系统
系统复位后: 系统复位后: MCLK和SMCLK由DCO提供, 提供, 和 由 提供 ACLK由LFXT1提供 由 提供
以下是DCO设置程序: //设定DCO为16MHZ : BCSCTL1 =CALBC1_16MHZ; DCOCTL =CALDCO_16MHZ; 可选频率1M,8M,12M,16M 读取0x10f9和0x10f8两 个地址里面 16MHzDCO常数分别 装入BCSCTL1和 DCOCTL两个寄存器
MSP430单片机的应用领域
日常公用测量 水表,气表,自动抄表, 水表,气表,自动抄表,先进电 表网络基础设施, 表网络基础设施,热分配表 便携式消费 无线鼠标和键盘,触摸按键, 无线鼠标和键盘,触摸按键, 手机,数码相机, 手机,数码相机,MP3 电动牙刷,剃须刀, 电动牙刷,剃须刀,运动手表等
主要内容
Msp430单片机简介 Msp430单片机简介 Msp430单片机的结构及主要模块 Msp430单片机的结构及主要模块 Msp430单片机的具体应用 Msp430单片机的具体应用 —位移测量装置 位移测量装置

MSP430_SPI 模块

MSP430_SPI 模块

MSP430--SPI模块SPI(Serial Peripheral Interface)串行外围模块接口是Motorola首先在其MC68HCXX系列处理器上定义的,它是一种同步的高速串行通信协议。

它可以使单片机与外围模块之间进行数据交换,比EEPR OM,Flash,实时时钟,AD转换,数字信号处理器和数字信号解码器之间交换数据,同时应用比较多的是用来作为按键等外设的扩展。

SPI总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

SPI有主从两种工作方式,可以工作在3线或者4线模式下。

MSP430单片机特点:(1)SPI模式支持3线和4线模式;(2)支持主机与从机模式;(3)接受和发送有各自独立的发送移位寄存器和缓冲器;(4)接受和发送都有独立的中断能力;(5)移位时钟的极性和相位可编程;(6)字符长度可以是7位或者8位。

当Msp430 USAR T模块控制器UxC TL的位SYNC置位时,USAR T模块工作于同步模式,对于149即工作于SPI模式,若是169,USAR T0可以支持I2C,可以通过另一控制位I2C控制,I2C位0则工作于SPI。

在SPI模式下,允许单片机以确定的速率发送和接收7位或8位数据。

同步通信与异步通信类似;同步通信和异步通信寄存器资源一致,具体寄存器的不同位之间的功能存在差异;具体寄存器内容参见TI提供的用户指南。

USART模块的SPI操作可以是3线和4线,其信号如下:SIMO:从进主出,主机模式下,数据输出;从机模式下,数据输入。

SOMI:从出主进,主机模式下,数据输入;从机模式下,数据输出。

UCLK:USART SPI模式时钟,信号有主机输出,从机输入。

C LK时钟只能由主机提供。

STE:从机模式发送接收允许控制脚,用于4线模式,控制多主从系统中多个从机,避免发生冲突。

MSP430

MSP430

Msp430学习笔记一、简介图1基本结构图2pin designation结论:1.基本每个管脚都可以复用2.外围功能模块丰富端口介绍(32I/O pins)1.端口P1和P2具有输入、输出、中断和外部模块功能。

这些功能可以通过各自的7个控制寄存器的设置来实现。

(1)PxDIR输入输出方向寄存器rw(2)PxIN输入寄存器r(3)PxOUT输出寄存器r(4)PxIFG中断标志寄存器r(5)PxIES中断触发沿选择寄存器rw(6)PxIE中断使能寄存器rw(7)PxSEL功能选择寄存器rw2.其他端口:四个控制寄存器(除去中断相关)看看例程二、时钟部分1.时钟寄存器设置SCFQCTL系统时钟控制寄存器(倍频,反馈后默认是31,31+1=32)SCFI0系统时钟频率调整器0(锁频环反馈中的分频(实质最终是倍频))SCFI1系统时钟频率调整器1(自动控制调整,无需软件设置)FLL_CTL0FLL+控制器0(反馈中是否分频、选择LFXT1晶振的有效电容)FLL_CTL1FLL+控制器1(振荡器控制、时钟源对应的振荡器的选择,默认情况下:振荡器打开,MCLK选择DCOCLK,SMCLK选择DCOCLK)图时钟模块2.工作模式:One Active Mode、Five Power Saving ModesMSP430是一个特别强调低功耗的单片机系列,尤其适用于采用电池供电的长时间工作场合。

系统根据应用和节能使用不同的时钟信号,这样可以合理利用系统的电源,实现整个系统的超低功耗。

中断是MSP430微处理器的一大特色。

有效地利用中断可以简化程序,并且提高执行效率和系统稳定性。

几乎所有的msp430系统单片机的每个外围模块都能产生中断,为MSP430针对事件(外围模块产生的中断)进行的编程打下基础。

MSP430在没有事件发生时处于低功耗模式,事件发生时通过中断唤醒CPU,时间处理完毕后CPU再次进入低功耗模式,由于CPU运算速度和推出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态,使得系统的整体功耗极大地降低。

浅析MSP430单片机及外围模块

浅析MSP430单片机及外围模块

浅析MSP430单片机及外围模块作者:倪文兴来源:《科技资讯》2011年第33期摘要:MSP430系列单片机都集成了较丰富的片内外设。

本文介绍MSP430单片机及外围模块,以期能够对MSP430单片机有更深的认识。

关键词:MSP430 单片机外围模块中图分类号:TP36 文献标识码:A 文章编号:1672-3791(2011)11(c)-0048-011 MSP430系列单片机简介MSP430系列单片机可以分为以下几个系列:X1XX,X2XX,X3XX,X4XX等等而且还在不断发展,从存储器角度又可分为ROM(C型)、OTP(P型)、EPROM(E型)、Flash Memory(F型)。

系列的全部成员均为软件兼容可以方便地在系列各型号间移植。

MSP430系列单片机的MCU设计成适合各种应用的16位结构。

它采用“冯-纽曼”结构,因此RAM、ROM和全部外围模块都位于同一个地址空间内。

2 外围电源电路、时钟模块、接口电路2.1 电源电路由于MSP430系列单片机的工作电压一般是1.8V~3.6V,并且功耗极低,因此选用TI公司的TPS76033作为电源芯片。

该电源芯片输出电压为3.3V,电流为50mA,完全能满足大多数低功耗应用场合的要求,也能满足本系统的功耗要求。

TPS76033特性参数:(1)50mA的低压差稳压器。

(2)提供1.8V、2.5V、2.85V、3.3V、5V的可调电压。

(3)-40°C至125°C的工作结温度范围。

(4)关机时小于1μA的静态电流。

(5)在50mA是典型的压差是120mV。

(6)输出短路保护。

2.2 MSP430F449时钟模块MSP430系列单片机提供了几种不同的时钟信号和时钟系统,以适应不同的应用场合。

用户可以根据需要,选择合适的系统时钟频率。

同时系统也提供了1种活动模式和5种低功耗工作模式,以供用户选择使用。

时钟模块:MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2、数字控制振荡器DCO、锁相环FLL和增强型锁相环FLL+等部件组成。

MSP430

MSP430

MSP430MSP430一、上电复位POR 和上电清除PUC二、低功耗控制但系统时钟发生器基本功能建立之后,CPU内的状态寄存器SR中的SCG1、SCG2、OscOff、CpuOff是低功耗的重要控制位;系统工作模式一共有6种,1种活动模式和5种低功耗模式;可以通过设置控制位使MSP430进入低功耗模式,由中断唤醒CPU,在执行完中断服务程序之后再回到低功耗模式,也可以在执行中断程序的时候间接访问堆栈修改状态寄存器的值,这样中断程序执行完之后就会进入另外一种低功耗模式或者处于活动模式。

三、时钟模块(一)、MSP430F149有三个时钟输入源:1、LFXT1CLK:如果LFXTCLK没有作用于SMCLK、MCLK信号,可以用OscOff置位以禁止LFXT1CLK工作;2、XT2CLK:若XT2CLK没有作用于SMCLK、MCLK信号,可以用控制位XT2OFF 关闭XT2;3、DCO振荡器:MSP430F149的两个外部振荡器产生的时钟信号都可以经过1、2、4、8分频后用作系统主时钟MCLK;当外部振荡器失效后,DCO 振荡器会自动被选作MCLK 的时钟源;(二)、MSP430F149提供3三种时钟信号:1、ACLK----辅助时钟,一般用于低速外设,由LFXT1CLK信号分频而得;2、MCLK----系统通过主时钟,一般用于CPU和系统,由以上三个时钟源任意一个分频而得;3、SMCLK---主要用于高速外设,由XT2CLK+XT2CLK 或LFXT1CLK+DCO分频而得。

(三)、如何控制MSP430的DCOCLK频率?——时钟模块的控制由5个寄存器来完成1、DCOCTL:定义8总频率之一2、BCSCTL1:控制XT2CLK的开启与关闭;控制LFXT1CLK的工作模式(低频或高频,高频下需要接高频时钟源);控制ACLK分频。

3、BCSCTL2选择MCLK时钟源;选择MCLK分频;选择SMCLK时钟源;选择SMCLK时钟源分频。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模数转换器ADC12的工作原理及使用MSP430F14X和44X系列单片机内嵌入一个高精度12位ADC转换模块。

该转换模块具有采样速率高,(最大采样速率达二十万次每秒,这无疑提高了测量精度)。

另外MSP430系列中的FE427也具有ADC模块功能,该模块中的16位ADC是采用∑-△转换技术来将模拟信号数字化的。

因此这两个模块转换的原理是有差别的,具体使用参见芯片参考手册。

在此讲座中只介绍MSP430F44X、14X系列的ADC转换模块。

从该模块电路看出,其模式转换是采用逐次逼近的方法来实现测量的。

该电路分5大功能模块组成,在配置上这5个模块都可以独立配置。

五大模块分析:1、带有采样/保持功能的ADC内核该采样器是以电菏为转换辅助量的及采用电荷重分布技术的逼近型ADC,其特点是高效经济。

其核心为1权电容网络。

其采样过程是一个电容充电过程。

其保持就是根据电容中的电菏不变实现在比较寄存器中的总电荷量在逐次逼近,随着逐次逼近过程的进行,权电容网络中的各电容两端的电压在不断变化,因而导致总电荷量在每个电容之间不断重新分布。

该原理要比传统逼近型ADC中控制精密电阻的相对精度要容易,因此实现较为经济,同时消除了电阻网络中因温度变化引起的阻值失配。

由于A/D转换的原理是基于电荷再分配,当内部开关切换输入信号进行采样时,会产生流入或流出电流,但这种电流由于外部的等效时间常数很小而不会影响转换精度。

但如果外部的阻抗很大,在确定的采样时间内,这些瞬变的电流就会影响采样的精度。

关于采样时序可见书中223页采样时序分析和218页的采样一节。

2、可控制的转换存储:MSP430F449的A/D转换存储是由16个转换存储寄存器完成的,在使用中可以进行多次转换而不需要用软件干预。

16个转换存储寄存器都配有一个控制器,通过控制器的说明可灵活的对每一采样通道的选择、参考电平的选择以及转换模式等其他工作条件进行独立定义。

一旦进行采样,A/D就会按照定义的方式进行工作,直到用软件去停止它。

该转换存储模式有4种:a、单通道单次。

b、单通道重复转换。

c、序列通道单次转换。

d、序列通道重复转换。

3、可控制的参考电平发生器V R+的选择:A/D12内部有两种参考电平,可以选择1.5V或2.5V。

参考电平可以加在A/D内核V R+上,也可以引到芯片外部的引脚中。

如果选用外部的参考电平,则可通过Ve REF+引脚加到V R+上。

V R-的选择:V R-的参考电平可以选择A VSS,也可以经过V REF-或由外部V EREF-引脚加入。

如果内部V REF-和外部V EREF-引脚未用,则V R-连接到AV SS。

参考电平的配置通过寄存器ADC12MCTLx中的SREF位的设置完成。

如果只用外部的参考电平,那么内部的参考电平发生器可以关闭,以降低功耗。

参考电平的作用是建立的A/D转换的时模拟信号输入的上下限。

其分别对应转换结果的量程的上下限。

因此在进行A/D模拟采样时不要使模拟信号的输入范围超出了该转换的范围。

注:当第一次打开V REFON一定注意建立转换所需要的建立时间。

4、可控制和选择的时钟源A/DC12的转换时钟可选择多种时钟源,并可作1~8分频,其时钟源的不同将影响转换速度和稳定性。

下列式子是转换时钟与转换速度的关系式转换时间=13×(ADC12DIV/f adc12clk)EXIT5、可控制的采样及转换时序电路ADC12的采样/保持保持电路可由用户通过ADC12CTL0和ADC12CTL1中的控制位配置来灵活地实现控制。

EXITEXIT说明1:模拟信号输入端MSP430F14x与MSP430F44x的AD完全相同。

外接的模拟输入信号占用P6口,及P6.0~P6.7 另外还有4个模拟输入信号;AVCC 、VeREF、VREF-VeREF、Ref_x 对应的是电源电压、外部正参考电平、外部负参考电平和温度。

对于内部参考电平一般可通过7脚与外部去藕电容相连,使之达到退藕的目的,同时也可作为校准用。

外部引进的参考电平由10脚和11脚引入,注意进入的电平不能超过AVCC 和AVss 关于内部参考有两种基准,一个是2.5v,一个是1.5v,这样AD的参考电平可以组成7种不同的组合来决定转换的范围的上下限,而且所有的输入模拟信号的转换码都与该参考电平有关,而每一个通道的参考电平可选择不同的组合来指出参考电平的上下限,这样AD的转换就根据此来转换响应的数字位并存储在指定的单元中。

注第11~15通道是测量Avcc/2 电平,实际上12和15是没有的。

关于码制转换公式如下:NADC=1095*(Vin-Vr-)/(Vr+-Vr-)式中Vin输入的模拟信号,范围大于AVss小于AVcc式中Vr-参考电平下限,最小为AVss式中Vr+参考电平上限,最大为Avcc关于各个通道的模拟输入的参考电平的设置可通过各个通道的存储控制寄存器(ADC12MCTLx)中Sref三个位来定义。

同用EXIT1、单通道单次转换第一步:将ADC12内核打开,及由ADC12ON=0修改成ADC12ON=1。

第二步:将指定通道地址,也就是开始存放的地址。

由控制寄存器1中的第12~15位确定。

同时定义选定的通道和定义该通道的参考电平和保存结果存储器。

第三步:启动转换,用ENC=1启动,等待转换,转换需要13个时钟周期。

其中12个时钟周期用于产生转换结果,1个时钟周期用于存储转换结果。

第四步:获取转换结果可通过查询方式或中断方式,采用查询方式时必须获取数据后将ENC=0以及中断标志位复位。

如将结果写入选定的存储寄存器ADC12MEMx时,中断标志自动的复位。

第五步:从复执行第三步进行下一个转换。

注意的是:当选用ADC12SC(软件转换)控制转换时,每次转换还要启动一次ADC12SC,如果用定时器启动就可在定时中断中启动ENC一次即可。

如2、序列通道单次转换第一步~第二步同上,只是用一个EOS来定义转换的结束指针在哪一个通道结束即可。

其余的步骤也同上。

3、单通道多次转换多次与单次转换类似,主要要设定它为多次转换,不同的是如何让转换停止,对单通道序列转换的停止方法有三种,a改变CONSEQ=0,此时多次转换结束,可将结果存入ADC12MEMx中,此时中断标志置位。

b用ENC来停止,并将结果存入ADC12MEMx中,此时中断标志置位。

c上述两个过程合在一起用。

但建议不采用此方法。

4、序列通道多次转换序列通道多次转换与序列通道单次转换类似上述模式切换即由2转换成3或由4转换成2可不必停止ENC转换允许,就可直接进行。

但对转换到1模式是不可以的,要先停止转换后切换。

可以接受的转换模式有:00——>0100——>1001——>0001——>1110——>1010——>1111——>0111——>1000单通单次01序列单次10单通多次11序列多次如果转换发生冲突,可分成两步切换即可。

MSC位的使用:多次采样/转换控制位(MSC)在不用采样定时器产生SAMPCON信号时不起作用。

如果用采样定时器产生SAMPCON且不处于单通道单次转换模式时(CONSEQ>0),则MSC位可以控制实现尽可能快的连续转换。

如果MSC=0,那么不管在哪种模式下,每次转换都需要由一个SHI的上升沿来触发。

如果MSC=1,并且CONSEQ>0,那么首次转换由SHI的第一个上升沿触发,但是后续的转换会在每次转换完成后立即自动触发启动。

根据不同的工作模式,在序列转换完成或ENC位翻转前,SHI的后续上升沿不起作用,在使用MSC位时,ENC位的作用不变。

ADC12CTL0 = SHT0_8+MSC+ADC12ON; //内部振荡器,//置位MSC 位,因此转换能自动进行ADC12CTL1 = 0x0204; // ADC12SC 位触发采样和保持// 采样脉冲由采样定时器产生// 时钟源:内部振荡器// 时钟分频: 1// 转换模式: 单通道、重复转换//选则参考电压和输入管脚ADC12MCTL0 = 0x0a; // Ref = AVss, AVcc; Input =// source = Temperature diodeADC12IE = 0x001; //使能通道10转换完成后中断_EINT();ADC12CTL0 |= 0x02; // 使能ADC 转换}#pragma vector=ADC_VECTOR __interrupt void ADC12(void){ Result = ADCMEM[0];}// 这个程序,用到了中断程序被初始化成单通道、重复转换,//// 转换结果在中断服务程序中,被放在变量Result 中。

//// 新的转换结果覆盖旧的结果,也可定义缓冲区来存放转换结果////************************************************************************//#include "MSP430x44x.h"#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义void Init(void); // 初始化系统及ADC 寄存器unsigned int Result;//-------------------------------------------------------------void main(void){Init();ADC12CTL0 |= 0x01; // 开始转换LPM0; //进入低功耗状态,等待中断_NOP(); } void Init(void) {WDTCTL = WDTPW + WDTHOLD; // 停止Wochdog. P6SEL = 0xFF; // 所有P6口线均为ADC 模块使用ADC12CTL0 &=~ 0x02; // 在进行设置时首先复位ADC 的//******************************************************************// // 这个程序,没有用到中断程序被初始化成多通道、// // 单次转换,转换结果放在变量Result[0]--Ressult[1]中// //*****************************************************************// #include "MSP430x14x.h"#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义void Init(void); // 初始化系统及ADC寄存器void main(void){unsigned int i;unsigned int j;unsigned int Result[2]; //用以保存转换结果Init(); //对ADC进行初始化while (1){for (i=0;i<2;i++){ADC12CTL0 |= 0x01; // 开始转换ADC12CTL0 &=~0x01; for (j=0;j<=1000;j++); // 延时,准备触发序列中//的下一次转换}while ((ADC12CTL1&0x01)==1); // 等待整个序列的转换完成for(j = 0 ; j <2; j++){Result[j] = ADCMEM[j];}for (i=0;i<=40000;i++); // 两个序列之间的一个延时}}//*************************************************************//// 这个程序,用到了中断程序被初始化成多通道、////重复转换,转换结果在中断中被放在////变量Result[0]和Result[1]中或是放在其它的缓冲区中///**************************************************************//#include <msp430x14x.h>#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义void Init(void);unsigned int Result[2];void main(void){Init();ADC12CTL0 |= 0x01; // 开始转换LPM0; //进入低功耗状态,等待中断_NOP(); }void Init(void){WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timerP6SEL = 0xFF; // 所有P6口线均为ADC模块使用ADC12CTL0 &=~ 0x02; //在进行设置时首先复位ADC的转换使能ADC12MCTL0 = 0x00; // Ref = AVss, AVcc; 输入通道= A0ADC12MCTL1 = 0x8a; // Ref = AVss, AVcc; 输入通道= A10ADC12CTL1 = 0x0206 ; // 第一个转换结果被放在ADC12MEM0// 第二个转换结果被放在ADC12MEM1// 采样脉冲由采样定时器产生// 时钟源:内部振荡器// 时钟分频: 1// 转换模式: 多通道、重复转换ADC12CTL0 = SHT0_8+ MSC+ADC12ON ;ADC12IE = 0x002; //使能转换中断ADC12CTL0 |= 0x02;_EINT(); //使能全局中断}#if __VER__ < 200interrupt [ void (void) // ADC 中断处理程序#else#pragma vector=ADC_VECTOR__interrupt void ADC12(void){#endifunsigned int i;for(i = 0 ; i < 2 ; i++ ){Result[i] = ADCMEM[i] ;}控制寄存器ADC12CTL0注意:此寄存器中的高12位的设置只有在ENC位复位的的情况在才能对其修改。

相关文档
最新文档