?? 2_rs-232.c
字號:
//此程序通過RS-232接口來完成計算機(jī)和單片機(jī)通信(程序已用p18f458試驗板上調(diào)試通過)
//此程序首先發(fā)送測試數(shù)據(jù)55H,再通過中斷實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送
//程序的調(diào)試可以用"串口調(diào)試助手V2.1"輔助完成
#include "p18f458.h"
void InterruptHandlerHigh(void);
//初始化程序
void initial()
{
SPBRG=0X19; //選擇傳輸波特率為9600bps
TXSTA=0X04; //選擇異步高速方式傳輸8位數(shù)據(jù)
RCSTA=0X80; //允許同步串行口工作
TRISC=0X80; //將RC7,RC6設(shè)置為輸入,斷絕與外接電路的連接
TXSTAbits.TXEN=1; //發(fā)送允許
RCSTAbits.CREN=1; //接受數(shù)據(jù)允許
PIE1bits.RCIE=1; //接收中斷使能
INTCON=0XC0; //總中斷和外圍中斷允許
}
//高優(yōu)先級中斷向量
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh //跳到中斷程
_endasm
}
//高優(yōu)先級中斷服務(wù)程序
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh ()
{
while(PIR1bits.RCIF==1) //若接收中斷標(biāo)志不為1,則為誤操作,返回
{
TXREG=RCREG; //將接收到的數(shù)據(jù)放入發(fā)送寄存器,并啟動發(fā)送
}
}
//主程序
main()
{
initial(); //系統(tǒng)初始化
TXREG=0X55; //發(fā)送數(shù)據(jù)55H進(jìn)行測試
for(;;);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -