串行口通信(二)

前言

上一篇就已經(jīng)介紹串行口通信相關(guān)概念平酿,寄存器。對串行口通信已經(jīng)有一定的了解悦陋。還介紹串行口工作方式1蜈彼,這個方式所用最多,務(wù)必會用“呈唬現(xiàn)在來介紹工作方式0幸逆,2,3暮现。下面來了解一下还绘。

串行口方式0

串行口的工作方式0為移位寄存器I/O方式,可外接移位寄存器送矩,一擴展I/O口蚕甥,也可外接同步I/O設(shè)備。
發(fā)送操作:當(dāng)執(zhí)行一條“SBUF=A”指令時栋荸,啟動發(fā)送操作菇怀,由TXD輸出移位脈沖,由RXD串行SBUF中的數(shù)據(jù)晌块。發(fā)送完8位數(shù)據(jù)后自動置TI=1.請求中斷爱沟。要繼續(xù)發(fā)送時,TI必須有指令清零匆背。
接收操作:REN是串行口接收允許控制位呼伸。REN=0時禁止接收;REN=1時允許接收钝尸。當(dāng)軟件將REN置“1”時括享,即開始從RXD端口以fosc/12波特率輸入數(shù)據(jù),當(dāng)接收到8位數(shù)據(jù)時珍促,將中斷標志RI置“1”铃辖。再次接收數(shù)據(jù)之前,必須用軟件將RI清0猪叙。
這個方式中娇斩,RXD為數(shù)據(jù)輸入輸出引腳仁卷,TXD為時鐘輸出引腳。主要用來拓展IO口犬第。這個方式完成時需要借用外部移位寄存器锦积。74ls164,74ls165兩個移位寄存器與串行口方式0相得益彰歉嗓。下面來介紹這兩個寄存器與方式0的配合丰介。

74ls164移位寄存器

概述

74LS164是8位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù)遥椿,然后并行輸出基矮。數(shù)據(jù)通過兩個輸入端(DSA或DSB)之一串行輸入淆储;任一輸入端可以用作高電平使能端冠场,控制另一輸入端的數(shù)據(jù)輸入。兩個輸入端或者連接在一起本砰,或者把不用的輸入端接高電平碴裙,一定不要懸空。

引腳功能

74LS164

DSA,DSB:數(shù)據(jù)輸入端
CP:時鐘輸入(低電平到高電平邊沿觸發(fā))
MR:中央復(fù)位輸入(低電平有效)
Q0~Q7:數(shù)據(jù)輸出端
GND:地
VCC:正電源

真值表

真值表

H = HIGH(高)電平
h = 先于低-至-高時鐘躍變一個建立時間 (set-up time) 的 HIGH(高)電平
L = LOW(低)電平
l = 先于低-至-高時鐘躍變一個建立時間 (set-up time) 的 LOW(低)電平
q = 小寫字母代表先于低-至-高時鐘躍變一個建立時間的參考輸入 (referenced input) 的狀態(tài)
↑ = 低-至-高時鐘躍變

數(shù)據(jù)通過DSA,DSB這兩個輸入端之一串行輸入点额;任一輸入端可以用作高電平使能端舔株,控制另一輸入端的數(shù)據(jù)輸入。當(dāng)其中任意一個為低電平还棱,則禁止新數(shù)據(jù)輸入载慈;當(dāng)其中有一個為高電平,則另一個就允許輸入數(shù)據(jù)珍手。 因此兩個輸入端或者連接在一起办铡,或者把不用的輸入端接高電平,一定不要懸空琳要。
當(dāng) MR為低電平時寡具,其它所有輸入端都無效,同時所有輸出端均為低電平稚补。為高電平時童叠,允許數(shù)據(jù)一直輸出。

時序圖

時序圖

MR為高電平時课幕,數(shù)據(jù)輸入端一個為高電平厦坛,另一個輸入數(shù)據(jù),時鐘端一直輸入時鐘乍惊。輸出端就移位輸出數(shù)據(jù)杜秸。

使用

接法

輸入端接RXD,時鐘端接TXD,MR隨便接一控制端(P0口要上拉電阻)污桦,輸出端隨意亩歹,根據(jù)自己的需求抒倚。

#include<reg52.h>
sbit MR=P1^7;   //位定義
main()
{
    SCON=0X00;  //串口方式0.禁止接收數(shù)據(jù)
    IE=0X90;    //打開總中斷,串行口中斷
    MR=1;       //一直允許數(shù)據(jù)傳輸呛踊,
    while(1)
    SBUF=0X0F;  //發(fā)送數(shù)據(jù)
}
void interrupt_uart() interrupt 4
{
    TI=0;   //軟件置0
}

