📄 demo.lst
字号:
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 + -