吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用proteus和keil實(shí)現(xiàn)串口通信仿真

CHANBAEK ? 來(lái)源: 郎哥編程課堂 ? 作者: 郎宏林 ? 2023-11-27 16:42 ? 次閱讀

前面一課講述了串行口通信的技術(shù)原理,本課通過(guò)安裝虛擬串口,用proteuskeil實(shí)現(xiàn)串口通信仿真

虛擬串口

編寫仿真程序之前,需要安裝VSPD,VSPD是虛擬串口工具,通過(guò)VSPD虛擬出兩個(gè)串口用于通信。大家可以通過(guò)搜索引擎找到VSPD安裝方式。

VSPD安裝完成后,運(yùn)行VSPD,并虛擬出兩個(gè)串口COM1和COM2。具體過(guò)程如下:

(1)啟動(dòng)VSPD

圖片

(2)虛擬一對(duì)串口

圖片

單擊【Create】按鈕,確認(rèn)創(chuàng)建當(dāng)前設(shè)定的一對(duì)虛擬串口。

圖片

(3)啟動(dòng)串口助手

隨VSPD安裝包附帶的一般會(huì)有串口助手程序,可以使用串口助手測(cè)試串口的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。

圖片

啟動(dòng)串口助手打開COM1口,另外再啟動(dòng)一個(gè)串口助手,打開COM2口。在打開COM1的串口助手發(fā)送窗口輸入“abc”或“123”,單擊發(fā)送按鈕發(fā)送數(shù)據(jù)。觀察打開COM2串口的串口助手窗口,發(fā)送的數(shù)據(jù)會(huì)出現(xiàn)在數(shù)據(jù)接收窗口。

51單片機(jī)串行口結(jié)構(gòu)

51單片機(jī)串行口結(jié)構(gòu)是一個(gè)可編程全雙工的通信接口,能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,它由兩個(gè)獨(dú)立的串行數(shù)據(jù)緩沖寄存器SBUF(一個(gè)發(fā)送緩沖寄存器,一個(gè)接收緩沖寄存器)和發(fā)送控制、接收控制器控制電路構(gòu)成。

51單片機(jī)通過(guò)SBUF對(duì)串行接收或串行發(fā)送寄存器進(jìn)行訪問(wèn),SBUF的地址是99H。SCON寄存器是串行口控制寄存器,它用來(lái)設(shè)定串行口的工作方式、接收發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志等。SCON寄存器的地址為98H,可進(jìn)行位尋址,各位的定義如下表所示。

圖片

SM0和SM1共同確定串行口的工作方式,SM0為0,SM1為1時(shí),串行口工作方式為異步通信口,這也是串口最常用的一種工作方式,TXD(P3.1)為數(shù)據(jù)發(fā)送引腳,RXD(P3.0)為數(shù)據(jù)接收引腳。

REN為允許串行口接收位,REN=1:允許串行口接收數(shù)據(jù),REN=0:禁止串行口接收數(shù)據(jù)。

在操作串行口之前,需要設(shè)置產(chǎn)生波特率的定時(shí)器T1、串行口控制和中斷控制。

定時(shí)器設(shè)置:確定T1的工作方式,計(jì)算T1的初值,裝載TH1和TL1。設(shè)置串行口工作方式:SM0=0,SM1=1。允許串行口接收數(shù)據(jù):REN=1。RI為接收中斷標(biāo)志位,當(dāng)串行數(shù)據(jù)接收完成后,向CPU發(fā)出中斷申請(qǐng),在處理程序中,將該位清零,取消此中斷申請(qǐng)。TI為發(fā)送中斷標(biāo)志位,當(dāng)串行口發(fā)送數(shù)據(jù)結(jié)束后,向CPU發(fā)出中斷申請(qǐng),在處理程序中,將該位清零,取消此中斷申請(qǐng)。

串口通信仿真實(shí)驗(yàn)

實(shí)驗(yàn)要求:通過(guò)串口控制發(fā)光二極管的狀態(tài)。

在proteus仿真電子元器件庫(kù)搜索“COMPIM”,添加串口器件到電路模型元器件庫(kù),添加一個(gè)串口器件到電路模型,Physical port設(shè)置為COM1,并設(shè)置Physical Baud rate為9600。

圖片

Physical Baud rate為波特率,波特率通常單位是bit/s,即每秒傳輸?shù)亩M(jìn)制位數(shù)。

實(shí)驗(yàn)電路如下圖所示:

圖片

實(shí)驗(yàn)電路非常簡(jiǎn)單,器件P1為串口器件,串口器件的TXD引腳接單片機(jī)的TXD引腳,串口器件的RXD引腳接單片機(jī)的RXD引腳,串口器件的其它引腳可以懸空。

單片機(jī)內(nèi)運(yùn)行的完整C程序如下:

#include
void init();
void main(){
 unsigned char temp=0xff;
 init();
 while(1){
    if(RI){ 
         RI=0;  
         temp=SBUF; 
     }else{
         P1=temp;
     }
 }
}
void init(){
 TMOD=0x20; 
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
           
 SM0=0;
 SM1=1; 
 REN=1;
}

函數(shù)init()用來(lái)設(shè)置單片機(jī)串行口工作方式、定時(shí)器、中斷等控制項(xiàng),TMOD=0x20設(shè)置定時(shí)器為計(jì)數(shù)器方式并設(shè)置初值,TR1=1啟動(dòng)T1定時(shí)器,SM0=0和 SM1=1設(shè)置串口工作方式為異步通信方式,REN=1允許串行口接收數(shù)據(jù)。

main()函數(shù)應(yīng)用while循環(huán)結(jié)構(gòu)監(jiān)測(cè)串行口,判斷SCON寄存器的RI中斷標(biāo)志位是否為1,若為1,說(shuō)明串口已接收到數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在SBUF緩沖寄存器,RI中斷標(biāo)志位清零,SBUF賦值給temp變量,若RI中斷標(biāo)志位為0,將temp變量的值賦值給P1口。

實(shí)驗(yàn)過(guò)程:

在proteus啟動(dòng)實(shí)驗(yàn)電路,啟動(dòng)虛擬串口和串口助手,串口助手設(shè)置為COM2,打開COM2串口,選擇16進(jìn)制發(fā)送,在發(fā)送窗口輸入00,單擊發(fā)送,實(shí)驗(yàn)電路的二極管點(diǎn)亮,再次發(fā)送ff可熄滅二極管。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44621

    瀏覽量

    638484
  • Proteus
    +關(guān)注

    關(guān)注

    79

    文章

    1692

    瀏覽量

    106825
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4124

    瀏覽量

    133983
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1627

    瀏覽量

    55725
  • 虛擬串口
    +關(guān)注

    關(guān)注

    3

    文章

    62

    瀏覽量

    13941
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Proteus教程:STM32仿真串口+定時(shí)器

    Proteus教程:STM32仿真串口+定時(shí)器
    的頭像 發(fā)表于 06-14 11:40 ?4495次閱讀
    <b class='flag-5'>Proteus</b>教程:STM32<b class='flag-5'>仿真</b><b class='flag-5'>串口</b>+定時(shí)器

    基于Proteus 的串行通信仿真,字模提取

    字模提取及基于Proteus 的串行通信仿真"Verdana">采用掃描VB 圖片框的方法提取字模,并利用VB、ProteusKeil
    發(fā)表于 06-28 01:12

    通過(guò)proteus,VSPD虛擬串口串口小助手仿真單片機(jī)串口通信

    求大家?guī)兔ΑN?b class='flag-5'>用proteus、VSPD、串口助手來(lái)仿真和調(diào)試串口通信,出現(xiàn)問(wèn)題了,想不出來(lái)怎么
    發(fā)表于 12-26 18:38

    keil5和Proteus來(lái)仿真運(yùn)行stm32程序

    Proteus仿真運(yùn)行stm32程序摘要:本文介紹了keil5和Proteus來(lái)仿真運(yùn)行stm
    發(fā)表于 08-24 08:00

    如何實(shí)現(xiàn)VSPD+XCOM+Proteus仿真stm32串口通信

    如何實(shí)現(xiàn)VSPD+XCOM+Proteus仿真stm32串口通信
    發(fā)表于 02-08 06:42

    字模提取及基于Proteus 的串行通信仿真

    字模提取及基于Proteus 的串行通信仿真::采用掃描VB 圖片框的方法提取字模,并利用VB、ProteusKeil 軟件聯(lián)合
    發(fā)表于 06-21 22:44 ?0次下載

    Proteus串口仿真應(yīng)用

    Proteus串口仿真應(yīng)用: 最為簡(jiǎn)單且常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連,本文只涉及到最為基本的接法,且直接RS232相連。
    發(fā)表于 06-23 16:16 ?194次下載
    <b class='flag-5'>Proteus</b>的<b class='flag-5'>串口</b><b class='flag-5'>仿真</b>應(yīng)用

    單片機(jī)485PC串口通信proteus仿真程序資料

    單片機(jī)485PC串口通信proteus仿真程序資料,很好設(shè)計(jì)資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 05-09 17:10 ?68次下載

    串口雙機(jī)通信 keil uVision4程序代碼下載

    串口雙機(jī)通信 keil程序代碼(c語(yǔ)言及匯編語(yǔ)言)及proteus仿真圖 兩機(jī)聯(lián)調(diào)
    發(fā)表于 05-15 10:46 ?5次下載
    <b class='flag-5'>串口</b>雙機(jī)<b class='flag-5'>通信</b> <b class='flag-5'>keil</b> uVision4程序代碼下載

    使用單片機(jī)實(shí)現(xiàn)控制循環(huán)輸出彩燈的proteus仿真Keil程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)控制循環(huán)輸出彩燈的proteus仿真Keil程序免費(fèi)下載。
    發(fā)表于 07-01 08:00 ?8次下載
    使用單片機(jī)<b class='flag-5'>實(shí)現(xiàn)</b>控制循環(huán)輸出彩燈的<b class='flag-5'>proteus</b><b class='flag-5'>仿真</b>和<b class='flag-5'>Keil</b>程序免費(fèi)下載

    C51_keil匯編+proteus仿真(小白教程)

    C51_keil匯編+proteus仿真(小白教程)
    發(fā)表于 11-23 09:36 ?18次下載
    C51_<b class='flag-5'>keil</b>匯編+<b class='flag-5'>proteus</b><b class='flag-5'>仿真</b>(小白教程)

    VSPD+XCOM+Proteus仿真stm32串口通信

    傳“LED1 OFF”在串口發(fā)送過(guò)程中,打開LED2作為發(fā)送數(shù)據(jù)指示燈相關(guān)軟件使用說(shuō)明STM32CubeMX+Keil+Proteus相關(guān)的安裝、使用、配置等基礎(chǔ)操作不再贅述,有關(guān)內(nèi)容的詳細(xì)介紹如下STM32CubeMX+Keil5+P
    發(fā)表于 12-05 14:06 ?13次下載
    VSPD+XCOM+<b class='flag-5'>Proteus</b><b class='flag-5'>仿真</b>stm32<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    【HAL庫(kù)】Proteus+VSPD實(shí)現(xiàn)仿真stm32虛擬串口

    也可以直接keil創(chuàng)建固件庫(kù)工程,非必需,本實(shí)驗(yàn)采用CubeMX建立工程keil5 / IAR用于編寫程序。Proteus用于繪制電路仿真
    發(fā)表于 12-06 18:36 ?41次下載
    【HAL庫(kù)】<b class='flag-5'>Proteus</b>+VSPD<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>仿真</b>stm32虛擬<b class='flag-5'>串口</b>

    Proteuskeil聯(lián)合仿真

    keil Debug部分第六步:配置proteus,聯(lián)系keilproteus第七步:proteus
    發(fā)表于 12-29 19:50 ?26次下載
    <b class='flag-5'>Proteus</b>與<b class='flag-5'>keil</b>聯(lián)合<b class='flag-5'>仿真</b>

    基于單片機(jī)RS485-PC串口通信proteus仿真設(shè)計(jì)

    基于單片機(jī)RS485-PC串口通信proteus仿真設(shè)計(jì)包含仿真及源程序
    發(fā)表于 04-20 15:12 ?18次下載
    百家乐视频对对碰| 帝豪百家乐官网利来| 娱乐城开户送彩金| 大发888体育网| 大发888为什么卡| 德州扑克3d豪华版| 娱乐城在线| 百家乐破解| 乌拉特后旗| 亲朋棋牌手机版下载| 网上现金游戏网 | 百家乐官网路单打法| 千亿国际娱乐城| 大发888 大发娱乐城| 大发888 dafa888 octbay| 云鼎娱乐城怎么存钱| 游戏| 百家乐官网秘诀| 东营区百家乐官网艺术团| 百家乐官网网上娱乐场开户注册| 洛克百家乐官网的玩法技巧和规则| 百家乐视频计牌器| 百家乐网投注| 威尼斯人娱乐城送彩金| bet365网站地址器| 沧州市| 百家乐官网路子| 挖掘百家乐赢钱秘籍| 正品百家乐的玩法技巧和规则| 德州扑克英语| 百家乐官网扑克牌耙| 百家乐官网规律和方法| 百家乐赢率| 德州扑克在线游戏| 百家乐官网娱乐城博彩| 澳门百家乐官网大小| 百家乐官网保单机解码| 百家乐路珠多少钱| 正规棋牌游戏| 百家乐官网金海岸| 蓝盾百家乐官网庄家利润分|