2020年5月21日 (木)

AruduinoのサンプルスケッチをLCD1602(5V用)に表示

LCD1602にAruduinoのサンプルスケッチ(1行目にHello Worldを2行目に0からのカウントアップ)を表示するための手順を備忘のため記録します

■ 2020年5月21日 作成

   2020年6月24日 画像の追加

   2021年5月10日 使用LCD1602に5V用の説明追加 

■ 配線図

Lcd

■ 手順

ArduinoをPCに接続

Arduino IDEを起動

(メニュー)ファイル → スケッチ例 → LiquidCrystal → Hello World

(メニュー)スケッチ → マイコンボードに書き込む

書き込みでエラーがある場合、認識するUSBポートに変更してください

LCDのコントラストは可変抵抗で調整してください

■ 画像

Dsc_1222 Aruduino互換機に9Vの乾電池を電源にLCD1602に表示させています

LCD1602(SODIAL(R)品番BU20)は、DC 5V 用

以上

参考にされる場合は、自己責任でお願いします。

2020年3月20日 (金)

PIC 16F88によるLED点滅を備忘のため記録します

(注意)PCを入れ替えによりMPLABを最新版(V5.45)XC8(V2.31)で再セットアップしたところ、下記説明のプログラムでコンパイルエラーを起こすようになりました。(2021年01月22日)

PCを入れ替え新たにセットアップしたXC8(V2.31)をアンインストールのうえ、Microchip社のアーカイブのダウンロードサイト(検索サイトで "XC8 Ver1 archive"で検索し「MPLAB Ecosystem Downloads Archive Microchip Technology」を探す)からXC8(V1.45)をダウンロードし、セットアップするとコンパイルでエラーがなくなりました。(この対策方法は、ネット検索で見つけました。)(2021年01月23日)

MPLAB(V5.45)付属のIPEでは、PICへの書き込みが出来ませんでしたので、アンインストールのうえ、MPLAB X (V5.15)にしました。(2021年01月25日現在)

■ 2020年03月20日 作成

 2020年03月22日 修正

 2020年03月25日 修正#pragma config MCLRE = ON → OFFへの変更)

 2020年06月23日 画像の追加

   2021年01月21日 1.新規プロジェクト作成の誤字訂正(12F675→16F88)

          MPLAB IDEv5.45の場合を追加

   2021年01月25日 IDE / MPLAB訂正 コンパイラバージョン追記 MPLAB IDEv5.45の場合削除

   2021年05月22日 MPLABXIPEの「Adbanced Mode→Password」の修正とボルトに関する補記の追加

 2024年02月22日 ■手順 3.configの設定 誤記(Windows → Window)訂正

■参考にされる場合は、自己責任でお願いします。

■作成時の環境

 OS / Windows10

 IDE / MPLAB X V5.15

 コンパイラ / XC-8 v1.45

 PICkit 3

 

■準備品

 ブレッドボード

 LED

 抵抗 330Ω(前後)

■手順

 1.新規プロジェクト作成

  IMPLABXIDEを起動 メニュー File → NewProject  Next 

  Device  PIC 16F88を選択 → Next → PICkit3 →Next → ●xc8(v・・)[・・・] → Next → 

  ProjectName[例:16F88_led] → Finish

  これで16F885_ledという新規プロジェクトが出来ます。

 2.新規プロジェクトにプログラムを記述する場所を作成します。

  ・メニュー Windows → Projects → Projects[タブ] → 16F88_led「+」 クリック → Source Files上で右クリック → New→ C SorceFliles  → File Name [newfiles]  → Finish

 3.configの設定

  下記の部分を張り付ける。

  ・メニュー Window → Terget Memory Views → Configration Bits → 

   設定画面(何もせず) → 「Generate Source Code to Output」ボタンをクリック

       すると設定が自動作成されるので内容(見えていない上の部分を含むすべて)をコピー

       しプログラムの設定エリア張り付ける。

   当該ウィンドウ右上角のアイコンをクリックして閉じる。

         但し、このままではLED点滅が不安定となるので#pragma config MCLRE = ON 

   を OFFに変更すること。 

 4.クロックの設定

  クロックを以下のとおり記述

  #define _XTAL_FREQ 4000000 //delay関数を使う為の設定 クロックは4MHz

   5.動作のプログラム

void main(void){
OSCCON = 0x70;  //0x70の指定で  delay_ms(1000);のとき1秒待機
PORTA = 0x00;   // PORTAを初期化
PORTB = 0x00;   // PORTBを初期化
TRISA = 0x00;   // PORTAの出力設定
TRISB = 0x00;   // PORTBの出力設定  
while(1) {       // 無限ループ
RA0 = 1;
__delay_ms(1000);  // 1秒の待ち時間 
RA0 = 0;
__delay_ms(1000);  // 1秒の待ち時間
   }
   return ;
}

////////////////////////////////////////////////////////////

全体のプログラムは以下のとおり

////////////////////////////////////////////////////////////////

 
 
// PIC16F88 Configuration Bit Settings
// 'C' source line config statements
#include <xc.h>
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
// CONFIG1
#pragma config FOSC = EXTRCCLK  // Oscillator Selection bits (EXTRC oscillator; CLKO function on RA6/OSC2/CLKO)
#pragma config WDTE = ON        // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF  //ON→OFF 20200325 不安定のため変更    // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off)
#pragma config CCPMX = RB0      // CCP1 Pin Selection bit (CCP1 function on RB0)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
// CONFIG2
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
#pragma config IESO = ON        // Internal External Switchover bit (Internal External Switchover mode enabled)
//ここまでWindows→PIC Memory views→configlation Bitsで出力した内容の貼り付け分2020.3.20
#define _XTAL_FREQ 4000000 //delay関数を使う為の設定 クロックは4MHz
void main(void){
OSCCON = 0x70;     // 0x70を指定するとDelay_ms(1000);で1秒待機
PORTA = 0x00;   // PORTAを初期化
PORTB = 0x00;   // PORTBを初期化
TRISA = 0x00;   // PORTAの出力設定
TRISB = 0x00;   // PORTBの出力設定 
//TRISB = 0xFF;   // PORTBの入力設定
while(1) {       // 無限ループ
RA0 = 1;
__delay_ms(1000);  // 1秒の待ち時間 
RA0 = 0;
__delay_ms(1000);  // 1秒の待ち時間
   }
   return ;
}
 

////////////////////////////////////////////////////

   この内容で、コンパイルすると、

   C:\Users\コンピュータ名\MPLABXProjects\16F88_led.X\dist\default\production

   にHEXファイルが出来上がります。

  6.PICkit3へのセット

   PICkit3に16F88をセットします。

   (18ピン用のセッティングが出来ていること)

  7.MPLABXIPEによるプログラムの書き込み

        MPLABXIPEを起動する。

   Device → PIC16F88 → Apply → Tool → 接続されたPICkit3が表示されている → メニュ-→Settings →Adbanced Mode→ Password("microchip"画面下にも記載済) → Logon → 左側ウインドウのPower → Power Target circuit Tool の左側□にチェックする → 左側ウインドウのOperate  → sourceのBrowseでHexファイルを選択 → Programをクリック → ok

        これでPICに書き込まれるはずです。

なお、使用マシン環境の為か、"volts"に関するエラーメッセージが出ますので、IPEの左側ウインドウの Power → VDD: のボルト表示を5から4.8に変更すると書き込みすることが出来ましたので、このことも補記します。

  8.配線

   16F88のピン配置

    右側真ん中のVDDピンはプラス(4~5V)

    左側真ん中のVSSピンはGNDへ

    右上から二番目のピンに抵抗を介してLEDの長いほうの線のプラスを接続し、

    短いほうの線のマイナス側をGNDに接続します。  

  9.画像を添付

    

Dsc_1202

                                     以上

2020年2月10日 (月)

8ピンPIC 12F675でLチカできたので、備忘のため手順をメモします

2019年07月13日 作成

   2020年03月20日 修正

   2020年03月22日 修正

   2020年06月23日 7配線のピンの詳細修正と画像の追加

■参考にされる場合は、自己責任でお願いします。

■作成時の環境

 OS / Windows10

 IDE / IMPLABXIDE V5.15

 コンパイラ / XC-8

 PICkit 3

 書き込み用 / MPLABXIPE V5.15

■準備品

 ブレッドボード

 LED

 抵抗 330Ω(前後)

■手順

 1.新規プロジェクト作成

  IMPLABXIDEを起動 メニュー File → NewProject  Next 

  Device  PIC 12F675を選択 → Next → PICkit3 →Next 

  → ●xc8(v・・)[・・・] → Next → ProjectName[例:12F675_led]    

  → Finish

  これで12F675_ledという新規プロジェクトが出来ます。

 2.新規プロジェクトにプログラムを記述する場所を作成します。

  Projects[エクスプロラー] → 12F675_led「+」 クリック →     

  SourceFiles上で右クリック → New  → C SorceFliles  → File Name

  [newfiles]  → Finish

 3.コンフィグの設定

      #include <xc.h>

  下記のconfig部分を張り付ける。

  ・メニュー Windows → PIC Memory Views → Configration Bits → 

   設定画面(何もせず) → 「Generate Code to Output」ボタンを

   クリックすると設定が自動作成されるので内容をコピーしプログラムの設定

   エリア張り付ける。

   ウィンドウ右上の「-」をクリックして閉じます。

 4.クロックの設定

   クロックを以下のとおり記述

   #define _XTAL_FREQ 4000000  //4MHz

   5.ピン設定とプログラム(LED点滅例)

      void main(void) {

      nGPPU  = 0b00000000;// GPIOプルアップ有効化
      ANSEL  = 0b0000000; // すべてデジタルに設定
      WPU    = 0b110000;// プルアップビット指定
      TRISIO = 0b101000;// GP5,3入力、4,2,1,0は出力設定

      while(1){
         GPIO0 = 1;  
         __delay_ms(500); 
         GPIO0 = 0;
         __delay_ms(500); 
          
         }
     return;

   }

////////////////////////////////////////////////////////////

全体のプログラムは以下のとおり

////////////////////////////////////////////////////////////////

#include <xc.h>
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = ON       // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#define _XTAL_FREQ 4000000
void main(void) {
nGPPU  = 0b00000000;// GPIOプルアップ有効化
ANSEL  = 0b0000000; // すべてデジタルに設定
WPU    = 0b110000;// プルアップビット指定
TRISIO = 0b111000;// GP3,4,5入力、他は出力設定
   while(1){
        GPIO0 = 1;  
        __delay_ms(500);
        GPIO0 = 0;
        __delay_ms(500);
        
        }
    return;

}

////////////////////////////////////////////////////

 この内容で、コンパイルすると、

 C:\Users\コンピュータ名\MPLABXProjects\12F675_led.X\dist\default\production

 にHEXファイルが出来上がります。

 6.PICkit3へのセット

   PICkit3に12F675をセットします。

   (18ピンとはセッティングが異なる場合があるので注意)

 7.MPLABXIPEによるプログラムの書き込み

        MPLABXIPEを起動する。

        Device → PIC16F88 → Apply → Tool → 接続されたPICkit3が

        表示されている → メニュ-→Settings → Password("microchip"画面

         下にも記載済) → Logon → 左側ウインドウのPower → PowerTarget

        circuit Tool の左側にチェックをする → 左側ウインドウのOperate  → 

        sourceのBrowseでHexファイルを選択 → Programをクリック → ok

          これでPICに書き込まれるはずです。

 8.配線

  12F675のピン配置

   左側一番上の1番ピンはVDD(+)

   右側一番上の1番ピンはVSS(GND)

   入出力ピン(GP3入力専用)は、右側上から2番目がGP0、3番目がGP1、

         4番目がGP2

   左側上から2番目がGP5、3番目がGP4、4番目がGP3

  LED接続

   LEDから出ている短いほうの線のマイナス側をGNDに接続する。

   長いほうの線を抵抗に接続する。

   抵抗のもう片方をPICのGP0ピンに接続する。

 9.電源ON

   左側一番上のVDDピンに3~5Vのプラスを接続。

   右側一番上のVSS(GND)ピンにマイナスを接続。

10.以上でLEDが点滅すると思います。

Dsc_1206