8051's UART mode0 output 通訊二甲 B09622042 洪紹凱
大綱 Using 8051's UART mode0 and 74164 or isp2032 make serial to parallel convert, then show on the 8 LEDs.
UART 8051內部提供的串列傳輸的介面,是一種”非同步式資料傳輸”(Universal Asynchronous Receiver Transimitter,簡稱”UART”)
UART 傳輸方式 串列傳輸是透過一條傳輸線將資料傳送出去,傳送的方法是,由傳送端每隔一段時間將一個Bit的資料傳送出去,直到這筆8Bit資料傳送完畢為止,如此就完成了一筆資料的傳送工作。接收端也必須以一樣的速度,用分時的方式一個Bit接一個Bit的讀入。
UART 傳輸同步問題 UART的同步方式,是在8個資料位元的前面加上一個同步用的起始位元(Start Bit),以及在8資料位元後面再加上另一個同步用的停止位元(Stop Bit) 規定起始位元為”0”,停止位元為”1” 效率雖然不高,但可大大提升可靠性
傳輸速率 串列傳輸是以分時的方式,將一個位元的資料狀態呈現在傳輸線上面,若是位元在傳輸線上的時間越短,則代表其傳輸速率越快,一般是以每秒傳多少位元的方法來判斷傳輸速率,單位bit/sec 單位稱之為元率或者鮑率,這是很重要的通訊參數,控制傳送、接收的速度
特殊控制暫存器SCON SM0 SM1 模式 1 2 3 移位暫存器控制I/O,鮑率固定為工作頻率/12 移位暫存器控制I/O,鮑率固定為工作頻率/12 1 8 位元串列資料傳送,鮑率由計時器1 來控制 2 9 位元串列資料傳送,可分為兩種,工作頻率/32 或是工作頻率/64 3 9 位元串列資料傳送,鮑率由計時器1 來控制
SM2 在串列傳輸2 或3 模式時,做多處理機控制功能用 REN 串列界面接收位元,當REN=1 時表示接收致能(Enable) TB8 在模式2 或3 時,所送出之第九資料位元,可以由軟體指令來做控制設 定或消除 RB8 在模式2 或3 時,所送出之第九資料位元,存放在此位元中 TI 串列傳輸資料發送中斷產生旗號,當工作於模式0 時,送出8 個資料位 元後TI=1.而在其他工作模式,在送出停止位元時,TI 也會被設為1,此 位元必須由軟體來清除,所以在傳送完資料後,要下達"CLR TI"指令來 清除TI 旗號 RI 串列傳輸資料發送中斷產生旗號,當工作於模式0 時,當收到第8 個串 列輸入資料位元後,RI 會設為1,在其他工作模式時,收到停止位元的一 半時,硬體會自動將此位元設為1,此位元必須以軟體指令"CLR RI"來
RS232 介面 8051內含的一組全雙功串列傳輸介面,可以同時接收或傳送外部送來的資料,但動作信號為TTL準位0V~5V,與標準的RS232介面不相容,故必須加上準位轉換IC(HIN232),才可以與RS232介面直接相連
程式 Mode0 輸出 ORG 0 ;程式從0位址開始 START: MOV SCON, #0H 設定mode 0 MOV P1, #FFH 將P1設為輸入 LOOP: MOV A, P1 讀指撥開關 MOV SBUF, A ACC的內容移到SBUF JNB TI, $ TI串列輸入中斷 CLR TI 清除TI旗標 JMP LOOP 至LOOP成一個迴圈 END
參考資料 同學請教