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

📄 24c01.lis

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module _24c01.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\yyjapp\yymk\software\24c01.c
 0000                   .dbfunc e mDelay _mDelay fV
 0000           ;             ll -> R20,R21
 0000           ;              i -> R22,R23
 0000           ;              j -> R16
                        .even
 0000           _mDelay::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 7
 0004           ; #include <f:\yyjapp\yymk\software\main.h>
 0004           ; #include <f:\yyjapp\yymk\software\24c01.h>
 0004           ; #include <iom128v.h>
 0004           ; #include <macros.h>   /* hardware write protect*/
 0004           ; 
 0004           ; void mDelay(unsigned char j)
 0004           ; { 
 0004                   .dbline 9
 0004           ;       unsigned int i,ll;
 0004           ;       for(ll=0;ll<j;ll++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 10
 000A           ;               { 
 000A                   .dbline 11
 000A           ;                       for(i=0;i<125;i--)
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 12
 0010                   .dbline 12
 0010                   .dbline 12
 0010           L7:
 0010                   .dbline 11
 0010 6150              subi R22,1
 0012 7040              sbci R23,0
 0014           L9:
 0014                   .dbline 11
 0014 6D37              cpi R22,125
 0016 E0E0              ldi R30,0
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C                   .dbline 13
 001C           L3:
 001C                   .dbline 9
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 9
 0020 202E              mov R2,R16
 0022 3324              clr R3
 0024 4215              cp R20,R2
 0026 5305              cpc R21,R3
 0028 80F3              brlo L2
 002A                   .dbline -2
 002A           L1:
 002A 0E940000          xcall pop_gset2
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbsym r ll 20 i
 0030                   .dbsym r i 22 i
 0030                   .dbsym r j 16 c
 0030                   .dbend
 0030                   .dbfunc e Start _Start fV
 0030           ;              i -> R16
                        .even
 0030           _Start::
 0030                   .dbline -1
 0030                   .dbline 17
 0030           ;                       {;}
 0030           ;               }
 0030           ; }
 0030           ; 
 0030           ; void Start(void)  
 0030           ; {
 0030                   .dbline 19
 0030           ;       unsigned char i;
 0030           ;       SET_SDA();
 0030 8998              cbi 0x11,1
 0032                   .dbline 21
 0032 0027              clr R16
 0034 01C0              xjmp L14
 0036           L11:
 0036                   .dbline 21
 0036           L12:
 0036                   .dbline 21
 0036 0395              inc R16
 0038           L14:
 0038                   .dbline 21
 0038           ; //    SET_SCL();
 0038           ;       for(i=0;i<10;i++);
 0038 0A30              cpi R16,10
 003A E8F3              brlo L11
 003C                   .dbline 22
 003C           ;       CLEAR_SDA();
 003C 899A              sbi 0x11,1
 003E                   .dbline 23
 003E 0027              clr R16
 0040 01C0              xjmp L18
 0042           L15:
 0042                   .dbline 23
 0042           L16:
 0042                   .dbline 23
 0042 0395              inc R16
 0044           L18:
 0044                   .dbline 23
 0044           ;       for(i=0;i<10;i++);
 0044 0A30              cpi R16,10
 0046 E8F3              brlo L15
 0048                   .dbline -2
 0048           L10:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r i 16 c
 004A                   .dbend
 004A                   .dbfunc e Stop _Stop fV
 004A           ;              i -> R16
                        .even
 004A           _Stop::
 004A                   .dbline -1
 004A                   .dbline 27
 004A           ; }
 004A           ; 
 004A           ; void Stop(void)  
 004A           ; {
 004A                   .dbline 29
 004A           ;       unsigned char i;
 004A           ;       CLEAR_SDA();
 004A 899A              sbi 0x11,1
 004C                   .dbline 31
 004C 0027              clr R16
 004E 01C0              xjmp L23
 0050           L20:
 0050                   .dbline 31
 0050           L21:
 0050                   .dbline 31
 0050 0395              inc R16
 0052           L23:
 0052                   .dbline 31
 0052           ; //    SET_SCL();
 0052           ;       for(i=0;i<10;i++);
 0052 0A30              cpi R16,10
 0054 E8F3              brlo L20
 0056                   .dbline 32
 0056           ;       SET_SDA();
 0056 8998              cbi 0x11,1
 0058                   .dbline 33
 0058 0027              clr R16
 005A 01C0              xjmp L27
 005C           L24:
 005C                   .dbline 33
 005C           L25:
 005C                   .dbline 33
 005C 0395              inc R16
 005E           L27:
 005E                   .dbline 33
 005E           ;       for(i=0;i<10;i++);
 005E 0A30              cpi R16,10
 0060 E8F3              brlo L24
 0062                   .dbline -2
 0062           L19:
 0062                   .dbline 0 ; func end
 0062 0895              ret
 0064                   .dbsym r i 16 c
 0064                   .dbend
 0064                   .dbfunc e Ack _Ack fV
 0064           ;              i -> R16
                        .even
 0064           _Ack::
 0064                   .dbline -1
 0064                   .dbline 37
 0064           ; }
 0064           ; 
 0064           ; void Ack(void)                                                                /*answer bit*/
 0064           ; {
 0064                   .dbline 39
 0064           ;       unsigned char i;
 0064           ;       CLEAR_SDA();
 0064 899A              sbi 0x11,1
 0066                   .dbline 40
 0066 0027              clr R16
 0068 01C0              xjmp L32
 006A           L29:
 006A                   .dbline 40
 006A           L30:
 006A                   .dbline 40
 006A 0395              inc R16
 006C           L32:
 006C                   .dbline 40
 006C           ;       for(i=0;i<10;i++);
 006C 0A30              cpi R16,10
 006E E8F3              brlo L29
 0070                   .dbline -2
 0070           L28:
 0070                   .dbline 0 ; func end
 0070 0895              ret
 0072                   .dbsym r i 16 c
 0072                   .dbend
 0072                   .dbfunc e NoAck _NoAck fV
 0072           ;              i -> R16
                        .even
 0072           _NoAck::
 0072                   .dbline -1
 0072                   .dbline 46
 0072           ; //    SET_SCL();
 0072           ; //    for(i=0;i<10;i++);
 0072           ; //    CLEAR_SCL();
 0072           ; }
 0072           ; void NoAck(void)                                                      /*backfard answer bit*/
 0072           ; {
 0072                   .dbline 48
 0072           ;       unsigned char i;
 0072           ;       SET_SDA();
 0072 8998              cbi 0x11,1
 0074                   .dbline 49
 0074 0027              clr R16
 0076 01C0              xjmp L37
 0078           L34:
 0078                   .dbline 49
 0078           L35:
 0078                   .dbline 49
 0078 0395              inc R16
 007A           L37:
 007A                   .dbline 49
 007A           ;       for(i=0;i<10;i++);
 007A 0A30              cpi R16,10
 007C E8F3              brlo L34
 007E                   .dbline -2
 007E           L33:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbsym r i 16 c
 0080                   .dbend
 0080                   .dbfunc e Send _Send fV
 0080           ;              j -> R20
 0080           ;              i -> R22
 0080           ;           Data -> R16
                        .even
 0080           _Send::
 0080 0E940000          xcall push_gset2
 0084                   .dbline -1
 0084                   .dbline 56
 0084           ; //    SET_SCL();
 0084           ; //    for(i=0;i<10;i++);
 0084           ; //    CLEAR_SCL();
 0084           ; }
 0084           ; 
 0084           ; void Send(unsigned char Data)                                         /*send data sub ,data for send of data*/
 0084           ; {
 0084                   .dbline 59
 0084           ;       unsigned char j,i;                                      /*bit counter control*/
 0084           ; //    unsigned char temp;                                                     /*middle var control*/
 0084           ;       for(j=0;j<8;j++)
 0084 4427              clr R20
 0086 0EC0              xjmp L42
 0088           L39:
 0088                   .dbline 60
 0088           ;       {
 0088                   .dbline 62
 0088 6627              clr R22
 008A 01C0              xjmp L46
 008C           L43:
 008C                   .dbline 62
 008C           L44:
 008C                   .dbline 62
 008C 6395              inc R22
 008E           L46:
 008E                   .dbline 62
 008E           ; //                    CLEAR_SCL();
 008E           ;                       for(i=0;i<10;i++);
 008E 6A30              cpi R22,10
 0090 E8F3              brlo L43
 0092                   .dbline 63
 0092           ;                       if((Data&0x80)==0x80)
 0092 802F              mov R24,R16
 0094 8078              andi R24,128
 0096 8038              cpi R24,128
 0098 11F4              brne L47
 009A                   .dbline 64
 009A           ;                               SET_SDA();
 009A 8998              cbi 0x11,1
 009C 01C0              xjmp L48
 009E           L47:
 009E                   .dbline 66
 009E           ;                       else
 009E           ;                               CLEAR_SDA();
 009E 899A              sbi 0x11,1
 00A0           L48:
 00A0                   .dbline 68
 00A0 000F              lsl R16
 00A2                   .dbline 69
 00A2           L40:
 00A2                   .dbline 59
 00A2 4395              inc R20
 00A4           L42:
 00A4                   .dbline 59
 00A4 4830              cpi R20,8
 00A6 80F3              brlo L39
 00A8                   .dbline -2
 00A8           L38:
 00A8 0E940000          xcall pop_gset2
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbsym r j 20 c
 00AE                   .dbsym r i 22 c
 00AE                   .dbsym r Data 16 c
 00AE                   .dbend
 00AE                   .dbfunc e Read _Read fc
 00AE           ;              j -> R16
 00AE           ;           temp -> R18
 00AE           ;              i -> R20
                        .even
 00AE           _Read::
 00AE 0E940000          xcall push_gset1
 00B2                   .dbline -1
 00B2                   .dbline 74
 00B2           ; //                    SET_SCL();
 00B2           ;                       Data=Data<<1;
 00B2           ;       }
 00B2           ; //    CLEAR_SCL();
 00B2           ; }
 00B2           ; 
 00B2           ; unsigned char Read(void)                                                      /* read a byte of data ,and return this data*/
 00B2           ; {
 00B2                   .dbline 77
 00B2           ;       unsigned char temp,i;
 00B2           ;       unsigned char j;
 00B2           ;       SET_SDA();
 00B2 8998              cbi 0x11,1
 00B4                   .dbline 78
 00B4           ;       for(j=0;j<8;j++)
 00B4 0027              clr R16
 00B6 11C0              xjmp L53
 00B8           L50:
 00B8                   .dbline 79
 00B8           ;       {
 00B8                   .dbline 80
 00B8           ;               temp<<=1;
 00B8 220F              lsl R18
 00BA                   .dbline 82
 00BA 4427              clr R20
 00BC 01C0              xjmp L57
 00BE           L54:
 00BE                   .dbline 82
 00BE           L55:
 00BE                   .dbline 82
 00BE 4395              inc R20
 00C0           L57:
 00C0                   .dbline 82
 00C0           ; //            CLEAR_SCL();
 00C0           ;               for(i=0;i<10;i++);
 00C0 4A30              cpi R20,10
 00C2 E8F3              brlo L54
 00C4                   .dbline 84
 00C4 4427              clr R20
 00C6 01C0              xjmp L61
 00C8           L58:
 00C8                   .dbline 84
 00C8           L59:
 00C8                   .dbline 84

⌨️ 快捷键说明

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