上面給出簡單的示范苛骨,看懂程序后就可以自行設(shè)計更復(fù)雜的程序,可以想一下用它驅(qū)動數(shù)碼管顾稀。

74LS165

74LS165芯片,它是 8 位并入串出移位寄存器 (使用移位寄存器芯片可以擴展一個或多個 8 位并行 I/O 口)达罗。

引腳

74LS165

SH/LD(shift/ load 移位 /置位):移位與置位控制端。高電平時表示移位静秆, 低電平時表示置位粮揉。在開始移位之前,需要先從并行輸入端口讀入數(shù)據(jù)抚笔,這時應(yīng)將 SH/LD置 0扶认,并行口的 8 位數(shù)據(jù)將被置入 74LS165 內(nèi)部的 8 個觸發(fā)器,在 SH/LD 為 1時殊橙,并行輸入被封鎖辐宾,移位操作開始。
INH (clock inhibit 時鐘抑制):時鐘禁止端膨蛮。當(dāng) INH 為低電平時叠纹,充許時鐘輸入。
CLK(clock) :時鐘輸入端
D0~D7:并行輸入端
SI(serial input 串行輸入):串行輸入端敞葛, 用于擴展多個 74LS165 的首尾連接端誉察。
SO( serial output):串行輸出端 .
QH:也是串行輸出端,它與 SO 是反相的關(guān)系惹谐,即 QH=SO.
VCC(16 引腳持偏,在 proteus 中被隱藏 ):已經(jīng)默認接 +5V 電源端 .
GND(8 引腳,在 proteus中被隱藏 ):已經(jīng)默認接地

使用

接法

串行口輸出端接RXD,時鐘端接TXD,移位/置位端接控制端豺鼻,時鐘抑制端接地综液,允許時鐘輸出。輸入端自行決定儒飒,剩下兩個端口沒有用到就空接谬莹。

#include<reg52.h>
unsigned int date;
sbit SH=P1^7;   //位定義
main()
{
    SCON=0X10;  //串口方式0.允許接收數(shù)據(jù)
    IE=0X90;    //打開總中斷,串行口中斷

    while(1)
    {
        SH=0;      //置位桩了,將數(shù)據(jù)存進芯片
        SH=1;      // 移位附帽,將芯片數(shù)據(jù)移入rxd
        date=SBUF;  //讀取數(shù)據(jù)
    }
}                                   
void interrupt_uart() interrupt 4
{
    RI=0;   //軟件置0

}

簡單程序,看懂就行井誉,簡單入門蕉扮,需要什么功能自行添加。

總結(jié)

串行口方式0就只有這么多內(nèi)容颗圣,主要使用來拓展IO口喳钟,和外部移位寄存器一起使用屁使。上面的程序簡單易懂,主要是為了能快速看懂奔则,當(dāng)然在實戰(zhàn)中不可能這么簡單蛮寂,但會用了,開發(fā)就不成問題易茬。方式2和3只在波特率上存在區(qū)別酬蹋,它們主要用在單片機的多機通訊,下一篇將詳細介紹抽莱。喜歡的朋友點個關(guān)注范抓,轉(zhuǎn)發(fā)一下吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末食铐,一起剝皮案震驚了整個濱河市匕垫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌璃岳,老刑警劉巖年缎,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悔捶,死亡現(xiàn)場離奇詭異铃慷,居然都是意外死亡,警方通過查閱死者的電腦和手機蜕该,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門犁柜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堂淡,你說我怎么就攤上這事馋缅。” “怎么了绢淀?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵萤悴,是天一觀的道長。 經(jīng)常有香客問我皆的,道長覆履,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任费薄,我火速辦了婚禮硝全,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘楞抡。我一直安慰自己伟众,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布召廷。 她就那樣靜靜地躺著凳厢,像睡著了一般账胧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上先紫,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天找爱,我揣著相機與錄音,去河邊找鬼泡孩。 笑死车摄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仑鸥。 我是一名探鬼主播吮播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眼俊!你這毒婦竟也來了意狠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤疮胖,失蹤者是張志新(化名)和其女友劉穎环戈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澎灸,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡院塞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了性昭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦止。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖糜颠,靈堂內(nèi)的尸體忽然破棺而出汹族,到底是詐尸還是另有隱情,我是刑警寧澤其兴,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布顶瞒,位于F島的核電站,受9級特大地震影響元旬,放射性物質(zhì)發(fā)生泄漏榴徐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一法绵、第九天 我趴在偏房一處隱蔽的房頂上張望箕速。 院中可真熱鬧,春花似錦朋譬、人聲如沸盐茎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽字柠。三九已至探越,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窑业,已是汗流浹背钦幔。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留常柄,地道東北人鲤氢。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像西潘,于是被迫代替她去往敵國和親卷玉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容