📄 no.lis
字号:
03F2 .dbline 281
03F2 L96:
03F2 .dbline 266
03F2 4395 inc R20
03F4 L98:
03F4 .dbline 266
03F4 4830 cpi R20,8
03F6 88F3 brlo L95
03F8 .dbline 282
03F8 ; HD7279_CLK_H;
03F8 ; short_delay();
03F8 ; HD7279_CLK_L;
03F8 ; short_delay();
03F8 ; out_byte=out_byte*2;
03F8 ; }
03F8 ; HD7279_DATA_L;
03F8 C098 cbi 0x18,0
03FA .dbline -2
03FA .dbline 283
03FA ; }
03FA L94:
03FA 0E940000 xcall pop_gset2
03FE .dbline 0 ; func end
03FE 0895 ret
0400 .dbsym r i 20 c
0400 .dbsym r out_byte 22 c
0400 .dbend
0400 .dbfunc e receive_byte _receive_byte fc
0400 ; i -> R20
0400 ; in_byte -> R22
.even
0400 _receive_byte::
0400 0E940000 xcall push_gset2
0404 .dbline -1
0404 .dbline 287
0404 ;
0404 ;
0404 ; unsigned char receive_byte(void)
0404 ; {
0404 .dbline 289
0404 ; unsigned char i, in_byte;
0404 ; HD7279_DDR_L;
0404 B898 cbi 0x17,0
0406 .dbline 290
0406 ; HD7279_DATA_H;
0406 C09A sbi 0x18,0
0408 .dbline 291
0408 ; long_delay();
0408 15D0 xcall _long_delay
040A .dbline 292
040A ; for (i=0;i<8;i++)
040A 4427 clr R20
040C 0BC0 xjmp L105
040E L102:
040E .dbline 293
040E ; {
040E .dbline 294
040E ; HD7279_CLK_H;
040E C19A sbi 0x18,1
0410 .dbline 295
0410 ; short_delay();
0410 17D0 xcall _short_delay
0412 .dbline 296
0412 ; in_byte=in_byte*2;
0412 82E0 ldi R24,2
0414 869F mul R24,R22
0416 602D mov R22,R0
0418 .dbline 298
0418 ;
0418 ; if (HD7279_DATA&1==1)
0418 B09B sbis 0x16,0
041A 01C0 rjmp L106
041C .dbline 299
041C ; {
041C .dbline 300
041C ; in_byte=in_byte|0x01;
041C 6160 ori R22,1
041E .dbline 301
041E ; }
041E L106:
041E .dbline 302
041E C198 cbi 0x18,1
0420 .dbline 303
0420 0FD0 xcall _short_delay
0422 .dbline 304
0422 L103:
0422 .dbline 292
0422 4395 inc R20
0424 L105:
0424 .dbline 292
0424 4830 cpi R20,8
0426 98F3 brlo L102
0428 .dbline 305
0428 ; HD7279_CLK_L;
0428 ; short_delay();
0428 ; }
0428 ; HD7279_DATA_L;
0428 C098 cbi 0x18,0
042A .dbline 306
042A ; HD7279_DDR_H;
042A B89A sbi 0x17,0
042C .dbline 307
042C ; return (in_byte);
042C 062F mov R16,R22
042E .dbline -2
042E L101:
042E 0E940000 xcall pop_gset2
0432 .dbline 0 ; func end
0432 0895 ret
0434 .dbsym r i 20 c
0434 .dbsym r in_byte 22 c
0434 .dbend
0434 .dbfunc e long_delay _long_delay fV
0434 ; i -> R16
.even
0434 _long_delay::
0434 .dbline -1
0434 .dbline 313
0434 ; }
0434 ;
0434 ;
0434 ;
0434 ; void long_delay(void)
0434 ; {
0434 .dbline 315
0434 0027 clr R16
0436 01C0 xjmp L112
0438 L109:
0438 .dbline 315
0438 L110:
0438 .dbline 315
0438 0395 inc R16
043A L112:
043A .dbline 315
043A ; unsigned char i;
043A ; for (i=0;i<0x30;i++);
043A 0033 cpi R16,48
043C E8F3 brlo L109
043E .dbline -2
043E .dbline 316
043E ; }
043E L108:
043E .dbline 0 ; func end
043E 0895 ret
0440 .dbsym r i 16 c
0440 .dbend
0440 .dbfunc e short_delay _short_delay fV
0440 ; i -> R16
.even
0440 _short_delay::
0440 .dbline -1
0440 .dbline 319
0440 ;
0440 ; void short_delay(void)
0440 ; {
0440 .dbline 321
0440 0027 clr R16
0442 01C0 xjmp L117
0444 L114:
0444 .dbline 321
0444 L115:
0444 .dbline 321
0444 0395 inc R16
0446 L117:
0446 .dbline 321
0446 ; unsigned char i;
0446 ; for (i=0;i<8;i++);
0446 0830 cpi R16,8
0448 E8F3 brlo L114
044A .dbline -2
044A .dbline 322
044A ; }
044A L113:
044A .dbline 0 ; func end
044A 0895 ret
044C .dbsym r i 16 c
044C .dbend
.area vector(rom, abs)
.org 4
0004 0C942602 jmp _int0_isr
.area text(rom, con, rel)
044C .dbfile D:\软件\hd7279disp\no.c
044C .dbfunc e int0_isr _int0_isr fV
044C ; dd -> R20
.even
044C _int0_isr::
044C 0E940000 xcall push_lset
0450 0E940000 xcall push_gset1
0454 .dbline -1
0454 .dbline 325
0454 ; #pragma interrupt_handler int0_isr:2
0454 ; void int0_isr(void)
0454 ; {unsigned char dd;
0454 .dbline 326
0454 ; dd=receive_byte();
0454 D5DF xcall _receive_byte
0456 402F mov R20,R16
0458 .dbline 327
0458 ; write7279(DECODE1+1,dd/16); // 在第2位显示键码高8位
0458 242F mov R18,R20
045A 2295 swap R18
045C 2F70 andi R18,#0x0F
045E 09EC ldi R16,201
0460 A1DF xcall _write7279
0462 .dbline 328
0462 ; write7279(DECODE1,dd&0x0f); // 在第1位显示键码低8位
0462 242F mov R18,R20
0464 2F70 andi R18,15
0466 08EC ldi R16,200
0468 9DDF xcall _write7279
046A .dbline -2
046A .dbline 329
046A ; }
046A L118:
046A 0E940000 xcall pop_gset1
046E 0E940000 xcall pop_lset
0472 .dbline 0 ; func end
0472 1895 reti
0474 .dbsym r dd 20 c
0474 .dbend
0474 .dbfunc e delay_us _delay_us fV
0474 ; time -> R16,R17
.even
0474 _delay_us::
0474 .dbline -1
0474 .dbline 333
0474 ; // ************************* 延时 n*ms *************************
0474 ;
0474 ; void delay_us(int time) //微秒级延时
0474 ; {
0474 L120:
0474 .dbline 335
0474 ; do
0474 ; time--;
0474 0150 subi R16,1
0476 1040 sbci R17,0
0478 L121:
0478 .dbline 336
0478 ; while(time>1);
0478 81E0 ldi R24,1
047A 90E0 ldi R25,0
047C 8017 cp R24,R16
047E 9107 cpc R25,R17
0480 CCF3 brlt L120
0482 .dbline -2
0482 .dbline 337
0482 ; }
0482 L119:
0482 .dbline 0 ; func end
0482 0895 ret
0484 .dbsym r time 16 I
0484 .dbend
0484 .dbfunc e dely_ms _dely_ms fV
0484 ; time -> R20,R21
.even
0484 _dely_ms::
0484 0E940000 xcall push_gset1
0488 A801 movw R20,R16
048A .dbline -1
048A .dbline 340
048A ;
048A ; void dely_ms(unsigned int time)
048A ; {
048A 05C0 xjmp L125
048C L124:
048C .dbline 342
048C .dbline 343
048C 08EE ldi R16,1000
048E 13E0 ldi R17,3
0490 F1DF xcall _delay_us
0492 .dbline 344
0492 4150 subi R20,1
0494 5040 sbci R21,0
0496 .dbline 345
0496 L125:
0496 .dbline 341
0496 ; while(time!=0)
0496 4030 cpi R20,0
0498 4507 cpc R20,R21
049A C1F7 brne L124
049C X3:
049C .dbline -2
049C .dbline 346
049C ; {
049C ; delay_us(1000);
049C ; time--;
049C ; }
049C ; }
049C L123:
049C 0E940000 xcall pop_gset1
04A0 .dbline 0 ; func end
04A0 0895 ret
04A2 .dbsym r time 20 i
04A2 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\软件\hd7279disp\no.c
0000 _wait_cnter::
0000 .blkb 4
0004 .dbsym e wait_cnter _wait_cnter l
0004 _tmr::
0004 .blkb 2
0006 .dbsym e tmr _tmr i
0006 _key_number::
0006 .blkb 1
0007 .dbsym e key_number _key_number c
0007 _k::
0007 .blkb 1
0008 .dbsym e k _k c
0008 _j::
0008 .blkb 1
0009 .dbsym e j _j c
0009 _digit::
0009 .blkb 8
0011 .dbsym e digit _digit A[8:8]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -