PIC16F88を使ったプロジェクトで、シリアル通信でスタンダードの無線機FT-817の周波数設定をPICから行おうとするものです。mikroelectronikaのmikroC PRO に慣れるための練習も兼ねています。

FT-817CATコントローラーの回路図は以下の通りです。

817cat_schematic

PICには2行タイプのLCD(SC1602BS-B)を接続しています。また、PS/2キーボード接続のためにコネクタX2にプルアップされた入力を出しています。PICは20MHz(セラロック)動作になります。

mikroC PROでLCDお初期化はmikroC V8とは少し違って以下の通りになります。

// Lcd pinout settings
sbit LCD_RS at RB7_bit;
sbit LCD_EN at RB4_bit;
sbit LCD_D7 at RA3_bit;
sbit LCD_D6 at RA2_bit;
sbit LCD_D5 at RA1_bit;
sbit LCD_D4 at RA0_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB7_bit;
sbit LCD_EN_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISA3_bit;
sbit LCD_D6_Direction at TRISA2_bit;
sbit LCD_D5_Direction at TRISA1_bit;
sbit LCD_D4_Direction at TRISA0_bit;

Lcd_Init();    // LCD初期化

PORTB.F6 = 0;

グローバル変数にビット変数をあらかじめセットしておいてLcd_Init()をコールします。このほうが、ソースコードが多少見やすくなるようです。LCDのR/W端子もPICと接続してあるのでPORTB.F6 = 0;として「書き込み」モードにしてあります

PS/2キーボードの初期化は以下の通りになります。

sbit PS2_Data at RB0_bit;
sbit PS2_Clock at RB1_bit;
sbit PS2_Data_Direction at TRISB0_bit;
sbit PS2_Clock_Direction at TRISB1_bit;

Ps2_Config();         // Init PS/2 Keyboard

下が基板になります。端子台を使って配線が楽にできるようにしました。

img 004

main関数内で以下のコードを実行した写真です。

Lcd_Out(1, 1, “123456”);

img 001

また、LEDが接続されているRB3はPWM出力として設定してあるのでLEDの明るさが変えることができます。

(Visited 38 times, 1 visits today)