📄 pic18_adc.lst
字号:
00008e c080 MOVFF 0x80,0xff6 /* now assign the source address to the table pointer */ C:\mcc18\src\traditional\startup\c018i.c
000090 fff6
000092 c081 MOVFF 0x81,0xff7
000094 fff7
000096 c082 MOVFF 0x82,0xff8
000098 fff8
TBLPTR = prom; C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
/* do the copy loop */ C:\mcc18\src\traditional\startup\c018i.c
_asm C:\mcc18\src\traditional\startup\c018i.c
00009a 0100 MOVLB 0x0 // determine if we have any more bytes to copy C:\mcc18\src\traditional\startup\c018i.c
00009c 5383 MOVF 0x83,0x1,0x1 movlb curr_byte C:\mcc18\src\traditional\startup\c018i.c
movf curr_byte, 1, 1 C:\mcc18\src\traditional\startup\c018i.c
00009e e102 BNZ 0xa4 copy_loop: C:\mcc18\src\traditional\startup\c018i.c
0000a0 5384 MOVF 0x84,0x1,0x1 bnz 2 // copy_one_byte C:\mcc18\src\traditional\startup\c018i.c
0000a2 e007 BZ 0xb2 movf curr_byte + 1, 1, 1 C:\mcc18\src\traditional\startup\c018i.c
bz 7 // done_copying C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
0000a4 0009 TBLRDPOSTINC copy_one_byte: C:\mcc18\src\traditional\startup\c018i.c
0000a6 50f5 MOVF 0xf5,0x0,0x0 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0000a8 6eee MOVWF 0xee,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
movwf POSTINC0, 0 C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
0000aa 0783 DECF 0x83,0x1,0x1 // decrement byte counter C:\mcc18\src\traditional\startup\c018i.c
0000ac e2f8 BC 0x9e decf curr_byte, 1, 1 C:\mcc18\src\traditional\startup\c018i.c
0000ae 0784 DECF 0x84,0x1,0x1 bc -8 // copy_loop C:\mcc18\src\traditional\startup\c018i.c
0000b0 d7f9 BRA 0xa4 decf curr_byte + 1, 1, 1 C:\mcc18\src\traditional\startup\c018i.c
bra -7 // copy_one_byte C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
done_copying: C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
_endasm C:\mcc18\src\traditional\startup\c018i.c
0000b2 c087 MOVFF 0x87,0xff6 /* restore the table pointer for the next entry */ C:\mcc18\src\traditional\startup\c018i.c
0000b4 fff6
0000b6 c088 MOVFF 0x88,0xff7
0000b8 fff7
0000ba c089 MOVFF 0x89,0xff8
0000bc fff8
TBLPTR = data_ptr; C:\mcc18\src\traditional\startup\c018i.c
0000be 0100 MOVLB 0x0 /* next entry... */ C:\mcc18\src\traditional\startup\c018i.c
0000c0 0785 DECF 0x85,0x1,0x1
0000c2 0e00 MOVLW 0x0
0000c4 5b86 SUBWFB 0x86,0x1,0x1
0000c6 d7bf BRA 0x46 curr_entry--; C:\mcc18\src\traditional\startup\c018i.c
goto test; C:\mcc18\src\traditional\startup\c018i.c
done: C:\mcc18\src\traditional\startup\c018i.c
0000c8 0012 RETURN 0x0 ; C:\mcc18\src\traditional\startup\c018i.c
} C:\mcc18\src\traditional\startup\c018i.c
#include <p18f452.h> D:\pic18_lib\pic18_adc\pic18_adc.c
#include <adc.h> D:\pic18_lib\pic18_adc\pic18_adc.c
#include <stdlib.h> D:\pic18_lib\pic18_adc\pic18_adc.c
#include <delays.h> D:\pic18_lib\pic18_adc\pic18_adc.c
#pragma config OSC = HS D:\pic18_lib\pic18_adc\pic18_adc.c
#pragma config WDT = OFF D:\pic18_lib\pic18_adc\pic18_adc.c
#pragma config LVP = OFF D:\pic18_lib\pic18_adc\pic18_adc.c
#pragma config DEBUG = ON D:\pic18_lib\pic18_adc\pic18_adc.c
int result; D:\pic18_lib\pic18_adc\pic18_adc.c
void main( void ) D:\pic18_lib\pic18_adc\pic18_adc.c
{ D:\pic18_lib\pic18_adc\pic18_adc.c
// configure A/D convertor D:\pic18_lib\pic18_adc\pic18_adc.c
000116 0ee0 MOVLW 0xe0 OpenADC( ADC_FOSC_64 & ADC_RIGHT_JUST & ADC_8ANA_0REF, D:\pic18_lib\pic18_adc\pic18_adc.c
000118 6ee6 MOVWF 0xe6,0x0
000112 0e0f MOVLW 0xf ADC_CH1 & ADC_INT_OFF ); D:\pic18_lib\pic18_adc\pic18_adc.c
000114 6ee6 MOVWF 0xe6,0x0
00011a ec65 CALL 0xca,0x0
00011c f000
00011e 52e5 MOVF 0xe5,0x1,0x0
000120 52e5 MOVF 0xe5,0x1,0x0
000150 d7e8 BRA 0x122 while(1) D:\pic18_lib\pic18_adc\pic18_adc.c
000122 0e87 MOVLW 0x87 { SetChanADC( ADC_CH0 ); D:\pic18_lib\pic18_adc\pic18_adc.c
000124 6ee6 MOVWF 0xe6,0x0
000126 ecc9 CALL 0x192,0x0
000128 f000
00012a 52e5 MOVF 0xe5,0x1,0x0
00012c 0e05 MOVLW 0x5 Delay10TCYx( 5 ); // Delay for 50TCY D:\pic18_lib\pic18_adc\pic18_adc.c
00012e 6ee6 MOVWF 0xe6,0x0
000130 eceb CALL 0x1d6,0x0
000132 f000
000134 52e5 MOVF 0xe5,0x1,0x0
000136 ecfb CALL 0x1f6,0x0 ConvertADC(); // Start conversion D:\pic18_lib\pic18_adc\pic18_adc.c
000138 f000
00013a ecf6 CALL 0x1ec,0x0 while( BusyADC() ); // Wait for completion D:\pic18_lib\pic18_adc\pic18_adc.c
00013c f000
00013e 0900 IORLW 0x0
000140 e001 BZ 0x144
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -