#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 ; 程序结束
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 ; 程序结束