Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

PIC16F628A シリアル通信テスト

$
0
0
 PIC16F628AのUSARTを使ってシリアル通信を行います。

 MPLAB IDE アセンブラで既に経験済みですが、MPLABX XC8では、どのようなプログラムになるのでしょうか。

 シリアル通信のTX(送信)は、7番ピン(RB1)で、RX(受信)は、8番ピン(RB2)で、両方ともTRISは入力設定(1)にします。
 USBシリアル変換モジュールは、秋月電子のFT234Xを使います。(これすごく小さいです。)

 接続は、
 PIC  FT234X
 RX   TxD
 TX  RxD
 です。

 回路図です。電源は、FT224Xから5Vを供給します。FT234XのTxD出力は3.3Vで、入力は5VトレラントですからPICと直接接続できます。クロックは内蔵発振器で4MHzとします。

イメージ 1

 ブレッドボードです。
イメージ 2

 プログラムです。渓鉄さんのサイトを参考にさせていただきました。ありがとうございます。

 USARTの設定です。

 送信設定は、TXSTAで行います。非同期通信、高速サンプル指定(BRGH=1)ですので、TXSTA = 0x24とします。

 送信データをTXREGにセットすると自動的にシリアル送信されます。

 受信設定は、RCSTAで行います。非同期通信、継続受信ですので、RCSTA = 0x90とします。
 エラーチェックはしません。

 シリアルデータを受信するとRCIFが1になり、データはRCREGに保存されます。

 通信速度jは9600bpsとします。クロック4MHzで、BRDH=1ですので、SPBRG=25とします。

 この値の計算方法は、PIC16F628Aの説明書にかいてありますが、今回はサンプルにあった値をつかいました。

/*
 * File:   PIC16F628A_serial_com.c
 * Author: JH7UBC Keiji Hata
 * Created on 2018/11/05
 */
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 4000000

// CONFIG
#pragma config FOSC = INTOSCIO
#pragma config WDTE = OFF    
#pragma config PWRTE = ON    
#pragma config MCLRE = OFF   
#pragma config BOREN = OFF   
#pragma config LVP = OFF       
#pragma config CPD = OFF  
#pragma config CP = OFF

/*1文字送信 */
void putch(unsigned char byte){
    while(!TXIF );
    TXREG = byte;
}

/* 1文字受信 エラーチェックなし*/
unsigned char getch(){
    while(!RCIF);
    return RCREG;

/* エコーバック付き入力 */
unsigned char getche(){
    unsigned char c;
    c = getch();
    putch(c);
    return c;
}

void main() {
    CMCON = 0x07;       //comparator OFF
    TRISA = 0b00010000; //RA5 input 他は output
    TRISB = 0b00000110; //RB1,RB2はinput 他はoutput
   
    /*USART設定*/
    TXSTA = 0x24;       //送信設定 非同期 高速
    RCSTA = 0x90;       //受信設定 非同期 継続受信
    SPBRG = 25;         //クロック4MHz レート9600bps
   
    unsigned char work;
    while(1){
        work = getch();
        printf("Echo: %c\r\n", work);
    }
}

 Tera Termを使ってテストをしました。キーボードで打った文字がエコーバックされます。

イメージ 3



Viewing all articles
Browse latest Browse all 440

Trending Articles