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

📄 key.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 5 页
字号:
   766  061F  390F               	andlw	15
   767  0620  3A03               	xorlw	3
   768  0621  1D03               	btfss	3,2
   769  0622  2E2B               	goto	l47
   770                           ;key.c: 288: {
   771  0623  01A2               	clrf	_KeyValue^(0+256)	;volatile
   772  0624                     L5
   773                           ;key.c: 290: KeyValueTempBuf[0].allbits = 0;
   774  0624  01BF               	clrf	F476^(0+256)
   775  0625  01C0               	clrf	(F476+1)^(0+256)
   776                           ;key.c: 291: KeyValueTempBuf[1].allbits = 0;
   777  0626  01C1               	clrf	(F476+2)^(0+256)
   778  0627  01C2               	clrf	(F476+3)^(0+256)
   779                           ;key.c: 292: KeyValueTempBuf[2].allbits = 0;
   780  0628  01C3               	clrf	(F476+4)^(0+256)
   781  0629  01C4               	clrf	(F476+5)^(0+256)
   782                           ;key.c: 293: }
   783  062A  2E2C               	goto	l38
   784  062B                     l47
   785  062B  0000               	nop	;#
   786                           ;key.c: 297: }
   787  062C                     l38
   788  062C  1303               	bcf	3,6	;carry unused
   789  062D  0008               	return
   790                           
   791                           	psect	rdata_2
   792                           ;key.c: 230: bank2 static KEYVALUESTRUCT KeyVal
      +                          ueTempBuf[3]={0,0,0};
   793  013F                     F476
   794  013F                     	ds	1
   795  0140                     	ds	1
   796  0141                     	ds	4
   797                           
   798                           	psect	idata_2
   799  07FA  3400               	retlw	0
   800  07FB  3400               	retlw	0
   801  07FC  3400               	retlw	0
   802  07FD  3400               	retlw	0
   803  07FE  3400               	retlw	0
   804  07FF  3400               	retlw	0
   805                           
   806                           	psect	text3
   807                           ;key.c: 306: void Keybit_Manage(void)
   808                           ;key.c: 307: {
   809  0E42                     _Keybit_Manage
   810                           ;key.c: 308: static uchar KeyValueBufMap;
   811  0E42  1283               	bcf	3,5
   812  0E43  1703               	bsf	3,6
   813  0E44  01B4               	clrf	_KeyValueBuf^(0+256)
   814                           ;key.c: 316: KeyValueBuf = KeyValue;
   815  0E45  0822               	movf	_KeyValue^(0+256),w	;volatile
   816  0E46  00B4               	movwf	_KeyValueBuf^(0+256)
   817                           ;key.c: 318: KeyValue = 0;
   818  0E47  01A2               	clrf	_KeyValue^(0+256)	;volatile
   819                           ;key.c: 321: if( (KeyValueBuf&0b10000000)==0 )
   820  0E48  1FB4               	btfss	_KeyValueBuf^(0+256),7
   821  0E49  2EAA               	goto	l49
   822                           ;key.c: 322: return;
   823                           ;key.c: 324: KeyValueBuf -= 128;
   824  0E4A  3080               	movlw	-128
   825  0E4B  07B4               	addwf	_KeyValueBuf^(0+256)
   826                           ;key.c: 326: KeyValueBufMap = KeyValMap[KeyValu
      +                          eBuf];
   827  0E4C  3008               	movlw	_KeyValMap shr (0+8)
   828  0E4D  008A               	movwf	10
   829  0E4E  0834               	movf	_KeyValueBuf^(0+256),w
   830  0E4F  2000               	call	((_KeyValMap+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   831  0E50  158A               	pagesel	$
   832  0E51  1303               	bcf	3,6	;carry unused
   833  0E52  00C4               	movwf	F479
   834                           ;key.c: 327: KeyValueBuf = 0;
   835  0E53  1703               	bsf	3,6
   836  0E54  01B4               	clrf	_KeyValueBuf^(0+256)
   837                           ;key.c: 345: if (KeyValueBufMap == 0)
   838  0E55  1303               	bcf	3,6	;carry unused
   839  0E56  08C4               	movf	F479
   840  0E57  1D03               	btfss	3,2
   841  0E58  2E5B               	goto	l51
   842                           ;key.c: 346: {
   843  0E59  30FF               	movlw	-1
   844  0E5A  00C5               	movwf	F480
   845  0E5B                     l51
   846                           ;key.c: 348: }
   847  0E5B  08C4               	movf	F479
   848  0E5C  1903               	btfsc	3,2
   849  0E5D  2EAA               	goto	l49
   850                           ;key.c: 351: return;
   851                           ;key.c: 353: if (KeyValueZeroTag == 0)
   852  0E5E  08C5               	movf	F480
   853  0E5F  1903               	btfsc	3,2
   854  0E60  2EAA               	goto	l49
   855                           ;key.c: 354: return;
   856                           ;key.c: 355: KeyValueZeroTag = 0;
   857  0E61  01C5               	clrf	F480
   858                           ;key.c: 360: if(KeyValueBufMap != 0)
   859  0E62  08C4               	movf	F479
   860  0E63  1903               	btfsc	3,2
   861  0E64  2E69               	goto	l54
   862                           ;key.c: 361: {
   863  0E65  0844               	movf	F479,w
   864  0E66  1703               	bsf	3,6
   865  0E67  00B5               	movwf	_KeyValueBufBuf^(0+256)
   866                           ;key.c: 363: }
   867  0E68  2E73               	goto	l55
   868  0E69                     l54
   869                           ;key.c: 365: {
   870  0E69  1703               	bsf	3,6
   871  0E6A  08B5               	movf	_KeyValueBufBuf^(0+256)
   872  0E6B  1D03               	btfss	3,2
   873  0E6C  2E72               	goto	l56
   874                           ;key.c: 367: {
   875  0E6D  1303               	bcf	3,6	;carry unused
   876  0E6E  0844               	movf	F479,w
   877  0E6F  1703               	bsf	3,6
   878  0E70  00B5               	movwf	_KeyValueBufBuf^(0+256)
   879                           ;key.c: 369: return;
   880  0E71  2EAA               	goto	l49
   881  0E72                     l56
   882                           ;key.c: 372: {
   883  0E72  0000               	nop	;#
   884                           ;key.c: 374: }
   885  0E73                     l55
   886                           ;key.c: 375: }
   887                           ;key.c: 380: if((KeyValueBufBuf&0b01000000)==0)
   888  0E73  1B35               	btfsc	_KeyValueBufBuf^(0+256),6
   889  0E74  2E77               	goto	l58
   890                           ;key.c: 381: {
   891  0E75  1423               	bsf	_Key^(0+256),0	;volatile
   892                           ;key.c: 383: }
   893  0E76  2E78               	goto	l59
   894  0E77                     l58
   895                           ;key.c: 385: {
   896  0E77  1023               	bcf	_Key^(0+256),0	;volatile
   897  0E78                     l59
   898                           ;key.c: 387: }
   899                           ;key.c: 397: if( KeyValueBufBuf==65 )
   900  0E78  0835               	movf	_KeyValueBufBuf^(0+256),w
   901  0E79  3A41               	xorlw	65
   902  0E7A  1903               	btfsc	3,2
   903                           ;key.c: 398: {
   904  0E7B  15A3               	bsf	_Key^(0+256),3	;volatile
   905                           ;key.c: 400: }
   906  0E7C  0835               	movf	_KeyValueBufBuf^(0+256),w
   907  0E7D  3A42               	xorlw	66
   908  0E7E  1D03               	btfss	3,2
   909  0E7F  2E88               	goto	l61
   910                           ;key.c: 404: {
   911  0E80  1FA3               	btfss	_Key^(0+256),7	;volatile
   912  0E81  2E87               	goto	l62
   913                           ;key.c: 406: {
   914  0E82  1623               	bsf	_Key^(0+256),4	;volatile
   915                           ;key.c: 408: twoSecCou = 0;
   916  0E83  01B1               	clrf	_twoSecCou^(0+256)	;volatile
   917  0E84  01B2               	clrf	(_twoSecCou+1)^(0+256)	;volatile
   918                           ;key.c: 409: Key.bits.MultiKeyTwoCouTag = 0;
   919  0E85  13A3               	bcf	_Key^(0+256),7	;volatile
   920                           ;key.c: 410: }
   921  0E86  2E88               	goto	l61
   922  0E87                     l62
   923                           ;key.c: 412: {
   924  0E87  17A3               	bsf	_Key^(0+256),7	;volatile
   925                           ;key.c: 414: }
   926  0E88                     l61
   927                           ;key.c: 415: }
   928  0E88  0835               	movf	_KeyValueBufBuf^(0+256),w
   929  0E89  3A43               	xorlw	67
   930  0E8A  1D03               	btfss	3,2
   931  0E8B  2EAA               	goto	l49
   932                           ;key.c: 419: {
   933  0E8C  0824               	movf	(_Key+1)^(0+256),w	;volatile
   934  0E8D  3907               	andlw	7
   935  0E8E  1903               	btfsc	3,2
   936  0E8F  2EA6               	goto	l65
   937                           ;key.c: 421: {
   938  0E90  0824               	movf	(_Key+1)^(0+256),w	;volatile
   939  0E91  3907               	andlw	7
   940  0E92  00F0               	movwf	btemp
   941  0E93  0AF0               	incf	btemp
   942  0E94  0824               	movf	(_Key+1)^(0+256),w	;volatile
   943  0E95  0670               	xorwf	btemp,w
   944  0E96  39F8               	andlw	-8
   945  0E97  0670               	xorwf	btemp,w
   946  0E98  00A4               	movwf	(_Key+1)^(0+256)	;volatile
   947                           ;key.c: 423: if(Key.bits.MultiKeyThreeCouTag >=
      +                           3)
   948  0E99  0824               	movf	(_Key+1)^(0+256),w	;volatile
   949  0E9A  3907               	andlw	7
   950  0E9B  00F0               	movwf	btemp
   951  0E9C  3003               	movlw	3
   952  0E9D  0270               	subwf	btemp,w
   953  0E9E  1C03               	btfss	3,0
   954  0E9F  2EAA               	goto	l49
   955                           ;key.c: 424: {
   956  0EA0  16A3               	bsf	_Key^(0+256),5	;volatile
   957                           ;key.c: 426: oneSecCou = 0;
   958  0EA1  01AF               	clrf	_oneSecCou^(0+256)	;volatile
   959  0EA2  01B0               	clrf	(_oneSecCou+1)^(0+256)	;volatile
   960                           ;key.c: 427: Key.bits.MultiKeyThreeCouTag = 0;
   961  0EA3  0824               	movf	(_Key+1)^(0+256),w	;volatile
   962  0EA4  39F8               	andlw	-8
   963  0EA5  2EA9               	goto	L9
   964                           ;key.c: 428: }
   965                           ;key.c: 430: else
   966  0EA6                     l65
   967                           ;key.c: 431: {
   968  0EA6  0824               	movf	(_Key+1)^(0+256),w	;volatile
   969  0EA7  39F8               	andlw	-8
   970  0EA8  3801               	iorlw	1
   971  0EA9                     L9
   972  0EA9  00A4               	movwf	(_Key+1)^(0+256)	;volatile
   973                           ;key.c: 433: }
   974                           ;key.c: 434: }
   975  0EAA                     l49
   976  0EAA  1303               	bcf	3,6	;carry unused
   977  0EAB  0008               	return
   978                           
   979                           	psect	text4
   980                           ;key.c: 444: void Key_Manage(void)
   981                           ;key.c: 445: {
   982  0CF0                     _Key_Manage
   983                           ;key.c: 475: if(Key.bits.UnitaryKey)
   984  0CF0  1283               	bcf	3,5
   985  0CF1  1703               	bsf	3,6
   986  0CF2  1C23               	btfss	_Key^(0+256),0	;volatile
   987  0CF3  2D03               	goto	l69
   988                           ;key.c: 476: {
   989  0CF4  1023               	bcf	_Key^(0+256),0	;volatile
   990                           ;key.c: 478: UartStruct.bits.singleKeyTag = 1;
   991  0CF5  1683               	bsf	3,5
   992  0CF6  1303               	bcf	3,6	;carry unused
   993  0CF7  1724               	bsf	_UartStruct^(0+128),6	;volatile
   994                           ;key.c: 479: if(KeyValueBufBuf != 0)
   995  0CF8  1283               	bcf	3,5
   996  0CF9  1703               	bsf	3,6
   997  0CFA  08B5               	movf	_KeyValueBufBuf^(0+256)
   998  0CFB  1903               	btfsc	3,2
   999  0CFC  2D00               	goto	l70
  1000                           ;key.c: 480: LedShowLink = KeyValueBufBuf;
  1001  0CFD  0835               	movf	_KeyValueBufBuf^(0+256),w
  1002  0CFE  00AB               	movwf	_LedShowLink^(0+256)	;volatile
  1003  0CFF  01AC               	clrf	(_LedShowLink+1)^(0+256)	;volatile
  1004  0D00                     l70
  1005                           ;key.c: 481: Key_V = (uint) KeyValueBufBuf;
  1006  0D00  0835               	movf	_KeyValueBufBuf^(0+256),w
  1007  0D01  00A7               	movwf	_Key_V^(0+256)	;volatile
  1008  0D02  01A8               	clrf	(_Key_V+1)^(0+256)	;volatile
  1009  0D03                     l69
  1010                           ;key.c: 482: }
  1011  0D03  1DA3               	btfss	_Key^(0+256),3	;volatile
  1012  0D04  2D09               	goto	l71
  1013                           ;key.c: 485: {
  1014  0D05  11A3               	bcf	_Key^(0+256),3	;volatile
  1015                           ;key.c: 487: LedShowLink = 165;
  1016  0D06  30A5               	movlw	165
  1017  0D07  00AB               	movwf	_LedShowLink^(0+256)	;volatile
  1018  0D08  01AC               	clrf	(_LedShowLink+1)^(0+256)	;volatile
  1019  0D09                     l71
  1020                           ;key.c: 488: }
  1021  0D09  1E23               	btfss	_Key^(0+256),4	;volatile
  1022  0D0A  2D0F               	goto	l72
  1023                           ;key.c: 491: {
  1024  0D0B  1223               	bcf	_Key^(0+256),4	;volatile
  1025                           ;key.c: 493: LedShowLink = 166;
  1026  0D0C  30A6               	movlw	166

⌨️ 快捷键说明

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