⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 no.lis

📁 ICC编译绝对可用M16的HD7279驱动测试程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -