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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机及通信接口实验报告.docx

1、单片机及通信接口实验报告单片机及通信接口实验报告通信09-3班实验二 MSP430 基本时钟模块及低功耗结构一、实验目的掌握 MSP430 单片机基本时钟模块的原理及使用方法二、实验原理3.1 MSP430X1XX 系列时钟模块从图中可以看出,它有 3 个时钟输入源:(1) LFXT1CLK 由低频时钟晶体产生的低频时钟源,由标准高频晶体或陶瓷 谐振器产生的高频时钟源以及外接时钟信号源。(2) XT2CLK 由标准晶体或陶瓷谐振器产生,外接 450KHz8MHz 时钟信号源。 (3) DCOCLK 片内可以数字控制的 RC 振荡器。基础时钟模块可以提供 3 种时钟信号:(1) ACLK(辅助时

2、钟) ACLK 是 LFXT1CLK 信号经 1,2,4,8 分频后得到的。 分频系数可选,有参数 DIVA 控制。ALCK 可由软件选作各个外围模块的时钟信号。(2) MCLK(系统主时钟) MCLK 可由软件选择来自 LFXT1CLK,XT2CLK,DCOCLK 三者之一,然后经 1,2,4,8 分频得到。分频系数由 DIVM 控制。MCLK 主要用于 CPU 和系统。(3) SMLK(子系统时钟) 可由软件选择来自 LFXT1CLK,XT2CLK,DCOCLK 三 者之一,然后经 1,2,4,8 分频得到。分频系数由 DIVS 控制。MCLK 主要用于 各外围模块。3.2 低速晶体振荡器

3、低速晶体振荡器在 MSP430FLASH 系列的每一个器件中都能找到。一般是指32768Hz 的时钟晶体,同时将所需两个小电容也集成在内部。这样可降低系统成 本,同时降低系统功耗。LFXT1 振荡器在发生有效的 PUC 后开始工作,一次有效 的 PUC 信号可以将 SR 寄存器(状态寄存器)的 OscOff 位复位,即允许 LFXT1 作。LFXT1CLK 信号没有用作 SMCLK 或 MCLK 信号,则可以用软件将 OscOff 位置 以禁止 LFXT1 工作。LFXT1 的结构如下图所示:F1XX 系列的 LFXT1 振荡器当使用 32768Hz 的晶体时只须连到相应的引脚,两个小电容已经

4、集成在芯 片内部。应注意:这时 LFXT1 工作在低频模式,XTS 位应复位。同时 LFXT1 振荡 器也可以外接频率较高的高速晶体振荡器或陶瓷振荡器,以工作在高速模式;这 时 XTS 位置位,同时两个引脚还要外接电容,电容大小根据晶体或振荡器的特性 来选择。3.3 高速晶体振荡器高速振荡器主要存在于 F13X,F14X,F4XX 等器件,一般称之为第二振荡器 XT2,它产生时钟信号 XT2CLK,它的工作特性与 LFXT1 振荡器工作在高频模式是 类似。下图是 TX2 振荡器的控制逻辑。如果 XT2CLK 信号没用做 MCLK、SMCLK 时 钟信号,则可以用 XT2Off 控制位关闭 XT

5、2;如果 CPUOff=0,SELM=2,则 XT2CLK 用做 MCLK 时钟;如果 SCG1=0 且 SELS=1,XT2CLK 用做 SMCLK 时钟。3.4 DCO 振荡器XT2振荡器的控制逻辑MSP430FLASH 系列的两个外部振荡器产生的时钟信号都可以经 1,2,4,8分频后用作系统主时钟 MCLK。当振荡器失效时,DCO 振荡器会自动被选做 MCLK 的时钟源;上电复位时,不对时钟模块进行任何设置,不加外部振荡器,DCO 振 荡器也会选做 MCLK 的时钟源,频率在 800K 左右。DCO 振荡器实质上是一个可数字控制的 RC 振荡器。因为 RC 振荡器的频率会 随着温度和工作

6、电压的变化而变化,所以同一型号芯片产生的频率有所不同。但 同时 DCO 频率可通过 DCO、MOD、Rsel 等控制位用软件调节,这又增加了振荡器 频率的稳定性。三、实验设备名称指标数量微机1 台JTAG 下载器(带并口下载线)1 套MSP430 系统最小板1 个万用表1 个工具1 盒四、实验内容1 用低频晶振产生辅助时钟 ACLK 并输出,用示波器观察输出波形并记录其波形 和频率。设MCLK=XT1,将ACLK由P2.0输出程序如下:#include void main(void)unsigned int i;WDTCTL = WDTPW + WDTHOLD; /停止看门狗P2DIR |=

7、0X01; /设置P2.0为输出P2SEL |= 0X01; /设置P2.0为MCLK输出BCSCTL1 &= XTS; /设置XTS为有效 低频输出doIFG1 &= OFIFG; /清除振荡器失效标志for(i = 0xFF;i0;i-); /稳定时间2 用高速晶体振荡器产生系统时钟 MCLK 并输出,用示波器观察输出波形并记录 其波形和频率。设MCLK=XT2,将MCLK由5.4输出程序如下:#include void main(void)unsigned int i;WDTCTL = WDTPW + WDTHOLD; /停止看门狗P5DIR |= 0X10; /设置P5.4为输出P5S

8、EL |= 0X10; /设置P5.4为MCLK输出BCSCTL1 &= XT2OFF; /设置XT2为有效doIFG1 &= OFIFG; /清除振荡器失效标志for(i = 0xFF;i0;i-); /稳定时间while(IFG1 & OFIFG) != 0); /如果振荡器失效标志存在则继续循环。BCSCTL2 |= SELM1; /设置MCLK = XT2for(;);3 用高速晶体振荡器产生子系统时钟 SMCLK 并输出,用示波器观察输出波形并 记录其波形和频率。设SMCLK=XT2,将MCLK由5.5输出程序如下:#include void main(void)unsigned i

9、nt i;WDTCTL = WDTPW + WDTHOLD; /停止看门狗P5DIR |= 0X11; /设置P5.5为输出P5SEL |= 0X11; /设置P5.5为SMCLK输出BCSCTL1 &= XT2OFF; /设置XT2为有效doIFG1 &= OFIFG; /清除振荡器失效标志for(i = 0xFF;i0;i-); /稳定时间while(IFG1 & OFIFG) != 0); /如果振荡器失效标志存在则继续循环。BCSCTL2 |= SELM1; /设置MCLK = XT2for(;);4 用 DCO 作为系统时钟 MCLK 并输出,用示波器观察输出波形并记录其波形和频 率

10、。固定 MOD.0MOD.4 为 0100,Rsel.0Rsel.2 为 010,观察 DCO 的改变对 DCO 振荡器产生频率的影响。并填写下表:DCO000001010011100101110111频率(kHz)5 用 DCO 作为系统时钟 MCLK 并输出,用示波器观察输出波形并记录其波形和频率。固定 DCO.0DCO.2 为 010,Rsel.0Rsel.2 为 010,观察 MOD 的改变对 DCO 振荡器产生频率的影响。并填写下表:MOD00000001001000110100010101100111频率(kHz)MOD1000100110101011110011011110111

11、1频率(kHz)6 用 DCO 作为系统时钟 MCLK 并输出,用示波器观察输出波形并记录其波形和频率。固定 DCO.0DCO.2 为 010,MOD.0MOD.3 为 0100,观察 Rsel 的改变对 DCO 振荡器产生频率的影响。并填写下表:Rsel000001010011100101110111频率(kHz)实验三 MSP430 端口和看门狗定时器实验一、实验目的1 掌握 MSP430 I/O 端口的原理和用法。2 掌握 MSP430 看门狗定时器的原理和用法。二、试验原理3.1、MSP430 I/O 端口的基本原理1端口P1和P2 这些端口都具有中断能力,且每个端口的八个引脚共用一个

12、中断向量。 P1DIR ,P2DIR P1 和 P2 端口输入/输出方向寄存器P1IN,P2IN P1 和 P2 端口输入寄存器 P1DIR,P2DIR P1 和 P2 端口输出寄存器 P1OUT,P2OUT P1 和 P2 端口中断使能寄存器 P1IES,P2IES P1 和 P2 端口中断触发沿选择寄存器 P1IFG ,P2IFG P1 和 P2 端口中断标志寄存器P1SEL ,P2SEL P1 和 P2 端口功能选择寄存器2 端口P3,P4,P5和P6这些端口没有中断能力,其余功能与 P1 和 P2 一样,能实现输入/输出功能 和外围模块功能。每个端口有 4 个寄存器供用户使用。用户可通

13、过这 4 个寄存器 对他们进行访问和控制。PnDIR Pn 端口输入/输出方向寄存器 PnIN Pn 端口输入寄存器PnOUT Pn 端口输出寄存器 PnSEL Pn 端口功能选择寄存器3.2、MSP430 看门狗定时器的基本原理主要功能是:当程序发生故障时能使受控系统重新启动。如果 WDT 超过所 规定的时间,即发生系统复位。如果系统不需要看门狗功能,也可将他当定时器 使用,当到达 WDT 所定时的时间定时器模式将产生中断请求时,能产生中断.(1)看门狗模式可通过 WDTCTL 寄存器中的 TMSEL 控制位设置 TMLEL=1,工作在看门狗模式。 看门狗的原理:看门狗定时器设置一定时时间,

14、此时间是所有用户程序执行完该程序的一个时间,设置好定时时间之后,所有用户程序必须在该时间内将看 门狗计数器的值清零,使计数器重新计数;如果 CPU 执行程序正确,则看门狗计 数器时钟能在规定的时间内被用户程序清零;而当 CPU 执行程序跑飞(PC 值指向用户程序之外),看门狗计数器得不到清零,发生溢出,导致 CPU 复位,CPU 又会重新运行用户程序。所以,使用时,以防止超过设定的定时时间,用户软件 必须周期性地在 WDTCTL 的 CNTCL 位写 1,使得看门狗计数器复位。(2)定时器模式设置 TMSEL=1,WDT 工作在定时器模式。定时时间可用软件对 WDTTCL 寄存器 的 CNTC

15、L 置位进行初始化,WDT 将按设定的周期产生中断请求,中断请求得到服 务后,中断标志将自动清除。(3)关闭看门狗模式当系统不需要 WDT 时,设置 HOLD=1,可关闭 WDT,这时看门狗计数器停止工作, 可节省功耗。三、实验设备名称指标数量微机1 台JTAG 下载器(带并口下载线)1 套MSP430 系统最小板1 个万用表1 个工具1 盒四、试验内容1 利用 P3.1 产生方波,并用 P1.7 接收 P3.1 产生的方波来产生中断。中断内容 为使 P3.3 闪烁#include void main(void)WDTCTL=WDTPW+WDTHOLD;P3OUT =0x00; /P3引脚低电

16、平P3DIR |=0xff; /P3 方向输出P1OUT=0x00;P1IES |=0x00; /上升沿触发P1IFG= 0x00; /因为P1IES设置会使中断标志置位,故清零。P1IE |=0xff; / P1模块中断允许_EINT(); /系统中断允许int i;for(;)for(i=1;i=32000;i+);P3OUT =0x02; /P3.1每隔8000个机器指令周期产生一次跳变#pragma vector = PORT1_VECTOR_interrupt void P1_Interrupt(void)if (P1IFG=0x80) /如果P1.7中断 P1IFG=0x00; /

17、 中断标志清除P3OUT = 0x08; / P3.3输出变化else P1IFG=0x00; /非p1.7中断处理2 利用看门狗的定时器功能产生一方波,周期为 0.5S,占空比为 1:1。#include Unsigned char count=0;void main(void)WDTCTL = WDT_MDLY_0_5;IE1 |= WDTIE;P1DIR |=0x01;_EINT();for(;)_BIS_SR(CPUOff);_NOP();#pragmavector = WDT_VECTOR_interrupt void watchdog_timer(void)count+;if(co

18、unt=500)P1OUT = 0x01;count=0;3 利用看门狗的看门狗功能产生一方波。分别使用 ACLK 和 SMCLK 作为看门狗的 时钟。#include Unsigned char count=0;void main(void)WDTCTL = WDT_MRST_0_5;IE1 |= WDTIE;P1DIR |=0x01;_EINT();for(;)_BIS_SR(CPUOff);_NOP();#pragmavector = WDT_VECTOR_interrupt void watchdog_timer(void)MOV #WDTPW+WDTHOLD,&WDTCTL/喂狗co

19、unt+;if(count=500)P1OUT = 0x01;count=0;实验四 MSP430 16 位定时器 A 实验一、实验目的1 掌握定时器 A 的定时器功能及 4 种工作模式2 掌握定时器 A 的捕获/比较模块功能3 掌握定时器 A 的输出单元和 8 种输出模式二、实验原理结构原理图 4.1 中,可以将 Timer_A 分解成:计数器、捕获/比较寄存器及 输出单元。其中,计数器部分完成时钟源的选择与分频、模式控制及计数等功能; 捕获/比较寄存器用于捕获事件发生或产生的时间间隔;输出单元用于产生用户 需要的输出信号。1 Timer_A 的寄存器图 4.1 Timer_A 的结构原理图

20、(1)TACTL 控制寄存器TACTL 寄存器中含有全部的 Timer_A 控制位。该寄存器在 POR 信号后全部复 位,但在 PUC 信号后不受影响。该寄存器众各位的定义如下:15109876543210未用SSEL1SSEL0ID1ID0MC1MC0未用CLRTAIETAIFG(2)TAR 16 位计数器内容执行计数的单元,是计数器的主体。可读可写,但要注意:当计数时钟不是 MCLK 时,写入应该在计数器停止时写,因为它与 CPU 时钟不同步。(3)CCTLX 捕获/比较寄存器X 为捕获/比较模块序号,在寄存器中各位名称中的 X 也一样。该寄存器在POR 信号后全部复位,但在 PUC 信号

21、后不受影响。 该寄存器的各位定义如下:15 1413 121110987 6 543210CAPTMOD10CCIS10SCSSCCICAPOUTMODXCCIEXCCIXOUTCOVCCIFGX(4)CCRX 捕获/比较寄存器在捕获/比较寄存器模块中,可读可写。在捕获方式时,硬件自动将计数器 TAR 中的数据写入该寄存器。在比较方式时,用户程序根据需要定时时间长短, 配合定时器工作方式及定时器输入信号,写入该寄存器相应的数据。(5)TAIV 中断向量寄存器 该寄存器用于确定中断请求的中断源。各位定义如下:15 54 100 0中断向量02 定时器模式Timer_A 共有 4 种工作模式,由控

22、制寄存器 TACTL 中 MC0 和 MC1 两位决定。(1)停止模式(2)增计数模式(3)连续计数模式(4)增/减计数模式3 捕获比较模块用 CCTLX 中的 CAPX 选择捕获模式或比较模式,用 CCMX1 和 CCMX0 选择捕获 条件。捕获/比较模块的结构如图 4.13 所示。图 4.13 捕获/比较模块的逻辑结构(1)捕获模式(2)比较模式4 输出单元 每个捕获/比较模块都包含一个输出单元,用于产生输出信号。每个输出单元有 8 种工作模式,可产生基于 EQUX 的多种信号。所有的输出模式如下:输出模式 0 输出模式。 输出模式 1 置位模式。输出模式 2 PWM 翻转/复位模式。 输

