logo资料库

pic单片机C语言.pdf

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
11.4 PIC单片机的C语言源程序基本框架
PIC C 11.1 PIC C C C C PC PIC PC PC C PIC PIC Microchip Hitech CCS IAR Bytecraft PIC PIC PIC C Hitech C C PICC C C Hitech PIC PICC-Lite PIC16F84 PIC16F877 PIC16F628 Flash PIC C PIC PICC-Lite Hitech-PICC IAR CCS ByteCraft PIC C www.htsoft.com www.iar.com www.ccsinfo.com/picc.shtml www.bytecraft.com/mpccaps.html Hitech-PICC C PIC 11.2 Hitech-PICC PICC PIC ANSI PIC PIC 2004-4-7 1 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
PIC C PICC <10% 4K PIC C C 11.3 MPLAB-IDE PICC PICC MPLAB-IDE MPLAB-IDE ICE2000 ICD2 MPLAB-IDE Locations… PICC IDE 11-1 Project Set Language Tool 11-1 MPLAB-IDE HI-TECH PICC Toolsuite MPLAB-IDE PICC Assembler C PICC Compiler Executable PICC Linker Browse… PICC.EXE 3.1.3 Location PICC PICC.EXE PICC.EXE C .c .as HI-TECH PICC C C C 2004-4-7 2 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
11-2 C I2C C 11.4 PIC C PICC PIC #include pic.h __CONFIG 11-2 C C PICC main 11-1 C #include // #include “pc68.h” // // __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS); // void SetSFR(void); void Clock(void); void KeyScan(void); void Measure(void); void LCD_Test(void); void LCD_Disp(unsigned char); // unsigned char second, minute, hour; bit flag1,flag2; // 2004-4-7 3 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
void main(void) { SetSFR(); PORTC = 0x00; TMR1H += TMR1H_CONST; LED1 = LED_OFF; LCD_Test(); // while(1) { asm(“clrwdt”); // Clock(); // KeyScan(); // Measure(); // SetSFR(); // } } 11-1 C 11-1 0 1 PICC char 11.5 PICC 11.5.1 PICC PICC bit 1 char 8 unsigned char 8 short 16 unsigned short 16 int 16 unsigned int 16 long 32 unsigned long 32 float 24 double 24 32 PICC double 24 32 11-1 PICC PICC Little-endian 2004-4-7 4 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
11.5.2 PICC 11-1 bit PICC C unsigned int data[10]; struct commInData { unsigned char inBuff[8]; unsigned char getPtr, putPtr; }; union int_Byte { unsigned char c[2]; unsigned int i; }; 11-2 C 11.5.3 PICC bank PICC bank0 bank bank unsigned char buffer[32]; bit flag1,flag2; float val[8]; bank0 bank bank1 unsigned char buffer[32]; // bank2 bit flag1,flag2; // bank3 float val[8]; // bank bank1 bank2 bank3 PIC bank 128 C bank RAM bank Error[000] : Can't find 0x12C words for psect rbss_1 in segment BANK1 bank1 bank bank1 0x12C 300 bank1 bank C bank bank bank bank bank bank 2004-4-7 5 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
11.5.4 PICC PICC auto bank0 PIC 11.5.5 PICC bit PICC 8 bank0 PICC bank0 PICC bank 8 PIC 0x000 0 0x0000 flag1 0x123 flag1 tmp PICC 0x123/8 = 0x24 0x123%8 = 3 flag1 0x24 0x24 3 0x123 PIC 0x20 C tmp |= 0x80 => bsf 0x20,7 tmp &= 0xf7 => bcf 0x20,3 if (tmp&0xfe) => btfsc 0x20,0 C 2004-4-7 6 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
union { struct { unsigned b0: 1; unsigned b1: 1; unsigned b2: 1; unsigned b3: 1; unsigned b4: 1; unsigned b5: 1; unsigned : 2; // } oneBit; unsigned char allBits; } myFlag; 11-3 myFlag.oneBit.b3=1; //b3 1 myFlag.allBits=0; // 0 ANSI-C 0 0 0 1 11.5.6 PICC PICC IEEE-754 4 24 float 24 24 11.5.7 PICC C PICC 1 32 PICC 24 double double 32 bank PICC PICC 2004-4-7 7 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
unsigned char tmpData @ 0x20; //tmpData 0x20 PICC 0x20 0x20 tmpData unsigned char tmpData @ 0x20; //tmpData 0x20 bit tmpBit0 @ tmpData*8+0; //tmpBit0 bit tmpBit1 @ tmpData*8+1; //tmpBit0 bit tmpBit2 @ tmpData*8+2; //tmpBit0 tmpData tmpData tmpData 0 1 2 tmpData 11.5.8 PICC extern C extern code1.c bank1 unsigned char var1, var2; // bank1 code2.c extern bank1 unsigned char var1, var2; // bank1 volatile PICC volatile C IO volatile volatile unsigned char STATUS @ 0x03; volatile bit commFlag; volatile C volatile volatile 2004-4-7 8 of 26 PDF created with pdfFactory Pro trial version www.pdffactory.com
分享到:
收藏