梦游着逃亡吧 关注:36贴子:2,332
  • 11回复贴,共1

今天的程序测试很爽啊

只看楼主收藏回复

#include "msp430.h" 
          NAME main ;模块名称定义
          PUBLIC main ;全局符号声明
          ORG 0FFFEh ;中断向量表复位向量地址
          DC16 init ;存放用户程序入口地址,复位后开始执行
          RSEG DATA16_C
LEDtab:   DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h
          RSEG CSTACK ;定义堆栈段
          RSEG CODE ;定义代码段
init      MOV #SFE(CSTACK),SP 初始化堆栈指针
main:     NOP
          MOV.W #WDTPW+WDTHOLD,&WDTCTL ;关闭看门狗定时器
          MOV.b #0, &P6SEL ;设置P6为基本I/O
          MOV.b #0FFh, &P6DIR ;设置P6为输出端口
          ;BIC.b #BIT1+BIT2+BIT3+BIT4, &P6SEL ;
          ;BIC.b #BIT1+BIT2+BIT3+BIT4, &P6DIR ;
start:    MOV.b #0h,&P6OUT
          BIS.b #BIT1,&P6OUT
          MOV #17,R8
          MOV #LEDtab,R4
          ;MOV #8h,R6
          
again:    MOV #8h,R7
          MOV.b @R4+,R5
          DEC R8
          JNZ next
          JMP start
next:     BIT.b  #BIT7,R5
          JNZ set1
          JMP set0
set1:     BIS.b #BIT4,&P6OUT
          RLC.b R5
          CALL #trans
          DEC R7
          JNZ next
          CALL #trans2
          CALL #delay
          JMP again
set0:     BIC.b #BIT4,&P6OUT
          RLC.b R5
          CALL #trans
          DEC R7
          JNZ next
          CALL #trans2
          CALL #delay
          JMP again
trans:    BIS.b #BIT2,&P6OUT
          BIC.b #BIT2,&P6OUT
          RET
trans2:   BIS.b #BIT3,&P6OUT
          BIC.b #BIT3,&P6OUT
          RET
delay:    
          MOV #2h,R9
w1:       MOV #0FFFFh,R10
          CALL #w2
          DEC R9
          JNZ w1
          RET
w2:       DEC R10
          JNZ w2
          RET
          END ; 程序结束


IP属地:广东1楼2009-10-29 17:35回复
    看不懂


    IP属地:浙江2楼2009-10-29 20:16
    回复
      3L我看不懂
      = =


      IP属地:广东4楼2009-10-29 21:03
      回复
        我费了半个下午终于把一楼整明白了
        - -
        汇编语言


        IP属地:广东6楼2009-10-29 21:20
        回复
          瞎了


          IP属地:广东8楼2009-10-29 21:35
          回复
            O.O


            IP属地:广东10楼2009-10-29 21:57
            回复
              我不知道这段程序为什么不能进入中断,例程上改了下,问同学也不知道是什么意识?
              #include <msp430.h>
              int main(void)
              {
              WDTCTL|= WDTPW + WDTHOLD; // Stop WDT
              BCSCTL2|=SELS;
              P1SEL|=0X02; //P1.1(ta0)
              P1DIR|= 0x08; // P1.3 output
              CCTL0|=CM_1+SCS+CAP+CCIE;
              TACTL|= TASSEL_2 +ID_3+MC_2+TAIE; // SMCLK, up-down mode
              _EINT();
              while(1);
              }
              #pragma vector=TIMERA0_VECTOR
              __interrupt void TimerA0(void)
              {
              if(CCTL0&CM1)
              {P1OUT&=~0X08;
              CCTL0|=CM_1+SCS+CAP+CCIE;
              }
              else if(CCTL0&CM0)
              {P1OUT|=0X08;
              CCTL0=CM_2+SCS+CAP+CCIE;
              }
              }


              IP属地:广东11楼2014-07-13 23:18
              回复
                ...


                IP属地:上海来自Android客户端12楼2014-07-14 17:21
                回复