?? time.s
字號:
sbiw R28,4
.dbline -1
.dbline 107
; void timecal(void)
; {
.dbline 109
; unsigned char temp,step;
; ocmj_write(0xf4);
ldi R16,244
ldi R17,0
xcall _ocmj_write
.dbline 110
; hz_tran(2,1,"輸入時間");
ldi R24,<L39
ldi R25,>L39
std y+0,R24
std y+1,R25
ldi R18,1
ldi R19,0
ldi R16,2
ldi R17,0
xcall _hz_tran
.dbline 111
; hz_tran(1,2,"按");
ldi R24,<L40
ldi R25,>L40
std y+0,R24
std y+1,R25
ldi R18,2
ldi R19,0
ldi R16,1
ldi R17,0
xcall _hz_tran
.dbline 112
; asc_tran(4,36,"SHIFT");
ldi R24,<L41
ldi R25,>L41
std y+0,R24
std y+1,R25
ldi R18,36
ldi R19,0
ldi R16,4
ldi R17,0
xcall _asc_tran
.dbline 113
; hz_tran(5,2,"確定");
ldi R24,<L42
ldi R25,>L42
std y+0,R24
std y+1,R25
ldi R18,2
ldi R19,0
ldi R16,5
ldi R17,0
xcall _hz_tran
.dbline 114
; asc_tran(4,52,"__:__:__");
ldi R24,<L43
ldi R25,>L43
std y+0,R24
std y+1,R25
ldi R18,52
ldi R19,0
ldi R16,4
ldi R17,0
xcall _asc_tran
.dbline 115
; for(temp=0;temp<9;temp++)
clr R20
xjmp L47
L44:
.dbline 116
.dbline 117
ldi R24,<_time
ldi R25,>_time
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldi R24,95
std z+0,R24
.dbline 118
L45:
.dbline 115
inc R20
L47:
.dbline 115
cpi R20,9
brlo L44
.dbline 119
; {
; time[temp]='_';
; }
; time[2]=':';
ldi R24,58
sts _time+2,R24
.dbline 120
; time[5]=':';
sts _time+5,R24
.dbline 121
; time[8]=0;
clr R2
sts _time+8,R2
.dbline 122
; step=0;
clr R10
L51:
.dbline 124
; do
; {
.dbline 125
; temp=keypad();
xcall _keypad
mov R2,R16
mov R3,R17
mov R20,R2
.dbline 126
; if(((temp&0x7f)!=0x7f)&((temp&0x7f)<0x0a))
mov R24,R20
andi R24,127
cpi R24,127
breq L56
ldi R24,1
ldi R25,0
mov R14,R24
mov R15,R25
xjmp L57
L56:
clr R14
clr R15
L57:
mov R24,R20
andi R24,127
cpi R24,10
brsh L58
ldi R24,1
ldi R25,0
mov R12,R24
mov R13,R25
xjmp L59
L58:
clr R12
clr R13
L59:
mov R2,R14
mov R3,R15
and R2,R12
and R3,R13
tst R2
brne X1
tst R3
brne X2
xjmp L54
X2:
X1:
.dbline 127
; {
.dbline 128
; switch (step)
mov R22,R10
clr R23
cpi R22,0
ldi R30,0
cpc R23,R30
brge X3
xjmp L60
X3:
ldi R24,5
ldi R25,0
cp R24,R22
cpc R25,R23
brge X4
xjmp L60
X4:
ldi R24,<L92
ldi R25,>L92
mov R16,R22
mov R17,R23
lsl R16
rol R17
add R16,R24
adc R17,R25
xcall lpm16
mov R30,R16
mov R31,R17
ijmp
X0:
.dbline 129
; {
L63:
.dbline 130
; case 0:{
.dbline 131
; if (temp<3)
cpi R20,3
brlo X5
xjmp L61
X5:
.dbline 132
; {
.dbline 133
; hour=temp*10;
ldi R16,10
mov R17,R20
xcall mpy8s
sts _hour,R16
.dbline 134
; time[0]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time,R24
.dbline 135
; step++;
inc R10
.dbline 136
; }
.dbline 137
; break;
xjmp L61
L66:
.dbline 139
; }
; case 1:{
.dbline 140
; if(hour<20)
lds R24,_hour
cpi R24,20
brsh L67
.dbline 141
; {
.dbline 142
; hour+=temp;
mov R2,R24
add R2,R20
sts _hour,R2
.dbline 143
; time[1]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+1,R24
.dbline 144
; step++;
inc R10
.dbline 145
; }
xjmp L61
L67:
.dbline 147
; else
; {
.dbline 148
; if(temp<4)
cpi R20,4
brlo X6
xjmp L61
X6:
.dbline 149
; {
.dbline 150
; hour+=temp;
lds R2,_hour
add R2,R20
sts _hour,R2
.dbline 151
; time[1]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+1,R24
.dbline 152
; step++;
inc R10
.dbline 153
; }
.dbline 154
; }
.dbline 155
; break;
xjmp L61
L73:
.dbline 157
; }
; case 2:{
.dbline 158
; if (temp<6)
cpi R20,6
brlo X7
xjmp L61
X7:
.dbline 159
; {
.dbline 160
; minute=temp*10;
ldi R16,10
mov R17,R20
xcall mpy8s
sts _minute,R16
.dbline 161
; time[3]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+3,R24
.dbline 162
; step++;
inc R10
.dbline 163
; }
.dbline 164
; break;
xjmp L61
L77:
.dbline 166
; }
; case 3:{
.dbline 167
; minute+=temp;
lds R2,_minute
add R2,R20
sts _minute,R2
.dbline 168
; time[4]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+4,R24
.dbline 169
; step++;
inc R10
.dbline 170
; break;
xjmp L61
L79:
.dbline 172
; }
; case 4:{
.dbline 173
; if(temp<6)
cpi R20,6
brsh L61
.dbline 174
; {
.dbline 175
; second=second*10;
lds R17,_second
ldi R16,10
xcall mpy8s
sts _second,R16
.dbline 176
; time[6]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+6,R24
.dbline 177
; step++;
inc R10
.dbline 178
; }
.dbline 179
; break;
xjmp L61
L83:
.dbline 181
; }
; case 5:{
.dbline 182
; second+=temp;
lds R2,_second
add R2,R20
sts _second,R2
.dbline 183
; time[7]=temp+0x30;
mov R24,R20
subi R24,208 ; addi 48
sts _time+7,R24
.dbline 184
; step++;
inc R10
.dbline 185
; break;
xjmp L61
L60:
.dbline 188
; }
; default:
; {
.dbline 189
; for(step=0;step<9;step++)
clr R10
xjmp L88
L85:
.dbline 190
.dbline 191
ldi R24,<_time
ldi R25,>_time
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldi R24,95
std z+0,R24
.dbline 192
L86:
.dbline 189
inc R10
L88:
.dbline 189
mov R24,R10
cpi R24,9
brlo L85
.dbline 193
; {
; time[step]='_';
; }
; time[2]=':';
ldi R24,58
sts _time+2,R24
.dbline 194
; time[5]=':';
sts _time+5,R24
.dbline 195
; time[8]=0;
clr R2
sts _time+8,R2
.dbline 196
; step=0;
clr R10
.dbline 197
; }
.dbline 198
; }
L61:
.dbline 199
; cls(0,3,1,8);
ldi R24,8
ldi R25,0
std y+2,R24
std y+3,R25
ldi R24,1
std y+0,R24
std y+1,R25
ldi R18,3
ldi R19,0
clr R16
clr R17
xcall _cls
.dbline 200
; asc_tran(4,52,time);
ldi R24,<_time
ldi R25,>_time
std y+0,R24
std y+1,R25
ldi R18,52
ldi R19,0
ldi R16,4
ldi R17,0
xcall _asc_tran
.dbline 201
; }
L54:
.dbline 202
; }
L52:
.dbline 203
; while((temp&0x80)!=0x80);
mov R24,R20
andi R24,128
cpi R24,128
breq X8
xjmp L51
X8:
.dbline -2
.dbline 204
; }
L38:
adiw R28,4
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r step 10 c
.dbsym r temp 20 c
.area bss(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
_time::
.blkb 9
.dbsym s time _time A[9:9]c
_hour::
.blkb 1
.dbsym s hour _hour c
_minute::
.blkb 1
.dbsym s minute _minute c
_second::
.blkb 1
.dbsym s second _second c
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
L43:
.blkb 9
.area idata
.byte 95,95,58,95,95,58,95,95,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
L42:
.blkb 5
.area idata
.byte 200,183,182,168,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
L41:
.blkb 6
.area idata
.byte 'S,'H,'I,'F,'T,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
L40:
.blkb 3
.area idata
.byte 176,180,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
L39:
.blkb 9
.area idata
.byte 202,228,200,235,202,177,188,228,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\Pc_At\time.c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -