PICマイコンは、アメリカMicrochip Technology社が開発した、安価なマイクロコンピューターです。半面、性能が低く、Atmel社の開発したAVRマイコンと人気を二分しています。国産では、ルネサスエレクトロニクスのH8マイコンの流れをくむマイコンや、元々NECが開発したμPDマイコンの流れをくむ78Kシリーズなどが良く使われます。
PICマイコンの応用例


PICマイコン書き込み器
PICマイコンに作ったプログラムを書き込むには、書き込み器が必要です。書き込み器には、Microchip Technology社が販売しているPICkitが便利ですが、世代の違いで、どんどん高価になってしまいました。



マイクロチップ MPLAB SNAP: 開発ツール・ボード 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作マイクロチップ MPLAB SNAP秋月電子通商 電子部品通信販売

MPLAB SNAP DEBUGGER PG164100 Microchip製|電子部品・半導体通販のマルツ
【PG164100】 MPLAB SNAP DEBUGGER 2,010.59円 提携先在庫数:970個 納期:5営業日程度 Microchip製|16:00までのご注文を翌日お届け、3,000円以上購入で送料無料。【仕様】・パッケージ:箱...
PICマイコン開発用ソフトウェア
PICマイコンのソフトウェアを開発するためには、IDEと呼ばれる統合開発環境MPLAB® X Integrated Development Environment (IDE)または、SDKと呼ばれるソフトウェア開発キットが必要になります。
Microchip社のMPLAB® X IDEは、マイコン開発元のマイクロチップ社が出しているだけあって、32ビットマイコンのPIC32シリーズなど、すべてのマイクロチップ社のマイコンに対応していますが、少し使いにくいです。
MikroE社で、Mikro BASICやMikro Cなどの使いやすいコンパイラーを販売していますが、国内代理店での販売はないようです。
使いやすいMikro BASIC PRO for PIC
mikroBasic PRO for PIC | Mikroe
Basic compiler for Microchip PIC MCUs. IDE, Debugger, 500+ library functions, Smart optimizations, Tools, Examples, Free...
Mikro BASICの使い方を知りたい方は古い書籍ですがこちらをどうぞ
使いやすいMikro C PRO for PIC
mikroC PRO for PIC | Mikroe
mikroC offers a unique mechanism to easily use libraries in your project, just select the libraries you need and they wi...
Mikro C PRO for PICで書かれたプログラム例
unsigned short seg[6];
unsigned short prev,v;
unsigned dist;
unsigned short mask(unsigned short num) {
switch (num) {
case 0 : return 0xc0;
case 1 : return 0xf9;
case 2 : return 0xa4;
case 3 : return 0xb0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xf8;
case 8 : return 0x80;
case 9 : return 0x90;
case 10 : return 0xff; // all clear
case 11 : return 0x86; // E
case 12 : return 0xAF; // r
}
}
void interrupt() {
if(INTCON.TMR0IF) {
INTCON.TMR0IF = 0; // Timer0 Interrupt flag clear
if(PORTA.b7) {
prev=1;
} else {
if(prev==1) {
if(PORTA.b6==0) {
if(dist<200000) {
dist++; //rightcountup
}
} else { //not
if(dist>0) {
dist--; //leftcountdown
}
}
prev=0;
}
}
PORTB = seg[v];
switch(v) { // for pic16f819 drive
case 0: PORTA = 0x0e; break;
case 1: PORTA = 0x0d; break;
case 2: PORTA = 0x0b; break;
case 3: PORTA = 0x07; break;
}
v++;
if(v > 3u)
v = 0;
}
}
void data_convert() {
unsigned short i;
unsigned temp;
temp=dist; //count/pulse
if(temp > 9999 || temp < 0) {
seg[3] = mask(11);
seg[2] = mask(12);
seg[1] = mask(12);
seg[0] = mask(0);
} else {
i = (temp / 1000u) % 10u;
seg[3] = mask(i);
i = (temp / 100u) % 10u;
seg[2] = mask(i);
i = (temp / 10u) % 10u;
seg[1] = mask(i) & 0x7f; //DPflush
i = temp % 10u;
seg[0] = mask(i);
}
}
void countup() {
dist+=15;
if(dist>200000) dist=0;
data_convert();
Delay_ms(100);
}
unsigned int read_adc(unsigned short p)
{
unsigned int dat;
unsigned int i;
dat = 0;
for(i = 0; i < 10; i++) { // 10 count avg.
dat += 1234;
Delay_ms(100);
}
return dat / i;
}
void main()
{
unsigned int humd;
unsigned short i;
OSCCON = 0b01110000; // 8MHz internal clock
PORTA = 0b00001111;
PORTB = 0b00000000;
TRISA = 0b11110000; // RA7-4
TRISB = 0b00000000; // RB all output.
ADCON1 = 0x06; //ADconvertor no use
ADCON0 = 0b11100001; // Fosc/32 AN6 //*
ADCON1 = 0b10100000; // ADFM Right and Vref+,AVss //*
OPTION_REG = 0b10000011; // portd pull-up,PSA set 100=1/16
INTCON.TMR0IE = 1; // Timer0 Interrupt Enable
INTCON.GIE = 1; // General Interrupt Enable
i = 0;
v = 0;
prev = 1;
dist = 0;
data_convert();
while(1) {
//countup();
if(PORTA.b4==0) {
//dist=0;
//data_convert();
}
data_convert();
}
}
Microchip社のMPLAB® X IDE
Access Denied
マイコン開発環境とIoTはおまかせ マイクロエレクトロニカ
マイコンの開発環境や評価ボードを始め、マイコンの世界を拡張する手軽で使いやすい組込モジュール、無線通信モジュールを販売しています。IoT時代に便利な製品を取りそろえております。
使いやすいマイクロエレクトロニカ社のSDK

mikroSDK - Software Development Kit - MIKROE
mikroSDK makes application code portable, and reusable on many different platforms and architectures, with virtually no ...

