女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

使用延時(shí)法模塊串口

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

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

1.IO口定義程序等

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

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

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

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

圖片

其程序代碼如下:

#define  Check_bit_switch_on_off    0//不使用校驗(yàn)位
uchar Check_bit;
//往串口寫一個(gè)字節(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ā)送校驗(yàn)位(無) 
    #if Check_bit_switch_on_off
    {
      TXD1=(bit)(Check_bit); //發(fā)送校驗(yàn)位
      Delay(36); 
    }
    #else
    Check_bit = Check_bit;
    #endif
    TXD1=(bit)1; //發(fā)送結(jié)束 位 
    Delay(46); 
}

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

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

圖片

其程序代碼如下:

//從串口讀一個(gè)字節(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個(gè)指令周期 
    } 
    //接收校驗(yàn)位
    #if Check_bit_switch_on_off
    (Check_bit)=TXD; //接收校驗(yàn)位
    Delay(35); 
    #endif
    while(--temp) //在指定的 
    //時(shí)間內(nèi)搜尋結(jié)束位。
    { 
      Delay(1); 
      if(RXD1)
      break; //收到結(jié)束位便退出 
    } 
    return Output; 
}

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

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

    關(guān)注

    34

    文章

    3197

    瀏覽量

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

    關(guān)注

    14

    文章

    1582

    瀏覽量

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

    關(guān)注

    3

    文章

    4369

    瀏覽量

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

    關(guān)注

    2

    文章

    310

    瀏覽量

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

    關(guān)注

    3

    文章

    170

    瀏覽量

    24737
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

    串口延時(shí)問題

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

    Labview串口讀寫的延時(shí)問題

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

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

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

    為什么4432無線串口模塊有很大延時(shí)

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

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

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

    HL配套C實(shí)驗(yàn)例程100例之59秒計(jì)時(shí)器軟件延時(shí)

    HL配套C實(shí)驗(yàn)例程100例之59秒計(jì)時(shí)器軟件延時(shí),配合開發(fā)板學(xué)習(xí)效果更好。
    發(fā)表于 04-11 16:09 ?6次下載

    SCI串口模塊

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

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

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

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

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

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

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

    無線串口模塊的概念與選型要點(diǎn)

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

    串口模塊選型要點(diǎn)

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

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

    常看到很多網(wǎng)友在百度知道,天涯問答,搜搜問問等問答平臺(tái)上提問什么是無線串口模塊,無線串口模塊怎么用等等這樣的問題。可能是剛接觸這個(gè)行業(yè)的人想了解這樣的產(chǎn)品才會(huì)產(chǎn)生疑問,思為無線針對(duì)這個(gè)
    的頭像 發(fā)表于 08-04 14:01 ?6310次閱讀
    什么是無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>?無線<b class='flag-5'>串口</b><b class='flag-5'>模塊</b>怎么用?