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

📄 main.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
                        .area vector(rom, abs)
                        .org 72
 0048 0C940D00          jmp _uart0_rx_isr
                        .area text(rom, con, rel)
 001A                   .dbfile F:\yyjapp\yymk\software\main.c
 001A                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 001A           ;            lll -> <dead>
 001A           ;              k -> <dead>
 001A           ;             aa -> <dead>
 001A           ;              s -> R16
                        .even
 001A           _uart0_rx_isr::
 001A 2A92              st -y,R2
 001C 3A92              st -y,R3
 001E 0A93              st -y,R16
 0020 8A93              st -y,R24
 0022 9A93              st -y,R25
 0024 EA93              st -y,R30
 0026 FA93              st -y,R31
 0028 2FB6              in R2,0x3f
 002A 2A92              st -y,R2
 002C                   .dbline -1
 002C                   .dbline 111
 002C           ; }
 002C           ; 
 002C           ; #pragma interrupt_handler uart0_rx_isr:19
 002C           ; void uart0_rx_isr(void)
 002C           ; {
 002C                   .dbline 116
 002C           ;        unsigned char s;
 002C           ;        unsigned char aa;
 002C           ;        unsigned int k;
 002C           ;        unsigned char lll;
 002C           ;        CLI();
 002C F894              cli
 002E                   .dbline 117
 002E           ;      s = UDR0;
 002E 0CB1              in R16,0xc
 0030                   .dbline 118
 0030           ;        if((RxHead0==0)&&(s!=2))
 0030 2090D500          lds R2,_RxHead0
 0034 2220              tst R2
 0036 71F4              brne L3
 0038 0230              cpi R16,2
 003A 61F0              breq L3
 003C                   .dbline 119
 003C           ;        {
 003C                   .dbline 120
 003C           ;                       sio_flag=0;
 003C 2224              clr R2
 003E 20927700          sts _sio_flag,R2
 0042                   .dbline 121
 0042           ;                       RxHead0=0;
 0042 2092D500          sts _RxHead0,R2
 0046                   .dbline 122
 0046           ;                       commtimer=0;
 0046 3324              clr R3
 0048 30920100          sts _commtimer+1,R3
 004C 20920000          sts _commtimer,R2
 0050                   .dbline 123
 0050           ;                       SEI();
 0050 7894              sei
 0052                   .dbline 124
 0052           ;                       return;
 0052 24C0              xjmp L2
 0054           L3:
 0054                   .dbline 126
 0054           ;        } 
 0054           ;      RX_BUF0[RxHead0++] = s;          /* store received data in buffer */
 0054 2090D500          lds R2,_RxHead0
 0058 3324              clr R3
 005A 822D              mov R24,R2
 005C 8F5F              subi R24,255    ; addi 1
 005E 8093D500          sts _RxHead0,R24
 0062 80E0              ldi R24,<_RX_BUF0
 0064 90E0              ldi R25,>_RX_BUF0
 0066 E22D              mov R30,R2
 0068 FF27              clr R31
 006A E80F              add R30,R24
 006C F91F              adc R31,R25
 006E 0083              std z+0,R16
 0070                   .dbline 127
 0070           ;        if(RxHead0==3)
 0070 8091D500          lds R24,_RxHead0
 0074 8330              cpi R24,3
 0076 89F4              brne L5
 0078                   .dbline 128
 0078           ;        {
 0078                   .dbline 129
 0078           ;               if(s==0x03)
 0078 0330              cpi R16,3
 007A 41F4              brne L7
 007C                   .dbline 130
 007C           ;               {
 007C                   .dbline 131
 007C           ;                       sio_flag = 1;
 007C 81E0              ldi R24,1
 007E 80937700          sts _sio_flag,R24
 0082                   .dbline 132
 0082           ;               RxHead0=0;
 0082 2224              clr R2
 0084 2092D500          sts _RxHead0,R2
 0088                   .dbline 133
 0088           ;                       SEI();
 0088 7894              sei
 008A                   .dbline 134
 008A           ;                       return;
 008A 08C0              xjmp L2
 008C           L7:
 008C                   .dbline 137
 008C           ;               }
 008C           ;               else
 008C           ;               {
 008C                   .dbline 138
 008C           ;                       sio_flag=0;
 008C 2224              clr R2
 008E 20927700          sts _sio_flag,R2
 0092                   .dbline 139
 0092           ;                       RxHead0=0;
 0092 2092D500          sts _RxHead0,R2
 0096                   .dbline 140
 0096           ;                       SEI();
 0096 7894              sei
 0098                   .dbline 141
 0098           ;                       return;
 0098 01C0              xjmp L2
 009A           L5:
 009A                   .dbline 144
 009A           ;               }
 009A           ;        }
 009A           ;   SEI();
 009A 7894              sei
 009C                   .dbline -2
 009C           L2:
 009C 2990              ld R2,y+
 009E 2FBE              out 0x3f,R2
 00A0 F991              ld R31,y+
 00A2 E991              ld R30,y+
 00A4 9991              ld R25,y+
 00A6 8991              ld R24,y+
 00A8 0991              ld R16,y+
 00AA 3990              ld R3,y+
 00AC 2990              ld R2,y+
 00AE                   .dbline 0 ; func end
 00AE 1895              reti
 00B0                   .dbsym l lll 1 c
 00B0                   .dbsym l k 1 i
 00B0                   .dbsym l aa 1 c
 00B0                   .dbsym r s 16 c
 00B0                   .dbend
 00B0                   .dbfunc e TransmitByte0 _TransmitByte0 fV
 00B0           ;             ct -> R20
 00B0           ;            len -> R18
 00B0           ;           data -> R16,R17
                        .even
 00B0           _TransmitByte0::
 00B0 0E940000          xcall push_gset1
 00B4                   .dbline -1
 00B4                   .dbline 148
 00B4           ;         
 00B4           ; }
 00B4           ; void TransmitByte0( unsigned char *data,unsigned char len )
 00B4           ; {
 00B4           L10:
 00B4                   .dbline 150
 00B4           L11:
 00B4                   .dbline 150
 00B4           ;        unsigned char ct;
 00B4           ;      while (!(UCSR0A & (1<<UDRE0)));
 00B4 5D9B              sbis 0xb,5
 00B6 FECF              rjmp L10
 00B8                   .dbline 151
 00B8           ;        UDR0=0xfe;
 00B8 8EEF              ldi R24,254
 00BA 8CB9              out 0xc,R24
 00BC                   .dbline 152
 00BC           ;       for (ct=0;ct<len;ct++)
 00BC 4427              clr R20
 00BE 07C0              xjmp L16
 00C0           X0:
 00C0                   .dbline 153
 00C0           ;      {
 00C0           L17:
 00C0                   .dbline 154
 00C0           L18:
 00C0                   .dbline 154
 00C0 5D9B              sbis 0xb,5
 00C2 FECF              rjmp L17
 00C4                   .dbline 155
 00C4 F801              movw R30,R16
 00C6 2190              ld R2,Z+
 00C8 8F01              movw R16,R30
 00CA 2CB8              out 0xc,R2
 00CC                   .dbline 156
 00CC           L14:
 00CC                   .dbline 152
 00CC 4395              inc R20
 00CE           L16:
 00CE                   .dbline 152
 00CE 4217              cp R20,R18
 00D0 B8F3              brlo L18
 00D2                   .dbline -2
 00D2           L9:
 00D2 0E940000          xcall pop_gset1
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbsym r ct 20 c
 00D8                   .dbsym r len 18 c
 00D8                   .dbsym r data 16 pc
 00D8                   .dbend
 00D8                   .dbfunc e TransmitByte1 _TransmitByte1 fV
 00D8           ;             ct -> R20
 00D8           ;            len -> R18
 00D8           ;           data -> R16,R17
                        .even
 00D8           _TransmitByte1::
 00D8 0E940000          xcall push_gset1
 00DC                   .dbline -1
 00DC                   .dbline 159
 00DC           ;          while (!(UCSR0A & (1<<UDRE0)));
 00DC           ;        UDR0 = *data++;
 00DC           ;      }           
 00DC           ; }
 00DC           ; void TransmitByte1(unsigned char *data,unsigned char len )
 00DC           ; {
 00DC                   .dbline 162
 00DC           ;       unsigned char ct;
 00DC           ;  //    while (!(UCSR0A & (1<<UDRE0)));
 00DC           ;      for (ct=0;ct<len;ct++)
 00DC 4427              clr R20
 00DE 07C0              xjmp L24
 00E0           X1:
 00E0                   .dbline 163
 00E0           ;      {
 00E0           L25:
 00E0                   .dbline 164
 00E0           L26:
 00E0                   .dbline 164
 00E0 5D9B              sbis 0xb,5
 00E2 FECF              rjmp L25
 00E4                   .dbline 165
 00E4 F801              movw R30,R16
 00E6 2190              ld R2,Z+
 00E8 8F01              movw R16,R30
 00EA 2CB8              out 0xc,R2
 00EC                   .dbline 166
 00EC           L22:
 00EC                   .dbline 162
 00EC 4395              inc R20
 00EE           L24:
 00EE                   .dbline 162
 00EE 4217              cp R20,R18
 00F0 B8F3              brlo L26
 00F2                   .dbline -2
 00F2           L20:
 00F2 0E940000          xcall pop_gset1
 00F6                   .dbline 0 ; func end
 00F6 0895              ret
 00F8                   .dbsym r ct 20 c
 00F8                   .dbsym r len 18 c
 00F8                   .dbsym r data 16 pc
 00F8                   .dbend
 00F8                   .dbfunc e TransmitByte_1 _TransmitByte_1 fV
 00F8           ;             ct -> R20
 00F8           ;            len -> R18
 00F8           ;           data -> R16,R17
                        .even
 00F8           _TransmitByte_1::
 00F8 0E940000          xcall push_gset1
 00FC                   .dbline -1
 00FC                   .dbline 169
 00FC           ;          while (!(UCSR0A & (1<<UDRE0)));
 00FC           ;        UDR0 = *data++;
 00FC           ;      }           
 00FC           ; }
 00FC           ; void TransmitByte_1(unsigned char *data,unsigned char len )
 00FC           ; {
 00FC                   .dbline 172
 00FC           ;       unsigned char ct;
 00FC           ;  //    while (!(UCSR0A & (1<<UDRE0)));
 00FC           ;      for (ct=0;ct<len;ct++)
 00FC 4427              clr R20
 00FE 0AC0              xjmp L32
 0100           X2:
 0100                   .dbline 173
 0100           ;      {
 0100           L33:
 0100                   .dbline 174
 0100           L34:
 0100                   .dbline 174
 0100 20909B00          lds R2,155
 0104 25FE              sbrs R2,5
 0106 FCCF              rjmp L33
 0108                   .dbline 175
 0108 F801              movw R30,R16
 010A 2190              ld R2,Z+
 010C 8F01              movw R16,R30
 010E 20929C00          sts 156,R2
 0112                   .dbline 176
 0112           L30:
 0112                   .dbline 172
 0112 4395              inc R20
 0114           L32:
 0114                   .dbline 172
 0114 4217              cp R20,R18
 0116 A0F3              brlo L34
 0118                   .dbline -2
 0118           L28:
 0118 0E940000          xcall pop_gset1
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbsym r ct 20 c
 011E                   .dbsym r len 18 c
 011E                   .dbsym r data 16 pc
 011E                   .dbend
 011E                   .dbfunc e init_par _init_par fV
 011E           ;             tt -> R20
 011E           ;             ll -> R20
 011E           ;              i -> R20
                        .even
 011E           _init_par::

⌨️ 快捷键说明

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