📄 main.ls
字号:
3158 00ee 2610 jrne L7512
3159 ; 90 case 0xc0:num=1;
3161 00f0 35010000 mov _num,#1
3162 ; 91 break;
3164 00f4 200a jra L7512
3165 00f6 L5402:
3166 ; 92 case 0xa0:num=5;
3168 00f6 35050000 mov _num,#5
3169 ; 93 break;
3171 00fa 2004 jra L7512
3172 00fc L7402:
3173 ; 94 case 0x60:num=9;
3175 00fc 35090000 mov _num,#9
3176 ; 95 break;
3178 0100 L3512:
3180 0100 L7512:
3181 ; 97 while((PC_IDR&0xe0)!=0xe0);
3183 0100 c6500b ld a,_PC_IDR
3184 0103 a4e0 and a,#224
3185 0105 a1e0 cp a,#224
3186 0107 26f7 jrne L7512
3187 0109 L5412:
3188 ; 101 PE_ODR=0X22;
3190 0109 35225014 mov _PE_ODR,#34
3191 ; 102 PD_ODR=0x80;
3193 010d 3580500f mov _PD_ODR,#128
3194 ; 103 if((PE_IDR&0x40)==0)
3196 0111 c65015 ld a,_PE_IDR
3197 0114 a540 bcp a,#64
3198 0116 2610 jrne L3612
3199 ; 105 num=14;
3201 0118 350e0000 mov _num,#14
3202 ; 106 delay(5);
3204 011c a605 ld a,#5
3205 011e cd0000 call _delay
3208 0121 L7612:
3209 ; 107 while((PE_IDR&0x40)==0);
3211 0121 c65015 ld a,_PE_IDR
3212 0124 a540 bcp a,#64
3213 0126 27f9 jreq L7612
3214 0128 L3612:
3215 ; 109 temp=PC_IDR&0xe0;
3217 0128 c6500b ld a,_PC_IDR
3218 012b a4e0 and a,#224
3219 012d 6b01 ld (OFST+0,sp),a
3220 ; 110 if(temp!=0xe0)
3222 012f 7b01 ld a,(OFST+0,sp)
3223 0131 a1e0 cp a,#224
3224 0133 2739 jreq L3712
3225 ; 112 delay(5);
3227 0135 a605 ld a,#5
3228 0137 cd0000 call _delay
3230 ; 113 temp=PC_IDR&0xe0;
3232 013a c6500b ld a,_PC_IDR
3233 013d a4e0 and a,#224
3234 013f 6b01 ld (OFST+0,sp),a
3235 ; 114 if(temp!=0xe0)
3237 0141 7b01 ld a,(OFST+0,sp)
3238 0143 a1e0 cp a,#224
3239 0145 2727 jreq L3712
3240 ; 116 switch(temp)
3242 0147 7b01 ld a,(OFST+0,sp)
3244 ; 123 break;
3245 0149 a060 sub a,#96
3246 014b 2714 jreq L5502
3247 014d a040 sub a,#64
3248 014f 270a jreq L3502
3249 0151 a020 sub a,#32
3250 0153 2610 jrne L5022
3251 ; 118 case 0xc0:num=2;
3253 0155 35020000 mov _num,#2
3254 ; 119 break;
3256 0159 200a jra L5022
3257 015b L3502:
3258 ; 120 case 0xa0:num=6;
3260 015b 35060000 mov _num,#6
3261 ; 121 break;
3263 015f 2004 jra L5022
3264 0161 L5502:
3265 ; 122 case 0x60:num=10;
3267 0161 350a0000 mov _num,#10
3268 ; 123 break;
3270 0165 L1022:
3272 0165 L5022:
3273 ; 125 while((PC_IDR&0xe0)!=0xe0);
3275 0165 c6500b ld a,_PC_IDR
3276 0168 a4e0 and a,#224
3277 016a a1e0 cp a,#224
3278 016c 26f7 jrne L5022
3279 016e L3712:
3280 ; 129 PE_ODR=0X06;
3282 016e 35065014 mov _PE_ODR,#6
3283 ; 130 PD_ODR=0x80;
3285 0172 3580500f mov _PD_ODR,#128
3286 ; 131 if((PE_IDR&0x40)==0)
3288 0176 c65015 ld a,_PE_IDR
3289 0179 a540 bcp a,#64
3290 017b 2610 jrne L1122
3291 ; 133 num=15;
3293 017d 350f0000 mov _num,#15
3294 ; 134 delay(5);
3296 0181 a605 ld a,#5
3297 0183 cd0000 call _delay
3300 0186 L5122:
3301 ; 135 while((PE_IDR&0x40)==0);
3303 0186 c65015 ld a,_PE_IDR
3304 0189 a540 bcp a,#64
3305 018b 27f9 jreq L5122
3306 018d L1122:
3307 ; 137 temp=PC_IDR&0xe0;
3309 018d c6500b ld a,_PC_IDR
3310 0190 a4e0 and a,#224
3311 0192 6b01 ld (OFST+0,sp),a
3312 ; 138 if(temp!=0xe0)
3314 0194 7b01 ld a,(OFST+0,sp)
3315 0196 a1e0 cp a,#224
3316 0198 2739 jreq L1222
3317 ; 140 delay(5);
3319 019a a605 ld a,#5
3320 019c cd0000 call _delay
3322 ; 141 temp=PC_IDR&0xe0;
3324 019f c6500b ld a,_PC_IDR
3325 01a2 a4e0 and a,#224
3326 01a4 6b01 ld (OFST+0,sp),a
3327 ; 142 if(temp!=0xe0)
3329 01a6 7b01 ld a,(OFST+0,sp)
3330 01a8 a1e0 cp a,#224
3331 01aa 2727 jreq L1222
3332 ; 144 switch(temp)
3334 01ac 7b01 ld a,(OFST+0,sp)
3336 ; 151 break;
3337 01ae a060 sub a,#96
3338 01b0 2714 jreq L3602
3339 01b2 a040 sub a,#64
3340 01b4 270a jreq L1602
3341 01b6 a020 sub a,#32
3342 01b8 2610 jrne L3322
3343 ; 146 case 0xc0:num=3;
3345 01ba 35030000 mov _num,#3
3346 ; 147 break;
3348 01be 200a jra L3322
3349 01c0 L1602:
3350 ; 148 case 0xa0:num=7;
3352 01c0 35070000 mov _num,#7
3353 ; 149 break;
3355 01c4 2004 jra L3322
3356 01c6 L3602:
3357 ; 150 case 0x60:num=11;
3359 01c6 350b0000 mov _num,#11
3360 ; 151 break;
3362 01ca L7222:
3364 01ca L3322:
3365 ; 153 while((PC_IDR&0xe0)!=0xe0);
3367 01ca c6500b ld a,_PC_IDR
3368 01cd a4e0 and a,#224
3369 01cf a1e0 cp a,#224
3370 01d1 26f7 jrne L3322
3371 01d3 L1222:
3372 ; 157 return num;
3374 01d3 b600 ld a,_num
3377 01d5 5b01 addw sp,#1
3378 01d7 81 ret
3417 ; 160 void main()
3417 ; 161 {
3418 switch .text
3419 01d8 _main:
3421 01d8 88 push a
3422 00000001 OFST: set 1
3425 ; 163 init();
3427 01d9 cd0016 call _init
3429 01dc L5522:
3430 ; 166 n=keys(); //把函数keys()的返回值num赋给n
3432 01dc cd0037 call _keys
3434 01df 6b01 ld (OFST+0,sp),a
3435 ; 167 PB_ODR=table[n];
3437 01e1 7b01 ld a,(OFST+0,sp)
3438 01e3 5f clrw x
3439 01e4 97 ld xl,a
3440 01e5 e600 ld a,(_table,x)
3441 01e7 c75005 ld _PB_ODR,a
3442 ; 168 PC_ODR|=0x00; //选择第一个数码管
3444 01ea c6500a ld a,_PC_ODR
3446 01ed 20ed jra L5522
3480 xdef _main
3481 xdef _keys
3482 xdef _init
3483 xdef _delay
3484 switch .ubsct
3485 0000 _num:
3486 0000 00 ds.b 1
3487 xdef _num
3488 xdef _table
3508 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -