51單片機是對所有兼容Intel 8031指令系統(tǒng)的單片機的統(tǒng)稱。該系列單片機的始祖是Intel的8004單片機,后來隨著Flash rom技術的發(fā)展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用于工業(yè)測控系統(tǒng)之中。很多公司都有51系列的兼容機型推出,今后很長的一段時間內(nèi)將占有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設計中,UART用于主機與輔助設備通信,如汽車音響與外接AP之間的通信,與PC機通信包括與監(jiān)控調(diào)試器和其它器件,如EEPROM通信。
計算機內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過UART整理才能進行異步傳輸,其過程為:CPU先把準備寫入串行設備的數(shù)據(jù)放到UART的寄存器(臨時內(nèi)存塊)中,再通過FIFO(First Input First Output,先入先出隊列)傳送到串行設備,若是沒有FIFO,信息將變得雜亂無章,不可能傳送到Modem。它是用于控制計算機與串行設備的芯片。有一點要注意的是,它提供了RS-232C數(shù)據(jù)終端設備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設備通信了。
作為接口的一部分,UART還提供以下功能:將由計算機內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計算機外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機內(nèi)部并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗。在輸出數(shù)據(jù)流中加入啟停標記,并從接收數(shù)據(jù)流中刪除啟停標記。處理由鍵盤或鼠標發(fā)出的中斷信號(鍵盤和鼠標也是串行設備)。
可以處理計算機與外部串行設備的同步管理問題。有一些比較高檔的UART還提供輸入輸出數(shù)據(jù)的緩沖區(qū),比較新的UART是16550,它可以在計算機需要處理數(shù)據(jù)前在其緩沖區(qū)內(nèi)存儲16字節(jié)數(shù)據(jù),而通常的UART是8250。如果您購買一個內(nèi)置的調(diào)制解調(diào)器,此調(diào)制解調(diào)器內(nèi)部通常就會有16550 UART。接下來我們一起了解一下基于51單片機的UART串口通信。
51串行口結構51單片機的UART串行通信是基于其串行口的可編程硬件結構,只要用正確的程序代碼通過初始化串行口對應寄存器的形式將其串行硬件結構初始化,再編寫符合此串行口通信的程序代碼便能夠?qū)崿F(xiàn)串行通信,其硬件結構決定了編程機制( 當然還要靠51芯片內(nèi)CPU等機制 )。
此結構具有UART( 通用異步收發(fā)器 )的全部功能,能同時進行數(shù)據(jù)的發(fā)送和接收,也可作為同步移位寄存器使用。此結構集成于單片機內(nèi)部。