80C51單片機(jī)進(jìn)行串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法詳細(xì)介紹
資料介紹
本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字符用于測(cè)量波特率。
這種方法可以不用設(shè)定難于記憶的開(kāi)關(guān),還可以免去在有關(guān)應(yīng)用中使用多種不同波特率的煩惱。人們可以設(shè)想:一種可靠地實(shí)現(xiàn)自動(dòng)波特檢測(cè)的方法是可能的,它無(wú)須嚴(yán)格限制可被確認(rèn)的字符。問(wèn)題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率的定時(shí)間隔。
顯然,最快捷的方法是檢測(cè)一個(gè)單獨(dú)位時(shí)間(single bit time),以確定接收波特率應(yīng)該是多少??墒牵?a href='http://m.greenbey.cn/tags/rs/' target='_blank' class='arckwlink_none'>RS-232 模式下,許多ASCII 字符并不能測(cè)量出一個(gè)單獨(dú)位時(shí)間。對(duì)于大多數(shù)字符來(lái)說(shuō),只要波特率存在合理波動(dòng)(這里的波特率是指標(biāo)準(zhǔn)波特率),從起始位到最后一位“可見(jiàn)”位的數(shù)據(jù)傳輸周期就會(huì)在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無(wú)奇偶校驗(yàn)的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會(huì)有MSB 設(shè)定,并且,UART總是先發(fā)送數(shù)據(jù)低位(LSB),后發(fā)送數(shù)據(jù)高位(MSB),我們總會(huì)看見(jiàn)數(shù)據(jù)的停止位。在下面的波特率檢測(cè)程序中,先等待串行通訊輸入管腳的起始信號(hào)(下降沿),然后起動(dòng)定時(shí)器T0。在其后的串行數(shù)據(jù)的每一個(gè)上升沿,將定時(shí)器T0 的數(shù)值捕獲并保存。當(dāng)定時(shí)器T0溢出時(shí),其最后一次捕獲的數(shù)值即為從串行數(shù)據(jù)起始位到最后一個(gè)上升沿(我們假設(shè)是停止位)過(guò)程所持續(xù)的時(shí)間。
CmpTable 表格列出了每一波特率的最大測(cè)量時(shí)間。這些數(shù)據(jù)是經(jīng)過(guò)選擇的,所以,4 個(gè)數(shù)據(jù)位時(shí)間(加上起始位時(shí)間)仍可產(chǎn)生正確的波特率。
使用這種方法時(shí),必須遵守一個(gè)假設(shè):這種技術(shù)僅取決于所接收到的一個(gè)字符,接收這個(gè)字符的波特率必須大于最低波特率。本質(zhì)上來(lái)說(shuō),這意味著這個(gè)字符必須來(lái)自正常敲擊鍵盤(pán)時(shí)所產(chǎn)生的字符。
在PC 上,我們不可能快速、連續(xù)地敲擊兩個(gè)字符,以欺騙程序。但是,PC 的功能鍵具有一個(gè)問(wèn)題,因?yàn)樗鼤?huì)連續(xù)發(fā)送兩個(gè)緊挨著的字符,使程序檢測(cè)得到錯(cuò)誤的波特率。在為12MHz時(shí)鐘頻率而設(shè)計(jì)的的例子程序中,其總采樣時(shí)間大約為65mS,大約可以在RS-232 通訊中以300bps 的速度發(fā)送兩個(gè)字符。

假如使用了奇偶校驗(yàn),當(dāng)4 個(gè)MSB 以及所接收字節(jié)的奇偶校驗(yàn)位均這同一值時(shí),就可能會(huì)發(fā)生錯(cuò)誤。這類(lèi)錯(cuò)誤的發(fā)生取決于系統(tǒng)是使用了奇校驗(yàn)或偶校驗(yàn),可能發(fā)生于小寫(xiě)的字母“p”到“z”,還有花括號(hào)({})、垂直條(|)、波紋線(xiàn)(~),以及刪除鍵“delete”。值得注意的是,慣常的提示符按鍵(如,空格鍵、回車(chē)鍵、及返回鍵),是沒(méi)有這些限制的(奇數(shù)還是偶數(shù)的限制?)。
在以此方式運(yùn)行程序時(shí),如第一個(gè)字節(jié)已經(jīng)過(guò)去,但串行口(UART)的波特率未能正確設(shè)置,那將造成用于檢測(cè)波特率的第一個(gè)字符丟失。同樣,如果在正常通訊中檢測(cè)到串行口的通訊“幀”錯(cuò)誤,絕大部分“實(shí)時(shí)”程序必須重復(fù)這一檢測(cè)波特率的過(guò)程。
如需采用另外設(shè)定的晶體振蕩頻率、波特率,請(qǐng)使用下列公式計(jì)算CmpTable 的表項(xiàng)目:
?
- 【Practical】51單片機(jī)串行口與波特率
- 80C51單片機(jī)串行通信講解
- 80C51單片機(jī)的串行口結(jié)構(gòu)和原理的程序免費(fèi)下載
- 51單片機(jī)串口波特率的計(jì)算方法說(shuō)明
- 51單片機(jī)教程之80C51單片機(jī)的串行口介紹及如何進(jìn)行串行總線(xiàn)的擴(kuò)展 27次下載
- 單片機(jī)教程之80C51的中斷系統(tǒng)及定時(shí)和計(jì)數(shù)器的詳細(xì)資料概述 9次下載
- 單片機(jī)有什么功能80C51單片機(jī)的功能單元的資料介紹 7次下載
- 51單片機(jī)教程之80C51單片機(jī)的指令系統(tǒng) 36次下載
- 51單片機(jī)教程之串行接口的詳細(xì)資料概述 10次下載
- 80C51單片機(jī)的硬件結(jié)構(gòu)是怎么樣的? 27次下載
- 設(shè)定80C51串行異步通訊的波特率 82次下載
- 自動(dòng)檢測(cè)80C51串行通訊中的波特率
- 基于VB6.0 的PC單片機(jī)多波特率通信
- 串行通信波特率的一種自動(dòng)檢測(cè)方法
- 自動(dòng)檢測(cè)單片機(jī)80C51串行通訊時(shí)的波特率
- MCU串口自動(dòng)識(shí)別波特率原理分析 2.7k次閱讀
- 如何使用示波器測(cè)量串口波特率 9.6k次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 1.2w次閱讀
- 波特率自動(dòng)檢測(cè)的識(shí)別方法及無(wú)線(xiàn)數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用 5.9k次閱讀
- 如何計(jì)算8051單片機(jī)的波特率 4.5k次閱讀
- 80C51單片機(jī)實(shí)現(xiàn)專(zhuān)用寄存器位尋址的設(shè)計(jì)方案 3.9k次閱讀
- 80C51單片機(jī)與8051單片機(jī)的區(qū)別是什么 9.7k次閱讀
- 51單片機(jī)引腳簡(jiǎn)介 5.6w次閱讀
- 80C51單片機(jī)模擬I2C總線(xiàn)的主機(jī)程序分享 4.1k次閱讀
- 80C51單片機(jī)與8051單片機(jī)的主要差別在哪里 8.4k次閱讀
- Keil C51單片機(jī)變量的使用方法詳細(xì)介紹 5.4k次閱讀
- 51單片機(jī)定時(shí)器模式2與波特率的應(yīng)用 8.4k次閱讀
- 基于80C51單片機(jī)位尋址編程 3.9k次閱讀
- 串行通信的實(shí)現(xiàn)條件和波特率自動(dòng)整定問(wèn)題 4.5k次閱讀
- 解析80C51單片機(jī)中的cpu、存儲(chǔ)器配置以及并行輸入/輸出口 2.8w次閱讀
下載排行
本周
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2反激式開(kāi)關(guān)電源設(shè)計(jì)解析
- 0.89 MB | 2次下載 | 5 積分
- 3簡(jiǎn)易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 4TPS23755數(shù)據(jù)手冊(cè)
- 0.07 MB | 次下載 | 免費(fèi)
- 536伏,10兆赫茲低噪聲雙運(yùn)算放大器COS5532 技術(shù)手冊(cè)
- 0.41 MB | 次下載 | 免費(fèi)
- 6LM5176 55V 寬輸入電壓同步4開(kāi)關(guān)降壓/升壓控制器技術(shù)手冊(cè)
- 2.40 MB | 次下載 | 免費(fèi)
- 7MCU模塊原理圖資料
- 0.37 MB | 次下載 | 1 積分
- 8LoRa1121 FCC&CE認(rèn)證 多頻段LoRa無(wú)線(xiàn)通訊模塊規(guī)格書(shū)
- 997.05 KB | 次下載 | 免費(fèi)
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 7次下載 | 10 積分
- 3SDFM 激光測(cè)距模塊模組手冊(cè)
- 0.54 MB | 7次下載 | 免費(fèi)
- 4直流電路的組成和基本定律
- 1.67 MB | 4次下載 | 免費(fèi)
- 5SW6238V ACCC 三 PD 四口多協(xié)議移動(dòng)電源 SOC規(guī)格書(shū)
- 0.59 MB | 4次下載 | 1 積分
- 6安川A1000變頻器中文版說(shuō)明書(shū)
- 20.16 MB | 3次下載 | 3 積分
- 7IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下載 | 免費(fèi)
- 8PAW3395DM-T6QU:光學(xué)游戲?qū)Ш叫酒謨?cè)
- 1.26 MB | 2次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論