UART串行擴(kuò)展接口應(yīng)用實(shí)例
UART(Universal Asynchronous Receiver/Transmitter):通用異步收發(fā)器,既能同步又能異步通信的硬件電路稱(chēng)為UART。UART是用于控制計(jì)算機(jī)與串行設(shè)備的芯片,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其他使用RS-232C接口的串行設(shè)備通信了。
80C51的串行通信口是一個(gè)功能強(qiáng)大的通信口,而且是相當(dāng)好用的通信口。用于顯示驅(qū)動(dòng)電路非常合適,下面我們就根據(jù)這種需要用兩個(gè)串行通信口線(xiàn)加上兩根普通I/O口線(xiàn),設(shè)計(jì)一個(gè)4位 LED顯示電路。當(dāng)然只要再加上兩根 I/O口線(xiàn)即可輕易實(shí)現(xiàn)8位LED顯示電路。
例1:如圖1所示的電原理圖,利用74LS164串行輸入并行輸出芯片作一個(gè)簡(jiǎn)單的電子鐘,要求四個(gè)數(shù)碼管顯示時(shí)鐘;其中LED1顯示小時(shí)的十位,LED2顯示小時(shí)的個(gè)位,LED3顯示分鐘的十位,LED4顯示分鐘的個(gè)位。
圖1 串行動(dòng)態(tài)LED掃描電路
解:采用單片機(jī)的串行口輸出字形碼,用74LS164和74LS139作為擴(kuò)展芯片。
74LS164的功能是將80C51串行通信口輸出的串行數(shù)據(jù)譯碼并在其并口線(xiàn)上輸出,從而驅(qū)動(dòng)LED 數(shù)碼管。74LS139是一個(gè)雙2-4線(xiàn)譯碼器,它將單片機(jī)輸出的地址信號(hào)譯碼后動(dòng)態(tài)驅(qū)動(dòng)相應(yīng)的LED。因74LS139電流驅(qū)動(dòng)能力較小,故用末級(jí)驅(qū)動(dòng)三極管9013作為地址驅(qū)動(dòng)。將4只LED的字段位都連在一起,它們的公共端則由74LS139分時(shí)選通,這樣任何一個(gè)時(shí)刻,都只有一位LED在點(diǎn)亮,也即動(dòng)態(tài)掃描顯示方式,其優(yōu)點(diǎn)使用串行口進(jìn)行LED通信程序編寫(xiě)相當(dāng)簡(jiǎn)單,用戶(hù)只需將需顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行發(fā)送完畢標(biāo)志位即可。
參考程序如下:
上面是一個(gè)簡(jiǎn)單的動(dòng)態(tài)掃描程序,如果再利用上第6章的定時(shí)器就可做成一個(gè)完整的電子鐘,四個(gè)數(shù)碼管顯示為00:00這種形式。在本例中冒號(hào)就不顯示出來(lái)了,分別用20H、21H 、22H、23H地址在放時(shí)間的時(shí)鐘的十位、時(shí)鐘的個(gè)位、分鐘的十位、分鐘的個(gè)位。用中斷方式做一個(gè)不帶時(shí)鐘芯片的電子鐘,請(qǐng)讀者自己完成。
編輯:admin 最后修改時(shí)間:2018-05-08