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

下载本文档

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

文档简介

1、MSP430F552或验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验实验二键盘与液晶显示实验实验三时钟系统配置实验实验四看门狗与定时器实验实验五AD/DA实验实验六比较器实验实验七Flash实验实验八串行通信实验实验一基础GPIO实验【实验目的】1、熟悉CCS勺基本使用方法;2、掌握MSP43原列单片机程序开发的基本步骤;3、掌握MSP4301co的基本功能。【实验仪器】1、SEED-EXP430F5529v1.0T发板一套;2、PC机操作系统WindowsXPEWindows%CCSv5.1集成开发环境。【实验原理】CCS(CodeC

2、omposerStudio)是TI公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。CCSv5.1为CCSa件的最新版本,功能更强大、性能更稳定、可用性更高,是MSP43软件开发的理想工具。SEED-EXP430F5529v1.0f发板上的有8个可操作的LEW,与MCU勺IO口对应关系如图1-1所示:图1-1LED与MCU勺IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。开发板上还有2个可操作的按键S1,S2。如图1-2所示。图1-2按键电路我们可以通过读

3、取与按键相连的IO口的输入电平状态来执行相应的操作。止匕外,S1,S2还可以作为外部中断源,触发中断。【实验内容】1、用调用头文件的方法,使能MSP430F5529f发板上的8个LEW依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。【实验步骤】内容1:使能开发板上的8个LED灯依次按顺序循环点亮1、打开CCSv5确定工作区间,然后选择File-New-CCSProject弹出图1-3对话框。图1-3新建一个CCST程2、在Projectname中输入新建工程的名称,在此输入lab1_1。3、在Device部分选

4、择器件的型号:在此Family选择MSP430Variant选择MSP430X5XXfamily芯片选择MSP430F552其余保持默认。4、在左下角对话框中,选择EmptyProjects下拉菜单下的EmptyProject(空工程),单击Finish。5、在新窗口中输入如下代码:#includevoidmain(void)volatileunsignedinti;WDTCTL=WDTPW+WDTHOL球闭看门狗P1DIR|=BIT0;/配置P1.0为输出功能P8DIR|=BIT1+BIT2;/配置P8.1,P8.2为输出功能P1DIR|=BIT1+BIT2+BIT3+BIT4+BIT5;w

5、hile(1)P1OUT=BIT0;_delay_cycles(500000);/延时P1OUT&=BIT0;P8OUT=BIT1;P8OUT=BIT2;_delay_cycles(500000);/延时P8OUT&=BIT2;for(i=BIT1;i=BIT5;i=i1)P1OUT=i;_delay_cycles(500000);/延时6、保存程序后Bulid(单击菜单中国,或快捷键Ctrl+B)编译程序。7、调试程序(单击菜单中型,)自动进入调试界面并下载程序。8、运行程序(单击菜单中口步型耳臬公|/7能)进行程序的运行、暂停、停止、单步运行等操作。9、观察实验现象,回顾操作步骤。内容2:

6、用按键S1控制开发板上LED1的亮灭状态(查询法)1、关闭上一个工程(在ProjectExplorer窗口,右键CloseProject)。2、建立新工程,步骤同上,并命名为lab1_203、在新建工程的编辑窗口输入如下代码:#includevolatileunsignedintflag=0;/定义按键标志位voidKeyscan();/申明按键检测函数voidmain(void)WDTCTL=WDTPW+WDTHOL明看门狗P1DIR|=BIT0;配置P1.0为输出功能P1OUT&=BIT0/初始化禁止LED0/*按键初始化*/P1REN|=BIT7;/设置为内部上拉while(1)Keys

7、can();/按键检测if(flag!=0)P1OUT|=BIT0;elseP1OUT&=BIT0;voidKeyscan()/按键检测函数if(P1IN&BIT7)=0)_delay_cycles(10000);/延时10msif(P1IN&BIT7)=0)while(P1IN&BIT7)=0);/等待按键抬起flag=flag;/按键标志位取反4、编译、调试并下载程序到开发板。5、运行程序,观察现象。内容3:用按键S2控制开发板上跑马灯的循环速度(中断方式)1、建立新工程,步骤同上,并命名为lab1_3。2、在新建工程的编辑窗口输入如下代码:#includeunsignedcharflag

8、=0;/定义按键标志位voidmain()WDTCTL=WDTPW+WDTHOL明看门狗P1DIR|=BIT0+BIT1+BIT2+BIT3+BIT4+BIT5;P1OUT&=BIT0+BIT1+BIT2+BIT3+BIT4+BIT5);P8DIR|=BIT1+BIT2;P8OUT&=BIT1+BIT2);/初始化LED/*按键中断初始化*/P1DIR&=BIT7;/酉己置P1.7为按键输入P1OUT|=BIT7;P1REN|=BIT7;设置为内部上拉P1IE|=BIT7;/P1.7中断使能P1IFG&=BIT7;清除P1.7的中断标志位P1IES|=BIT7;置1,设置为下降沿触发_enab

9、le_interrupt();while(1)if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P8OUT|=BIT1;P1OUT&=BIT0;if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P8OUT|=BIT2;P8OUT&=BIT1;if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P1OUT|=BIT1;P8OUT&=BIT2;if(flag=0)_delay_cy

10、cles(1000000);/闪烁elseP1OUT&=BIT1;if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P1OUT|=BIT3;P1OUT&=BIT2;if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P1OUT|=BIT4;P1OUT&=BIT3;if(flag=0)_delay_cycles(1000000);/闪烁else_delay_cycles(200000);P1OUT|=BIT5;P1OUT&=BIT4;if(flag=0

11、)_delay_cycles(1000000);/闪烁_delay_cycles(200000);#pragmavector=PORT1_VECTOR_interruptvoidPORT_(1void)_delay_cycles(300);while(P1IE&BIT7)=0);/等待按键释放if(flag=1)flag=0;elseflag=1;P1IFG&=BIT7;/清除中断标志3、编译、调试并下载程序到开发板。4、运行程序,观察现象。【思考与分析】1、在实际应用当中,一般将未用的IO口设置为输出状态,为什么?试查阅资料加以研究。2、在用查询法检测按键时,为什么要连续检测两次并在此期间加

12、上10ms左右的延时?3、试编写程序,用开发板上的两个按键及8个LED丁设计一个可控的跑马灯系统。其中,一个按键控制LED灯的流水速度(至少两种流水速度可调),另一个按键控制LEW的流水方式(至少3种流水方式可调)。实验二键盘与液晶显示实验【实验目的】1、学习键盘及液晶与MCUM件电路的连接方法;2、掌握键盘控制芯片CH452的键盘检测方法;3、掌握TFT2.2真彩液晶屏的使用方法;4、了解SPI总线的通信模式和基本特点。【实验仪器】1、MSP430G2553LaunchPad块,MSP430F5529MiniBoar块;2、TFT2.2_and_KEY盘接口一块,TFT2.2液晶屏一块;3、

13、PC机加系余WindowsXPEWindows%CCSv5.1集成开发环境。【实验原理】1、液晶显示的基本原理TFT-LC(DThinFilmTransistor-LiquidCrystalDisplay),即薄膜晶体管液晶显示器,也就是大家常说的真彩液晶显示屏。它可以“主动的”对屏幕上的各个独立的像素进行控制。显示屏由许多可以发出任意颜色的光线的像素组成,只要控制各个像素显示相应的颜色就能显示我们想要的色彩斑斓的世界。本实验所使用的TFT2.2彩色液晶模块是一个2.2寸的TFT模块,内置TFT控制器,对外连接直接通过8位的SPI总线进行指令和数据的传输。TFT2.2有像素点数为240X320

14、,色彩深度为16位色,也就是每一个像素点需要用16位的数据来表示其显示内容。TFT2.2模块的显示操作非常简便,需要改变某一个像素点的颜色时,只需要对该点所对应的2个字节的显存进行操作即可。而为了便于索引操作,模块将所有的显存地址分为X轴地址(XAddress)和Y轴地址(YAddress),分另可以寻址的范围为XAddress=0239,YAddress=0319,XAddress和YAddress交叉对应着一个显存单元(2byte);这样只要索引到了某一个X、Y轴地址时,并对该地址的寄存器进行操作,便可对TFT-LCM示器上对应的像素点进行操作了。TFT2.2模块的像素点与显存对应关系如下

15、图所示:图2-1显存与像素点对应关系示意图液晶模块与单片机的连接方式见工程Lcd.c文件中。2、矩阵键盘检测的基本原理为了节省单片机的IO口,提高键盘检测的效率和准确性,本实验我们采用键盘控制芯片CH452a行键盘扫描。并采用4线串行接口与单片机交换数据,单片机可以频繁地通过串行接口进行高速操作,而绝对不会降低CH452勺工作效率。在键盘扫描期间,DIG7DIG0引脚按照DIG0至DIG7的顺序依次输出高电平,其余7个引脚输出低电平;SEG入SEG叫脚的输出被禁止,当没有键被按下时,SEGASEG嘟被下拉为低电平;当有键被按下时,例如连接DIG3与SEG4勺键被按下,则当DIG3输出高电平时S

16、EG4佥测到高电平;为了防止因为按键抖动或者外界干扰而产生误码,CH452a行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果CH452佥测到有效的按键,则记录下该按键代码,并通过4线串行接口中的DOUTH脚或者2线串行接口中的INT#引脚产生低电平有效的键盘中断(当INTM为1时输出低电平脉冲中断),此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH45讣再产生任何键盘中断。CH452支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键同时按下,那么按键代码较小的按键优先。有关键盘检测的详细介绍请参考CH452片手册。【实验内容】

17、1、练习液晶显示部分基本函数的使用,如:画点,画线,画矩形,显示数字、字符、字符串、显示汉字等;2、仔细研读键盘检测程序,当有按键按下时,将相应的按键编码显示在液晶屏的合适位置。如:按下KEY5将在液晶显示屏上显示“TheKEYCODEisKEY01;3、自己另编写一个显示汉字的函数,显示你所想要的汉字大小,例如48*48;4、自己另编写一个显示图片的函数,显示你所想要尺寸的真彩图片;【实验步骤】内容1:基本函数的使用1、打开CCSv5选择“FileImport”命令,弹出如图2-2所示对话框,单击展开“CodeComposerStudio”选项,选择“ExistingCCS/CCEEclip

18、seProjects”。图2-2导入新的CCSv5r程文件2、单击“Next”按钮,弹出图2-3所示对话框。图2-2选择导入工程目录3、单击“Browse”按钮,选择工程文件目录Lcd_and_Key。单击“Finish”按钮,即可完成已有工程的导入。一一4、在此工程下练习一下函数的用法:/*LCDApp*/voidLCD_GPIQvoid);/LCDIO初始化voidSPI_Init(void);/SPI初始化voidLCD_Clear(uint16Color);/清屏voidLCD_C(Huint16x,uint16y,constuint8index);/显示汉字voidLCD_Fill(

19、uint16xsta,uint16ysta,uint16xend,uint16yend,uint16color);/颜色填充voidLCD_DrawPoint(uint16x,uint16y);/画点/画一个大点voidLCD_DrawLine(uint16x1,uint16y1,uint16x2,uint16y2);/画线voidLCD_DrawRectangle(uint16x1,uint16y1,uint16x2,uint16y2);/画矩形voidDraw_Circle(uint16x0,uint16y0,uint8r);/画圆voidLCD_ShowCha(ruint16x,uint

20、16y,uint8num,uint8mode;/显示一个字符voidLCD_ShowNu(ruint16x,uint16y,uint32num,uint8len);/显示数字voidLCD_Show2Nu(mint16x,uint16y,uint16num,uint8len);/显示2个数字voidLCD_ShowFloatNunmuint16x,uint16y,doublenun);/显示浮点数voidLCD_ShowString(uint16x,uint16y,int8*p);/显示字符串voidLCD_ShowPicture();/显本图片内容2:按键检测并显示键值voidmain(vo

21、id)WDTCTLWDTPW|WDTHOL/D;关闭开门狗PLL_Init();LCD_GPIO();SPI_Init();LCD_Init();/TFT初始化/*基本刷屏测试*/LCD_Clear(RED);LCD_Clear(GREE)N;LCD_Clear(YELLOW);/*清屏,并定义前景色和背景色*/LCD_Clear(RED);BACK_COLOR=BLACK;POINT_COLOR=WHITE;delayms(100);Keyscan();/键盘扫描使能_bis_SR_register(GIE);while(1)if(key_flag=1)/按键标志位为1,有按键按下if(KE

22、YCODE=/判断是否为KEY佞下KEYCODE=0;LCD_ShowString(32,64,TheKEYCODEisKEY01);if(KEYCODE=2/判断是否为KEY骸下KEYCODE=0;LCD_ShowString(32,64,TheKEYCODEisKEY02;key_flag=0;/按键标志位清0内容3:显示汉字1、用文字取模软件生成想要显示汉字的字模,并将字模数组写到font.c文件中,在font.h文件中加以声明;2、在1cd.c文件中改写汉字显示函数,并在lcd.h文件中加以声明;/*函数名:LCD_CH48_48功能:在指定位置显示一个汉字(48*48大小)入口参数:

23、dcolor内容颜色;gbcolor背景颜色返回值:无*/voidLCD_CH48_43uint16x,uint16y,constuint8index)uint16i,j;为了防止溢出,i,j必须定义为16为的int型constuint8*temp=hanzi48_48;Address_set(x,y,x+47,y+47);设置区域temp+=index*288;/*减法更高效*/for(j=288;j0;j-)for(i=8;i0;i-)if(*temp&(1239)wid=239;if(high319)high=319;Address_set(x,y,x+wid-1,y+high-1);/

24、坐标设置for(i=area;i=0;i-)LCD_WR_DATA8iage(area-i)*2+1);/发送颜色数据LCD_WR_DATA8iage(area-i)*2);3、在main.c文件中调用汉字显示函数。【思考与分析】1、在液晶显示程序中能否使用MSP430片机的低功耗模式?为什么?2、尝试在TFT2.2真彩液晶屏上编写一个含有两级以上的菜单程序,菜单风格自拟。实验三时钟系统配置实验【实验目的】1、掌握MSP430勺时钟系统结构与工作原理;2、了解MSP43原列单片机几种时钟信号的基本用途;3、学会用FLL锁频环配置时钟;【实验仪器】1、SEED-EXP430F5529v1.0F发

25、板一套;2、TDS210双踪示波器一台;3、PC机操作系统WindowsXPEWindows%CCSv5.1集成开发环境。【实验原理】在MSP43阴片机中,时钟系统的主要作用是为CPUE作提供时序,以及为不同的片内外设提供不同频率的时钟。1、 5个时钟输入源(1) XT1CLK氐频或高频时钟源:可以使用标准晶振,振荡器或者外部时钟源输入4MH32MHzXT1CLKT以作为内部FLL模块的参考时钟。(2) XT2CLKS频时钟源:可以使用标准晶振,振荡器或者外部时钟源输入4MHz-32MHz(3) VLOCL砥功耗低频内部时钟源:典型值为10KHz(4) REFOCLK频修整内部参考时钟源:典型

26、值为32768H4作为FLL基准时钟源。(5) DCOCLK内数字控制时钟源:通过FLL模块来稳定。2、 3个时钟信号(1) ACLKffi助时钟:ACLKM由软件选择来自XT1CLKREFOCLKVLOCLKDCOCLKDCOCLKDIVXT2CLK(由具体器件决定)这几个时钟源之一。然后经1、2、4、8、16、32分频得到。ACLKM由软件选作各个外设模块的时钟信号,一般用于低速外设模块。(2) MCLKS统主时钟:MCLKT由软件选才?来自上述5种时钟源,同样可经过分频得到。MCLKfc要用于CPUffi系统。(3) SMCLKF系统时钟:可由软件选择来自上述5种时钟源,同样可经过分频得

27、到。SMCLK可由软件选作各个外设模块的时钟信号,主要用于高速外设模块。通过软件配置,可以通过5个时钟输入源来产生特定频率的3个时钟信号供CPUO外设使用。3、MSP430F5xx/6xx系列单片机的时钟系统结构框图如图3-1所示。图3-1MSP430F5xx/6xx系列单片机的时钟系统结构框图4、MSP43舶片机的P1.0、P2.2、P7.7引脚的第二功能可以分别输出ACLKSMCLKMCLK,我们可以通过设置相应时钟信号从对应引脚输出,用示波器进行观察。【实验内容】1、编写时钟配置程序,设置ACLK=XT1CLK=32768HZSMCLK=XT2CLK=4MHZCLK=DC球认)=32XA

28、CLK=104857Hz,并将ACLKSMCL和MCL份另通过P1.0、P2.2、P7.7口输2、通过FLL锁频环电路自动校正技术使内部DCO8荡器稳定地运行在2.45MHz,【实验步骤】内容1:配置并输出辅助时钟ACLK子系统时钟SMCL及主日t钟MCLK1、建立新工程,并命名为lab3_1。2、在新建工程的编辑窗口输入如下代码:#includevoidmain(void)WDTCTL=WDTPW+WDTHStbpWVDTP1DIR|=BIT0;/ACLKsetouttopinsP1SEL|=BIT0;P2DIR|=BIT2;/SMCLKsetouttopinsP2SEL|=BIT2;P7D

29、IR|=BIT7;/MCLKsetouttopinsP7SEL|=BIT7;P7SEL|=BIT2+BIT3;/PortselectXT2UCSCTL6&=XT2OF/SetXT2OnUCSCTL6&=(+T1OFF;/XT1OnUCSCTL6|=XCAP_3;InternalloadcapLoopuntilXT1faultflagiscleareddoUCSCTL7&=(T2OFFG+XT1LFOFFG+DCOFFGClearXT2,XT1,DCOfaultflagsSFRIFG1&=OFIFG/Clearfaultflagswhile(SFRIFG1&OFIFG/Testoscillato

30、rfaultflagUCSCTL6&=XT2DRIVE0)ecreaseXT2DriveaccordingtoexpectedfrequencyUCSCTL4|=SELA_0+SELS_5SelectSMCLK,ACLKsourceandDCOsourcewhile(1);/Loopinplace3、编译、调试并下载程序到开发板。4、运行程序,用示波器观察P1.0、P2.2、P7.7口的输出波形。内容2:通过FLL锁频环电路自动校正技术使内部DCO8荡器稳定地运行在2.45MHz注意:相互关系式有:ACLK=XT1=32768HzMCLK=SMCLK=DCO=(74+1)*REFO=24576

31、00Hz;这里XT1CL政选为ACLKREFO内部调整过的32768Hz参考时钟,提供一个稳定的参考时钟用作FLLREFCLK1、建立新工程,步骤同上,并命名为lab3_202、在新建工程的编辑窗口输入如下代码:#includevoidmain(void)WDTCTL=WDTPW+WDTHStLpWVDTP1DIR|=BIT0;/ACLKsetouttopinsP1SEL|=BIT0;P2DIR|=BIT2;/SMCLKsetouttopinsP2SEL|=BIT2;P7DIR|=BIT7;MCLKsetouttopinsP7SEL|=BIT7;UCSCTL6&=(T1OFF;/XTIOnUC

32、SCTL6|=XCAP_3;InternalloadcapLoopuntilXT1faultflagiscleareddoUCSCTL7&=(T2OFFG+XT1LFOFFG+DCOFFGClearXT2,XT1,DCOfaultflagsSFRIFG1&=OFIFG/Clearfaultflagswhile(SFRIFG1&OFIFG/TestoscillatorfaultflagInitializeDCOto2.45MHz_bis_SR_register(SCG0;/DisabletheFLLcontrolloopUCSCTL0=0x0000/SetlowestpossibleDCOx,M

33、ODxUCSCTL1=DCORSEL/SetRSELxforDCO=4.9MHzUCSCTL2=FLLD_1+74;SetDCOMultiplierfor2.45MHz(N+1)*FLLRef=Fdco(74+1)*32768=2.45MHz/SetFLLDiv=fDCOCLK/2_bic_SR_register(SCG0;/EnabletheFLLcontrolloop/UGforoptimization.32x32x2.45MHz/32,768Hz=76563=MCLKcyclesforDCOtosettle_delay_cycles(76563);/LoopuntilXT1,XT2&DC

34、OfaultflagiscleareddoUCSCTL7&=(XT2OFFG+XT1LFOFFG+0x0004+DCO);F/F/CGlearXT2,XT1,DCOfaultflagsSFRIFG1&=OFIFG/;/Clearfaultflagswhile(SFRIFG1&OFIF)G;/Testoscillatorfaultflagwhile(1);/Loopinplace3、编译、调试并下载程序到开发板。4、运行程序,用示波器观察P1.0、P2.2、P7.7口的输出波形。【思考与分析】1、在不做任何配置的情况下,MSP430F552单片机的各个时钟的默认值是多少?试编程加以验证。2、试编

35、写程序验证MSP430F552单片机的主时钟频率最大可达到多少?3、MSP43陈列单片机最大的特点是低功耗,低功耗是如何体现的?查阅资料,加以详细论述。实验四看门狗与定时器实验【实验目的】1、了解看门狗定时器的基本作用;2、学会使用定时器在MSP430勺某一引脚输出特定占空比的方波;3、掌握MSP43原列单片机定时器的几种工作模式;4、熟悉MSP43原列单片机定时器的比较/捕获功能。【实验仪器】1、MSP430G2553LaunchPad块,MSP430F5529MiniBoar块;2、TFT2.2_and_KEY盘接口一块,TFT2.2液晶屏一块;3、TDS210双踪示波器一台;4、PC机操

36、作系统WindowsXPlEWindows%CCSv5.1集成开发环境。【实验原理】看门狗定时器主要用于在程序跑飞时,则不会在看门狗定时时间到达之前执行看门狗清零指令,看门狗就会溢出,从而使系统产生复位,保证程序的正常运行。16位定时器的计数值寄存器TAR&每个时钟信号的上升沿进行增加/减少,可利用软件读取TAR寄存器的计数值。此外,当定时时间到,产生溢出时,定时器可产生中断。置位定时器控制寄存器中的TACLFS制位,可自动消除TARJ存器的计数值,同时,在增/减计数模式下,清除了时钟分频器和计数方向。Timer_A共有4种工作模式:停止模式、增计数模式、连续计数模式和增/减计数模式,具体工作

37、模式可以通过MC空制位进行选择,具体配置如表4-1所示。表4-1Timer_A工作模式配置列表MC空制位配置值Timer_A工作模式描述00停止模式Timer_A停止01增计数模式Timer_A从0至UTAxCCR0S复计数10连续计数模式Timer_A从0至U0FFFFh重复计数11增/减计数模式Timer_A从0增计数到TAxCCR宓后减计数到0,循环往复定时器Timer_A的捕获模式:当CAP空制位国为1时,捕获/比较模块配置为捕获模式。捕获模式被用于捕获事件发生的时间。捕获输入CCIxA和CCIxB可连接外部引脚或内部信号,这需通过CCIS控制位进行配置。可通过CM空制位将捕获输入信号

38、触发沿配置为上升沿触发、下降沿触发或两者都触发。捕获事件在所选输入信号触发沿产生,如果产生捕获事件,定时器将完成以下工作:主计数器计数值复制到TAxCCRnj存器中;置位中断标志位CCIFG【实验内容】1、使用看门狗定时功能产生一个方波(周期性的取反P1.0);2、利用定时器TAQ使其工作在增计数模式下,选择ACLK乍为其参考时钟。将P1.2和P1.3引脚配置为定时器输出,且使CCR体口CCR2r作在比较输出模式7下,最终使P1.2引脚输出75贴空比的PW极形,使P1.3引脚输出25砧空比的PW瞰形。3、选择键盘上的一个按键,当该按键按下一次时,打开定时器开始计时,利用定时器的捕获功能,捕捉该

39、按键再次按下时的精确时间,并将该时间显示在液晶显示屏上。【实验步骤】内容1:看门狗定时器产生方波信号1、建立新工程,并命名为lab4_1。2、在新建工程的编辑窗口输入如下代码:#includevoidmain(void)WDTCTL=WDTPW+WDTCNTCL+WDTSSEL0+WDTIS_5;/看门狗定时器工作在看门狗模式,定时1S,选择ACLK乍为参考时钟P1DIR|=0x01;/设置P1.0端口为输出P1OUTA=0x01/反转P1.0端口状态_bis_SR_register(LPM3_bits+GIE);进入低功耗模式3,并启用中断3、编译、调试并下载程序到开发板。4、运行程序,用示

40、波器观察P1.0口的输出波形。内容2:用定时器产生特定占空比的PWMf号1、建立新工程,步骤同上,并命名为lab4_202、在新建工程的编辑窗口输入如下代码:#includevoidmain(void)WDTCTL=WDTPW+WDTHOLD1看门狗P1DIR|=BIT2+BIT3;/P1.2和P1.3设为输出P1SEL|=BIT2+BIT3;/P1.2和P1.3引脚功能选为定时器输出TA0CCR0=512-1/PW帽期定义TA0CCTL1=OUTMOD_7CR1比较输出模式7:复位/置位TA0CCR1=384/CCR1PWMF空比定义TA0CCTL2=OUTMOD_7CR2比较输出模式7:复

41、位/置位TA0CCR2=128/CCR2PWMf空比定义TA0CTL=TASSEL_1+MC_1+TACLRACLK,增计数模式,清除TARf数器_bis_SR_register(LPM3_bits);/进入LPM33、编译、调试并下载程序到开发板。4、运行程序,用示波器观察P1.2、P1.3口的输出波形。内容3:用定时器的捕获功能捕捉开发板上按键按下的精确时间。1、将单片机、独立键盘和MSP430G2553LaunchP0d真器部分用杜邦线连接起来。2、导入工程“Lcd_and_Key,并在此基础上添加Timer的相关文件:Timer.c和Timer.h。Timer.c文件如下:/*Copy

42、right*东北林业大学机电工程学院*3+1创新实验室*文件信息* *文件名:Timer.c* *创建人:刘毅* *最后修改日期:2014年11月13日* *描述:*历史版本信息*创建人:刘毅*版本:v1.0*日期:2014年11月13日*描述:原始版本*/#include#includelcd.h#includetimer.h#includeintpressent_time;/定义当前时间/*函数名:TA1_Init()功能:对TimerA1进行初始化入口参数:返回值:*/voidTA1_Init()P1DIR&=BIT7;P1SEL|=BIT7;将P1.7引脚配置为定时器捕获输入(TA1.

43、0)P1OUT|=BIT7;P1REN|=BIT7;/设置P1.7为内部上拉TA1CTL=TASSEL_1+ID_3;TA1主计数器时钟选择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中断

44、服务子程序功能:读取捕获值入口参数:返回值:*/#pragmavector=TIMER0_A1_VECTORinterruptvoidTIMER0_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;/清除中断标志位Timer.h文件如

45、下:/*Copyright*东北林业大学机电工程学院*文件信息* *文件名:Timer.h* *创建人:刘毅* *最后修改日期:2014年11月13日* *描述:* *历史版本信息* *创建人:刘毅* *版本:v1.0* *日期:2014年11月13日*描述:原始版本*/#ifndefTIMER_H_#defineTIMER_H_externvoidTA1_Init();externvoidTA1_Start();#endif/*TIMER_H_*/3、在main.c文件的主函数中调用Timer相关函数。voidmain(void)WDTCTL=WDTPW+WDTHOLD;/关闭开门狗TA1_Init();TA1_Start();_bis_SR_register(GIE);while(1)4、编译、调试并下载程序到开发板。5、运

温馨提示

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

评论

0/150

提交评论