📄 ccs_16f873a_adc_rs232.lst
字号:
CCS PCM C Compiler, Version 4.023, 25097 16-九月-08 14:19
Filename: CCS_16f873a_ADC_RS232.lst
ROM used: 285 words (7%)
Largest free fragment is 2048
RAM used: 11 (6%) at main() level
13 (7%) worst case
Stack: 1 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 080
0003: NOP
.................... #include "C:\CCS_16f873a_ADC_RS232\CCS_16f873a_ADC_RS232.h"
.................... #include <16F873A.h>
.................... //////// Standard Header file for the PIC16F873A device ////////////////
.................... #device PIC16F873A
.................... #list
....................
.................... #device adc=10
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES HS //High speed Osc (> 4mhz)
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES NOBROWNOUT //Reset when brownout detected
.................... #FUSES NOLVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOWRT //Program memory not write protected
....................
.................... #use delay(clock=4000000)
006A: MOVLW 29
006B: MOVWF 04
006C: BCF 03.7
006D: MOVF 00,W
006E: BTFSC 03.2
006F: GOTO 07E
0070: MOVLW 01
0071: MOVWF 21
0072: CLRF 20
0073: DECFSZ 20,F
0074: GOTO 073
0075: DECFSZ 21,F
0076: GOTO 072
0077: MOVLW 4A
0078: MOVWF 20
0079: DECFSZ 20,F
007A: GOTO 079
007B: GOTO 07C
007C: DECFSZ 00,F
007D: GOTO 070
007E: BCF 0A.3
007F: GOTO 118 (RETURN)
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
....................
....................
....................
....................
.................... void main()
.................... {
0080: CLRF 04
0081: BCF 03.7
0082: MOVLW 1F
0083: ANDWF 03,F
0084: MOVLW 19
0085: BSF 03.5
0086: MOVWF 19
0087: MOVLW A6
0088: MOVWF 18
0089: MOVLW 90
008A: BCF 03.5
008B: MOVWF 18
008C: BSF 03.5
008D: BSF 1F.0
008E: BSF 1F.1
008F: BSF 1F.2
0090: BCF 1F.3
0091: MOVLW 07
0092: MOVWF 1C
.................... long value;
....................
.................... setup_adc_ports(AN0);
0093: BCF 1F.0
0094: BSF 1F.1
0095: BSF 1F.2
0096: BSF 1F.3
.................... setup_adc(ADC_CLOCK_DIV_32);
0097: BCF 1F.6
0098: BCF 03.5
0099: BCF 1F.6
009A: BSF 1F.7
009B: BSF 03.5
009C: BSF 1F.7
009D: BCF 03.5
009E: BSF 1F.0
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
009F: BSF 03.5
00A0: MOVF 01,W
00A1: ANDLW C7
00A2: IORLW 08
00A3: MOVWF 01
.................... setup_comparator(NC_NC_NC_NC);
00A4: MOVLW 07
00A5: MOVWF 1C
00A6: MOVF 05,W
00A7: MOVLW 03
00A8: BCF 03.5
00A9: MOVWF 20
00AA: DECFSZ 20,F
00AB: GOTO 0AA
00AC: BSF 03.5
00AD: MOVF 1C,W
00AE: BCF 03.5
00AF: BCF 0D.6
.................... setup_vref(FALSE);
00B0: BSF 03.5
00B1: CLRF 1D
....................
.................... // TODO: USER CODE!!
.................... while(1)
.................... {
.................... set_adc_channel(0);
00B2: MOVLW 00
00B3: BCF 03.5
00B4: MOVWF 21
00B5: MOVF 1F,W
00B6: ANDLW C7
00B7: IORWF 21,W
00B8: MOVWF 1F
.................... delay_us(50);
00B9: MOVLW 10
00BA: MOVWF 20
00BB: DECFSZ 20,F
00BC: GOTO 0BB
00BD: NOP
.................... value=read_adc();
00BE: BSF 1F.2
00BF: BTFSC 1F.2
00C0: GOTO 0BF
00C1: BSF 03.5
00C2: MOVF 1E,W
00C3: BCF 03.5
00C4: MOVWF 26
00C5: MOVF 1E,W
00C6: MOVWF 27
.................... printf("ADH= %2x\n\r",value%100);
00C7: MOVF 27,W
00C8: MOVWF 29
00C9: MOVF 26,W
00CA: MOVWF 28
00CB: CLRF 2B
00CC: MOVLW 64
00CD: MOVWF 2A
00CE: CALL 022
00CF: MOVF 20,W
00D0: MOVWF 28
00D1: MOVF 23,W
00D2: MOVWF 29
00D3: CLRF 2A
00D4: MOVF 2A,W
00D5: CALL 004
00D6: INCF 2A,F
00D7: MOVWF 20
00D8: MOVF 20,W
00D9: BTFSS 0C.4
00DA: GOTO 0D9
00DB: MOVWF 19
00DC: MOVLW 05
00DD: SUBWF 2A,W
00DE: BTFSS 03.2
00DF: GOTO 0D4
00E0: MOVF 28,W
00E1: MOVWF 2B
00E2: MOVLW 57
00E3: MOVWF 2C
00E4: CALL 047
00E5: MOVLW 0A
00E6: BTFSS 0C.4
00E7: GOTO 0E6
00E8: MOVWF 19
00E9: MOVLW 0D
00EA: BTFSS 0C.4
00EB: GOTO 0EA
00EC: MOVWF 19
.................... printf("ADL= %2x\n\r",value%10);
00ED: MOVF 27,W
00EE: MOVWF 29
00EF: MOVF 26,W
00F0: MOVWF 28
00F1: CLRF 2B
00F2: MOVLW 0A
00F3: MOVWF 2A
00F4: CALL 022
00F5: MOVF 20,W
00F6: MOVWF 28
00F7: MOVF 23,W
00F8: MOVWF 29
00F9: CLRF 2A
00FA: MOVF 2A,W
00FB: CALL 013
00FC: INCF 2A,F
00FD: MOVWF 20
00FE: MOVF 20,W
00FF: BTFSS 0C.4
0100: GOTO 0FF
0101: MOVWF 19
0102: MOVLW 05
0103: SUBWF 2A,W
0104: BTFSS 03.2
0105: GOTO 0FA
0106: MOVF 28,W
0107: MOVWF 2B
0108: MOVLW 57
0109: MOVWF 2C
010A: CALL 047
010B: MOVLW 0A
010C: BTFSS 0C.4
010D: GOTO 10C
010E: MOVWF 19
010F: MOVLW 0D
0110: BTFSS 0C.4
0111: GOTO 110
0112: MOVWF 19
.................... delay_ms(1000);
0113: MOVLW 04
0114: MOVWF 28
0115: MOVLW FA
0116: MOVWF 29
0117: GOTO 06A
0118: DECFSZ 28,F
0119: GOTO 115
....................
.................... }
011A: BSF 03.5
011B: GOTO 0B2
....................
.................... }
011C: SLEEP
Configuration Fuses:
Word 1: 3F3A HS NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -