(多年不做学生了,虽然题目都很基础,但看到很有感触。分享给大家)
1.CCS编写的程序下载到MSP430F5529单片机之后,请问程序是保存在RAM中,还是保存在FLASH中?
判断的依据是什么? 保存在FLASH中,因为FALSH掉电数据不丢失。
2. 在阅读MSP430F5529的数据手册时,发现第27引脚的标注信息是P1.6/TA1CLK/CBOUT,第41引脚的标注信息是P3.4/UCA0RXD/UCA0SOMI,请问怎么理解?
27引脚,p1.6是 I/O口, TA1CLK是TA1时钟信号,CBOUT是比较器B。41引脚,3.4是IO口, UCAORXD是USCI-A0在USCT的接受数据输入,USCI-A0在SPI的机从输出,主机输入
3.解释中断定义、中断源、中断向量表、中断优先级以及断点和中断现场。
中断定义:中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术。
中断源:把引起中断的原因或者能够发出中断请求的信号源统称为中断源。中断首先需要由中断源发出中断请求,并征得系统允许后才会发生。在转去执行中端服务程序前,程序需保护中断现场;在执行完中断程序后,应恢复中断现场。
中断向量场:中断向量是指中断服务程序的入口地址,每个中断向量被分配给4个连续的字节单元,两个高字节单元存放入口的段地址CS,两个低字节单元存放入口的段地址IP。为了让CPU方便地查找到对应的中断向量,就需要在内存中建立一张查询表,即中断向量表。
中断优先级:CPU对不同中断请求有轻重缓急之分。在单片机中,给每个中断源指定一个优先级,称为中断优先级。
断点和中断现场:断点是指CPU执行现行程序被中断时的下一条指令的地址,又称断点地址。中断现场是指CPU在转去中断服务程序前的运行状态,包括CPU状态寄存器和断点地址等。
4.你对中断的理解,请问IO口的中断源是什么?
中断源 INT 由片内外设产生,为可屏蔽中断 5.简述中断响应过程和中断返回过程。 中断响应过程:
○
1执行完当前正在执行的指令;
②将程序计数器(PC)压入堆栈,程序计数器指向下一条指令:
③将状态寄存器(SR)压入堆栈,状态寄存器保存了当前程序执行的状态;
④如果有多个中断源请求中断,选择最高优先级,并挂起当前的程序;
⑤清除中断标志位,如果有多个中断请求源,则予以保留等待下一步处理;
○6.清除状态寄存器SR,保留SCG0,因而CPU可从任何低功耗模式下唤醒;
○7.将中断程序入口地址加载给程序计数器(PC),转向执行中断服务子程序。 中断返回过程: ○1从堆栈中弹出之前保存的状态寄存器给SR; ○2从堆栈中弹出之前保存的程序计数器给PC;
○3继续执行中断时的下一条指令。
6.利用自己手上的MSP430F5529Launchpad编写一个小程序,程序的具体功能:利用按键S2控制LED1灯的亮灭。请给出程序代码,并对程序进行注释,说明每条语句的作用。
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P1DIR |= BIT0;//设置 P1.0为输出
P1REN |= BIT1;
P1OUT |= BIT1;//启动P1.1口上拉电阻
P1IES |= BIT1;//P1.1口下降沿触发中断
P1IFG &= ~BIT1;//清除P1.1口中断标志位
P1IE |= BIT1;//P1.1口中断使能
__bis_SR_register(LPM4_bits+GIE);//进入低功耗模式4且启用可屏蔽中断
return 0;
}//PI口中断服务程序
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P1OUT ^= BIT0;//反转P1.0口状态
P1IFG &= ~BIT1;//清除P1.1口中断标志位
}
Susan Yang:
谢谢分享!