哪位用过430,请帮帮忙 ;------------------------------------------------------------------------------
main ORG 01600h ; Program Start
;------------------------------------------------------------------------------
RESET mov #0A00h,SP ; Initialize stackpointer
StopWDT mov #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog
call #init_xt2 ;初始化xt2,XT2=mclk=smclk
call #init_ram ;清RAM
;初始化定时器A 显示
mov.w #TASSEL1+TACLR+MC0,&TACTL ; ACLK, clear TAR
mov.w #CCIE,&TACCTL0 ; CCR0 interrupt enabled
mov.w #3200,&TACCR0
;初始化端口
SetupP1 bis.b #0f8h,&P1DIR ; 键盘,高5位输出,低3位输入
bis.b #0c0h,&P2DIR ; 分合输出
bis.b #0c0h,&P2OUT
bis.b #1fh,&P3DIR ; 4个指示灯及收发控制
bis.b #07h,&P3OUT
bis.b #BIT6+BIT7,&P3SEL ; 串口
bis.b #0ffh,&P4DIR ; 液晶数据线
bis.b #0ffh,&P4OUT
bis.b #0F0h,&P5DIR ; 液晶控制及I2c
bis.b #0f0h,&P5OUT
call #xscs
eint ; Enable interrupts
mainloop nop
jmp mainloop
yans5 cmp #6,r6
jhs yans52
inc r6
yans53 mov.b #00h,cs1
ret
yans52 clr r6
mov.b #01h,cs1
ret
;------------------------------------------------------------------------------
key1; 行扫描
;------------------------------------------------------------------------------
mov.b &P1IN,al
;mov.b al,R5
and.b #07h,al
cmp.b #06h,al
jne qw1
mov.b #01h,ch
call #key2
jmp qwf
qw1 cmp.b #05h,al
jne qw2
mov.b #02h,ch
call #key2
add.b #05h,jx
jmp qwf
qw2 cmp.b #03h,al
jne qwf
mov.b #04h,ch
call #key2
add.b #10h,jx
qwf ret
;------------------------------------------------------------------------------
key2; 列扫描
;------------------------------------------------------------------------------
clr jx
clr.b cl
mov.b #08h,bh
qe2 bis.b #0f8h,xl
mov.b bh,bl
xor.b #0ffh,bl
and.b bl,xl
mov.b xl,&P1OUT
mov.b &P1IN,al
and.b ch,al
cmp.b #00h,al
jne qe1
mov.b cl,jx
jmp qef
qe1 inc.b cl
rla.b bh
cmp.b #06h,cl
jlo qe2
qef ret
;------------------------------------------------------------------------------
TA0_ISR dint ; 定时器中断程序
cmp.b #01h,qs2
jeq ycu1
bic.b #BIT3+BIT4+BIT5+BIT6+BIT7,&P1OUT
mov.b &P1IN,dll
bic.b #BIT3+BIT4+BIT5+BIT6+BIT7,dll
cmp.b #07h,dll
jeq ycu1
call #keys ;有按键按下
kef1 mov.b #01h,qs2
jmp keee
ycu1 clr.b qs2
bit.b #01h,cs3
jz keef
jmp keee
keef mov.b #080h,yl ;显示主界面
call #dizhi
mov.b #08h,yl
call #suju1
mov.b #08h,yl
call #suju1
mov.b #08h,yl
call #suju1
keee eint
reti
keys push r5 ;键盘操作
push ax
push bx
push dx
clr r5
bic.b #04h,&P3OUT
bic.b #02h,&P3OUT
bis.b #01h,cs3
call #key1 ;键盘扫描
cmp.b #08h,cs1
jhs ke3
mov.b #01h,cs1
cmp.b #03h,cs1
jhs ke1
cmp.b #01h,cs1
jne uio2
cmp.b #01h,jx
jne ke2
call #xsi1 ;键盘设置界面
uio21 mov.b #0c5h,yl ;输入密码
call #dizhi
mov.b jx,yl
call #suju1
mov.b #02h,cs1
br #kef
uio2 cmp.b #02h,cs1
jne ke2
cmp.b #01h,jx
jne ke2
mov.b #0c6h,yl
call #dizhi
mov.b jx,yl
call #suju1
mov.b #03h,cs1
k22 br #kef
ke2 br #kee
ke1 cmp.b #04h,cs1
jhs ke3
cmp.b #05h,jx
jne ke2
mov.b #0c7h,yl
call #dizhi
mov.b jx,yl
call #suju1
mov.b #04h,cs1
clr.b cs9
clr.b csa
br #kef
ke3 mov.b #08h,cs1
cmp.b #00h,cs9
jeq ke5
jmp keb
ke5 cmp.b #01h,csa
jeq ke6
cmp.b #11h,jx
jeq ke7 ;是功能键则进入设置界面
br #kef
ke7 mov.b #01h,csa ;csa function sign
call #xsi1
clr.b cs9
br #kef
ke6 cmp.b #12h,jx
jeq kea ;第一次确认键后输入的数据送到QS3中
cmp.b #00h,qs3 ;two times data input sign
jne kea1
cmp.b #11h,jx
jeq kea3
cmp.b #10h,jx
jeq kea3 ;是功能键或小数点键则返回
mov jx,ix
mov.b jx,yl
mov.b #85h,yl
call #dizhi
mov.b jx,yl
call #suju1
mov.b #01h,qs3
kea3 br #kef
kea1 cmp.b #01h,qs3
jne kea2
cmp.b #11h,jx
jeq kea4
cmp.b #10h,jx
jeq kea4
mov.b #02h,qs3
rla ix
rla ix
rla ix
rla ix
add jx,ix
mov.b jx,yl
call #suju1
kea4 br #kef
kea2 clr.b qs3
mov.b #85h,yl ;进入具体设置项
call #dizhi
mov.b #20h,yl
call #suju
call #suju
br #kef
kea mov.b il,cs9
br #kef
keb cmp.b #01h,cs9 ;close
jne kk1
br #kef ;11
kk1 cmp.b #02h,cs9 ;open
jne kk2
br #kef ;21
kk2 cmp.b #03h,cs9 ;t1
jne kec
br #kef ;31
kec cmp.b #04h,cs9 ;t2
jne ked
br #kef ;41
ked cmp.b #05h,cs9 ;t3
jne keg
br #kef ;51
keg cmp.b #06h,cs9 ;n(1-20)
jne keh
br #kef ;61
keh cmp.b #07h,cs9 ;n(1-3)
jne kei
br #kef ;71
kei cmp.b #08h,cs9 ;td
jne kej
br #kef ;81
kej cmp.b #09h,cs9 ;gd1
jne kek
br #kef ;91
kek cmp.b #10h,cs9 ;gd2
jne kexdl
br #kef ;seta1
kexdl cmp.b #11h,cs9 ;小电流
jne keday
br #kef ;111
keday cmp.b #12h,cs9 ;YY-MM-DD
jne ketime
br #kef ;121
ketime cmp.b #13h,cs9 ;HH-MM-SS
jne kegzd
br #kef ;131
kegzd cmp.b #14h,cs9 ;合闸到故障点
jne kexssd
br #kef ;141
kexssd cmp.b #15h,cs9 ;限时速断
jne ke16
br #kef ;151
ke16 cmp.b #16h,cs9 ;单侧加压延时合闸时间
jne ke17
br #kef ;161
ke17 cmp.b #17h,cs9 ;失压分闸时间
jne ke18
br #kef ;171
ke18 cmp.b #18h,cs9 ;电源侧设置00 01 10 11
jne ke19
br #kef ;181
ke19 cmp.b #19h,cs9 ;重合后加速投切
jne ke20
br #kef ;191
ke20 cmp.b #20h,cs9 ;故障脉冲监测投切
jne kea21
br #kef ;201
kea21 cmp.b #21h,cs9 ;子站号
jne ke22
br #kef ;211
ke22 cmp.b #22h,cs9 ;波特率
jne ke23
br #kef ;221
ke23 cmp.b #23h,cs9 ;显示故障记录
jne ke25
br #kef ;231
ke25 cmp.b #25h,cs9 ;环网投切
jne ke26
br #kef ;251
ke26 cmp.b #26h,cs9 ;关机设置
jne ke35
br #kef ;261
ke35 cmp.b #35h,cs9 ;生产日期
jne kel
br #kef ;351
kel cmp.b #55h,cs9 ;55,66,77,88,99退出
jne keu
jmp kez
keu cmp.b #66h,cs9
jne kev
jmp kez
kev cmp.b #77h,cs9
jne kew
jmp kez
kew cmp.b #88h,cs9
jne kex
jmp kez
kex cmp.b #99h,cs9
jeq kez
br #kef
kez br #kee
kee clr.b cs1
clr r5
clr.b cs3
clr.b cs4
clr.b cs5
clr.b cs6
clr.b cs9
clr.b csa
clr ix
clr hx
call #qping
bis.b #04h,&P3OUT
bis.b #02h,&P3OUT
jmp kef
kec1 call #xsi1
clr.b qs3
clr.b csa
clr.b cs4
clr.b cs5
clr.b cs6
clr.b cs9
clr ix
clr hx
kef pop dx
pop bx
pop ax
pop r5
ret
no body want to tell me!