📄 26l.s
字号:
; i=readx(); stop();
rcall _readx
mov R20,R16
.dbline 123
rcall _stop
.dbline 124
; delayus(10);
ldi R16,10
ldi R17,0
rcall _delayus
.dbline 125
; return(i);
mov R16,R20
.dbline -2
L35:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r address 20 c
.dbend
.dbfunc e x24c02_write _x24c02_write fV
; info -> R20
; address -> R22
.even
_x24c02_write::
rcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 128
; }
; void x24c02_write(uchar address,uchar info)
; {
.dbline 130
; //CLI();
; start(); writex(0xa0);
rcall _start
.dbline 130
ldi R16,160
rcall _writex
.dbline 131
; clock(); writex(address);
rcall _clock
.dbline 131
mov R16,R22
rcall _writex
.dbline 132
; clock(); writex(info);
rcall _clock
.dbline 132
mov R16,R20
rcall _writex
.dbline 133
; clock(); stop();
rcall _clock
.dbline 133
rcall _stop
.dbline 134
; delayus(50);
ldi R16,50
ldi R17,0
rcall _delayus
.dbline -2
L36:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r info 20 c
.dbsym r address 22 c
.dbend
.dbfunc e jiancheicka _jiancheicka fV
; a -> R20
.even
_jiancheicka::
rcall push_gset2
.dbline -1
.dbline 139
; //SEI();
; }
;
; void jiancheicka(void)
; {
.dbline 140
; uchar a=0;
clr R20
.dbline 141
; DDRB&=~(1<<5);
cbi 0x17,5
.dbline 142
; PORTB|=(1<<5);
sbi 0x18,5
.dbline 143
; if(((PINB&0X20)==0)&(kawei==1))
sbic 0x16,5
rjmp L40
ldi R22,1
ldi R23,0
rjmp L41
L40:
clr R22
clr R23
L41:
lds R24,_kawei
cpi R24,1
brne L42
ldi R20,1
ldi R21,0
rjmp L43
L42:
clr R20
clr R21
L43:
mov R2,R22
mov R3,R23
and R2,R20
and R3,R21
tst R2
brne X1
tst R3
breq L38
X1:
.dbline 144
; {
.dbline 145
; delayus(100);
ldi R16,100
ldi R17,0
rcall _delayus
.dbline 146
; if(((PINB&0X20)==0)&(kawei==1))
sbic 0x16,5
rjmp L46
ldi R22,1
ldi R23,0
rjmp L47
L46:
clr R22
clr R23
L47:
lds R24,_kawei
cpi R24,1
brne L48
ldi R20,1
ldi R21,0
rjmp L49
L48:
clr R20
clr R21
L49:
mov R2,R22
mov R3,R23
and R2,R20
and R3,R21
tst R2
brne X2
tst R3
breq L44
X2:
.dbline 147
; {
.dbline 148
; kawei=0;
clr R2
sts _kawei,R2
.dbline 149
; kashu[0]=x24c02_read(2);
ldi R16,2
rcall _x24c02_read
sts _kashu,R16
.dbline 150
; delayus(200);
ldi R16,200
ldi R17,0
rcall _delayus
.dbline 151
; kashu[1]=x24c02_read(4);
ldi R16,4
rcall _x24c02_read
sts _kashu+1,R16
.dbline 152
; delayus(200);
ldi R16,200
ldi R17,0
rcall _delayus
.dbline 153
; fengming(10);
ldi R16,10
rcall _fengming
.dbline 154
; }
L44:
.dbline 155
; }
L38:
.dbline 156
; if(((PINB&0X20)!=0)&(kawei==0))
sbis 0x16,5
rjmp L53
ldi R22,1
ldi R23,0
rjmp L54
L53:
clr R22
clr R23
L54:
lds R2,_kawei
tst R2
brne L55
ldi R20,1
ldi R21,0
rjmp L56
L55:
clr R20
clr R21
L56:
mov R2,R22
mov R3,R23
and R2,R20
and R3,R21
tst R2
brne X3
tst R3
breq L51
X3:
.dbline 157
; {
.dbline 158
; delayus(100);
ldi R16,100
ldi R17,0
rcall _delayus
.dbline 159
; if(((PINB&0X20)!=0)&(kawei==0))
sbis 0x16,5
rjmp L59
ldi R22,1
ldi R23,0
rjmp L60
L59:
clr R22
clr R23
L60:
lds R2,_kawei
tst R2
brne L61
ldi R20,1
ldi R21,0
rjmp L62
L61:
clr R20
clr R21
L62:
mov R2,R22
mov R3,R23
and R2,R20
and R3,R21
tst R2
brne X4
tst R3
breq L57
X4:
.dbline 160
; {
.dbline 161
; kawei=1;
ldi R24,1
sts _kawei,R24
.dbline 162
; fengming(10);
ldi R16,10
rcall _fengming
.dbline 163
; }
L57:
.dbline 164
L51:
.dbline -2
L37:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r a 20 c
.dbend
.dbfunc e xianshu _xianshu fV
.even
_xianshu::
.dbline -1
.dbline 170
; }
; }
;
;
;
; void xianshu(void)
; {
.dbline 172
; //anjianweiguan;
; DDRA=0Xff;
ldi R24,255
out 0x1a,R24
.dbline 173
; PORTA=0X7F;
ldi R24,127
out 0x1b,R24
.dbline 174
; PORTB&=~(0<<1);
in R24,0x18
andi R24,255
out 0x18,R24
.dbline 175
; PORTA=disp[kashu[0]]&0x7f;
ldi R24,<_disp
ldi R25,>_disp
lds R30,_kashu
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R24,z+0
andi R24,127
out 0x1b,R24
.dbline 176
; delayms(1);
ldi R16,1
ldi R17,0
rcall _delayms
.dbline 177
; PORTB|=(0<<3);
in R2,0x18
out 0x18,R2
.dbline 178
; PORTA=disp[kashu[1]]&0x7f;
ldi R24,<_disp
ldi R25,>_disp
lds R30,_kashu+1
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R24,z+0
andi R24,127
out 0x1b,R24
.dbline 179
; PORTB&=~(0<<3);
in R24,0x18
andi R24,255
out 0x18,R24
.dbline 180
; delayms(1);
ldi R16,1
ldi R17,0
rcall _delayms
.dbline 181
; PORTB|=(0<<3);
in R2,0x18
out 0x18,R2
.dbline 183
; //anjianweikai;
; DDRA=0X80;
ldi R24,128
out 0x1a,R24
.dbline 184
; PORTA=0x7f;
ldi R24,127
out 0x1b,R24
.dbline 185
; ;
.dbline -2
L63:
.dbline 0 ; func end
ret
.dbend
.dbfunc e anjian _anjian fV
.even
_anjian::
.dbline -1
.dbline 189
; }
;
; void anjian(void)
; {
.dbline 191
;
; DDRA=0X80;
ldi R24,128
out 0x1a,R24
.dbline 192
; PORTA=0x7f;
ldi R24,127
out 0x1b,R24
.dbline 193
; delayus(10);
ldi R16,10
ldi R17,0
rcall _delayus
.dbline 194
; if((PINA&0X4B)!=0x4B)
in R24,0x19
andi R24,75
cpi R24,75
brne X5
rjmp L66
X5:
.dbline 195
; {
.dbline 197
;
; DDRA=0X80;
ldi R24,128
out 0x1a,R24
.dbline 198
; PORTA=0x7f;
ldi R24,127
out 0x1b,R24
.dbline 199
; delayms(1);
ldi R16,1
ldi R17,0
rcall _delayms
.dbline 200
; if((PINA&0X4b)!=0X4b)
in R24,0x19
andi R24,75
cpi R24,75
brne X6
rjmp L68
X6:
.dbline 201
; {
.dbline 202
; fengming(10);
ldi R16,10
rcall _fengming
.dbline 203
; DDRA=0X80;
ldi R24,128
out 0x1a,R24
.dbline 204
; PORTA=0x7f;
ldi R24,127
out 0x1b,R24
.dbline 205
; if((PINA&0X40)==0) //+
sbic 0x19,6
rjmp L70
.dbline 206
; {
.dbline 207
; kashu[1]++;
lds R24,_kashu+1
subi R24,255 ; addi 1
sts _kashu+1,R24
.dbline 208
; if(kashu[1]>9)
ldi R24,9
lds R2,_kashu+1
cp R24,R2
brge L81
.dbline 209
; {
.dbline 210
; kashu[1]=0;
clr R2
sts _kashu+1,R2
.dbline 211
; kashu[0]++;
lds R24,_kashu
subi R24,255 ; addi 1
sts _kashu,R24
.dbline 212
; if(kashu[0]>9)
ldi R24,9
lds R2,_kashu
cp R24,R2
brge L81
.dbline 213
; {
.dbline 214
; kashu[0]=9;
sts _kashu,R24
.dbline 215
; kashu[1]=9;
sts _kashu+1,R24
.dbline 216
; }
.dbline 217
; }
rjmp L81
L80:
.dbline 219
.dbline 220
rcall _xianshu
.dbline 221
L81:
.dbline 218
; while((PINA&0X40)==0)
sbis 0x19,6
rjmp L80
.dbline 222
; {
; xianshu();
; }
; }
L70:
.dbline 223
; if((PINA&0X08)==0) //-档
sbic 0x19,3
rjmp L83
.dbline 224
; {
.dbline 225
; kashu[1]--;
lds R24,_kashu+1
subi R24,1
sts _kashu+1,R24
.dbline 226
; if(kashu[1]<0)
lds R24,_kashu+1
cpi R24,0
brge L94
.dbline 227
; {
.dbline 228
; kashu[1]=0;
clr R2
sts _kashu+1,R2
.dbline 229
; kashu[0]--;
lds R24,_kashu
subi R24,1
sts _kashu,R24
.dbline 230
; if(kashu[0]<0)
lds R24,_kashu
cpi R24,0
brge L94
.dbline 231
; {
.dbline 232
; kashu[0]=0;
sts _kashu,R2
.dbline 233
; kashu[1]=0;
sts _kashu+1,R2
.dbline 234
; }
.dbline 235
; }
rjmp L94
L93:
.dbline 237
.dbline 238
rcall _xianshu
.dbline 239
L94:
.dbline 236
; while((PINA&0X08)==0)
sbis 0x19,3
rjmp L93
.dbline 240
; {
; xianshu();
; }
; }
L83:
.dbline 241
; if((PINA&0X02)==0) //2档
sbic 0x19,1
rjmp L96
.dbline 242
; {
.dbline 243
; jianshu=1;
ldi R24,1
sts _jianshu,R24
rjmp L99
L98:
.dbline 245
.dbline 246
rcall _xianshu
.dbline 247
L99:
.dbline 244
; while((PINA&0X02)==0)
sbis 0x19,1
rjmp L98
.dbline 248
; {
; xianshu();
; }
; }
L96:
.dbline 249
; if((PINA&0X01)==0)
sbic 0x19,0
rjmp L101
.dbline 250
; {
.dbline 251
; jianshu=2;
ldi R24,2
sts _jianshu,R24
rjmp L104
L103:
.dbline 253
.dbline 254
rcall _xianshu
.dbline 255
L104:
.dbline 252
; while((PINA&0X01)==0)
sbis 0x19,0
rjmp L103
.dbline 256
; {
; xianshu();
; }
; }
L101:
.dbline 257
; }
L68:
.dbline 258
L66:
.dbline -2
L65:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 264
; }
; //anjianweiguan;
; }
;
;
; void main(void) //主程序
; {
.dbline 265
; MCUCR=0;
clr R2
out 0x35,R2
.dbline 266
; DDRA = 0XFF; /*方向输出*/
ldi R24,255
out 0x1a,R24
.dbline 267
; PORTA = 0X7F; /*高电平*/
ldi R24,127
out 0x1b,R24
.dbline 268
; DDRB = 0xCA;
ldi R24,202
out 0x17,R24
.dbline 269
; PORTB = 0x35;
ldi R24,53
out 0x18,R24
.dbline 270
; kashu[0]=4;
ldi R24,4
sts _kashu,R24
.dbline 271
; kashu[1]=5;
ldi R24,5
sts _kashu+1,R24
rjmp L109
L108:
.dbline 278
.dbline 279
rcall _jiancheicka
.dbline 280
rcall _anjian
.dbline 281
rcall _xianshu
.dbline 282
L109:
.dbline 277
rjmp L108
X7:
.dbline -2
L106:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -