色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用延時法模塊串口

CHANBAEK ? 來源:嵌入式開發教程 ? 作者:郭學提 ? 2023-07-12 11:52 ? 次閱讀

使用波特率為9600bpS,晶振頻率為11.0592MHz,通過計算可知,串口的每位需延時0.104ms,通過執行96個指令周期可能完成0.104ms的延時。與其相關的程序在結構上可分為:IO口定義、串口發送函數、串口接收函數、延時函數。下面依次介紹各個部分。

1.IO口定義程序等

這部分程序主要包括基本的IO口定義、全局變量定義、頭文件包含、函數聲明等。為后面程序提供編程基本。其程序代碼如下:

sbit  RXD1 = 0x90; 
sbit  TXD1 = 0x91; 
#define  WR_delay     44 //寫延時 
#define  RD_delay     43 //讀延時

2.串口發送函數

串口發送函數首先發送起始位,再發送數據,根據通信協議選擇是否發送校驗位。最后發送停止位。延時法模擬串口發送流程如圖所示。

圖片

其程序代碼如下:

#define  Check_bit_switch_on_off    0//不使用校驗位
uchar Check_bit;
//往串口寫一個字節 
void Send_Byte(uchar input,bit Check_bit) 
{ 
    uchar i=8; 
    TXD=(bit)0; //發送啟始位 
    Delay(39); 
    //發送8位數據位 
    while(i--) 
    { 
      TXD=(bit)(input&0x01); //先傳低位 
      Delay(36); 
      input=input >>1; 
    } 
    //發送校驗位(無) 
    #if Check_bit_switch_on_off
    {
      TXD1=(bit)(Check_bit); //發送校驗位
      Delay(36); 
    }
    #else
    Check_bit = Check_bit;
    #endif
    TXD1=(bit)1; //發送結束 位 
    Delay(46); 
}

3.串口接收函數

串口接收函數首先等待起始位,然后接收數據,根據通信協議選擇是否需要接收校驗位。最后等待停止位。延時法模擬串口接收流程如圖所示。

圖片

其程序代碼如下:

//從串口讀一個字節 
uchar Revice_Byte(void) 
{ 
    uchar Output=0; 
    uchar i=8; 
    uchar temp=RD_delay; 
    //發送8位數據位 
    Delay(RD_delay *1.5); //此處注意,等過起始位 
    while(i--) 
    { 
      Output > >=1; 
      if(RXD1) 
        Output |=0x80; //先收低位 
      Delay(35); //(96-26)/2,循環共 
      //占用26個指令周期 
    } 
    //接收校驗位
    #if Check_bit_switch_on_off
    (Check_bit)=TXD; //接收校驗位
    Delay(35); 
    #endif
    while(--temp) //在指定的 
    //時間內搜尋結束位。
    { 
      Delay(1); 
      if(RXD1)
      break; //收到結束位便退出 
    } 
    return Output; 
}

用延時方式可以模擬多個個串口,但是使用延時方式模擬的串口在接收上存在一定的難度,主要是采樣定位要求嚴格,另外還必須知道每條語句的指令周期數。在調試過程中,讀者可以借助編譯軟件通過反匯編的方式查看編譯后的匯編語句,已確定你所使用的C語句的執行時間。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 晶振
    +關注

    關注

    34

    文章

    2859

    瀏覽量

    68007
  • 串口
    +關注

    關注

    14

    文章

    1551

    瀏覽量

    76437
  • 函數
    +關注

    關注

    3

    文章

    4328

    瀏覽量

    62575
  • 波特率
    +關注

    關注

    2

    文章

    307

    瀏覽量

    34116
  • IO口
    +關注

    關注

    3

    文章

    170

    瀏覽量

    24024
收藏 人收藏

    評論

    相關推薦

    有關串口通訊延時問題的討論

    最簡單的串口通訊作為子VI(寫、延時50ms、讀),然后單獨運行子VI可以很好的通訊,然后在主程序調用該串口通訊子VI時問題來了,寫進去以后要延時五六秒才能有返回數據,而且只要調用該子
    發表于 12-24 16:49

    串口通信延時發送問題or調用延時問題

    本帖最后由 eehome 于 2013-1-5 10:08 編輯 有沒有人遇到過以下奇怪的串口通信問題哈:簡單的串口讀寫作為子VI供主程序調用,單獨運行時讀寫正常,但是一旦在主程序中運行時就出
    發表于 12-25 09:55

    串口延時問題

    最近寫串口程序,遇到如下問題,在寫與讀之間設置延時,波特率為187500,發的16字節,收的8字節。但是運行一次延時需要設置在7ms以上才能每次都收到數據,只能延時設置小點,只運行一次
    發表于 07-01 21:12

    Labview串口讀寫的延時問題

    先說一下通訊的目的:讀取PLC中保持寄存器(MD)的值,通訊方式采用Modbus 485串口,波特率設置為19200;我采用VISA寫函數將Modbus讀指令寫入串口中,再延時10ms后,采用
    發表于 12-01 09:23

    單片機IO 口模擬串口通信低到延時

    單片機IO 口模擬串口通信低到延時,void WByte(uchar input){uchar i=8;TXD=(bit)0;//發送啟始位Delay2cp(39);//發送8位數據位while
    發表于 05-18 14:31

    為什么4432無線串口模塊有很大延時

    4432無線串口模塊直接接在USB轉TTL上通信就沒有延時。。。。為什么接到單片機上就有延時。。。。。。。而且寫得串口協議也都不能用了。。。
    發表于 07-21 21:44

    串口通訊模塊的信息與使用

    串口通訊模塊的信息與使用
    發表于 08-20 17:04 ?27次下載

    SCI串口模塊

    SCI串口模塊
    發表于 10-20 10:33 ?5次下載
    SCI<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>

    一文深度了解串口WiFi模塊作用,串口WiFi模塊的應用場景

    串口WiFi模塊作用,串口WiFi模塊的應用場景
    發表于 03-01 14:25 ?28次下載

    AN1450 - 延時模塊去抖動器

    在本應用筆記中,我們將使用PIC10F322實現延時模塊/去抖動器。其延時值可設定,范圍介于2 Us至193 ps之間。它可有效用作噪聲鑒別器,也可用于開關去抖動。用作延時
    發表于 03-27 18:44 ?1次下載

    51內核軟件延時串口的巧妙方法介紹

    51內核軟件延時串口的巧妙方法介紹,具體的跟隨小編一起來了解一下。
    的頭像 發表于 07-28 11:28 ?4135次閱讀
    51內核軟件<b class='flag-5'>延時</b>和<b class='flag-5'>串口</b>的巧妙方法介紹

    你不知道單片機延時的種種情況

    模塊某協議的時序,比如串口,IIC的通訊協議,使用延時來滿足時序變化的要求和通訊速度的控制。
    發表于 05-04 17:40 ?5657次閱讀
    你不知道單片機<b class='flag-5'>延時</b>的種種情況

    無線串口模塊的概念與選型要點

    首先我們來說一下什么是無線串口模塊?無線模塊即是通過無線電信號來傳輸數據的軟硬件模組,串口模塊即是使用
    的頭像 發表于 06-17 11:42 ?2419次閱讀

    串口模塊選型要點

    無線模塊:通過無線電信號來傳輸數據的軟硬件模組; 串口模塊:使用串口通信協議來傳輸數據的軟硬件模組; 無線串口
    發表于 05-31 15:23 ?3次下載
    <b class='flag-5'>串口</b><b class='flag-5'>模塊</b>選型要點

    什么是無線串口模塊?無線串口模塊怎么用?

    常看到很多網友在百度知道,天涯問答,搜搜問問等問答平臺上提問什么是無線串口模塊,無線串口模塊怎么用等等這樣的問題。可能是剛接觸這個行業的人想了解這樣的產品才會產生疑問,思為無線針對這個
    的頭像 發表于 08-04 14:01 ?5853次閱讀
    什么是無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>?無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>怎么用?
    主站蜘蛛池模板: 绞尽奶汁by菊花开| 激情内射亚州一区二区三区爱妻| 果冻传媒视频在线观看完整版免费 | 美女被触手注入精子强制受孕漫画 | 又粗又大又爽又黄的免费视频| 趁老师睡着吃她的奶水| 久久成人免费观看草草影院| 少妇精油按摩| 91天堂国产在线 在线播放| 韩国污动漫无遮掩无删减电脑版| 日本无吗高清| 99久久精品6在线播放| 久久99这里只有精品| 午夜国产精品视频在线| GAY2022空少被体育生暴菊| 久久免费看少妇级毛片蜜臀| 小小水蜜桃视频高清在线观看免费| yellow在线观看免费直播| 绿巨人www在线观看| 亚洲一区在线视频观看| 国产偷国产偷亚洲高清SWAG| 日本无码免费久久久精品| 99这里有精品视频视频| 久久这里只有是精品23| 亚洲欧美日本久久综合网站| 国产精品久久vr专区| 日韩亚洲视频一区二区三区| 99久久精品免费国产一区二区三区| 久久6699精品国产人妻| 亚洲国产精品无码AV久久久| 国产XXXXXX农村野外| 日本一区精品久久久久影院| 99久久精品国产一区二区三区| 老湿机一区午夜精品免费福利| 野花社区WWW韩国日本 | sihu国产精品永久免费| 蜜柚视频网在线观看免费| 在线播放毛片| 久久久久综合一本久道| 一个人高清在线观看日本免费 | 夫外出被公侵犯日本电影|