MSP430F5529实验指导书_第1页
MSP430F5529实验指导书_第2页
MSP430F5529实验指导书_第3页
MSP430F5529实验指导书_第4页
MSP430F5529实验指导书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、MSP430F552映验指导书()2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验键盘与液晶显示实验时钟系统配置实验看门狗与定时器实验AD/DA实验比较器实验Flash实验串行通信实验实验一基础GPIO实验【实验目的】1、熟悉CCS的基本使用方法;2、掌握MSP43集列单片机程序开发的基本步骤;3、掌握MSP430IO口的基本功能。【实验仪器】1、开发板一套;2、PC机操作系统WindowsXP或Windows7,集成开发环境。【实验原理】CCS(CodeComposerStudio)是TI公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的

2、集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。为CCS软件的最新版本,功能更强大、性能更稳定、可用性更高,是MSP430软件开发的理想工具。开发板上的有8个可操作的LED灯,与MCU勺IO口对应关系如图1-1所示:图1-1LED与MCU勺IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。开发板上还有2个可操作的按键S1,S2。如图1-2所示。图1-2按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。此外,S1,S2还可以作为外部中断源,触发中断。【实验内容】1、用调用头文件的方法,使能MSP430

3、F5529F发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。【实验步骤】内容1:使能开发板上的8个LED灯依次按顺序循环点亮1、打开CCSv5并确定工作区间,然后选择File->New->CCSProject弹出图1-3对话框。图1-3新建一个CCST程2、在Projectname中输入新建工程的名称,在此输入lab1_1。3、在Device部分选择器件的型号:在此Family选择MSP43;0Variant选择MSP430X5XXfamily,芯片选择MSP430F552其余保

4、持默认。4、在左下角对话框中,选择EmptyProjects下拉菜单下的EmptyProject(空工程),单击Finish。5、在新窗口中输入如下代码:#include<>voidmain(void)volatileunsignedinti;WDTCTL=WDTPW+WDTHOLD;/32x32xMHz/32,768Hz=76563=MCLKcyclesforDCOtosettle_delay_cycles(76563);/LoopuntilXT1,XT2&DCOfaultflagiscleareddoUCSCTL7&=(XT2OFFG+XT1LFOFFG+0x0

5、004+DCOFF)G;/ClearXT2,XT1,DCOfaultflagsSFRIFG1&=OFIFG;/Clearfaultflagswhile(SFRIFG1&OFIFG);/Testoscillatorfaultflagwhile(1);/Loopinplace3、编译、调试并下载程序到开发板。4、运行程序,用示波器观察、口的输出波形。【思考与分析】1、在不做任何配置的情况下,MSP430F552卵片机的各个时钟的默认值是多少?试编程加以验证。2、试编写程序验证MSP430F5529t片机的主时钟频率最大可达到多少?3、MSP43朦列单片机最大的特点是低功耗,低功耗是

6、如何体现的?查阅资料,加以详细论述。实验四看门狗与定时器实验【实验目的】1、了解看门狗定时器的基本作用;2、学会使用定时器在MSP430勺某一引脚输出特定占空比的方波;3、掌握MSP430S列单片机定时器的几种工作模式;4、熟悉MSP430S列单片机定时器的比较/捕获功能。【实验仪器】1、MSP430G2553LaunchPacF块,MSP430F5529MiniBoard一块;2、键盘接口一块,液晶屏一块;3、TDS21CK踪示波器一台;4、PC机操作系统WindowsXP或Windows7,集成开发环境。【实验原理】看门狗定时器主要用于在程序跑飞时,则不会在看门狗定时时间到达之前执行看门狗

7、清零指令,看门狗就会溢出,从而使系统产生复位,保证程序的正常运行。16位定时器的计数值寄存器TAR在每个时钟信号的上升沿进行增加/减少,可利用软件读取TAR寄存器的计数值。此外,当定时时间到,产生溢出时,定时器可产生中断。置位定时器控制寄存器中的TACLR空制位,可自动消除TARW存器的计数值,同时,在增/减计数模式下,清除了时钟分频器和计数方向。Timer_A共有4种工作模式:停止模式、增计数模式、连续计数模式和增/减计数模具体工作模式可以通过MC空制位进行选择,具体配置如表4-1所示。表4-1Timer_A工作模式配置列表MC控制位配置值Timer_A工作模式描述00停止模式Timer_A

8、停止01增计数模式Timer_A从0到TAxCCR0t复计数10r连续计数模式Timer_A从0至U0FFFFh重复计数11增/减计数模式Timer_A从0增计数到TAxCCR而后减1f数到0,循环往复定时器Timer_A的捕获模式:当CAP控制位置为1时,捕获/比较模块配置为捕获模式。捕获模式被用于捕获事件发生的时间。捕获/&入CCIxA和CCIxB可连接外部引脚或内部信号,这需通过CCIS控制位进行配置。可通过CM空制位将捕获输入信号触发沿配置为上升沿触发、下降沿触发或两者都触发。捕获事件在所选输入信号触发沿产生,如果产生捕获事件,定时器将完成以下工作:?主计数器计数值复制到TAx

9、CCRnf存器中;?置位中断标志位CCIFG【实验内容】1、使用看门狗定时功能产生一个方波(周期性的取反);2、利用定时器TAQ使其工作在增计数模式下,选择ACLK乍为其参考时钟。将和引脚配置为定时器输出,且使CCR向CCR2T作在比较输出模式7下,最终使引脚输出75贴空比的PWMS形,使引脚输出25贴空比的PWMfc形。3、选择键盘上的一个按键,当该按键按下一次时,打开定时器开始计时,利用定时器的捕获功能,捕捉该按键再次按下时的精确时间,并将该时间显示在液晶显示屏上。【实验步骤】内容1:看门狗定时器产生方波信号1、建立新工程,并命名为lab4_1。2、在新建工程的编辑窗口输入如下代码:#in

10、clude<>voidmain(void)WDTCTL=WDTPW+WDTCNTCL+WDTSSEL0+WDTIS_5;/看门狗定时器工作在看门狗模式,定时1S,选择ACLK乍为参考时钟P1DIR|=0x01;/设置端口为输出P1OUTA=0x01;/反转端口状态_bis_SR_register(LPM3_bits+GIE);/进入低功耗模式3,并启用中断3、编译、调试并下载程序到开发板。4、运行程序,用示波器观察口的输出波形。内容2:用定时器产生特定占空比的PWM1号1、建立新工程,步骤同上,并命名为lab4_22、在新建工程的编辑窗口输入如下代码:#include<>

11、;void main( void )WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT2+BIT3;P1SEL |= BIT2+BIT3;TA0CCR0 = 512-1;TA0CCTL1 = OUTMOD_7;TA0CCR1 = 384;TA0CCTL2 = OUTMOD_7;TA0CCR2 = 128;TA0CTL = TASSEL_1 + MC_1 + TACLR;_bis_SR_register ( LPM3_bits );/关闭看门狗/和设为输出/和引脚功能选为定时器输出/ PWM周期定义/ CCR1比较输出模式7:复位/置位/ CCR1 PWM占空比定义/ C

12、CR2比较输出模式7:复位/置位/ CCR2 PWM占空比定义/ ACLK,增计数模式,清除TAR十数器/ 进入LPM33、编译、调试并下载程序到开发板。4、运行程序,用示波器观察、口的输出波形。内容3:用定时器的捕获功能捕捉开发板上按键按下的精确时间1、将单片机、独立键盘和MSP430G2553aunchPad仿真器部分用杜邦线连接起2、导入工程“Lcd_and_Key',并在此基础上添加Timer的相关文件:和。文件如下:/*Copyright(c)*3+1*/东北林业大学机电工程学院创新实验室文件信息* *文件名:* *创建人:刘毅* *最后修改日期:2014年11月13日* *

13、描述:*历史版本信息*创建人:刘毅*版本:*日期:2014年11月13日*描述:原始版本*#include<>#include""#include""#include<>intpressent_time;/定义当前时间/*函数名:TA1_Init()功能:对TimerA1进行初始化入口参数:返回值:*/voidTA1_Init()P1DIR&=BIT7;P1SEL|=BIT7;/将引脚配置为定时器捕获输入P1OUT|=BIT7;P1REN|=BIT7;/设置为内部上拉TA1CTL=TASSEL_1+ID_3;/TA1主计数

14、器时钟选择ACLK,8分频/TA1EX0=TAIDEX_7;/分频扩展,8分频,timerclock=32768/8/8=512Hz/最大定时时间:65526/512=128sTA1CCTL0=CM1+SCS+CAP+CCIE;/CCR0工作于捕获模式,下降沿触发/*函数名:TA1_Start()功能:启动TimerA1入口参数:返回值:*voidTA1_Start()TA1CTL|=MC_2+TACLR;/清除TAR选择连续计数模式/*函数名:TimerAI中断服务子程序功能:读取捕获值入口参数:返回值:*/*#pragmavector=TIMER0_A1_VECTORinterruptvo

15、idTIMER0_A1_ISR(void)/charstr80;pressent_time=(TA1CCR0+1/512;/捕获当前时间,单位msLCD_ShowNum32,16,pressent_time,3);sprintf(str,"Theperssentis:%d",pressent_time);/LCD_ShowString(32,16,str);_delay_cycles(300000);TA1CCTL0&=CCIFG;/清除中断标志位文件如下:/*Copyright(c)*3+1东北林业大学机电工程学院创新实验室文件信息*文件名:*创建人:刘毅*最后修

16、改日期:2014年11月13日*描述*-历史版本信息*创建人:刘 毅*版本:*日期:2014年11月13日*描述:原始版本*/#ifndef TIMER_H#define TIMER_Hextern void TA1_Init ();extern void TA1_Start ();#endif/*TIMER_H_*/3、在文件的主函数中调用Timer相关函数。voidmain(void)WDTCTL=WDTPW+WDTHOLD;/关闭开门狗TA1_Init();TA1_Start();_bis_SR_register(GIE);while(1)4、编译、调试并下载程序到开发板。5、运行程序,

17、按下按键,观察液晶屏上捕获到的时间值。【思考与分析】1、利用定时器TA0实现开发板上的第一个LED灯以200ms间隔闪烁,同时利用定时器TA2实现液晶屏上的一个两位数以59s循环计时。2、试利用MSP430勺定时器捕获功能做一个频率计。AD/DA实验【实验目的】1、了解AD的工作原理;2、熟悉ADC12勺4种转换模式;3、掌握MSP430F5529勺ADC121本使用方法。4、掌握MSP430F6638勺DAC的基本使用方法。【实验仪器】1、开发板一套;2、键盘接口一块,液晶屏一块;3、PC机操作系统WindowsXP或Windows7,集成开发环境。【实验原理】模数转换器的作用是把从传感器采

18、集到的连续变化的模拟电压信号转换为单片机可识别的数字信号。在转换的过程中,数字输出代码与模拟输入电压之间的关系如图5-1所示。图5-1数字输出代码与模拟输入电压之间的关系数字量的计算方法:ADCft核一般要使用两个参考电压VR并口VR-,一般这两个电压可以是用户接入或者是使用内部参考电压。VR+1定义的转换最大值,VR-则是转换的最小值。以12位分辨率为例。?Vin>=VR+ADC12输出满量程值0X0FFF;?Vin<=VR-ADC12输出0;?VR-<Vin<VR+ADC12的转换结果满足如下公式:NADC=4095*(Vin-VR-)/(VR+-VR-)【实验内容

19、】1、利用开发板上的齿轮电位器进行采样,并将采样得到的模拟电压转换为数字量,在液晶屏上显示出来,并同时显示所采样的模拟电压值。2、利用A10通道采样内部温度传感器,并将采样的数值转化为摄氏和华氏温度,分别在液晶屏上显示出来。3、试编写程序,从MSP430F663第片机的DA引脚输出一个正弦波。【实验步骤】内容1:用电位器采样模拟电压并显示1、导入工程“Lcd_and_Key',改写程序,将开发板与键盘接口连接起来,将原程序中的P1口改写为P7口。2、并在此基础上添加ADC12勺相关文件:和。文件如下:/*Copyright(c)*3+1*东北林业大学机电工程学院创新实验室文件信息*文件

20、*创建*最后修改日期*描*名:人:刘毅:2014年11月13日述:历史版本信息* *创建人:刘毅* *版本:* *日期:2014年11月13日* *描述:原始版本*#include""#include""#include<>#include<>/*函数名:ADC_Init()功能:ADC1初始化入口参数:返回值:*/*voidADC_Init()volatileunsignedinti;P6SEL|=BIT5;/将引脚设为AD编入功能ADC12CTL0=ADC12ON+ADC12SHT02+ADC12MSC;打开ADC12,设置采

21、样间隔,序歹U采样ADC12CTL1=ADC12SHP+ADC12CONSEQ_2+ADC12SSEL_1+ADC12CSTARTADD_5;/采样保持触发信号选择采样定时器,设置单通道多次标换模式,时钟源选择ACLKADC专换开始地址ADC12MEM5ADC12MCTL5|=ADC12SREF_0+ADC12INCH_5;/Vr+=AVcc,Vr-=AVss,输入通道5ADC12IE=BIT5;/使能AD冲断for(i=0;i<0x30;i+);/延迟以使参考电压产生稳定ADC12CTL0|=ADC12ENC;/置位ADC12ENC制位,使能AD专换/*函数名:ADC_Start()功

22、能:启动AD专换入口参数:返回值:*/*voidADC_Start()/启动AD专换ADC12CTL0|=ADC12SC;/*函数名:ADC_Stop()能:停止AD专换入口参数:返回值:*/voidADC_Stop()ADC12CTL0&=ADC12ON;/ADC12CTL0&=ADC12SC;/禁止AD专换/*函数名:ADC1冲断服务程序功能:入口参数:返回值:*#pragmavector=ADC12_VECTOR_interruptvoidADC12_ISR(void)floata;volatilefloatu;switch(_even_in_range(ADC12IV,

23、34)case0:break;/Vector0:无中断case2:break;/Vector2:ADC溢出中断case4:break;/Vector4:ADC转换时间溢出中断case6:break;/Vector6:ADC12IFG0case8:break;/Vector8:ADC12IFG1case10:break;/Vector10:ADC12IFG2case12:break;/Vector12:ADC12IFG3case14:break;/Vector14:ADC12IFG4case16:/Vector16:ADC12IFG5/if(ADC12MEM5>=0x7ff)/ADC12M

24、EM=A0>?/P8OUT|=BIT1;/=1/else/P8OUT&=BIT1;/=0/a=ADC12MEM5;u=(a/4096)*;/计算输出电压公式LCD_ShowFloatNum(100,100,a);/输出ADC12MEM5值LCD_ShowFloatNum(100,150,u);/输出电压值LCD_ShowChar(200,150,'V',0);/输出单位“V”case18:break;/Vector18:ADC12IFG6case20:break;/Vector20:ADC12IFG7case22:break;/Vector22:ADC12IFG8

25、case24:break;/Vector24:ADC12IFG9case26:break;/Vector26:ADC12IFG10case28:break;/Vector28:ADC12IFG11case30:break;/Vector30:ADC12IFG12case32:break;/Vector32:ADC12IFG13case34:break;/Vector34:ADC12IFG14default:break文件如下:/*Copyright(c)*3+1东北林业大学机电工程学院创新实验室文件信息* 文件* 创建* 最后修改日期* 描名:人: 刘 毅: 2014 年11月13日述:*历史

26、版本信息*创建人:刘毅*版本:*日期:2014年11月13日*描述:原始版本*/#ifndefADC12_H_#defineADC12_H_#include""externvoidADC_Init();/ADC12初始化externvoidADC_Start();启动AD专换externvoidADC_Stop();/停止AD专换#endif/*ADC_H_*/3、在文件的主函数中调用AD采样函数,并使能ADC断。P8DIR|=BIT0;P8OUT|=BIT0;/将齿轮电位器的输出端置为高电平P8DIR|=BIT1;/设置为输出功能ADC_Init();/ADC12初始化A

27、DC_Start();/启动采样转换_enable_interrupt();/使能中断4、编译、调试并下载程序到开发板。5、运行程序,拨动齿轮电位器,观察液晶屏上显示的电压值的变化。内容2:XtADC12勺通道10进行采样,得到温度传感器的输出值并显示温1、改写内容1的AD采样的通道号,将其设置为采样内部温度传感器,度值。文件如下:/*Copyright(c)*3+1创新实验室 文件信息东北林业大学机电工程学院*文件*创建*最后修改日期*描名:人:刘毅:2014年11月13日述:* *历史版本信息* *创建人:刘毅* *版本:* *日期:2014年11月13日* *描述:原始版本*#inclu

28、de""#include""#include<>#include<>/*函数名:ADC_Init()功能:ADC1初始化入口参数:返回值:*/voidADC_Init()volatileunsignedinti;REFCTL0&=REFMSTR;/复位REFMSTR制位以控制ADC1参考电压控制寄存器ADC12CTL0=ADC12ON+ADC12SHT0_5+ADC12MSC+ADC12REFON;/打开ADC12,设置采容间隔,序列采样,打开内部参考电压产生器,参考电压设置为ADC12CTL1=ADC12SHP+ADC1

29、2CONSEQ_2+ADC12SSEL_1;/采样保持触发信号选择采样定时器,设置单通道多次转换模式,时钟源选择ACLK,ADCADC12MCTL0=ADC12SREF_1+ADC12INCH_10;/A10通道作为输入,采样温度ADC12IE=0x001;/使能ADC12IFG冲断for(i=0;i<0x30;i+);/延迟以使参考电压产生稳定ADC12CTL0|=ADC12ENC;/使能转换/*函数名:ADC_Start()功能:启动AD专换入口参数:返回值:*/voidADC_Start()/启动AD专换ADC12CTL0|=ADC12SC;/*函数名:ADC_Stop()功能:停

30、止AD专换入口参数:返回值:*/*voidADC_Stop()ADC12CTL0&=ADC12ON;/ADC12CTL0&=ADC12SC;/禁止AD专换/*函数名:ADC1冲断服务程序功能:入口参数:返回值:*/#pragmavector=ADC12_VECTOR_interruptvoidADC12_ISR(void)longtemp;volatilelongIntDegF;volatilelongIntDegC;switch(_even_in_range(ADC12IV,34)case0:break;case2:break;case4:break;case6:temp=A

31、DC12MEM0;IntDegC=(temp-1855)*667)/4096;IntDegF=(temp-1748)*1200)/4096;LCD_ShowFloatNum(100,100,IntDegC);LCD_ShowFloatNum(100,150,IntDegF);default:break;/ Vector 0:无中断/ Vector 2: ADC 溢出中断/ Vector 4: ADC 转换时间溢出中断/ Vector 6: ADC12IFG0/ 采样结果转化为摄氏温度/ 采样结果转化为华氏温度/ 输出摄氏温度/ 输出华氏温度/*Copyright(c)*3+1东北林业大学机电工

32、程学院创新实验室文件信息* * 文件名 :* * 创建人: 刘 毅* * 最后修改日期 : 2014 年11月 13日* * 描述 :* * 历史版本信息 * 创建人: 刘毅* 版本:* 日期: 2014 年11月13日* 描述: 原始版本*/#ifndef ADC12_H#define ADC12_H#include ""externvoidADC_Init ();/ADC12初始化externvoidADC_Start ();/启动AD专换extern#endifvoid ADC_Stop();/* ADC_H_ */停止AD专换文件如下:2、在文件的主函数中调用AD采

33、样函数,并使能ADC断。P8DIR|=BIT0;P8OUT|=BIT0;/将齿轮电位器的输出端置为高电平P8DIR|=BIT1;/设置为输出功能ADC_Init();ADC_Start();_enable_interrupt();/ ADC12初始化/启动采样转换/使能中断3、编译、调试并下载程序到开发板。4、运行程序,拨动齿轮电位器,观察液晶屏上显示的温度值的变化内容3:从MSP43印片机的DA引脚输出一个正弦波1、建立新工程,并命名为lab5_3。2、在新建工程的编辑窗口输入如下代码:#include<>#include<>#definePIvoidmain(voi

34、d)floati;intdacVal;WDTCTL=WDTPW+WDTHOLD;/StopwatchdogtimerDAC12_0CTL0=DAC12IR+DAC12SREF_1+DAC12AMp_5+DAC12CALON;/选择DAC12_0on,VCC作为参考电压,初始化偏移量校正DAC12_0CTL0|=DAC12ENC;/EnableDAC12while(1)i+=PI/36;dacVal=(int)(sin(i)+1)*2048);/每个j对应的sin换算为12位分辨率(0x00000X0FFF)时的数据DAC12_0DAT=dacVal;/将计算出的值写入DAC12_0DAT3、编

35、译、调试并下载程序到开发板。4、运行程序,用示波器观察DA输出端口的输出波形。【思考与分析】1、MSP430ADC2哪些转换方式?各自的特点是是什么?2、MSP430F552奥片机的ADC12R大转换率是多少?试配置寄存器使ADC12勺转换率达到最大。3、能否用MSP430F663的DA皿能产生特定频率的正弦波,若能,怎样确定频4、试编写程序,从MSP430F663第片机的DA引脚输出一个三角波。比较器实验【实验目的】1、了解MSP430!(列单片机比较器B的主要功能;2、掌握MSP430F552的比较器B基本使用方法;3、了解比较器B的简单应用,如测量电阻、电容触摸按键等。【实验仪器】1、M

36、SP430G2553LaunchPacF块,MSP430F5529MiniBoard一块;2、LED灯一个,电位器一个;2、PC机操作系统WindowsXP或Windows7,集成开发环境。【实验原理】比较器B是一个实现模拟电压比较的片内外设,主要用来比较模拟电压“+”输入端和“-”输入端的电压大小,然后设置输出信号CBOUT勺值。如果、”输出端电压高于“-”输出端电压,输出信号CBOUTS高,反之,CBOU拉低。通过相应寄存器的配置,比较器B可进行如下模拟电压信号的比较:(1)两个外部输入电压信号的比较;(2)每个外部输入电压信号与内部基准电压的比较。我们还可以通过设置,当比较器输出产生上升

37、沿或者下降沿时,触发中断并置位中断标志位。此时如果CBIE(比较器B中断使能)和GIE(CPU+断使能)都被置位,CBIFG等产生中断请求。【实验内容】1、比较器B输入通道CB5()接外部模拟输入信号(齿轮电位器),并引至比较器“+”输入端。内部参考电压发生器利用共享电压源产生参考电压,并引至比较器“-”输入端。最终产生以下结果:当CB5输入模拟信号电压高于时,CBOUT()输出高电平;当CB5输入模拟信号电压低于时,CBOU输出低电平。将开发板上的LED1引接到观察现象。2、在内容1的基础上,利用比较器中断,当CB5输入模拟信号电压高于时,拉高引脚;当CB5输入模拟信号电压低于时,拉低引脚。

38、【实验步骤】内容1:比较模拟输入电压(电位器输入)与参考电压1、建立新工程,步骤同上,并命名为lab6_1。2、在新建工程的编辑窗口输入如下代码:#include<>voidmain(void)WDTCTL=WDTPW+WDTHOLD;/关闭看门狗P1DIR|=BIT6;P1SEL|=BIT6;/选择功能为比较器输出CBOUT/以下步骤设置比较器BCBCTL0|=CBIPEN+CBIPSEL_5;/启用CB5,并将其引至正输入端CBCTL1|=CBPWRMD_1;/正常电源模式CBCTL2|=CBRSEL;/内部参考电压VRE引至负输入端CBCTL2|=CBRS_3+CBREFL_

39、2;/梯形电阻电路禁用,产生内部共享电压CBCTL3|=BIT5;/启用CB5:匕较器功能CBCTL1|=CBON;/打开比较器B_delay_cycles(75);_bis_SR_register(LPM4_bits);/延迟以待参考电压稳定进入LPM4将电位器的3个引脚分别连接VCC(中间引脚)、GND并在上外好个LED灯便于观察现象。4、编译、调试并下载程序到开发板。5、运行程序,调节电位器,观察现象。内容2:比较B中断的应用1、建立新工程,步骤同上,并命名为lab6_22、在新建工程的编辑窗口输入如下代码:#include<>voidmain(void)WDTCTL=:WD

40、TPW+WDTHOLD;/关闭看门狗P1DIR|=BIT0;/将设为输出/以下步骤设置比较器BCBCTL0|=CBIPEN+CBIPSEL_5;/启用CB5,并将其引至正输入端CBCTL1|=CBPWRMD_1;/正常电源模式CBCTL2|=CBRSEL;/内部参考电压VRE引至负输入端CBCTL2|=CBRS_3+CBREFL_2;/梯形电阻电路禁用,产生内部共享电压CBCTL3|=BIT5;/启用CB5:匕较器功能_delay_cycles(75);/延迟以待参考电压稳定CBINT &= (CBIFG + CBIIFG ) ;CBINT |= CBIE;CBCTL1 |= CBON

41、;/清除比较器中断标志位/使能比较器CBIFG±升沿中断(CBIES=0)/打开比较器Bbis_SR_register(LPM4_bits+GIE);/进入LPM4/Comp_B中断服务程序-反转口状态#pragmavector=COMP_B_VECTOR_interruptvoidComp_B_ISR(void)/切换中断触发方式/清除中断标志位/反转口状态CBCTL1A=CBIES;CBINT&=CBIFG;P1OUTA=0x01;3、将LED灯改接到上。4、编译、调试并下载程序到开发板。5、运行程序,调节电位器,观察现象。【思考与分析】1、比较器B与模数转换器ADCT什

42、么异同点?2、如何利用比较器B测量未知电阻?Flash实验【实验目的】1、了解Flash存储器的分段结构;2、掌握MSP43cm片机对Flash控制器的基本操作,包括数据的写入、数据的读出、数据的擦除,数据的修改等。【实验仪器】1、开发板一套;2、键盘接口一块,液晶屏一块;3、PC机操作系统WindowsXP或Windows7,集成开发环境。【实验原理】MSP430片机的Flash存储器是以段为基本结构进行存储的,总体上可分为3部分:128KB的Flash主存储器、2KB的BSL存储器和512B的信息存储器。Flash主要用于存储程序代码,被分割为4个扇区,每个扇区128段,每段256B。Fl

43、ash控制器可以以位、字节或者字的格式写入Flash主存储器,但Flash主存储器的最小擦出单位是段。BSL存储器为引导加载存储器,可以用来存储引导加载程序,其分为4段,每段512B,并且每段可单独进行擦除。信息存储器主要用来存储需要掉电后永久保存的数据,可分为4段,每段128B,每段也可单独进行擦除。其存储器的分段结构示意图如图7-1所示。7-1Flash存储器分段结构示意图MSP430F552的存储器结构图如图7-2所示:图7-2MSP430F552x系列单片机存储结构图Flash控制器主要用来实现对Flash存储器的烧写程序、写入数据和擦除功能,可对Flash存储器进行字节/字/长字(3

44、2位)的寻址和编程【实验内容】1、实现基本的擦出和写入操作,将已设定的数据0x写入InfoD,地址为0x1800。当写入完成时,使能开发板上的LED1闪烁。2、实现在InfoC中写入递增的自然数数值,并将InfoC的数据拷贝到InfoD,InfoD中的数据也是同样递增的数值。当操作完成时,使能开发板上的LED1闪烁。【实验步骤】内容1:基本的擦出和写入操作1、建立新工程,步骤同上,并命名为lab7_1。2、在新建工程的编辑窗口输入如下代码:#include<>voidmain(void)unsignedlong*Flash_ptrD;/InitializeFlashpointerS

45、egDunsignedlongvalue;WDTCTL=WDTPW+WDTHOLD;/StopWDTP1DIR|=BIT0;/setasoutputFlash_ptrD =(unsigned longvalue = 0x;FCTL3 = FWKEY;FCTL1 = FWKEY+ERASE;*Flash_ptrD = 0;FCTL1 = FWKEY+BLKWRT;*Flash_ptrD = value;FCTL1 = FWKEY;FCTL3 = FWKEY+LOCK;while (1) P1OUT A=BIT0; _delay_cycles( 500000);3、编译、调试并下载程序到开发板。)0x1800;/InitializeFlashpointer/InitializeValue/ClearLockbit/SetErasebit/DummywritetoeraseFlashseg/Enablelong-wordwrite/WritetoFlash/ClearWRTbit/SetLOCKbit/Loopforever,SETBREAKPOINTHERE/XOR/Delay4、运行程序,观察现象。0x1800处的值的大小。5

温馨提示

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

评论

0/150

提交评论