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