当前位置:文档之家› MSP430单片机中断函数的编写方法

MSP430单片机中断函数的编写方法

MSP430单片机中断函数的编写方法

MSP430 单片机中断函数的编写方法以USCI0 为例,说明该两种不同方法。

1.switch-case 方法

#pragmavector=USCI_A0_VECTOR

__interruptvoidUSCI_A0_ISR(void)

{

switch(__even_in_range(UCA0IV,4))

{

MSP430单片机实验报告v3.0

MSP430单片机课程设计 一.设计要求 数字温度计 (1)用数码管(或LCD)显示温度和提示信息; (2)通过内部温度传感器芯片测量环境温度; (3)有手动测量(按测量键单次测量)和自动测量(实时测量)两种工作模式; (4)通过按键设置工作模式和自动测量的采样时间(1秒~1小时); (5)具备温度报警功能,温度过高或过低报警。 二.系统组成 系统由G2Launch Pad及其拓展板构成,单片机为MSP430G2553。 I2的通信方式对IO进行拓展,芯片为TCA6416A; 使用C 使用HT1621控制LCD; 三.系统流程 拓展的四个按键key1、key2、key3、key4分别对应单次测量、定时测量、定时时间的增、减。定时时间分别为1s,5s,15s,30s,60s。在自动测量模式下,当温度超过设定温度上限

即报警,报警时在LCD屏幕显示ERROR同时LED2闪烁,在5s后显示0℃。此时可重新开始手动或自动测量温度。 系统示意图: 四.演示 a)手动测量温度 b)自动测量温度 c)报警

显示ERROR同时LED闪烁d)设置时间界面 五.代码部分 #include "MSP430G2553.h" #include "TCA6416A.h" #include "LCD_128.h" #include "HT1621.h" #include "DAC8411.h" #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) static int t=0; long temp; long IntDeg; void ADC10_ISR(void); void ADC10_init(void); void LCD_Init(); void LCD_Display(); void GPIO_init(); void I2C_IODect(); void Error_Display(); void WDT_Ontime(void); void LCD_Init_AUTO(); void LCD1S_Display();

MSP430 定时器TB中断应用实例

MSP430 定时器TB中断应用实例 msp430定时器中断,实现功能:利用定时器TB0的中断实现板上led灯得闪烁。 TA和TB的设置相似,需要设置的寄存器有: 1、TBR:定时计数器主体,对定时计数器进行初始值设置。 2、TBCTL:控制寄存器,对定时器的各个属性进行设置,各位如图所示,(图中是TA的控制寄存器,把A改成B就是了) TBSSELx是选择定时器时钟输入源,一般设置为2取系统时钟。 IDx是对输入时钟进行分频,0不分频,1为2分频,2为4分频,3为8分频 MCx为计数模式控制位,0为停止模式,1为增基数模式,2为连续计数模式,3为增/减计数模式 3、TBCCR0寄存器用于设置比较值,例如增加计数模式时,当TBR中的值增加到TBCCR0中的值时,产生中断。 程序代码: #include "msp430.h" #define led P1OUT

int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x01; TBR = 0;//设置计数器初值 TBCTL |= TBSSEL_2|0xc0|MC_1;//对寄存器TBCTL进行设置,TBSSEL_2为选择MCLK系统时钟,0xc0为8分频,MC_1为增计数模式 TBCCR0 = 0xfffd;//设置比较值,当TBR中的值增加到TBCCR0时,产生中断。TBCCTL0 &= ~CAP;//设置为比较模式 while(1) { led = 0x01; do{;} while(!(TBCCTL0 & CCIFG));//没有中断标志时进行空操作 TBCCTL0 &= 0xfffe;//对中断标志进行软件清零 led = 0x00; do{;} while(!(TBCCTL0 & CCIFG)); TBCCTL0 &= 0xfffe; } //return 0; }

MSP430单片机题目答案整理(大部分)

第一章 1. MCU(微控制器单元)与MPU(微处理器单元)的区别 MCU集成了片上外围器件,而MPU不带外围器件,是高度集成的通用结构的处理器。是去除了集成外设的MCU。 2. MSC430单片机的不同系列的差别 MSP430系列单片机具有超低功耗、处理能力强大、片内外设丰富、系统工作稳定、开发环境便捷等显着优势,和其他类型单片机相比具有更好的使用效果、更广泛的应用前景。 3. MSC430单片机主要特点 1.超低功耗 2. 强大的处理能力 3. 高性能模拟技术及丰富的片上外围模块 4. 系统工作稳定 5. 方便高效的开发环境 4. MSC430单片机选型依据 选择最容易实现设计目标且性能价格比高的机型。 在研制任务重,时间紧的情况下,首先选择熟悉的机型。 欲选的机型在市场上要有稳定充足的货源。 第二章 1. 从计算机存储器体系结构上看,MSP430单片机属于什么结构 冯·诺依曼结构,是一种程序存储器和数据存储器合并在一起的存储器体系结构。 2. RISC与CISC体系结构的主要特征是什么MSP430单片机属于哪种结构 CISC----是复杂指令系统计算机Complex Instruction Set Computer的缩写,MCS-51单片机属于CISC。具有8位数据总线、7种寻址模式,111条指令。 RISC----是精简指令系统计算机Reduced Instruction Set Computer的缩写,MSP430单片机属于RISC。具有16位数据总线、7种寻址模式,27条指令。 3. 对MSP430单片机的内存访问时,可以有哪几种方式读写字数据有什么具体要求 字,字节,常字。字访问地址必须是偶数地址单元。 4. MSP430单片机的中断向量表位于什么位置其中存放的是什么内容 中断向量表:存放中断向量的存储空间。430单片机中断向量表地址空间:32字节,映射到存储器空间的最高端区域 5. MSP430单片机的指令系统物理指令和仿真指令各有多少条。 27种物理指令-内核指令和24种仿真指令 6. MSP430单片机的指令系统有哪些寻址方式各举一例说明。 有7种寻址方式:寄存器寻址,变址寻址,符号寻址,绝对寻址, 间接寻址,间接增量寻址,立即数寻址 7. MSP430单片机的CPU中有多少个寄存器其中专用寄存器有哪几个 4个专用寄存器(R0、R1、R2、R3)和12个通用寄存器(R4~R15) R0:程序计数器(PC) R1:堆栈指针(SP)—总是指向当前栈顶 R2:状态寄存器(SR)只用到16位中的低9位 R2/R3:常数发生器(CG1/CG2) 8. 按要求写出指令或指令序列。 9. 写出给定指令或指令序列的执行结果。 10.汇编语言程序的分析与理解。

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

MSP430 中断服务

当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1:复位,使能SMCLK;置位,禁止SMCLK。 SCG0:复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且LFXT1CLK不用于MCLK或SMCLK时,FLXT1才能被禁止;当使用晶体振荡器关闭选项OSCOFF时,需要考虑晶体振荡器的启动设置时间 CPUOFF:复位,激活MCLK;置位,关闭MCLK。 控制位SCG1、SCG0、CPUOFF、OSCOFF可由软件配制成六种不同的工作模式:工作模式控制位 CPU状态、振荡器及时钟 SCG1=0 CPU活动 SCG0=0 MCLK活动 AM CPUOFF=0 SMCLK活动 OSCOFF=0 ACLK活动 SCG1=0 CPU禁止 LPM0 SCG0=0 MCLK禁止 OSCOFF=0 SMCLK活动 CPUOFF=1 ACLK活动 SCG1=0 CPU禁止 MCLK禁止 LPM1 SCG0=1 如果DCOCLK位用作MCLK或SMCLK,则直流发生器禁止, 否则,仍然活动 OSCOFF=0 SMCLK活动 CPUOFF=1 ACLK活动 SCG1=1 CPU禁止 如果DCO未被用作MCLK或SMCLK,自动禁止 SCG0=0 MCLK禁止

南理工 王宏波 MSP430F6638单片机实验报告

MSP430单片机应用技术 实验报告 学号:XXXXXXXX

实验1 一、实验题目:UCS实验 二、实验目的 设置DCO FLL reference =ACLK=LFXT1 = 32768Hz, MCLK = SMCLK = 8MHz,输出ACLK、SMCLK,用示波器观察并拍照。 UCS,MCLK、 SMCLK 8MHz 的 1 2 六、实验结果 实验2 一、实验题目:FLL+应用实验 二、实验目的

检测P1.4 输入,遇上升沿进端口中断,在中断服务程序内翻转P4.1 状态。 三、实验仪器和设备 计算机、开发板、示波器、信号源、电源、Code Comeposer Studio v5 四、实验步骤 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; WDT 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; 3、新建工作空间workspace; 4、新建工程project与源文件main.C; 5、编写程序; 6、编译、调试、下载程序到单片机;

7、观察、分析、保存运行结果。 五、实验程序 实验4 一、实验题目:WDT_A实验 二、实验目的 定时模式 1 2 六、实验结果 实验5一、实验题目:Timer_A实验

二、实验目的 比较模式-Timer_A0,两路PWM 输出,增减计数模式,时钟源SMCLK,输出模式7 TACLK = SMCLK = default DCOCLKDIV。PWM周期CCR0 = 512-1,P1.6 输出PWM占空比CCR1 = 37.5%,P1.7输出PWM占空比CCR1 =12.5%。 要求: (1)用示波器观察两路PWM 输出的波形并拍照,测量周期、正脉宽等参数,与理论值进行对比分析。 (2 (3 1 2 实验6 一、实验题目:ADC12实验 二、实验目的 ADC12 单次采样A0 端口,根据转换结果控制LED 状态。

如何学习并使用MSP430单片机(入门)

如何学习MSP430单片机 如何学习MSP430单片机 。 下面以MSP430系列单片机为例,解释一下学习单片机的过程。 (1)获取资料 购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET使用指导、MSP430 F1xx系列、F4xx系列的使用说明和具体单片机芯片的数据说明,可以找到仿真器FET的电路图、实验板电路图、芯片封装知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。 (2)购买仿真器FET和实验电路板 如果经济条件不错,可以直接购买。 (3)自制仿真器FET和实验电路板 自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。FET电路非常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画原理图,画完原理图后,就学习认识元件封装,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给电路板制作公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。 自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个引脚的功能,还需要数码管、按钮、排电阻、三端稳压器、二极管、散热器、电解电容、普通电容、电阻、钮子开关等元件的知识,对于初学者,可以做一个只有3个数码管、8个按钮、8个发光二极管的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。自制实验电路板与自制FET 一样,首先画电路图,然后买元件,再画电路板。由于MSP430系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:

430单片机点亮LED实验报告

430单片机点亮LED实验报告 一.安装实验软件IAR 二.编写点亮LED灯程序 1.使P1.0口LED灯会不停的闪烁着,程序 #include typedef unsigned int uint; typedef unsigned char uchar; /*延时函数*/ void Delay_Ms(uint x) { uint i; while(x--)for(i=0;i<250;i++); } /*主函数*/ int main( void ) { WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to prevent time out reset P2DIR|=BIT0;//定义P1口为输出 while(1)//死循环 { P2OUT^=BIT0;//P1.0口输出取反

Delay_Ms(600);//稍作延时 } } 下载进去看到了P1.0口LED灯会不停的闪烁着。 2.实验目的让两盏灯交换闪烁程序 #include"msp430g2553.h" void main(void) { void Blink_LED(); WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 P1DIR=BIT6; P2DIR=BIT0; while(1) { Blink_LED(); } } void Blink_LED() { _delay_cycles(1000000); //控制第二个LED P1OUT^=BIT6; _delay_cycles(1000000); //控制第一个LED P2OUT^=BIT0;

MSP430单片机实验报告

MSP430单片机实验报告 专业: 姓名: 学号:

MSP430单片机实验报告 设计目标:使8位数码管显示“5201314.”,深入了解串行数据接口。 实现过程:主要分为主函数、驱动8位数码管函数、驱动1位数码管函数及延时函数。 延时函数:采用for循环。 驱动1位数码管子函数:设置74HC164的时钟传输和数传输,声明变量,使数据表中每一个要表示的字符的每一位都与shift做与运算从而进行传输,上升沿将传输数据传送出去。驱动1位数码管子函数的流程图如图1所示。 图1 驱动1位数码管子函数流程图 驱动8位数码管子函数:调用8次驱动1位数码管子函数。驱动8位数码管子函数流程图如图2所示。 图2 驱动8位数码管流程图

while 图3 主函数流程图 实验结果:供电后,数码管显示“5201314.”字样。 源程序: /************* 程序名称:5201314.*************/ /***程序功能:通过模拟同步串口控制8个共阳数码管***/ /*******P5.1 数据管脚,P5.3 同步时钟管脚*******/ #include // 头文件 void delay(void); // 声明延迟函数void seg7_1 (unsigned char seg7_data); // 声明驱动1 位数码管函数void seg7_8 ( unsigned char seg7_data7, unsigned char seg7_data6, unsigned char seg7_data5, unsigned char seg7_data4, unsigned char seg7_data3, unsigned char seg7_data2,

430中断总结

MSP430的中断分为3种: 1.系统复位、 2.非屏蔽中断、 3.可屏蔽中断。 系统复位指向中断向量表(表3-11)的最高地址0xFFFE。 非屏蔽中断和可屏蔽中断根据能否被SR寄存器中的全局中断使能位GIE禁用来区分,非屏蔽中断不受GIE的控制,具备独立的中断使能; 可屏蔽中断除了受本身的中断使能控制,还接受GIE控制。 1. 在MSP430中 @非屏蔽中断主要有3个,分别是来自MSP430 外部管脚NMI的触发 FLASH非法访问 振荡器错误 非屏蔽中断都指向中断向量表中的0xFFFC地址。 2. MSP430具备大量的@可屏蔽中断,定时器、ADC、DMA、UART、WDT、I/O、比较器等都具备中断功能。不同的可屏蔽中断优先级可根据中断向量表决定。可屏蔽中断的中断向量表从0xFFFA地址开始向低地址扩展,地址越高的中断向量表所对应的中断优先级越高。 3. 每个中断向量在中断向量表里面占据一个2Byte空间的表项,这个2Byte的空间用来存储对应中断服务函数的首地址,CPU根据中断向量表里的地址跳转到中断服务函数。仔细观察中断向量表可以看到,一些中断向量对应于多个中断源。例如,地址为0xFFF8的Timer1_A3中断,当TA1CCR1中断标志位CCIFG置位或者TAIFG置位都会跳转到该向量。又如具备中断功能的P1和P2端口,端口中的任意一个管脚发生中断都会跳转到对应的中断向量。这种中断就叫做多源中断。对于多源中断,中断源中任意一个中断发生都会跳转到公用的中断向量表项,这个时候需要通过中断标志位区别具体的中断源。有了这些中断向量表的基础知识,下面介绍中断的处理过程,包括中断的接收和退出过程。 4. 微控制器使用过程中一些突发的程序跑飞问题,很多时候都是由于没有正确地处理中断造成的。 5. 中断发生的先决条件是对应中断使能位使能, @非屏蔽中断要求其独立的中断使能开启; @可屏蔽中断要求全局中断使能和自身中断使能同时开启。

MSP430 按键程序范例(附原理图)

#i nclude void Init_Port(void) { //将P1口所有的管脚在初始化的时候设置为输入方式 P1DIR = 0; //将P1口所有的管脚设置为一般I/O口 P1SEL = 0; // 将P1.4 P1.5 P1.6 P1.7设置为输出方向 P1DIR |= BIT4; P1DIR |= BIT5; P1DIR |= BIT6; P1DIR |= BIT7; //先输出低电平 P1OUT = 0x00; // 将中断寄存器清零 P1IE = 0; P1IES = 0; P1IFG = 0; //打开管脚的中断功能 //对应的管脚由高到低电平跳变使相应的标志置位 P1IE |= BIT0; P1IES |= BIT0; P1IE |= BIT1; P1IES |= BIT1; P1IE |= BIT2; P1IES |= BIT2; P1IE |= BIT3; P1IES |= BIT3; _EINT();//打开中断 return; } void Delay(void) { int i; for(i = 100;i--;i > 0) ;//延时一点时间 } int KeyProcess(void) { int nP10,nP11,nP12,nP13; int nRes = 0;

//P1.4输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 13; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 14; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 15; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 16; //P1.5输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 9; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 10; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 11; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 12; //P1.6输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 5; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 6; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 7; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 8; //P1.7输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 1; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 2; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 3; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 4; P1OUT = 0x00;//恢复以前值。

MSP430简介(超详细·)

msp430简介 MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱. 一、IO口 (一)、P口端口寄存器: 1、PxDIR 输入/输出方向寄存器 (0:输入模式 1:输出模式) 2、PxIN 输入寄存器 输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。 3、PxOUT 输出寄存器 寄存器内的内容不会受引脚方向改变的影响。 4、PxIFG 中断标志寄存器 (0:没有中断请求 1:有中断请求) 该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个 中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部 中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受; 5、PxIES 中断触发沿选择寄存器 (0:上升沿中断 1:下降沿中断) 6、PxSEL 功能选择寄存器 (0:选择引脚为I/O端口 1:选择引脚为外围模块功能) 7、PxREN 上拉/下拉电阻使能寄存器 (0:禁止 1:使能) (二)、常用特殊P口: 1、P1和P2口可作为外部中断口。 2、P6可作为A/D输入口。 3、P1.2和P2.0可作为PWM波输出口。 4、P1.1:MCLK P1.5:ACLK 5、串口通信时:P2.4、 P4.0为发送TXD, P2.5 、P4.1为接收RXD。 (三)、基本操作: 1、所有P口都可作为通用IO口使用 2、所有P口都可进行字节操作和位操作 按字节操作:

MSP430初学者教程(最详细)

如何学习 学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。 下面以系列为例,解释一下学习的过程。 (1)获取资料 购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET 使用指导、F1xx系列、F4xx系列的使用说明和具体芯片的数据说明,可以找到FET的、实验板、知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。 (2)购买FET和实验电路板 如果经济条件不错,可以直接购买。 (3)自制FET和实验电路板 自制仿真器FET,首先要到网上找到FET,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。FET电常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画,画完后,就学习认识,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。 自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个的功能,还需要、按钮、、三端、、散热器、、普通电容、电阻、等元件的知识,对于初学者,可以做一个只有3个、8个按钮、8个的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。自制实验电路板与自制FET一样,首先画电路图,然后买元件,再画电路板。由于系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:首先在焊盘上涂上,在未干的情况下,将芯片放在焊盘上,注意芯片第一的位置,并使与焊盘对齐,将擦干净的(不能有任何)接触引脚,引脚只要一热,焊盘上的就自动将引脚焊住了,千万注意上不能有,焊接时最好配备一个。焊接电路板时,每一个元件都要核对参数,可以用万用表测量的元件一定要测量。 (4)从网上获得IA 到利尔达公司或的网站下载IA,并安装到计算机上。 (5)调试FET和实验板

MSP430单片机定时器实验报告

实验四定时器实验 实验目的: MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。实验内容: 定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能: 1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。 2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序 3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。 4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。 5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。 程序代码: 程序1: #include void main() {WDTCTL = WDTPW + WDTHOLD; //关看门狗 P1DIR |= BIT3; //设置P1.0口方向为输出。 TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1, //CCR0捕获/比较功能中断为允许。 TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767 TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL, //使时钟源选择为SMCLK辅助时钟。 //进入低功耗模式LPM0和开总中断 _BIS_SR(LPM0_bits +GIE); } //定时器A 中断服务程序区 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) {

MSP430单片机深入学习笔记

复位 1.POR信号只在两种情况下产生: 微处理器上电。 RST/NMI管脚被设置为复位功能,在此管脚上产生低电平时系统复位。 2.PUC信号产生的条件为: POR信号产生。 看门狗有效时,看门狗定时器溢出。 写看门狗定时器安全健值出现错误。 写FLASH存储器安全键值出现错误。 3.POR信号的出现会导致系统复位,并产生PUC信号。而PUC信号不会引起POR信号的产生。系统复位后(POR之后)的状态为: RST/MIN管脚功能被设置为复位功能。 所有I/O管脚被设置为输入。 外围模块被初始化,其寄存器值为相关手册上注明的默认值。 状态寄存器(SR)复位。 看门狗激活,进入工作模式。 程序计数器(PC)载入0xFFFE(0xFFFE为复位中断向量)处的地址,微处理器从此地址开始执行程序。 4.典型的复位电路有以下3种: (1)由于MSP430具有上电复位功能, 因此,上电后只要保持RST/NMI(设置 为复位功能)为高电平即可。通 常的做法为,在RST/NMI管脚接100k? 的上拉电阻,如图1-5(a)所示。 (2)除了在RST/NMI管脚接100k?的 上拉电阻外,还可以再接0.1μF的电 容,电容的另一端接地,可以使复位 更加可靠。如图1-5(b)所示。 (3)由于MSP430具有极低的功耗,如 果系统断电后立即上电,则系统中电 容所存储的电荷来不及释放,此时系 统电压不会下降到最低复位电压以下, 因而MSP430不会产生上电复位,同时 RST/NMI管脚上也没有足够低的电平 使MSP430复位。这样,系统断电后立 即上电,MSP430并没有被复位。为了 解决这个问题,可增加一个二极管, 这样断电后储存在复位电容中的电荷 就可以通过二极管释放,从而加速电 容的放电。二极管的型号可取1N4008。 如图1-5(c)所示。

单片机原理及应用_第十讲_MSP430单片机的ADC实验报告

单片机原理及应用 第十讲 MSP430单片机的ADC 实验报告 报告人:学号:同组人员: 实验内容 实验1 AD采集输入电压并比较 实验2 AD内部温度采集实验 实验3 验收实验:温度采集与显示 把实验2中的实测温度值以摄氏度数值显示在段码LCD上。 实验步骤 步骤: (1) 将PC 和板载仿真器通过USB 线相连; (2) 打开CCS 集成开发工具,选择样例工程或自己新建一个工程,修改代码; (3) 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择

单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运 行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议 上电运行程序)。 关键代码: 实验1 AD采集输入电压并比较 #include int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time, ADC12 on ADC12CTL1 = ADC12SHP; // Use sampling timer ADC12IE = 0x01; // Enable interrupt ADC12CTL0 |= ADC12ENC; P6SEL |= 0x01; // P6.0 ADC option select P4DIR |= BIT1; // P4.1 output while (1) { ADC12CTL0 |= ADC12SC; // Start sampling/conversion __bis_SR_register(LPM0_bits + GIE); // LPM0, ADC12_ISR will force exit __no_operation(); // For debugger } } #pragma vector = ADC12_VECTOR __interrupt void ADC12_ISR(void) { switch(__even_in_range(ADC12IV,34)) { case 0: break; // Vector 0: No interrupt case 2: break; // Vector 2: ADC overflow case 4: break; // Vector 4: ADC timing overflow

MSP430单片机中断的定义及原理

MSP430单片机中断的定义及原理 430的中断是按照下图1的优先级顺序定义的,有三种中断:1.系统重置、2.不可屏蔽中断(NMI)、3.可屏蔽中断。 图1.中断优先级 部分具体的中断优先级由高到低为: PORT2_VECTOR (1 * 2u)/* 0xFFE2 Port 2 */ PORT1_VECTOR (4 * 2u)/* 0xFFE8 Port 1 */ TIMERA1_VECTOR (5 * 2u)/* 0xFFEA TImer A CC1-2,TA */ TIMERA0_VECTOR (6 * 2u)/* 0xFFEC TImer A CC0 */ ADC_VECTOR (7 * 2u)/* 0xFFEE ADC */ USART0TX_VECTOR (8 * 2u)/* 0xFFF0 USART 0 Transmit */ USART0RX_VECTOR (9 * 2u)/* 0xFFF2 USART 0 Receive */ WDT_VECTOR (10 * 2u)/* 0xFFF4 Watchdog TImer */ COMPARATORA_VECTOR (11 * 2u)/* 0xFFF6 Comparator A */ TIMERB1_VECTOR (12 * 2u)/* 0xFFF8 Timer B CC1-2,TB */ TIMERB0_VECTOR (13 * 2u)/* 0xFFFA Timer B CC0 */ NMI_VECTOR (14 * 2u)/* 0xFFFC Non-maska××e */ RESET_VECTOR (15 * 2u)/* 0xFFFE Reset [Highest Priority]*/ 其中可屏蔽中断分为系统NMI(SNMI)和用户NMI(UNMI),一般来说,不可屏蔽中断不受GIE标志位的影响。用户不可屏蔽中断的中断源为NMIIE、ACCIE和OFIE,当响应用户不可屏蔽中断后,其他不可屏蔽中断就自动被禁止,以防止同级别的中断发生产生中断嵌套。当同时有多个中断来的时候才有优先级的考虑(优先级顺序可查看向量表)。有中断响应以后自动关闭总中断,这个时候即使来更高优先级的中断都不会响应。要中断嵌套的话,就必须在中断中打开总中断。

MSP430单片机AD转换实验

A/D转换实验 一、转换原理 MSP430F149的A/D转换器原理请参考相关书籍。 实验板上与AD相关的硬件电路 : 编程工作实际就就是对以下寄存器的操作: 寄存器类型寄存器缩写寄存器的含义 转换控制寄存器ADC12CTL0 转换控制寄存器0 ADC12CTL1 转换控制寄存器1 中断控制寄存器ADC12IFG 中断标志寄存器ADC12IE 中断使能寄存器ADC12IV 中断向量寄存器 存储及其 控制寄存器ADC12MCTL0 ~ ADC12MCTL15 存储控制寄存器0~15 ADC12MEM0 ~ ADC12MEM15 存储寄存器0~15 设计主程序与中断服务程序。 二、转换程序 1、程序1:转换结果发送到PC 主程序中进行A/D初始化,中断服务程序读A/D转换结果,主程序中通过串口发送结果。

“main、c”主程序与中断程序: /********************************************************* 程序功能:将ADC对P6、0端口电压的转换结果按转换数据与对应的模拟电压的形式通过串口发送到PC机屏幕上显示 ----------------------------------------------------------- 通信格式:N、8、1, 9600 ----------------------------------------------------------- 测试说明:打开串口调试精灵,正确设置通信格式,观察接收数据 **********************************************************/ #include #include "allfunc、h" #include "UART0_Func、c" #include "ADC_Func、c" #define Num_of_Results 32 uint results[Num_of_Results]; //保存ADC转换结果的数组 uint average; uchar tcnt = 0; /***********************主函数***********************/ void main( void ) { uchar i; uchar buffer[5]; WDTCTL = WDTPW + WDTHOLD; //关狗 /*下面六行程序关闭所有的IO口*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换 P6DIR|=BIT6;P6OUT&=~BIT6; //关闭数码管显示 InitUART(); Init_ADC(); _EINT(); buffer[4] = '\0';

MSP430单片机原理解读

第 2 章MSP430 单片机原理与 C 语言基础MSP430系列超低功耗单片机有200多种型号,TI公司用3~ 4位数字表示其型号。其中第一位数字表示大系列,如MSP430F1xx系列、MSP430F2xx系列、MSP430F4xx系列、MSP430F5xx系列等。在每个大系列中,又分若干子系列,单片机型号中的第二位数字表示子系列号,一般子系列越大,所包含的功能模块越多。最后1~2 位数字表示存储容量,数字越大表示RAM 和ROM 容量越大。430 家族中还有针对热门应用而设计的一系列专用单片机。如SP430FW4xx 系列水表专用单片机、MSP430FG4xx 系列医疗仪器专用单片机、MSP430FE4xx 系列电能计量专用单片机等。这些专用单片机都是在同型号的通用单片机上增加专用模块而构成的。最新的MSP430型号列表可以通过TI公司网站下载。 在开发单片机应用系统时,第一步就是单片机的选型,选择合适的单片机型号往往就能事半功倍。单片机选型基本方法是选择功能模块最接近项目需求的系列,然后根据程序复杂程度估算存储器和RAM 空间,并留有适当的余量,最终决定选用的单片机型号。 本章节以MSP430F249单片机为学习目标,介绍单片机的基本结构和工作原理,读者可以举一反三、触类旁通,而不必每种型号都去学习却无法深入掌握。 2.1 MSP430F249单片机基本结构与原理 2.1.1MSP430F249的主要结构特点 供电电压范围1.8V~3.6V 。 超低功耗:活动状态270uA(1MHz,2.2V);待机模式0.3uA;关机模式0.1uA。 16位RISC精简指令集处理器。 时钟系统:多种时钟源,可灵活使用。时钟频率达到16MHz ;具有内部振荡器;可外接32kHz 低频晶振;外接时钟输入。 12位A/D转换器,内部参考电压,采用保持电路。 16位定时器A,3个捕获/比较寄存器。 16 位定时器B,7 个捕获/比较寄存器。 4个通用串口:USCI_A0 和USCI_A1、USCI_B0 和USCI_B1(I2C、SPI)。 60kB+256B的flash程序存储器,2kB的RAM数据存储器。 64引脚QFP封装。 MSP430F249单片机的芯片封装形式如图2.1所示,各引脚的功能描述如表2-1 所列。 2.1.2 MSP430F249单片机的基本结构 MSP430F24x系列单片机功能结构示意图如图2.2所示。 (1)CPU简介 MSP430单片机的CPU为16位RISC精简指令集的处理器,只有27条正交汇编指令和7 种寻址方式。RISC 处理器基本上是为高级语言所设计的,编译程序对正交指令系统很容易做到最优化,利于产生高效紧凑的代码。MSP430CPU 中集成了16个16位通用寄存器 R0~R15,其中R0~R3分别复用为程序指针PC、堆栈指针SP、状态寄存器SR和常数发生器CG1/CG2。这些寄存器之间的操作只需要一个CPU 周期。

相关主题
文本预览
相关文档 最新文档