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

📄 kb.lst

📁 C51驱动标准PC键盘的程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 142   1      }
 143          
 144          
 145          int getchar(void)
 146          {
 147   1      	int byte;
 148   1      
 149   1      	while(buffcnt == 0);	// Wait for data
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 10  

 150   1      	byte = *outpt;		// Get byte
 151   1      
 152   1      	outpt++;		// Increment pointer
 153   1      	if (outpt >= kb_buffer + BUFF_SIZE)	// Pointer wrapping
 154   1      		outpt = kb_buffer;
 155   1      
 156   1      	buffcnt--;		// Decrement buffer count
 157   1      	return byte;
 158   1      }
 159          
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION init_kb (BEGIN)
                                           ; SOURCE LINE # 17
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
0000 750000      R     MOV     inpt,#00H
0003 750000      R     MOV     inpt+01H,#HIGH kb_buffer
0006 750000      R     MOV     inpt+02H,#LOW kb_buffer
                                           ; SOURCE LINE # 20
0009 750000      R     MOV     outpt,#00H
000C 750000      R     MOV     outpt+01H,#HIGH kb_buffer
000F 750000      R     MOV     outpt+02H,#LOW kb_buffer
                                           ; SOURCE LINE # 21
0012 E4                CLR     A
0013 F500        R     MOV     buffcnt,A
                                           ; SOURCE LINE # 25
0015 F500        R     MOV     edge,A
                                           ; SOURCE LINE # 26
0017 75000B      R     MOV     bitcount,#0BH
                                           ; SOURCE LINE # 27
001A 22                RET     
             ; FUNCTION init_kb (END)

             ; FUNCTION INT0_interrupt (BEGIN)
0000 C0E0              PUSH    ACC
0002 C0F0              PUSH    B
0004 C083              PUSH    DPH
0006 C082              PUSH    DPL
0008 C0D0              PUSH    PSW
000A 75D010            MOV     PSW,#010H
                                           ; SOURCE LINE # 30
                                           ; SOURCE LINE # 34
000D E500        R     MOV     A,edge
000F 701B              JNZ     ?C0002
                                           ; SOURCE LINE # 35
                                           ; SOURCE LINE # 36
0011 E500        R     MOV     A,bitcount
0013 C3                CLR     C
0014 940B              SUBB    A,#0BH
0016 5011              JNC     ?C0003
0018 E500        R     MOV     A,bitcount
001A 9402              SUBB    A,#02H
001C 400B              JC      ?C0003
                                           ; SOURCE LINE # 37
                                           ; SOURCE LINE # 38
001E E500        R     MOV     A,cdata
0020 13                RRC     A
0021 F500        R     MOV     cdata,A
                                           ; SOURCE LINE # 39
0023 30A303            JNB     P2_3,?C0003
                                           ; SOURCE LINE # 40
0026 430080      R     ORL     cdata,#080H
                                           ; SOURCE LINE # 41
0029         ?C0003:
                                           ; SOURCE LINE # 44
0029 750001      R     MOV     edge,#01H
                                           ; SOURCE LINE # 46
002C         ?C0002:
                                           ; SOURCE LINE # 47
002C E500        R     MOV     A,edge
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 12  

002E 600D              JZ      ?C0007
                                           ; SOURCE LINE # 49
0030 750000      R     MOV     edge,#00H
                                           ; SOURCE LINE # 51
0033 D50007      R     DJNZ    bitcount,?C0007
                                           ; SOURCE LINE # 52
                                           ; SOURCE LINE # 53
0036 AF00        R     MOV     R7,cdata
0038 1100        R     ACALL   _decode
                                           ; SOURCE LINE # 54
003A 75000B      R     MOV     bitcount,#0BH
                                           ; SOURCE LINE # 55
                                           ; SOURCE LINE # 56
                                           ; SOURCE LINE # 57
003D         ?C0007:
003D D0D0              POP     PSW
003F D082              POP     DPL
0041 D083              POP     DPH
0043 D0F0              POP     B
0045 D0E0              POP     ACC
0047 32                RETI    
             ; FUNCTION INT0_interrupt (END)

             ; FUNCTION _decode (BEGIN)
0000 8F00        R     MOV     sc,R7
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 65
0002 E500        R     MOV     A,is_up
0004 6002              JZ      $ + 4H
0006 0100        R     AJMP    ?C0008
                                           ; SOURCE LINE # 66
                                           ; SOURCE LINE # 67
0008 E500        R     MOV     A,sc
000A 24FB              ADD     A,#0FBH
000C 6018              JZ      ?C0013
000E 24F3              ADD     A,#0F3H
0010 600C              JZ      ?C0011
0012 24B9              ADD     A,#0B9H
0014 600C              JZ      ?C0012
0016 2469              ADD     A,#069H
0018 701F              JNZ     ?C0016
                                           ; SOURCE LINE # 68
                                           ; SOURCE LINE # 69
001A         ?C0010:
                                           ; SOURCE LINE # 70
001A 750001      R     MOV     is_up,#01H
                                           ; SOURCE LINE # 71
001D 22                RET     
                                           ; SOURCE LINE # 72
001E         ?C0011:
                                           ; SOURCE LINE # 73
001E 750001      R     MOV     shift,#01H
                                           ; SOURCE LINE # 74
0021 22                RET     
                                           ; SOURCE LINE # 75
0022         ?C0012:
                                           ; SOURCE LINE # 76
0022 750001      R     MOV     shift,#01H
                                           ; SOURCE LINE # 77
0025 22                RET     
                                           ; SOURCE LINE # 78
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 13  

0026         ?C0013:
                                           ; SOURCE LINE # 79
0026 E500        R     MOV     A,mode
0028 7003              JNZ     ?C0014
                                           ; SOURCE LINE # 80
002A 750001      R     MOV     mode,#01H
002D         ?C0014:
                                           ; SOURCE LINE # 81
002D E500        R     MOV     A,mode
002F 6402              XRL     A,#02H
0031 6002              JZ      $ + 4H
0033 0100        R     AJMP    ?C0038
                                           ; SOURCE LINE # 82
0035 750003      R     MOV     mode,#03H
                                           ; SOURCE LINE # 83
0038 22                RET     
                                           ; SOURCE LINE # 84
0039         ?C0016:
                                           ; SOURCE LINE # 85
0039 E500        R     MOV     A,mode
003B 6004              JZ      ?C0018
003D 6403              XRL     A,#03H
003F 706F              JNZ     ?C0017
0041         ?C0018:
                                           ; SOURCE LINE # 86
                                           ; SOURCE LINE # 87
0041 E500        R     MOV     A,shift
0043 7036              JNZ     ?C0019
                                           ; SOURCE LINE # 88
                                           ; SOURCE LINE # 89
0045 F500        R     MOV     i,A
0047         ?C0020:
0047 E500        R     MOV     A,i
0049 25E0              ADD     A,ACC
004B 2400        R     ADD     A,#LOW unshifted
004D F582              MOV     DPL,A
004F E4                CLR     A
0050 3400        R     ADDC    A,#HIGH unshifted
0052 F583              MOV     DPH,A
0054 E4                CLR     A
0055 93                MOVC    A,@A+DPTR
0056 FF                MOV     R7,A
0057 6500        R     XRL     A,sc
0059 6007              JZ      ?C0021
005B EF                MOV     A,R7
005C 6004              JZ      ?C0021
005E 0500        R     INC     i
0060 80E5              SJMP    ?C0020
0062         ?C0021:
                                           ; SOURCE LINE # 90
0062 EF                MOV     A,R7
0063 6500        R     XRL     A,sc
0065 6002              JZ      $ + 4H
0067 0100        R     AJMP    ?C0038
                                           ; SOURCE LINE # 91
0069 E500        R     MOV     A,i
006B 25E0              ADD     A,ACC
006D 2400        R     ADD     A,#LOW unshifted+01H
006F F582              MOV     DPL,A
0071 E4                CLR     A
0072 3400        R     ADDC    A,#HIGH unshifted+01H
0074 F583              MOV     DPH,A
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 14  

0076 E4                CLR     A
0077 93                MOVC    A,@A+DPTR
0078 FF                MOV     R7,A
0079 0100        R     AJMP    _put_kbbuff
                                           ; SOURCE LINE # 92
                                           ; SOURCE LINE # 93
007B         ?C0019:
                                           ; SOURCE LINE # 94
007B E4                CLR     A
007C F500        R     MOV     i,A
007E         ?C0025:
007E E500        R     MOV     A,i
0080 25E0              ADD     A,ACC
0082 2400        R     ADD     A,#LOW shifted
0084 F582              MOV     DPL,A
0086 E4                CLR     A
0087 3400        R     ADDC    A,#HIGH shifted
0089 F583              MOV     DPH,A
008B E4                CLR     A
008C 93                MOVC    A,@A+DPTR
008D FF                MOV     R7,A
008E 6500        R     XRL     A,sc
0090 6007              JZ      ?C0026
0092 EF                MOV     A,R7
0093 6004              JZ      ?C0026
0095 0500        R     INC     i
0097 80E5              SJMP    ?C0025
0099         ?C0026:
                                           ; SOURCE LINE # 95
0099 EF                MOV     A,R7
009A 6500        R     XRL     A,sc
009C 704D              JNZ     ?C0038
                                           ; SOURCE LINE # 96
009E E500        R     MOV     A,i
00A0 25E0              ADD     A,ACC
00A2 2400        R     ADD     A,#LOW shifted+01H
00A4 F582              MOV     DPL,A
00A6 E4                CLR     A
00A7 3400        R     ADDC    A,#HIGH shifted+01H
00A9 F583              MOV     DPH,A
00AB E4                CLR     A
00AC 93                MOVC    A,@A+DPTR
00AD FF                MOV     R7,A
00AE 0100        R     AJMP    _put_kbbuff
                                           ; SOURCE LINE # 97
                                           ; SOURCE LINE # 98
                                           ; SOURCE LINE # 99
00B0         ?C0017:
                                           ; SOURCE LINE # 100
00B0 AF00        R     MOV     R7,sc
00B2 1100        E     ACALL   _print_hexbyte
                                           ; SOURCE LINE # 101
00B4 7F20              MOV     R7,#020H
00B6 1100        R     ACALL   _put_kbbuff
                                           ; SOURCE LINE # 102
00B8 7F20              MOV     R7,#020H
00BA 0100        R     AJMP    _put_kbbuff
                                           ; SOURCE LINE # 103
                                           ; SOURCE LINE # 104
                                           ; SOURCE LINE # 105
                                           ; SOURCE LINE # 106
00BC         ?C0008:
C51 COMPILER V6.12  KB                                                                     03/03/2007 18:29:42 PAGE 15  

                                           ; SOURCE LINE # 107
00BC E4                CLR     A
00BD F500        R     MOV     is_up,A
                                           ; SOURCE LINE # 108
00BF E500        R     MOV     A,sc
00C1 24FB              ADD     A,#0FBH

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -