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

📄 24c01.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C8 4395              inc R20
 00CA           L61:
 00CA                   .dbline 84
 00CA           ; //            SET_SCL();
 00CA           ;               for(i=0;i<10;i++);
 00CA 4A30              cpi R20,10
 00CC E8F3              brlo L58
 00CE                   .dbline 85
 00CE           ;               if((PIND&0x02)==0x02)                                                           /* if Sda=1;*/
 00CE 80B3              in R24,0x10
 00D0 8270              andi R24,2
 00D2 8230              cpi R24,2
 00D4 09F4              brne L62
 00D6                   .dbline 86
 00D6           ;                       temp=temp|0x01; 
 00D6 2160              ori R18,1
 00D8           L62:
 00D8                   .dbline 87
 00D8           L51:
 00D8                   .dbline 78
 00D8 0395              inc R16
 00DA           L53:
 00DA                   .dbline 78
 00DA 0830              cpi R16,8
 00DC 68F3              brlo L50
 00DE                   .dbline 88
 00DE           ;       }
 00DE           ;       return temp;
 00DE 022F              mov R16,R18
 00E0                   .dbline -2
 00E0           L49:
 00E0 0E940000          xcall pop_gset1
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r j 16 c
 00E6                   .dbsym r temp 18 c
 00E6                   .dbsym r i 20 c
 00E6                   .dbend
 00E6                   .dbfunc e WrToROM _WrToROM fV
 00E6           ;              i -> R20
 00E6           ;            Num -> R22
 00E6           ;        Address -> y+6
 00E6           ;           Data -> R10,R11
                        .even
 00E6           _WrToROM::
 00E6 3A93              st -y,r19
 00E8 2A93              st -y,r18
 00EA 0E940000          xcall push_gset3
 00EE 5801              movw R10,R16
 00F0 6885              ldd R22,y+8
 00F2                   .dbline -1
 00F2                   .dbline 91
 00F2           ; }
 00F2           ; void WrToROM(unsigned char *Data,unsigned int Address,unsigned char Num)
 00F2           ; {
 00F2                   .dbline 93
 00F2           ;                       unsigned char i;
 00F2           ;                       Start();                                                        /* send start signed*/
 00F2 9EDF              xcall _Start
 00F4                   .dbline 94
 00F4           ;                       Send(0xa0);                                             /* send SLA+W*/
 00F4 00EA              ldi R16,160
 00F6 C4DF              xcall _Send
 00F8                   .dbline 95
 00F8           ;                       Ack();
 00F8 B5DF              xcall _Ack
 00FA                   .dbline 96
 00FA           ;                       Send(*((unsigned char *)&Address+1));                                   /* send address*/
 00FA 0F81              ldd R16,y+7
 00FC C1DF              xcall _Send
 00FE                   .dbline 97
 00FE           ;                       Ack();
 00FE B2DF              xcall _Ack
 0100                   .dbline 98
 0100           ;                       Send(*((unsigned char *)&Address)); 
 0100 FE01              movw R30,R28
 0102 0681              ldd R16,z+6
 0104 BDDF              xcall _Send
 0106                   .dbline 99
 0106           ;                       Ack();
 0106 AEDF              xcall _Ack
 0108                   .dbline 100
 0108           ;                       for(i=0;i<Num;i++)
 0108 4427              clr R20
 010A 08C0              xjmp L69
 010C           L66:
 010C                   .dbline 101
 010C                   .dbline 102
 010C E42F              mov R30,R20
 010E FF27              clr R31
 0110 EA0D              add R30,R10
 0112 FB1D              adc R31,R11
 0114 0081              ldd R16,z+0
 0116 B4DF              xcall _Send
 0118                   .dbline 103
 0118 A5DF              xcall _Ack
 011A                   .dbline 104
 011A           L67:
 011A                   .dbline 100
 011A 4395              inc R20
 011C           L69:
 011C                   .dbline 100
 011C 4617              cp R20,R22
 011E B0F3              brlo L66
 0120                   .dbline 105
 0120           ;                       {
 0120           ;                               Send(*(Data+i));
 0120           ;                               Ack();
 0120           ;                       }
 0120           ;                       Stop();
 0120 94DF              xcall _Stop
 0122                   .dbline 106
 0122           ;                       mDelay(10);
 0122 0AE0              ldi R16,10
 0124 6DDF              xcall _mDelay
 0126                   .dbline -2
 0126           L64:
 0126 0E940000          xcall pop_gset3
 012A 2296              adiw R28,2
 012C                   .dbline 0 ; func end
 012C 0895              ret
 012E                   .dbsym r i 20 c
 012E                   .dbsym r Num 22 c
 012E                   .dbsym l Address 6 i
 012E                   .dbsym r Data 10 pc
 012E                   .dbend
 012E                   .dbfunc e RdFromROM _RdFromROM fV
 012E           ;              i -> R20
 012E           ;            Num -> R22
 012E           ;        Address -> y+6
 012E           ;           Data -> R10,R11
                        .even
 012E           _RdFromROM::
 012E 3A93              st -y,r19
 0130 2A93              st -y,r18
 0132 0E940000          xcall push_gset3
 0136 5801              movw R10,R16
 0138 6885              ldd R22,y+8
 013A                   .dbline -1
 013A                   .dbline 110
 013A           ;               
 013A           ; }
 013A           ; void RdFromROM(unsigned char *Data,unsigned int Address,unsigned char Num)
 013A           ; {
 013A                   .dbline 114
 013A           ;       unsigned char i;
 013A           ; //    unsigned char *PData;
 013A           ; //    PData=Data;
 013A           ;       for(i=0;i<Num;i++)
 013A 4427              clr R20
 013C 1DC0              xjmp L74
 013E           L71:
 013E                   .dbline 115
 013E                   .dbline 116
 013E 78DF              xcall _Start
 0140                   .dbline 117
 0140 00EA              ldi R16,160
 0142 9EDF              xcall _Send
 0144                   .dbline 118
 0144 8FDF              xcall _Ack
 0146                   .dbline 119
 0146 0F81              ldd R16,y+7
 0148 9BDF              xcall _Send
 014A                   .dbline 120
 014A 8CDF              xcall _Ack
 014C                   .dbline 121
 014C FE01              movw R30,R28
 014E 0681              ldd R16,z+6
 0150 97DF              xcall _Send
 0152                   .dbline 122
 0152 88DF              xcall _Ack
 0154                   .dbline 123
 0154 6DDF              xcall _Start
 0156                   .dbline 124
 0156 01EA              ldi R16,161
 0158 93DF              xcall _Send
 015A                   .dbline 125
 015A 84DF              xcall _Ack
 015C                   .dbline 126
 015C A8DF              xcall _Read
 015E E42F              mov R30,R20
 0160 FF27              clr R31
 0162 EA0D              add R30,R10
 0164 FB1D              adc R31,R11
 0166 0083              std z+0,R16
 0168                   .dbline 128
 0168 84DF              xcall _NoAck
 016A                   .dbline 129
 016A 6FDF              xcall _Stop
 016C                   .dbline 130
 016C 8E81              ldd R24,y+6
 016E 9F81              ldd R25,y+7
 0170 0196              adiw R24,1
 0172 9F83              std y+7,R25
 0174 8E83              std y+6,R24
 0176                   .dbline 131
 0176           L72:
 0176                   .dbline 114
 0176 4395              inc R20
 0178           L74:
 0178                   .dbline 114
 0178 4617              cp R20,R22
 017A 08F3              brlo L71
 017C                   .dbline -2
 017C           L70:
 017C 0E940000          xcall pop_gset3
 0180 2296              adiw R28,2
 0182                   .dbline 0 ; func end
 0182 0895              ret
 0184                   .dbsym r i 20 c
 0184                   .dbsym r Num 22 c
 0184                   .dbsym l Address 6 i
 0184                   .dbsym r Data 10 pc
 0184                   .dbend
 0184                   .dbfunc e write_byte01 _write_byte01 fV
 0184           ;           data -> y+2
 0184           ;        Address -> y+0
                        .even
 0184           _write_byte01::
 0184 0E940000          xcall push_arg4
 0188                   .dbline -1
 0188                   .dbline 135
 0188           ;               {
 0188           ;                       Start();
 0188           ;                       Send(0xa0);
 0188           ;                       Ack();
 0188           ;                       Send(*((unsigned char *)&Address+1));
 0188           ;                       Ack();
 0188           ;                       Send(*((unsigned char *)&Address)); 
 0188           ;                       Ack();
 0188           ;                       Start();
 0188           ;                       Send(0xa1);
 0188           ;                       Ack();
 0188           ;                       *(Data+i)=Read();
 0188           ; //                    CLEAR_SCL();
 0188           ;                       NoAck();
 0188           ;                       Stop();
 0188           ;                       Address++;
 0188           ;               }
 0188           ; }
 0188           ; 
 0188           ; void write_byte01(unsigned int Address,unsigned char data)
 0188           ; {
 0188                   .dbline 136
 0188           ;                       Start();                                                        /* send start signed*/
 0188 53DF              xcall _Start
 018A                   .dbline 137
 018A           ;                       Send(0xa0);                                             /* send SLA+W*/
 018A 00EA              ldi R16,160
 018C 79DF              xcall _Send
 018E                   .dbline 138
 018E           ;                       Ack();
 018E 6ADF              xcall _Ack
 0190                   .dbline 139
 0190           ;                       Send(*((unsigned char *)&Address+1));                                   /* send address*/
 0190 0981              ldd R16,y+1
 0192 76DF              xcall _Send
 0194                   .dbline 140
 0194           ;                       Ack();
 0194 67DF              xcall _Ack
 0196                   .dbline 141
 0196           ;                       Send(*((unsigned char *)&Address)); 
 0196 FE01              movw R30,R28
 0198 0081              ldd R16,z+0
 019A 72DF              xcall _Send
 019C                   .dbline 142
 019C           ;                       Ack();
 019C 63DF              xcall _Ack
 019E                   .dbline 143
 019E           ;                       Send(data);
 019E 0A81              ldd R16,y+2
 01A0 6FDF              xcall _Send
 01A2                   .dbline 144
 01A2           ;                       Ack();
 01A2 60DF              xcall _Ack
 01A4                   .dbline 145
 01A4           ;                       Stop();
 01A4 52DF              xcall _Stop
 01A6                   .dbline 146
 01A6           ;                       mDelay(30);
 01A6 0EE1              ldi R16,30
 01A8 2BDF              xcall _mDelay
 01AA                   .dbline -2
 01AA           L76:
 01AA 2496              adiw R28,4
 01AC                   .dbline 0 ; func end
 01AC 0895              ret
 01AE                   .dbsym l data 2 c
 01AE                   .dbsym l Address 0 i
 01AE                   .dbend
 01AE                   .dbfunc e read_byte01 _read_byte01 fc
 01AE           ;           temp -> R20
 01AE           ;        Address -> y+2
                        .even
 01AE           _read_byte01::
 01AE 1A93              st -y,r17
 01B0 0A93              st -y,r16
 01B2 0E940000          xcall push_gset1
 01B6                   .dbline -1
 01B6                   .dbline 150
 01B6           ;               
 01B6           ; }
 01B6           ; unsigned char read_byte01(unsigned int Address)
 01B6           ; {
 01B6                   .dbline 152
 01B6           ;       unsigned char temp;
 01B6           ;       Start();
 01B6 3CDF              xcall _Start
 01B8                   .dbline 153
 01B8           ;       Send(0xa0);
 01B8 00EA              ldi R16,160
 01BA 62DF              xcall _Send
 01BC                   .dbline 154
 01BC           ;       Ack();
 01BC 53DF              xcall _Ack
 01BE                   .dbline 155
 01BE           ;       Send(*((unsigned char *)&Address+1));
 01BE 0B81              ldd R16,y+3
 01C0 5FDF              xcall _Send
 01C2                   .dbline 156
 01C2           ;       Ack();
 01C2 50DF              xcall _Ack
 01C4                   .dbline 157
 01C4           ;       Send(*((unsigned char *)&Address)); 
 01C4 FE01              movw R30,R28
 01C6 0281              ldd R16,z+2
 01C8 5BDF              xcall _Send
 01CA                   .dbline 158
 01CA           ;       Ack();
 01CA 4CDF              xcall _Ack
 01CC                   .dbline 159
 01CC           ;       Start();
 01CC 31DF              xcall _Start
 01CE                   .dbline 160
 01CE           ;       Send(0xa1);
 01CE 01EA              ldi R16,161
 01D0 57DF              xcall _Send
 01D2                   .dbline 161
 01D2           ;       Ack();
 01D2 48DF              xcall _Ack
 01D4                   .dbline 162
 01D4           ;       temp=Read();
 01D4 6CDF              xcall _Read
 01D6 402F              mov R20,R16
 01D8                   .dbline 164
 01D8           ; //    CLEAR_SCL();
 01D8           ;       NoAck();
 01D8 4CDF              xcall _NoAck
 01DA                   .dbline 165
 01DA           ;       Stop();
 01DA 37DF              xcall _Stop
 01DC                   .dbline 166
 01DC           ;       return temp;
 01DC 042F              mov R16,R20
 01DE                   .dbline -2
 01DE           L78:
 01DE 0E940000          xcall pop_gset1
 01E2 2296              adiw R28,2
 01E4                   .dbline 0 ; func end
 01E4 0895              ret
 01E6                   .dbsym r temp 20 c
 01E6                   .dbsym l Address 2 i
 01E6                   .dbend

⌨️ 快捷键说明

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