📄 no.lis
字号:
02BC ; // 译码方式0及左移指令测试
02BC ; //*********************************************
02BC ; for (j=0;j<16;j++)
02BC 2224 clr R2
02BE 20920800 sts _j,R2
02C2 0EC0 xjmp L79
02C4 L76:
02C4 .dbline 203
02C4 .dbline 204
02C4 01EA ldi R16,161
02C6 82D0 xcall _send_byte
02C8 .dbline 205
02C8 20910800 lds R18,_j
02CC 00E8 ldi R16,128
02CE 6AD0 xcall _write7279
02D0 .dbline 206
02D0 02E3 ldi R16,50
02D2 10E0 ldi R17,0
02D4 D7D0 xcall _dely_ms
02D6 .dbline 207
02D6 L77:
02D6 .dbline 202
02D6 80910800 lds R24,_j
02DA 8F5F subi R24,255 ; addi 1
02DC 80930800 sts _j,R24
02E0 L79:
02E0 .dbline 202
02E0 80910800 lds R24,_j
02E4 8031 cpi R24,16
02E6 70F3 brlo L76
02E8 .dbline 208
02E8 ; {
02E8 ; send_byte(RTL_UNCYL); // 不循环左移指令
02E8 ; write7279(DECODE0,j); // 译码方式0指令,显示在第1位
02E8 ; dely_ms(50);
02E8 ; }
02E8 ; dely_ms(150);
02E8 06E9 ldi R16,150
02EA 10E0 ldi R17,0
02EC CBD0 xcall _dely_ms
02EE .dbline 209
02EE ; send_byte(CMD_RESET);
02EE 04EA ldi R16,164
02F0 6DD0 xcall _send_byte
02F2 .dbline 214
02F2 ;
02F2 ; //*********************************************
02F2 ; // 译码方式1及右移指令测试
02F2 ; //*********************************************
02F2 ; for (j=0;j<16;j++)
02F2 2224 clr R2
02F4 20920800 sts _j,R2
02F8 0EC0 xjmp L83
02FA L80:
02FA .dbline 215
02FA .dbline 216
02FA 00EA ldi R16,160
02FC 67D0 xcall _send_byte
02FE .dbline 217
02FE 20910800 lds R18,_j
0302 0FEC ldi R16,207
0304 4FD0 xcall _write7279
0306 .dbline 218
0306 02E3 ldi R16,50
0308 10E0 ldi R17,0
030A BCD0 xcall _dely_ms
030C .dbline 219
030C L81:
030C .dbline 214
030C 80910800 lds R24,_j
0310 8F5F subi R24,255 ; addi 1
0312 80930800 sts _j,R24
0316 L83:
0316 .dbline 214
0316 80910800 lds R24,_j
031A 8031 cpi R24,16
031C 70F3 brlo L80
031E .dbline 220
031E ; {
031E ; send_byte(RTR_UNCYL); // 不循环左移指令
031E ; write7279(DECODE1+7,j); // 译码方式0指令,显示在第8位
031E ; dely_ms(50);
031E ; }
031E ; dely_ms(150);
031E 06E9 ldi R16,150
0320 10E0 ldi R17,0
0322 B0D0 xcall _dely_ms
0324 .dbline 225
0324 ;
0324 ; //*********************************************
0324 ; // 消隐指令测试
0324 ; //*********************************************
0324 ; k=0xff;
0324 8FEF ldi R24,255
0326 80930700 sts _k,R24
032A .dbline 226
032A ; for (j=0;j<6;j++)
032A 2224 clr R2
032C 20920800 sts _j,R2
0330 10C0 xjmp L87
0332 L84:
0332 .dbline 227
0332 .dbline 228
0332 20900700 lds R2,_k
0336 2694 lsr R2
0338 20920700 sts _k,R2
033C .dbline 229
033C 222D mov R18,R2
033E 08E9 ldi R16,152
0340 31D0 xcall _write7279
0342 .dbline 230
0342 04E6 ldi R16,100
0344 10E0 ldi R17,0
0346 9ED0 xcall _dely_ms
0348 .dbline 231
0348 L85:
0348 .dbline 226
0348 80910800 lds R24,_j
034C 8F5F subi R24,255 ; addi 1
034E 80930800 sts _j,R24
0352 L87:
0352 .dbline 226
0352 80910800 lds R24,_j
0356 8630 cpi R24,6
0358 60F3 brlo L84
035A .dbline 232
035A ; {
035A ; k=k/2;
035A ; write7279(ACTCTL,k); // 每隔一秒钟增加一个消隐位
035A ; dely_ms(100);
035A ; }
035A ; write7279(ACTCTL,0xff); // 恢复8位显示
035A 2FEF ldi R18,255
035C 08E9 ldi R16,152
035E 22D0 xcall _write7279
0360 .dbline 233
0360 ; dely_ms(100);
0360 04E6 ldi R16,100
0362 10E0 ldi R17,0
0364 8FD0 xcall _dely_ms
0366 .dbline 234
0366 ; send_byte(CMD_RESET); // 清除显示
0366 04EA ldi R16,164
0368 31D0 xcall _send_byte
036A .dbline 239
036A ;
036A ; //**********************************************
036A ; // 段点亮指令和段关闭指令
036A ; //**********************************************
036A ; for (j=0;j<64;j++)
036A 2224 clr R2
036C 20920800 sts _j,R2
0370 11C0 xjmp L91
0372 L88:
0372 .dbline 240
0372 .dbline 241
0372 20910800 lds R18,_j
0376 00EE ldi R16,224
0378 15D0 xcall _write7279
037A .dbline 242
037A 20910800 lds R18,_j
037E 2150 subi R18,1
0380 00EC ldi R16,192
0382 10D0 xcall _write7279
0384 .dbline 243
0384 04E1 ldi R16,20
0386 10E0 ldi R17,0
0388 7DD0 xcall _dely_ms
038A .dbline 244
038A L89:
038A .dbline 239
038A 80910800 lds R24,_j
038E 8F5F subi R24,255 ; addi 1
0390 80930800 sts _j,R24
0394 L91:
0394 .dbline 239
0394 80910800 lds R24,_j
0398 8034 cpi R24,64
039A 58F3 brlo L88
039C .dbline 245
039C L4:
039C .dbline 83
039C 40CE xjmp L3
039E X0:
039E .dbline 246
039E ; {
039E ; write7279(SEGON,j); // 将64个显示段逐个点亮
039E ; write7279(SEGOFF,j-1); // 同时将前一个显示段关闭
039E ; dely_ms(20);
039E ; }
039E ; }
039E ; return 0;
039E 0027 clr R16
03A0 1127 clr R17
03A2 .dbline -2
03A2 L2:
03A2 .dbline 0 ; func end
03A2 0895 ret
03A4 .dbend
03A4 .dbfunc e write7279 _write7279 fV
03A4 ; dta -> R20
03A4 ; cmd -> R22
.even
03A4 _write7279::
03A4 0E940000 xcall push_gset2
03A8 422F mov R20,R18
03AA 602F mov R22,R16
03AC .dbline -1
03AC .dbline 250
03AC ; }
03AC ;
03AC ; void write7279(unsigned char cmd, unsigned char dta)
03AC ; {
03AC .dbline 251
03AC ; send_byte (cmd);
03AC 062F mov R16,R22
03AE 0ED0 xcall _send_byte
03B0 .dbline 252
03B0 ; send_byte (dta);
03B0 042F mov R16,R20
03B2 0CD0 xcall _send_byte
03B4 .dbline -2
03B4 .dbline 253
03B4 ; }
03B4 L92:
03B4 0E940000 xcall pop_gset2
03B8 .dbline 0 ; func end
03B8 0895 ret
03BA .dbsym r dta 20 c
03BA .dbsym r cmd 22 c
03BA .dbend
03BA .dbfunc e read7279 _read7279 fc
03BA ; command -> R20
.even
03BA _read7279::
03BA 0E940000 xcall push_gset1
03BE 402F mov R20,R16
03C0 .dbline -1
03C0 .dbline 256
03C0 ;
03C0 ; unsigned char read7279(unsigned char command)
03C0 ; {
03C0 .dbline 257
03C0 ; send_byte(command);
03C0 042F mov R16,R20
03C2 04D0 xcall _send_byte
03C4 .dbline 258
03C4 ; return(receive_byte());
03C4 1DD0 xcall _receive_byte
03C6 .dbline -2
03C6 L93:
03C6 0E940000 xcall pop_gset1
03CA .dbline 0 ; func end
03CA 0895 ret
03CC .dbsym r command 20 c
03CC .dbend
03CC .dbfunc e send_byte _send_byte fV
03CC ; i -> R20
03CC ; out_byte -> R22
.even
03CC _send_byte::
03CC 0E940000 xcall push_gset2
03D0 602F mov R22,R16
03D2 .dbline -1
03D2 .dbline 262
03D2 ; }
03D2 ;
03D2 ; void send_byte( unsigned char out_byte)
03D2 ; {
03D2 .dbline 264
03D2 ; unsigned char i;
03D2 ; HD7279_CS_L;
03D2 C298 cbi 0x18,2
03D4 .dbline 265
03D4 ; long_delay();
03D4 2FD0 xcall _long_delay
03D6 .dbline 266
03D6 ; for (i=0;i<8;i++)
03D6 4427 clr R20
03D8 0DC0 xjmp L98
03DA L95:
03DA .dbline 267
03DA ; {
03DA .dbline 268
03DA ; if (out_byte&0x80)
03DA 67FF sbrs R22,7
03DC 02C0 rjmp L99
03DE .dbline 269
03DE ; {
03DE .dbline 270
03DE ; HD7279_DATA_H;
03DE C09A sbi 0x18,0
03E0 .dbline 271
03E0 ; }
03E0 01C0 xjmp L100
03E2 L99:
03E2 .dbline 273
03E2 ; else
03E2 ; {
03E2 .dbline 274
03E2 ; HD7279_DATA_L;
03E2 C098 cbi 0x18,0
03E4 .dbline 275
03E4 ; }
03E4 L100:
03E4 .dbline 276
03E4 C19A sbi 0x18,1
03E6 .dbline 277
03E6 2CD0 xcall _short_delay
03E8 .dbline 278
03E8 C198 cbi 0x18,1
03EA .dbline 279
03EA 2AD0 xcall _short_delay
03EC .dbline 280
03EC 82E0 ldi R24,2
03EE 869F mul R24,R22
03F0 602D mov R22,R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -