新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Proteus-PIC-虛擬串口----串口調試仿真

        Proteus-PIC-虛擬串口----串口調試仿真

        作者: 時間:2016-09-05 來源:網絡 收藏

          1、準備工作

        本文引用地址:http://www.104case.com/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 串口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 墨江| 来宾市| 本溪市| 曲阳县| 道真| 安徽省| 襄汾县| 桐柏县| 正宁县| 靖江市| 兴国县| 宜春市| 襄樊市| 东兰县| 昭通市| 台中市| 囊谦县| 裕民县| 芮城县| 阿尔山市| 西青区| 元江| 廉江市| 武城县| 来凤县| 峨山| 石楼县| 肇东市| 丹阳市| 德令哈市| 遂溪县| 金平| 张家界市| 兴城市| 得荣县| 平山县| 都安| 界首市| 廉江市| 重庆市| 定日县|