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

📄 main.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   247  00DD  0E7C               	swapf	saved_w,w
   248  00DE  0009               	retfie
   249                           
   250                           	psect	intentry
   251  0004                     int_entry
   252  0004  00FC               	movwf	saved_w
   253  0005  0803               	movf	3,w
   254  0006  0183               	clrf	3
   255  0007  00D7               	movwf	saved_status
   256  0008  0804               	movf	4,w
   257  0009  00D8               	movwf	saved_fsr
   258  000A  080A               	movf	10,w
   259  000B  00D9               	movwf	saved_pclath
   260  000C  018A               	clrf	10
   261                           
   262                           	psect	intsave
   263  0057                     saved_status
   264  0057                     	ds	1
   265  0058                     saved_fsr
   266  0058                     	ds	1
   267  0059                     saved_pclath
   268  0059                     	ds	1
   269                           
   270                           	psect	text3
   271                           ;main.c: 131: void ioinit(void)
   272                           ;main.c: 132: {
   273  0CA1                     _ioinit
   274                           ;main.c: 134: CM0=1;
   275  0CA1  0183               	clrf	3	;select bank 0
   276  0CA2  141F               	bsf	31,0
   277                           ;main.c: 135: CM1=1;
   278  0CA3  149F               	bsf	31,1
   279                           ;main.c: 136: CM2=1;
   280  0CA4  151F               	bsf	31,2
   281                           ;main.c: 138: TRISA |= 0x0f;
   282  0CA5  300F               	movlw	15
   283  0CA6  1683               	bsf	3,5
   284  0CA7  0485               	iorwf	5	;volatile
   285                           ;main.c: 140: TRISB |= 0b11111001;
   286  0CA8  30F9               	movlw	-7
   287  0CA9  0486               	iorwf	6	;volatile
   288                           ;main.c: 141: }
   289  0CAA  1283               	bcf	3,5
   290  0CAB  0008               	return
   291                           ;main.c: 119: void sysinit(void)
   292                           ;main.c: 120: {
   293  0CAC                     _sysinit
   294                           ;main.c: 121: asm("nop");
   295  0CAC  0000               	nop	;#
   296                           ;main.c: 122: time0init();
   297  0CAD  158A  2475  158A   	fcall	_time0init
   298                           ;main.c: 123: ioinit();
   299  0CB0  24A1               	fcall	_ioinit
   300                           ;main.c: 124: ledinit();
   301  0CB1  158A  2542         	fcall	_ledinit
   302                           ;main.c: 125: Uart_ini();
   303  0CB3  118A  23BD  158A   	fcall	_Uart_ini
   304                           ;main.c: 126: asm("nop");
   305  0CB6  0000               	nop	;#
   306                           ;main.c: 127: }
   307  0CB7  0008               	return
   308                           
   309                           	psect	text4
   310  0324                     _ParityBit
   311                           ;	_temp_a assigned to ?a_ParityBit+0
   312  0000                     _ParityBit$temp_a	set	?a_ParityBit
   313                           ;	_result assigned to ?a_ParityBit+1
   314  0000                     _ParityBit$result	set	?a_ParityBit+1
   315                           ;	_tempcount assigned to ?a_ParityBit+2
   316  0000                     _ParityBit$tempcount	set	?a_ParityBit+2
   317                           ;	_tempchar assigned to ?a_ParityBit+3
   318  0000                     _ParityBit$tempchar	set	?a_ParityBit+3
   319                           ;main.c: 147: char tempchar=0, tempcount ,temp_
      +                          a=0,result=0;
   320  0324  0183               	clrf	3	;select bank 0
   321  0325  01D6               	clrf	?a_ParityBit+3
   322  0326  01D3               	clrf	?a_ParityBit
   323  0327  01D4               	clrf	?a_ParityBit+1
   324                           ;main.c: 148: tempchar = *p_data;
   325  0328  0852               	movf	?_ParityBit+1,w
   326  0329  00DB               	movwf	code_ptr+1
   327  032A  0851               	movf	?_ParityBit,w
   328  032B  118A  210E  118A   	fcall	string_table
   329  032E  00D6               	movwf	?a_ParityBit+3
   330                           ;main.c: 150: for(tempcount = 8; tempcount > 0;
      +                           tempcount--)
   331  032F  3008               	movlw	8
   332  0330  00D5               	movwf	?a_ParityBit+2
   333  0331                     l33
   334                           ;main.c: 151: {
   335                           ;main.c: 152: temp_a = tempchar & 0x01;
   336  0331  0856               	movf	?a_ParityBit+3,w
   337  0332  3901               	andlw	1
   338  0333  00D3               	movwf	?a_ParityBit
   339                           ;main.c: 153: if(1 == temp_a)
   340  0334  0B53               	decfsz	?a_ParityBit,w
   341  0335  2B37               	goto	l36
   342                           ;main.c: 154: {
   343  0336  0AD4               	incf	?a_ParityBit+1
   344  0337                     l36
   345                           ;main.c: 156: }
   346  0337  1003               	bcf	3,0
   347  0338  0CD6               	rrf	?a_ParityBit+3
   348                           ;main.c: 158: }
   349  0339  0BD5               	decfsz	?a_ParityBit+2
   350  033A  2B31               	goto	l33
   351                           ;main.c: 159: return(result&0x01);
   352  033B  0854               	movf	?a_ParityBit+1,w
   353  033C  3901               	andlw	1
   354                           ;main.c: 160: }
   355  033D  0008               	return
   356                           
   357                           	psect	text5
   358  0CB8                     _ParityBitThree
   359                           ;	_temp_a assigned to ?a_ParityBitThree+0
   360  0000                     _ParityBitThree$temp_a	set	?a_ParityBitThree
   361                           ;	_result assigned to ?a_ParityBitThree+1
   362  0000                     _ParityBitThree$result	set	?a_ParityBitThree+1
   363                           ;	_tempcount assigned to ?a_ParityBitThree+2
   364  0000                     _ParityBitThree$tempcount	set	?a_ParityBitThree
      +                          +2
   365                           ;	_tempchar assigned to ?a_ParityBitThree+3
   366  0000                     _ParityBitThree$tempchar	set	?a_ParityBitThree+
      +                          3
   367                           ;main.c: 165: char tempchar=0, tempcount ,temp_
      +                          a=0,result=0;
   368  0CB8  0183               	clrf	3	;select bank 0
   369  0CB9  01D6               	clrf	?a_ParityBitThree+3
   370  0CBA  01D3               	clrf	?a_ParityBitThree
   371  0CBB  01D4               	clrf	?a_ParityBitThree+1
   372                           ;main.c: 166: tempchar = *p_data;
   373  0CBC  0852               	movf	?_ParityBitThree+1,w
   374  0CBD  00DB               	movwf	code_ptr+1
   375  0CBE  0851               	movf	?_ParityBitThree,w
   376  0CBF  118A  210E  158A   	fcall	string_table
   377  0CC2  00D6               	movwf	?a_ParityBitThree+3
   378                           ;main.c: 168: for(tempcount = 8; tempcount > 0;
      +                           tempcount--)
   379  0CC3  3008               	movlw	8
   380  0CC4  00D5               	movwf	?a_ParityBitThree+2
   381  0CC5                     l38
   382                           ;main.c: 169: {
   383                           ;main.c: 170: temp_a = tempchar & 0x01;
   384  0CC5  0856               	movf	?a_ParityBitThree+3,w
   385  0CC6  3901               	andlw	1
   386  0CC7  00D3               	movwf	?a_ParityBitThree
   387                           ;main.c: 171: if(1 == temp_a)
   388  0CC8  0B53               	decfsz	?a_ParityBitThree,w
   389  0CC9  2CCB               	goto	l41
   390                           ;main.c: 172: {
   391  0CCA  0AD4               	incf	?a_ParityBitThree+1
   392  0CCB                     l41
   393                           ;main.c: 174: }
   394  0CCB  1003               	bcf	3,0
   395  0CCC  0CD6               	rrf	?a_ParityBitThree+3
   396                           ;main.c: 176: }
   397  0CCD  0BD5               	decfsz	?a_ParityBitThree+2
   398  0CCE  2CC5               	goto	l38
   399                           ;main.c: 177: return(result&0x01);
   400  0CCF  0854               	movf	?a_ParityBitThree+1,w
   401  0CD0  3901               	andlw	1
   402                           ;main.c: 178: }
   403  0CD1  0008               	return
   404                           
   405                           	psect	text6
   406                           ;main.c: 183: void main(void)
   407                           ;main.c: 184: {
   408  0CD2                     _main
   409                           ;main.c: 185: asm("nop");
   410  0CD2  0000               	nop	;#
   411                           ;main.c: 186: asm("nop");
   412  0CD3  0000               	nop	;#
   413                           ;main.c: 187: asm("nop");
   414  0CD4  0000               	nop	;#
   415                           ;main.c: 188: asm("nop");
   416  0CD5  0000               	nop	;#
   417                           ;main.c: 189: asm("nop");
   418  0CD6  0000               	nop	;#
   419                           ;main.c: 190: test();
   420                           ;main.c: 30: }
   421  0CD7  0183               	clrf	3	;select bank 0
   422                           ;main.c: 191: asm("nop");
   423  0CD8  0000               	nop	;#
   424                           ;main.c: 192: asm("nop");
   425  0CD9  0000               	nop	;#
   426                           ;main.c: 194: sysinit();
   427  0CDA  158A  24AC  158A   	fcall	_sysinit
   428                           ;main.c: 195: GIE = 1;
   429  0CDD  178B               	bsf	11,7
   430  0CDE                     l45
   431                           ;main.c: 197: do
   432                           ;main.c: 198: {
   433  0CDE  0000               	nop	;#
   434                           ;main.c: 202: if(timeflag)
   435  0CDF  0824               	movf	_timeflag,w	;volatile
   436  0CE0  1903               	btfsc	3,2
   437  0CE1  2CEC               	goto	l46
   438                           ;main.c: 203: {
   439  0CE2  01A5               	clrf	_MissionFlag	;volatile
   440  0CE3  01A6               	clrf	_MissionFlag+1	;volatile
   441                           ;main.c: 205: timeflag = 0;
   442  0CE4  01A4               	clrf	_timeflag	;volatile
   443                           ;main.c: 206: time_mission();
   444  0CE5  158A  2614         	fcall	_time_mission
   445                           ;main.c: 207: Admini();
   446  0CE7  158A  25AB  158A   	fcall	_Admini
   447                           ;main.c: 208: MissionFlag.allbits = 0;
   448  0CEA  01A5               	clrf	_MissionFlag	;volatile
   449  0CEB  01A6               	clrf	_MissionFlag+1	;volatile
   450  0CEC                     l46
   451                           ;main.c: 209: }
   452  0CEC  0064               	clrwdt	;#
   453                           ;main.c: 211: asm("nop");
   454  0CED  0000               	nop	;#
   455                           ;main.c: 213: asm("nop");
   456  0CEE  0000               	nop	;#
   457                           ;main.c: 214: }while(1);
   458  0CEF  2CDE               	goto	l45
   459                           
   460                           	psect	text7
   461  0D17                     _WriteEEPROM
   462                           ;	_p_eedata assigned to ?a_WriteEEPROM+0
   463  0000                     _WriteEEPROM$p_eedata	set	?a_WriteEEPROM
   464                           ;	_var_ii assigned to ?a_WriteEEPROM+1
   465  0000                     _WriteEEPROM$var_ii	set	?a_WriteEEPROM+1
   466                           ;_p_eedata stored from w
   467  0D17  0183               	clrf	3	;select bank 0
   468  0D18  00C6               	movwf	?a_WriteEEPROM
   469                           ;main.c: 224: uchar var_ii;
   470  0D19  138B               	bcf	11,7
   471                           ;main.c: 226: for(var_ii=0;var_ii<length;var_ii
      +                          ++)
   472  0D1A  01C7               	clrf	?a_WriteEEPROM+1
   473  0D1B  2D3B               	goto	l51
   474  0D1C                     l48
   475                           ;main.c: 227: {
   476                           ;main.c: 228: EEDATA = *p_eedata++;
   477  0D1C  0846               	movf	?a_WriteEEPROM,w
   478  0D1D  0084               	movwf	4
   479  0D1E  1383               	bcf	3,7
   480  0D1F  0800               	movf	0,w
   481  0D20  1683               	bsf	3,5
   482  0D21  009A               	movwf	26	;volatile
   483  0D22  1283               	bcf	3,5
   484  0D23  0AC6               	incf	?a_WriteEEPROM
   485                           ;main.c: 229: EEADR = addr++;
   486  0D24  0847               	movf	?_WriteEEPROM+1,w
   487  0D25  1683               	bsf	3,5
   488  0D26  009B               	movwf	27
   489  0D27  1283               	bcf	3,5
   490  0D28  0AC7               	incf	?_WriteEEPROM+1
   491  0D29  0000               	nop	;#
   492  0D2A  1683               	bsf	3,5	;#
   493                           ;#
   494  0D2B  151C               	bsf	156,2	;#
   495  0D2C  138B               	bcf	11,7	;#
   496  0D2D  1B8B               	btfsc	11,7	;#
   497  0D2E  2D15               	goto	($+-2)	;#
   498  0D2F  3055               	movlw	85	;#
   499  0D30  009D               	movwf	157	;#

⌨️ 快捷键说明

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