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

📄 display.lis

📁 手操器
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module display.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
                        .area data(ram, con, rel)
 0000                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 0000           _Led_CHR::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\display.c
 000A                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\display.c
 000A                   .dbsym e Led_CHR _Led_CHR A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\display.c
 0000                   .dbfunc e WordToBcd _WordToBcd fV
 0000           ;          WordP -> R10,R11
                        .even
 0000           _WordToBcd::
 0000 AA92              st -y,R10
 0002 BA92              st -y,R11
 0004 5801              movw R10,R16
 0006                   .dbline -1
 0006                   .dbline 28
 0006           ; #include <iom16v.h>
 0006           ; #include <macros.h>
 0006           ; #include "TypeDef.h"
 0006           ; #define       LED_Black       0x00
 0006           ; #define       LED_C           0x39
 0006           ; #define       LED_U           0x3e
 0006           ; #define       LED_u           0x1c
 0006           ; #define       LED_S           0x6d
 0006           ; #define       LED_I           0x04
 0006           ; #define       LED_n           0x54
 0006           ; #define       LED_o           0x5c
 0006           ; #define       LED__           0x40
 0006           ; #define       LED_H           0x76
 0006           ; #define       LED_L           0x38
 0006           ; #define       LED_e           0x7b
 0006           ; #define       LED_r           0x60
 0006           ; unsigned char const  Led_CHR[10]={            0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F       };
 0006           ; extern unsigned int NeedModifyVariable;
 0006           ; extern DataPackageType    OutputSignal;
 0006           ; unsigned char BCDCodeArray[4];
 0006           ; extern unsigned char DisStatus;
 0006           ; extern unsigned char  DisBuffer[8];
 0006           ; extern unsigned char      SysErrorCode;
 0006           ; extern DataPackageType    Current4_20mA;
 0006           ; extern unsigned char Para_Dis_mody;
 0006           ; 
 0006           ; void WordToBcd(unsigned int  WordP)
 0006           ;  { 
 0006                   .dbline 30
 0006           ;  
 0006           ;   BCDCodeArray[0]=WordP/1000%10;
 0006 28EE              ldi R18,1000
 0008 33E0              ldi R19,3
 000A 8501              movw R16,R10
 000C 0E940000          xcall div16u
 0010 2AE0              ldi R18,10
 0012 30E0              ldi R19,0
 0014 0E940000          xcall mod16u
 0018 00930000          sts _BCDCodeArray,R16
 001C                   .dbline 31
 001C           ;   BCDCodeArray[1]=WordP/100%10; 
 001C 24E6              ldi R18,100
 001E 30E0              ldi R19,0
 0020 8501              movw R16,R10
 0022 0E940000          xcall div16u
 0026 2AE0              ldi R18,10
 0028 30E0              ldi R19,0
 002A 0E940000          xcall mod16u
 002E 00930100          sts _BCDCodeArray+1,R16
 0032                   .dbline 32
 0032           ;   BCDCodeArray[2]=WordP/10%10;
 0032 2AE0              ldi R18,10
 0034 30E0              ldi R19,0
 0036 8501              movw R16,R10
 0038 0E940000          xcall div16u
 003C 2AE0              ldi R18,10
 003E 30E0              ldi R19,0
 0040 0E940000          xcall mod16u
 0044 00930200          sts _BCDCodeArray+2,R16
 0048                   .dbline 33
 0048           ;   BCDCodeArray[3]=WordP%10;
 0048 2AE0              ldi R18,10
 004A 30E0              ldi R19,0
 004C 8501              movw R16,R10
 004E 0E940000          xcall mod16u
 0052 00930300          sts _BCDCodeArray+3,R16
 0056                   .dbline -2
 0056           L5:
 0056                   .dbline 0 ; func end
 0056 B990              ld R11,y+
 0058 A990              ld R10,y+
 005A 0895              ret
 005C                   .dbsym r WordP 10 i
 005C                   .dbend
 005C                   .dbfunc e FillBCDToDisBuffer _FillBCDToDisBuffer fV
 005C           ;              i -> R16
                        .even
 005C           _FillBCDToDisBuffer::
 005C                   .dbline -1
 005C                   .dbline 39
 005C           ;   }
 005C           ; 
 005C           ; 
 005C           ; //填写BCD码到显示缓冲区,并做灭零处理。
 005C           ; void FillBCDToDisBuffer(void)
 005C           ; {                     
 005C                   .dbline 41
 005C           ;               unsigned char i;
 005C           ;                        DisBuffer[4]=Led_CHR[BCDCodeArray[0]];
 005C 80E0              ldi R24,<_Led_CHR
 005E 90E0              ldi R25,>_Led_CHR
 0060 E0910000          lds R30,_BCDCodeArray
 0064 FF27              clr R31
 0066 E80F              add R30,R24
 0068 F91F              adc R31,R25
 006A 2080              ldd R2,z+0
 006C 20920400          sts _DisBuffer+4,R2
 0070                   .dbline 42
 0070           ;                        DisBuffer[5]=Led_CHR[BCDCodeArray[1]];
 0070 E0910100          lds R30,_BCDCodeArray+1
 0074 FF27              clr R31
 0076 E80F              add R30,R24
 0078 F91F              adc R31,R25
 007A 2080              ldd R2,z+0
 007C 20920500          sts _DisBuffer+5,R2
 0080                   .dbline 43
 0080           ;                        DisBuffer[6]=Led_CHR[BCDCodeArray[2]];
 0080 E0910200          lds R30,_BCDCodeArray+2
 0084 FF27              clr R31
 0086 E80F              add R30,R24
 0088 F91F              adc R31,R25
 008A 2080              ldd R2,z+0
 008C 20920600          sts _DisBuffer+6,R2
 0090                   .dbline 44
 0090           ;                        DisBuffer[7]=Led_CHR[BCDCodeArray[3]]; 
 0090 E0910300          lds R30,_BCDCodeArray+3
 0094 FF27              clr R31
 0096 E80F              add R30,R24
 0098 F91F              adc R31,R25
 009A 2080              ldd R2,z+0
 009C 20920700          sts _DisBuffer+7,R2
 00A0                   .dbline 46
 00A0           ;               
 00A0           ;           for( i=0;i<3;i++ )
 00A0 0027              clr R16
 00A2 12C0              xjmp L20
 00A4           L17:
 00A4                   .dbline 47
 00A4           ;          {
 00A4                   .dbline 48
 00A4           ;               if( DisBuffer[4+i]==Led_CHR[0] )
 00A4 80E0              ldi R24,<_DisBuffer+4
 00A6 90E0              ldi R25,>_DisBuffer+4
 00A8 E02F              mov R30,R16
 00AA FF27              clr R31
 00AC E80F              add R30,R24
 00AE F91F              adc R31,R25
 00B0 2080              ldd R2,z+0
 00B2 30900000          lds R3,_Led_CHR
 00B6 2314              cp R2,R3
 00B8 49F4              brne L19
 00BA           X0:
 00BA                   .dbline 49
 00BA           ;                       DisBuffer[4+i]=LED_Black;
 00BA E02F              mov R30,R16
 00BC FF27              clr R31
 00BE E80F              add R30,R24
 00C0 F91F              adc R31,R25
 00C2 2224              clr R2
 00C4 2082              std z+0,R2
 00C6                   .dbline 50
 00C6           ;               else    break;
 00C6           L22:
 00C6                   .dbline 51
 00C6           ;          }
 00C6           L18:
 00C6                   .dbline 46
 00C6 0395              inc R16
 00C8           L20:
 00C8                   .dbline 46
 00C8 0330              cpi R16,3
 00CA 60F3              brlo L17
 00CC           X1:
 00CC           L19:
 00CC                   .dbline -2
 00CC           L9:
 00CC                   .dbline 0 ; func end
 00CC 0895              ret
 00CE                   .dbsym r i 16 c
 00CE                   .dbend
 00CE                   .dbfunc e UpdateDisplay _UpdateDisplay fV
 00CE           ;              i -> R20
                        .even
 00CE           _UpdateDisplay::
 00CE 0E940000          xcall push_xgsetF000
 00D2                   .dbline -1
 00D2                   .dbline 59
 00D2           ; }
 00D2           ; 
 00D2           ; 
 00D2           ; 
 00D2           ; //--------------------------------------------------------------------------------------
 00D2           ; //更新显示函数,
 00D2           ; void UpdateDisplay(void)
 00D2           ; {
 00D2                   .dbline 62
 00D2           ;       unsigned char i;
 00D2           ;       
 00D2           ;               for( i=0;i<4;i++ )
 00D2 4427              clr R20
 00D4 09C0              xjmp L29
 00D6           L26:
 00D6                   .dbline 63
 00D6           ;               DisBuffer[i+4]=LED_Black;
 00D6 80E0              ldi R24,<_DisBuffer+4
 00D8 90E0              ldi R25,>_DisBuffer+4
 00DA E42F              mov R30,R20
 00DC FF27              clr R31
 00DE E80F              add R30,R24
 00E0 F91F              adc R31,R25
 00E2 2224              clr R2
 00E4 2082              std z+0,R2
 00E6           L27:
 00E6                   .dbline 62
 00E6 4395              inc R20
 00E8           L29:
 00E8                   .dbline 62
 00E8 4430              cpi R20,4
 00EA A8F3              brlo L26
 00EC           X2:
 00EC                   .dbline 64
 00EC           ;               switch(DisStatus)
 00EC 60910000          lds R22,_DisStatus
 00F0 7727              clr R23
 00F2 6030              cpi R22,0
 00F4 6707              cpc R22,R23
 00F6 A9F0              breq L34
 00F8           X3:
 00F8 6130              cpi R22,1
 00FA E0E0              ldi R30,0
 00FC 7E07              cpc R23,R30
 00FE 09F4              brne X17
 0100 92C0              xjmp L64
 0102           X17:
 0102           X4:
 0102 6230              cpi R22,2
 0104 E0E0              ldi R30,0
 0106 7E07              cpc R23,R30
 0108 09F4              brne X18
 010A 8DC0              xjmp L64
 010C           X18:
 010C           X5:
 010C 6330              cpi R22,3
 010E E0E0              ldi R30,0
 0110 7E07              cpc R23,R30
 0112 09F4              brne X19
 0114 A7C0              xjmp L71
 0116           X19:
 0116           X6:
 0116 6430              cpi R22,4
 0118 E0E0              ldi R30,0
 011A 7E07              cpc R23,R30
 011C 09F4              brne X20
 011E A2C0              xjmp L71
 0120           X20:
 0120           X7:
 0120 D4C0              xjmp L32
 0122           L34:
 0122                   .dbline 67
 0122           ;               {
 0122           ;               case Working_DDS :
 0122           ;                        WordToBcd(Current4_20mA.Pv);
 0122 00910A00          lds R16,_Current4_20mA+10
 0126 10910B00          lds R17,_Current4_20mA+10+1
 012A 6ADF              xcall _WordToBcd
 012C                   .dbline 68
 012C           ;                        DisBuffer[0]=Led_CHR[BCDCodeArray[0]];
 012C 80E0              ldi R24,<_Led_CHR
 012E 90E0              ldi R25,>_Led_CHR
 0130 E0910000          lds R30,_BCDCodeArray
 0134 FF27              clr R31
 0136 E80F              add R30,R24
 0138 F91F              adc R31,R25
 013A 2080              ldd R2,z+0
 013C 20920000          sts _DisBuffer,R2
 0140                   .dbline 69
 0140           ;                        DisBuffer[1]=Led_CHR[BCDCodeArray[1]];
 0140 E0910100          lds R30,_BCDCodeArray+1
 0144 FF27              clr R31
 0146 E80F              add R30,R24
 0148 F91F              adc R31,R25
 014A 2080              ldd R2,z+0
 014C 20920100          sts _DisBuffer+1,R2
 0150                   .dbline 70
 0150           ;                        DisBuffer[2]=Led_CHR[BCDCodeArray[2]] | 0x80;
 0150 E0910200          lds R30,_BCDCodeArray+2
 0154 FF27              clr R31
 0156 E80F              add R30,R24
 0158 F91F              adc R31,R25
 015A 8081              ldd R24,z+0
 015C 8068              ori R24,128
 015E 80930200          sts _DisBuffer+2,R24

⌨️ 快捷键说明

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