foster (15.05.2009 07:39, просмотров: 212) ответил Aдикм на ну так программу свою выложите на обозрение.
вот сама программа
#include <msp430x14x1.h>
;******************************************************************************
ORG 4000h
;******************************************************************************
RESET mov #0A00h, SP
mov #5A80h, &WDTCTL ;останов WDT
bis #80h, SR ;системный такт генеротор 1 выкл
mov.b #60h, &DCOCTL ;установка частоты
mov.b #84h, &BCSCTL1 ;выкл ХТ2
clr.b &BCSCTL2 ;выбор внутр генератора на макс частоте
mov #0Fh, R12
call #delay_by_R12
clr.b &P1DIR
clr.b &P1SEL
loc_CB18:
mov.b #80h, &P1OUT
bis.b #0FCh, &P1DIR
clr.b &P2DIR
bis.b #04, &P2DIR
clr.b &P2SEL
clr.b &P2OUT
loc_CB30:
bis.b #64h, &P2DIR
bis.b #40h, &P2OUT ; разрешение записи
loc_CB36:
clr.b &P3DIR
clr.b &P3SEL
mov.b #6Ah, &P3OUT
bis.b #7Bh, &P3DIR
clr.b &P4DIR
clr.b &P4SEL
mov.b #0C0h, &P4OUT
bis.b #0EBh, &P4DIR
clr.b &P5DIR
clr.b &P5SEL
mov.b #98h, &P5OUT
mov.b &P5DIR, R10
mov.b #00FFh, &P5DIR
clr.b &P6DIR
clr.b &P6SEL
mov.b #4, &BCSCTL1
mov.b #0Ah, &BCSCTL2
loc_C92A:
bic.b #2, &IFG1
mov #0Ah, R12
call #delay_by_R12
bit.b #2, &IFG1
jc loc_C92A
bis.b #80h, &BCSCTL2
bic #80h, SR
clr R9
;************************************* сброс флешки
mov.b #0B0h, &P5OUT
mov.b #0FFh, &P6DIR
mov.b #30h, &P5OUT
mov.b #0FFh, &P6OUT
mov.b #0B0h, &P5OUT
mov.b #98h, &P5OUT
clr.b &P6DIR
loc_92C0:
tst.b &P2IN
jge loc_92C0
;************************************** стирание флеш
mov.b #0000h, R14
erase_block:
mov.b #0B0h, &P5OUT
mov.b #0FFh, &P6DIR
mov.b #30h, &P5OUT
mov.b #60h, &P6OUT
mov.b #0B0h, &P5OUT
mov.b #0D0h, &P5OUT
mov.b #50h, &P5OUT
mov.b R14, R13
mov.b R13, &P6OUT
mov.b #0D0h, &P5OUT
mov.b #50h, &P5OUT
mov R14, R13
swpb R13
and #0FFh, R13
mov.b R13, &P6OUT
mov.b #0D0h, &P5OUT
;------------------------------
mov.b #50h, &P5OUT
mov.b #0, &P6OUT
mov.b #0D0h, &P5OUT
;--------------------------------
mov.b #90h, &P5OUT
mov.b #0B0h, &P5OUT
mov.b #30h, &P5OUT
mov.b #0D0h, &P6OUT
mov.b #0B0h, &P5OUT
mov.b #98h, &P5OUT
loc_9506:
tst.b &P2IN
jge loc_9506
mov.b #0B0h, &P5OUT
mov.b #30h, &P5OUT
mov.b #70h, &P6OUT
mov.b #0B0h, &P5OUT
mov.b #98h, &P5OUT
clr.b &P6DIR
mov.b #80h, &P5OUT
mov.b &P6IN, R12
mov.b #98h, &P5OUT
;bic.b #40h, &P2OUT
bit.b #1, R12
jeq rto
inc R9
cmp #010h, R9
jne erase_block
rto clr R9
inc R14
cmp #01026, R14
jne erase_block
bis.b #04, &P2OUT ; зажигаем лампочку
loop jmp loop
;*******************************************
delay_by_R12:
mov R12, R15
loc_C94A:
tst R15
jeq locret_C952
add #0FFFFh, R15
jmp loc_C94A
locret_C952:
ret
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END