1.串行通信原理
單片機(jī)總共32個(gè)I/O口,若直接控制LED數(shù)碼管,最多只能控制4位。利用單片機(jī)同步串行通信功能和串并轉(zhuǎn)換器的串人串出功能,只要用單片機(jī)2個(gè)口線,就可以控制多位LED數(shù)碼管。這里結(jié)合多位LED數(shù)碼管的控制介紹單片機(jī)同步串行輸出通信。
同步串行輸出通信用兩根導(dǎo)線,其中TXD(P3.1)相當(dāng)于“寫”信號(hào)線,叫做同步時(shí)鐘線,RXD(P3.0)是數(shù)據(jù)線,見下圖。
2.串入并出寄存器
串人并出寄存器型號(hào)很多,像74HC164、74HCT164、74LS164和CD4014都是串入并出寄存器。
74LS164如右圖所示,其引腳功能如下:
①,②腳:A、B串行輸入數(shù)據(jù)DATA1,DATA2,通常合在一起作為串行數(shù)據(jù)輸入DATA使用;③~⑥、(10)~(13)腳:并行輸出,其中(13)腳兼作串行輸出;⑧腳:CLK,CLOCk,同步時(shí)鐘脈沖,輸入,正跳變有效;⑨腳:CLR,Clear,移位寄存器清零信號(hào),輸入,低電平有效;⑦腳:CND,電源地;(14)腳:UCC,+5v電源輸入。
74××164芯片內(nèi)部主要功能部件是正跳變觸發(fā)、低電平清零的8位移位寄存器,其中正跳變觸發(fā)正好符合51單片機(jī)要求。74××164多個(gè)級(jí)聯(lián)對(duì),13腳QH即是8位并行輸出的一位,又兼作串行輸出,即前一片芯片的串行輸出信號(hào)13腳接后一片芯片的串行輸入信號(hào)l、2腳,見下圖。
74××164芯片的邏輯功能:8腳CLK端子上的電壓出現(xiàn)一個(gè)正跳變,內(nèi)部8位移位寄存器就按照的順序移動(dòng)一位。也就是說,把串行輸入數(shù)據(jù)S鎖存在QA中,原有的QA~G依次移動(dòng)一位,而QH被刷新。74××164與LED數(shù)碼管的連接見下表。
3.單片機(jī)與串入并出寄存器的連接
74××164芯片與51單片機(jī)的連接見下圖,單片機(jī)要一位一位移送,編程序很費(fèi)力。其實(shí)不然,SBUF是51單片機(jī)的一個(gè)負(fù)責(zé)串行通信的特殊功能寄存器。51單片機(jī)執(zhí)行一條串行發(fā)送指令MOVSBUF,A后,不僅把數(shù)據(jù)從源傳送到SBUF,而且自動(dòng)啟動(dòng)一次串行發(fā)送,在以下的8個(gè)機(jī)器周期內(nèi)依次將SBUF中的8位數(shù)據(jù)通過RXD線輸出。
下圖中單片機(jī)直接控制6個(gè)位數(shù)碼管,單片機(jī)串行輸出接到最低位74××164芯片串行輸入。連接規(guī)律是,較低位串行輸出接到較高位串行輸入。這樣一種硬件設(shè)計(jì),有利于軟件設(shè)計(jì)時(shí)不顯示高位無用的O,使顯示器簡(jiǎn)潔利落。
51單片機(jī)的串行發(fā)送指令MOVSBUF,Source要執(zhí)行兩個(gè)任務(wù),其一是把數(shù)據(jù)源Source送到發(fā)送緩沖器SBUF中;其二是啟動(dòng)一次串行輸出,將發(fā)送緩沖器中的一個(gè)字節(jié)8位二進(jìn)制數(shù)據(jù)按照從低位到高位的順序,伴隨單片機(jī)TXD線的同步脈沖依次送到串行數(shù)據(jù)線RXD上,并且由同步脈沖上升沿依次將各位二進(jìn)制數(shù)據(jù)鎖存到所連接的串入并出緩沖器中。
根據(jù)下圖電路制作的6位LED電子鐘實(shí)物如右圖所示(略)。6片164芯片并排安裝,整個(gè)電路板尺寸為73×73mm2.相當(dāng)緊湊。
雖然串行發(fā)送指令MOVSBUF,Source中的字節(jié)傳送任務(wù)只要2個(gè)機(jī)器周期就完成了,但是從SBUF朝外的串行發(fā)送卻至少需要8個(gè)機(jī)器周期。串行發(fā)送指令執(zhí)行后8個(gè)機(jī)器周期內(nèi),若繼續(xù)往SBUF中寫人數(shù)據(jù),則將打亂正在進(jìn)行的串行發(fā)送。因此,串行發(fā)送指令執(zhí)行后8個(gè)機(jī)器周期內(nèi),不允許再次向SBUF中寫入任何數(shù)據(jù)。連續(xù)送數(shù)的方法有三種:查詢法、延遲法和中斷法。常用查詢法和延遲法。
查詢法五個(gè)字節(jié)數(shù)據(jù)的串行輸出程序如下:
將上述程序中兩次串行發(fā)送之間的JNB指令和CLR指令換成總共消耗8個(gè)機(jī)器周期的指令,如8條空操作指令NOP,就可把查詢法串行發(fā)送程序改成為延遲法串行發(fā)送程序。
下圖介紹的串行輸出電路實(shí)際不局限于LED數(shù)碼管控制,也可以控制諸如固態(tài)繼電器之類的負(fù)載,也可以通過晶體管開關(guān)控制普通繼電器,完成自動(dòng)控制。
-
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44655瀏覽量
640301 -
寄存器
+關(guān)注
關(guān)注
31文章
5388瀏覽量
121646
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
51單片機(jī)電子鐘電路圖和程序
單片機(jī)電子鐘源程序及電路圖資料

單片機(jī)電子鐘實(shí)訓(xùn)報(bào)告
基于單片機(jī)的電子鐘設(shè)計(jì)
使用單片機(jī)定時(shí)器設(shè)計(jì)的精確電子鐘標(biāo)準(zhǔn)電路圖和源代碼資料免費(fèi)下載

使用51單片機(jī)進(jìn)行電子鐘設(shè)計(jì)的電路圖和程序免費(fèi)下載

評(píng)論