PIC24系列单片机原理与开发.pdf
《PIC24系列单片机原理与开发.pdf》由会员分享,可在线阅读,更多相关《PIC24系列单片机原理与开发.pdf(199页珍藏版)》请在冰豆网上搜索。
![PIC24系列单片机原理与开发.pdf](https://file1.bdocx.com/fileroot1/2022-10/30/22140531-e1af-4174-b178-d06c1c190880/22140531-e1af-4174-b178-d06c1c1908801.gif)
?
1?
CPU?
32MHz?
16MIPS(?
/?
)?
8MHz?
PLL?
4?
17?
x17?
32?
/16?
16?
16?
C?
76?
12MB?
64KB?
16?
10?
500ksps?
/?
2.0V?
3.6V?
Flash?
/?
1000?
PIC24FJ128GA?
/?
RC?
LDO?
JTAG?
Power-onReset?
POR?
Power-upTimer?
PWRT?
OscillatorStart-upTimer?
OST?
WatchdogTimer?
WDT?
RC?
In-CircuitSerialProgramming?
ICSP?
In-CircuitEmulation?
ICE?
2?
3?
/4?
SPI?
4?
FIFO?
4?
2?
IIC?
/?
7?
/10?
2?
(UART)?
?
4?
FIFO?
IrDA?
/?
PMP/PSP?
8?
16?
16?
/?
Real-TimeClock/Calendar?
RTCC?
5?
16?
/?
32?
/?
5?
16?
5?
16?
/PWM?
I/O?
18mA?
5?
24?
CN?
16?
PIC24F?
.?
k?
16/32/64/128/256?
PIC24FJ64GA006T-I/PTMicrochip?
16?
Flash?
(64KB)?
:
?
(64pin)?
(?
)?
(TQFP)?
VDD10,26,38P?
VSS9,25,41P?
AVDD19P?
AVSS20P?
MCLR7I?
OSC1/CLKI/RC1239I/O?
OSC2/CLK0/RC1540I/O?
VCAP/VDDCORE56P?
ENVREG57I?
PGD1/EMUD1/PMA6/VREF+/AN0/CN2/RB016I/OPGC1/EMUC1/VREF-/AN1/CN3/RB115I/OC2IN-/AN2/SS1/CN4/RB214I/OC2IN+/AN3/CN5/RB313I/OC1IN-/AN4/CN6/RB412I/OC1IN+/AN5/CN7/RB511I/OPGC2/EMUC2/AN6/OCFA/RB617I/OPGD2/EMUD2/AN7/RB718I/OU2CTS/C1OUT/AN8/RB821I/OPMA7/C2OUT/AN9/RB922I/OTMS/PMA13/CVREF/AN10/RB1023I/OTDO/PMA12/AN11/RB1124I/OTCK/PMA11/AN12/RB1227I/OTDI/PMA10/AN13/RB1328I/OPMA1/U2RTS/BCLK2/AN14/RB1429I/OPMA0/AN15/OCFB/CN12/RB1530I/O?
RC?
2?
3?
OSC1/CLKI/RC1239I/OSOSCI/CN1/RC1347I/OSOSCO/T1CK/CN0/RC1448I/OOSC2/CLKO/RC1540I/O?
RD?
2?
3?
OC1/RD046I/OOC2/RD149I/OOC3/RD250I/OPMBE/OC4/RD351I/OPMWR/OC5/IC5/CN13/RD452I/OPMRD/CN14/RD553I/OCN15/RD654I/OCN16/RD755I/OIC1/RTCC/INT1/RD842I/OIC2/U1CTS/INT2/RD943I/O?
IC3/PMCS2/INT3/RD1044I/OIC4/PMCS1/INT4/RD1145I/O?
RE?
2?
3?
PMD0/RE060I/OPMD1/RE161I/OPMD2/RE262I/OPMD3/RE363I/OPMD4/RE464I/OPMD5/RE51I/OPMD6/RE62I/OPMD7/RE73I/O?
RF?
2?
3?
RF058I/ORF159I/OU1RX/SDI1/RF234I/OU1TX/SDO1/RF333I/OU2RX/SDA2/CN17/RF431I/OU2TX/SCL2/CN18/RF532I/OU1RTS/BCLK1/SCK1/INT0/RF635I/O?
RG?
2?
3?
SCL1/RG237I/OSDA1/RG336I/OSCK2/CN8/RG64I/OSDI2/CN9/RG75I/OSDO2/CN10/RG86I/OCN11/RG98I/O1.3.1?
1-4?
PIC24FJ128GA3.3V?
1.3.2?
1.3.3?
OSC1?
OSC2?
1.3.4?
(?
I/O?
)?
1.3.5?
A/D?
1.3.6?
INT0?
INT4?
1.3.7?
CN0?
CN18?
1.3.8?
P?
CN0:
1CN2:
7CN8:
11CN12CN13:
16CN17:
18I/O?
RC14:
13RB0:
5RG6:
9RB15RD4:
7RF4:
5MCLRMCLRMCLR?
PIC24FJxxGA006?
2?
SPI?
SerialPeripheralInterface?
SPI?
I/O?
1?
5?
PIC24FJxxGA006?
2?
IIC?
Inter?
IntegratedCircuit?
IIC(?
I2C)?
I/O?
1?
6?
1.3.9?
(ParallelMasterPort,PMP)PIC24F?
/I/O?
PMA0:
1PMA2:
5PMA6:
PMA7PMA8:
9PMA10:
13PMD0:
7PMBEPMCS1:
2PMRDPMWRRB15:
14RG9:
6RB0RB9RF5:
4RB13:
10RE0:
7RD3RD11:
12RD5RD41.3.10?
/PWM?
PWM?
PIC24FJxxGA006?
PWM?
U1RXU1TXU1RTSU1CTSU2RXU2TXU2RTSU2CTS?
RF2RF3RF6RD9RF4RF5RB14RB8?
SDI1SDO1SCK1SS1FSYNC1?
SCK2SDI2SDO2SS2FSYNC2?
RF2RF3RF6RB2RG6RG7RG8RG9?
IIC?
1IIC?
2IIC?
SCL1SDA1SDA2SCL2?
I/O?
RG2RG3RF4RF5?
MCU?
PIC24FJxxGA006?
IC1?
IC5,?
RD8?
RD11?
RD4?
1.3.11?
/?
PIC24FJxxGA006?
PGC1?
PGD1?
PGC2?
PGD2?
Microchip?
PIC24F?
MPLAB?
MPLABIDE?
MPLABIntegratedDevelopmentEnvironment?
MPLABIDE?
8/16?
SIM?
16?
PIC24?
dsPIC?
Microchip?
16?
MPLABC30?
MPLABIDE?
MPLABC30?
16?
C?
Flash?
MPLABICD2?
MPLABICD3?
PIC24?
13?
PIC24?
byZeng2012-6-7?
PIC24?
byZeng2012-6-7?
PIC24?
SFR?
SFR?
RAM?
Microchip?
MPLABC30?
gld?
(.gld?
?
p24FJ64GA006.gld)?
SFR?
RAM?
2.2.1?
2.2.2?
W?
2.2.3?
2?
1CPU?
RAM?
W0?
W150x0000?
0x001E?
PC0x002E23?
SR0x0042?
SPLIM0x0020?
CORCON0x0044?
TBLPAG0x0032?
PSVPAG0x0034?
RCOUNT0x0036REPEAT?
PIC24?
byZeng2012-6-72CPU?
2.2.4?
2.3.1?
SR?
B000000000PCPC?
PIC24?
byZeng2012-6-7?
SR?
U-0U-0U-0U-0U-0U-0U-0R/W-0?
DCbit15bit8R/W-0R/W-0R/W-0R-0R/W-0R/W-0R/W-0R/W-0?
bit7bit0?
1=?
0=?
PIC24?
byZeng2012-6-7?
2.3.2?
CORCON?
PIC24?
byZeng2012-6-72CPU?
2.3.3?
CPU?
/?
PIC24?
byZeng2012-6-7?
2.4.1?
Flash?
PC?
0x0001000x0001020x000104?
0x001234?
0x00?
23?
0?
PIC24?
byZeng2012-6-7?
Flash?
Flash?
PIC24?
byZeng2012-6-7?
PIC24?
byZeng2012-6-7?
_CONFIG1(JTAGEN_OFF&GCP_ON&GWRP_OFF&BKBUG_ON&COE_OFF&ICS_PGx1&FWDTEN_ON&FWPSA_PR32&WDTPS_PS64)?
JTAGEN_OFF?
GCP_ON?
GWRP_OFF?
BKBUG_ON?
COE_OFF?
ICS_PGx1?
FWDTEN_ON?
FWPSA_PR32?
WDTPS_PS64?
PIC24?
byZeng2012-6-7?
FWDTEN?
FWPSAWDTPS3WDTPS2WDTPSWDTPS0?
JTAGENGSS0GWRPDEBUGCOE?
ICS?
1111=1:
327681110=1:
163841101=1:
8,1921100=1:
40961011=1:
20481010=1:
10241001=1:
5121000=1:
2560111=1:
1280110=1:
640101=1:
320100=1:
160011=1:
80010=1:
40001=1:
20000=1:
1?
PIC24?
byZeng2012-6-7FCKSM1FCKSM0OSCIOFCN?
POSCMOD1POSCMOD0?
FNOSC2FNOSC1FNOSC0?
1?
0?
10MHz-32MHz?
3.5MHz-10MHz?
0-32MHz?
PIC24?
byZeng2012-6-7?
Mydebug?
_CONFIG1()?
Mydebug?
_CONFIG1()?
2.4.2RAM?
(?
)?
PIC24?
byZeng2012-6-7?
2.5.1?
PIC24?
PSV?
PSV?
16?
2-2?
MPLABC30?
const?
C?
PSV?
PSV?
CORCON?
1?
PSV?
PIC24?
W?
0x8000?
RAM?
W?
0x8000?
W=1?
?
CORCON?
PSV?
CORCON?
1?
W?
0x8000,?
CORCON?
PSV?
CORCON?
0?
23?
PSV?
23?
CPU?
8?
W?
15?
PSV?
23?
EA?
EA=?
EA=W?
W?
15?
1?
23?
EA15?
8?
PSV?
PIC24?
byZeng2012-6-7?
RAM?
PSV?
W?
W?
0?
W?
W?
0?
1?
2-1?
C?
PSV?
C?
MALABIDE?
2-6?
MALABIDE?
13?
MALABIDE?
(MPLABSIM)?
cRomConst1?
0x002a0?
Flash?
main()?
CONCON=0x0004,?
PSV?
CORCON?
1?
PSV?
C30?
c0?
cRomConst1?
PSV?
0x82a0?
CONCON?
0x00?
PSV?
x1=cRomConst1;?
#includeconstintcRomConst1=0x1234;/?
PSV?
intx1;char*ptr_Byte,Byte1,Byte2;intmain()x1=cRomConst1;/?
cRomConst1?
x1ptr_Byte=&cRomConst1;/char?
ptr_Byte?
cRomConst1?
Byte1=*ptr_Byte;/cRomConst1?
Byte1ptr_Byte+;/?
ptr_Byte?
1?
cRomConst1?
Byte2=*ptr_Byte;/cRomConst1?
Byte2?
8?
16?
RAM?
16?
PSV?
PSVPAG=0x01PSVPAG=0x00?
PSVPAG=0x02PIC24?
byZeng2012-6-7?
:
MPLABSIM?
intmain()?
x1=cRomConst1;0280FA0000lnk#0x00282841500mov.w0x82a0,0x00000x82a0?
cRomConst1?
RAM?
0284884000mov.w0x0000,0x08000x0000?
W0?
0x800?
x1ptr_Byte=&cRomConst1;0286282A