計算機通信系統設計_第1頁
計算機通信系統設計_第2頁
計算機通信系統設計_第3頁
計算機通信系統設計_第4頁
計算機通信系統設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

學號:課程設計計算機通信系統設計自動化學院電氣工程及其自動化電氣班指導教師陳靜教授2014年1月9日課程設計任務書學生姓名:專業班級:電氣班指導教師:陳靜教授工作單位:自動化學院題目:計算機通信系統設計要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)畫出簡要的硬件原理圖,編寫通信程序。程序運行后,完成以下任務之一:(1)實現兩個PC機之間的并行通信;(2)實現PC機和單片機之間的串行通信;(3)通過并行口控制打印機;(4)實現兩個PC機之間的串行通信;撰寫課程設計說明書。內容包括:摘要、目錄、正文、參考文獻、附錄(程序清單)。正文部分包括:設計任務及要求、方案比較及論證、軟件設計說明(軟件思想,流程,源程序設計及說明等、程序調試說明和結果分析、課程設計收獲及心得體會。時間安排:12月26日-----12月28日查閱資料及方案設計12月29日-----1月2日編程1月3日-1月7日調試程序1月8日--—-1月9日撰寫課程設計報告指導教師簽名:年月日系主任(或責任教師)簽名:年月日目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要1\o"CurrentDocument"1設計意義2\o"CurrentDocument"2系統設計2\o"CurrentDocument"2.1系統設計思路2\o"CurrentDocument"2.2系統組成2\o"CurrentDocument"3硬件設計3\o"CurrentDocument"3.1整體設計3\o"CurrentDocument"3.2芯片選擇33.3RS-232接口簡介10\o"CurrentDocument"3.4電平轉換器一MAX23214\o"CurrentDocument"4軟件設計15\o"CurrentDocument"4.1軟件設計與硬件設計的關系15\o"CurrentDocument"4.2軟件編程164.2.1單片機通訊軟件164.2.2PC機通信軟件18\o"CurrentDocument"4.3程序運行結果19\o"CurrentDocument"5心得體會20\o"CurrentDocument"參考文獻21\o"CurrentDocument"本科生課程設計成績評定表22摘要本次課程設計的目的是編寫通信程序,程序運行之后,能實現單片機與PC之間的通信。微機與單片機串行通信端口在系統控制的范疇中一直占據著及其重要的地位,它不僅沒有因為時代的進步而遭淘汰,反而在規格上越來越完善,應用也越來越廣泛。作為一種基本而又靈活方便的通信方式,串口通信被廣泛應用于PC與PC或者PC與單片機之間的數據交換以及其他工業控制與自動控制中。本次課程設計主要圍繞單片機與PC之間的串行通信。這次課程設計過程涉及到的單片機是51單片機,這是一種集CPU,RAM,FLASHROM,I/O接口和定時中斷系統于一體的微型計算機。只要有外加電源和晶體振蕩器就可以獨立完成對數字信號的算術運算,邏輯控制,串行通信等功能。由于單片機具有體積小,重量輕,功耗低,功能強,價格低,可靠性好等諸多優點,因而在儀器儀表,家用電器,數據采集等一些嵌入式控制領域被廣泛應用。當需要處理較復雜數據或需要對多個采集數據進行綜合處理以及需要進行集散控制時,單片機的算術運算和邏輯運算能力顯的不足,這時往往需要借助計算機系統。將單片機采集的數據通過串行口傳給PC機,由PC機高級語言或數據庫語言進行處理,或者實現PC機對遠程單片機進行控制。因此,實現單片機與PC機之間的遠程通信更具有實際意義。關鍵詞:單片機;PC機發送數據接收數據串行通信1設計意義單片機由于性價比高、使用靈活等優點而廣泛應用于各種電子系統、自動控制系統,但是存儲容量小。處理的數據量不大。為了克服這一缺點,可以將單片機連接到PC機上,由單片機采集數據,然后將數據匯總到PC機,再進行各種數據處理。單片機與PC機之間的通訊是其中的關鍵技術之一,PC機與單片機間一般采用的是串行通信,由于51系列單片機中一般集成了雙全工的串行端口,只要配以電平轉換的驅動電路、隔離電路就可組成一個簡單可行的通信接口。2系統設計2.1系統設計思路本文要求設計一個51單片機與PC串口間通訊系統,實現單片機與PC機之間的遠程通信。設計分發送和接收兩大模塊,發送部分通過硬件電路的引用。其中包括RS-232接口電路、MAX232接口電路,引用相應的管腳相連,并將相應的軟件程序轉入電路中,即可運行。當電路是相對獨立時,可直接調速電路參數值,其影響和干擾就小。在滿足發射和接收模塊的要求后可單獨對控制進行調整,程序的編入,接收部分相應的結果即以實現,因此實現了PC機對遠端單片機的控制。2?2系統組成為實現該系統的生成,主要包含兩大模塊,即單片機模塊和通信模塊(1)單片機模塊單片機模塊中主要包括單片機、復位電路、晶振電路、上拉電阻和端口擴展等。端口擴展部分可以通過跳線將單片機的I/O口在系統板上的功能釋放,并將其連接到擴展上。(2)通信模塊通信模塊中采用MAX232作為通信電平轉換電路、實現RS-232的數據傳輸,可以直接與PC進行通信。3硬件設計3.1整體設計在pc系統中都裝有異步通信適配器,利用它可以實現異步串行通信。適配器的核心元件是可編程的intel8251芯片,它使PC有能力與其他具有RS-232標準的接口的計算機或設備進行通信,而MCS-51單片機本身具有一個雙全工的串行口,因此只要配上電平轉換電路就可以和RS-232接口組成一個簡單的通信通道。簡單的PC與單片機通信只要3根線就可以了,單片機的TXD、RXD與PC的RXD、TXD分別相連,連接地線。由于51系列單片機的串行口使用的是TTL電平,因此在PC和單片機間要有RS-232電平轉換電路,圖3-1所示為PC與單片機的通信圖。圖3-1PC機與單片機的通信圖3.2芯片選擇(1)MCS-51單片機[1]MCS-51單片機內部具有一個采用UART工作方式的全雙工的串行通信接口。該接口不僅可以同時進行數據的接受和發送,也可以作為同步移位寄存器使用。該接口有4種工作方式,其中字符格式有8位、10位、11位,并可以以不同的波特率工作。1〉串行口的內部結構MCS-51單片機的串行接口結構如圖3-2所示

接收SBUF'99H)?主s_5剎瞇接收SBUF'99H)?主s_5剎瞇SBUFJ、7\yV1-111[_,尸if」__q_Jll一.|_—TLiiii-—l圖3-2MCS-51單片機的串行接口圖該接口有兩根串行通信傳輸線RXD(P3.0)和TXD(P3.1),以串行形式與外部邏輯接口。數據的接收和發送就是通過這兩根信號線來實現的。在物理上存在兩個互相獨立的接收、發送緩沖器SBUF,屬于特殊功能寄存器,這樣可以同時進行數據的接收和發送,實現全雙工傳送。2〉串行口的控制寄存器串行口數據緩沖器SBUF兩個互相獨立的接收、發送緩沖器SBUF公用一個地址99H對應著2個寄存器:發送寄存器和接收寄存器。發送緩沖器用于存放要發送的數據,只能寫入,不能讀出。接收緩沖器用于存放接收到的數據,只能讀出,不能寫入。通過辨認對SBUF的指令是讀指令還是寫指令來區別是對接收緩沖器還是對發送緩沖器進行操作。讀SBUF,比如MOVA,SBUF指令,就是讀接收緩沖器的內容;寫SBUF,比如MOVSBUF,A指令,就是修改發送緩沖器的內容。串行控制寄存器SCONSCON可用于確定串行通信的工作方式和控制串行通道的某些功能,監視和控制串行口的工作狀態,也可用于存放要發送和接收到的第9個數據(TB9、RB8),并沒有接收和發送中斷標志RI和TI。表3-1SCON的格式SM0|SM1|SM2|REN|TB8|RB8|TI|RI|一SM0、SM1:串行口操作模式選擇位,指定了串行通信的工作方式。串行接口有4種工作方式。各種工作方式的區別在于功能、數據格式和波特率的不同。表3-2串行口的各種工作方式SM0SM1工作方式功能波特率0008位同步移位寄存器f/1200010位UART可變10211位UARTf/64或f/3211311位UART可變|在任務6中,就是使用了MOVSCON,#40H(01000000B)指令來設置單片機串行口的工作方式為方式1的。SM2:多機通信控制位。主要用于方式2和方式3中(數據為9位)。在方式2和方式3處于接收狀態時,如SM2=1,REN=1,且接收到的第9位數據RB8是0,則RI(接收中斷標志位)不會被置1。只有在接收到的第9位數據RB8是1,則RI才會被置1。在方式2和方式3處于接收狀態時,如SM2=0,無論接收到的第9位數據RB8時0還是1,RI都會被置1。在方式1中,如SM2=1,只有在接收到有效停止位時,則RI才會被置1。在模式0中,SM2必須為0。REN:允許串行接收控制位。由軟件置1或清除。REN=1,允許接收。啟動串行口的RXD,開始接收數據;REN=0,禁止接收。在任務6中就是用指令SETBREN來允許乙機的串行口接收的。TB8:在方式2和方式3時,它就是要發送的第9個數據位,一般是程控位2。按需要由軟件進行置1或清0。如在多處理通信中,用于表示是地址楨還是數據楨。在模式9中。此位不用。RB8:接收數據位8。在方式2和3時,它是接收到的第9個數據位。在模式1中,如SM2=0,RB8時接收到的停止位;在模式0中,此位不用。TI:發送中斷標志位。在模式0中,當發送完第8位數據時,由硬件置1;在其他模式中,在發送停止位前,由硬件置1。TI=1時,申請中斷,CPU響應中斷后,發送下一楨數據。RI:接收中斷標志位。在模式0中,接收第8位結束時,由硬件置1;在其他模式中,在接收停止位的半中間,由硬件置1。RI=1時,申請中斷,要求CPU取走數據。但在模式一中,SM2=1時,如未接收到有效的停止位,則不會對RI置位。在任何模式中,CPU響應中斷后,都必須用軟件來清除RI和TI。在任務6中,在甲機發送和乙機接收程序中,都有JBC這樣一條指令,就是用來清除TI和RI標志的。特殊功能寄存器PCONPCON主要是為CHMOS型單片機的電源控制而設置的SFR,在HMOS的MCS-51單片機中,除了最高位SMOD位外,其他位都是虛設的。表3-3PCON的格式SMODGF1GF0PDIDLSMOD是串行口波特率選擇位,只有這一位和串行通信有關。方式0的波特率固定,當使SMOD=1時,則使方式1、方式2、方式3的波特率加倍。當SMOD=0時,各工作方式的波特率不加倍。3〉串行口的工作方式MCS-51單片機的串行接口有四種工作方式,用戶可以通過SCON中的SM1、SM0位來選擇。方式0方式0為同步移位寄存器方式,其波特率是固定的,為振蕩頻率f的1/12,數據由RXD(P3.0腳)端輸入,同步移位脈沖由TXD(P3.1腳)端輸出,發送、接收的是8位數據,低位在前。發送:當一個數據寫入串行口發送緩沖器SBUF時,串行口將8位數據以fosc/12的波特率從RXD引腳輸出(低位在前),發送完置中斷標志TI為1,請求中斷。在再次發送數據之前,必須由軟件清TI為0。具體接線圖如圖3-3

所示。其中,74LS164為串入并出移位寄存器。圖3-3方式0的發送接線圖接收:在滿足REN=1和RI=0的條件下,串行口即開始從RXD端以fosc/12的波特率輸入數據(低位在前),當接收完8位數據后,置中斷標志RI為1,請求中斷。在再次接收數據之前,必須由軟件清RI為0。具體接線圖如圖3-4所示。其中,74LS165為并入串出移位寄存器。圖3-4方式0的接收接線圖串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每當發送或接收完8位數據后,硬件會自動置TI或RI為1,CPU響應TI或RI中斷后,必須由用戶用軟件清0。方式0時,SM2必須為0。方式1

在方式1狀態下,串行口為8位異步通信接口。一楨信息為10位,包括1位起始位(0),8位數據位(低位在前)和1位停止位(1)。如圖3-5所示/、J\第存符械751+1字符相10-Ar>cJn1L:LIL.-1!D2JL)4UJLUUpuuL.J8位故據圖3-5方式1的信息格式TXD為發送端,RXD為接收端。波特率不變。方式1是單片機與PC機串行通信最常用的方式。發送:發送時,數據從TXD端輸出,當數據寫入發送緩沖器SBUF后,啟動發送器發送。當發送完一幀數據后,置中斷標志TI為1。方式1所傳送的波特率取決于定時器1的溢出率和PCON中的SMOD位。接收:接收時,由REN置1,允許接收,串行口采樣RXD,當采樣由1到0跳變時,確認是起始位“0”,開始接收一幀數據。當RI=0,且停止位為1或SM2=0時,停止位進入RB8位,同時置中斷標志RI;否則信息將丟失。所以,方式1接收時,應先用軟件清除RI或SM2標志。方式2方式2下,串行口為11位UART,傳送波特率與SMOD有關。發送或接收一幀數據包括1位起始位0,8位數據位,1位可編程位(用于奇偶校驗)和1位停止位1。其幀格式如圖3-6所示。

、/7第譯符禎字符梗rsn.*Lrs1r5*u:Pln11JJUDDJJJJL-tL.DL1fLJ-JL1nJ呂位數據S您-Jittti阮圖3-6方式2的信息幀格式發送:發送時,先根據通信協議由軟件設置TB8,然后用指令將要發送的數據寫入SBUF,啟動發送器。寫SBUF的指令,除了將8位數據送入SBUF外,同時還將TB8裝入發送移位寄存器的第9位,并通知發送控制器進行一次發送。一幀信息即從TXD發送,在送完一幀信息后,TI被自動置1,在發送下一幀信息之前,TI必須由中斷服務程序或查詢程序清0。接收:當REN=1時,允許串行口接收數據。數據由RXD端輸入,接收11位的信息。當接收器采樣到RXD端的負跳變,并判斷起始位有效后,開始接收一幀信息。當接收器接收到第9位數據后,若同時滿足以下兩個條件:RI=0和SM2=0或接收到的第9位數據為1,則接收數據有效,8位數據送入SBUF,第9位送入RB8,并置RI=1。若不滿足上述兩個條件,則信息丟失。方式3方式3為波特率可變的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。4〉MCS-51串行口的波特率在串行通信中,收發雙方對傳送的數據速率,即波特率要有一定的約定。MCS-51單片機的串行口通過編程可以有4種工作方式。其中,方式0和方式2的波特率是固定的,方式1和方式3的波特率可變,由定時器1的溢出率決定,下面加以具體分析。方式0和方式2在方式0中,波特率為時鐘頻率的1/12,即fosc/12,固定不變。在方式2中,波特率取決于PCON中的SMOD值,當SMOD=0時,波特率為fosc/64;當SMOD=1時,波特率為fosc/32。方式1和方式3在方式1和方式3下,波特率由定時器1的溢出率和SMOD共同決定。即:方式1和方式3的波特率二?定時器1溢出率其中,定時器1的溢出率取決于單片機定時器1的計數速率和定時器的預置值。計數速率與TMOD寄存器中的C/位有關。當C/=0時,計數速率為fosc/12;當C/=1時,計數速率為外部輸入時鐘頻率。表3-4列出了各種常用的波特率及獲得辦法。表3-4定時器1產生的常用波特率波特率(b/s)f/MHzSMOD定時器1C/T模式初始值方式0:112****方式2:375k121***方式1、3:62.5k12102FFH19.2k11.059102FDH9.6k11.059002FDH4.8k11.059002FAH2.4k11.059002F4H1.2k11.059002E8H137.5k11.9860021DH110600272H11012001FEEBH3.3RS-232接口簡介信息格式PC的主板上通常都預留有一個或兩個九針(DB一9)全雙工串行接口(COM1、COi2),其電氣標準遵循RS一232C標準.RS-232是使用最早、應用最多的一種異步串行通信總線標準,它是美國電子工業協會1962年公布,1969年最后修訂而成的。其中RS表示recommendedstandard,232是該標準的識別號。RS-232主要用來定義各電路數據終端之間的電氣性能。RS-232接口總線適用于設備之間的通信距離不

大于15米,傳輸速度最大為20Kbit/s。RS-232采用標準的異步通信串行數據格式,即信息的開始為起始位,信息的結束為停止位1,信息本身可以是5、6、7、8位,可根據需要再加上一位奇偶校驗位,如果兩個信息之間有間隔,加上空閑位1。如圖3-7所示。在通常的異步串行通信中只使用其中三個引腳,即引腳2(接收RXD)、引圖3-8九針串口引腳功能圖RS-232C的接口信號RS-232C規標準接口有25條線,4條數據線、11條控制線、3條定時線、7條備用和未定義線。常用的只有9根,它們是:聯絡控制信號線:數據裝置準備好(Datasetready-DSR)有效時(ON)狀態,表明MODEM處于可以使用的狀態。數據終端準備好(Datasetready-DTR)有效時(ON)狀態,表明數據終端可以使用。這兩個信號有時連到電源上,一上電就立即有效。這兩個設備狀態信號有效,只表示設備本身可用,并不說明通信鏈路可以開始進行通信了,能否開始進行通信要由下面的控制信號決定。請求發送(Requesttosend-RTS)——用來表示DTE請求DCE發送數據,即當終端要發送數據時,使該信號有效(ON狀態),向MODEM請求發送。它用來控制MODEM是否要進入發送狀態。允許發送(Cleartosend-CTS)——用來表示DCE準備好接收DTE發來的數據,是對請求發送信號RTS的響應信號。當MODEM已準備好接收終端傳來的數據,并向前發送時,使該信號有效,通知終端開始沿發送數據線TxD發送數據。這對RTS/CTS請求應答聯絡信號是用于半雙工MODEM系統中發送方式和接收方式之間的切換。在全雙工系統中作發送方式和接收方式之間的切換。在全雙工系統中,因配置雙向通道,故不需要RTS/CTS聯絡信號,使其變高。接收線信號檢出(ReceivedLinedetection-RLSD)用來表示DCE已接通通信鏈路,告知DTE準備接收數據。當本地的MODEM收到由通信鏈路另一端(遠地)的MODEM送來的載波信號時,使RLSD信號有效,通知終端準備接收,并且由MODEM將接收下來的載波信號解調成數字兩數據后,沿接收數據線RxD送到終端。此線也叫做數據載波檢出(DataCarrierdectection-DCD)線。振鈴指示(Ringing-RI)——當MODEM收到交換臺送來的振鈴呼叫信號時,使該信號有效(ON狀態),通知終端,已被呼叫。數據發送與接收線:發送數據(Transmitteddata-TxD)通過TxD終端將串行數據發送到MODEM,(DTEfDCE)。接收數據(Receiveddata-RxD)通過RxD線終端接收從MODEM發來的串行數據,(DCEfDTE)。地線有兩根線SG、PG——信號地和保護地信號線,無方向。上述控制信號線何時有效,何時無效的順序表示了接口信號的傳送過程。例如,只有當DSR和DTR都處于有效(ON)狀態時,才能在DTE和DCE之間進行傳送操作。若DTE要發送數據,則預先將DTR線置成有效(ON)狀態,等CTS線上收到有效(ON)狀態的回答后,才能在TxD線上發送串行數據。這種順序的規定對半雙工的通信線路特別有用,因為半雙工的通信才能確定DCE已由接收方向改為發送方向,這時線路才能開始發送。2個數據信號:發送TXD;接收RXD。1個信號地線:SG。6個控制信號:DSR��數傳機(即modem)準備好,DataSetReady.DTR��數據終端(DTE,即微機接口電路,如Intel8250/8251,16550)準備好,DataTerminalReady。RTS��DTE請求DCE發送(RequestToSend)。CTS��DCE允許DTE發送(ClearToSend),該信號是對RTS信號的回答。DCD��數據載波檢出,DataCarrierDetection當本地DCE設備(Modem)收到對方的DCE設備送來的載波信號時,使DCD有效,通知DTE準備接收,并且由DCE將接收到的載波信號解調為數字信號,經RXD線送給DTE。RI��振鈴信號Ringing當DCE收到交換機送來的振鈴呼叫信號時,使該信號有效,通知DTE已被呼叫。(3)RS-232總線規定RS-232標準總線為25根,采用標準的D型25芯插頭座。引腳及功能如圖3-9所示。

方向S1DCFS1DCF.到DCE到DCES1DCEDTE.數據銅設如如『人想尊機】翰端就蠟第1路活求*倒如1&方向S1DCFS1DCF.到DCE到DCES1DCEDTE.數據銅設如如『人想尊機】翰端就蠟第1路活求*倒如1&I廠到DTE到OTF接收時建§IDCE3.4電平轉換器一MAX232RS-232規定了自己的電氣標準,由于它是在TTL電路之前研制的,因此它的電平不是+5V和地,而是采用負邏輯,即邏輯“0”:+5V?一5V,邏輯“1”:—5V~—15V。因此RS-232不能和TTL電平直接相連,必須進行電平轉換。本設計選用MAX232。MAX232的引腳圖如圖3-10所示。圖3-10圖3-10MAX232的引腳圖管腳說明如下:C0+、C0-、C1+、C1-是外接電容端;R1IN、R2IN是2路RS-232C電平信號接收輸入端;RlOUT、R2OUT是2路轉換后的TTL電平接收信號輸出端,送8051的RXD接收端;TlIN、T2IN是2路TTL電平發送輸入端,接8051的TxD發送端;TlOUT、T2OUT是2路轉換后的發送RS-232C電平信號輸出端,接傳輸線;V+經電容接電源+5V;V-經電容接地。這種連接的傳輸介質一般采用雙絞線,通信距離一般不超過15m,傳輸率小于20kB/s。在最簡單的全雙工系統中,僅有發送數據、接收數據和信號地三根線即可。對于MCS-51單片機。利用其RXD線、TXD線和一根地線。就可以構成符合RS-232接口標準的全雙工串行通信口,這是PC機和單片機最簡單的零調制經濟型連接,是進行全雙工通信所必須的最少線路。圖3-11給出了采用MAX232芯片的PC機與單片機串行通信接口電路,與PC機相連采用PC機的9芯標準插座。MCS-5L345L11j12—MCS-5L345L11j12—9TXDRX.DG-1+Vs+Cl-Vs-&2+VccSND,■'liN710UTT2INT2OJ7R1OUTRJINR2OUT叫INMAX2322X61(51.51138—4軟件設計4.1軟件設計與硬件設計的關系為了滿足設計的功能和指標的要求,我們必須在開始設計時就應考慮到硬件和軟件的協調;不然就是造成硬件資源的浪費,就是增加軟件實現時的困難和復雜程度,甚至造成信號的斷層,即使硬件和軟件能單獨使用,卻不能使它們組成的系統工作,故在設計的過程中必須考慮軟、硬件的處理能力以及它們的接口是否兼容,實現軟、硬件的過渡,其次、設計時硬件之間應盡可能減小聯系,只要把必要的信號線相連即可。由于硬件的分離,在軟件的調試時就可以單獨針對控制模塊。將PC機鍵盤的輸入發送給單片機,單片機收到PC機發來的數據后,回送同一數據給PC機,并在屏幕上顯示出來。只要屏幕上顯示的字符和所鍵入的字符相同,說明兩者之間的通信正常。即本次課程設計的任務已初步完成。4.2軟件編程雙方約定:波特率為2400bit/s,通信格式為8個數據位,一個停止位,無奇偶校驗位。4.2.1單片機通訊軟件單片機通過中斷方式接收pc機發送的數據,并回送。根據信息格式,可以設定單片機的串行口工作在方式1。在串行口方式1中,波特率是由定時器T1產生的。如晶振為6MHZ,波特率為2400bit/s,這時T1工作在方式2(自動重新裝入初值)。經計算,T1的初始值應為F3H,SMOD=1。程序框圖如圖3-12、3-13所示:圖3-12主程序流程圖

圖3-13中斷程序流程圖程序設計如下:ORG0000HLJMPSTART;主程序入口ORG0023HLJMPINTS;串行口中斷入口ORG0100HSTART:MOVTMOD,#20H;初始化定時器1為方式2MOVTL1,#0F3H;與2400波特率相應的定時器初值MOVTH1,#0F3HSETBTR1;啟動定時器1MOVSCON,#50H;串行口工作在方式1,允許接收MOVPCON,#80H;SMOD=1SETBEA;開串行口中斷SETBES;允許中斷LOOP:SJMPLOOP;等待數據接收INTS:CLREA;禁止中斷CLRRI;清除中斷標志RIMOVA,SBUF;從SBUF取接收到的數據MOVSBUF,A;回送WAIT:JNBTI,WAIT;判斷回送是否完畢CLRTI;清除TI標志POPACC;發送完,恢復現場

POPDPHPOPDPLSETBEARETIEND4.2.2PC機通信軟件PC機方面的通信程序用匯編語言編寫。程序如下:STACKDBSTACKCODESTART;允許中斷,準備接收新的數據中斷返回SEGMENTPARASTACK'CODE'256DUP(0)ENDSSEGMENTPARApublic'CODE'PROCFARCS:CODE,SS:STACKASSUMEPUSHDSMOVAX,0PUSHAXCLIINPUT:MOVAL,80HMOVDX,3FBHOUTDX,ALMOVAL,30HMOVDX,3F8HOUTDX,ALMOVAL,00HMOVDX,3F9HOUTDX,ALMOVAL,03HMOVDX,3FBHOUTDX,ALMOVAL,00HMOVDX,3F9HOUTDX,AL;允許中斷,準備接收新的數據中斷返回SEGMENTPARASTACK'CODE'256DUP(0)ENDSSEGMENTPARApublic'CODE'PROCFARCS:CODE,SS:STACKJZWAIT2;置DLAB=1;寫入通信線控制寄存器置產生2400b/s;置DLAB=1;寫入通信線控制寄存器置產生2400b/s波特率除數低位;寫入除數鎖存器低位;置產生2400b/s波特率除數高位;寫入除數鎖存器高位;設置數據格式;寫入通信線路控制寄存器;禁止所有中斷;發送保持寄存器不空則循環等待;檢查鍵盤緩沖區,無字符則循環等待;若有,則取鍵盤字符SEND:MOVDX,3F8H;發送鍵入的字符OUTDX,ALRECE:]MOVDX,3FDH;檢查接收數據是否準備好INAL,DXTESTAL,01HJZRECETESTAL,1AH;判斷接收到的數據是否出錯JNZERRORMOVDX,3F8HINAL

溫馨提示

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

評論

0/150

提交評論