📄 万年历.s
字号:
.dbline 99
; hour=hour+1;
lds R24,_hour
subi R24,255 ; addi 1
sts _hour,R24
.dbline 100
; if(hour==24)
cpi R24,24
brne L27
.dbline 101
; {
.dbline 102
; hour=0;
sts _hour,R2
.dbline 103
; week=week+1;
lds R24,_week
subi R24,255 ; addi 1
sts _week,R24
.dbline 104
; if(week>7)
ldi R24,7
lds R2,_week
cp R24,R2
brsh L29
.dbline 105
; week=1;
ldi R24,1
sts _week,R24
L29:
.dbline 106
; day=day+1;
lds R24,_day
subi R24,255 ; addi 1
sts _day,R24
.dbline 108
;
; if(day>get_days(month))
lds R16,_month
xcall _get_days
lds R2,_day
cp R16,R2
brsh L31
.dbline 109
; {
.dbline 110
; day=1;
ldi R24,1
sts _day,R24
.dbline 111
; month=month+1;
lds R24,_month
subi R24,255 ; addi 1
sts _month,R24
.dbline 112
; if(month>12)
ldi R24,12
lds R2,_month
cp R24,R2
brsh L33
.dbline 113
; {
.dbline 114
; month=1;
ldi R24,1
sts _month,R24
.dbline 115
; year=year+1;
lds R24,_year
lds R25,_year+1
adiw R24,1
sts _year+1,R25
sts _year,R24
.dbline 116
; }
L33:
.dbline 117
; }
L31:
.dbline 119
;
; }
L27:
.dbline 120
; }
L25:
.dbline 121
L23:
.dbline -2
L22:
xcall pop_lset
.dbline 0 ; func end
reti
.dbend
.dbfunc e time _time fV
.even
_time::
sbiw R28,2
.dbline -1
.dbline 124
; }
; }
; void time(void)
; {
.dbline 125
; if(data==0x70)
lds R24,_data
cpi R24,112
brne L36
.dbline 126
; {
.dbline 127
; delay_nms(20);
ldi R16,20
ldi R17,0
xcall _delay_nms
.dbline 128
; if(data==0x70)
lds R24,_data
cpi R24,112
brne L38
.dbline 129
; {
.dbline 130
; count++;
lds R24,_count
subi R24,255 ; addi 1
sts _count,R24
.dbline 131
; if(count>8)
ldi R24,8
lds R2,_count
cp R24,R2
brsh L40
.dbline 132
; { count=0;
.dbline 132
clr R2
sts _count,R2
.dbline 133
; ocmj_write(0xf4);//清屏
ldi R16,244
xcall _ocmj_write
.dbline 134
; }
L40:
.dbline 135
; }
L38:
.dbline 136
; }
L36:
.dbline 138
; /*******************年设置*****************************/
; if(count==1)
lds R24,_count
cpi R24,1
brne L42
.dbline 139
; {
.dbline 140
; hz_tran(0,3,"年设置");
ldi R24,<L44
ldi R25,>L44
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 141
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L45
.dbline 143
;
; {
.dbline 144
; year++;
lds R24,_year
lds R25,_year+1
adiw R24,1
sts _year+1,R25
sts _year,R24
.dbline 145
; }
L45:
.dbline 146
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L47
.dbline 147
; {
.dbline 148
; year--;
lds R24,_year
lds R25,_year+1
sbiw R24,1
sts _year+1,R25
sts _year,R24
.dbline 149
; }
L47:
.dbline 153
;
;
;
; }
L42:
.dbline 155
; /*******************月设置*****************************/
; if(count==2)
lds R24,_count
cpi R24,2
brne L49
.dbline 156
; {hz_tran(0,3,"月设置");
.dbline 156
ldi R24,<L51
ldi R25,>L51
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 157
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L52
.dbline 158
; {
.dbline 159
; month++;
lds R24,_month
subi R24,255 ; addi 1
sts _month,R24
.dbline 160
; if(month>12)
ldi R24,12
lds R2,_month
cp R24,R2
brsh L54
.dbline 161
; {month=1;}
.dbline 161
ldi R24,1
sts _month,R24
.dbline 161
L54:
.dbline 162
; }
L52:
.dbline 163
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L56
.dbline 164
; {
.dbline 165
; month--;
lds R24,_month
subi R24,1
sts _month,R24
.dbline 166
; if(month==0)
tst R24
brne L58
.dbline 167
; {month=12;}
.dbline 167
ldi R24,12
sts _month,R24
.dbline 167
L58:
.dbline 168
; }
L56:
.dbline 171
;
;
; }
L49:
.dbline 173
; /*******************日设置*****************************/
; if(count==3)
lds R24,_count
cpi R24,3
brne L60
.dbline 174
; {
.dbline 175
; hz_tran(0,3,"日设置");
ldi R24,<L62
ldi R25,>L62
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 176
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L63
.dbline 177
; {
.dbline 178
; day++;
lds R24,_day
subi R24,255 ; addi 1
sts _day,R24
.dbline 179
; if(day>get_days(month))
lds R16,_month
xcall _get_days
lds R2,_day
cp R16,R2
brsh L65
.dbline 180
; {day=1;}
.dbline 180
ldi R24,1
sts _day,R24
.dbline 180
L65:
.dbline 181
; }
L63:
.dbline 182
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L67
.dbline 183
; {
.dbline 184
; day--;
lds R24,_day
subi R24,1
sts _day,R24
.dbline 185
; if(day==0)
tst R24
brne L69
.dbline 186
; {day=get_days(month);}
.dbline 186
lds R16,_month
xcall _get_days
sts _day,R16
.dbline 186
L69:
.dbline 187
; }
L67:
.dbline 190
;
;
; }
L60:
.dbline 193
;
; /*******************星期设置*****************************/
; if(count==4)
lds R24,_count
cpi R24,4
brne L71
.dbline 194
; {
.dbline 195
; hz_tran(0,3,"星期设置");
ldi R24,<L73
ldi R25,>L73
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 196
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L74
.dbline 197
; {
.dbline 198
; week++;
lds R24,_week
subi R24,255 ; addi 1
sts _week,R24
.dbline 199
; if(week>7)
ldi R24,7
lds R2,_week
cp R24,R2
brsh L76
.dbline 200
; {week=1;}
.dbline 200
ldi R24,1
sts _week,R24
.dbline 200
L76:
.dbline 201
; }
L74:
.dbline 202
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L78
.dbline 203
; {
.dbline 204
; week--;
lds R24,_week
subi R24,1
sts _week,R24
.dbline 205
; if(week==0)
tst R24
brne L80
.dbline 206
; {week=7;}
.dbline 206
ldi R24,7
sts _week,R24
.dbline 206
L80:
.dbline 207
; }
L78:
.dbline 208
; }
L71:
.dbline 210
; /*******************小时设置*****************************/
; if(count==5)
lds R24,_count
cpi R24,5
brne L82
.dbline 211
; {
.dbline 212
; hz_tran(0,3,"小时设置");
ldi R24,<L84
ldi R25,>L84
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 213
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L85
.dbline 214
; {
.dbline 215
; hour++;
lds R24,_hour
subi R24,255 ; addi 1
sts _hour,R24
.dbline 216
; if(hour>24)
ldi R24,24
lds R2,_hour
cp R24,R2
brsh L87
.dbline 217
; {hour=1;}
.dbline 217
ldi R24,1
sts _hour,R24
.dbline 217
L87:
.dbline 218
; }
L85:
.dbline 219
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L89
.dbline 220
; {
.dbline 221
; hour--;
lds R24,_hour
subi R24,1
sts _hour,R24
.dbline 222
; if(hour==0)
tst R24
brne L91
.dbline 223
; {hour=23;}
.dbline 223
ldi R24,23
sts _hour,R24
.dbline 223
L91:
.dbline 224
; }
L89:
.dbline 226
;
; }
L82:
.dbline 228
; /*******************分钟设置*****************************/
; if(count==6)
lds R24,_count
cpi R24,6
brne L93
.dbline 229
; {
.dbline 230
; hz_tran(0,3,"分钟设置");
ldi R24,<L95
ldi R25,>L95
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 231
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L96
.dbline 232
; {
.dbline 233
; minute++;
lds R24,_minute
subi R24,255 ; addi 1
sts _minute,R24
.dbline 234
; if(minute>60)
ldi R24,60
lds R2,_minute
cp R24,R2
brsh L98
.dbline 235
; {minute=1;}
.dbline 235
ldi R24,1
sts _minute,R24
.dbline 235
L98:
.dbline 236
; }
L96:
.dbline 237
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L100
.dbline 238
; {
.dbline 239
; minute--;
lds R24,_minute
subi R24,1
sts _minute,R24
.dbline 240
; if(minute==0)
tst R24
brne L102
.dbline 241
; {minute=59;}
.dbline 241
ldi R24,59
sts _minute,R24
.dbline 241
L102:
.dbline 242
; }
L100:
.dbline 244
;
; }
L93:
.dbline 246
; /*******************秒设置*****************************/
; if(count==7)
lds R24,_count
cpi R24,7
brne L104
.dbline 247
; {
.dbline 248
; hz_tran(0,3,"秒钟设置");
ldi R24,<L106
ldi R25,>L106
std y+1,R25
std y+0,R24
ldi R18,3
clr R16
xcall _hz_tran
.dbline 249
; if(data==0x79)
lds R24,_data
cpi R24,121
brne L107
.dbline 250
; {
.dbline 251
; second++;
lds R24,_second
subi R24,255 ; addi 1
sts _second,R24
.dbline 252
; if(second>60)
ldi R24,60
lds R2,_second
cp R24,R2
brsh L109
.dbline 253
; {second=1;}
.dbline 253
ldi R24,1
sts _second,R24
.dbline 253
L109:
.dbline 254
; }
L107:
.dbline 255
; if(data==0x7B)
lds R24,_data
cpi R24,123
brne L111
.dbline 256
; {
.dbline 257
; second--;
lds R24,_second
subi R24,1
sts _second,R24
.dbline 258
; if(second==0)
tst R24
brne L113
.dbline 259
; {second=59;}
.dbline 259
ldi R24,59
sts _second,R24
.dbline 259
L113:
.dbline 260
; }
L111:
.dbline 262
;
; }
L104:
.dbline 263
; time_display();
xcall _time_display
.dbline -2
L35:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e instruction _instruction fV
.even
_instruction::
sbiw R28,4
.dbline -1
.dbline 266
; }
; void instruction(void)
; {
.dbline 267
; hz_tran(1,0,"键为功能键");
ldi R24,<L116
ldi R25,>L116
std y+1,R25
std y+0,R24
clr R18
ldi R16,1
xcall _hz_tran
.dbline 268
; hz_tran(1,1,"键表示增加");
ldi R24,<L117
ldi R25,>L117
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,1
xcall _hz_tran
.dbline 269
; hz_tran(1,2,"键表示减少");
ldi R24,<L118
ldi R25,>L118
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,1
xcall _hz_tran
.dbline 270
; hz_tran(6,3,"返回");
ldi R24,<L7
ldi R25,>L7
std y+1,R25
std y+0,R24
ldi R18,3
ldi R16,6
xcall _hz_tran
.dbline 271
; write_ASCII(0xf9,13,48,69);//E
ldi R24,69
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,48
std y+1,R25
std y+0,R24
ldi R18,13
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline 272
; write_ASCII(0xf9,14,48,115);//s
ldi R24,115
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,48
std y+1,R25
std y+0,R24
ldi R18,14
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline 273
; write_ASCII(0xf9,15,48,99);//c
ldi R24,99
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,48
std y+1,R25
std y+0,R24
ldi R18,15
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline 274
; write_ASCII(0xf9,4,0,48);//0
ldi R24,48
ldi R25,0
std y+3,R25
std y+2,R24
clr R2
clr R3
std y+1,R3
std y+0,R2
ldi R18,4
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline 275
; write_ASCII(0xf9,4,16,43);//+
ldi R24,43
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,16
std y+1,R25
std y+0,R24
ldi R18,4
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline 276
; write_ASCII(0xf9,4,32,45);//-
ldi R24,45
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,32
std y+1,R25
std y+0,R24
ldi R18,4
ldi R19,0
ldi R16,249
ldi R17,0
xcall _write_ASCII
.dbline -2
L115:
adiw R28,4
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile F:\调试\万年历.c
_alrm_minute::
.blkb 1
.dbsym e alrm_minute _alrm_minute c
_alrm_hour::
.blkb 1
.dbsym e alrm_hour _alrm_hour c
_count::
.blkb 1
.dbsym e count _count c
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L118:
.blkb 11
.area idata
.byte 188,252,177,237,202,190,188,245,201,217,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L117:
.blkb 11
.area idata
.byte 188,252,177,237,202,190,212,246,188,211,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L116:
.blkb 11
.area idata
.byte 188,252,206,170,185,166,196,220,188,252,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L106:
.blkb 9
.area idata
.byte 195,235,214,211,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L95:
.blkb 9
.area idata
.byte 183,214,214,211,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L84:
.blkb 9
.area idata
.byte 208,161,202,177,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L73:
.blkb 9
.area idata
.byte 208,199,198,218,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L62:
.blkb 7
.area idata
.byte 200,213,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L51:
.blkb 7
.area idata
.byte 212,194,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L44:
.blkb 7
.area idata
.byte 196,234,201,232,214,195,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L7:
.blkb 5
.area idata
.byte 183,181,187,216,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L6:
.blkb 5
.area idata
.byte 206,194,182,200,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L5:
.blkb 5
.area idata
.byte 208,199,198,218,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L4:
.blkb 3
.area idata
.byte 200,213,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L3:
.blkb 3
.area idata
.byte 212,194,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
L2:
.blkb 3
.area idata
.byte 196,234,0
.area data(ram, con, rel)
.dbfile F:\调试\万年历.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -