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

📄 demo.lst

📁 自己设计的pic单片机开发板源程序和说明书(内有原理图)支持pic16系列28脚和40脚器件。串口输出信息。4个LED数码管驱动;4个LED驱动;4个按键驱动;1个RS232接口;1个RS485接口;
💻 LST
📖 第 1 页 / 共 5 页
字号:
CCS PCM C Compiler, Version 3.222, 16465               07-九月-06 22:45

               Filename: E:\cms\Work\icd2-diy\EBP-PIC\demo\demo.LST

               ROM used: 5770 words (73%)
                         Largest free fragment is 1792
               RAM used: 27 (8%) at main() level
                         60 (17%) worst case
               Stack:    4 worst case (3 in main + 1 for interrupts)

*
0000:  NOP
0001:  MOVLW  10
0002:  MOVWF  0A
0003:  GOTO   432
0004:  MOVWF  7F
0005:  SWAPF  03,W
0006:  CLRF   03
0007:  MOVWF  21
0008:  MOVF   0A,W
0009:  MOVWF  20
000A:  CLRF   0A
000B:  MOVF   04,W
000C:  MOVWF  22
000D:  MOVF   77,W
000E:  MOVWF  23
000F:  MOVF   78,W
0010:  MOVWF  24
0011:  MOVF   79,W
0012:  MOVWF  25
0013:  MOVF   7A,W
0014:  MOVWF  26
0015:  MOVF   7B,W
0016:  MOVWF  27
0017:  BCF    03.7
0018:  BCF    03.5
0019:  BTFSS  0B.3
001A:  GOTO   01D
001B:  BTFSC  0B.0
001C:  GOTO   030
001D:  MOVF   22,W
001E:  MOVWF  04
001F:  MOVF   23,W
0020:  MOVWF  77
0021:  MOVF   24,W
0022:  MOVWF  78
0023:  MOVF   25,W
0024:  MOVWF  79
0025:  MOVF   26,W
0026:  MOVWF  7A
0027:  MOVF   27,W
0028:  MOVWF  7B
0029:  MOVF   20,W
002A:  MOVWF  0A
002B:  SWAPF  21,W
002C:  MOVWF  03
002D:  SWAPF  7F,F
002E:  SWAPF  7F,W
002F:  RETFIE
0030:  BCF    0A.3
0031:  BCF    0A.4
0032:  GOTO   691
....................  #include "..\demo\def.h" 
....................  #define	ENTER_KEY	0x0d  
.................... #define	BACK_KEY	0x08  
.................... #define BEEP_KEY	0x07  
.................... #define UP_KEY		0x41  
.................... #define DOWN_KEY	0x42  
.................... #define RIGHT_KEY	0x43  
.................... #define LEFT_KEY	0x44  
.................... #define HOME_KEY	0x48  
.................... #define END_KEY		0x4b  
.................... #define	ESC_KEY		0x1b  
....................   
....................  
.................... #include "..\demo\demo.h" 
....................    
.................... #include "..\demo\cpu_def.h" 
....................    
.................... #define  USE_PIC16F877	1  
.................... //#define  USE_PIC16F73	1  
.................... #define  MCLK   8000000		//定义时钟频率  
.................... #if defined (USE_PIC16F877)  
.................... 	#include "..\demo\16F877A.h" 
....................  //////// Standard Header file for the PIC16F877A device ////////////////  
.................... #device PIC16F877A  
.................... #list  
....................  
.................... 	#device *=16  
.................... #elif defined (USE_PIC16F73)  
.................... 	#include "..\demo\16F73.h"  
.................... #endif  
....................   
....................  
....................   
.................... #device ICD=TRUE  
.................... #device adc=10  
.................... #ifdef USE_PIC16F877  
.................... #fuses HS, PUT, NOPROTECT, BROWNOUT, LVP, NOCPD, NOWRT,NODEBUG  
.................... #elif USE_PIC16F73  
.................... #fuses HS,PUT,BROWNOUT  
.................... #endif  
....................   
.................... #use delay(clock=MCLK,RESTART_WDT)  
*
08EA:  MOVLW  3E
08EB:  MOVWF  04
08EC:  BCF    03.7
08ED:  MOVF   00,W
08EE:  BTFSC  03.2
08EF:  GOTO   102
08F0:  MOVLW  02
08F1:  MOVWF  78
08F2:  MOVLW  BF
08F3:  MOVWF  77
08F4:  CLRWDT
08F5:  DECFSZ 77,F
08F6:  GOTO   0F4
08F7:  DECFSZ 78,F
08F8:  GOTO   0F2
08F9:  MOVLW  96
08FA:  MOVWF  77
08FB:  DECFSZ 77,F
08FC:  GOTO   0FB
08FD:  NOP
08FE:  NOP
08FF:  CLRWDT
0900:  DECFSZ 00,F
0901:  GOTO   0F0
0902:  RETLW  00
*
0F82:  MOVLW  08
0F83:  SUBWF  3A,F
0F84:  BTFSS  03.0
0F85:  GOTO   792
0F86:  MOVLW  3A
0F87:  MOVWF  04
0F88:  BCF    03.7
0F89:  BCF    03.0
0F8A:  RRF    00,F
0F8B:  MOVF   00,W
0F8C:  BTFSC  03.2
0F8D:  GOTO   792
0F8E:  GOTO   790
0F8F:  CLRWDT
0F90:  DECFSZ 00,F
0F91:  GOTO   78F
0F92:  RETLW  00
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,restart_wdt)  
.................... #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,restart_wdt,force_hw)  
*
07E4:  BCF    14.7
07E5:  BCF    0C.3
07E6:  MOVF   43,W
07E7:  MOVWF  13
07E8:  MOVLW  02
07E9:  BTFSC  14.7
07EA:  GOTO   7F2
07EB:  BTFSS  0C.3
07EC:  GOTO   7EB
07ED:  MOVLW  00
07EE:  BSF    03.5
07EF:  BTFSC  11.6
07F0:  MOVLW  01
07F1:  BCF    03.5
07F2:  MOVWF  78
07F3:  RETLW  00
*
0888:  BSF    03.5
0889:  BSF    11.3
088A:  BTFSC  11.3
088B:  GOTO   08A
088C:  BTFSC  77.0
088D:  BCF    11.5
088E:  BTFSS  77.0
088F:  BSF    11.5
0890:  BSF    11.4
0891:  BTFSC  11.4
0892:  GOTO   091
0893:  BCF    03.5
0894:  MOVF   13,W
0895:  MOVWF  78
0896:  RETLW  00
*
1459:  MOVLW  FF
145A:  BCF    03.5
145B:  MOVWF  28
....................   
....................   
.................... int8 buffer[8];  
.................... int8 keyval;  
.................... int1 bit_key_prss;  
....................  
.................... #include "..\demo\PIC_EVB.h" 
....................  #define    led1		PIN_A2  
.................... #define    led2		PIN_A4  
.................... #define    led3		PIN_A5  
.................... #define    led4		PIN_C0  
.................... #define    iwire	PIN_C5  
.................... #define    beep		PIN_C1  
.................... #define    adc0		PIN_A0  
.................... #define		key1	PIN_B7  
.................... #define     key2    PIN_B6  
.................... #define     key3    PIN_B5  
.................... #define     key4	PIN_B4  
.................... #define     relay1	PIN_A3  
.................... #define     relay2	PIN_C5  
.................... #define     drv2	PIN_C2  
.................... #define     en485   PIN_C5  
.................... #define     tk1		PIN_B1		//100K  
.................... #define     tk2     PIN_B2		//100K  
.................... #define     tk3     PIN_B0		//100  
....................   
.................... #define    ADDR_IIC_EEP	0XAC			//iic eeprom write addr  
....................   
.................... #define    ADDR_IIC_RTC	0XA2  
....................  
.................... #include "..\demo\led.c" 
....................  //#include "..\demo\def.h"  
.................... //																			a	b  
.................... const int8 table[17] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};  
.................... //extern int8 buffer[8];  
.................... void led_off()  
.................... {  
.................... 	input(led1);  
*
0ABA:  BSF    03.5
0ABB:  BSF    05.2
.................... 	output_high(led2);  
0ABC:  BCF    05.4
0ABD:  BCF    03.5
0ABE:  BSF    05.4
.................... 	input(led3);  
0ABF:  BSF    03.5
0AC0:  BSF    05.5
.................... 	input(led4);  
0AC1:  BCF    03.5
0AC2:  BSF    28.0
0AC3:  MOVF   28,W
0AC4:  BSF    03.5
0AC5:  MOVWF  07
.................... 	input_b();  
0AC6:  MOVLW  FF
0AC7:  MOVWF  06
.................... }  
0AC8:  BCF    03.5
0AC9:  RETLW  00
.................... int8 Test_led()  
.................... {  
.................... 	while(TRUE)  
.................... 	{  
.................... 		if(kbhit())  
0ACA:  BTFSS  0C.5
0ACB:  GOTO   2D5
.................... 		{  
.................... 			if(getc()==ESC_KEY)  
0ACC:  CLRWDT
0ACD:  BTFSS  0C.5
0ACE:  GOTO   2CC
0ACF:  MOVF   1A,W
0AD0:  SUBLW  1B
0AD1:  BTFSS  03.2
0AD2:  GOTO   2D5
.................... 			{  
.................... 				led_off();  
0AD3:  CALL   2BA
.................... 				return;  
0AD4:  GOTO   305
.................... 			}  
.................... 		}  
.................... 		  
.................... 		output_low(led1);  
0AD5:  BSF    03.5
0AD6:  BCF    05.2
0AD7:  BCF    03.5
0AD8:  BCF    05.2
.................... 		output_low(led2);  
0AD9:  BSF    03.5
0ADA:  BCF    05.4
0ADB:  BCF    03.5
0ADC:  BCF    05.4
.................... 		output_low(led3);  
0ADD:  BSF    03.5
0ADE:  BCF    05.5
0ADF:  BCF    03.5
0AE0:  BCF    05.5
.................... 		output_low(led4);  
0AE1:  BCF    28.0
0AE2:  MOVF   28,W
0AE3:  BSF    03.5
0AE4:  MOVWF  07
0AE5:  BCF    03.5
0AE6:  BCF    07.0
.................... 		delay_ms(400);  
0AE7:  MOVLW  02
0AE8:  MOVWF  35
0AE9:  MOVLW  C8
0AEA:  MOVWF  3E
0AEB:  CALL   0EA
0AEC:  DECFSZ 35,F
0AED:  GOTO   2E9
.................... 		output_high(led1);  
0AEE:  BSF    03.5
0AEF:  BCF    05.2
0AF0:  BCF    03.5
0AF1:  BSF    05.2
.................... 		output_float(led2);  
0AF2:  BSF    03.5
0AF3:  BSF    05.4
.................... 		output_high(led3);  
0AF4:  BCF    05.5
0AF5:  BCF    03.5
0AF6:  BSF    05.5
.................... 		output_high(led4);  
0AF7:  BCF    28.0
0AF8:  MOVF   28,W
0AF9:  BSF    03.5
0AFA:  MOVWF  07
0AFB:  BCF    03.5
0AFC:  BSF    07.0
.................... 		delay_ms(500);  
0AFD:  MOVLW  02
0AFE:  MOVWF  35
0AFF:  MOVLW  FA
0B00:  MOVWF  3E
0B01:  CALL   0EA
0B02:  DECFSZ 35,F
0B03:  GOTO   2FF
.................... 	}  
0B04:  GOTO   2CA
.................... }  
0B05:  BCF    0A.3
0B06:  BSF    0A.4
0B07:  GOTO   697 (RETURN)
.................... void disp(int8 n)  
.................... {  
.................... int8  seg;  
.................... int8 i,j;  
....................   
.................... 	for(j = 0; j < n; j++)  
*
0B39:  CLRF   3B
0B3A:  MOVF   38,W
0B3B:  SUBWF  3B,W
0B3C:  BTFSC  03.0
0B3D:  GOTO   37A
.................... 	{  
.................... 		for(i = 0;i < 4;i++)  
0B3E:  CLRF   3A
0B3F:  MOVF   3A,W
0B40:  SUBLW  03
0B41:  BTFSS  03.0
0B42:  GOTO   378
.................... 		{  
.................... 			seg = table[buffer[i]];  
0B43:  MOVLW  29
0B44:  ADDWF  3A,W
0B45:  MOVWF  04
0B46:  BCF    03.7
0B47:  MOVF   00,W
0B48:  BCF    0A.3
0B49:  CALL   033
0B4A:  BSF    0A.3
0B4B:  MOVWF  78
0B4C:  MOVWF  39
.................... 			output_b(seg);  
0B4D:  MOVLW  00
0B4E:  BSF    03.5
0B4F:  MOVWF  06
0B50:  BCF    03.5
0B51:  MOVF   39,W
0B52:  MOVWF  06
.................... 			if(i == 3) output_low(led1);  
0B53:  MOVF   3A,W
0B54:  SUBLW  03
0B55:  BTFSS  03.2
0B56:  GOTO   35B
0B57:  BSF    03.5
0B58:  BCF    05.2
0B59:  BCF    03.5
0B5A:  BCF    05.2
.................... 			if(i == 2) output_low(led2);  
0B5B:  MOVF   3A,W
0B5C:  SUBLW  02
0B5D:  BTFSS  03.2
0B5E:  GOTO   363
0B5F:  BSF    03.5
0B60:  BCF    05.4
0B61:  BCF    03.5
0B62:  BCF    05.4
.................... 			if(i == 1) output_low(led3);  
0B63:  DECFSZ 3A,W
0B64:  GOTO   369
0B65:  BSF    03.5
0B66:  BCF    05.5
0B67:  BCF    03.5
0B68:  BCF    05.5
.................... 			if(i == 0) output_low(led4);  
0B69:  MOVF   3A,F
0B6A:  BTFSS  03.2
0B6B:  GOTO   372
0B6C:  BCF    28.0
0B6D:  MOVF   28,W
0B6E:  BSF    03.5
0B6F:  MOVWF  07
0B70:  BCF    03.5
0B71:  BCF    07.0
.................... 			delay_ms(2);  
0B72:  MOVLW  02
0B73:  MOVWF  3E
0B74:  CALL   0EA
.................... 			led_off();  
0B75:  CALL   2BA
.................... 		}  
0B76:  INCF   3A,F
0B77:  GOTO   33F
.................... 	}  
0B78:  INCF   3B,F
0B79:  GOTO   33A
.................... }  
.................... 			  
....................   
....................   
.................... 				  
.................... int8 Test_seg()  
.................... {  
.................... int8  i;  
.................... int16 num=0;  
*
0B08:  CLRF   36
0B09:  CLRF   37
....................   
.................... 	led_off();  
0B0A:  CALL   2BA
.................... 	  
.................... 	while(TRUE)  
.................... 	{  
.................... 		if(kbhit())  
0B0B:  BTFSS  0C.5
0B0C:  GOTO   316
.................... 		{  
.................... 			if(getc()==ESC_KEY)  
0B0D:  CLRWDT
0B0E:  BTFSS  0C.5
0B0F:  GOTO   30D
0B10:  MOVF   1A,W
0B11:  SUBLW  1B
0B12:  BTFSS  03.2
0B13:  GOTO   316
.................... 			{  
.................... 				led_off();  
0B14:  CALL   2BA
.................... 				return;  
0B15:  GOTO   37B
.................... 			}  
.................... 		}  
.................... 			num++;  
0B16:  INCF   36,F
0B17:  BTFSC  03.2
0B18:  INCF   37,F
.................... 			buffer[0] = num & 0x000f ;  
0B19:  MOVF   36,W
0B1A:  ANDLW  0F
0B1B:  MOVWF  29
.................... 			buffer[1] = (num >> 4) & 0x000f;  
0B1C:  RRF    37,W
0B1D:  MOVWF  39
0B1E:  RRF    36,W
0B1F:  MOVWF  38
0B20:  RRF    39,F
0B21:  RRF    38,F
0B22:  RRF    39,F
0B23:  RRF    38,F
0B24:  RRF    39,F
0B25:  RRF    38,F
0B26:  MOVLW  0F
0B27:  ANDWF  39,F
0B28:  MOVF   38,W
0B29:  ANDLW  0F
0B2A:  MOVWF  2A
.................... 			buffer[2] = (num >> 8) & 0x000f;  
0B2B:  CLRF   39
0B2C:  MOVF   37,W
0B2D:  ANDLW  0F
0B2E:  MOVWF  2B
.................... 			buffer[3] = (num >> 12) & 0x000f;  
0B2F:  SWAPF  37,W
0B30:  MOVWF  38
0B31:  CLRF   39
0B32:  MOVLW  0F
0B33:  ANDWF  38,F
0B34:  MOVF   38,W
0B35:  ANDLW  0F
0B36:  MOVWF  2C
.................... 			disp(30);  
0B37:  MOVLW  1E
0B38:  MOVWF  38
....................   
.................... 	}  
*
0B7A:  GOTO   30B
.................... }  
0B7B:  BCF    0A.3
0B7C:  BSF    0A.4
0B7D:  GOTO   697 (RETURN)
.................... 		  
.................... 	  
....................  
.................... #include "..\demo\iic.c" 
....................  // extern int8 buffer[8];  
....................   
.................... //================================  
.................... void iic_start(){  
....................    i2c_start();  
*
07D4:  BCF    0C.3
07D5:  BCF    14.7
07D6:  BSF    03.5
07D7:  BSF    11.0
07D8:  BCF    03.5
07D9:  BTFSC  0C.3
07DA:  GOTO   7D4
07DB:  BTFSC  14.7
07DC:  GOTO   7D4
07DD:  BSF    03.5
07DE:  BTFSS  11.0
07DF:  GOTO   7E2
07E0:  BCF    03.5
07E1:  GOTO   7DD
.................... }  
07E2:  BCF    03.5
07E3:  RETLW  00

⌨️ 快捷键说明

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