📄 ds1302.lis
字号:
009E .dbline 110
009E A99A sbi 0x15,1
00A0 .dbline 111
00A0 A998 cbi 0x15,1
00A2 .dbline 112
00A2 L16:
00A2 .dbline 102
00A2 A394 inc R10
00A4 L18:
00A4 .dbline 102
00A4 8A2D mov R24,R10
00A6 8830 cpi R24,8
00A8 78F3 brlo L15
00AA .dbline 113
00AA ; if(WriteTime[i]==0x39)
00AA ; {WriteTime[i]=0x3f;
00AA ; }
00AA ; if(WriteTime[i]==0x49)
00AA ; {WriteTime[i]=0x4f;
00AA ; }
00AA A298 cbi 0x14,2
00AC .dbline 115
00AC ; if(WriteTime[i]==0x59)
00AC ; {WriteTime[i]=0x00;
00AC AA24 clr R10
00AE 14C0 rjmp L24
00B0 L21:
00B0 .dbline 116
00B0 ; }
00B0 .dbline 117
00B0 ; else
00B0 43B3 in R20,0x13
00B2 4470 andi R20,4
00B4 .dbline 118
00B4 ; WriteTime[i]=WriteTime[i]+1;
00B4 4430 cpi R20,4
00B6 29F4 brne L25
00B8 .dbline 119
00B8 ; }
00B8 01E0 ldi R16,1
00BA 1A2D mov R17,R10
00BC 00D0 rcall lsl8
00BE 602B or R22,R16
00C0 06C0 rjmp L26
00C2 L25:
00C2 .dbline 121
00C2 ; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
00C2 ; // 设置分钟,秒 减法程序
00C2 01E0 ldi R16,1
00C4 1A2D mov R17,R10
00C6 00D0 rcall lsl8
00C8 202E mov R2,R16
00CA 2094 com R2
00CC 6221 and R22,R2
00CE L26:
00CE .dbline 122
00CE 0000 nop
00D0 .dbline 123
00D0 0000 nop
00D2 .dbline 124
00D2 A99A sbi 0x15,1
00D4 .dbline 125
00D4 A998 cbi 0x15,1
00D6 .dbline 126
00D6 L22:
00D6 .dbline 115
00D6 A394 inc R10
00D8 L24:
00D8 .dbline 115
00D8 8A2D mov R24,R10
00DA 8830 cpi R24,8
00DC 48F3 brlo L21
00DE .dbline 127
00DE ; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
00DE ; void SubForSET(int i)
00DE ; {
00DE ; if(WriteTime[i]==0x00)
00DE ; { WriteTime[i]=0x5a;
00DE ; }
00DE A29A sbi 0x14,2
00E0 .dbline 128
00E0 ; if(WriteTime[i]==0x10)
00E0 A998 cbi 0x15,1
00E2 .dbline 129
00E2 ; {WriteTime[i]=0x0a;
00E2 A898 cbi 0x15,0
00E4 .dbline 130
00E4 ; }
00E4 062F mov R16,R22
00E6 .dbline -2
00E6 L14:
00E6 00D0 rcall pop_gset3
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbsym r k 20 c
00EA .dbsym r temp 22 c
00EA .dbsym r i 10 c
00EA .dbsym r addr 20 c
00EA .dbend
00EA .dbfunc e DataFenli _DataFenli fV
.even
00EA _DataFenli::
00EA .dbline -1
00EA .dbline 134
00EA ; if(WriteTime[i]==0x20)
00EA ; {WriteTime[i]=0x1a;
00EA ; }
00EA ; if(WriteTime[i]==0x30)
00EA .dbline 135
00EA ; {WriteTime[i]=0x2a;
00EA 80911900 lds R24,_second
00EE 8F70 andi R24,15
00F0 80931200 sts _secondtl,R24
00F4 .dbline 136
00F4 ; }
00F4 80911900 lds R24,_second
00F8 8295 swap R24
00FA 8F70 andi R24,#0x0F
00FC 80931100 sts _secondth,R24
0100 .dbline 138
0100 ; if(WriteTime[i]==0x40)
0100 ; {WriteTime[i]=0x3a;
0100 80911800 lds R24,_minute
0104 8F70 andi R24,15
0106 80931000 sts _minutetl,R24
010A .dbline 139
010A ; }
010A 80911800 lds R24,_minute
010E 8295 swap R24
0110 8F70 andi R24,#0x0F
0112 80930F00 sts _minuteth,R24
0116 .dbline 141
0116 ; if(WriteTime[i]==0x50)
0116 ; {WriteTime[i]=0x49;
0116 80911700 lds R24,_hour
011A 8F70 andi R24,15
011C 80930E00 sts _hourtl,R24
0120 .dbline 142
0120 ; }
0120 80911700 lds R24,_hour
0124 8295 swap R24
0126 8F70 andi R24,#0x0F
0128 80930D00 sts _hourth,R24
012C .dbline 144
012C ; else
012C ; WriteTime[i]=WriteTime[i]-1;
012C 80911600 lds R24,_date
0130 8F70 andi R24,15
0132 80930C00 sts _datetl,R24
0136 .dbline 145
0136 ; }
0136 80911600 lds R24,_date
013A 8295 swap R24
013C 8F70 andi R24,#0x0F
013E 80930B00 sts _dateth,R24
0142 .dbline 147
0142 ;
0142 ; /*cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc*/
0142 80911400 lds R24,_month
0146 8F70 andi R24,15
0148 80930A00 sts _monthtl,R24
014C .dbline 148
014C ; //设置小时加减法子程序
014C 80911400 lds R24,_month
0150 8295 swap R24
0152 8F70 andi R24,#0x0F
0154 80930900 sts _monthth,R24
0158 .dbline 150
0158 ; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
0158 ; //加法
0158 80911300 lds R24,_year
015C 8F70 andi R24,15
015E 80930800 sts _yeartl,R24
0162 .dbline 151
0162 ; void PlusHour(int i)
0162 80911300 lds R24,_year
0166 8295 swap R24
0168 8F70 andi R24,#0x0F
016A 80930700 sts _yearth,R24
016E .dbline -2
016E L27:
016E .dbline 0 ; func end
016E 0895 ret
0170 .dbend
0170 .dbfunc e DS1302_ReadTime _DS1302_ReadTime fV
.even
0170 _DS1302_ReadTime::
0170 .dbline -1
0170 .dbline 157
0170 ; {
0170 ; if(WriteTime[i]==0x09)
0170 ; { WriteTime[i]=0x0f;
0170 ; }
0170 ; if(WriteTime[i]==0x19)
0170 ; {WriteTime[i]=0x1f;
0170 .dbline 158
0170 ; }
0170 01E8 ldi R16,129
0172 7CDF rcall _DS1302_Read
0174 00931900 sts _second,R16
0178 .dbline 159
0178 ; if(WriteTime[i]==0x23)
0178 03E8 ldi R16,131
017A 78DF rcall _DS1302_Read
017C 00931800 sts _minute,R16
0180 .dbline 160
0180 ; {WriteTime[i]=0x00;
0180 05E8 ldi R16,133
0182 74DF rcall _DS1302_Read
0184 00931700 sts _hour,R16
0188 .dbline 161
0188 ; }
0188 07E8 ldi R16,135
018A 70DF rcall _DS1302_Read
018C 00931600 sts _date,R16
0190 .dbline 162
0190 ; else
0190 09E8 ldi R16,137
0192 6CDF rcall _DS1302_Read
0194 00931400 sts _month,R16
0198 .dbline 163
0198 ; WriteTime[i]=WriteTime[i]+1;
0198 0DE8 ldi R16,141
019A 68DF rcall _DS1302_Read
019C 00931300 sts _year,R16
01A0 .dbline 170
01A0 ; }
01A0 ; //减法
01A0 ; void SubHour(int i)
01A0 ; {
01A0 ; if(WriteTime[i]==0x00)
01A0 ; { WriteTime[i]=0x24;
01A0 ; }
01A0 A4DF rcall _DataFenli
01A2 .dbline -2
01A2 L28:
01A2 .dbline 0 ; func end
01A2 0895 ret
01A4 .dbend
01A4 .dbfunc e DS1302_WriteTime _DS1302_WriteTime fV
01A4 ; time -> R20,R21
01A4 ; ddr -> R22,R23
.even
01A4 _DS1302_WriteTime::
01A4 00D0 rcall push_gset2
01A6 .dbline -1
01A6 .dbline 176
01A6 ; if(WriteTime[i]==0x10)
01A6 ; {WriteTime[i]=0x0a;
01A6 ; }
01A6 ; if(WriteTime[i]==0x20)
01A6 ; {WriteTime[i]=0x19;
01A6 ; }
01A6 .dbline 177
01A6 ; else
01A6 60E0 ldi R22,<_WriteAddress
01A8 70E0 ldi R23,>_WriteAddress
01AA .dbline 178
01AA ; WriteTime[i]=WriteTime[i]-1;
01AA 40E0 ldi R20,<_WriteTime
01AC 50E0 ldi R21,>_WriteTime
01AE 09C0 rjmp L31
01B0 L30:
01B0 .dbline 180
01B0 .dbline 181
01B0 FA01 movw R30,R20
01B2 2081 ldd R18,z+0
01B4 FB01 movw R30,R22
01B6 0081 ldd R16,z+0
01B8 4FDF rcall _DS1302_WriteT
01BA .dbline 182
01BA 6F5F subi R22,255 ; offset = 1
01BC 7F4F sbci R23,255
01BE .dbline 183
01BE 4F5F subi R20,255 ; offset = 1
01C0 5F4F sbci R21,255
01C2 .dbline 184
01C2 L31:
01C2 .dbline 179
01C2 ; }
01C2 FB01 movw R30,R22
01C4 2080 ldd R2,z+0
01C6 2220 tst R2
01C8 99F7 brne L30
01CA .dbline -2
01CA L29:
01CA 00D0 rcall pop_gset2
01CC .dbline 0 ; func end
01CC 0895 ret
01CE .dbsym r time 20 pc
01CE .dbsym r ddr 22 pc
01CE .dbend
01CE .dbfile E:\biyesheji\SUCCES~1\SENDSE~1\SETPFI~2\程序/DELAY.C
01CE .dbfunc e delay_1us _delay_1us fV
.even
01CE _delay_1us::
01CE .dbline -1
01CE .dbline 5
01CE .dbline 6
01CE 0000 nop
01D0 .dbline -2
01D0 L33:
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbend
01D2 .dbfunc e delay_nus _delay_nus fV
01D2 ; i -> R20,R21
01D2 ; n -> R22,R23
.even
01D2 _delay_nus::
01D2 00D0 rcall push_gset2
01D4 B801 movw R22,R16
01D6 .dbline -1
01D6 .dbline 10
01D6 .dbline 11
01D6 4427 clr R20
01D8 5527 clr R21
01DA .dbline 12
01DA 03C0 rjmp L38
01DC L35:
01DC .dbline 13
01DC F8DF rcall _delay_1us
01DE L36:
01DE .dbline 12
01DE 4F5F subi R20,255 ; offset = 1
01E0 5F4F sbci R21,255
01E2 L38:
01E2 .dbline 12
01E2 4617 cp R20,R22
01E4 5707 cpc R21,R23
01E6 D0F3 brlo L35
01E8 .dbline -2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -