8251可編程串行口與pc機通訊實驗_第1頁
8251可編程串行口與pc機通訊實驗_第2頁
8251可編程串行口與pc機通訊實驗_第3頁
8251可編程串行口與pc機通訊實驗_第4頁
8251可編程串行口與pc機通訊實驗_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

...wd......wd......wd...安徽師范大學(xué)數(shù)計學(xué)院實驗報告專業(yè)名稱11計科課程微機原理實驗名稱串行通信實驗姓名學(xué)號1107040128251可編程串行口與PC機通訊實驗一、實驗?zāi)康?1)掌握8251芯片的構(gòu)造和編程,掌握微機通訊的編制。(2)學(xué)習(xí)有關(guān)串行通訊的知識。(3)學(xué)習(xí)PC機串口的操作方法。二、實驗說明1、8251信號線8251是CPU與外設(shè)或Mode之間的接口芯片,所以它的信號線分為兩組:一組是用于與CPU接口的信號線,另一組用于與外設(shè)或Mode接口?!?〕與CPU相連的信號線:除了雙向三態(tài)數(shù)據(jù)總線〔D7~D0〕、讀〔RD〕、寫〔WR〕、片選〔CS〕之外,還有:RESET:復(fù)位。通常與系統(tǒng)復(fù)位相連。CLK:時鐘。由外部時鐘發(fā)生器提供。C/D:控制/數(shù)據(jù)引腳。TxRDY:發(fā)送器準備好,高電平有效。TxE:發(fā)送器空,高電平有效。RxRDY:接收器準備好,高電平有效。SYNDET/BRKDET:同步/中止檢測,雙功能引腳?!?〕與外設(shè)或Mode相連的信號線:DTR:數(shù)據(jù)終端準備好,輸出,低電平有效。DSR:數(shù)據(jù)裝置準備好,輸入,低電平有效。RTS:請求發(fā)送,輸出,低電平有效。CTS:準許傳送,輸入,低電平有效。TxD:發(fā)送數(shù)據(jù)線。RxD:接收數(shù)據(jù)線。TxC:發(fā)送時鐘,控制發(fā)送數(shù)據(jù)的速率。RxC:接收時鐘,控制接收數(shù)據(jù)的速率。2、8251的初始化編程和狀態(tài)字8251是一個可編程的多功能串行通信接口芯片,在使用前必須對它進展初始化編程。初始化編程包括CPU寫方式控制字和操作命令字到8251同一控制口,在初始化編程時必須按一定的順序。如下面的流程圖:三、實驗原理圖四、實驗內(nèi)容本實驗由實驗器發(fā)送一串字符0~9,PC機串口接收并在超級終端上顯示。五、實驗步驟與PC機通訊應(yīng)用實驗〔1〕實驗連線:a.用串口線把實驗機8251模塊的RS232通訊口與PC機相連,把串口旁邊的短路塊SW1短路在2-2/3-3上,SW2短路在RS232上。b.把8251實驗區(qū)TxD、RxD分別與RS232實驗區(qū)中的TxD、RxD相連。c.8254定時器電路的CLK0和8251的CLOCK連到信號源CLK1〔短路在1.5MHz〕。d.8254定時器電路的OUT0接8251的TxC和RxC,8254定時器電路的GATE接+5Ve.8251選通線CS與ISA總線接口模塊的0000H相連,8254選通線CS與ISA總線接口模塊的0020H相連。f.8251及8254的WR連到8086主模塊的,8251及格8254的RD連8086主模塊的RD。g.8251及8254模塊的數(shù)據(jù)〔D0~D7〕、地址線〔A0~A7〕分別連到主模塊的數(shù)據(jù)〔AD0~AD7〕、地址線〔A0~A7〕?!?〕PC機設(shè)置:進入WINDOWS附件——>通訊——>超級終端。進入終端后在“連接時使用〞下拉框選擇你所使用的COM口,波特率設(shè)置為4800,數(shù)據(jù)位8位,奇偶校驗位無,停頓位1位,流量控制無。等待接收數(shù)據(jù)。編譯、運行程序〔8251xp.asm〕,運行程序前先按硬件復(fù)位,正常運行后應(yīng)在PC機屏幕上循環(huán)顯示“QingdongMicrocomputerInstitute〞實驗代碼MY_STACK SEGMENT PARA'STACK' DB 100DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA'DATA'IO_9054base_addressDB4DUP(0) ;PCI卡9054芯片I/O基地址暫存空間IO_base_addressDB4DUP(0) pcicardnotfind DB0DH,0AH,'pcicardnotfindoraddress/interrupterror!!!',0DH,0AH,'$'GOOD DB0DH,0AH,'TheProgramisExecuting!',0DH,0AH,'$'D8251_0 DW 0000H ;DLAB=0:接收數(shù)據(jù)存放器,發(fā)送保持存放器;DLAB=1:波特率除數(shù)存放器低位D8251_1 DW 0001H ;DLAB=0:中斷允許存放器;DLAB=1:波特率除數(shù)存放器高位P8254_T0 DW 0020H P8254_MODE DW 0023HPC16550_0EQU 03F8H ;DLAB=0:接收數(shù)據(jù)存放器,發(fā)送保持存放器;DLAB=1:波特率除數(shù)存放器低位 PC16550_1EQU 03F9H ;DLAB=0:中斷允許存放器;DLAB=1:波特率除數(shù)存放器高位PC16550_3EQU 03FBH ;線路控制存放器LCR PC16550_4EQU 03FCH ;MODEM控制存放器MCRPC16550_5EQU 03FAH ;線路狀態(tài)存放器LSRDELAY_SET EQU 01FFH ;延時參數(shù)MES DB' PCICARDNOTFOUND! $'MES0 DB'***********************PCICONFIGINFO*****************************',13,10,'$'MES1 DB'PCIBIOSNOTFOUND!',10,13,'$'MES2 DB' PCICONFIGREADERROR! $'DIS1 DB 'PCIADDRESS0$';DIS5 DB 'BIOSNOTSUPPER!$'DIS6 DB 'READPCIBOARDFAIL!$';-------PCIConfigurationSpaceRegisters-------------------------------BN DB ? ;BUSNUMBERDN_FN DB ? ;DeviceNumberandFunctionNumberMY_DATA ENDsMY_CODE SEGMENTPARA'CODE'MY_PROC PROC FAR ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK.386 ;386模式編譯 START: MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;查找PCI卡資源并顯示 MOV CX,wordptrIO_base_address AND CX,0FFFCH ADD D8251_0,CX ADD D8251_1,CX ADD P8254_T0,CX ADD P8254_MODE,CX MOV DX,PC16550_3 ;DLAB為1允許訪問波特率存放器 MOV AL,82H OUT DX,AL MOV DX,PC16550_0 ;波特率除數(shù)存放器低位 MOV AL,18H OUT DX,AL MOV DX,PC16550_1 ;波特率除數(shù)存放器高位 MOV AL,00H OUT DX,AL MOV DX,PC16550_3 ;DLAB為0 MOV AL,03H ;附加奇偶標志位選擇,無校驗,1位停頓位,8位字符03 OUT DX,AL MOV DX,PC16550_4 ;RTS、DTR置0:請求發(fā)送、數(shù)據(jù)終端就緒 MOV AL,03H OUT DX,AL MOV DX,PC16550_1 ;中斷允許存放器IER,屏蔽中斷 MOV AL,00H OUT DX,AL MOV DX,P8254_MODE MOV AL,36H ;計時器0,先低后高,方式3,二進制計數(shù) OUT DX,AL MOV DX,P8254_T0 MOV AL,13H ;計數(shù)初值 晶振6MHz波特率4800BIT,分頻頻率為(6000/76.8=4EH) OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,D8251_1 MOV AL,4EH ;異步1個停頓位,無奇偶校驗,8位字符,波特率為=發(fā)送(接收)時鐘/16 OUT DX,AL MOV AL,37H ;不搜索,不內(nèi)復(fù)位,請求發(fā)送,錯誤標志復(fù)位,正常通信,允許接收,數(shù)據(jù)準備好,允許發(fā)送 OUT DX,ALAGAIN: MOV AH,30H ;發(fā)送初值NEXT: MOV DX,D8251_1NEXT1: IN AL,DX RCRAL,1 ;檢測TXRDY是否為0,即判斷發(fā)送是否準備好 JNC NEXT1 CALLDELAY MOV DX,D8251_0 MOV AL,AH OUT DX,AL INC AH CALLRECEIVE CMPAH,39H ;為9賦初值 JBENEXT JMP AGAIN;ERROR: MOV DX,OFFSETMES2 ;顯示讀錯誤信息 MOV AH,09H INT 21HEXIT: MOV AX,4C00H INT 21H MY_PROC ENDp DELAY PROC NEAR ;延時程序 PUSHF PUSH AX PUSH DX PUSH CX MOV CX,-1 LOOP $ ;延時 POP CX POP DX POP AX POPF RETDELAY ENDpRECEIVE PROC NEAR PUSHF PUSH AX PUSH DX PUSH CXRECEIVE1: MOV DX,PC16550_5 ;接收緩沖區(qū)是否滿 IN AL,DX AND AL,01H JZ RECEIVE1 ;為0未滿,繼續(xù) CALL DELAY MOV DX,PC16550_0 ;PC機接收數(shù)據(jù) IN AL,DX MOVDL,AL MOV AH,02H INT 21H POP CX POP DX POP AX POPF RETRECEIVEENDp; BREAK PROC NEAR ;按任意鍵退出 PUSHF PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN: POP DX POP AX POPF RETBREAK ENDP;;*****************************************************************************; /*找卡子程序*/;***************************************************************************** ;;FUNCTIONCODEIO_port_addre EQU0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置數(shù)據(jù)端口IO_PLX_ID EQU 200810B5H ;PCI卡設(shè)備及廠商IDBADR0 = 10H ;基地址存放器0BADR1 = 14H ;基地址存放器1BADR2 = 18H ;基地址存放器2BADR3 = 1CH ;基地址存放器3FINDPCI PROC NEAR ;查找PCI卡資源并顯示 PUSHAD PUSHFD MOV EBX,080000000HFINDPCI_next: ADD EBX,100H CMP EBX,081000000H JNZ findpci_continue MOV DX,offsetpcicardnotfind ;顯示未找到PCI卡提示信息 MOV AH,09H INT 21H MOV AH,4CH INT 21H ;退出findpci_continue: MOV DX,IO_port_addre MOV EAX,EBX OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 CMP EAX,IO_PLX_ID JNZ findpci_next ;檢查是否發(fā)現(xiàn)PCI卡 MOV DX,IO_port_addre MOV EAX,EBX ADD EAX,BADR1 OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 MOV dwordptrIO_9054base_address,EAX AND EAX,1 JZ findPCI_next ;檢查是否為i/o基址信息 MOV EAX,dwordptrIO_9054base_address AND EAX,0fffffffeh MOV dwordptrIO_9054base_address,EAX ;去除i/o指示位并保存 MOV DX,IO_port_addre MOV EAX,EBX ADD EAX,BADR2 OUT DX,EAX ;寫

溫馨提示

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

評論

0/150

提交評論