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

📄 main.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 011E 0E940000          xcall push_gset1
 0122                   .dbline -1
 0122                   .dbline 179
 0122           ;          while (!(UCSR1A & (1<<UDRE1)));
 0122           ;        UDR1 = *data++;
 0122           ;      }           
 0122           ; }
 0122           ; void init_par(void)
 0122           ; {
 0122                   .dbline 181
 0122           ;          unsigned char ll,i,tt;
 0122           ;          CLEAR_CLK();
 0122 149A              sbi 0x2,4
 0124                   .dbline 182
 0124           ;          CLEAR_RST();
 0124 169A              sbi 0x2,6
 0126                   .dbline 183
 0126           ;          ll=EEPROMread(DS1302_FLAG);
 0126 01E0              ldi R16,1
 0128 10E0              ldi R17,0
 012A 0E940000          xcall _EEPROMread
 012E 402F              mov R20,R16
 0130                   .dbline 184
 0130           ;          if(ll==0xFF)
 0130 0F3F              cpi R16,255
 0132 F9F4              brne L37
 0134                   .dbline 185
 0134           ;          {
 0134                   .dbline 186
 0134           ;                       time_data[0]=0x48;
 0134 88E4              ldi R24,72
 0136 8093E000          sts _time_data,R24
 013A                   .dbline 187
 013A           ;                       time_data[1]=0x34;
 013A 84E3              ldi R24,52
 013C 8093E100          sts _time_data+1,R24
 0140                   .dbline 188
 0140           ;                       time_data[2]=0x15;
 0140 85E1              ldi R24,21
 0142 8093E200          sts _time_data+2,R24
 0146                   .dbline 189
 0146           ;                       time_data[3]=0x02;
 0146 82E0              ldi R24,2
 0148 8093E300          sts _time_data+3,R24
 014C                   .dbline 190
 014C           ;                       time_data[4]=0x03;
 014C 83E0              ldi R24,3
 014E 8093E400          sts _time_data+4,R24
 0152                   .dbline 191
 0152           ;                       time_data[5]=0x07;
 0152 87E0              ldi R24,7
 0154 8093E500          sts _time_data+5,R24
 0158                   .dbline 192
 0158           ;                       time_data[6]=0x08;
 0158 88E0              ldi R24,8
 015A 8093E600          sts _time_data+6,R24
 015E                   .dbline 193
 015E           ;                       Set_1302(time_data);
 015E 00E0              ldi R16,<_time_data
 0160 10E0              ldi R17,>_time_data
 0162 0E940000          xcall _Set_1302
 0166                   .dbline 194
 0166           ;                       EEPROMwrite(DS1302_FLAG,0x05);
 0166 25E0              ldi R18,5
 0168 01E0              ldi R16,1
 016A 10E0              ldi R17,0
 016C 0E940000          xcall _EEPROMwrite
 0170                   .dbline 195
 0170           ;          }
 0170 04C0              xjmp L38
 0172           L37:
 0172                   .dbline 197
 0172           ;          else
 0172           ;          W_1302(0x80,0x00);
 0172 2227              clr R18
 0174 00E8              ldi R16,128
 0176 0E940000          xcall _W_1302
 017A           L38:
 017A                   .dbline 198
 017A           ;          Set_charge();
 017A 0E940000          xcall _Set_charge
 017E                   .dbline 199
 017E           ;          tt=EEPROMread(EVEN_FLAG);
 017E 03E0              ldi R16,3
 0180 10E0              ldi R17,0
 0182 0E940000          xcall _EEPROMread
 0186 402F              mov R20,R16
 0188                   .dbline 200
 0188           ;          if(tt==0xff)
 0188 0F3F              cpi R16,255
 018A 89F4              brne L45
 018C                   .dbline 201
 018C           ;          {
 018C                   .dbline 202
 018C           ;                       for(i=0;i<16;i++)
 018C 4427              clr R20
 018E 08C0              xjmp L50
 0190           L47:
 0190                   .dbline 203
 0190 21E0              ldi R18,1
 0192 042F              mov R16,R20
 0194 1127              clr R17
 0196 0050              subi R16,0  ; offset = 512
 0198 1E4F              sbci R17,254
 019A 0E940000          xcall _EEPROMwrite
 019E           L48:
 019E                   .dbline 202
 019E 4395              inc R20
 01A0           L50:
 01A0                   .dbline 202
 01A0 4031              cpi R20,16
 01A2 B0F3              brlo L47
 01A4                   .dbline 206
 01A4           ;                       EEPROMwrite(0x200+i,0x01);
 01A4           ; //                    for(i=3;i<8;i++)
 01A4           ; //                    EEPROMwrite(0x100+i,0x01);
 01A4           ;                       EEPROMwrite(EVEN_FLAG,0xaa);
 01A4 2AEA              ldi R18,170
 01A6 03E0              ldi R16,3
 01A8 10E0              ldi R17,0
 01AA 0E940000          xcall _EEPROMwrite
 01AE                   .dbline 207
 01AE           ;          }
 01AE           L45:
 01AE                   .dbline 208
 01AE           L46:
 01AE                   .dbline -2
 01AE           L36:
 01AE 0E940000          xcall pop_gset1
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
 01B4                   .dbsym r tt 20 c
 01B4                   .dbsym r ll 20 c
 01B4                   .dbsym r i 20 c
 01B4                   .dbend
 01B4                   .dbfunc e timer1_init _timer1_init fV
                        .even
 01B4           _timer1_init::
 01B4                   .dbline -1
 01B4                   .dbline 212
 01B4           ;          else ;
 01B4           ;          
 01B4           ; }
 01B4           ; void timer1_init(void)
 01B4           ; {
 01B4                   .dbline 213
 01B4           ;        TCCR1B = 0x00; //stop
 01B4 2224              clr R2
 01B6 2EBC              out 0x2e,R2
 01B8                   .dbline 214
 01B8           ;        TCNT1H = 0xFD; //setup
 01B8 8DEF              ldi R24,253
 01BA 8DBD              out 0x2d,R24
 01BC                   .dbline 215
 01BC           ;        TCNT1L = 0xE5;
 01BC 85EE              ldi R24,229
 01BE 8CBD              out 0x2c,R24
 01C0                   .dbline 216
 01C0           ;        TCCR1A = 0x00;
 01C0 2FBC              out 0x2f,R2
 01C2                   .dbline 217
 01C2           ;        TCCR1B = 0x05; //start Timer
 01C2 85E0              ldi R24,5
 01C4 8EBD              out 0x2e,R24
 01C6                   .dbline -2
 01C6           L51:
 01C6                   .dbline 0 ; func end
 01C6 0895              ret
 01C8                   .dbend
 01C8                   .dbfunc e timer0_init _timer0_init fV
                        .even
 01C8           _timer0_init::
 01C8                   .dbline -1
 01C8                   .dbline 220
 01C8           ; }
 01C8           ; void timer0_init(void)   //1ms
 01C8           ; {
 01C8                   .dbline 221
 01C8           ;        TCCR0 = 0x00; //stop
 01C8 2224              clr R2
 01CA 23BE              out 0x33,R2
 01CC                   .dbline 223
 01CC           ; //     ASSR  = 0x00; //set async mode
 01CC           ;        TCNT0 = 0x54; //set count
 01CC 84E5              ldi R24,84
 01CE 82BF              out 0x32,R24
 01D0                   .dbline 225
 01D0           ; //     OCR0  = 0xAC;
 01D0           ;        TCCR0 = 0x04; //start timer
 01D0 84E0              ldi R24,4
 01D2 83BF              out 0x33,R24
 01D4                   .dbline -2
 01D4           L52:
 01D4                   .dbline 0 ; func end
 01D4 0895              ret
 01D6                   .dbend
                        .area vector(rom, abs)
                        .org 64
 0040 0C94EB00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 01D6                   .dbfile F:\yyjapp\yymk\software\main.c
 01D6                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 01D6           _timer0_ovf_isr::
 01D6 2A92              st -y,R2
 01D8 3A92              st -y,R3
 01DA 8A93              st -y,R24
 01DC 9A93              st -y,R25
 01DE 2FB6              in R2,0x3f
 01E0 2A92              st -y,R2
 01E2                   .dbline -1
 01E2                   .dbline 230
 01E2                   .dbline 232
 01E2 84E5              ldi R24,84
 01E4 82BF              out 0x32,R24
 01E6                   .dbline 233
 01E6 80910000          lds R24,_commtimer
 01EA 90910100          lds R25,_commtimer+1
 01EE 0196              adiw R24,1
 01F0 90930100          sts _commtimer+1,R25
 01F4 80930000          sts _commtimer,R24
 01F8                   .dbline 234
 01F8 8EE9              ldi R24,1950
 01FA 97E0              ldi R25,7
 01FC 20900000          lds R2,_commtimer
 0200 30900100          lds R3,_commtimer+1
 0204 8215              cp R24,R2
 0206 9305              cpc R25,R3
 0208 30F4              brsh L54
 020A                   .dbline 235
 020A                   .dbline 236
 020A 2224              clr R2
 020C 3324              clr R3
 020E 30920100          sts _commtimer+1,R3
 0212 20920000          sts _commtimer,R2
 0216                   .dbline 238
 0216           L54:
 0216                   .dbline -2
 0216           L53:
 0216 2990              ld R2,y+
 0218 2FBE              out 0x3f,R2
 021A 9991              ld R25,y+
 021C 8991              ld R24,y+
 021E 3990              ld R3,y+
 0220 2990              ld R2,y+
 0222                   .dbline 0 ; func end
 0222 1895              reti
 0224                   .dbend
 0224                   .dbfunc e beep _beep fV
 0224           ;         second -> R16
                        .even
 0224           _beep::
 0224                   .dbline -1
 0224                   .dbline 241
 0224           ; }
 0224           ; 
 0224           ; #pragma interrupt_handler timer0_ovf_isr:17
 0224           ; void timer0_ovf_isr(void)
 0224           ; {
 0224           ; //     unsigned char oop;
 0224           ;        TCNT0 = 0x54;                 //1ms
 0224           ;        commtimer++;
 0224           ;        if(commtimer>1950)
 0224           ;        {
 0224           ;               commtimer=0;
 0224           ; //            WDR();
 0224           ;        }
 0224           ; }
 0224           ; void beep(unsigned char second)
 0224           ; {
 0224                   .dbline 242
 0224           ;        beep_second=second;
 0224 00930500          sts _beep_second,R16
 0228                   .dbline 243
 0228           ;        beep_flag=1;
 0228 81E0              ldi R24,1
 022A 80930600          sts _beep_flag,R24
 022E                   .dbline 244
 022E           ;        CLEAR_BELL();
 022E BD9A              sbi 0x17,5
 0230                   .dbline 245
 0230           ;        CLEAR_LED0();
 0230 8F9A              sbi 0x11,7
 0232                   .dbline 246
 0232           ;        timer=0;
 0232 2224              clr R2
 0234 3324              clr R3
 0236 30920400          sts _timer+1,R3
 023A 20920300          sts _timer,R2
 023E                   .dbline -2
 023E           L56:
 023E                   .dbline 0 ; func end
 023E 0895              ret
 0240                   .dbsym r second 16 c
 0240                   .dbend
 0240                   .dbfunc e COMM_RX _COMM_RX fV
                        .even
 0240           _COMM_RX::
 0240 0E940000          xcall push_gset1
 0244                   .dbline -1
 0244                   .dbline 249
 0244           ; }
 0244           ; void COMM_RX(void)
 0244           ; {
 0244                   .dbline 250
 0244           ;               RxHead0=0;
 0244 2224              clr R2
 0246 2092D500          sts _RxHead0,R2
 024A                   .dbline 252
 024A           ;               
 024A           ;               sio_flag=0;
 024A 20927700          sts _sio_flag,R2
 024E                   .dbline 254
 024E           ; //            CLEAR_LED0();
 024E           ;               switch(RX_BUF0[1])
 024E 40910900          lds R20,_RX_BUF0+1
 0252 5527              clr R21
 0254 4232              cpi R20,34
 0256 E0E0              ldi R30,0
 0258 5E07              cpc R21,R30
 025A 89F0              breq L63
 025C 82E2              ldi R24,34
 025E 90E0              ldi R25,0
 0260 8417              cp R24,R20

⌨️ 快捷键说明

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