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

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

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

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

使用延時法模塊串口

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

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

1.IO口定義程序等

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

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

2.串口發(fā)送函數(shù)

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

圖片

其程序代碼如下:

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

3.串口接收函數(shù)

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

圖片

其程序代碼如下:

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

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

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

    關(guān)注

    34

    文章

    2898

    瀏覽量

    68215
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1557

    瀏覽量

    76852
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62867
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    308

    瀏覽量

    34234
  • IO口
    +關(guān)注

    關(guān)注

    3

    文章

    170

    瀏覽量

    24135
收藏 人收藏

    評論

    相關(guān)推薦

    有關(guān)串口通訊延時問題的討論

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

    串口通信延時發(fā)送問題or調(diào)用延時問題

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

    串口延時問題

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

    Labview串口讀寫的延時問題

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

    單片機(jī)IO 口模擬串口通信低到延時

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

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

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

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

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

    SCI串口模塊

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

    一文深度了解串口WiFi模塊作用,串口WiFi模塊的應(yīng)用場景

    串口WiFi模塊作用,串口WiFi模塊的應(yīng)用場景
    發(fā)表于 03-01 14:25 ?28次下載

    AN1450 - 延時模塊去抖動器

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

    51內(nèi)核軟件延時串口的巧妙方法介紹

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

    你不知道單片機(jī)延時的種種情況

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

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

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

    串口模塊選型要點

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

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

    常看到很多網(wǎng)友在百度知道,天涯問答,搜搜問問等問答平臺上提問什么是無線串口模塊,無線串口模塊怎么用等等這樣的問題。可能是剛接觸這個行業(yè)的人想了解這樣的產(chǎn)品才會產(chǎn)生疑問,思為無線針對這個
    的頭像 發(fā)表于 08-04 14:01 ?5936次閱讀
    什么是無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>?無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>怎么用?
    主站蜘蛛池模板: 中文字幕蜜臀AV熟女人妻| 熟女理发厅| 菠萝视频高清版在线观看| 亚洲精品动漫免费二区| 欧美色图天堂网| 精品一区二区三区免费毛片| 不卡一区二区高清观看视频| 伊人久久亚洲精品一区| 亚洲AV 中文字幕 国产 欧美| 欧美午夜精品一区区电影| 久草国产在线播放| 丰满少妇69激情啪啪无码| 99久久精品国产免费| 亚洲精品在看在线观看| 色欲AV精品一区二区入口| 嫩草影院久久精品| 久久久无码精品亚洲A片猫咪 | 蜜芽丅v新网站在线观看| 国内精品视频在线播放一区 | jzz大全18| 777精品久无码人妻蜜桃| 亚洲一区日韩一区欧美一区a| 污污内射久久一区二区欧美日韩| 亲爱的妈妈6韩国电影免费观看| 免费观看高清黄页网址大全| 久草在线福利视频在线播放| 国产一区亚洲| 国产亚洲精品品视频在线| 国产精品视频免费视频| 国产99RE在线观看69热| 芳草地在线观看免费视频| FREE性丰满HD毛多多| 99精品国产电影| 99精品国产在热久久| 99热精品一区| www免费看.男人的天堂| xx在线观看| 超碰97超碰在线视频哦| 朝鲜美女bbwbbw撒尿| 第一福利在线永久视频| 俄罗斯女人与马Z00Z视频|