• msp430g2231pdf > 单片机的开发及应用
  • 单片机的开发及应用

    免费下载 下载该文档 文档格式:PDF   更新时间:2010-01-01   下载次数:0   点击次数:1
    文档基本属性
    文档语言:
    文档格式:pdf
    文档作者:luck
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    2.程序下载原理及脱机工作原理:程序的在线调试是通过 JATG 口和 F149 片子的 RST,TCK, TDI,TDO,TMS 引脚按一定的时序串行的传递程序代码和数据的,调试指令的命令传递都是通 过这些数据线和控制线传递的,下载时序可参见资料 1,其中的地址 0FFFEH 为复位向量的地址,它 是程序遇到非屏蔽中断和程序启动的首要地址,地址中存放的是程序段开始的首地址,因此必须把 程序段的首地址标号表示在中断向量中或程序伪指令的开头位置,否则,连接时将会出错,具体的 表示方法在下一节中表示.程序的下载和在线调试的电源是通过计算机在 JATG 提供的,不须另外 给加电源. 脱机工作时,是将 F149 的电源线上电,此时的复位时序同下载后在线复位的时序一样,只是时 钟是通过 F149 内部时钟 DCO 提供的,上电后,程序将复位向量 0FFFE 中的地址装入 PC,PC 开始 从程序段的首地址开始执行.脱机工作启动不需要任何操作,只需上电即可,电压要大于 1.8v,一般 取 3v 左右,另外,在脱机工作时,可以给 RST 端口加一个低电平脉冲以复位从程序开始重新执行.
    西安邮电学院 63#
    710061
    陈小忠
    4
    MSP430 单片机的开发及应用
    第二节 指令介绍
    MSP430 有自身 语言,汇编语言也不同于其他类型的单片机,伪指令也是变幻魔测,但又很重 要,下面是我毕业设计的一些尝试,出问题的地方.也可参见资料. 1."#include" 不能大写. 2.程序段前的伪指令可以套用下列模板,在以后的几章中的程序都采用此模板,只是中间的 主程序变化而已:
    #include "MSP430x14x.h" /*把库文件包括进来 ,这个库文件是必须的,其他的库文件视需要而定*/ RSEG UDATA0 /*定义数据段一般默认数据段段地址是从 0200H 开始的也可以自己定义数据段 开始地址,但必须在 0200H 到 09FFH*/ DS 0 /*表示数据段从默认的段开始,偏移地址为 0,若为 DS N,表示数据段的偏移地址 从 N 开始,此时的物理地址为(0200+N)H*/ ADINPUT EQU 00200H /*将 0200H 地址命名为 ADINPUT,此后程序中的地址 0200H 可以用 ADINPUT 表示, 便于程序的可读性,注意:标号必须顶格写*/ A DW 5H /*定义 A 字变量的值为 5H,此时将会将 5H 写到数据段的当前偏移地址上,便于后面 使用,变量也得顶格写*/ RSEG CSTACK /*定义堆栈段*/ DS 0 /*段偏移值为 0H,物理地址为默认开始地址值*/ RSEG CODE /*定义代码段 1*/ DS 0 /*代码段 1*/ RESET /*标号,表示程序段的开始地址,将被写入复位向量中*/ MOV #SFE(CSTACK),SP MOV #(WDTHOLD+WDTPW),&WDTCTL …… COMMON INTVEC ORG XXX 1 DW YYY1 ORG XXX2 DW YYY2 ORG RESET_VECTOR DW RESET END /*初始化堆栈指针*/ /*停止看门狗定时器*/ (程序段的内容) /*表示中断向量定义*/ /*下面的伪指令都不顶格*/ / *XXX1 表示中断向量表中的具体的中断向量 1*/ /*YYY 是中断程序入口标号,表示中断程序首地址*/ /* XXX2 表示中断向量表中的具体的中断向量 2/ /*YYY2 是中断程序入口标号,表示中断程序首地址*/ /*复位向量,每个程序中都必须的,可以放在段开始前的伪指令中*/ /*程序开始的地址标号*/ /*程序结束*/
    3.几个规定:所有的标号都要顶格写,所有的变量都要顶格写,所有的伪指令和指令都不能顶格 写,CALL 调用子程序是在标号前用"#",而其他的转移指令中的标号前不用"#",对外设的 寄存器,当程序开始时,许多是复位为零的,如果要置位为 1,可以直接将每一位的名称作立即 数写入,例如:指令
    西安邮电学院 63#
    710061
    陈小忠
    5
    MSP430 单片机的开发及应用
    MOV #(WDTHOLD+WDTPW),&WDTCTL 和 WDTPW 位置位为高,很容易读程序内容.
    就是将 WDTCTL 寄存器中的 WDTHOLD
    4.关于几类定义的区别:EQU,=,SET,VAR,ASSIGN 都是给标号变量定义地址值的 伪指令,都可以出现在程序中的任何位置,但用法不一样,= ,EQU 是定义一个永久地址标号 变量,一旦定义,在程序中的这个标号将固定在定义的地址上,不能改动.而 SET,VAR, ASSIGN 是暂时的地址标号变量,可以在程序中改动,一旦定义了一个标号地址,就可以对这个 标号作地址访问,但必须是在数据段.另外,DB ,DW 是定义变量在数据段当前的偏移位置, 是作为数据定义的,不是作为地址定义的,例如: AA DB 2H /*此时在数据段的当前位置写入了 2H 到存储器,以后用 AA 时就是用数据

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • msp430pdf  g2231  长城g2231  msp430  msp430单片机  iarformsp430  msp430论坛  msp430选型  msp430g2452  msp430仿真器