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

📄 demo.lst

📁 自己设计的pic单片机开发板源程序和说明书(内有原理图)支持pic16系列28脚和40脚器件。串口输出信息。4个LED数码管驱动;4个LED驱动;4个按键驱动;1个RS232接口;1个RS485接口;
💻 LST
📖 第 1 页 / 共 5 页
字号:
085A:  SUBWF  38,F
.................... 				set_pwm2(fpwm);  
085B:  MOVF   38,W
085C:  MOVWF  3B
085D:  MOVF   37,W
085E:  MOVWF  3A
085F:  BCF    0A.3
0860:  CALL   70B
0861:  BSF    0A.3
.................... 				printf("%ld \n",fpwm);  
0862:  MOVLW  10
0863:  MOVWF  04
0864:  MOVF   38,W
0865:  MOVWF  3F
0866:  MOVF   37,W
0867:  MOVWF  3E
0868:  BCF    0A.3
0869:  CALL   768
086A:  BSF    0A.3
086B:  MOVLW  20
086C:  CLRWDT
086D:  BTFSS  0C.4
086E:  GOTO   06C
086F:  MOVWF  19
0870:  MOVLW  0A
0871:  CLRWDT
0872:  BTFSS  0C.4
0873:  GOTO   071
0874:  MOVWF  19
.................... 			//	putc(fpwm>>8);  
.................... 			//	putc(fpwm&0x00ff);  
.................... 			}  
.................... 		}  
.................... 		else if(i == ESC_KEY)  
0875:  GOTO   082
0876:  MOVF   39,W
0877:  SUBLW  1B
0878:  BTFSS  03.2
0879:  GOTO   082
.................... 		{  
.................... 			input(beep);  
087A:  BSF    28.1
087B:  MOVF   28,W
087C:  BSF    03.5
087D:  MOVWF  07
.................... 			return(0);  
087E:  MOVLW  00
087F:  MOVWF  78
0880:  GOTO   084
0881:  BCF    03.5
.................... 		}  
.................... 	}  
0882:  GOTO   019
0883:  BSF    03.5
.................... }  
0884:  BCF    03.5
0885:  BCF    0A.3
0886:  BSF    0A.4
0887:  GOTO   697 (RETURN)
....................  
.................... #include "..\demo\realtime.c" 
....................  //#include "..\demo\def.h"  
.................... //#include "..\demo\iic.h"  
.................... //extern int8 buffer[8];  
....................   
.................... int8 Test_rlt()  
.................... {  
.................... int8 i;  
.................... int8 temp[7];  
.................... rlt_loop:  
.................... 	puts("please select a number of the function\n");  
*
0923:  CLRF   3D
0924:  MOVF   3D,W
0925:  BCF    0A.3
0926:  CALL   081
0927:  BSF    0A.3
0928:  IORLW  00
0929:  BTFSC  03.2
092A:  GOTO   131
092B:  INCF   3D,F
092C:  CLRWDT
092D:  BTFSS  0C.4
092E:  GOTO   12C
092F:  MOVWF  19
0930:  GOTO   124
0931:  MOVLW  0D
0932:  CLRWDT
0933:  BTFSS  0C.4
0934:  GOTO   132
0935:  MOVWF  19
0936:  MOVLW  0A
0937:  CLRWDT
0938:  BTFSS  0C.4
0939:  GOTO   137
093A:  MOVWF  19
.................... 	puts("1            display time\n");  
093B:  CLRF   3D
093C:  MOVF   3D,W
093D:  BCF    0A.3
093E:  CALL   0AD
093F:  BSF    0A.3
0940:  IORLW  00
0941:  BTFSC  03.2
0942:  GOTO   149
0943:  INCF   3D,F
0944:  CLRWDT
0945:  BTFSS  0C.4
0946:  GOTO   144
0947:  MOVWF  19
0948:  GOTO   13C
0949:  MOVLW  0D
094A:  CLRWDT
094B:  BTFSS  0C.4
094C:  GOTO   14A
094D:  MOVWF  19
094E:  MOVLW  0A
094F:  CLRWDT
0950:  BTFSS  0C.4
0951:  GOTO   14F
0952:  MOVWF  19
.................... 	puts("2            set time\n");  
0953:  CLRF   3D
0954:  MOVF   3D,W
0955:  BCF    0A.3
0956:  CALL   0CC
0957:  BSF    0A.3
0958:  IORLW  00
0959:  BTFSC  03.2
095A:  GOTO   161
095B:  INCF   3D,F
095C:  CLRWDT
095D:  BTFSS  0C.4
095E:  GOTO   15C
095F:  MOVWF  19
0960:  GOTO   154
0961:  MOVLW  0D
0962:  CLRWDT
0963:  BTFSS  0C.4
0964:  GOTO   162
0965:  MOVWF  19
0966:  MOVLW  0A
0967:  CLRWDT
0968:  BTFSS  0C.4
0969:  GOTO   167
096A:  MOVWF  19
.................... 	puts("ESC to return\n");  
096B:  CLRF   3D
096C:  MOVF   3D,W
096D:  BCF    0A.3
096E:  CALL   0E7
096F:  BSF    0A.3
0970:  IORLW  00
0971:  BTFSC  03.2
0972:  GOTO   179
0973:  INCF   3D,F
0974:  CLRWDT
0975:  BTFSS  0C.4
0976:  GOTO   174
0977:  MOVWF  19
0978:  GOTO   16C
0979:  MOVLW  0D
097A:  CLRWDT
097B:  BTFSS  0C.4
097C:  GOTO   17A
097D:  MOVWF  19
097E:  MOVLW  0A
097F:  CLRWDT
0980:  BTFSS  0C.4
0981:  GOTO   17F
0982:  MOVWF  19
.................... 	while(!kbhit());  
0983:  BTFSS  0C.5
0984:  GOTO   183
.................... 	i = getc();  
0985:  CLRWDT
0986:  BTFSS  0C.5
0987:  GOTO   185
0988:  MOVF   1A,W
0989:  MOVWF  35
.................... 	if(i == 1)  
098A:  DECFSZ 35,W
098B:  GOTO   205
.................... 	{  
.................... 	  while(!kbhit())  
.................... 	  {  
098C:  BTFSC  0C.5
098D:  GOTO   1FF
.................... 		iic_start();  
098E:  BCF    0A.3
098F:  CALL   7D4
0990:  BSF    0A.3
....................    		i2c_write(ADDR_IIC_RTC);  
0991:  MOVLW  A2
0992:  MOVWF  43
0993:  BCF    0A.3
0994:  CALL   7E4
0995:  BSF    0A.3
....................    		i2c_write(0x2);  
0996:  MOVLW  02
0997:  MOVWF  43
0998:  BCF    0A.3
0999:  CALL   7E4
099A:  BSF    0A.3
....................    		reiic((ADDR_IIC_RTC+1),7,buffer);  //---------读当前的秒,分,时,日,周月年  
099B:  MOVLW  A3
099C:  MOVWF  3D
099D:  MOVLW  07
099E:  MOVWF  3E
099F:  CLRF   40
09A0:  MOVLW  29
09A1:  MOVWF  3F
09A2:  CALL   097
.................... 		buffer[0] &= 0x7f;	//秒  
09A3:  BCF    29.7
.................... 		buffer[1] &= 0x7f;  
09A4:  BCF    2A.7
.................... 		buffer[2] &= 0x3f;  
09A5:  MOVLW  3F
09A6:  ANDWF  2B,F
.................... 		buffer[3] &= 0x3f;  
09A7:  ANDWF  2C,F
.................... 		buffer[4] &= 0x07;  
09A8:  MOVLW  07
09A9:  ANDWF  2D,F
.................... 		buffer[5] &= 0x1f; 	 //月  
09AA:  MOVLW  1F
09AB:  ANDWF  2E,F
.................... 		printf( "RTC time : %02x-%02x-%02x %02x:%02x:%02x\n", buffer[6], buffer[5], buffer[3], buffer[2], buffer[1], buffer[0] );  
09AC:  CLRF   3D
09AD:  MOVF   3D,W
09AE:  BCF    0A.3
09AF:  CALL   0FA
09B0:  BSF    0A.3
09B1:  INCF   3D,F
09B2:  MOVWF  77
09B3:  CLRWDT
09B4:  BTFSS  0C.4
09B5:  GOTO   1B3
09B6:  MOVWF  19
09B7:  MOVLW  0B
09B8:  SUBWF  3D,W
09B9:  BTFSS  03.2
09BA:  GOTO   1AD
09BB:  MOVF   2F,W
09BC:  MOVWF  3E
09BD:  MOVLW  57
09BE:  MOVWF  3F
09BF:  CALL   0C5
09C0:  MOVLW  2D
09C1:  CLRWDT
09C2:  BTFSS  0C.4
09C3:  GOTO   1C1
09C4:  MOVWF  19
09C5:  MOVF   2E,W
09C6:  MOVWF  3E
09C7:  MOVLW  57
09C8:  MOVWF  3F
09C9:  CALL   0C5
09CA:  MOVLW  2D
09CB:  CLRWDT
09CC:  BTFSS  0C.4
09CD:  GOTO   1CB
09CE:  MOVWF  19
09CF:  MOVF   2C,W
09D0:  MOVWF  3E
09D1:  MOVLW  57
09D2:  MOVWF  3F
09D3:  CALL   0C5
09D4:  MOVLW  20
09D5:  CLRWDT
09D6:  BTFSS  0C.4
09D7:  GOTO   1D5
09D8:  MOVWF  19
09D9:  MOVF   2B,W
09DA:  MOVWF  3E
09DB:  MOVLW  57
09DC:  MOVWF  3F
09DD:  CALL   0C5
09DE:  MOVLW  3A
09DF:  CLRWDT
09E0:  BTFSS  0C.4
09E1:  GOTO   1DF
09E2:  MOVWF  19
09E3:  MOVF   2A,W
09E4:  MOVWF  3E
09E5:  MOVLW  57
09E6:  MOVWF  3F
09E7:  CALL   0C5
09E8:  MOVLW  3A
09E9:  CLRWDT
09EA:  BTFSS  0C.4
09EB:  GOTO   1E9
09EC:  MOVWF  19
09ED:  MOVF   29,W
09EE:  MOVWF  3E
09EF:  MOVLW  57
09F0:  MOVWF  3F
09F1:  CALL   0C5
09F2:  MOVLW  0A
09F3:  CLRWDT
09F4:  BTFSS  0C.4
09F5:  GOTO   1F3
09F6:  MOVWF  19
.................... 		delay_ms(800);  
09F7:  MOVLW  04
09F8:  MOVWF  3D
09F9:  MOVLW  C8
09FA:  MOVWF  3E
09FB:  CALL   0EA
09FC:  DECFSZ 3D,F
09FD:  GOTO   1F9
.................... 	  }  
09FE:  GOTO   18C
.................... 		getc();  
09FF:  CLRWDT
0A00:  BTFSS  0C.5
0A01:  GOTO   1FF
0A02:  MOVF   1A,W
.................... 		goto rlt_loop;  
0A03:  GOTO   123
.................... 	}  
.................... 	else if(i == 2)  
0A04:  GOTO   251
0A05:  MOVF   35,W
0A06:  SUBLW  02
0A07:  BTFSS  03.2
0A08:  GOTO   24C
.................... 	{  
.................... 		for(i = 0;i < 7; i++)  
0A09:  CLRF   35
0A0A:  MOVF   35,W
0A0B:  SUBLW  06
0A0C:  BTFSS  03.0
0A0D:  GOTO   219
.................... 		{  
.................... 			buffer[i] = getc();  
0A0E:  MOVLW  29
0A0F:  ADDWF  35,W
0A10:  MOVWF  04
0A11:  BCF    03.7
0A12:  CLRWDT
0A13:  BTFSS  0C.5
0A14:  GOTO   212
0A15:  MOVF   1A,W
0A16:  MOVWF  00
.................... 		}  
0A17:  INCF   35,F
0A18:  GOTO   20A
.................... 		buffer[0] &= 0x7f;	//秒  
0A19:  BCF    29.7
.................... 		buffer[1] &= 0x7f;  
0A1A:  BCF    2A.7
.................... 		buffer[2] &= 0x3f;  
0A1B:  MOVLW  3F
0A1C:  ANDWF  2B,F
.................... 		buffer[3] &= 0x3f;  
0A1D:  ANDWF  2C,F
.................... 		buffer[4] &= 0x07;  
0A1E:  MOVLW  07
0A1F:  ANDWF  2D,F
.................... 		buffer[5] &= 0x1f; 	 //月  
0A20:  MOVLW  1F
0A21:  ANDWF  2E,F
.................... 		iic_start();  
0A22:  BCF    0A.3
0A23:  CALL   7D4
0A24:  BSF    0A.3
....................         i2c_write(ADDR_IIC_RTC);  
0A25:  MOVLW  A2
0A26:  MOVWF  43
0A27:  BCF    0A.3
0A28:  CALL   7E4
0A29:  BSF    0A.3
....................         wriic(7,2,buffer);  
0A2A:  MOVLW  07
0A2B:  MOVWF  3D
0A2C:  MOVLW  02
0A2D:  MOVWF  3E
0A2E:  CLRF   40
0A2F:  MOVLW  29
0A30:  MOVWF  3F
0A31:  CALL   103
.................... 		puts("RTC set successful\n");  
0A32:  CLRF   3D
0A33:  MOVF   3D,W
0A34:  BCF    0A.3
0A35:  CALL   12C
0A36:  BSF    0A.3
0A37:  IORLW  00
0A38:  BTFSC  03.2
0A39:  GOTO   240
0A3A:  INCF   3D,F
0A3B:  CLRWDT
0A3C:  BTFSS  0C.4
0A3D:  GOTO   23B
0A3E:  MOVWF  19
0A3F:  GOTO   233
0A40:  MOVLW  0D
0A41:  CLRWDT
0A42:  BTFSS  0C.4
0A43:  GOTO   241
0A44:  MOVWF  19
0A45:  MOVLW  0A
0A46:  CLRWDT
0A47:  BTFSS  0C.4
0A48:  GOTO   246
0A49:  MOVWF  19
.................... 		goto rlt_loop;  
0A4A:  GOTO   123
.................... 	}  
....................  	  
....................     else if(i == ESC_KEY)  
0A4B:  GOTO   251
0A4C:  MOVF   35,W
0A4D:  SUBLW  1B
0A4E:  BTFSS  03.2
0A4F:  GOTO   251
.................... 	{  
.................... 		return;  
0A50:  GOTO   251
.................... 	}  
....................   
.................... }  
0A51:  BCF    0A.3
0A52:  BSF    0A.4
0A53:  GOTO   697 (RETURN)
....................  
.................... #include "..\demo\adc.c" 
....................    
.................... void adc_init()  
.................... {  
.................... #if defined (PIC16F877)  
....................    	setup_adc_ports(AN0);  
.................... #elif defined (PIN16F73)  
....................    	setup_adc_ports(RA0_RA1_RA3);  
.................... #endif  
....................    set_adc_channel (0);  
0A54:  MOVLW  00
0A55:  MOVWF  78
0A56:  MOVF   1F,W
0A57:  ANDLW  C7
0A58:  IORWF  78,W
0A59:  MOVWF  1F
....................    setup_adc(ADC_CLOCK_INTERNAL);  
0A5A:  BSF    03.5
0A5B:  BCF    1F.6
0A5C:  BCF    03.5
0A5D:  BSF    1F.6
0A5E:  BSF    1F.7
0A5F:  BSF    03.5
0A60:  BSF    1F.7
0A61:  BCF    03.5
0A62:  BSF    1F.0
....................    input(adc0);  
0A63:  BSF    03.5
0A64:  BSF    05.0
.................... }  
0A65:  BCF    03.5
0A66:  RETLW  00
.................... int8 Test_adc()  
.................... {  
.................... int16 	i;  
....................    adc_init();  
0A67:  CALL   254
....................    puts("Adc start,use RA0.\n press ESC to return\n");  
0A68:  CLRF   37
0A69:  MOVF   37,W
0A6A:  BCF    0A.3
0A6B:  CALL   144
0A6C:  BSF    0A.3
0A6D:  IORLW  00
0A6E:  BTFSC  03.2
0A6F:  GOTO   276
0A70:  INCF   37,F
0A71:  CLRWDT
0A72:  BTFSS  0C.4
0A73:  GOTO   271
0A74:  MOVWF  19
0A75:  GOTO   269
0A76:  MOVLW  0D
0A77:  CLRWDT
0A78:  BTFSS  0C.4
0A79:  GOTO   277
0A7A:  MOVWF  19
0A7B:  MOVLW  0A
0A7C:  CLRWDT
0A7D:  BTFSS  0C.4
0A7E:  GOTO   27C
0A7F:  MOVWF  19
....................    while(TRUE)  
....................    {  
....................    	   if(!kbhit())  
0A80:  BTFSC  0C.5
0A81:  GOTO   2AD
.................... 	   {  
.................... 	   	   delay_us(20);  
0A82:  CLRWDT
0A83:  MOVLW  0C
0A84:  MOVWF  77
0A85:  DECFSZ 77,F
0A86:  GOTO   285
0A87:  NOP
0A88:  NOP
.................... 		   i = read_adc();  
0A89:  BSF    1F.2
0A8A:  BTFSC  1F.2
0A8B:  GOTO   28A
0A8C:  BSF    03.5
0A8D:  MOVF   1E,W
0A8E:  BCF    03.5
0A8F:  MOVWF  35
0A90:  MOVF   1E,W
0A91:  MOVWF  36
.................... 		   delay_ms(300);  
0A92:  MOVLW  02
0A93:  MOVWF  37
0A94:  MOVLW  96
0A95:  MOVWF  3E
0A96:  CALL   0EA
0A97:  DECFSZ 37,F
0A98:  GOTO   294
.................... 		   printf("%ld \n" ,i);  
0A99:  MOVLW  10
0A9A:  MOVWF  04
0A9B:  MOVF   36,W
0A9C:  MOVWF  3F
0A9D:  MOVF   35,W
0A9E:  MOVWF  3E
0A9F:  BCF    0A.3
0AA0:  CALL   768
0AA1:  BSF    0A.3

⌨️ 快捷键说明

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