📄 main.lis
字号:
0106 .dbline 99
0106 ; //average[j][average_l] = LTC2449_RW(c); //读取AD值
0106 ; average[j][average_l] = CS5532_RW(c);
0106 0C2D mov R16,R12
0108 1127 clr R17
010A 0E940000 xcall _CS5532_RW
010E 1801 movw R2,R16
0110 2901 movw R4,R18
0112 8EE1 ldi R24,30
0114 0C80 ldd R0,y+4
0116 809D mul R24,R0
0118 3001 movw R6,R0
011A 80E0 ldi R24,<L13
011C 90E0 ldi R25,>L13
011E 680E add R6,R24
0120 791E adc R7,R25
0122 80900000 lds R8,L12
0126 82E0 ldi R24,2
0128 889D mul R24,R8
012A F001 movw R30,R0
012C E60D add R30,R6
012E F71D adc R31,R7
0130 3182 std z+1,R3
0132 2082 std z+0,R2
0134 .dbline 100
0134 ; sum = 0;
0134 40E0 ldi R20,0
0136 50E0 ldi R21,0
0138 60E0 ldi R22,0
013A 70E0 ldi R23,0
013C FE01 movw R30,R28
013E 4083 std z+0,R20
0140 5183 std z+1,R21
0142 6283 std z+2,R22
0144 7383 std z+3,R23
0146 .dbline 101
0146 ; for (jj=0; jj<average_quantity; jj++) //求平均值
0146 AA24 clr R10
0148 20C0 xjmp L21
014A L18:
014A .dbline 102
014A .dbline 103
014A 8EE1 ldi R24,30
014C 0C80 ldd R0,y+4
014E 809D mul R24,R0
0150 1001 movw R2,R0
0152 80E0 ldi R24,<L13
0154 90E0 ldi R25,>L13
0156 280E add R2,R24
0158 391E adc R3,R25
015A 82E0 ldi R24,2
015C 8A9D mul R24,R10
015E F001 movw R30,R0
0160 E20D add R30,R2
0162 F31D adc R31,R3
0164 2080 ldd R2,z+0
0166 3180 ldd R3,z+1
0168 4424 clr R4
016A 5524 clr R5
016C FE01 movw R30,R28
016E 6080 ldd R6,z+0
0170 7180 ldd R7,z+1
0172 8280 ldd R8,z+2
0174 9380 ldd R9,z+3
0176 620C add R6,R2
0178 731C adc R7,R3
017A 841C adc R8,R4
017C 951C adc R9,R5
017E FE01 movw R30,R28
0180 6082 std z+0,R6
0182 7182 std z+1,R7
0184 8282 std z+2,R8
0186 9382 std z+3,R9
0188 .dbline 104
0188 L19:
0188 .dbline 101
0188 A394 inc R10
018A L21:
018A .dbline 101
018A 8A2D mov R24,R10
018C 8F30 cpi R24,15
018E E8F2 brlo L18
0190 .dbline 105
0190 ; {
0190 ; sum += average[j][jj];
0190 ; }
0190 ; send_data.AD_data[j] = sum/average_quantity;
0190 82E0 ldi R24,2
0192 0C80 ldd R0,y+4
0194 809D mul R24,R0
0196 F001 movw R30,R0
0198 80E0 ldi R24,<_send_data+1
019A 90E0 ldi R25,>_send_data+1
019C E80F add R30,R24
019E F91F adc R31,R25
01A0 4FE0 ldi R20,15
01A2 50E0 ldi R21,0
01A4 60E0 ldi R22,0
01A6 70E0 ldi R23,0
01A8 DE01 movw R26,R28
01AA 2D90 ld R2,x+
01AC 3D90 ld R3,x+
01AE 4D90 ld R4,x+
01B0 5C90 ld R5,x
01B2 7A93 st -y,R23
01B4 6A93 st -y,R22
01B6 5A93 st -y,R21
01B8 4A93 st -y,R20
01BA 8101 movw R16,R2
01BC 9201 movw R18,R4
01BE 0E940000 xcall div32u
01C2 1183 std z+1,R17
01C4 0083 std z+0,R16
01C6 L23:
01C6 .dbline 107
01C6 .dbline 107
01C6 .dbline 107
01C6 L24:
01C6 .dbline 107
01C6 20902F01 lds R2,_mcu_loop_time
01CA E214 cp R14,R2
01CC E1F3 breq L23
01CE .dbline 108
01CE L15:
01CE .dbline 94
01CE 0C80 ldd R0,y+4
01D0 0394 inc R0
01D2 0C82 std y+4,R0
01D4 L17:
01D4 .dbline 94
01D4 8C81 ldd R24,y+4
01D6 8530 cpi R24,5
01D8 08F4 brsh X1
01DA 92CF xjmp L14
01DC X1:
01DC .dbline 109
01DC 80910000 lds R24,L12
01E0 8F5F subi R24,255 ; addi 1
01E2 80930000 sts L12,R24
01E6 .dbline 110
01E6 8EE0 ldi R24,14
01E8 20900000 lds R2,L12
01EC 8215 cp R24,R2
01EE 18F4 brsh L26
01F0 .dbline 110
01F0 2224 clr R2
01F2 20920000 sts L12,R2
01F6 L26:
01F6 .dbline -2
01F6 L11:
01F6 2596 adiw R28,5
01F8 0E940000 xcall pop_gset5
01FC .dbline 0 ; func end
01FC 0895 ret
01FE .dbsym r c 12 c
01FE .dbsym r unlikeliness 14 c
01FE .dbsym l sum 0 l
01FE .dbsym l j 4 c
01FE .dbsym r jj 10 c
01FE .dbend
01FE .dbfunc e pb_check _pb_check fV
01FE ; k -> R16
.even
01FE _pb_check::
01FE .dbline -1
01FE .dbline 114
01FE ; //send_data.AD_data[j] = average[j][average_l];
01FE ; while (unlikeliness == mcu_loop_time){;}//等待1ms
01FE ; }
01FE ; average_l++;
01FE ; if (average_l > (average_quantity-1)) average_l = 0;
01FE ; }
01FE ; //************取8个按键值************************
01FE ; void pb_check()
01FE ; {
01FE .dbline 116
01FE ; unsigned char k;
01FE ; k=PINB;
01FE 03B1 in R16,0x3
0200 .dbline 117
0200 ; k=k<<1;
0200 000F lsl R16
0202 .dbline 118
0202 ; if((PINE&0B01111111)!=0)
0202 8CB1 in R24,0xc
0204 8F77 andi R24,127
0206 11F0 breq L29
0208 .dbline 119
0208 ; k|=1;
0208 0160 ori R16,1
020A 01C0 xjmp L30
020C L29:
020C .dbline 121
020C ; else
020C ; k&=254;
020C 0E7F andi R16,254
020E L30:
020E .dbline 122
020E ; k ^= 0xff;
020E 8FEF ldi R24,255
0210 90E0 ldi R25,0
0212 202E mov R2,R16
0214 3324 clr R3
0216 2826 eor R2,R24
0218 3926 eor R3,R25
021A 022D mov R16,R2
021C .dbline 123
021C ; send_data.exterior_switch=k;
021C 0093F000 sts _send_data,R16
0220 .dbline -2
0220 L28:
0220 .dbline 0 ; func end
0220 0895 ret
0222 .dbsym r k 16 c
0222 .dbend
0222 .dbfunc e main _main fV
.even
0222 _main::
0222 .dbline -1
0222 .dbline 126
0222 ; }
0222 ; void main(void)
0222 ; {
0222 .dbline 127
0222 ; init_devices();
0222 53DF xcall _init_devices
0224 .dbline 138
0224 ; /*SET_CS; //PE3
0224 ; CLR_CS ; //PE3
0224 ; SET_SCK; //PE6
0224 ; CLR_SCK ; //PE6
0224 ; SET_SDI; //PE4
0224 ; CLR_SDI; //PE4
0224 ; SET_SDO; //PE5
0224 ; CLR_SDO ; //PE5
0224 ; SDO ; //PE5 */
0224 ; //LTC2449_init();
0224 ; Init5532();
0224 0E940000 xcall _Init5532
0228 .dbline 139
0228 ; relay_init();
0228 0E940000 xcall _relay_init
022C .dbline 140
022C ; load_init();
022C 0E940000 xcall _load_init
0230 .dbline 141
0230 ; updating=0;
0230 2224 clr R2
0232 20920601 sts _updating,R2
0236 16C0 xjmp L33
0238 X2:
0238 .dbline 143
0238 ; while(1)
0238 ; {
0238 L35:
0238 .dbline 145
0238 .dbline 145
0238 .dbline 145
0238 L36:
0238 .dbline 145
0238 ; //主程序循环定时
0238 ; while(mcu_loop_time<20){;}
0238 80912F01 lds R24,_mcu_loop_time
023C 8431 cpi R24,20
023E E0F3 brlo L35
0240 .dbline 146
0240 ; mcu_loop_time=0;
0240 2224 clr R2
0242 20922F01 sts _mcu_loop_time,R2
0246 .dbline 147
0246 ; data_load_manage();
0246 0E940000 xcall _data_load_manage
024A .dbline 148
024A ; if(updating==1)
024A 80910601 lds R24,_updating
024E 8130 cpi R24,1
0250 31F4 brne L38
0252 .dbline 149
0252 ; {
0252 .dbline 151
0252 ; //**********继电器刷新****************
0252 ; RELAY_out(&(Down_load.Relay_out[0]));
0252 00E0 ldi R16,<_Down_load
0254 10E0 ldi R17,>_Down_load
0256 0E940000 xcall _RELAY_out
025A .dbline 153
025A ; //*********上传数据********************
025A ; data_send();
025A 0E940000 xcall _data_send
025E .dbline 154
025E ; }
025E L38:
025E .dbline 155
025E CFDF xcall _pb_check
0260 .dbline 156
0260 0E940000 xcall _AD_sample
0264 .dbline 158
0264 L33:
0264 .dbline 142
0264 E9CF xjmp L36
0266 X3:
0266 .dbline -2
0266 L31:
0266 .dbline 0 ; func end
0266 0895 ret
0268 .dbend
.area bss(ram, con, rel)
00F0 .dbfile E:\mysoft\DH980\main.c
00F0 _send_data::
00F0 .blkb 17
0101 .dbfile E:\mysoft\DH980/main.h
0101 .dbsym e send_data _send_data X
0101 _Down_load::
0101 .blkb 5
0106 .dbsym e Down_load _Down_load X
0106 _updating::
0106 .blkb 1
0107 .dbsym e updating _updating c
0107 _load_no::
0107 .blkb 1
0108 .dbsym e load_no _load_no c
0108 _load_time::
0108 .blkb 2
010A .dbsym e load_time _load_time i
010A _PB_in::
010A .blkb 1
010B .dbsym e PB_in _PB_in c
010B _relay_out::
010B .blkb 4
010F .dbsym e relay_out _relay_out A[4:4]c
010F _AD_channels_data::
010F .blkb 32
012F .dbsym e AD_channels_data _AD_channels_data A[32:8]l
012F _mcu_loop_time::
012F .blkb 1
0130 .dbsym e mcu_loop_time _mcu_loop_time c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -