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

📄 key.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 5 页
字号:
   503                           ;key.c: 55: asm("nop");
   504  0573  0000               	nop	;#
   505                           ;key.c: 56: RB4 = 0;
   506  0574  1283               	bcf	3,5
   507  0575  1206               	bcf	6,4
   508                           ;key.c: 57: asm("nop");
   509  0576  0000               	nop	;#
   510                           ;key.c: 58: asm("nop");
   511  0577  0000               	nop	;#
   512                           ;key.c: 59: asm("nop");
   513  0578  0000               	nop	;#
   514                           ;key.c: 60: KeyInput[2].allbits = PORTA;
   515  0579  0805               	movf	5,w	;volatile
   516  057A  1703               	bsf	3,6
   517  057B  00B8               	movwf	(_KeyInput+2)^(0+256)	;volatile
   518                           ;key.c: 62: KeyInput[2].allbits |= 0xf0;
   519  057C  30F0               	movlw	-16
   520  057D  04B8               	iorwf	(_KeyInput+2)^(0+256)	;volatile
   521                           ;key.c: 63: TRISB4 = 1;
   522  057E  1683               	bsf	3,5
   523  057F  1303               	bcf	3,6	;carry unused
   524  0580  1606               	bsf	6,4
   525                           ;key.c: 64: KeyInput[2].allbits ^= 0xff;
   526  0581  30FF               	movlw	-1
   527  0582  1283               	bcf	3,5
   528  0583  1703               	bsf	3,6
   529  0584  06B8               	xorwf	(_KeyInput+2)^(0+256)	;volatile
   530                           ;key.c: 66: TRISB5 = 0;
   531  0585  1683               	bsf	3,5
   532  0586  1303               	bcf	3,6	;carry unused
   533  0587  1286               	bcf	6,5
   534                           ;key.c: 67: asm("nop");
   535  0588  0000               	nop	;#
   536                           ;key.c: 68: asm("nop");
   537  0589  0000               	nop	;#
   538                           ;key.c: 69: RB5 = 0;
   539  058A  1283               	bcf	3,5
   540  058B  1286               	bcf	6,5
   541                           ;key.c: 70: asm("nop");
   542  058C  0000               	nop	;#
   543                           ;key.c: 71: asm("nop");
   544  058D  0000               	nop	;#
   545                           ;key.c: 72: asm("nop");
   546  058E  0000               	nop	;#
   547                           ;key.c: 73: KeyInput[3].allbits = PORTA;
   548  058F  0805               	movf	5,w	;volatile
   549  0590  1703               	bsf	3,6
   550  0591  00B9               	movwf	(_KeyInput+3)^(0+256)	;volatile
   551                           ;key.c: 75: KeyInput[3].allbits |= 0xf0;
   552  0592  30F0               	movlw	-16
   553  0593  04B9               	iorwf	(_KeyInput+3)^(0+256)	;volatile
   554                           ;key.c: 76: TRISB5 = 1;
   555  0594  1683               	bsf	3,5
   556  0595  1303               	bcf	3,6	;carry unused
   557  0596  1686               	bsf	6,5
   558                           ;key.c: 77: KeyInput[3].allbits ^= 0xff;
   559  0597  30FF               	movlw	-1
   560  0598  1283               	bcf	3,5
   561  0599  1703               	bsf	3,6
   562  059A  06B9               	xorwf	(_KeyInput+3)^(0+256)	;volatile
   563                           ;key.c: 79: TRISB6 = 0;
   564  059B  1683               	bsf	3,5
   565  059C  1303               	bcf	3,6	;carry unused
   566  059D  1306               	bcf	6,6
   567                           ;key.c: 80: asm("nop");
   568  059E  0000               	nop	;#
   569                           ;key.c: 81: asm("nop");
   570  059F  0000               	nop	;#
   571                           ;key.c: 82: RB6 = 0;
   572  05A0  1283               	bcf	3,5
   573  05A1  1306               	bcf	6,6
   574                           ;key.c: 83: asm("nop");
   575  05A2  0000               	nop	;#
   576                           ;key.c: 84: asm("nop");
   577  05A3  0000               	nop	;#
   578                           ;key.c: 85: asm("nop");
   579  05A4  0000               	nop	;#
   580                           ;key.c: 86: KeyInput[4].allbits = PORTA;
   581  05A5  0805               	movf	5,w	;volatile
   582  05A6  1703               	bsf	3,6
   583  05A7  00BA               	movwf	(_KeyInput+4)^(0+256)	;volatile
   584                           ;key.c: 88: KeyInput[4].allbits |= 0xf0;
   585  05A8  30F0               	movlw	-16
   586  05A9  04BA               	iorwf	(_KeyInput+4)^(0+256)	;volatile
   587                           ;key.c: 89: TRISB6 = 1;
   588  05AA  1683               	bsf	3,5
   589  05AB  1303               	bcf	3,6	;carry unused
   590  05AC  1706               	bsf	6,6
   591                           ;key.c: 90: KeyInput[4].allbits ^= 0xff;
   592  05AD  30FF               	movlw	-1
   593  05AE  1283               	bcf	3,5
   594  05AF  1703               	bsf	3,6
   595  05B0  06BA               	xorwf	(_KeyInput+4)^(0+256)	;volatile
   596                           ;key.c: 92: TRISB7 = 0;
   597  05B1  1683               	bsf	3,5
   598  05B2  1303               	bcf	3,6	;carry unused
   599  05B3  1386               	bcf	6,7
   600                           ;key.c: 93: asm("nop");
   601  05B4  0000               	nop	;#
   602                           ;key.c: 94: asm("nop");
   603  05B5  0000               	nop	;#
   604                           ;key.c: 95: RB7 = 0;
   605  05B6  1283               	bcf	3,5
   606  05B7  1386               	bcf	6,7
   607                           ;key.c: 96: asm("nop");
   608  05B8  0000               	nop	;#
   609                           ;key.c: 97: asm("nop");
   610  05B9  0000               	nop	;#
   611                           ;key.c: 98: asm("nop");
   612  05BA  0000               	nop	;#
   613                           ;key.c: 99: KeyInput[5].allbits = PORTA;
   614  05BB  0805               	movf	5,w	;volatile
   615  05BC  1703               	bsf	3,6
   616  05BD  00BB               	movwf	(_KeyInput+5)^(0+256)	;volatile
   617                           ;key.c: 101: KeyInput[5].allbits |= 0xf0;
   618  05BE  30F0               	movlw	-16
   619  05BF  04BB               	iorwf	(_KeyInput+5)^(0+256)	;volatile
   620                           ;key.c: 102: TRISB7 = 1;
   621  05C0  1683               	bsf	3,5
   622  05C1  1303               	bcf	3,6	;carry unused
   623  05C2  1786               	bsf	6,7
   624                           ;key.c: 103: KeyInput[5].allbits ^= 0xff;
   625  05C3  30FF               	movlw	-1
   626  05C4  1283               	bcf	3,5
   627  05C5  1703               	bsf	3,6
   628  05C6  06BB               	xorwf	(_KeyInput+5)^(0+256)	;volatile
   629                           ;key.c: 108: TRISA &= 0B11100000;
   630  05C7  30E0               	movlw	-32
   631  05C8  1683               	bsf	3,5
   632  05C9  1303               	bcf	3,6	;carry unused
   633  05CA  0585               	andwf	5	;volatile
   634                           ;key.c: 109: asm("nop");
   635  05CB  0000               	nop	;#
   636                           ;key.c: 110: asm("nop");
   637  05CC  0000               	nop	;#
   638                           ;key.c: 111: PORTA = bufporta;
   639  05CD  1283               	bcf	3,5
   640  05CE  0846               	movf	?a_key_scan,w
   641  05CF  0085               	movwf	5	;volatile
   642                           ;key.c: 113: TRISB &= 0B00000110;
   643  05D0  3006               	movlw	6
   644  05D1  1683               	bsf	3,5
   645  05D2  0586               	andwf	6	;volatile
   646                           ;key.c: 114: asm("nop");
   647  05D3  0000               	nop	;#
   648                           ;key.c: 115: asm("nop");
   649  05D4  0000               	nop	;#
   650                           ;key.c: 116: PORTB = bufportb;
   651  05D5  1283               	bcf	3,5
   652  05D6  0847               	movf	?a_key_scan+1,w
   653  05D7  0086               	movwf	6	;volatile
   654                           ;key.c: 121: }
   655  05D8  0008               	return
   656                           ;key.c: 228: void KeyValueAffFun(void)
   657                           ;key.c: 229: {
   658  05D9                     _KeyValueAffFun
   659                           ;key.c: 231: bank2 static uchar KeyScanCou;
   660  05D9  1283               	bcf	3,5
   661  05DA  1703               	bsf	3,6
   662  05DB  01A2               	clrf	_KeyValue^(0+256)	;volatile
   663                           ;key.c: 234: key_scan();
   664  05DC  2539               	fcall	_key_scan
   665                           ;key.c: 235: KeyValueTempBuf[KeyScanCou++] = Ra
      +                          ngeKeyValue();
   666  05DD  2440               	fcall	_RangeKeyValue
   667  05DE  1703               	bsf	3,6
   668  05DF  0833               	movf	F477^(0+256),w
   669  05E0  0733               	addwf	F477^(0+256),w
   670  05E1  3E3F               	addlw	F476^(0+256)
   671  05E2  0084               	movwf	4
   672  05E3  1783               	bsf	3,7
   673  05E4  0870               	movf	btemp,w
   674  05E5  0080               	movwf	0
   675  05E6  0A84               	incf	4
   676  05E7  0871               	movf	btemp+1,w
   677  05E8  0080               	movwf	0
   678  05E9  0AB3               	incf	F477^(0+256)
   679                           ;key.c: 237: if(KeyScanCou < 3)
   680  05EA  3003               	movlw	3
   681  05EB  0233               	subwf	F477^(0+256),w
   682  05EC  1C03               	btfss	3,0
   683  05ED  2E2C               	goto	l38
   684                           ;key.c: 238: {
   685                           ;key.c: 240: }
   686  05EE  01B3               	clrf	F477^(0+256)
   687                           ;key.c: 245: if(0 == ((KeyValueTempBuf[0].allbi
      +                          ts == KeyValueTempBuf[1].allbits) &&
   688  05EF  3041               	movlw	(F476+2)^(0+256)
   689  05F0  0084               	movwf	4
   690  05F1  083F               	movf	F476^(0+256),w
   691  05F2  0600               	xorwf	0,w
   692  05F3  1D03               	btfss	3,2
   693  05F4  2DF8               	goto	u235
   694  05F5  0840               	movf	(F476+1)^(0+256),w
   695  05F6  0A84               	incf	4
   696  05F7  0600               	xorwf	0,w
   697  05F8                     u235
   698  05F8  1D03               	btfss	3,2
   699  05F9  2E24               	goto	L5
   700  05FA  3043               	movlw	(F476+4)^(0+256)
   701  05FB  0084               	movwf	4
   702  05FC  1783               	bsf	3,7
   703  05FD  083F               	movf	F476^(0+256),w
   704  05FE  0600               	xorwf	0,w
   705  05FF  1D03               	btfss	3,2
   706  0600  2E04               	goto	u245
   707  0601  0840               	movf	(F476+1)^(0+256),w
   708  0602  0A84               	incf	4
   709  0603  0600               	xorwf	0,w
   710  0604                     u245
   711  0604  1D03               	btfss	3,2
   712  0605  2E24               	goto	L5
   713                           ;key.c: 247: {
   714                           ;key.c: 249: KeyValueTempBuf[1].allbits = 0;
   715                           ;key.c: 250: KeyValueTempBuf[2].allbits = 0;
   716                           ;key.c: 251: return;
   717                           ;key.c: 252: }
   718  0606  0E44               	swapf	(F476+5)^(0+256),w
   719  0607  390F               	andlw	15
   720  0608  1D03               	btfss	3,2
   721  0609  2E0C               	goto	l41
   722                           ;key.c: 264: {
   723  060A  01A2               	clrf	_KeyValue^(0+256)	;volatile
   724  060B  2E1C               	goto	L7
   725                           ;key.c: 266: KeyValue |= 0b10000000;
   726                           ;key.c: 267: KeyValueTempBuf[0].allbits = 0;
   727                           ;key.c: 268: KeyValueTempBuf[1].allbits = 0;
   728                           ;key.c: 269: KeyValueTempBuf[2].allbits = 0;
   729                           ;key.c: 270: }
   730  060C                     l41
   731  060C  0E44               	swapf	(F476+5)^(0+256),w
   732  060D  390F               	andlw	15
   733  060E  3A01               	xorlw	1
   734  060F  1D03               	btfss	3,2
   735  0610  2E13               	goto	l43
   736                           ;key.c: 272: {
   737  0611  0843               	movf	(F476+4)^(0+256),w
   738  0612  2E1B               	goto	L8
   739                           ;key.c: 274: KeyValue |= 0b10000000;
   740                           ;key.c: 275: KeyValueTempBuf[0].allbits = 0;
   741                           ;key.c: 276: KeyValueTempBuf[1].allbits = 0;
   742                           ;key.c: 277: KeyValueTempBuf[2].allbits = 0;
   743                           ;key.c: 278: }
   744  0613                     l43
   745  0613  0E44               	swapf	(F476+5)^(0+256),w
   746  0614  390F               	andlw	15
   747  0615  3A02               	xorlw	2
   748  0616  1D03               	btfss	3,2
   749  0617  2E1E               	goto	l45
   750                           ;key.c: 280: {
   751  0618  0844               	movf	(F476+5)^(0+256),w
   752  0619  390F               	andlw	15
   753  061A  3E18               	addlw	280
   754  061B                     L8
   755  061B  00A2               	movwf	_KeyValue^(0+256)	;volatile
   756  061C                     L7
   757                           ;key.c: 282: KeyValue |= 0b10000000;
   758  061C  17A2               	bsf	_KeyValue^(0+256),7	;volatile
   759  061D  2E24               	goto	L5
   760                           ;key.c: 283: KeyValueTempBuf[0].allbits = 0;
   761                           ;key.c: 284: KeyValueTempBuf[1].allbits = 0;
   762                           ;key.c: 285: KeyValueTempBuf[2].allbits = 0;
   763                           ;key.c: 286: }
   764  061E                     l45
   765  061E  0E44               	swapf	(F476+5)^(0+256),w

⌨️ 快捷键说明

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