新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Proteus-PIC-虚拟串口----串口调试仿真

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

作者:时间:2016-09-05来源:网络收藏

  1、准备工作

本文引用地址:http://www.eepw.com.cn/article/201609/296524.htm

  首先,需要准备齐全的软件:①;②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。

  上文提到,中串口设置为COM1,根据实际情况,选取标记②中的任意一个均可,然后串口调试助手选取标记②中的另外一个,即本文为COM2。

  5、运行

  

 

  下图为正常运行的效果图:

  



关键词: Proteus 串口

评论


相关推荐

技术专区

关闭