📄 main.s
字号:
.module main.c
.area text
.dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
.dbfunc e main _main fV
; i -> 0,X
; p -> 1,X
_main::
.dbline -1
ais #-3
tsx
.dbline 31
; /*-----------------------------------------------------*
; *工 程 名:Flash.prj *
; *硬件连接:无 *
; *功 能: *
; * 1.等待接收N+1个数,并放入N和data数组中 *
; * 2.擦除以addr为首地址的Flash一页,将N个数据写入 *
; * 3.从以addr为首址的Flash区读取N个数据,串口发送 *
; *说 明: *
; * 1.与Visual Basic 6.0 程序Flash_Test.vbp联合运行 *
; * 2.擦/写函数中用来暂存写入或擦除程序的首末地址的 *
; * 变量pbase,pend;用来暂存待写入或擦除的Flash首 *
; * 地址faddr;用来存放写入的数据个数N和写入的数据 *
; * data[]必须在main函数中定义,否则将出错 *
; * 3.调用擦/写子程序之前先将待擦/写页后一页开始的 *
; * 所有区域写保护 *
; *------------------------------------------------------*
; /*[头文件]*/
; #include "SCI.h" //串行通信子程序头文件
; #include "GP32C.h" //包含头文件
; //函数声明
; extern void SCIInit(void); //串行口初始化子程序
; extern void EarseFlash(unsigned int addr);
; extern void WriteFlash(unsigned int addr);
; //内存变量声明
; unsigned char N,data[64]; //N:写入FLASH的数据个数
; //data:将写入flash的数据
; unsigned int pbase,pend,faddr;
; //存放将写入或擦除的首地址
; //主程序
; void main()
; {
.dbline 34
; unsigned char i;
; unsigned char *p;
; SCIInit(); //调串行口初始化子程序
jsr _SCIInit
tsx
bra L3
L2:
.dbline 37
; //主循环开始
; while(1)
; {
.dbline 38
; SCISend1(86); //发送握手信号86
lda #86
psha
jsr _SCISend1
ais #1
tsx
.dbline 40
; //等待接收一个字节的握手信号
; if(SCIRe1(p)!=56) //是否是56?
lda 2,X
psha
lda 1,X
psha
jsr _SCIRe1
ais #2
tsx
sta *__r1
cmp #56
beq L5
.dbline 41
; continue; //否,继续握手
bra L3
L5:
.dbline 43
lda #<_data
psha
lda #>_data
psha
lda #1
psha
jsr _SCIReN
ais #3
.dbline 44
lda _data
sta _N
.dbline 46
lda #<_data
psha
lda #>_data
psha
lda _N
psha
jsr _SCIReN
ais #3
.dbline 49
lda #2
sta 0xff7e
.dbline 50
ldhx #-32768
pshx
pshh
jsr _EarseFlash
ais #2
.dbline 53
lda #2
sta 0xff7e
.dbline 54
ldhx #-32768
pshx
pshh
jsr _WriteFlash
ais #2
.dbline 56
ldhx #-32768
pshx
pshh
lda _N
psha
jsr _SCISendN
ais #3
tsx
.dbline 57
L3:
.dbline 36
bra L2
X0:
.dbline -2
L1:
ais #3
.dbline 0 ; func end
rts
.dbsym l i 0 c
.dbsym l p 1 pc
.dbend
.area bss
.dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
_faddr::
.blkb 2
.dbsym e faddr _faddr i
_pend::
.blkb 2
.dbsym e pend _pend i
_pbase::
.blkb 2
.dbsym e pbase _pbase i
_data::
.blkb 64
.dbsym e data _data A[64:64]c
_N::
.blkb 1
.dbsym e N _N c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -