📄 1
字号:
0139 30B20C 177 JNB KEY2,SET2
013C 30A619 178 JNB KEYSW0,SAFEADD1
013F 30A724 179 JNB KEYSW1,SAFESUBB1
0142 120646 180 LCALL TEMPUP ;显示报警温度
0145 020139 181 LJMP SET10
0148 12044E 182 SET2: LCALL DELAY1
014B 30B2FA 183 JNB KEY2,SET2
014E 09 184 INC R1
014F E9 185 MOV A,R1
0150 C3 186 CLR C
0151 B46500 187 CJNE A,#65H,SET101
0154 40E3 188 SET101: JC SET10
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 4
0156 2174 189 AJMP SETOUT
190 ;
0158 12044E 191 SAFEADD1: LCALL DELAY1
015B 30A6FA 192 JNB KEYSW0,SAFEADD1
015E E7 193 MOV A,@R1
015F 120193 194 LCALL ADD11
0162 F7 195 MOV @R1,A
0163 020139 196 LJMP SET10
0166 12044E 197 SAFESUBB1: LCALL DELAY1
0169 30A7FA 198 JNB KEYSW1,SAFESUBB1
016C E7 199 MOV A,@R1
016D 12019D 200 LCALL SUBB11
0170 F7 201 MOV @R1,A
0171 020139 202 LJMP SET10
203 ;
0174 856243 204 SETOUT: MOV 43H,62H
0177 856342 205 MOV 42H,63H
017A 856441 206 MOV 41H,64H
017D 856640 207 MOV 40H,66H
0180 E4 208 CLR A ; 把40H开始4 字节写入24C16的0000H开始地址中
0181 F8 209 MOV R0, A ;
0182 7940 210 MOV R1, #40H ;
0184 7F04 211 MOV R7, #4 ;R7中的最大数据在1-16
0186 1206AA 212 LCALL C16PAWR ;
0189 1205FB 213 LCALL TEMPP
018C D2A9 214 SETB ET0
018E D28C 215 SETB TR0
0190 02009C 216 MAIN111: LJMP MAIN1
217 ;
0193 218 ADD11:
0193 2401 219 ADD A,#01H
0195 B40A00 220 CJNE A,#0AH,OLOOP
0198 4002 221 OLOOP: JC OUTT
019A 7400 222 MOV A,#00H
019C 22 223 OUTT: RET
224 ;
019D 225 SUBB11:
019D 6002 226 JZ PPP1
019F 14 227 DEC A
01A0 22 228 OUTP: RET
01A1 7409 229 PPP1: MOV A,#09H
01A3 21A0 230 AJMP OUTP
231 ;******************公历设置程序*********************;
232 ;
01A5 12044E 233 SETG : LCALL DELAY1
01A8 20A6E5 234 JB KEYSW0,MAIN111
01AB D28E 235 SETB TR1
01AD D2AB 236 SETB ET1
01AF C28C 237 CLR TR0
01B1 C2A9 238 CLR ET0
01B3 757800 239 MOV 78H,#00H ;调时时秒位为0
01B6 757900 240 MOV 79H,#00H ;调时时秒位为0
01B9 754000 241 MOV 40H,#00H ;调时时秒位为0
01BC 754100 242 MOV 41H,#00H ;调时时秒位为0
01BF 75328E 243 MOV DS1302_ADDR,#8EH
01C2 753100 244 MOV DS1302_DATA,#00H ;允许写1302
01C5 1202EE 245 LCALL WRITE
01C8 753280 246 MOV DS1302_ADDR,#80H
01CB 753180 247 MOV DS1302_DATA,#80H ;1302停止振荡
01CE 1202EE 248 LCALL WRITE
01D1 12044E 249 GWAIT8: LCALL DELAY1
01D4 30A6FA 250 JNB KEYSW0,GWAIT8
251 ;
01D7 30A62F 252 SETG9: JNB KEYSW0,SETG10
01DA 30A702 253 JNB KEYSW1,GADDHOUR
01DD 21D7 254 AJMP SETG9
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 5
01DF AF52 255 GADDHOUR: MOV R7,52H ;小时加一
01E1 1202DF 256 LCALL ADD1
01E4 F552 257 MOV 52H,A
01E6 B42400 258 CJNE A,#24H,GADDHOUR11
01E9 4003 259 GADDHOUR11: JC GADDHOUR1
01EB 755200 260 MOV 52H,#00H
01EE 753284 261 GADDHOUR1: MOV DS1302_ADDR,#84H ;小时值送人1302
01F1 855231 262 MOV DS1302_DATA,52H
01F4 1202EE 263 LCALL WRITE
01F7 A852 264 MOV R0,52H
01F9 1202E4 265 LCALL DIVIDE ;小时值分离送显示缓存
01FC 8973 266 MOV 73H,R1
01FE 8944 267 MOV 44H,R1
0200 8A72 268 MOV 72H,R2
0202 8A45 269 MOV 45H,R2
0204 270 WAITT5:
0204 30A7FD 271 JNB KEYSW1,WAITT5
0207 21D7 272 AJMP SETG9
273
0209 D201 274 SETG10: SETB 01H ;调分时候闪标志
020B 12044E 275 GWAIT10: LCALL DELAY1
020E 30A6FA 276 JNB KEYSW0,GWAIT10
0211 277 SETG11:
0211 30A62F 278 JNB KEYSW0,SETGOUT
0214 30A702 279 JNB KEYSW1,GADDMINTUE
0217 4111 280 AJMP SETG11
0219 AF51 281 GADDMINTUE: MOV R7,51H ;分钟加一
021B 1202DF 282 LCALL ADD1
021E F551 283 MOV 51H,A
0220 B46000 284 CJNE A,#60H,GADDMINTUE11
0223 4003 285 GADDMINTUE11: JC GADDMINTUE1
0225 755100 286 MOV 51H,#00H
0228 753282 287 GADDMINTUE1: MOV DS1302_ADDR,#82H ;分钟值送人1302
022B 855131 288 MOV DS1302_DATA,51H
022E 1202EE 289 LCALL WRITE
0231 A851 290 MOV R0,51H
0233 1202E4 291 LCALL DIVIDE ;分钟值分离送显示缓存
0236 8976 292 MOV 76H,R1
0238 8942 293 MOV 42H,R1
023A 8A75 294 MOV 75H,R2
023C 8A43 295 MOV 43H,R2
023E 296 WAITT6:
023E 30A7FD 297 JNB KEYSW1,WAITT6
0241 4111 298 AJMP SETG11
0243 12044E 299 SETGOUT: LCALL DELAY1
0246 30A6FA 300 JNB KEYSW0,SETGOUT
0249 753280 301 MOV DS1302_ADDR,#80H
024C 753100 302 MOV DS1302_DATA,#00H ;1302晶振开始振荡
024F 1202EE 303 LCALL WRITE
0252 75328E 304 MOV DS1302_ADDR,#8EH
0255 753180 305 MOV DS1302_DATA,#80H ;禁止写入1302
0258 1202EE 306 LCALL WRITE
025B C200 307 CLR 00H
025D C201 308 CLR 01H
025F C2AB 309 CLR ET1 ;关闪中断
0261 C28E 310 CLR TR1
0263 D28C 311 SETB TR0
0265 D2A9 312 SETB ET0
0267 02009C 313 LJMP MAIN1
314 ;以下中断程序用于1秒定时用
026A 315 INTT0:
026A D53309 316 DJNZ CON1S,INTOUT
026D C28C 317 CLR TR0
026F C2A9 318 CLR ET0
0271 75330F 319 MOV CON1S,#CON1S_DATA
0274 D207 320 SETB FLG1S
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 6
0276 32 321 INTOUT: RETI
322 ;
0277 D282 323 BAOJ: SETB SPEAK
0279 E562 324 MOV A,62H
027B B40F03 325 CJNE A,#0FH,BB3
027E 7400 326 MOV A,#00H
0280 C3 327 CLR C
0281 B5431A 328 BB3: CJNE A,43H,BAO1
0284 E563 329 MOV A,63H
0286 B40F03 330 CJNE A,#0FH,BB2
0289 7400 331 MOV A,#00H
028B C3 332 CLR C
028C B5420F 333 BB2: CJNE A,42H,BAO1
028F E564 334 MOV A,64H
0291 C3 335 CLR C
0292 B54109 336 CJNE A,41H,BAO1
0295 E566 337 MOV A,66H
0297 C3 338 CLR C
0298 B54003 339 CJNE A,40H,BAO1
029B C282 340 BAOJING: CLR SPEAK
029D 22 341 BBAO: RET
342 ;
029E 40FD 343 BAO1: JC BBAO
02A0 02029B 344 LJMP BAOJING
345 ;
346 ;****************闪动调时程序*********************;
347 ;
02A3 C0E0 348 INTT1: PUSH ACC
02A5 C0D0 349 PUSH PSW
02A7 D5301A 350 DJNZ INTCON,GFLASHOUT
02AA 753006 351 MOV INTCON,#CON_DATA
02AD B200 352 GFLASH: CPL 00H
02AF 20001A 353 JB 00H,GFLASH5
02B2 854572 354 MOV 72H,45H ;全显示
02B5 854473 355 MOV 73H,44H
02B8 854375 356 MOV 75H,43H
02BB 854276 357 MOV 76H,42H
02BE 854178 358 MOV 78H,41H
02C1 854079 359 MOV 79H,40H
02C4 12036B 360 GFLASHOUT: LCALL TIMEUP
02C7 D0D0 361 POP PSW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -