---
---
Microchip社 28pn Demo Board を改造し、PIC18F26J50 のプログラムを行うのに都合のよいテスト用基板を作成しました。搭載PICにブートローダーを書き込んでおけば、ノートPCだけでプログラムの確認ができます。
このプロジェクトに書かれているプログラムは、上記テスト基板のSW、LED、ボリュームの動作を確認するためのものです。
テスト基板動作確認 C04_BasicFunc.zip |
main.c
// File name: Test board
// Description: SW LED A/D
// テスト基板の機能確認
// Notes: 4MHz内部クロック
// SW1 RA5
// LED RB0 RB1 RB2 RB3
// VR AN0(RA0)
// Language: MPLAB xc8
// Target: PIC18F26J50
#include <xc.h>
#define _XTAL_FREQ 4000000 // delay_ms(x) のための定義
#define SW1 RA5
#define LED1 LATB0
#define LED2 LATB1
#define LED3 LATB2
#define LED4 LATB3
//
#pragma config WDTEN = OFF, PLLDIV = 2, STVREN = ON, XINST = OFF
#pragma config CPUDIV = OSC1, CP0 = OFF
#pragma config OSC = INTOSC, T1DIG = OFF
#pragma config LPT1OSC = OFF, FCMEN = OFF, IESO = OFF
#pragma config WDTPS = 32768
#pragma config DSWDTOSC = INTOSCREF, RTCOSC = T1OSCREF
#pragma config DSBOREN = OFF, DSWDTEN = OFF, DSWDTPS = 8192
#pragma config IOL1WAY = OFF, MSSP7B_EN = MSK7
#pragma config WPFP = PAGE_1, WPEND = PAGE_0, WPCFG = OFF
#pragma config WPDIS = OFF
void main(void){
char speed;
OSCCON = 0b01100010; // 内部クロック4Mhz
LATB = 0; // PortBのすべてのビットを「0」
TRISB = 0b11110000; // LEDの接続ポートを出力に設定
ADCON1 = 0b00101100; // 左詰 クロックFosc/4 12_TAD
ADCON0 = 0b00000001; // Vdd-Vss AN0(RA0) ADC_ON
ANCON0 = 0b00011110; // CH0をアナログ入力にする
ANCON1 = 0b00011111;
while(1){
if(!SW1){ // SW1が押されれば
LED1=1; // LED1を点灯
LED2=0; // LED2を消灯
}else{ // SW1が押されれば
LED1=0; // LED1を消灯
LED2=1; // LED2を点灯
}
ADCON0bits.GO = 1; // AD変換開始
while(ADCON0bits.GO); // AD変換終了待ち
speed = ADRESH >> 4; // AD変換結果上位4Bit取得
while(speed--)__delay_ms(20); // 点滅間隔を待ち
LED4 = LED3; // LED4を点滅
LED3 = !LED3; // LED3を点滅 // LED3を点滅
}
}
このテスト基板に、PICkit などのプログラマーを使わず、PCだけで作成したアプリケーションプログラムを書き込むには、ブートローダープログラムがPICにあらかじめセットされている必要があります。 このブートローダをPICにセット(書き込む)には、残念ながらPICkitなどのプログラマーを使用しなければなりません。 しかし、一度セットしてしまえば、後は、PCのUSB経由で、PICにいろいろなアプリケ―ションプログラムを書込みその動作を確認することが可能になります。
PICkitなどのプログラマーで、下記 HEXファイルを書き込んでください。
26J50_HID_BL_RA5_RB01_hex.zip |
<手順>