Proteus-PIC-虛擬串口----串口調試仿真
1、準備工作
本文引用地址:http://2s4d.com/article/201609/296524.htm首先,需要準備齊全的軟件:①Proteus;②MPLAB;③串口調試助手;④虛擬串口Virtual Serial Port Driver
2、繪制簡單電路圖
用不同的LED燈做指示燈
注:PIC和COMP1M電路連接:用串口調試助手作為輸入/輸出顯示,相關連線為對應連接,即RX-RXD;TX-TXD(虛擬終端SCMR用于觀察單片機接受到的數據值,可去掉),也可以通過LED指示燈查看程序是否按照設定正常執(zhí)行。
3、編寫相應的程序
應用MPLAB編寫對應的程序:
//*******************************************************
// 工程: 檢驗-虛擬串口
//*******************************************************
#include
/****************定義函數**********************/
void init_PORT();
void init_com();
void interrupt ISR();
/*******************************************************/
__CONFIG(0X3F71);
/******************************************************/
/*初始化PIC單片機端口*/
void init_PORT()
{
TRISC=0x80; //置RC6/TX與RC7/RX分別為UART的傳送與接收引腳
TRISD=0x00;
RD7=1;
RD6=1;
RC1=1;
RC2=1;
}
//*********************************************************************
//初始化串口
//*********************************************************************
void init_com()
{
TXSTA=0x24;//發(fā)送數據控制位配置00100100,異步方式、高波特率,波特率=Fosc/16*(SPBTG+1);
//TXSTA寄存器的D5(TXEN)=1,啟動UART的發(fā)送功能
RCSTA=0x90;//接收數據控制位配置10010000,設置連續(xù)接收數據
//RCSTA寄存器的D4(CREN)=1,啟動UART的接收功能
SPBRG=25; //設置波特率9600,系統時鐘4MHZ,波特率=4000000/16/(25+1)=9615(Bps)
RCIE=1; //接收中斷使能
TXIE=1; //發(fā)送中斷使能
PEIE=1; //INTCON的D6(PEIE)=1,外圍中斷開關打開
GIE=1; //總中斷開啟
}
//***********************************************************************************
//中斷服務子程序
//***********************************************************************************
void interrupt ISR()
{
int RE;
if(RCIF==1) //接收到數據產生中斷
{
RCIF=0;
RE=RCREG;
TXREG=RCREG; //將接收到的數據返回給上位機,檢驗接受和發(fā)送是否正常
RD6=0; //進入到中斷,點亮LED-D2
if( RE==0xCC)
{
RC1=0;//接收到0XCC,點亮LED-D3
RC2=1;
}
else
{
RD7=0;//接收到數據,且是非0XCC,點亮LED-D1
RC1=1;
RC2=0;//點亮LED-D4
}
}
}
/***********************************************************
主程序
***********************************************************/
void main()
{
init_PORT();
init_com();
while(1) ;
}
4、設置參數
?、貾IC單片機的晶振設置要與外部鏈接晶振設置一致,本文設置為4MHz,you see!
?、谠O置燒寫路徑 Program File,選擇“.hex”文件
?、墼O置串口參數,如下圖所示:(注:此處Physical Port選擇的是COM1,其實選擇任何一個都可以,但是要配合虛擬串口Virtual Serial Port Driver中的設定,具體見下文)
?、茉O置虛擬終端SCMR,參數基本不需要更改
如果輸入的是ASCII碼----不勾選Hex Display mode
如果輸入的是16進制-----勾選Hex Display mode
clear screen 是清屏
echo typed characters 是當你在虛擬終端窗口輸入字符時,輸入的字符顯示在虛擬中斷窗口內。
?、菰O置虛擬串口Virtual Serial Port Driver和串口調試助手
標記①處默認是COM1和COM2,可任意選擇,本文選取默認值,點擊旁邊按鈕后,在左側出現標記②,同時標記①處便變成如上圖的COM3和COM4。
上文提到,Proteus中串口設置為COM1,根據實際情況,選取標記②中的任意一個均可,然后串口調試助手選取標記②中的另外一個,即本文為COM2。
5、運行
下圖為正常運行的效果圖:
評論