MSP430第六讲试验报告_第1页
MSP430第六讲试验报告_第2页
MSP430第六讲试验报告_第3页
MSP430第六讲试验报告_第4页
MSP430第六讲试验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——MSP430第六讲试验报告一、试验内容:

1.MSP430单片机的复位中断和低功耗模式2.中断方式的按键控制实现

3.Lab8按键中断方式控制led灯的亮灭

4.Lab9动动手,P4.1中断方式控制P4.6的LED

二、试验步骤:

Lab8按键中断方式控制led灯的亮灭

设置端口4.0为输入上拉电阻方式获取按键信号,端口4.5为输出方式,按键按下时开启一次中断,中断开启后修改4.5输出对应的LED灯状态,从而实现按键中断方式控制led灯的亮灭。

实现代码:

#includeintmain(void){

WDTCTL=WDTPW+WDTHOLD;//StopwatchdogtimerP4DIR|=BIT5;//SetP4.5tooutputdirectionP4REN|=BIT0;//EnableP2.6internalresistanceP4OUT|=BIT0;//SetP2.6aspull‐Upresistance

P4IES|=BIT0;//P4.0Hi/LoedgeP4IFG//P4.0IFGclearedP4IE|=BIT0;//PP4.0interruptenabled__bis_SR_register(LPM4_bits+GIE);//EnterLPM4w/interrupt__no_operation();//Fordebugger}

#pragmavector=PORT4_VECTOR__interruptvoidPort_4(void){

P4OUT^=BIT5;P4IFG}

//P4.5=toggle//P4.0IFGcleared

思考题:

1、Lab8和Lab2的执行结果有何不同?为什么?

答:Lab2的结果是按下按键则灯灭,松开按键灯亮;Lab8是按下按键灯亮\\灭,抬起按键不改变状态。

原因:本试验采用的是中断实现灯的暗灭,按下按钮之后,由于设置的中断条件为下降沿触发,此时中断标志置为1,执行中断程序,改变灯的状态,并清除中断标志,此时抬起按钮,为上升沿,并不会改变中断标志,灯维持之前的状态。Lab2中,按键的状态每转变一次,灯的状态随之改变,因此按下按键灯灭,抬起按键灯亮。

2、在中断服务程序中,假使把下面的语句解释掉,程序是什么执行结果?为什么?P4IFG//P4.0IFGcleared

答:按下一次按键后再次按下按键,并不会改变灯的状态。

原因:执行中断程序之后没有清除中断标志,将不会再次执行中断程序。

Lab9动动手,P4.1中断方式控制P4.6的LED

实现代码:

#includeintmain(void){

WDTCTL=WDTPW+WDTHOLD;P4DIR|=BIT5;P4REN|=BIT1;P4OUT|=BIT1;P4IES|=BIT1;P4IFGP4IE|=BIT1;__bis_SR_register(LPM4_bits+GIE);__no_operation();}

#pragmavector=PORT4_VECTOR__interruptvoidPort_4(void){

P4OUT^=BIT6;P4IFG}//Stopwatchdogtimer

//SetP4.5tooutputdirection//EnableP2.6internalresistance//SetP2.6aspull‐Upresistance//P4.1Hi/Loedge//P4.1IFGcleared

//P4.1interruptenabled//EnterLPM4w/interrupt//Fordebugger

//P4.6=toggle//P4.1IFGcleared

试验改进:

在试验过程中发现,按键时偶尔会产生灯闪烁的状况。因此在程序中增加消抖程序,从而消除按键抖动对试验结果造成的影响。

程序如下:

#includeintmain(void){WDTCTL=WDTPW+WDTHOLD;//StopwatchdogtimerP4DIR|=BIT6;//SetP4.5tooutputdirectionP4REN|=BIT1;//EnableP2.6internalresistance

P4OUT|=BIT1;P4IES|=BIT1;P4IFGP4IE|=BIT1;__bis_SR_register(LPM4_bits+GIE);__no_operation();}

#pragmavector=PORT4_VECTOR__interruptvoidPort_4(void){inttemp=P4IN__delay_cycles(10000);if(P4INP4IFG}

//SetP2.6aspull‐Upresistance//P4.0Hi/Loedge//P4.0IFGcleared

//P4.0interruptenabled//EnterLPM4w/interrupt//Fordebugger

//消抖

//P4.5=toggle//P4.0IFGcleared

}

试验确实消除了按键的抖动状况,但偶尔又会出现长时间按键无响应的状况,一段时间后又能正常工作,目前尚不明白原因。

三、试验思考:

1、MSP430系列单片机的POR、PUC和BOR信号分别是如何产生的?答:

POR:BOR信号;电源管理SVS产生;一个软件的POR事件;

PUC:POR信号;看门狗定时器工作在看门狗模式的溢出;看门狗操作密码错误;Flash存储器操作密码错误;电源管理模块操作密码错误;

BOR:器件上电;RST/NMI管脚配置为复位模式时,管脚上的低电平信号;从LPM3.5或者LPM4.5模式唤醒一个软件的BOR事件

2、简述MSP430系列单片机复位后的状态及软件必需完成的工作。

答:

RST/NMI为复位状态;IO口为输入状态;各模块和寄放器恢复为初始化状态;状态寄放器SR复位;看门狗WDT为看门狗状态;FFFE的内容装入PC指针

必需完成的工作:初始化堆栈指针SP,一般为RAM的顶端;根据应用的需要,初始化WDT;对模块初始化;

3、MSP430单片机工作模式有哪些位控制?

答:CPU内状态寄放器SR中的SCG1、SCG2、OscOff和CPUOff位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可以恢复从前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些位;这样允许程序在中断返回(RETI)后,以另一种功耗方式继续运行。

4、简述MSP430单片机低功耗设计的基本原则。

答:

最大化LPM3的时

温馨提示

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

评论

0/150

提交评论