⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 hc08飞思卡尔单片机上实现flash转换
💻 LIS
字号:
                        .module main.c
                        .area text
 0000                   .dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
 0000                   .dbfunc e main _main fV
 0000           ;              i -> 0,X
 0000           ;              p -> 1,X
 0000           _main::
 0000                   .dbline -1
 0000 A7FD              ais #-3
 0002 95                tsx
 0003                   .dbline 31
 0003           ; /*-----------------------------------------------------*
 0003           ; *工 程 名:Flash.prj                                    *
 0003           ; *硬件连接:无                                           *
 0003           ; *功  能:                                              *
 0003           ; *    1.等待接收N+1个数,并放入N和data数组中             *
 0003           ; *    2.擦除以addr为首地址的Flash一页,将N个数据写入     *
 0003           ; *    3.从以addr为首址的Flash区读取N个数据,串口发送    *
 0003           ; *说  明:                                               *
 0003           ; *    1.与Visual Basic 6.0 程序Flash_Test.vbp联合运行   *
 0003           ; *    2.擦/写函数中用来暂存写入或擦除程序的首末地址的   *
 0003           ; *      变量pbase,pend;用来暂存待写入或擦除的Flash首    *
 0003           ; *      地址faddr;用来存放写入的数据个数N和写入的数据   *
 0003           ; *      data[]必须在main函数中定义,否则将出错           *
 0003           ; *    3.调用擦/写子程序之前先将待擦/写页后一页开始的    *
 0003           ; *       所有区域写保护                                 *
 0003           ; *------------------------------------------------------*
 0003           ; /*[头文件]*/
 0003           ; #include "SCI.h"           //串行通信子程序头文件
 0003           ; #include "GP32C.h"         //包含头文件
 0003           ; //函数声明
 0003           ; extern void SCIInit(void); //串行口初始化子程序
 0003           ; extern void EarseFlash(unsigned int addr);
 0003           ; extern void WriteFlash(unsigned int addr);
 0003           ; //内存变量声明
 0003           ; unsigned char N,data[64]; //N:写入FLASH的数据个数
 0003           ;                           //data:将写入flash的数据
 0003           ; unsigned int pbase,pend,faddr;
 0003           ;                           //存放将写入或擦除的首地址
 0003           ; //主程序
 0003           ; void main()
 0003           ;   {
 0003                   .dbline 34
 0003           ;     unsigned char i;
 0003           ;     unsigned char *p;
 0003           ;     SCIInit();            //调串行口初始化子程序
 0003 CD0000            jsr _SCIInit
 0006 95                tsx
 0007 206D              bra L3
 0009           L2:
 0009                   .dbline 37
 0009           ;     //主循环开始
 0009           ;     while(1)
 0009           ;     {  
 0009                   .dbline 38
 0009           ;       SCISend1(86);       //发送握手信号86
 0009 A656              lda #86
 000B 87                psha
 000C CD0000            jsr _SCISend1
 000F A701              ais #1
 0011 95                tsx
 0012                   .dbline 40
 0012           ;       //等待接收一个字节的握手信号
 0012           ;       if(SCIRe1(p)!=56)   //是否是56?
 0012 E602              lda 2,X
 0014 87                psha
 0015 E601              lda 1,X
 0017 87                psha
 0018 CD0000            jsr _SCIRe1
 001B A702              ais #2
 001D 95                tsx
 001E B700              sta *__r1
 0020 A138              cmp #56
 0022 2702              beq L5
 0024                   .dbline 41
 0024           ;         continue;         //否,继续握手      
 0024 2050              bra L3
 0026           L5:
 0026                   .dbline 43
 0026 A606              lda #<_data
 0028 87                psha
 0029 A606              lda #>_data
 002B 87                psha
 002C A601              lda #1
 002E 87                psha
 002F CD0000            jsr _SCIReN
 0032 A703              ais #3
 0034                   .dbline 44
 0034 C60006            lda _data
 0037 C70046            sta _N
 003A                   .dbline 46
 003A A606              lda #<_data
 003C 87                psha
 003D A606              lda #>_data
 003F 87                psha
 0040 C60046            lda _N
 0043 87                psha
 0044 CD0000            jsr _SCIReN
 0047 A703              ais #3
 0049                   .dbline 49
 0049 A602              lda #2
 004B C7FF7E            sta 0xff7e
 004E                   .dbline 50
 004E 458000            ldhx #-32768
 0051 89                pshx
 0052 8B                pshh
 0053 CD0000            jsr _EarseFlash
 0056 A702              ais #2
 0058                   .dbline 53
 0058 A602              lda #2
 005A C7FF7E            sta 0xff7e
 005D                   .dbline 54
 005D 458000            ldhx #-32768
 0060 89                pshx
 0061 8B                pshh
 0062 CD0000            jsr _WriteFlash
 0065 A702              ais #2
 0067                   .dbline 56
 0067 458000            ldhx #-32768
 006A 89                pshx
 006B 8B                pshh
 006C C60046            lda _N
 006F 87                psha
 0070 CD0000            jsr _SCISendN
 0073 A703              ais #3
 0075 95                tsx
 0076                   .dbline 57
 0076           L3:
 0076                   .dbline 36
 0076 2091              bra L2
 0078           X0:
 0078                   .dbline -2
 0078           L1:
 0078 A703              ais #3
 007A                   .dbline 0 ; func end
 007A 81                rts
 007B                   .dbsym l i 0 c
 007B                   .dbsym l p 1 pc
 007B                   .dbend
                        .area bss
 0000                   .dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
 0000           _faddr::
 0000                   .blkb 2
 0002                   .dbsym e faddr _faddr i
 0002           _pend::
 0002                   .blkb 2
 0004                   .dbsym e pend _pend i
 0004           _pbase::
 0004                   .blkb 2
 0006                   .dbsym e pbase _pbase i
 0006           _data::
 0006                   .blkb 64
 0046                   .dbsym e data _data A[64:64]c
 0046           _N::
 0046                   .blkb 1
 0047                   .dbsym e N _N c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -