📄 lcd1602.lis
字号:
050C .dbline 231
050C ; flash_flag++;
050C 80910700 lds R24,_flash_flag
0510 8F5F subi R24,255 ; addi 1
0512 80930700 sts _flash_flag,R24
0516 .dbline 232
0516 ; if((flash_flag%2)==0)//判断是否是一秒
0516 12E0 ldi R17,2
0518 082F mov R16,R24
051A 0E940000 xcall mod8u
051E 0023 tst R16
0520 09F0 breq X6
0522 3BC1 xjmp L101
0524 X6:
0524 .dbline 233
0524 ; {
0524 .dbline 235
0524 ;
0524 ; sec++;
0524 80910000 lds R24,_sec
0528 8F5F subi R24,255 ; addi 1
052A 80930000 sts _sec,R24
052E .dbline 236
052E ; if(sec==60) //超过60秒,分加1;秒清0
052E 8C33 cpi R24,60
0530 41F4 brne L103
0532 .dbline 237
0532 ; {
0532 .dbline 238
0532 ; min++;
0532 80910100 lds R24,_min
0536 8F5F subi R24,255 ; addi 1
0538 80930100 sts _min,R24
053C .dbline 239
053C ; sec=0;
053C 2224 clr R2
053E 20920000 sts _sec,R2
0542 .dbline 240
0542 ; }
0542 L103:
0542 .dbline 241
0542 ; if(min==60) //超过60分,小时位进1,
0542 80910100 lds R24,_min
0546 8C33 cpi R24,60
0548 41F4 brne L105
054A .dbline 242
054A ; {
054A .dbline 243
054A ; hou++;
054A 80910200 lds R24,_hou
054E 8F5F subi R24,255 ; addi 1
0550 80930200 sts _hou,R24
0554 .dbline 244
0554 ; min=0;
0554 2224 clr R2
0556 20920100 sts _min,R2
055A .dbline 245
055A ; }
055A L105:
055A .dbline 246
055A ; if(hou==24) //小时位超过24,则清0
055A 80910200 lds R24,_hou
055E 8831 cpi R24,24
0560 41F4 brne L107
0562 .dbline 247
0562 ; {
0562 .dbline 248
0562 ; hou=0;
0562 2224 clr R2
0564 20920200 sts _hou,R2
0568 .dbline 249
0568 ; day++;
0568 80910600 lds R24,_day
056C 8F5F subi R24,255 ; addi 1
056E 80930600 sts _day,R24
0572 .dbline 250
0572 ; }
0572 L107:
0572 .dbline 251
0572 ; if(((year%4==0)&&(year%100!=0))||(year%400==0)) //判断是否为闰年 1为闰年
0572 80910300 lds R24,_year
0576 90910400 lds R25,_year+1
057A 8370 andi R24,3
057C 9070 andi R25,0
057E 8030 cpi R24,0
0580 8907 cpc R24,R25
0582 59F4 brne L112
0584 X3:
0584 24E6 ldi R18,100
0586 30E0 ldi R19,0
0588 00910300 lds R16,_year
058C 10910400 lds R17,_year+1
0590 0E940000 xcall mod16u
0594 0030 cpi R16,0
0596 0107 cpc R16,R17
0598 61F4 brne L111
059A X4:
059A L112:
059A 20E9 ldi R18,400
059C 31E0 ldi R19,1
059E 00910300 lds R16,_year
05A2 10910400 lds R17,_year+1
05A6 0E940000 xcall mod16u
05AA 0030 cpi R16,0
05AC 0107 cpc R16,R17
05AE 09F0 breq X7
05B0 74C0 xjmp L109
05B2 X7:
05B2 X5:
05B2 L111:
05B2 .dbline 252
05B2 ; {
05B2 .dbline 253
05B2 ; if((month==2)&&(day==30))//闰年2月份是29天
05B2 80910500 lds R24,_month
05B6 8230 cpi R24,2
05B8 69F4 brne L113
05BA 80910600 lds R24,_day
05BE 8E31 cpi R24,30
05C0 49F4 brne L113
05C2 .dbline 254
05C2 ; {
05C2 .dbline 255
05C2 ; month++;
05C2 80910500 lds R24,_month
05C6 8F5F subi R24,255 ; addi 1
05C8 80930500 sts _month,R24
05CC .dbline 256
05CC ; day=0;
05CC 2224 clr R2
05CE 20920600 sts _day,R2
05D2 .dbline 257
05D2 ; }
05D2 D3C0 xjmp L110
05D4 L113:
05D4 .dbline 258
05D4 ; else if((month<=7)&&(month%2==0)&&(day==31))//其他月份小于等于7月份的偶数月份是30天
05D4 87E0 ldi R24,7
05D6 20900500 lds R2,_month
05DA 8215 cp R24,R2
05DC 98F0 brlo L115
05DE 12E0 ldi R17,2
05E0 022D mov R16,R2
05E2 0E940000 xcall mod8u
05E6 0023 tst R16
05E8 69F4 brne L115
05EA 80910600 lds R24,_day
05EE 8F31 cpi R24,31
05F0 49F4 brne L115
05F2 .dbline 259
05F2 ; {
05F2 .dbline 260
05F2 ; month++;
05F2 80910500 lds R24,_month
05F6 8F5F subi R24,255 ; addi 1
05F8 80930500 sts _month,R24
05FC .dbline 261
05FC ; day=0;
05FC 2224 clr R2
05FE 20920600 sts _day,R2
0602 .dbline 262
0602 ; }
0602 BBC0 xjmp L110
0604 L115:
0604 .dbline 263
0604 ; else if((month<=7)&&(month%2!=0)&&(day==32))//奇数是31天;
0604 87E0 ldi R24,7
0606 20900500 lds R2,_month
060A 8215 cp R24,R2
060C 98F0 brlo L117
060E 12E0 ldi R17,2
0610 022D mov R16,R2
0612 0E940000 xcall mod8u
0616 0023 tst R16
0618 69F0 breq L117
061A 80910600 lds R24,_day
061E 8032 cpi R24,32
0620 49F4 brne L117
0622 .dbline 264
0622 ; {
0622 .dbline 265
0622 ; month++;
0622 80910500 lds R24,_month
0626 8F5F subi R24,255 ; addi 1
0628 80930500 sts _month,R24
062C .dbline 266
062C ; day=0;
062C 2224 clr R2
062E 20920600 sts _day,R2
0632 .dbline 267
0632 ; }
0632 A3C0 xjmp L110
0634 L117:
0634 .dbline 268
0634 ; else if((month>7)&&(month%2==0)&&(day==32))//大于7月份的偶数月份是31天
0634 87E0 ldi R24,7
0636 20900500 lds R2,_month
063A 8215 cp R24,R2
063C 98F4 brsh L119
063E 12E0 ldi R17,2
0640 022D mov R16,R2
0642 0E940000 xcall mod8u
0646 0023 tst R16
0648 69F4 brne L119
064A 80910600 lds R24,_day
064E 8032 cpi R24,32
0650 49F4 brne L119
0652 .dbline 269
0652 ; {
0652 .dbline 270
0652 ; month++;
0652 80910500 lds R24,_month
0656 8F5F subi R24,255 ; addi 1
0658 80930500 sts _month,R24
065C .dbline 271
065C ; day=0;
065C 2224 clr R2
065E 20920600 sts _day,R2
0662 .dbline 272
0662 ; }
0662 8BC0 xjmp L110
0664 L119:
0664 .dbline 273
0664 ; else if((month>7)&&(month%2!=0)&&(day==31))//奇数是30天;
0664 87E0 ldi R24,7
0666 20900500 lds R2,_month
066A 8215 cp R24,R2
066C 08F0 brlo X8
066E 85C0 xjmp L110
0670 X8:
0670 12E0 ldi R17,2
0672 022D mov R16,R2
0674 0E940000 xcall mod8u
0678 0023 tst R16
067A 09F4 brne X9
067C 7EC0 xjmp L110
067E X9:
067E 80910600 lds R24,_day
0682 8F31 cpi R24,31
0684 09F0 breq X10
0686 79C0 xjmp L110
0688 X10:
0688 .dbline 274
0688 ; {
0688 .dbline 275
0688 ; month++;
0688 80910500 lds R24,_month
068C 8F5F subi R24,255 ; addi 1
068E 80930500 sts _month,R24
0692 .dbline 276
0692 ; day=0;
0692 2224 clr R2
0694 20920600 sts _day,R2
0698 .dbline 277
0698 ; }
0698 .dbline 278
0698 ; }
0698 70C0 xjmp L110
069A L109:
069A .dbline 279
069A ; else if((month==2)&&(day==29))//不是闰年二月份是28天;
069A 80910500 lds R24,_month
069E 8230 cpi R24,2
06A0 69F4 brne L123
06A2 80910600 lds R24,_day
06A6 8D31 cpi R24,29
06A8 49F4 brne L123
06AA .dbline 280
06AA ; {
06AA .dbline 281
06AA ; month++;
06AA 80910500 lds R24,_month
06AE 8F5F subi R24,255 ; addi 1
06B0 80930500 sts _month,R24
06B4 .dbline 282
06B4 ; day=0;
06B4 2224 clr R2
06B6 20920600 sts _day,R2
06BA .dbline 283
06BA ; }
06BA 5FC0 xjmp L124
06BC L123:
06BC .dbline 284
06BC ; else if((month<=7)&&(month%2==0)&&(day==31))//其他月份小于等于7月份的偶数月份是30天
06BC 87E0 ldi R24,7
06BE 20900500 lds R2,_month
06C2 8215 cp R24,R2
06C4 98F0 brlo L125
06C6 12E0 ldi R17,2
06C8 022D mov R16,R2
06CA 0E940000 xcall mod8u
06CE 0023 tst R16
06D0 69F4 brne L125
06D2 80910600 lds R24,_day
06D6 8F31 cpi R24,31
06D8 49F4 brne L125
06DA .dbline 285
06DA ; {
06DA .dbline 286
06DA ; month++;
06DA 80910500 lds R24,_month
06DE 8F5F subi R24,255 ; addi 1
06E0 80930500 sts _month,R24
06E4 .dbline 287
06E4 ; day=0;
06E4 2224 clr R2
06E6 20920600 sts _day,R2
06EA .dbline 288
06EA ; }
06EA 47C0 xjmp L126
06EC L125:
06EC .dbline 289
06EC ; else if((month<=7)&&(month%2!=0)&&(day==32))//奇数是31天;
06EC 87E0 ldi R24,7
06EE 20900500 lds R2,_month
06F2 8215 cp R24,R2
06F4 98F0 brlo L127
06F6 12E0 ldi R17,2
06F8 022D mov R16,R2
06FA 0E940000 xcall mod8u
06FE 0023 tst R16
0700 69F0 breq L127
0702 80910600 lds R24,_day
0706 8032 cpi R24,32
0708 49F4 brne L127
070A .dbline 290
070A ; {
070A .dbline 291
070A ; month++;
070A 80910500 lds R24,_month
070E 8F5F subi R24,255 ; addi 1
0710 80930500 sts _month,R24
0714 .dbline 292
0714 ; day=0;
0714 2224 clr R2
0716 20920600 sts _day,R2
071A .dbline 293
071A ; }
071A 2FC0 xjmp L128
071C L127:
071C .dbline 294
071C ; else if((month>7)&&(month%2==0)&&(day==32))//大于7月份的偶数月份是31天
071C 87E0 ldi R24,7
071E 209005
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -