MSP430程序设计

发布者:lambda21最新更新时间:2015-09-07 来源: eefocus关键字:MSP430  程序设计 手机看文章 扫描二维码
随时随地手机看文章
1、#define ME1_    (0x0004) 

DEFC(    ME1    , ME1_)

me1关联端口0x0004
defc的c是字节的意思,也就是me1 就是地址0004处的一个字节

 

 

2、#define FCTL1_              (0x0128)  
DEFW(   FCTL1             FCTL1_)

 

其功能是从指定地址开始,定义若干个16位数据

 

 

 

 

 

 

 

使用处理器专用扩展的保持可可移植性的  #pragma 伪指令

一、新增数据类型:

    1、Sfrb----字节类型的特殊功能寄存器或外围模块

    2、Sfrw----字类型的特殊功能寄存器或外围模块

    3、Pointer--指针

    4、Enum-----枚举

 

1、外围模块变量Sfrb、Sfrw也称作特殊功能寄存器变量,直接位于内部RAM单元。

    Sfrb范围为:0X00---OXFF;

    Sfrw范围为:0X100---0X1FF;

    外围模块变量使符号名与此范围的字节或字相联系,该地址处寄存器可以符号化被寻址,但没有分配存储空间。

 

例如:

Sfrb P1IES = 0X24H;   字节是8位

Sfrb P1DIR = 0X22H;

Sfrw ADC12CTL1 = 0X01A2H   字是16位

经过定义后就可以直接通过对应的符号访问这些寄存器了。

PIDIR = 0X01;P1.0输出

 

2、指针变量

    IAR C430 的指针变量包括代码指针和数据指针,都可以指向0000H---0FFFFH的范围的存储空间。

 

3、枚举类型

   用enum关键字,可以声明的每一个变量具有适合它的值所需的最短正数类型,可以是char、short、int或long。

 

二、中断函数定义

 

#pragma vector = 中断矢量变量

   _interrupt void 函数名(void)

   {

     调用函数声明

     函数变量定义

     函数执行语句

    }

 

其中   _interrupt说明了是中断函数,

       中断矢量变量:说明了该中断服务函数对应的中断向量表中的中断地址

 

例如:

 

#pragma vector = WDT_VECTOR()

_interrupt void watchdog_timer(void)

{

    P1OUT ^= 0X01; 

}

 

 

四、提高IAR C430 代码的效率

1、仅在保存数据存储器空间的时候才使用位域

2、尽可能使用无符号类型,unsigned类型

3、对16位数据类型MSP430的工作效率更高,通常8位数据类型的使用可节省数据空间,但是不减少代码大小,不支持32数据类型。

4、复制struct 和union是耗费较大的操作,应避免运行时struct/union的赋值,带struct/union参数的函数以及返回struct/union的函数,应尽量采取指向struct/union的指针操作。

 

五、IAR 头文件,用户程序通过头文件访问库定义,头文件使用#include伪指令与之相结合,为了避免浪费编译时间,定义被划分到许多不同的头部定义,每一个文件覆盖特定的函数区域,用户可以根据使用的内容选择不同的头文件。

IAR调试环境提供了MSP430单片机各系列的标准头文件,定义了系列中包含的寄存器的物理地址,在程序中可以字节使用寄存器名或者寄存器中位的名称,这样就避免使用实际的物理地址,使程序设计简介、高效。

 

六、IAR C430 的汇编语言接口

IAR C430 编译器可以把编译好的c语言模块与汇编语言模块链接起来,这对于要求代码效率较高的场合尤为重要。

 

通常用汇编语言来写子程序,并由C语言主函数调用

 

1、调用规则:

    编译器使用两组寄存器

    R12——R15用于传递参数,在调用时不加保护

    其它通用寄存器R4---R---11主要用于存放寄存器变量和中间结果,在调用时应予以保护

2、堆栈结构和参数传递

   每次调用子程序都会创建一个堆栈结构

3、从c程序传递参数

   传递给汇编子程序的参数依照从右向左的次序。最左边的两个参数用寄存器传递,除非它们被定义成struct或union而使用堆栈传递。其余参数总是通过堆栈传递。

关键字:MSP430  程序设计 引用地址:MSP430程序设计

上一篇:Keil C51内存分配与优化
下一篇:联合体union在单片机位定义时的妙用

推荐阅读最新更新时间:2024-03-16 14:30

PIC单片机学习知识之程序设计(二)
上文中我们讲述了 PIC单片机基础学习之程序设计(一) ,接下来将继续为大家讲解PIC单片机程序设计(二),供大家学习。 PIC单片机的查表程序可以利用子程序带值返回的特点来实现。具体是在主程序中先取表数据地址放入W,接着调用子程序,子程序的第一条指令将W置入PC,则程序跳到数据地址的地方,再由“RETLW”指令将数据放入W返回到主程序。下面程序以F10放表头地址。 MOVLW  TABLE     ;表头地址→F10 MOVWF  10 MOVLW  1        ;1→W,准备取“1”的线段值 ADDWF  10,1      ;F10+W =“1”的数据地址 CALL  CONVERT MOVWF  6        ;
[单片机]
MSP430看门狗程序
单片机经常工作在环境干扰比较大的环境中,容易受到各种各样的干扰而使单片机不能执行正常的程序。MSP430片内集成了看门狗定时器(WDT),具有两种功能,其一作为普通的定时器,该模式下产生正常的定时中断信号;其二作为通常意义上的看门狗,用来复位单片机,避免单片机长时间处于不正常工作状态。 鉴于看门狗的工作职责,看门狗寄存器值的读写通常采用密码字+数据的方式,以防止单片机正常执行过程中对看门狗的误写。MSP430F169简单的看门狗初始化和喂狗操作程序如下所示: #include #include wdt.h /******************************************* 函数名称:看门狗
[单片机]
ARM 汇编程序设计
A.5.1 文件格式 ARM 源程序文件(即源文件)为文件格式,可以使用任一文本编辑器编写程序代码。 在一个项目中,至少要有一个汇编源文件或C 程序文件,可以有多个汇编源文件或多个C 程序文件,或者C 程序文件和汇编文件两者的组合。 A.5.2 ARM 汇编的一些规范 (1)汇编语句格式 ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。ARM 汇编器对标识符大小写敏感,书写标号及指令时字母大小写要一致,在ARM 汇编程序中,一个ARM 指令、伪指令、寄存器名可以全部为大写字母,也可以全部为小写字母,但不要大小写混合使用。注释使用“;”,注释内容由“;”
[单片机]
基于MSP430F413的新型智能水表的设计(图)
  针对传统水表落后产生的一系列问题,国家建设部提出了城镇居民住宅“三表出户”的要求。所以目前国内的很多水表生产厂家都在进行产品新型化的探索,大部分采用单片机技术,智能水表系统的实用性研究己成为当前仪表行业的热点之一。本文介绍的就是一种基于MSP430F413单片机的智能水表的设计。   本论文以智能IC卡水表系统为研究对象,重点探讨了基于MSP430F413型超低功耗单片机在低功耗智能仪表上的应用与开发。论文首先提出利用IC卡技术智能水表系统的总体设计方案;设计了系统控制的硬件电路结构和研究了软件控制流程的实现,采用软硬件结合的方法,对系统的低功耗、抗干扰性设计及安全性问题作了一定的分析与研究。      MSP430F41
[安防电子]
基于<font color='red'>MSP430</font>F413的新型智能水表的设计(图)
MSP430单片机三个典型的复位电路
典型的复位电路有以下3种: (1) 在RST/NMI管脚上接100K欧的上拉电阻。 (2)在(1)的基础上再接0.1uf的电容,电容的一端接地,可以使复位更加可靠。 (3)再(2)的基础上,再在电阻上并接一个型号为IN4008的二极管,可以可靠的实现系统断电后立即上电。
[单片机]
<font color='red'>MSP430</font>单片机三个典型的复位电路
基于MSP430实现的湿度计作品展示
对于商业应用FPGA还远没有达到取代单片机,甚至完全取代DSP的程度。随着FPGA的普及,学DSP的人越来越少,MCU又五花八门,ARM/CorteX有计算机的抢饭碗,学电子的大多都会选择FPGA。真正能接触到科技前沿的毫无例外全是FPGA,大多数人只能停留在商业层面。话虽如此,不过现今赚钱才是硬道理,行行都能出状元。其实单片机也有大智慧,不必一味的追求高科技。基于MSP430实现的湿度计实物图如图1所示。上位机软件GUI界面如图2所示。 图1:基于MSP430实现的湿度计实物图 图2:上位机软件GUI界面 系统功能概述:该湿度计由湿度采集和显示两部分组成,显示部分通过串口排线与采集部分相连,并采用7段式LED显示湿
[单片机]
基于<font color='red'>MSP430</font>实现的湿度计作品展示
MSP430:AD10
使用的MSP430G2553,为AD10,正常有8路输出,P1.0-P1.7为A0-A7 有七个寄存器, 参考电压可以是VCC或者内部参考电压1.5V或者2.5V 参考时钟可以是内部ADC10OSC 最高转换速率达200ksps 转换方式四种:单通道单次,序列通道单次,单通道多次,序列通道多次。多次转换时候会用到DTC功能防止数据还没被取出就被覆盖 单通道的实例程序,开启的为通道5,也就是P1.5 1 void AD_Channel5_Config(void) 2 { 3 /* Configure ADC Channel */ 4 ADC10CTL1 = INCH_5 + ADC10DIV_0
[单片机]
<font color='red'>MSP430</font>:AD10
初识畅学系列MSP430F149单片机开发板
1、畅学MSP430单片机核心板 畅学系列六合一MSP430单片机核心板板载贴片封装的MSP430F149单片机芯片,芯片IO全部引出2组,既可以直接插到畅学系列多功能开发学习板/实验箱底板直接扩展为多功能开发学习板,也可以单独作为一个MSP430最小系统核心板使用。 畅学系列六合一MSP430单片机核心板-标配一个MSP 430149单片机,核心板集成BSL下载器,一条USB线即可实现供电和BSL方式程序下载,还可以通过USB线实现串口通讯。。 板载BSL下载模块,可以方便的直接通过USB线在供电同时还可以下载程序。 板载BSL下载模块,还可以作为串口通讯模块使用,可以通过USB供电同时和PC机进行串口通
[单片机]
初识畅学系列<font color='red'>MSP430</font>F149单片机开发板
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved