としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F88を動かす。。。その1

2012-08-29 22:51:29 | PIC16F88

こんばんわ!

としぶぅです。

 

今日も暑かったですね。。。

 

昨日、Pickit2でPIC16F88をデバッグできるようになりましたので、PIC16F690のときと同じ動き

をするように、ソフトを移植しました。

    →   

 

こんな感じです。

いや~よかった。。。無事に動いて^^

せっかくデバッグできる環境がそろったので、いろいろできるようにソフトを埋め込んでいこうと思います。

とりあえず今日はCONFIGまでかこうかな・・・

まずは、ヘッダファイルの指定(ちなみにHITECH Cで書いております。)

#include   ← 各デバイスのヘッダーに飛ぶようにマクロが組まれています。必ず必要です。
#include "delay.h"   ← delay.cという自分で作ったプログラムのヘッダファイルを指定
#include "lcd.h"    ← lcd.cという自分で作った液晶に文字を表示するためのプログラム用のヘッダファイルを指定

 コンフィグレーションメモリの設定を下記のように記入します。

__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CPD_OFF & BOREN_OFF & LVP_OFF & CP_OFF & FCMEN_OFF & IESO_OFF);

意味は、HITECH Cがインストールされているフォルダ内の”pic16f88.h”というファイル内の下記の内容から

必要なものを”&”でつなぎ合わせていきます。

__CONFIG_CONFIG1とかで最初書きましたが、Buildするとエラーになるので、上記の書き方でいいと思われ

ます。

 

//
// Configuration mask definitions
//

 


// Config Register: CONFIG1
#define CONFIG1 0x2007
// Oscillator Selection bits
// EXTRC oscillator; CLKO function on RA6/OSC2/CLKO
#define FOSC_EXTRCCLK 0xFFFF
// EXTRC oscillator; port I/O function on RA6/OSC2/CLKO
#define FOSC_EXTRCIO 0xFFFE
// INTRC oscillator; CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin
#define FOSC_INTOSCCLK 0xFFFD
// INTRC oscillator; port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin
#define FOSC_INTOSCIO 0xFFFC
// ECIO; port I/O function on RA6/OSC2/CLKO
#define FOSC_EC 0xFFEF
// HS oscillator
#define FOSC_HS 0xFFEE
// XT oscillator
#define FOSC_XT 0xFFED
// LP oscillator
#define FOSC_LP 0xFFEC
// Watchdog Timer Enable bit
// WDT enabled
#define WDTE_ON 0xFFFF
// WDT disabled
#define WDTE_OFF 0xFFFB
// Power-up Timer Enable bit
// PWRT disabled
#define PWRTE_OFF 0xFFFF
// PWRT enabled
#define PWRTE_ON 0xFFF7
// RA5/MCLR/VPP Pin Function Select bit
// RA5/MCLR/VPP pin function is MCLR
#define MCLRE_ON 0xFFFF
// RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD
#define MCLRE_OFF 0xFFDF
// Brown-out Reset Enable bit
// BOR enabled
#define BOREN_ON 0xFFFF
// BOR disabled
#define BOREN_OFF 0xFFBF
// Low-Voltage Programming Enable bit
// RB3/PGM pin has PGM function, Low-Voltage Programming enabled
#define LVP_ON 0xFFFF
// RB3 is digital I/O, HV on MCLR must be used for programming
#define LVP_OFF 0xFF7F
// Data EE Memory Code Protection bit
// Code protection off
#define CPD_OFF 0xFFFF
// Data EE memory code-protected
#define CPD_ON 0xFEFF
// Flash Program Memory Write Enable bits
// Write protection off
#define WRT_OFF 0xFFFF
// 0000h to 00FFh write-protected, 0100h to 0FFFh may be modified by EECON control
#define WRT_256 0xFDFF
// 0000h to 07FFh write-protected, 0800h to 0FFFh may be modified by EECON control
#define WRT_2048 0xFBFF
// 0000h to 0FFFh write-protected
#define WRT_ALL 0xF9FF
// In-Circuit Debugger Mode bit
// In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins
#define DEBUG_OFF 0xFFFF
// In-Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger
#define DEBUG_ON 0xF7FF
// CCP1 Pin Selection bit
// CCP1 function on RB0
#define CCPMX_RB0 0xFFFF
// CCP1 function on RB3
#define CCPMX_RB3 0xEFFF
// Flash Program Memory Code Protection bit
// Code protection off
#define CP_OFF 0xFFFF
// 0000h to 0FFFh code-protected (all protected)
#define CP_ON 0xDFFF

 


// Config Register: CONFIG2
#define CONFIG2 0x2008
// Fail-Safe Clock Monitor Enable bit
// Fail-Safe Clock Monitor enabled
#define FCMEN_ON 0xFFFF
// Fail-Safe Clock Monitor disabled
#define FCMEN_OFF 0xFFFE
// Internal External Switchover bit
// Internal External Switchover mode enabled
#define IESO_ON 0xFFFF
// Internal External Switchover mode disabled
#define IESO_OFF 0xFFFD

 

 

各情報の意味は、Deetasheetをダウンロードして確認ください。

 

さて、今日は仕事遅かったのでこの辺にしておきます。

 

では皆様。。。。おやすみなさい~

 






 



最新の画像もっと見る