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

📄 ad.lis

📁 M16内部采样并用Max7221-7219显示
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00E2           ;                 SEND(0x03,0x0f);  
 00E2 2FE0              ldi R18,15
 00E4 03E0              ldi R16,3
 00E6 8CDF              xcall _SEND
 00E8                   .dbline 73
 00E8           ;                 SEND(0x04,0x0f); 
 00E8 2FE0              ldi R18,15
 00EA 04E0              ldi R16,4
 00EC 89DF              xcall _SEND
 00EE                   .dbline 74
 00EE           ;                 SEND(0x05,0x0f);  
 00EE 2FE0              ldi R18,15
 00F0 05E0              ldi R16,5
 00F2 86DF              xcall _SEND
 00F4                   .dbline 75
 00F4           ;                 SEND(0x06,0x0f);  
 00F4 2FE0              ldi R18,15
 00F6 06E0              ldi R16,6
 00F8 83DF              xcall _SEND
 00FA                   .dbline 76
 00FA           ;                 SEND(0x07,0x0f);  
 00FA 2FE0              ldi R18,15
 00FC 07E0              ldi R16,7
 00FE 80DF              xcall _SEND
 0100                   .dbline 77
 0100           ;                 SEND(0x08,0x0f); 
 0100 2FE0              ldi R18,15
 0102 08E0              ldi R16,8
 0104 7DDF              xcall _SEND
 0106                   .dbline 78
 0106           ;                 }break; 
 0106                   .dbline 78
 0106           L18:
 0106                   .dbline -2
 0106           L16:
 0106                   .dbline 0 ; func end
 0106 B990              ld R11,y+
 0108 A990              ld R10,y+
 010A 0895              ret
 010C                   .dbsym r part 10 c
 010C                   .dbend
 010C                   .dbfunc e SEG_INIT _SEG_INIT fV
                        .even
 010C           _SEG_INIT::
 010C                   .dbline -1
 010C                   .dbline 84
 010C           ;         } 
 010C           ; } 
 010C           ; 
 010C           ; //==============SEG初始化============= 
 010C           ; void SEG_INIT(void) 
 010C           ; { 
 010C                   .dbline 85
 010C           ; MAX7219_OUT_DDR|=(1<<MAX7219_CLK_PORT)|(1<<MAX7219_DIN_PORT)|(1<<MAX7219_LOAD_PORT); 
 010C 87B3              in R24,0x17
 010E 806B              ori R24,176
 0110 87BB              out 0x17,R24
 0112                   .dbline 86
 0112           ; MAX7219_OUT_PORT|=(1<<MAX7219_CLK_PORT)|(1<<MAX7219_DIN_PORT)|(1<<MAX7219_LOAD_PORT); 
 0112 88B3              in R24,0x18
 0114 806B              ori R24,176
 0116 88BB              out 0x18,R24
 0118                   .dbline 87
 0118           ; SEND(0x0c,0x01); 
 0118 21E0              ldi R18,1
 011A 0CE0              ldi R16,12
 011C 71DF              xcall _SEND
 011E                   .dbline 88
 011E           ; SEND(0x0b,0x07);  
 011E 27E0              ldi R18,7
 0120 0BE0              ldi R16,11
 0122 6EDF              xcall _SEND
 0124                   .dbline 89
 0124           ; SEND(0x0a,0x05);  
 0124 25E0              ldi R18,5
 0126 0AE0              ldi R16,10
 0128 6BDF              xcall _SEND
 012A                   .dbline 90
 012A           ; SEND(0x09,0xff);  
 012A 2FEF              ldi R18,255
 012C 09E0              ldi R16,9
 012E 68DF              xcall _SEND
 0130                   .dbline 91
 0130           ; SEG_CLEAR(3); 
 0130 03E0              ldi R16,3
 0132 A9DF              xcall _SEG_CLEAR
 0134                   .dbline -2
 0134           L22:
 0134                   .dbline 0 ; func end
 0134 0895              ret
 0136                   .dbend
 0136                   .dbfunc e SEG_L _SEG_L fV
 0136           ;              i -> R12,R13
 0136           ;         number -> R10,R11
                        .even
 0136           _SEG_L::
 0136 0E940000          xcall push_xgset003C
 013A 5801              movw R10,R16
 013C                   .dbline -1
 013C                   .dbline 97
 013C           ; } 
 013C           ; 
 013C           ; 
 013C           ; //=============SEG左四显示数字============== 
 013C           ; void SEG_L(int number) 
 013C           ; { 
 013C                   .dbline 98
 013C           ; int i=4; 
 013C 84E0              ldi R24,4
 013E 90E0              ldi R25,0
 0140 6C01              movw R12,R24
 0142                   .dbline 99
 0142           ; SEND(0x01,0x0f); //先清除左四位,左四位黑屏 
 0142 2FE0              ldi R18,15
 0144 01E0              ldi R16,1
 0146 5CDF              xcall _SEND
 0148                   .dbline 100
 0148           ; SEND(0x02,0x0f);  
 0148 2FE0              ldi R18,15
 014A 02E0              ldi R16,2
 014C 59DF              xcall _SEND
 014E                   .dbline 101
 014E           ; SEND(0x03,0x0f);  
 014E 2FE0              ldi R18,15
 0150 03E0              ldi R16,3
 0152 56DF              xcall _SEND
 0154                   .dbline 102
 0154           ; SEND(0x04,0x0f); 
 0154 2FE0              ldi R18,15
 0156 04E0              ldi R16,4
 0158 53DF              xcall _SEND
 015A                   .dbline 104
 015A           ; 
 015A           ; if(number>9999)//要显示的数值超过4位,则显示4个H 
 015A 8FE0              ldi R24,9999
 015C 97E2              ldi R25,39
 015E 8A15              cp R24,R10
 0160 9B05              cpc R25,R11
 0162 6CF4              brge L24
 0164           X6:
 0164                   .dbline 105
 0164           ;         { 
 0164                   .dbline 106
 0164           ;         SEND(0x01,0x0c);  
 0164 2CE0              ldi R18,12
 0166 01E0              ldi R16,1
 0168 4BDF              xcall _SEND
 016A                   .dbline 107
 016A           ;         SEND(0x02,0x0c);  
 016A 2CE0              ldi R18,12
 016C 02E0              ldi R16,2
 016E 48DF              xcall _SEND
 0170                   .dbline 108
 0170           ;         SEND(0x03,0x0c);  
 0170 2CE0              ldi R18,12
 0172 03E0              ldi R16,3
 0174 45DF              xcall _SEND
 0176                   .dbline 109
 0176           ;         SEND(0x04,0x0c); 
 0176 2CE0              ldi R18,12
 0178 04E0              ldi R16,4
 017A 42DF              xcall _SEND
 017C                   .dbline 110
 017C           ;         } 
 017C 1EC0              xjmp L25
 017E           L24:
 017E                   .dbline 112
 017E           ; else//小于四位可以显示 
 017E           ;         { 
 017E           L26:
 017E                   .dbline 114
 017E           ;         do 
 017E           ;                 { 
 017E                   .dbline 115
 017E           ;                 SEND(i,number%10); 
 017E 2AE0              ldi R18,10
 0180 30E0              ldi R19,0
 0182 8501              movw R16,R10
 0184 0E940000          xcall mod16s
 0188 202F              mov R18,R16
 018A 0C2D              mov R16,R12
 018C 39DF              xcall _SEND
 018E                   .dbline 116
 018E           ;                 number=(number-number%10)/10; 
 018E 2AE0              ldi R18,10
 0190 30E0              ldi R19,0
 0192 8501              movw R16,R10
 0194 0E940000          xcall mod16s
 0198 1801              movw R2,R16
 019A 8501              movw R16,R10
 019C 0219              sub R16,R2
 019E 1309              sbc R17,R3
 01A0 2AE0              ldi R18,10
 01A2 30E0              ldi R19,0
 01A4 0E940000          xcall div16s
 01A8 5801              movw R10,R16
 01AA                   .dbline 117
 01AA           ;                 i--; 
 01AA C601              movw R24,R12
 01AC 0197              sbiw R24,1
 01AE 6C01              movw R12,R24
 01B0                   .dbline 118
 01B0           ;                 }while(number>=1); 
 01B0           L27:
 01B0                   .dbline 118
 01B0 C501              movw R24,R10
 01B2 8130              cpi R24,1
 01B4 E0E0              ldi R30,0
 01B6 9E07              cpc R25,R30
 01B8 14F7              brge L26
 01BA           X7:
 01BA                   .dbline 119
 01BA           ;         } 
 01BA           L25:
 01BA                   .dbline -2
 01BA           L23:
 01BA                   .dbline 0 ; func end
 01BA 0C940000          xjmp pop_xgset003C
 01BE                   .dbsym r i 12 I
 01BE                   .dbsym r number 10 I
 01BE                   .dbend
 01BE                   .dbfunc e SEG_R _SEG_R fV
 01BE           ;              i -> R12,R13
 01BE           ;         number -> R10,R11
                        .even
 01BE           _SEG_R::
 01BE 0E940000          xcall push_xgset003C
 01C2 5801              movw R10,R16
 01C4                   .dbline -1
 01C4                   .dbline 125
 01C4           ; } 
 01C4           ; //===================================== 
 01C4           ; 
 01C4           ; //=============SEG右四显示数字============== 
 01C4           ; void SEG_R(int number) 
 01C4           ; { 
 01C4                   .dbline 126
 01C4           ; int i=8; 
 01C4 88E0              ldi R24,8
 01C6 90E0              ldi R25,0
 01C8 6C01              movw R12,R24
 01CA                   .dbline 128
 01CA           ; 
 01CA           ; SEND(0x05,0x0f); //先清除右四位,右四位黑屏 
 01CA 2FE0              ldi R18,15
 01CC 05E0              ldi R16,5
 01CE 18DF              xcall _SEND
 01D0                   .dbline 129
 01D0           ; SEND(0x06,0x0f);  
 01D0 2FE0              ldi R18,15
 01D2 06E0              ldi R16,6
 01D4 15DF              xcall _SEND
 01D6                   .dbline 130
 01D6           ; SEND(0x07,0x0f);  
 01D6 2FE0              ldi R18,15
 01D8 07E0              ldi R16,7
 01DA 12DF              xcall _SEND
 01DC                   .dbline 131
 01DC           ; SEND(0x08,0x0f); 
 01DC 2FE0              ldi R18,15
 01DE 08E0              ldi R16,8
 01E0 0FDF              xcall _SEND
 01E2                   .dbline 133
 01E2           ; 
 01E2           ; if(number>9999)//要显示的数值超过4位,则显示4个H 
 01E2 8FE0              ldi R24,9999
 01E4 97E2              ldi R25,39
 01E6 8A15              cp R24,R10
 01E8 9B05              cpc R25,R11
 01EA 6CF4              brge L30
 01EC           X8:
 01EC                   .dbline 134
 01EC           ;         { 
 01EC                   .dbline 135
 01EC           ;         SEND(0x05,0x0c);  
 01EC 2CE0              ldi R18,12
 01EE 05E0              ldi R16,5
 01F0 07DF              xcall _SEND
 01F2                   .dbline 136
 01F2           ;         SEND(0x06,0x0c);  
 01F2 2CE0              ldi R18,12
 01F4 06E0              ldi R16,6
 01F6 04DF              xcall _SEND
 01F8                   .dbline 137
 01F8           ;         SEND(0x07,0x0c);  
 01F8 2CE0              ldi R18,12
 01FA 07E0              ldi R16,7
 01FC 01DF              xcall _SEND
 01FE                   .dbline 138
 01FE           ;         SEND(0x08,0x0c); 
 01FE 2CE0              ldi R18,12
 0200 08E0              ldi R16,8
 0202 FEDE              xcall _SEND
 0204                   .dbline 139
 0204           ;         } 
 0204 1EC0              xjmp L31
 0206           L30:
 0206                   .dbline 141
 0206           ; else//小于四位可以显示 
 0206           ;         { 
 0206           L32:
 0206                   .dbline 143
 0206           ;         do 
 0206           ;                 { 
 0206                   .dbline 144
 0206           ;                 SEND(i,number%10); 
 0206 2AE0              ldi R18,10
 0208 30E0              ldi R19,0
 020A 8501              movw R16,R10
 020C 0E940000          xcall mod16s
 0210 202F              mov R18,R16

⌨️ 快捷键说明

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