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

📄 led.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   230  0D67  3036               	movlw	low fpl__lightled6
   231  0D68  00B9               	movwf	_pcled+12
   232  0D69  3008               	movlw	high fpl__lightled6
   233  0D6A  00BA               	movwf	_pcled+13
   234                           ;led.c: 95: pcled[7] = lightled7;
   235  0D6B  302E               	movlw	low fpl__lightled7
   236  0D6C  00BB               	movwf	_pcled+14
   237  0D6D  3008               	movlw	high fpl__lightled7
   238  0D6E  00BC               	movwf	_pcled+15
   239                           ;led.c: 96: pcled[8] = lightled8;
   240  0D6F  3030               	movlw	low fpl__lightled8
   241  0D70  00BD               	movwf	_pcled+16
   242  0D71  3008               	movlw	high fpl__lightled8
   243  0D72  00BE               	movwf	_pcled+17
   244                           ;led.c: 97: pcled[9] = lightled9;
   245  0D73  302C               	movlw	low fpl__lightled9
   246  0D74  00BF               	movwf	_pcled+18
   247  0D75  3008               	movlw	high fpl__lightled9
   248  0D76  00C0               	movwf	_pcled+19
   249                           ;led.c: 98: }
   250  0D77  0008               	return
   251                           
   252                           	psect	text11
   253  033E                     _CalculateSub
   254                           ;led.c: 103: *p_aloneD = (char)(Digit/1000);
   255  033E  0183               	clrf	3	;select bank 0
   256  033F  0848               	movf	?_CalculateSub+2,w
   257  0340  0084               	movwf	4
   258  0341  1383               	bcf	3,7
   259  0342  30E8               	movlw	232
   260  0343  00F2               	movwf	btemp+2
   261  0344  3003               	movlw	3
   262  0345  00F3               	movwf	btemp+3
   263  0346  0847               	movf	?_CalculateSub+1,w
   264  0347  00F1               	movwf	btemp+1
   265  0348  0846               	movf	?_CalculateSub,w
   266  0349  00F0               	movwf	btemp
   267  034A  118A  26FF         	fcall	lwdiv
   268  034C  0874               	movf	btemp+4,w
   269  034D  0080               	movwf	0
   270                           ;led.c: 104: Digit -= *p_aloneD++ * 1000;
   271  034E  30E8               	movlw	232
   272  034F  00F2               	movwf	btemp+2
   273  0350  3003               	movlw	3
   274  0351  00F3               	movwf	btemp+3
   275  0352  0848               	movf	?_CalculateSub+2,w
   276  0353  0084               	movwf	4
   277  0354  1383               	bcf	3,7
   278  0355  0800               	movf	0,w
   279  0356  00F0               	movwf	btemp
   280  0357  01F1               	clrf	btemp+1
   281  0358  158A  248C         	fcall	lwmul
   282  035A  0874               	movf	btemp+4,w
   283  035B  02C6               	subwf	?_CalculateSub
   284  035C  1C03               	btfss	3,0
   285  035D  03C7               	decf	?_CalculateSub+1
   286  035E  0875               	movf	btemp+5,w
   287  035F  02C7               	subwf	?_CalculateSub+1
   288  0360  0AC8               	incf	?_CalculateSub+2
   289                           ;led.c: 106: *p_aloneD = (char)(Digit/100);
   290  0361  0848               	movf	?_CalculateSub+2,w
   291  0362  0084               	movwf	4
   292  0363  1383               	bcf	3,7
   293  0364  3064               	movlw	100
   294  0365  00F2               	movwf	btemp+2
   295  0366  01F3               	clrf	btemp+3
   296  0367  0847               	movf	?_CalculateSub+1,w
   297  0368  00F1               	movwf	btemp+1
   298  0369  0846               	movf	?_CalculateSub,w
   299  036A  00F0               	movwf	btemp
   300  036B  118A  26FF         	fcall	lwdiv
   301  036D  0874               	movf	btemp+4,w
   302  036E  0080               	movwf	0
   303                           ;led.c: 107: Digit -= *p_aloneD++ * 100;
   304  036F  3064               	movlw	100
   305  0370  00F2               	movwf	btemp+2
   306  0371  01F3               	clrf	btemp+3
   307  0372  0848               	movf	?_CalculateSub+2,w
   308  0373  0084               	movwf	4
   309  0374  1383               	bcf	3,7
   310  0375  0800               	movf	0,w
   311  0376  00F0               	movwf	btemp
   312  0377  01F1               	clrf	btemp+1
   313  0378  158A  248C         	fcall	lwmul
   314  037A  0874               	movf	btemp+4,w
   315  037B  02C6               	subwf	?_CalculateSub
   316  037C  1C03               	btfss	3,0
   317  037D  03C7               	decf	?_CalculateSub+1
   318  037E  0875               	movf	btemp+5,w
   319  037F  02C7               	subwf	?_CalculateSub+1
   320  0380  0AC8               	incf	?_CalculateSub+2
   321                           ;led.c: 109: *p_aloneD = (char)(Digit/10);
   322  0381  0848               	movf	?_CalculateSub+2,w
   323  0382  0084               	movwf	4
   324  0383  1383               	bcf	3,7
   325  0384  300A               	movlw	10
   326  0385  00F2               	movwf	btemp+2
   327  0386  01F3               	clrf	btemp+3
   328  0387  0847               	movf	?_CalculateSub+1,w
   329  0388  00F1               	movwf	btemp+1
   330  0389  0846               	movf	?_CalculateSub,w
   331  038A  00F0               	movwf	btemp
   332  038B  118A  26FF         	fcall	lwdiv
   333  038D  0874               	movf	btemp+4,w
   334  038E  0080               	movwf	0
   335                           ;led.c: 110: Digit -= *p_aloneD++ * 10;
   336  038F  300A               	movlw	10
   337  0390  00F2               	movwf	btemp+2
   338  0391  01F3               	clrf	btemp+3
   339  0392  0848               	movf	?_CalculateSub+2,w
   340  0393  0084               	movwf	4
   341  0394  1383               	bcf	3,7
   342  0395  0800               	movf	0,w
   343  0396  00F0               	movwf	btemp
   344  0397  01F1               	clrf	btemp+1
   345  0398  158A  248C  118A   	fcall	lwmul
   346  039B  0874               	movf	btemp+4,w
   347  039C  02C6               	subwf	?_CalculateSub
   348  039D  1C03               	btfss	3,0
   349  039E  03C7               	decf	?_CalculateSub+1
   350  039F  0875               	movf	btemp+5,w
   351  03A0  02C7               	subwf	?_CalculateSub+1
   352  03A1  0AC8               	incf	?_CalculateSub+2
   353                           ;led.c: 112: *p_aloneD = (char)Digit;
   354  03A2  0848               	movf	?_CalculateSub+2,w
   355  03A3  0084               	movwf	4
   356  03A4  1383               	bcf	3,7
   357  03A5  0846               	movf	?_CalculateSub,w
   358  03A6  0080               	movwf	0
   359                           ;led.c: 113: p_aloneD = 0;
   360  03A7  01C8               	clrf	?_CalculateSub+2
   361                           ;led.c: 114: }
   362  03A8  0008               	return
   363  03A9                     _sub2
   364                           ;led.c: 119: bank2 static uint ShowDigit;
   365  03A9  0000               	nop	;#
   366                           ;led.c: 121: ShowDigit = (uint)LedShowLink;
   367  03AA  1283               	bcf	3,5
   368  03AB  1703               	bsf	3,6
   369  03AC  082B               	movf	_LedShowLink^(0+256),w	;volatile
   370  03AD  00BD               	movwf	F498^(0+256)
   371  03AE  082C               	movf	(_LedShowLink+1)^(0+256),w	;volatile
   372  03AF  00BE               	movwf	(F498+1)^(0+256)
   373                           ;led.c: 122: CalculateSub(ShowDigit,aloneD);
   374  03B0  083D               	movf	F498^(0+256),w
   375  03B1  1303               	bcf	3,6	;carry unused
   376  03B2  00C6               	movwf	?_CalculateSub
   377  03B3  1703               	bsf	3,6
   378  03B4  083E               	movf	(F498+1)^(0+256),w
   379  03B5  1303               	bcf	3,6	;carry unused
   380  03B6  00C7               	movwf	?_CalculateSub+1
   381  03B7  30C6               	movlw	_aloneD
   382  03B8  00C8               	movwf	?_CalculateSub+2
   383  03B9  233E  118A         	fcall	_CalculateSub
   384                           ;led.c: 123: asm("nop");
   385  03BB  0000               	nop	;#
   386                           ;led.c: 124: }
   387  03BC  0008               	return
   388                           
   389                           	psect	text13
   390  0DAE                     _subled
   391                           ;	_byteT assigned to ?a_subled+0
   392  0000                     _subled$byteT	set	?a_subled
   393                           ;	_bytebit assigned to ?a_subled+1
   394  0000                     _subled$bytebit	set	?a_subled+1
   395                           ;led.c: 129: bank2 static char ledbitcou = 0b00
      +                          000000;
   396  0DAE  0183               	clrf	3	;select bank 0
   397  0DAF  01C7               	clrf	?a_subled+1
   398  0DB0  01C6               	clrf	?a_subled
   399                           ;led.c: 132: if(ledbitcou == 0)
   400  0DB1  1703               	bsf	3,6
   401  0DB2  08BC               	movf	F501^(0+256)
   402  0DB3  1D03               	btfss	3,2
   403  0DB4  2DB9               	goto	l29
   404                           ;led.c: 133: {
   405  0DB5  1303               	bcf	3,6	;carry unused
   406  0DB6  01C7               	clrf	?a_subled+1
   407  0DB7  0AC7               	incf	?a_subled+1
   408                           ;led.c: 135: }else if(ledbitcou == 1)
   409  0DB8  2DCA               	goto	l30
   410  0DB9                     l29
   411  0DB9  0B3C               	decfsz	F501^(0+256),w
   412  0DBA  2DBD               	goto	l31
   413                           ;led.c: 136: {
   414  0DBB  3002               	movlw	2
   415  0DBC  2DC8               	goto	L2
   416                           ;led.c: 138: }else if(ledbitcou == 2)
   417  0DBD                     l31
   418  0DBD  083C               	movf	F501^(0+256),w
   419  0DBE  3A02               	xorlw	2
   420  0DBF  1D03               	btfss	3,2
   421  0DC0  2DC3               	goto	l33
   422                           ;led.c: 139: {
   423  0DC1  3004               	movlw	4
   424  0DC2  2DC8               	goto	L2
   425                           ;led.c: 141: }else if(ledbitcou == 3)
   426  0DC3                     l33
   427  0DC3  083C               	movf	F501^(0+256),w
   428  0DC4  3A03               	xorlw	3
   429  0DC5  1D03               	btfss	3,2
   430  0DC6  2DCA               	goto	l30
   431                           ;led.c: 142: {
   432  0DC7  3008               	movlw	8
   433  0DC8                     L2
   434  0DC8  1303               	bcf	3,6	;carry unused
   435  0DC9  00C7               	movwf	?a_subled+1
   436                           ;led.c: 144: }
   437  0DCA                     l30
   438  0DCA  30F0               	movlw	-16
   439  0DCB  1303               	bcf	3,6	;carry unused
   440  0DCC  0585               	andwf	5	;volatile
   441                           ;led.c: 147: PORTA |= bytebit;
   442  0DCD  0847               	movf	?a_subled+1,w
   443  0DCE  0485               	iorwf	5	;volatile
   444                           ;led.c: 149: byteT = aloneD[ledbitcou];
   445  0DCF  1703               	bsf	3,6
   446  0DD0  083C               	movf	F501^(0+256),w
   447  0DD1  3EC6               	addlw	_aloneD
   448  0DD2  0084               	movwf	4
   449  0DD3  1383               	bcf	3,7
   450  0DD4  0800               	movf	0,w
   451  0DD5  1303               	bcf	3,6	;carry unused
   452  0DD6  00C6               	movwf	?a_subled
   453                           ;led.c: 150: (*pcled[byteT])();
   454  0DD7  0746               	addwf	?a_subled,w
   455  0DD8  3E2D               	addlw	_pcled
   456  0DD9  0084               	movwf	4
   457  0DDA  0800               	movf	0,w
   458  0DDB  00F0               	movwf	btemp
   459  0DDC  0A84               	incf	4
   460  0DDD  0800               	movf	0,w
   461  0DDE  00F1               	movwf	btemp+1
   462  0DDF  00DB               	movwf	code_ptr+1
   463  0DE0  0870               	movf	btemp,w
   464  0DE1  118A  210E  158A   	fcall	string_table
   465                           ;led.c: 151: if(++ledbitcou == 4)
   466  0DE4  1703               	bsf	3,6
   467  0DE5  0ABC               	incf	F501^(0+256)
   468  0DE6  083C               	movf	F501^(0+256),w
   469  0DE7  3A04               	xorlw	4
   470  0DE8  1903               	btfsc	3,2
   471                           ;led.c: 152: ledbitcou = 0;
   472  0DE9  01BC               	clrf	F501^(0+256)
   473                           ;led.c: 153: }
   474  0DEA  1303               	bcf	3,6	;carry unused
   475  0DEB  0008               	return
   476                           

⌨️ 快捷键说明

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