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

📄 at45db~1.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00EA 0027              clr R16
 00EC 99DF              xcall _write_byte
 00EE                   .dbline 84
 00EE           ;        for(i=0;i<528;i++)
 00EE 4427              clr R20
 00F0 5527              clr R21
 00F2 06C0              xjmp L31
 00F4           L28:
 00F4                   .dbline 85
 00F4 FB01              movw R30,R22
 00F6 0191              ld R16,Z+
 00F8 BF01              movw R22,R30
 00FA 92DF              xcall _write_byte
 00FC           L29:
 00FC                   .dbline 84
 00FC 4F5F              subi R20,255  ; offset = 1
 00FE 5F4F              sbci R21,255
 0100           L31:
 0100                   .dbline 84
 0100 4031              cpi R20,16
 0102 E2E0              ldi R30,2
 0104 5E07              cpc R21,R30
 0106 B0F3              brlo L28
 0108                   .dbline 86
 0108           ;        write_byte(*pt++);
 0108           ;        NOP();
 0108 0000              nop
 010A                   .dbline 87
 010A           ;        SET_45IO();
 010A 8D98              cbi 0x11,5
 010C                   .dbline 88
 010C           ;        CLEAR_45SCK();
 010C 8E9A              sbi 0x11,6
 010E                   .dbline 89
 010E           ;        SET_45CS();
 010E 8C98              cbi 0x11,4
 0110                   .dbline 90
 0110 4427              clr R20
 0112 5527              clr R21
 0114 02C0              xjmp L35
 0116           L32:
 0116                   .dbline 90
 0116           L33:
 0116                   .dbline 90
 0116 4F5F              subi R20,255  ; offset = 1
 0118 5F4F              sbci R21,255
 011A           L35:
 011A                   .dbline 90
 011A           ;        for(i=0;i<50000;i++);
 011A 4035              cpi R20,80
 011C E3EC              ldi R30,195
 011E 5E07              cpc R21,R30
 0120 D0F3              brlo L32
 0122                   .dbline -2
 0122                   .dbline 91
 0122           ; }
 0122           L27:
 0122 0E940000          xcall pop_gset3
 0126                   .dbline 0 ; func end
 0126 0895              ret
 0128                   .dbsym r i 20 i
 0128                   .dbsym r pt 22 pc
 0128                   .dbsym r pagenum 10 i
 0128                   .dbend
 0128                   .dbfunc e write_buffer2 _write_buffer2 fV
 0128           ;              i -> R20,R21
 0128           ;             pt -> R22,R23
 0128           ;         bitnum -> R10,R11
                        .even
 0128           _write_buffer2::
 0128 0E940000          xcall push_gset3
 012C B901              movw R22,R18
 012E 5801              movw R10,R16
 0130                   .dbline -1
 0130                   .dbline 93
 0130           ; void write_buffer2(unsigned int bitnum,unsigned char *pt)
 0130           ; {
 0130                   .dbline 95
 0130           ;        unsigned int i;
 0130           ;        CLEAR_45CS();
 0130 8C9A              sbi 0x11,4
 0132                   .dbline 96
 0132           ;        DELAY();
 0132 8CDF              xcall _DELAY
 0134                   .dbline 97
 0134           ;        write_byte(0x87);
 0134 07E8              ldi R16,135
 0136 74DF              xcall _write_byte
 0138                   .dbline 98
 0138           ;        write_byte(0x00);
 0138 0027              clr R16
 013A 72DF              xcall _write_byte
 013C                   .dbline 99
 013C           ;        i=bitnum>>8;
 013C A501              movw R20,R10
 013E 452F              mov R20,R21
 0140 5527              clr R21
 0142                   .dbline 100
 0142           ;        write_byte((unsigned char)i);
 0142 042F              mov R16,R20
 0144 6DDF              xcall _write_byte
 0146                   .dbline 101
 0146           ;        write_byte((unsigned char)bitnum);
 0146 0A2D              mov R16,R10
 0148 6BDF              xcall _write_byte
 014A                   .dbline 102
 014A           ;        for(i=0;i<528;i++)
 014A 4427              clr R20
 014C 5527              clr R21
 014E 06C0              xjmp L40
 0150           L37:
 0150                   .dbline 103
 0150 FB01              movw R30,R22
 0152 0191              ld R16,Z+
 0154 BF01              movw R22,R30
 0156 64DF              xcall _write_byte
 0158           L38:
 0158                   .dbline 102
 0158 4F5F              subi R20,255  ; offset = 1
 015A 5F4F              sbci R21,255
 015C           L40:
 015C                   .dbline 102
 015C 4031              cpi R20,16
 015E E2E0              ldi R30,2
 0160 5E07              cpc R21,R30
 0162 B0F3              brlo L37
 0164                   .dbline 104
 0164           ;        write_byte(*pt++);
 0164           ;        SET_45CS();
 0164 8C98              cbi 0x11,4
 0166                   .dbline -2
 0166                   .dbline 105
 0166           ; }
 0166           L36:
 0166 0E940000          xcall pop_gset3
 016A                   .dbline 0 ; func end
 016A 0895              ret
 016C                   .dbsym r i 20 i
 016C                   .dbsym r pt 22 pc
 016C                   .dbsym r bitnum 10 i
 016C                   .dbend
 016C                   .dbfunc e write_buffer1mainmemory _write_buffer1mainmemory fV
 016C           ;              i -> R20,R21
 016C           ;           flag -> R20
 016C           ;        pagenum -> R22,R23
                        .even
 016C           _write_buffer1mainmemory::
 016C 0E940000          xcall push_gset2
 0170 B801              movw R22,R16
 0172                   .dbline -1
 0172                   .dbline 107
 0172           ; void write_buffer1mainmemory(unsigned int pagenum)
 0172           ; {
 0172 07C0              xjmp L43
 0174           L42:
 0174                   .dbline 112
 0174           ;        unsigned int i;
 0174           ;        unsigned char flag;
 0174           ; //     write_buffer1(chip_cs,0,yyj02);
 0174           ;        while(1)
 0174           ;        {
 0174                   .dbline 113
 0174           ;        flag=read_status();
 0174 71DF              xcall _read_status
 0176 402F              mov R20,R16
 0178                   .dbline 114
 0178           ;        if((flag&0x80)==0x80)
 0178 842F              mov R24,R20
 017A 8078              andi R24,128
 017C 8038              cpi R24,128
 017E 09F4              brne L45
 0180                   .dbline 115
 0180           ;        break;
 0180 01C0              xjmp L44
 0182           L45:
 0182                   .dbline 116
 0182           L43:
 0182                   .dbline 111
 0182 F8CF              xjmp L42
 0184           L44:
 0184                   .dbline 117
 0184           ;        }
 0184           ;        CLEAR_45CS();
 0184 8C9A              sbi 0x11,4
 0186                   .dbline 118
 0186           ;        CLEAR_45SCK();
 0186 8E9A              sbi 0x11,6
 0188                   .dbline 119
 0188           ;        SET_45IO();
 0188 8D98              cbi 0x11,5
 018A                   .dbline 120
 018A           ;        DELAY();
 018A 60DF              xcall _DELAY
 018C                   .dbline 121
 018C           ;        write_byte(0x83);
 018C 03E8              ldi R16,131
 018E 48DF              xcall _write_byte
 0190                   .dbline 122
 0190           ;        i=pagenum>>6;
 0190 26E0              ldi R18,6
 0192 30E0              ldi R19,0
 0194 8B01              movw R16,R22
 0196 0E940000          xcall lsr16
 019A                   .dbline 123
 019A           ;        write_byte((unsigned char)i);
 019A 42DF              xcall _write_byte
 019C                   .dbline 124
 019C           ;        i=pagenum<<2;
 019C AB01              movw R20,R22
 019E 440F              lsl R20
 01A0 551F              rol R21
 01A2 440F              lsl R20
 01A4 551F              rol R21
 01A6                   .dbline 125
 01A6           ;        write_byte((unsigned char)i);
 01A6 042F              mov R16,R20
 01A8 3BDF              xcall _write_byte
 01AA                   .dbline 126
 01AA           ;        write_byte(0x00);
 01AA 0027              clr R16
 01AC 39DF              xcall _write_byte
 01AE                   .dbline 127
 01AE           ;        DELAY();
 01AE 4EDF              xcall _DELAY
 01B0                   .dbline 128
 01B0           ;        SET_45CS();
 01B0 8C98              cbi 0x11,4
 01B2                   .dbline -2
 01B2                   .dbline 129
 01B2           ; }      
 01B2           L41:
 01B2 0E940000          xcall pop_gset2
 01B6                   .dbline 0 ; func end
 01B6 0895              ret
 01B8                   .dbsym r i 20 i
 01B8                   .dbsym r flag 20 c
 01B8                   .dbsym r pagenum 22 i
 01B8                   .dbend
 01B8                   .dbfunc e write_buffer2mainmemory _write_buffer2mainmemory fV
 01B8           ;              i -> R20,R21
 01B8           ;           flag -> R20
 01B8           ;        pagenum -> R22,R23
                        .even
 01B8           _write_buffer2mainmemory::
 01B8 0E940000          xcall push_gset2
 01BC B801              movw R22,R16
 01BE                   .dbline -1
 01BE                   .dbline 131
 01BE           ; void write_buffer2mainmemory(unsigned int pagenum)
 01BE           ; {
 01BE 07C0              xjmp L49
 01C0           L48:
 01C0                   .dbline 136
 01C0           ;        unsigned int i;
 01C0           ;        unsigned char flag;
 01C0           ; //     write_buffer2(chip_cs,0,yyj02);
 01C0           ;        while(1)
 01C0           ;        {
 01C0                   .dbline 137
 01C0           ;        flag=read_status();
 01C0 4BDF              xcall _read_status
 01C2 402F              mov R20,R16
 01C4                   .dbline 138
 01C4           ;        if((flag&0x80)==0x80)
 01C4 842F              mov R24,R20
 01C6 8078              andi R24,128
 01C8 8038              cpi R24,128
 01CA 09F4              brne L51
 01CC                   .dbline 139
 01CC           ;        break;
 01CC 01C0              xjmp L50
 01CE           L51:
 01CE                   .dbline 140
 01CE           L49:
 01CE                   .dbline 135
 01CE F8CF              xjmp L48
 01D0           L50:
 01D0                   .dbline 141
 01D0           ;        }
 01D0           ;        CLEAR_45CS();
 01D0 8C9A              sbi 0x11,4
 01D2                   .dbline 142
 01D2           ;        CLEAR_45SCK();
 01D2 8E9A              sbi 0x11,6
 01D4                   .dbline 143
 01D4           ;        SET_45IO();
 01D4 8D98              cbi 0x11,5
 01D6                   .dbline 144
 01D6           ;        DELAY();
 01D6 3ADF              xcall _DELAY
 01D8                   .dbline 145
 01D8           ;        write_byte(0x86);
 01D8 06E8              ldi R16,134
 01DA 22DF              xcall _write_byte
 01DC                   .dbline 146
 01DC           ;        i=pagenum>>6;
 01DC 26E0              ldi R18,6
 01DE 30E0              ldi R19,0
 01E0 8B01              movw R16,R22
 01E2 0E940000          xcall lsr16
 01E6                   .dbline 147
 01E6           ;        write_byte((unsigned char)i);
 01E6 1CDF              xcall _write_byte
 01E8                   .dbline 148
 01E8           ;        i=pagenum<<2;
 01E8 AB01              movw R20,R22
 01EA 440F              lsl R20
 01EC 551F              rol R21
 01EE 440F              lsl R20
 01F0 551F              rol R21
 01F2                   .dbline 149
 01F2           ;        write_byte((unsigned char)i);
 01F2 042F              mov R16,R20
 01F4 15DF              xcall _write_byte
 01F6                   .dbline 150
 01F6           ;        write_byte(0x00);
 01F6 0027              clr R16
 01F8 13DF              xcall _write_byte
 01FA                   .dbline 151
 01FA           ;        DELAY();
 01FA 28DF              xcall _DELAY
 01FC                   .dbline 152
 01FC           ;        SET_45CS();
 01FC 8C98              cbi 0x11,4
 01FE                   .dbline -2
 01FE                   .dbline 153
 01FE           ; }      
 01FE           L47:
 01FE 0E940000          xcall pop_gset2
 0202                   .dbline 0 ; func end
 0202 0895              ret
 0204                   .dbsym r i 20 i
 0204                   .dbsym r flag 20 c
 0204                   .dbsym r pagenum 22 i
 0204                   .dbend
 0204                   .dbfunc e read_mainmemory _read_mainmemory fc
 0204           ;          byte1 -> R10,R11
 0204           ;          temp1 -> R20
 0204           ;              i -> R22,R23
 0204           ;           flag -> R22
 0204           ;           bits -> R20,R21
 0204           ;        pagenum -> R10,R11
                        .even
 0204           _read_mainmemory::
 0204 0E940000          xcall push_gset3
 0208 A901              movw R20,R18
 020A 5801              movw R10,R16
 020C                   .dbline -1
 020C                   .dbline 155
 020C           ; unsigned char read_mainmemory(unsigned int pagenum,unsigned int bits)
 020C           ; {
 020C 05C0              xjmp L55
 020E           L54:
 020E                   .dbline 159
 020E           ;        unsigned char flag,temp1;
 020E           ;        unsigned int byte1,i;

⌨️ 快捷键说明

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