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

📄 at45db~1.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 020E           ;        while(1)
 020E           ;        {
 020E                   .dbline 160
 020E           ;        flag=read_status();
 020E 24DF              xcall _read_status
 0210 602F              mov R22,R16
 0212                   .dbline 161
 0212           ;        if(flag&0x80)
 0212 07FF              sbrs R16,7
 0214 01C0              rjmp L57
 0216                   .dbline 162
 0216           ;        break;
 0216 01C0              xjmp L56
 0218           L57:
 0218                   .dbline 163
 0218           L55:
 0218                   .dbline 158
 0218 FACF              xjmp L54
 021A           L56:
 021A                   .dbline 164
 021A           ;        }
 021A           ;        CLEAR_45CS();
 021A 8C9A              sbi 0x11,4
 021C                   .dbline 165
 021C           ;        SET_45IO();
 021C 8D98              cbi 0x11,5
 021E                   .dbline 166
 021E           ;        CLEAR_45SCK();
 021E 8E9A              sbi 0x11,6
 0220                   .dbline 167
 0220           ;        DELAY();
 0220 15DF              xcall _DELAY
 0222                   .dbline 168
 0222           ;        write_byte(0x52);
 0222 02E5              ldi R16,82
 0224 FDDE              xcall _write_byte
 0226                   .dbline 169
 0226           ;        i=pagenum>>6;
 0226 26E0              ldi R18,6
 0228 30E0              ldi R19,0
 022A 8501              movw R16,R10
 022C 0E940000          xcall lsr16
 0230                   .dbline 170
 0230           ;        write_byte((unsigned char)i);
 0230 F7DE              xcall _write_byte
 0232                   .dbline 171
 0232           ;        i=pagenum<<2;
 0232 B501              movw R22,R10
 0234 660F              lsl R22
 0236 771F              rol R23
 0238 660F              lsl R22
 023A 771F              rol R23
 023C                   .dbline 172
 023C           ;        byte1=bits>>8;
 023C 5A01              movw R10,R20
 023E AB2C              mov R10,R11
 0240 BB24              clr R11
 0242                   .dbline 173
 0242           ;        i=(unsigned char)i+(unsigned char)byte1;
 0242 2A2C              mov R2,R10
 0244 3324              clr R3
 0246 7727              clr R23
 0248 620D              add R22,R2
 024A 731D              adc R23,R3
 024C                   .dbline 174
 024C           ;        write_byte((unsigned char)i);
 024C 062F              mov R16,R22
 024E E8DE              xcall _write_byte
 0250                   .dbline 175
 0250           ;        write_byte((unsigned char)bits);
 0250 042F              mov R16,R20
 0252 E6DE              xcall _write_byte
 0254                   .dbline 176
 0254           ;        write_byte(0x00);
 0254 0027              clr R16
 0256 E4DE              xcall _write_byte
 0258                   .dbline 177
 0258           ;        write_byte(0x00);
 0258 0027              clr R16
 025A E2DE              xcall _write_byte
 025C                   .dbline 178
 025C           ;        write_byte(0x00);
 025C 0027              clr R16
 025E E0DE              xcall _write_byte
 0260                   .dbline 179
 0260           ;        write_byte(0x00);
 0260 0027              clr R16
 0262 DEDE              xcall _write_byte
 0264                   .dbline 181
 0264           ; //     SET_45IO();
 0264           ;        CLOCK1();
 0264 EFDE              xcall _CLOCK1
 0266                   .dbline 182
 0266           ;        NOP();
 0266 0000              nop
 0268                   .dbline 183
 0268           ;        temp1=read_byte();
 0268 CBDE              xcall _read_byte
 026A 402F              mov R20,R16
 026C                   .dbline 184
 026C           ;        SET_45CS();
 026C 8C98              cbi 0x11,4
 026E                   .dbline 185
 026E           ;        return temp1;
 026E                   .dbline -2
 026E           L53:
 026E 0E940000          xcall pop_gset3
 0272                   .dbline 0 ; func end
 0272 0895              ret
 0274                   .dbsym r byte1 10 i
 0274                   .dbsym r temp1 20 c
 0274                   .dbsym r i 22 i
 0274                   .dbsym r flag 22 c
 0274                   .dbsym r bits 20 i
 0274                   .dbsym r pagenum 10 i
 0274                   .dbend
 0274                   .dbfunc e read_startarry _read_startarry fV
 0274           ;           flag -> R20
 0274           ;              i -> R20,R21
 0274           ;            len -> R22,R23
 0274           ;             pt -> R10,R11
 0274           ;         bitnum -> R12,R13
 0274           ;        pagenum -> R14,R15
                        .even
 0274           _read_startarry::
 0274 0E940000          xcall push_gset5
 0278 6901              movw R12,R18
 027A 7801              movw R14,R16
 027C AA84              ldd R10,y+10
 027E BB84              ldd R11,y+11
 0280 6C85              ldd R22,y+12
 0282 7D85              ldd R23,y+13
 0284                   .dbline -1
 0284                   .dbline 189
 0284           ; }
 0284           ; void read_startarry(unsigned int pagenum,unsigned int bitnum,
 0284           ;                     unsigned char *pt,unsigned int len)
 0284           ; {
 0284 05C0              xjmp L61
 0286           L60:
 0286                   .dbline 193
 0286           ;       unsigned int i;
 0286           ;       unsigned char flag;
 0286           ;       while(1)
 0286           ;        {
 0286                   .dbline 194
 0286           ;        flag=read_status();
 0286 E8DE              xcall _read_status
 0288 402F              mov R20,R16
 028A                   .dbline 195
 028A           ;        if(flag&0x80)
 028A 07FF              sbrs R16,7
 028C 01C0              rjmp L63
 028E                   .dbline 196
 028E           ;        break;
 028E 01C0              xjmp L62
 0290           L63:
 0290                   .dbline 197
 0290           L61:
 0290                   .dbline 192
 0290 FACF              xjmp L60
 0292           L62:
 0292                   .dbline 198
 0292           ;        }
 0292           ;        CLEAR_45CS();
 0292 8C9A              sbi 0x11,4
 0294                   .dbline 199
 0294           ;        SET_45IO();
 0294 8D98              cbi 0x11,5
 0296                   .dbline 200
 0296           ;        CLEAR_45SCK();
 0296 8E9A              sbi 0x11,6
 0298                   .dbline 201
 0298           ;        DELAY();
 0298 D9DE              xcall _DELAY
 029A                   .dbline 202
 029A           ;        write_byte(0x68);
 029A 08E6              ldi R16,104
 029C C1DE              xcall _write_byte
 029E                   .dbline 203
 029E           ;        i=pagenum>>6;
 029E 26E0              ldi R18,6
 02A0 30E0              ldi R19,0
 02A2 8701              movw R16,R14
 02A4 0E940000          xcall lsr16
 02A8                   .dbline 204
 02A8           ;        write_byte((unsigned char)i);
 02A8 BBDE              xcall _write_byte
 02AA                   .dbline 205
 02AA           ;        i=pagenum<<2+bitnum>>8;
 02AA 9601              movw R18,R12
 02AC 2E5F              subi R18,254  ; offset = 2
 02AE 3F4F              sbci R19,255
 02B0 8701              movw R16,R14
 02B2 0E940000          xcall lsl16
 02B6 A801              movw R20,R16
 02B8 452F              mov R20,R21
 02BA 5527              clr R21
 02BC                   .dbline 206
 02BC           ;        write_byte((unsigned char)i);
 02BC 042F              mov R16,R20
 02BE B0DE              xcall _write_byte
 02C0                   .dbline 207
 02C0           ;        write_byte((unsigned char)bitnum);
 02C0 0C2D              mov R16,R12
 02C2 AEDE              xcall _write_byte
 02C4                   .dbline 208
 02C4           ;        write_byte(0x00);
 02C4 0027              clr R16
 02C6 ACDE              xcall _write_byte
 02C8                   .dbline 209
 02C8           ;        write_byte(0x00);
 02C8 0027              clr R16
 02CA AADE              xcall _write_byte
 02CC                   .dbline 210
 02CC           ;        write_byte(0x00);
 02CC 0027              clr R16
 02CE A8DE              xcall _write_byte
 02D0                   .dbline 211
 02D0           ;        write_byte(0x00);
 02D0 0027              clr R16
 02D2 A6DE              xcall _write_byte
 02D4                   .dbline 212
 02D4           ;        CLOCK1();
 02D4 B7DE              xcall _CLOCK1
 02D6                   .dbline 213
 02D6           ;        for(i=0;i<len;i++)
 02D6 4427              clr R20
 02D8 5527              clr R21
 02DA 06C0              xjmp L68
 02DC           L65:
 02DC                   .dbline 214
 02DC 91DE              xcall _read_byte
 02DE F501              movw R30,R10
 02E0 0193              st Z+,R16
 02E2 5F01              movw R10,R30
 02E4           L66:
 02E4                   .dbline 213
 02E4 4F5F              subi R20,255  ; offset = 1
 02E6 5F4F              sbci R21,255
 02E8           L68:
 02E8                   .dbline 213
 02E8 4617              cp R20,R22
 02EA 5707              cpc R21,R23
 02EC B8F3              brlo L65
 02EE                   .dbline 215
 02EE           ;        *pt++=read_byte();
 02EE           ;        SET_45CS();
 02EE 8C98              cbi 0x11,4
 02F0                   .dbline -2
 02F0                   .dbline 216
 02F0           ; }     
 02F0           L59:
 02F0 0E940000          xcall pop_gset5
 02F4                   .dbline 0 ; func end
 02F4 0895              ret
 02F6                   .dbsym r flag 20 c
 02F6                   .dbsym r i 20 i
 02F6                   .dbsym r len 22 i
 02F6                   .dbsym r pt 10 pc
 02F6                   .dbsym r bitnum 12 i
 02F6                   .dbsym r pagenum 14 i
 02F6                   .dbend
 02F6                   .dbfunc e compare_buffer1page _compare_buffer1page fV
 02F6           ;              i -> R20,R21
 02F6           ;           flag -> R20
 02F6           ;        pagenum -> R22,R23
                        .even
 02F6           _compare_buffer1page::
 02F6 0E940000          xcall push_gset2
 02FA B801              movw R22,R16
 02FC                   .dbline -1
 02FC                   .dbline 218
 02FC           ; void compare_buffer1page(unsigned int pagenum)
 02FC           ; {
 02FC 05C0              xjmp L71
 02FE           L70:
 02FE                   .dbline 222
 02FE           ;        unsigned int i;
 02FE           ;        unsigned char flag;
 02FE           ;        while(1)
 02FE           ;        {
 02FE                   .dbline 223
 02FE           ;        flag=read_status();
 02FE ACDE              xcall _read_status
 0300 402F              mov R20,R16
 0302                   .dbline 224
 0302           ;        if(flag&0x80)
 0302 07FF              sbrs R16,7
 0304 01C0              rjmp L73
 0306                   .dbline 225
 0306           ;        break;
 0306 01C0              xjmp L72
 0308           L73:
 0308                   .dbline 226
 0308           L71:
 0308                   .dbline 221
 0308 FACF              xjmp L70
 030A           L72:
 030A                   .dbline 227
 030A           ;        }
 030A           ;        CLEAR_45CS();
 030A 8C9A              sbi 0x11,4
 030C                   .dbline 228
 030C           ;        SET_45IO();
 030C 8D98              cbi 0x11,5
 030E                   .dbline 229
 030E           ;        CLEAR_45SCK();
 030E 8E9A              sbi 0x11,6
 0310                   .dbline 230
 0310           ;        DELAY();
 0310 9DDE              xcall _DELAY
 0312                   .dbline 231
 0312           ;        write_byte(0x60);
 0312 00E6              ldi R16,96
 0314 85DE              xcall _write_byte
 0316                   .dbline 232
 0316           ;        i=pagenum>>6;
 0316 26E0              ldi R18,6
 0318 30E0              ldi R19,0
 031A 8B01              movw R16,R22
 031C 0E940000          xcall lsr16
 0320                   .dbline 233
 0320           ;        write_byte((unsigned char)i);
 0320 7FDE              xcall _write_byte
 0322                   .dbline 234
 0322           ;        i=pagenum<<2;
 0322 AB01              movw R20,R22
 0324 440F              lsl R20
 0326 551F              rol R21
 0328 440F              lsl R20
 032A 551F              rol R21
 032C                   .dbline 235
 032C           ;        write_byte((unsigned char)i);
 032C 042F              mov R16,R20
 032E 78DE              xcall _write_byte
 0330                   .dbline 236
 0330           ;        write_byte(0x00);
 0330 0027              clr R16
 0332 76DE              xcall _write_byte
 0334                   .dbline 237
 0334           ;        SET_45CS();
 0334 8C98              cbi 0x11,4
 0336                   .dbline -2
 0336                   .dbline 238
 0336           ; }                             
 0336           L69:
 0336 0E940000          xcall pop_gset2
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbsym r i 20 i
 033C                   .dbsym r flag 20 c
 033C                   .dbsym r pagenum 22 i
 033C                   .dbend

⌨️ 快捷键说明

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