×
单片机 > 单片机程序设计 > 详情

Proteus-PIC-虚拟串口----串口调试仿真

发布时间:2020-06-16 发布时间:
|
1、准备工作

首先,需要准备齐全的软件:①Proteus;②MPLAB;③串口调试助手;④虚拟串口Virtual Serial Port Driver

 

2、绘制简单电路图

 
用不同的LED灯做指示灯
注:PIC和COMP1M电路连接:用串口调试助手作为输入/输出显示,相关连线为对应连接,即RX-RXD;TX-TXD(虚拟终端SCMR用于观察单片机接受到的数据值,可去掉),也可以通过LED指示灯查看程序是否按照设定正常执行。
 
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;//发送数据控制位配置00100100,异步方式、高波特率,波特率=Fosc/16*(SPBTG+1);
               //TXSTA寄存器的D5(TXEN)=1,启动UART的发送功能
RCSTA=0x90;//接收数据控制位配置10010000,设置连续接收数据
               //RCSTA寄存器的D4(CREN)=1,启动UART的接收功能
SPBRG=25;  //设置波特率9600,系统时钟4MHZ,波特率=4000000/16/(25+1)=9615(Bps)
RCIE=1;    //接收中断使能
TXIE=1;    //发送中断使能
PEIE=1;    //INTCON的D6(PEIE)=1,外围中断开关打开
GIE=1;     //总中断开启
 
 
//***********************************************************************************
//中断服务子程序
//***********************************************************************************
void interrupt ISR()
{
int RE;
 
   if(RCIF==1)         //接收到数据产生中断
        {
            RCIF=0; 
 
RE=RCREG;
TXREG=RCREG; //将接收到的数据返回给上位机,检验接受和发送是否正常
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、设置参数

 

①PIC单片机的晶振设置要与外部链接晶振设置一致,本文设置为4MHz,you see!

 

②设置烧写路径 Program File,选择“.hex”文件

 

③设置串口参数,如下图所示:(注:此处Physical Port选择的是COM1,其实选择任何一个都可以,但是要配合虚拟串口Virtual Serial Port Driver中的设定,具体见下文)

 

④设置虚拟终端SCMR,参数基本不需要更改
 
如果输入的是ASCII码----不勾选Hex Display mode

如果输入的是16进制-----勾选Hex Display mode

clear screen 是清屏

echo typed characters 是当你在虚拟终端窗口输入字符时,输入的字符显示在虚拟中断窗口内。

 
 ⑤设置虚拟串口Virtual Serial Port Driver和串口调试助手
  标记①处默认是COM1和COM2,可任意选择,本文选取默认值,点击旁边按钮后,在左侧出现标记②,同时标记①处便变成如上图的COM3和COM4。
上文提到,Proteus中串口设置为COM1,根据实际情况,选取标记②中的任意一个均可,然后串口调试助手选取标记②中的另外一个,即本文为COM2。
 
5、运行
 
下图为正常运行的效果图:
 

关键字:Proteus  PIC  虚拟串口  串口调试仿真

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项