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

📄 key.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 5 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-90508                            Sat Nov 10 13:01:07 2007

Licensed to: ONE
     1                           	processor	16F648A
     2                           	opt	pw 79
     3                           	psect	__Z90508RS_,global,delta=1
     4                           	psect	strings,global,class=STRING,delta=2
     5                           	psect	const1,local,class=CONST,delta=2
     6                           	psect	text1,local,class=CODE,delta=2
     7                           	psect	rdata_2,global,class=BANK2,space=1,delta
      +                          =1
     8                           	psect	idata_2,global,class=CODE,delta=2
     9                           	psect	text3,local,class=CODE,delta=2
    10                           	psect	text4,local,class=CODE,delta=2
    11                           	psect	text5,local,class=CODE,delta=2
    12                           	psect	rbss_2,global,class=BANK2,space=1,delta=
      +                          1
    13                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    14                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25                           
    26                           	psect	__Z90508RS_
    27  0145                     
    28  0145                     
    29                           
    30                           	psect	const1
    31  0800  0782               	addwf	2
    32  0801                     _KeyValMap
    33  0801  3400               	retlw	0
    34  0802  3401               	retlw	1
    35  0803  3402               	retlw	2
    36  0804  3403               	retlw	3
    37  0805  3404               	retlw	4
    38  0806  3405               	retlw	5
    39  0807  3406               	retlw	6
    40  0808  3407               	retlw	7
    41  0809  3408               	retlw	8
    42  080A  3409               	retlw	9
    43  080B  340A               	retlw	10
    44  080C  340B               	retlw	11
    45  080D  340C               	retlw	12
    46  080E  340D               	retlw	13
    47  080F  340E               	retlw	14
    48  0810  340F               	retlw	15
    49  0811  3410               	retlw	16
    50  0812  3411               	retlw	17
    51  0813  3412               	retlw	18
    52  0814  3413               	retlw	19
    53  0815  3414               	retlw	20
    54  0816  3415               	retlw	21
    55  0817  3416               	retlw	22
    56  0818  3417               	retlw	23
    57  0819  3418               	retlw	24
    58  081A  3441               	retlw	65
    59  081B  3442               	retlw	66
    60  081C  3443               	retlw	67
    61  081D  3400               	retlw	0
    62  081E  3400               	retlw	0
    63  081F  3400               	retlw	0
    64  0820  3400               	retlw	0
    65  0821  3400               	retlw	0
    66  0822  3400               	retlw	0
    67  0823  3400               	retlw	0
    68  0824  3400               	retlw	0
    69  0825  3400               	retlw	0
    70  0826  3400               	retlw	0
    71  0827  3400               	retlw	0
    72  0828  3400               	retlw	0
    73  0829  3400               	retlw	0
    74  082A  3400               	retlw	0
    75  082B  3400               	retlw	0
    76                           
    77                           	psect	text1
    78  0440                     _RangeKeyValue
    79                           ;	_tranbase assigned to ?a_RangeKeyValue+0
    80  0000                     _RangeKeyValue$tranbase	set	?a_RangeKeyValue
    81                           ;	_ArrCou assigned to ?a_RangeKeyValue+1
    82  0000                     _RangeKeyValue$ArrCou	set	?a_RangeKeyValue+1
    83                           ;	_icount assigned to ?a_RangeKeyValue+2
    84  0000                     _RangeKeyValue$icount	set	?a_RangeKeyValue+2
    85                           ;	_keyvalue_a assigned to ?a_RangeKeyValue+3
    86  0000                     _RangeKeyValue$keyvalue_a	set	?a_RangeKeyValue+
      +                          3
    87                           ;	_KeyUnitCou assigned to ?a_RangeKeyValue+4
    88  0000                     _RangeKeyValue$KeyUnitCou	set	?a_RangeKeyValue+
      +                          4
    89                           ;	_KeyValueStructTemp assigned to ?a_RangeKeyVa
      +                          lue+5
    90  0000                     _RangeKeyValue$KeyValueStructTemp	set	?a_RangeK
      +                          eyValue+5
    91                           ;	_KeyBitValueStruct assigned to ?a_RangeKeyVal
      +                          ue+7
    92  0000                     _RangeKeyValue$KeyBitValueStruct	set	?a_RangeKe
      +                          yValue+7
    93                           ;key.c: 127: KEYBITVALUESTRUCT KeyBitValueStruc
      +                          t;
    94  0440  0183               	clrf	3	;select bank 0
    95  0441  01C8               	clrf	?a_RangeKeyValue+2
    96  0442  01C7               	clrf	?a_RangeKeyValue+1
    97  0443  01CA               	clrf	?a_RangeKeyValue+4
    98  0444  01C6               	clrf	?a_RangeKeyValue
    99                           ;key.c: 131: KeyBitValueStruct.allbits = 0;
   100  0445  01CD               	clrf	?a_RangeKeyValue+7
   101  0446  01CE               	clrf	?a_RangeKeyValue+8
   102  0447  01CF               	clrf	?a_RangeKeyValue+9
   103  0448  01D0               	clrf	?a_RangeKeyValue+10
   104                           ;key.c: 132: KeyValueStructTemp.allbits = 0;
   105  0449  01CB               	clrf	?a_RangeKeyValue+5
   106  044A  01CC               	clrf	?a_RangeKeyValue+6
   107                           ;key.c: 133: while(++icount <= 6)
   108  044B  2CE8               	goto	l17
   109  044C                     l18
   110                           ;key.c: 134: {
   111  044C  0847               	movf	?a_RangeKeyValue+1,w
   112  044D  3E36               	addlw	_KeyInput^(0+256)
   113  044E  0084               	movwf	4
   114  044F  1783               	bsf	3,7
   115  0450  1C00               	btfss	0,0
   116  0451  2C72               	goto	l20
   117                           ;key.c: 136: {
   118  0452  0848               	movf	?a_RangeKeyValue+2,w
   119  0453  00C9               	movwf	?a_RangeKeyValue+3
   120                           ;key.c: 138: KeyUnitCou++;
   121  0454  0ACA               	incf	?a_RangeKeyValue+4
   122                           ;key.c: 140: KeyBitValueStruct.allbits |= 1 << 
      +                          (keyvalue_a - 1);
   123  0455  0349               	decf	?a_RangeKeyValue+3,w
   124  0456  00F2               	movwf	btemp+2
   125  0457  3001               	movlw	1
   126  0458  00F0               	movwf	btemp
   127  0459  3000               	movlw	0
   128  045A  01F1               	clrf	btemp+1
   129  045B  0AF2               	incf	btemp+2
   130  045C  2C60               	goto	u24
   131  045D                     u25
   132  045D  1003               	bcf	3,0
   133  045E  0DF0               	rlf	btemp
   134  045F  0DF1               	rlf	btemp+1
   135  0460                     u24
   136  0460  0BF2               	decfsz	btemp+2
   137  0461  2C5D               	goto	u25
   138  0462  0870               	movf	btemp,w
   139  0463  00F0               	movwf	btemp
   140  0464  0871               	movf	btemp+1,w
   141  0465  3000               	movlw	0
   142  0466  1BF1               	btfsc	btemp+1,7
   143  0467  30FF               	movlw	255
   144  0468  00F2               	movwf	btemp+2
   145  0469  00F3               	movwf	btemp+3
   146  046A  0870               	movf	btemp,w
   147  046B  04CD               	iorwf	?a_RangeKeyValue+7
   148  046C  0871               	movf	btemp+1,w
   149  046D  04CE               	iorwf	?a_RangeKeyValue+8
   150  046E  0872               	movf	btemp+2,w
   151  046F  04CF               	iorwf	?a_RangeKeyValue+9
   152  0470  0873               	movf	btemp+3,w
   153  0471  04D0               	iorwf	?a_RangeKeyValue+10
   154  0472                     l20
   155                           ;key.c: 141: }
   156  0472  0847               	movf	?a_RangeKeyValue+1,w
   157  0473  3E36               	addlw	_KeyInput^(0+256)
   158  0474  0084               	movwf	4
   159  0475  1783               	bsf	3,7
   160  0476  1C80               	btfss	0,1
   161  0477  2C99               	goto	l21
   162                           ;key.c: 144: {
   163  0478  0848               	movf	?a_RangeKeyValue+2,w
   164  0479  3E06               	addlw	6
   165  047A  00C9               	movwf	?a_RangeKeyValue+3
   166                           ;key.c: 146: KeyUnitCou++;
   167  047B  0ACA               	incf	?a_RangeKeyValue+4
   168                           ;key.c: 147: KeyBitValueStruct.allbits |= 1 << 
      +                          (keyvalue_a - 1);
   169  047C  0349               	decf	?a_RangeKeyValue+3,w
   170  047D  00F2               	movwf	btemp+2
   171  047E  3001               	movlw	1
   172  047F  00F0               	movwf	btemp
   173  0480  3000               	movlw	0
   174  0481  01F1               	clrf	btemp+1
   175  0482  0AF2               	incf	btemp+2
   176  0483  2C87               	goto	u44
   177  0484                     u45
   178  0484  1003               	bcf	3,0
   179  0485  0DF0               	rlf	btemp
   180  0486  0DF1               	rlf	btemp+1
   181  0487                     u44
   182  0487  0BF2               	decfsz	btemp+2
   183  0488  2C84               	goto	u45
   184  0489  0870               	movf	btemp,w
   185  048A  00F0               	movwf	btemp
   186  048B  0871               	movf	btemp+1,w
   187  048C  3000               	movlw	0
   188  048D  1BF1               	btfsc	btemp+1,7
   189  048E  30FF               	movlw	255
   190  048F  00F2               	movwf	btemp+2
   191  0490  00F3               	movwf	btemp+3
   192  0491  0870               	movf	btemp,w
   193  0492  04CD               	iorwf	?a_RangeKeyValue+7
   194  0493  0871               	movf	btemp+1,w
   195  0494  04CE               	iorwf	?a_RangeKeyValue+8
   196  0495  0872               	movf	btemp+2,w
   197  0496  04CF               	iorwf	?a_RangeKeyValue+9
   198  0497  0873               	movf	btemp+3,w
   199  0498  04D0               	iorwf	?a_RangeKeyValue+10
   200  0499                     l21
   201                           ;key.c: 148: }
   202  0499  0847               	movf	?a_RangeKeyValue+1,w
   203  049A  3E36               	addlw	_KeyInput^(0+256)
   204  049B  0084               	movwf	4
   205  049C  1783               	bsf	3,7
   206  049D  1D00               	btfss	0,2
   207  049E  2CC0               	goto	l22
   208                           ;key.c: 151: {
   209  049F  0848               	movf	?a_RangeKeyValue+2,w
   210  04A0  3E0C               	addlw	12
   211  04A1  00C9               	movwf	?a_RangeKeyValue+3
   212                           ;key.c: 153: KeyUnitCou++;
   213  04A2  0ACA               	incf	?a_RangeKeyValue+4
   214                           ;key.c: 154: KeyBitValueStruct.allbits |= 1 << 
      +                          (keyvalue_a - 1);
   215  04A3  0349               	decf	?a_RangeKeyValue+3,w
   216  04A4  00F2               	movwf	btemp+2
   217  04A5  3001               	movlw	1
   218  04A6  00F0               	movwf	btemp
   219  04A7  3000               	movlw	0
   220  04A8  01F1               	clrf	btemp+1
   221  04A9  0AF2               	incf	btemp+2
   222  04AA  2CAE               	goto	u64
   223  04AB                     u65
   224  04AB  1003               	bcf	3,0
   225  04AC  0DF0               	rlf	btemp
   226  04AD  0DF1               	rlf	btemp+1
   227  04AE                     u64
   228  04AE  0BF2               	decfsz	btemp+2
   229  04AF  2CAB               	goto	u65
   230  04B0  0870               	movf	btemp,w
   231  04B1  00F0               	movwf	btemp
   232  04B2  0871               	movf	btemp+1,w
   233  04B3  3000               	movlw	0
   234  04B4  1BF1               	btfsc	btemp+1,7
   235  04B5  30FF               	movlw	255
   236  04B6  00F2               	movwf	btemp+2
   237  04B7  00F3               	movwf	btemp+3
   238  04B8  0870               	movf	btemp,w
   239  04B9  04CD               	iorwf	?a_RangeKeyValue+7
   240  04BA  0871               	movf	btemp+1,w
   241  04BB  04CE               	iorwf	?a_RangeKeyValue+8
   242  04BC  0872               	movf	btemp+2,w
   243  04BD  04CF               	iorwf	?a_RangeKeyValue+9
   244  04BE  0873               	movf	btemp+3,w
   245  04BF  04D0               	iorwf	?a_RangeKeyValue+10

⌨️ 快捷键说明

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