性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

肉嘟嘟的程序媛
認(rèn)證:普通會員
所在專題目錄 查看專題
暴揍單片機(jī)知識點(diǎn) 4 -- 51的手表和鬧鐘 (1)
暴揍單片機(jī)知識點(diǎn) 5 -- 51的手表實(shí)操(2)
暴揍單片機(jī)知識點(diǎn) 6 -- 51的鬧鐘 + 鬧鈴
暴揍單片機(jī)知識點(diǎn) 7 -- 打電話
暴揍單片機(jī)知識點(diǎn) 8 -- 破解密文
暴揍單片機(jī)知識點(diǎn) 9 -- 串口實(shí)操紀(jì)實(shí)
作者動態(tài) 更多
git 情景 4 —— 永世不滅
2021-12-16 22:14
git 情景 3 —— 多重分身
2021-08-06 17:28
git 情景 2 —— 時空穿梭
2021-06-08 01:20
git 情景 1 —— 封存歷史,探索代碼的前世今生
2021-05-13 21:11
git 版本管理 —— 使用場景以及入門
2021-05-11 13:12

暴揍單片機(jī)知識點(diǎn) 8 -- 破解密文

    上節(jié)咱們說到,我們已經(jīng)可以實(shí)現(xiàn)兩個單片機(jī)之前通訊了,這次我們就需要來研究一下,他們之間到底說了些什么,以及他們之間是怎么說的?以下所有內(nèi)容和說明的類比對象,都以串口(Usart 為例子,以串口機(jī)制來講解傳輸?shù)脑?,然后推廣到其他方面的傳輸接口)。
    首先,還記得我們之前說的兩個單片機(jī)之間通訊是通過單片機(jī) A 的 Tx 和單片機(jī) B 的 Rx 連接在一起的,然后進(jìn)行的數(shù)據(jù)傳輸。那么,我們就想一下,這兩個單片機(jī),一個是小明,一個是小紅。他們?nèi)绾瓮ㄟ^一個手電筒來進(jìn)行信息傳遞的。

  1. 首先,我想問問大家,還記得我們單片機(jī)的引腳可以干嘛的嗎?對了,就是可以控制外部輸出,你想想一下,比如小明的 Tx 引腳輸出高電平,那么如果小紅的 Rx 引腳此時處于接受狀態(tài)的話是不是就可以收到一個高電平?當(dāng)然是可以的。那么小明就做到了給小紅傳輸一個高低的信號(也就是所說的 0 或則 1)。如果小紅和小明之間規(guī)定 0 代表關(guān)門, 1代表開門。那么小紅在收到小明的指令后,就會按照事先的規(guī)定按步執(zhí)行了。
  2. 有沒有感覺一根線上只是傳輸了一個 0 或則 1 有點(diǎn)浪費(fèi)?這確實(shí)浪費(fèi)了,那么好了,想象一下,一個字節(jié)是多少位的?1byte = 8bit。一個字節(jié)是 8 位。有沒有什么辦法,直接將一個字節(jié)在這根線上傳輸呢?也就是說,小明這邊傳輸一個 8 bit 數(shù)據(jù),而小紅那邊接受一個 8 bit 數(shù)據(jù)呢?(有人會想:每次傳輸 1 位,傳輸 8 次,這樣全部信息不就傳輸過去了???)大方向是這樣的,但是有所欠缺,下面我就詳細(xì)的給大家講解一下,為什么有缺陷。
  3. 比如,小明在傳輸完成 8 bit 數(shù)據(jù)之后小紅按照指令去把風(fēng)扇打開了,可是小明突然感覺到冷想讓小紅再把風(fēng)扇關(guān)掉??上〖t正在認(rèn)真聽講沒有注意小明又給她傳輸信息。結(jié)果他們就錯過了彼此。小明也隨即凍死在了教室里。針對這個矛盾點(diǎn),我們可以讓小明在要傳輸?shù)臅r候先叫一聲,“小紅,我要開始裝逼了,你快看過來。”這也就是我們常說的:起始標(biāo)志(或則起始碼,起始位。。。)。它在此的作用也就預(yù)示著一段信息傳輸即將開始。有開始當(dāng)然也需要結(jié)束啦,有始有終才是一個合格的男孩子嘛。就這樣,小明在傳輸完成之后也會在末尾增加一個停止位。這樣小紅就知道什么時候需要看著小明那邊來等待小明傳輸?shù)男畔ⅰ?/span>
  4. 其實(shí) 8bit 數(shù)據(jù)包里面還有部分需要注意的地方,比如兩個相鄰的低電平是如何區(qū)分的,比如小明連續(xù)傳送了兩次低電平,小紅如何區(qū)分?這其實(shí)得益于小紅和小明各自的手表(也就是串口規(guī)定的通訊波特率)。比如小明每個發(fā)送的狀態(tài)都持續(xù) 1s 。小紅每次觀察小明發(fā)過來的信息只持續(xù) 1s。超過 1s 就算到了下一個 bit 上。
  5. 以上幾點(diǎn)說明簡化如下:開始位 + 數(shù)據(jù)位 + 停止位 == 1字節(jié)傳輸結(jié)構(gòu)。 

    現(xiàn)在我們實(shí)現(xiàn)了小明給小紅傳輸 8bit 的數(shù)據(jù)。這也就是單片機(jī)之間交流的最小單元(1字節(jié))。那么有人會問,8bit 的數(shù)據(jù)最多可以包含 256 種情況,如果我們傳輸?shù)目赡軤顟B(tài)是 10000 種,那該怎么辦呢?(那我們傳輸兩次就好啦,一次一個字節(jié),兩次就是兩個字節(jié),這樣直接就傳輸了一個 16bit 的信息,那么最多包含 65536 種狀態(tài)了)。為什么不是 16bit 添加開頭和結(jié)尾這種模式傳輸呢?因?yàn)槲覀?51 單片機(jī)是一個 8 位機(jī),每次只能處理 8 bit 的數(shù)據(jù)。所以得分兩次發(fā)送,通過程序邏輯來處理兩次的數(shù)據(jù)。
    你可以任意規(guī)定兩個單片機(jī)傳輸一個字節(jié)代表什么含義,比如傳輸:一個字節(jié)為:0x12代表開風(fēng)扇,0x22代表關(guān)風(fēng)扇。。。等等等等!??!而外國棒子就將1個字節(jié)編碼成了對應(yīng)的字符信息形成了 ascii 碼的“密碼表”。比如 0x30 代表字符“0”,0x31代表字符“1”。這里不了解也沒關(guān)系,我們后面還會繼續(xù)詳細(xì)說明,在此只是點(diǎn)一下。這就好像 apple = 蘋果。它們只是中國人和外國佬對于蘋果這個東西的一種稱呼。ascii 碼0x30 是計算機(jī)對于看到的符號 “0” 的叫法,而 零 是我們的叫法。
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關(guān)注 54
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