D/A 轉(zhuǎn)換器的輸入為數(shù)字量,經(jīng)轉(zhuǎn)換后輸出為模擬量。有關(guān) D/A 轉(zhuǎn)換器的技術(shù)性能指標(biāo)很多,如絕對(duì)精度、相對(duì)精度、線性度、輸出電壓范圍、輸入數(shù)字代碼種類等等。本節(jié)僅對(duì)幾個(gè)與接口有關(guān)的指標(biāo)作一簡(jiǎn)介。
由于單片機(jī)只能處理數(shù)字量,因而應(yīng)用系統(tǒng)中凡遇到有模擬量的地方,就要進(jìn)行模擬量向數(shù)字量或數(shù)字量向模擬量的轉(zhuǎn)換,這就需要解決單片機(jī)與 A/D 和 D/A 的接口問(wèn)題。
在單片機(jī)應(yīng)用系統(tǒng)中,常常需要人機(jī)對(duì)話,因而功能開關(guān)、撥碼器、鍵盤、顯示器和打印機(jī)等輸入/輸出設(shè)備就必不可少,本文將介紹一些外部設(shè)備及它們與單片機(jī)的接口技術(shù)。
MCS 51 系列單片機(jī)具有 64KB 的程序存儲(chǔ)空間,其中 8051 、8071 片內(nèi)有 4KB 的程序存儲(chǔ)器,8031 片內(nèi)無(wú)程序存儲(chǔ)器 。當(dāng)采用 8051 、8071 型單片機(jī)而程序超過(guò) 4KB,或采用 8031 單片機(jī)時(shí),就需對(duì)程序存儲(chǔ)器進(jìn)行外部擴(kuò)展。
其一,是把系統(tǒng)所需的外設(shè)和單片機(jī)連接起來(lái),使單片機(jī)系統(tǒng)能與外界進(jìn)行信息交換。如通過(guò)鍵盤、A/D 轉(zhuǎn)換器等外部設(shè)備向單片機(jī)送入數(shù)據(jù)、命令等有關(guān)信息,去控制單片機(jī)運(yùn)行;通過(guò)顯示器、發(fā)光二極管、打印機(jī)等設(shè)備把單片機(jī)處理的結(jié)果送出來(lái),向人們提供各種信息或?qū)ν饨缭O(shè)備提供控制信號(hào),這項(xiàng)任務(wù)實(shí)際上就是單片機(jī)接口設(shè)計(jì)。
模式 0 又分為模式 0 輸出和模式 0 輸入兩種工作狀態(tài)。但應(yīng)注意:在這種模式下,不管輸出還是輸入,通信數(shù)據(jù)總是從 P3.0(RXD) 管腳輸出或輸入,而 P3.1(TXD) 管腳總是用于輸出移位脈沖,每一個(gè)移位脈沖將使 RXD 端輸出或者輸入一位二進(jìn)制碼。在 TXD 端 的移位脈沖即為模式 0 的波特率,其值固定為晶振頻率 fOSC 的 1/12 ,即每個(gè)機(jī)器周期移動(dòng)一位數(shù)據(jù)。
CPU 與外部設(shè)備交換數(shù)據(jù)有并行和串行通信兩種方式。并行通信是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的方式。其特點(diǎn)是傳送速度快、效率高,顯然并行傳送的數(shù)據(jù)有多少位,就需要有多少根傳輸線。當(dāng)傳送距離較遠(yuǎn)時(shí),位數(shù)較多就會(huì)導(dǎo)致通信線路成本的大幅度增加,因此它僅適合于短距離傳送。串行通信是指數(shù)據(jù)的各位按順序一位一位地傳送的通信方式。其特點(diǎn)是只要一對(duì)傳輸線就可實(shí)現(xiàn)通信,對(duì)傳輸?shù)臄?shù)據(jù)較多、距離很遠(yuǎn) 時(shí) ,它可以大量節(jié)約系統(tǒng)的硬件投資。因此,在遠(yuǎn)距離的數(shù)據(jù)通信系統(tǒng)中一般采用串行通信方式。
TMOD 的地址是 89H ,它不能位尋址 ,它里面的內(nèi)容被稱為方式字,設(shè)置時(shí)一次寫入,其各位的定義如圖 6.2 所示。高 4 位用于定時(shí)器 T1 ,低 4 位用于定時(shí)器 T0 。
單片機(jī)定時(shí)器其實(shí)跟我們平時(shí)常說(shuō)的計(jì)數(shù)器,是同一個(gè)電子元件,只不過(guò)計(jì)數(shù)器記錄的是單片機(jī)外部情況,所接收的也是外部脈沖,而定時(shí)器則是由單片機(jī)自身提供的一個(gè)非常穩(wěn)定的計(jì)數(shù)器,這個(gè)穩(wěn)定的計(jì)數(shù)器就是單片機(jī)上連接的晶振部件。
MCS 51 單片機(jī)有 5 個(gè)(8052 有 6 個(gè)) 中斷源,為了使每個(gè)中斷源都能獨(dú)立地被允許 或禁止 ,以便用戶能靈活使用,它在每個(gè)中斷信號(hào)的通道中設(shè)置了一個(gè)中斷屏蔽觸發(fā)器。只有該觸發(fā)器無(wú)效,它所對(duì)應(yīng)的中斷請(qǐng)求信號(hào)才能進(jìn)入 CPU ,即此類型中斷開放。否則,即使其對(duì)應(yīng)的中斷標(biāo)志位置 1 ,CPU 也不會(huì)響應(yīng)中斷 ,即此類型中斷被屏蔽了。同時(shí) CPU 內(nèi)還設(shè)置了一個(gè)中斷允許觸發(fā)器,它控制 CPU 能否響應(yīng)中斷。
中斷是計(jì)算機(jī)中一個(gè)很重要的概念,中斷技術(shù)的引入使計(jì)算機(jī)的發(fā)展和應(yīng)用大大地推進(jìn)了一步。因此,中斷功能的強(qiáng)弱已成為衡量一臺(tái)計(jì)算機(jī)功能完善與否的重要指標(biāo)之一。
在單片機(jī)系統(tǒng)設(shè)計(jì)中,程序設(shè)計(jì)是重要的一環(huán),它的質(zhì)量直接影響到整個(gè)系統(tǒng)的功能。用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)的過(guò)程和用高級(jí)語(yǔ)言設(shè)計(jì)程序有相似之處,其設(shè)計(jì)過(guò)程大致可以分為以下幾個(gè)步驟:
匯編語(yǔ)言(Assembly Language)是任何一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱為符號(hào)語(yǔ)言。在匯編語(yǔ)言中,用助記符代替機(jī)器指令的操作碼,用地址符號(hào)或標(biāo)號(hào)代替指令或操作數(shù)的地址。在不同的設(shè)備中,匯編語(yǔ)言對(duì)應(yīng)著不同的機(jī)器語(yǔ)言指令集,通過(guò)匯編過(guò)程轉(zhuǎn)換成機(jī)器指令。特定的匯編語(yǔ)言和特定的機(jī)器語(yǔ)言指令集是一一對(duì)應(yīng)的,不同平臺(tái)之間不可直接移植。
所謂尋址方式,就是尋找操作數(shù)地址的方式,在用匯編語(yǔ)言編程時(shí),數(shù)據(jù)的存放 、傳送、運(yùn)算都要通過(guò)指令來(lái)完成。編程者必須自始至終都要十分清楚操作數(shù)的位置 ,以及如何將它們傳送到適當(dāng)?shù)募拇嫫魅⑴c運(yùn)算。每一種計(jì)算機(jī)都具有多種尋址方式 。尋址方式的多少是反映指令系統(tǒng)優(yōu)劣的主要指標(biāo)之一。尋址方式是匯編語(yǔ)言程序設(shè)計(jì)最基本的內(nèi)容之一,必須要十分熟悉。
時(shí)序就是 CPU 總線信號(hào)在時(shí)間上的順序關(guān)系。CPU 的控制器實(shí)質(zhì)上是一個(gè)復(fù)雜的同 步時(shí)序電路,所有工作都是在時(shí)鐘信號(hào)控制下進(jìn)行的。每執(zhí)行一條指令,CPU 的控制器都要發(fā)出一系列特定的控制信號(hào),這些控制信號(hào)在時(shí)間上的相互關(guān)系就是 CPU 的時(shí)序。