在线时间0 小时
UID223006
注册时间2010-9-23
NXP金币0
该用户从未签到
新手上路

- 积分
- 115
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2011-3-8 11:50:09
|
显示全部楼层
RE:EEPROM在BDM和单片机模式写入的不同?
INCLUDE 'derivative.inc'
;实现读写EPROM
; export symbols
XDEF Entry, _Startup, main
; we use export 'Entry' as symbol. This allows us to
; reference 'Entry' either in the linker .prm file
; or from C/C++ later on
XREF __SEG_END_SSTACK ; symbol defined by the linker for the end of the stack
;********
;*********
; variable/data section
MY_EXTENDED_RAM: SECTION
; Insert here your data definition.
Counter ds.w 1
FiboRes ds.w 1
FiboRes1 ds.b 1
FiboRes2 ds.b 1
AL ds.b 1
; code section
MyCode: SECTION
main:
_Startup:
Entry:
LDS #__SEG_END_SSTACK ; initialize the stack pointer
ldx #$000D ;设置波特率
stx SCI0BD ;4M/0X00D*16 =19200
ldaa #$00
staa SCI0CR1
ldaa #$0C
staa SCI0CR2 ;接收和发送使能,查询
LDAA #$11 ;分配地址为1000
STAA INITEE
NOP
NOP
nop
nop
ldaa #$45 ;#39;#21;#$16 ;晶振为8M
staa ECLKDIV ;8M/8/5=190k
nop
nop
ldaa #$00
staa ECNFG ;禁止中断
nop
nop
cs: ; ldaa #$05 ;400~ BFF
; staa INITEE
; nop
; nop
; ldaa #$11
; staa INITRM
WAIT1: nop
nop
brclr ECLKDIV,#$80,WAIT1 ;时间设置成功
nop
ldaa #$88
staa EPROT ;无写保护。保护禁止
WAIT11: NOP
NOP
brclr ESTAT,#$80,WAIT11 ;等待空
nop
ldd $1000
std FiboRes
ldx FiboRes
inx
stx FiboRes
; ldaa #$aa
; cmpa FiboRes1
; bne cs1 ;不相等 跳
; inc FiboRes1
; ldaa FiboRes1
; call ttt
; ldaa FiboRes
; call ttt
; ws: nop
; bra ws
; cs1: ldaa #$ab
; cmpa FiboRes1
; bne cs11 ;不相等 跳
;loopcs: bra loopcs
cs11:
; ldaa #$ff ;为清空
; cmpa FiboRes1
; bne cs2 ;没清空 跳
; bra cs3 ;清空过
cs2:
ldd #00
std EADDR ;地址
nop
ldd #$aaaa
std EDATA ;数据
nop
ldaa #$40;41 ; 擦quanbu字
staa ECMD ;
LDAA #$80
STAA ESTAT
nop
WAIT210: nop
brclr ESTAT,#$40,WAIT210 ;清空
cs21: nop
nop
ldd #00
std EADDR ;地址
nop
ldd #$bbbb
std EDATA ;数据
nop
ldaa #$60 ; 字修改
staa ECMD
LDAA #$80
STAA ESTAT
nop
WAIT211: nop
brclr ESTAT,#$40,WAIT211 ;清空
; bra loop1
;cs3: ldd #00
; std EADDR ;地址
; nop
; ldd #$aaaa
; std EDATA ;数据
; nop
; ldaa #$20
; staa ECMD ;字编写
; LDAA #$80
; STAA ESTAT
; nop
;WAIT212: nop
; ; brclr ESTAT,#$40,WAIT212 ;清空
; brclr ESTAT,#$80,WAIT212 ;清空
; ldd #00
; std EADDR ;地址
; nop
; ldd #$aaaa
; std EDATA ;数据
; nop
; ldaa #$20
; staa ECMD ;字编写
; LDAA #$80
; STAA ESTAT
; brclr ESTAT,#$80,WAIT31 ;等待空
; nop
; ldd #00
; std EADDR ;地址
; nop
; ldd #$aaaa
; std EDATA ;数据
; nop
; ldaa #$20
; staa ECMD ;字编写
; LDAA #$80
; STAA ESTAT
; nop
;WAIT32: nop
; brclr ESTAT,#$40,WAIT32 ;写一个字
loop1:
nop
nop
nop
nop
nop
nop
nop
nop
ldd $1000
staa FiboRes2
stab FiboRes1
nop
ldaa FiboRes1
call ttt
ldaa FiboRes2
call ttt
loop:
nop
bra loop
nop
nop
nop
nop
ttt: staa AL
nop
nop
ttt1: brclr SCI0SR1,#$80,ttt1 ;清除SCI0SR1位需要先读取然后在附值
ldaa AL
staa SCI0DRL
DELAY: nop
ldaa #50
ddd: deca
bne ddd
nop
rtc
nop
nop
nop
END |
|