微機原理與接口實驗 43 串口通信-8251 賴曉錚_第1頁
微機原理與接口實驗 43 串口通信-8251 賴曉錚_第2頁
微機原理與接口實驗 43 串口通信-8251 賴曉錚_第3頁
微機原理與接口實驗 43 串口通信-8251 賴曉錚_第4頁
微機原理與接口實驗 43 串口通信-8251 賴曉錚_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微機原理與接口實驗系列一、IO端口擴展(8255)二、定時器/計數器(8253)三、串口通信(8251)四、模數轉換(ADC0809)五、數模轉換(DAC0832)六、液晶屏顯示(LCD1602)七、中斷控制器(8259)賴曉錚博士華南理工大學laixz@QQ:68046508(三)

串口通信(8251)實驗實驗內容:●構建一個“CPU+8253+8251”的微型計算機系統,其中8253定時器為8251芯片提供工作時鐘。編寫機器語言程序,令CPU通過8251芯片實現與外設(虛擬端口)的串行通信。實驗目的:●了解串行通信的基本原理,比較串行通信與并行通信的異同及各自的優(yōu)勢?!裾莆沾薪涌谛酒?251的編程方法,通過8251芯片實現CPU與外設的串行通信。微程序版“CPU+8251”電路圖初始化過程時鐘信號CLK接手動開關MANUAL,啟動仿真,使能復位信號#RESET=0;手動按鈕MANUAL開關“010”,然后令信號#RESET=1.注:初始化完成后,若時鐘信號CLK繼續(xù)接開關MANUAL,則CPU進入手動模式,手動MANUAL開關,生成時鐘信號CLK,程序單步執(zhí)行;若時鐘信號CLK接信號源AUTO-CLK(主頻10Hz),則CPU進入自動模式,程序自動運行,直到HLT指令的“斷點”處暫停。重啟過程(跳出“斷點”)時鐘信號CLK接開關MANUAL,手動令復位信號端#RESET的狀態(tài)“101”變化,即重啟完成,跳出“斷點”繼續(xù)執(zhí)行

。注:跳出“斷點”后,CPU進入HLT指令的后續(xù)下一條指令的取指周期。8251應用電路圖可編程串行接口芯片8251A結構圖

#CS#RD#WRC/#D功能0010CPU從8251A讀數據0100CPU向8251A寫數據0011CPU向8251A讀狀態(tài)0101CPU向8251A寫控制字1XXX禁止訪問,總線D7~D0接口呈現高阻態(tài)8251A讀/寫控制邏輯8251A同步通信格式8251A異步通信格式8251A芯片

工作流程圖8251A芯片

狀態(tài)字格式8251A芯片

方式控制字格式8251A芯片

操作控制字格式實驗步驟:1)8251A數據發(fā)送測試程序UART_TX.asm存放在實驗4.3項目的子文件夾test里,其功能實現了CPU從8251A芯片的串行通信接口自動發(fā)送一段ASCII碼字符序列“HELLO!”,并且在外接的虛擬串口終端屏幕上顯示。具體代碼如后頁所示。2)編譯、燒寫、自動運行上述UART_TX源程序,在程序自動運行過程中,觀察虛擬串口終端屏幕的顯示。(編譯和燒寫asm文件的方法參見“2.6存儲器實驗:ROM批量導入數據”)

3)自行設計所要發(fā)送的字符序列,修改并自動執(zhí)行UART_TX源程序。在運行過程中觀察虛擬串口終端屏幕的顯示。4)若需要把本實驗改成8251A數據接收測試實驗,請問硬件電路和程序怎么修改?

匯編助記符注釋(M地址:機器指令)JMP08H00H:0001000001H:0000100048H“H”02H:0100100045H“E”03H:010001014CH“L”04H:010011004CH“L”05H:010011004FH“O”06H:0100111121H“!”07H:00100001SETR3,01HR3用來檢測8253狀態(tài)字08H:0011110009H:00000001SETR2,02HR2用以記錄發(fā)送字符地址發(fā)送字符地址初始化[02H]0AH:001110000BH:00000010UART_TX匯編助記符注釋(M地址:機器指令)SETR0,06HR0用作待發(fā)送字符的計數器總共6個數據0CH:001100000DH:00000110SETR1,A6H;8253計數器設置R1用于外設端口讀寫8253地址[1010xxxxH],控制口A1A0=110EH:001101000FH:10100110OUTAR1,PORT0選擇8253的控制寄存器10H:01010110SETR1,16H控制字:選計數器0/只讀寫低8位數據/方式3(方波)/二進制11H:0011010012H:00010110OUTR1,PORT0輸入8253控制字后OUT端應該拉高13H:01010100SETR1,A0H0通道計數寄存器地址打入R18253地址[1010xxxxH]控制口A1A0=0014H:0011010015H:10100000OUTAR1,PORT0選擇8253的0通道計數寄存器16H:01010110UART_TX匯編助記符注釋(M地址:機器指令)SETR1,0DH計數初始值N=13,CLK=125KHZ,計數時長8us*13=104us,輸出9600HZ方波17H:0011010018H:00001101OUTR1,PORT0輸入初始值N,做N個CLK周期循環(huán)方波19H:01010100HLT8253芯片配置結束,觀測示波器界面波形1AH:00000001SETR1,F8H;8251串口設置8251芯片復位8251地址[1111xxxxH]RESET=11BH:001101001CH:11111000OUTAR1,PORT0選擇8251的端口1DH:01010110SETR1,F2H8251地址[1111xxxxH]控制字1EH:001101001FH:11110010OUTAR1,PORT0選擇8251控制字狀態(tài)工作20H:01010110SETR1,4DH方式控制字:1個停止位/無校驗/數據8位/異步x121H:0011010022H:01001101UART_TX匯編助記符注釋(M地址:機器指令)OUTR1,PORT0輸入8251方式控制字23H:01010100SETR1,15H;若循環(huán)發(fā)送下一個字符,則跳轉到此處操作控制字:清出錯標志/接收允許/發(fā)送允許24H:0011010025H:00010101OUTR1,PORT0輸入8251操作控制字26H:01010100SETR1,F0H

8251地址[1111xxxxH]數據27H:0011010028H:11110000OUTAR1,PORT0選擇8251數據狀態(tài)工作29H:01010110POPR1,[R2]把待發(fā)送數據從堆棧彈出,賦值R12AH:10000110INCR2堆棧指針+12BH:00101000OUTR1,PORT0輸入8251數據2CH:01010100SETR1,F2H

8251地址[1111xxxxH]控制字2DH:001101002EH:11110010UART_TX匯編助記符注釋(M地址:機器指令)OUTAR1,PORT0選擇8251控制字狀態(tài)工作2FH:01010110INR1,PORT0讀取8251狀態(tài)字30H:01000100ANDR1,R3檢測狀態(tài)字最后一位,“1”則發(fā)送成功,“0”則失敗31H:11100111JZ30H發(fā)射尚未成功,繼續(xù)讀取8251狀態(tài)字循環(huán)檢測32H:0001100033H:00110000DECR0待發(fā)送字符計數器遞減

“-1”34H:00100001NOP斷點:單個字符發(fā)送完成后觀察串口輸出35H:00000000JZ3AH待發(fā)送字符計數器為0,結束發(fā)送36H:0001100037H:00111010JMP24H狀態(tài)字檢測發(fā)送成功,繼續(xù)發(fā)送下一個字符38H:0001000039H:00100100HLT3AH:00000001UART_TX思考題:●請把本實驗的微程序版“CPU+8253+8251”電路改成硬布線版和流水線版“CPU+8253+8251”電路,并且運行本實驗步驟所示的8251發(fā)送數據測試程序。請問上述程序在硬布線或流水線版本中需要修改么?若需要,請修改并測試。(三)串口通信(8251)實驗附錄:CPU指令集(OP碼表)OP碼(I7I6I5I4)指令助記符OP碼(I7I6I5I4)指令助記符0111IRET1111OR/ORI0110MOV1110AND/ANDI0101OUT/OUTA1101ADD/ADDI0100IN1100SUB/SUBI0011SET1011XOR/XORI0010SOP(INC/DEC/NOT/THR)1010SHT(RLC/LLC/RRC/LRC)0001JMP/JMPR/Jx/JxR1001STO/PUSH0000NOP/HLT1000LAD/POP一、系統指令:匯編語言功能I7I6I5I4I3I2I1I0NOP;無操作(延時4個T)00000/0x/0HLT;停機(斷點)00000/0x/1IRET;中斷返回BP_PCPC;BP_PSWPSW01110/0x/x匯編語言注釋I7I6I5I4I3I2I1I0MOVRA,RB;(RB)RA0110RARBSETRA,IMM;IMMRA0011RAx/xIMM二、寄存器及I/O操作指令:匯編語言功能I7I6I5I4I3I2I1I0INRA,PORTx;(PORTx)RA0100RAPORTxOUTRA,PORTx;(RA)PORTx0101RA0/PORTxOUTARA,PORTx;(RA)PORTx0101RA1/PORTx匯編語言功能I7I6I5I4I3I2I1I0LADRA,[ADDR];[ADDR]RA1000RA0/0ADDRPOPRA,[RB];[RB]RA1000RARBSTORA,[ADDR];(RA)[ADDR]1001RA0/0ADDRPUSHRA,[RB];(RA)[RB]1001RARB三、存儲器及堆棧操作指令:匯編語言功能I7I6I5I4I3I2I1I0JMPADDR;ADDRPC00010/00/0ADDRJMPRRB;(RB)PC00010/0RBJCADDR;IFCF=1,ADDRPC00010/10/0ADDRJCRRB;IFCF=1,(RB)PC00010/1RBJZADDR;IFZF=1,ADDRPC00011/00/0ADDRJZRRB;IFZF=1,(RB)PC00011/0RBJSADDR;IFSF=1,ADDRPC00011/10/0ADDRJSRRB;IFSF=1,(RB)PC00011/1RB四、跳轉系列指令:五、算術邏輯運算指令:匯編語言功能I7I6I5I4I3I2

I1I0RLCRA;(RA)右邏輯移位1010RA0/0LLCRA;(RA)左邏輯移位1010RA1/0RRCRA;(RA)右循環(huán)移位1010RA0/1LRCRA;(RA)左循環(huán)移位1010RA1/1匯編語言功能I7I6I5I4I3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論