23、出模式 3 PWM 置位/复位模式。 输出模式 4 翻转模式。输出模式 5 复位模式。输出模式 6 PWM 翻转/复位模式。 输出模式 7 PWM 复位/置位模式。三、实验设备名称指标数量微机1 台JTAG 下载器(带并口下载线)1 套MSP430 系统最小板1 个万用表1 个工具1 盒330 欧姆电阻DIP若干细导线若干四、试验内容1 用增计数模式产生一个周期为 0.5S 的方波#include Unsigned char count=0;void main(void)WDTCTL = WDTPW + WDTHOLD; / 停止看门狗P3DIR |= 0x06; / P3.1设置为输出CCT

24、L0 = CCIE; / CCR0中断允许CCR0 = 20000;TACTL = TASSEL_2 + TACLR +MC_1; / 定时器A时钟源为SMCLK,计数器清零,增计数模式_BIS_SR(LPM0_bits + GIE); / Enter LPM0 w/ interrupt#pragma vector=TIMERA0_VECTOR_interrupt void Timer_A (void)count+;If(count=10)P3OUT = 0x02; / P3.1取反count=0;2 用连续计数模式同时产生两个周期分别为 0.1S 和 1S 的方波。#include unsi

25、gned int count=0;void main(void)WDTCTL = WDTPW + WDTHOLD; / 停止看门狗P3DIR |= 0x06; / P3.1、P3.2设置为输出。CCTL0 = CCIE; / CCR0中断允许CCR0 = 40000;TACTL = TASSEL_2 + TACLR + MC_2 + TAIE; / 定时器A时钟源为SMCLK,计数器清零,连续计数模式,溢出中断允许。_BIS_SR(LPM3_bits + GIE); #pragma vector=TIMERA0_VECTOR_interrupt void Timer_A (void)P3OUT

26、 = 0x02; / P3.1取反#pragma vector=TIMERA1_VECTOR_interrupt void Timer_A(void)switch( TAIV )case 2: break; case 4: break; case 10: count+;if(count=6)count=0;P3OUT = 0x04; /P3.2取反 break;3 用增减计数模式产生一个周期为 0.5S 的对称方波。#include unsigned int count=5;void main(void)WDTCTL = WDTPW + WDTHOLD; / 停止看门狗P3DIR |= 0x0

27、6; / P3.1、P3.2设置为输出。CCTL0 = CCIE; / CCR0中断允许CCR0 = 20000;TACTL = TASSEL_2 + TACLR + MC_3 + TAIE; / 定时器A时钟源为SMCLK,计数器清零,增减计数模式,溢出中断允许。_BIS_SR(LPM3_bits + GIE); #pragma vector=TIMERA1_VECTOR_interrupt void Timer_A(void)switch( TAIV )case 2: break; case 4: break; case 10:count+;if(count=5)count=0; P3OU

28、T = 0x04; /P3.2取反break;4 使用 P3.1 产生一个周期小于 0.1S 的方波,并使用定时器 A 的捕获功能测量其 频率。#include unsigned int lastCCR0,lastCCR1unsigned int j=0; /测得信号周期为j*(1/100K)unsigned int k=0; /测得信号占空比为:k/junsigned int lastCCR0=0;unsigned int lastCCR1=0;void main(void)WDTCTL=WDTPW+WDTHOLD; /停止看门狗TACTL =TASSEL_2+ID_3+MC_2+TACLR; /MCLK,8分频,连续模式,计数器清空CCTL0=CM_3 + CCIS_0 + SCS + CAP + CCIE; /上升沿和下降沿均捕获,异步捕获,捕获模式,捕获中断允许CCTL1=CM_1 + CCI

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

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