左図がピンの構成図です。
---------------------------------------------------------------------
// シミュレータ機能のテスト3(USART入出力)
#include <xc.h>
#include "skUARTlib.h"
// コンフィギュレーション1の設定
#pragma config FOSC = INTOSC // 内部クロック使用する(INTOSC)
#pragma config WDTE = OFF // ウオッチドッグタイマー無し(OFF)
#pragma config PWRTE = ON // 電源ONから64ms後にプログラムを開始する(ON)
#pragma config MCLRE = OFF // 外部リセット信号は使用せずにデジタル入力(RA3)ピンとする(OFF)
#pragma config CP = OFF // プログラムメモリーを保護しない(OFF)
#pragma config CPD = OFF // データメモリーを保護しない(OFF)
#pragma config BOREN = ON // 電源電圧降下常時監視機能ON(ON)
#pragma config CLKOUTEN = OFF // CLKOUTピンをRA4ピンで使用する(OFF)
#pragma config IESO = OFF // 外部・内部クロックの切替えでの起動はなし(OFF)
#pragma config FCMEN = OFF // 外部クロック監視しない(OFF)
// コンフィギュレーション2の設定
#pragma config WRT = OFF // Flashメモリーを保護しない(OFF)
#pragma config PLLEN = OFF // 動作クロックを32MHzでは動作させない(OFF)
#pragma config STVREN = ON // スタックがオーバフローやアンダーフローしたらリセットをする(ON)
#pragma config BORV = HI // 電源電圧降下常時監視電圧(2.5V)設定(HI)
#pragma config LVP = OFF // 低電圧プログラミング機能使用しない(OFF)
// 割り込み処理(受信しないならこの関数は不要)
void interrupt InterFunction( void )
{
InterUART() ; // USART関連の割り込み処理
}
// メインの処理
void main()
{
char dt[4] ;
OSCCON = 0b01110010 ; // 内部クロックは8MHzとする
ANSELA = 0b00000000 ; // アナログは使用しない(すべてデジタルI/Oに割当てる)
TRISA = 0b00100000 ; // 2(RX:RA5)番ピンは入力、その他は出力に割当てる(RA3は入力専用)
PORTA = 0b00000000 ; // 出力ピンの初期化(全てLOWにする)
InitUART(2,3,51) ; // USARTの初期化(RX=2 TX=3 9600bps)
dt[0] = 0 ;
while(1) {
if (UART_Available() != 0) { // データを受信しているか調べる
dt[0] = UART_Read() ; // 1バイトデータを受信する
UART_Send(dt,1) ; // 1バイトデータを送信する
}
}
}
---------------------------------------------------------------------
このプログラムにはUSART通信の為の「skUARTlib.c」「skUARTlib.h」が必要ですが、
アイコンをクリックします。

「Categories:」のパネル内で"Simulator"を選択します。
右のパネルの「Option categories:」で"Uart1 IO Options"を選択します。

「Enable Uart1 IO」 □ にチェックを入れて、「Output」の項目を"Window"にします。
設定をしたら[OK]ボタンをクリックします。
メモ帳等で下記の様に書き込みます、"0D 0A"は16進数で"CR LF"の改行です。 (----線は書かない文字のみ、念の為) --------------------------------------------------------------------- wait 0 ms "12F1822" 0D 0A "USART" 0D 0A wait 3 sec --------------------------------------------------------------------- 作成したらプロジェクトフォルダに保存します、ここでは"uart.txt"としました。 繰り返す場合は3秒後に繰り返しますが、時間は正確でないです。 "HELP"に1行辺り260文字を超えない様にとか書いて有るような気がします。

上画面の様に設定したら[Generate SCL file]ボタンをクリックし名前を付けて保存します。
| Label | 英字からはじまる英数字で任意にラベル名を設定します。 |
| Reg/Var | 空欄をクリックするとメニューが表示されます、レジスター(RCREG)を選択します。 |
| Trigger | USARTをシミュレートする時は、"Message"にします。 "RCREG"が読み込まれる時ににデータファイルから順番にセットされます。 |
| PC Value | プログラムの行番号か関数名を入力します。(但し、"Trigger"が"PC= "の時) |
| Width | "PC= "の時使用するみたいだが使い方不明? |
| Data Filename | クリックすると[開く]ウインドウが表示されるので、Aのデータファイル名を指定します。 |
| Wap | Yes:データファイルを最後まで読出すと、最初から繰り返してデータをセット。 No :繰り返さないで最後のデータを使い続けます。 |
| Format | ここの型式に応じてデータファイルの数値を書きます。 Pkt:Hex or Raw packet format (used with UART receive register) |
| Comments | 適当に説明用のコメントを入力する、しなくてもOK |
--------------------------------------------------------------------- // // C:\Users\user\Documents\Electrical circuit\PIC\12F1822\test.X\USART.scl // Generated by Stimulus MPLAB X // Wed Jul 16 17:32:36 JST 2014 // configuration for "pic12f1822" is // shared variable RCREG; ← この行をコメントにする。 end configuration; testbench for "pic12f1822" is begin // Register Injection (message-based) process is file data_file_RCREG : text; variable pkt_line_RCREG : line; variable status_RCREG : file_open_status; ・ ・ ・ --------------------------------------------------------------------- 上記の場所(9行目辺り)をコメントにしたら上書き保存します。 ダウンロードファイルに"USART.scl"が有るのでそれを利用しても良いでしょう。
このアイコン[Attach SCL file]ボタンをクリックします。
このアイコン[Detach SCL file]ボタンは動作終了です。

この様に"12F1822"と"USART"の文字が数秒毎に繰り返されて表示されます。
"RCIE"のビットで"USART割込み受信を有効"にした場合もちゃんと割り込みが発生します。
"MPLAB X V3.50"での注意事項の追記(*1) 2016/12/28
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2016 Shigehiro Kimura All Rights Reserved.