2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課程名稱:監(jiān)控系統(tǒng)課程設(shè)計(jì) </p><p>  設(shè)計(jì)題目:PC機(jī)與單片機(jī)串行通信 </p><p>  院 系: </p><p>  專 業(yè): </p><p>  年 級(jí):

2、 </p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p><b>  XX大學(xué)XX區(qū)</b></p><p>  xx年 xx月xx日</p><p>  課 程 設(shè) 計(jì)

3、任 務(wù) 書(shū)</p><p>  專 業(yè): 姓 名 學(xué) 號(hào) </p><p>  開(kāi)題日期: 年 月 日 完成日期:年 月 日</p><p>  題 目 :PC機(jī)與單片機(jī)的串行通信 </p><p>

4、<b>  一、設(shè)計(jì)的目的</b></p><p>  串行通信技術(shù)是單片機(jī)系統(tǒng)開(kāi)發(fā)中常用的技術(shù)之一,串行口也是單片機(jī)常規(guī)內(nèi)部集成的功能。設(shè)計(jì)PC機(jī)與單片機(jī)進(jìn)行串行通信硬件電路及軟件流程,本設(shè)計(jì)通過(guò)定時(shí)器來(lái)設(shè)定通信的波特率,通過(guò)設(shè)置幾個(gè)寄存器來(lái)設(shè)定工作方式。PC機(jī)與單片機(jī)之間則由RS-232C接口相連。</p><p>  二、設(shè)計(jì)的內(nèi)容及要求</p>

5、<p>  1、查閱資料,學(xué)習(xí)PC與 一個(gè)或多個(gè)單片機(jī)串口通信設(shè)計(jì); </p><p>  2、硬件設(shè)計(jì),給出原理框圖,并簡(jiǎn)要介紹各組成部分; </p><p>  3、軟件設(shè)計(jì),給出程序流程圖和程序清單,并說(shuō)明各部分程序要實(shí)

6、現(xiàn); </p><p>  4、總結(jié),結(jié)出結(jié)論 </p><p><b>  三、指導(dǎo)教師評(píng)語(yǔ) </b></p><p>  四、成 績(jī) </p><

7、;p>  指導(dǎo)教師 (簽章) </p><p><b>  年月日</b></p><p><b>  1 設(shè)計(jì)意義</b></p><p>  單片機(jī)由于性價(jià)比高、使用靈活等優(yōu)點(diǎn)而廣泛應(yīng)用于各種電子系統(tǒng)、自動(dòng)</p><p>  控制系統(tǒng),但是存儲(chǔ)容量小。處理的數(shù)據(jù)量不大。

8、為了克服這一缺點(diǎn),可以將單</p><p>  片機(jī)連接到PC機(jī)上,由單片機(jī)采集數(shù)據(jù),然后將數(shù)據(jù)匯總到PC機(jī),再進(jìn)行各種數(shù)</p><p>  據(jù)處理。單片機(jī)與PC機(jī)之間的通訊是其中的關(guān)鍵技術(shù)之一,PC機(jī)與單片機(jī)間一般</p><p>  采用的是串行通信,由于51系列單片機(jī)中一般集成了雙全工的串行端口,只要配</p><p>  以電平轉(zhuǎn)換

9、的驅(qū)動(dòng)電路、隔離電路就可組成一個(gè)簡(jiǎn)單可行的通信接口。</p><p><b>  2 硬件設(shè)計(jì)</b></p><p><b>  2.1 整體設(shè)計(jì)</b></p><p>  在PC系統(tǒng)中都裝有異步通信適配器,利用它可以實(shí)現(xiàn)異步串行通信。適配器的核心元件是可編程的intel8251芯片,它使PC有能力與其他具有RS-23

10、2標(biāo)準(zhǔn)的接口的計(jì)算機(jī)或設(shè)備進(jìn)行通信,而MCS-51單片機(jī)本身具有一個(gè)雙全工的串行口,因此只要配上電平轉(zhuǎn)換電路就可以和RS-232接口組成一個(gè)簡(jiǎn)單的通信通道。</p><p>  簡(jiǎn)單的PC與單片機(jī)通信只要3根線就可以了,單片機(jī)的TXD、RXD與PC的RXD、TXD分別相連,連接地線。由于51系列單片機(jī)的串行口使用的是TTL電平,因此在PC和單片機(jī)間要有RS-232電平轉(zhuǎn)換電路,圖1所示為PC與單片機(jī)的通信圖。&l

11、t;/p><p>  圖1 PC機(jī)與單片機(jī)的通信圖</p><p><b>  2.2 芯片選擇</b></p><p>  (1)MCS-51單片機(jī)[1]</p><p>  MCS-51單片機(jī)內(nèi)部具有一個(gè)采用UART工作方式的全雙工的串行通信接口。該接口不僅可以同時(shí)進(jìn)行數(shù)據(jù)的接受和發(fā)送,也可以作為同步移位寄存器使用。該接

12、口有4種工作方式,其中字符格式有8位、10位、11位,并可以以不同的波特率工作。</p><p>  1〉串行口的內(nèi)部結(jié)構(gòu)</p><p>  MCS-51單片機(jī)的串行接口結(jié)構(gòu)如圖2所示:</p><p>  圖2 MCS-51單片機(jī)的串行接口圖</p><p>  該接口有兩根串行通信傳輸線RXD(P3.0)和TXD(P3.1),以串行形式

13、與外部邏輯接口。數(shù)據(jù)的接收和發(fā)送就是通過(guò)這兩根信號(hào)線來(lái)實(shí)現(xiàn)的。</p><p>  在物理上存在兩個(gè)互相獨(dú)立的接收、發(fā)送緩沖器SBUF,屬于特殊功能寄存器,這樣可以同時(shí)進(jìn)行數(shù)據(jù)的接收和發(fā)送,實(shí)現(xiàn)全雙工傳送。</p><p>  2〉串行口的控制寄存器</p><p>  ①串行口數(shù)據(jù)緩沖器SBUF</p><p>  兩個(gè)互相獨(dú)立的接收、發(fā)送

14、緩沖器SBUF公用一個(gè)地址99H對(duì)應(yīng)著2個(gè)寄存器:發(fā)送寄存器和接收寄存器。發(fā)送緩沖器用于存放要發(fā)送的數(shù)據(jù),只能寫(xiě)入,不能讀出。接收緩沖器用于存放接收到的數(shù)據(jù),只能讀出,不能寫(xiě)入。通過(guò)辨認(rèn)對(duì)SBUF的指令是讀指令還是寫(xiě)指令來(lái)區(qū)別是對(duì)接收緩沖器還是對(duì)發(fā)送緩沖器進(jìn)行操作。</p><p>  讀SBUF,比如MOV A,SBUF指令,就是讀接收緩沖器的內(nèi)容;</p><p>  寫(xiě)SBUF,比

15、如MOV SBUF,A指令,就是修改發(fā)送緩沖器的內(nèi)容。</p><p> ?、诖锌刂萍拇嫫鱏CON</p><p>  SCON可用于確定串行通信的工作方式和控制串行通道的某些功能,監(jiān)視和控制串行口的工作狀態(tài),也可用于存放要發(fā)送和接收到的第9個(gè)數(shù)據(jù)(TB9、RB8),并沒(méi)有接收和發(fā)送中斷標(biāo)志RI和TI。</p><p>  表1 SCON的格式</p>

16、;<p>  SM0、SM1:串行口操作模式選擇位,指定了串行通信的工作方式。串行接口有4種工作方式。各種工作方式的區(qū)別在于功能、數(shù)據(jù)格式和波特率的不同。</p><p>  表2 串行口的各種工作方式</p><p>  在任務(wù)6中,就是使用了MOV SCON,#40H(01000000B)指令來(lái)設(shè)置單片機(jī)串行口的工作方式為方式1的。</p><p&g

17、t;  SM2:多機(jī)通信控制位。主要用于方式2和方式3 中(數(shù)據(jù)為9位)。</p><p>  在方式2和方式3處于接收狀態(tài)時(shí),如SM2=1,REN=1,且接收到的第9位數(shù)據(jù)RB8是0,則RI(接收中斷標(biāo)志位)不會(huì)被置1。只有在接收到的第9位數(shù)據(jù)RB8是1,則RI才會(huì)被置1。</p><p>  在方式2和方式3處于接收狀態(tài)時(shí),如SM2=0,無(wú)論接收到的第9位數(shù)據(jù)RB8時(shí)0還是1,RI都會(huì)

18、被置1。</p><p>  在方式1中,如SM2=1,只有在接收到有效停止位時(shí),則RI才會(huì)被置1。</p><p>  在模式0中,SM2必須為0。</p><p>  REN:允許串行接收控制位。由軟件置1或清除。REN=1,允許接收。啟動(dòng)串行口的RXD,開(kāi)始接收數(shù)據(jù);REN=0,禁止接收。</p><p>  在任務(wù)6中就是用指令SET

19、B REN來(lái)允許乙機(jī)的串行口接收的。</p><p>  TB8:在方式2 和方式3時(shí),它就是要發(fā)送的第9個(gè)數(shù)據(jù)位,一般是程控位2。按需要由軟件進(jìn)行置1或清0。如在多處理通信中,用于表示是地址楨還是數(shù)據(jù)楨。在模式9中。此位不用。</p><p>  RB8:接收數(shù)據(jù)位8。在方式2和3時(shí),它是接收到的第9個(gè)數(shù)據(jù)位。在模式1中,如SM2=0,RB8時(shí)接收到的停止位;在模式0中,此位不用。&l

20、t;/p><p>  TI:發(fā)送中斷標(biāo)志位。在模式0中,當(dāng)發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置1;在其他模式中,在發(fā)送停止位前,由硬件置1。TI=1時(shí),申請(qǐng)中斷,CPU響應(yīng)中斷后,發(fā)送下一楨數(shù)據(jù)。</p><p>  RI:接收中斷標(biāo)志位。在模式0中,接收第8位結(jié)束時(shí),由硬件置1;在其他模式中,在接收停止位的半中間,由硬件置1。RI=1時(shí),申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。但在模式一中,SM2=1時(shí),如未

21、接收到有效的停止位,則不會(huì)對(duì)RI置位。</p><p>  在任何模式中,CPU響應(yīng)中斷后,都必須用軟件來(lái)清除RI和TI。</p><p>  在任務(wù)6中,在甲機(jī)發(fā)送和乙機(jī)接收程序中,都有JBC這樣一條指令,就是用來(lái)清除TI和RI標(biāo)志的。</p><p> ?、厶厥夤δ芗拇嫫鱌CON</p><p>  PCON主要是為CHMOS型單片機(jī)的電

22、源控制而設(shè)置的SFR,在HMOS的MCS-51單片機(jī)中,除了最高位SMOD位外,其他位都是虛設(shè)的。</p><p>  表3 PCON的格式</p><p>  SMOD是串行口波特率選擇位,只有這一位和串行通信有關(guān)。方式0的波特率固定,當(dāng)使SMOD=1時(shí),則使方式1、方式2、方式3的波特率加倍。當(dāng)SMOD=0時(shí),各工作方式的波特率不加倍。</p><p>  3〉

23、串行口的工作方式</p><p>  MCS-51單片機(jī)的串行接口有四種工作方式,用戶可以通過(guò)SCON中的SM1、SM0位來(lái)選擇。</p><p><b> ?、俜绞? </b></p><p>  方式0為同步移位寄存器方式,其波特率是固定的,為振蕩頻率f的1/12,數(shù)據(jù)由RXD(P3.0腳)端輸入,同步移位脈沖由TXD(P3.1腳)端輸出,

24、發(fā)送、接收的是8位數(shù)據(jù),低位在前。</p><p><b>  發(fā)送:</b></p><p>  當(dāng)一個(gè)數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器SBUF時(shí),串行口將8位數(shù)據(jù)以fosc/12的波特率從RXD引腳輸出(低位在前),發(fā)送完置中斷標(biāo)志TI為1,請(qǐng)求中斷。在再次發(fā)送數(shù)據(jù)之前,必須由軟件清TI為0。具體接線圖如圖3所示。其中,74LS164為串入并出移位寄存器。</p&g

25、t;<p>  圖3 方式0 的發(fā)送接線圖</p><p><b>  接收:</b></p><p>  在滿足REN=1和RI=0的條件下,串行口即開(kāi)始從RXD端以fosc/12的波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI為1,請(qǐng)求中斷。在再次接收數(shù)據(jù)之前,必須由軟件清RI為0。具體接線圖如圖4所示。其中,74LS165為并入串出

26、移位寄存器。</p><p>  圖4 方式0 的接收接線圖</p><p>  串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每當(dāng)發(fā)送或接收完8位數(shù)據(jù)后,硬件會(huì)自動(dòng)置TI或RI為1,CPU響應(yīng)TI或RI中斷后,必須由用戶用軟件清0。方式0時(shí),SM2必須為0。</p><p><b> ?、诜绞?</b></p&g

27、t;<p>  在方式1狀態(tài)下,串行口為8位異步通信接口。一楨信息為10位,包括1位起始位(0),8位數(shù)據(jù)位(低位在前)和1位停止位(1)。如圖5所示</p><p>  圖5 方式1的信息格式</p><p>  TXD為發(fā)送端,RXD為接收端。波特率不變。方式1是單片機(jī)與PC機(jī)串行通信最常用的方式。</p><p><b>  發(fā)送:&l

28、t;/b></p><p>  發(fā)送時(shí),數(shù)據(jù)從TXD端輸出,當(dāng)數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF后,啟動(dòng)發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,置中斷標(biāo)志TI為1。方式1所傳送的波特率取決于定時(shí)器1的溢出率和PCON中的SMOD位。 </p><p><b>  接收:</b></p><p>  接收時(shí),由REN置1,允許接收,串行口采樣RXD,當(dāng)采

29、樣由1到0跳變時(shí),確認(rèn)是起始位“0”,開(kāi)始接收一幀數(shù)據(jù)。當(dāng)RI=0,且停止位為1或SM2=0時(shí),停止位進(jìn)入RB8位,同時(shí)置中斷標(biāo)志RI;否則信息將丟失。所以,方式1接收時(shí),應(yīng)先用軟件清除RI或SM2標(biāo)志。</p><p><b> ?、鄯绞?</b></p><p>  方式2下,串行口為11位UART,傳送波特率與SMOD有關(guān)。發(fā)送或接收一幀數(shù)據(jù)包括1位起始位0,8

30、位數(shù)據(jù)位,1位可編程位(用于奇偶校驗(yàn))和1位停止位1。其幀格式如圖6所示。</p><p>  圖6 方式2 的信息幀格式</p><p><b>  發(fā)送:</b></p><p>  發(fā)送時(shí),先根據(jù)通信協(xié)議由軟件設(shè)置TB8,然后用指令將要發(fā)送的數(shù)據(jù)寫(xiě)入SBUF,啟動(dòng)發(fā)送器。寫(xiě)SBUF的指令,除了將8位數(shù)據(jù)送入SBUF外,同時(shí)還將TB8裝入發(fā)

31、送移位寄存器的第9位,并通知發(fā)送控制器進(jìn)行一次發(fā)送。一幀信息即從TXD發(fā)送,在送完一幀信息后,TI被自動(dòng)置1,在發(fā)送下一幀信息之前,TI必須由中斷服務(wù)程序或查詢程序清0。</p><p><b>  接收:</b></p><p>  當(dāng)REN=1時(shí),允許串行口接收數(shù)據(jù)。數(shù)據(jù)由RXD端輸入,接收11位的信息。當(dāng)接收器采樣到RXD端的負(fù)跳變,并判斷起始位有效后,開(kāi)始接收

32、一幀信息。當(dāng)接收器接收到第9位數(shù)據(jù)后,若同時(shí)滿足以下兩個(gè)條件:RI=0和SM2=0或接收到的第9位數(shù)據(jù)為1,則接收數(shù)據(jù)有效,8位數(shù)據(jù)送入SBUF,第9位送入RB8,并置RI=1。若不滿足上述兩個(gè)條件,則信息丟失。</p><p><b> ?、芊绞?</b></p><p>  方式3為波特率可變的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。<

33、;/p><p>  4〉MCS-51串行口的波特率</p><p>  在串行通信中,收發(fā)雙方對(duì)傳送的數(shù)據(jù)速率,即波特率要有一定的約定。MCS-51單片機(jī)的串行口通過(guò)編程可以有4種工作方式。其中,方式0和方式2的波特率是固定的,方式1和方式3的波特率可變,由定時(shí)器1的溢出率決定,下面加以分析。</p><p><b> ?、俜绞?和方式2 </b>

34、</p><p>  在方式0中,波特率為時(shí)鐘頻率的1/12,即fosc/12,固定不變。</p><p>  在方式2中,波特率取決于PCON中的SMOD值,當(dāng)SMOD=0時(shí),波特率為fosc/64;當(dāng)SMOD=1時(shí),波特率為fosc/32。 </p><p><b> ?、诜绞?和方式3</b></p><p>  

35、在方式1和方式3下,波特率由定時(shí)器1的溢出率和SMOD共同決定。即:方式1和方式3的波特率=·定時(shí)器1溢出率</p><p>  其中,定時(shí)器1的溢出率取決于單片機(jī)定時(shí)器1的計(jì)數(shù)速率和定時(shí)器的預(yù)置值。計(jì)數(shù)速率與TMOD寄存器中的C/位有關(guān)。當(dāng)C/=0時(shí),計(jì)數(shù)速率為fosc/12;當(dāng)C/=1時(shí),計(jì)數(shù)速率為外部輸入時(shí)鐘頻率。</p><p>  下表列出了各種常用的波特率及獲得辦法。

36、</p><p>  表4定時(shí)器1產(chǎn)生的常用波特率</p><p>  2.3 RS-232接口簡(jiǎn)介</p><p><b> ?。?)信息格式</b></p><p>  PC 的主板上通常都預(yù)留有一個(gè)或兩個(gè)九針(DB一9)全雙工串行接口(COM1、COi2),其電氣標(biāo)準(zhǔn)遵循RS一232C標(biāo)準(zhǔn). </p>

37、<p>  RS-232是使用最早、應(yīng)用最多的一種異步串行通信總線標(biāo)準(zhǔn),它是美國(guó)電子工業(yè)協(xié)會(huì)1962年公布,1969年最后修訂而成的。其中RS表示recommended standard,232是該標(biāo)準(zhǔn)的識(shí)別號(hào)。RS-232主要用來(lái)定義各電路數(shù)據(jù)終端之間的電氣性能。RS-232接口總線適用于設(shè)備之間的通信距離不大于15米,傳輸速度最大為20Kbit/s。</p><p>  RS-232采用標(biāo)準(zhǔn)的異

38、步通信串行數(shù)據(jù)格式,即信息的開(kāi)始為起始位,信息的結(jié)束為停止位1,信息本身可以是5、6、7、8位,可根據(jù)需要再加上一位奇偶校驗(yàn)位,如果兩個(gè)信息之間有間隔,加上空閑位1。如圖7所示</p><p>  圖7 RS-232的信息格式</p><p>  在通常的異步串行通信中只使用其中三個(gè)引腳,即引腳2(接收RXD)、引腳3(發(fā)送TXD)、引腳5(信號(hào)地SG).各引腳功能如圖8所示.</p

39、><p>  圖8 九針串口引腳功能圖</p><p> ?。?)RS-232C的接口信號(hào)</p><p>  RS-232C規(guī)標(biāo)準(zhǔn)接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線。</p><p>  常用的只有9根,它們是:</p><p><b> ?、俾?lián)絡(luò)控制信號(hào)線:</b&

40、gt;</p><p>  數(shù)據(jù)裝置準(zhǔn)備好(Data set ready-DSR)——有效時(shí)(ON)狀態(tài),表明MODEM處于可以使用的狀態(tài)。</p><p>  數(shù)據(jù)終端準(zhǔn)備好(Data set ready-DTR)——有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)終端可以使用。這兩個(gè)信號(hào)有時(shí)連到電源上,一上電就立即有效。這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說(shuō)明通信鏈路可以開(kāi)始進(jìn)行通信了,能否開(kāi)

41、始進(jìn)行通信要由下面的控制信號(hào)決定。</p><p>  請(qǐng)求發(fā)送(Request to send-RTS)——用來(lái)表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM請(qǐng)求發(fā)送。它用來(lái)控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。</p><p>  允許發(fā)送(Clear to send-CTS)——用來(lái)表示DCE準(zhǔn)備好接收DTE發(fā)來(lái)的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的

42、響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來(lái)的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知終端開(kāi)始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。</p><p>  這對(duì)RTS/CTS請(qǐng)求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中作發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡(luò)信號(hào),使其變高。</p><p>  接收線信號(hào)檢出(R

43、eceived Line detection-RLSD)——用來(lái)表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來(lái)的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來(lái)的載波信號(hào)解調(diào)成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載波檢出(Data Carrier dectection-DCD)線。</p><p> 

44、 振鈴指示(Ringing-RI)——當(dāng)MODEM收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。</p><p> ?、跀?shù)據(jù)發(fā)送與接收線:</p><p>  發(fā)送數(shù)據(jù)(Transmitted data-TxD)——通過(guò)TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。</p><p>  接收數(shù)據(jù)(Received data

45、-RxD)——通過(guò)RxD線終端接收從MODEM發(fā)來(lái)的串行數(shù)據(jù),(DCE→DTE)。</p><p><b> ?、鄣鼐€</b></p><p>  有兩根線SG、PG——信號(hào)地和保護(hù)地信號(hào)線,無(wú)方向。</p><p>  上述控制信號(hào)線何時(shí)有效,何時(shí)無(wú)效的順序表示了接口信號(hào)的傳送過(guò)程。例如,只有當(dāng)DSR和DTR都處于有效(ON)狀態(tài)時(shí),才能在D

46、TE和DCE之間進(jìn)行傳送操作。若DTE要發(fā)送數(shù)據(jù),則預(yù)先將DTR線置成有效(ON)狀態(tài),等CTS線上收到有效(ON)狀態(tài)的回答后,才能在TxD線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對(duì)半雙工的通信線路特別有用,因?yàn)榘腚p工的通信才能確定DCE已由接收方向改為發(fā)送方向,這時(shí)線路才能開(kāi)始發(fā)送。</p><p>  2個(gè)數(shù)據(jù)信號(hào):發(fā)送TXD;接收RXD。</p><p>  1個(gè)信號(hào)地線:SG。</

47、p><p><b>  6個(gè)控制信號(hào):</b></p><p>  DSR&#0;&#0;數(shù)傳機(jī)(即modem)準(zhǔn)備好,Data Set Ready.</p><p>  DTR&#0;&#0;數(shù)據(jù)終端(DTE,即微機(jī)接口電路,如Intel8250/8251,16550)準(zhǔn)備好,Data Terminal Ready

48、。</p><p>  RTS&#0;&#0;DTE請(qǐng)求DCE發(fā)送(Request To Send)。</p><p>  CTS&#0;&#0;DCE允許DTE發(fā)送(Clear To Send),該信號(hào)是對(duì)RTS信號(hào)的回答。</p><p>  DCD&#0;&#0;數(shù)據(jù)載波檢出,Data Carrier Detec

49、tion當(dāng)本地DCE設(shè)備(Modem)收到對(duì)方的DCE設(shè)備送來(lái)的載波信號(hào)時(shí),使DCD有效,通知DTE準(zhǔn)備接收, 并且由DCE將接收到的載波信號(hào)解調(diào)為數(shù)字信號(hào), 經(jīng)RXD線送給DTE。</p><p>  RI&#0;&#0;振鈴信號(hào) Ringing當(dāng)DCE收到交換機(jī)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效,通知DTE已被呼叫。</p><p>  表5 RS-232C的接口信號(hào)&

50、lt;/p><p>  (3)RS-232電平轉(zhuǎn)換器—MAX232</p><p>  RS-232規(guī)定了自己的電氣標(biāo)準(zhǔn),由于它是在TTL電路之前研制的,因此它的電平不是+5V和地,而是采用負(fù)邏輯,即邏輯“0”:+5V~—5V,邏輯“1”:—5V~—15V。因此RS-232不能和TTL電平直接相連,必須進(jìn)行電平轉(zhuǎn)換。本設(shè)計(jì)選用MAX232。</p><p>  MAX2

51、32的引腳圖如下所示:</p><p>  圖9 MAX232的引腳圖</p><p><b>  管腳說(shuō)明如下</b></p><p> ?、貱0+、C0-、C1+、C1-是外接電容端;</p><p>  ②R1IN、R2IN是2路RS-232C電平信號(hào)接收輸入端;</p><p> ?、跼l

52、OUT、R2OUT是2路轉(zhuǎn)換后的TTL電平接收信號(hào)輸出端,送8051的RXD接收端;</p><p>  ④TlIN、T2IN是2路TTL電平發(fā)送輸入端,接8051的TxD發(fā)送端;</p><p> ?、軹lOUT、T2OUT是2路轉(zhuǎn)換后的發(fā)送RS-232C電平信號(hào)輸出端,接傳輸線;</p><p> ?、轛+經(jīng)電容接電源+5V;</p><p&

53、gt;<b>  ⑦V-經(jīng)電容接地。</b></p><p>  這種連接的傳輸介質(zhì)一般采用雙絞線,通信距離一般不超過(guò)15m,傳輸率小于20kB/s。</p><p> ?。?)RS-232總線規(guī)定[2]</p><p>  RS-232標(biāo)準(zhǔn)總線為25根,采用標(biāo)準(zhǔn)的D型25芯插頭座。引腳及功能如圖10所示</p><p>

54、;  圖10 RS-232C引腳圖</p><p>  在最簡(jiǎn)單的全雙工系統(tǒng)中,僅有發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和信號(hào)地三根線即可。</p><p>  對(duì)于MCS-51單片機(jī)。利用其RXD線、TXD線和一根地線。就可以構(gòu)成符合RS-232接口標(biāo)準(zhǔn)的全雙工串行通信口,這是PC機(jī)和單片機(jī)最簡(jiǎn)單的零調(diào)制經(jīng)濟(jì)型連接,是進(jìn)行全雙工通信所必須的最少線路。</p><p>  圖11給

55、出了采用MAX232芯片的PC機(jī)與單片機(jī)串行通信接口電路,與PC機(jī)相連采用PC機(jī)的9芯標(biāo)準(zhǔn)插座。</p><p>  圖11 PC機(jī)與單片機(jī)串行通信接口電路</p><p><b>  3 軟件編程</b></p><p>  將PC機(jī)鍵盤的輸入發(fā)送給單片機(jī),單片機(jī)收到PC機(jī)發(fā)來(lái)的數(shù)據(jù)后,回送同一數(shù)據(jù)給PC機(jī),并在屏幕上顯示出來(lái)。只要屏幕上顯示

56、的字符和所鍵入的字符相同,說(shuō)明兩者之間的通信正常。[3]</p><p>  雙方約定:波特率為2400bit/s,通信格式為8個(gè)數(shù)據(jù)位,一個(gè)停止位,無(wú)奇偶校驗(yàn)位。</p><p>  3.1 單片機(jī)通訊軟件。單片機(jī)通過(guò)中斷方式接收PC機(jī)發(fā)送的數(shù)據(jù),并回送。根據(jù)信息格式,可以設(shè)定單片機(jī)的串行口工作在方式1。在串行口方式1中,波特率是由定時(shí)器T1產(chǎn)生的。如晶振為6MHZ,波特率為2400bi

57、t/s,這時(shí)T1工作在方式2(自動(dòng)重新裝入初值)。經(jīng)計(jì)算,T1的初始值應(yīng)為F3H,SMOD=1。 </p><p>  程序框圖如圖12、13所示:</p><p>  圖12 主程序流程圖</p><p>  圖13 中斷服務(wù)子程序流程圖</p><p><b>  程序設(shè)計(jì)如下:</b></p><

58、;p>  ORG 0000H</p><p>  LJMP START ;主程序入口</p><p>  ORG 0023H</p><p>  LJMP INTS ;串行口中斷入口</p><p>  ORG 0100H</p><p>  

59、START:MOV TMOD,#20H ;初始化定時(shí)器1為方式2 </p><p>  MOV TL1,#0F3H ;與2400波特率相應(yīng)的定時(shí)器初值</p><p>  MOV TH1,#0F3H</p><p>  SETB TR1 ;啟動(dòng)定時(shí)器1</p><p>  MOV

60、 SCON,#50H ;串行口工作在方式1,允許接收</p><p>  MOV PCON,#80H ;SMOD=1</p><p>  SETB EA ;開(kāi)串行口中斷</p><p>  SETB ES ;允許中斷</p><p>  LOOP: SJMP

61、 LOOP ;等待數(shù)據(jù)接收</p><p>  INTS: CLR EA ;禁止中斷</p><p>  CLR RI ;清除中斷標(biāo)志RI</p><p>  MOV A,SBUF ;從SBUF取接收到的數(shù)據(jù)</p><p>  MOV

62、 SBUF,A ;回送</p><p>  WAIT: JNB TI,WAIT ;判斷回送是否完畢</p><p>  CLR TI ;清除TI標(biāo)志</p><p>  POP A ;發(fā)送完,恢復(fù)現(xiàn)場(chǎng)</p><p>  POP DPH<

63、/p><p>  POP DPL</p><p>  SETB EA ;允許中斷,準(zhǔn)備接收新的數(shù)據(jù)</p><p>  RETI ;中斷返回</p><p><b>  END </b></p><p>  3.2 PC機(jī)通信軟件&

64、lt;/p><p>  PC機(jī)方面的通信程序用匯編語(yǔ)言編寫(xiě)。</p><p><b>  程序如下:</b></p><p>  stack Segment para stack 'code'</p><p>  Db 256 dup(0)</p><

65、p>  Stack ends</p><p>  Code Segment para public 'code'</p><p>  Start proc far</p><p>  Assume cs:code,ss:stack</p><p><b>  PUSH DS<

66、;/b></p><p>  MOV AX,0</p><p>  PUSH AX</p><p><b>  CLI</b></p><p>  INPUT: MOV AL,80H ;置DLAB=1 </p><p>  MOV

67、 DX,3FBH ;寫(xiě)入通信線控制寄存器</p><p>  OUT DX,AL</p><p>  MOV AL,30H ;置產(chǎn)生2400 b/s波特率除數(shù)低位</p><p>  MOV DX,3F8H</p><p>  OUT DX,AL

68、 ;寫(xiě)入除數(shù)鎖存器低位</p><p>  MOV AL,00H ;置產(chǎn)生2400 b/s波特率除數(shù)高位</p><p>  MOV DX,3F9H</p><p>  OUT DX,AL ;寫(xiě)入除數(shù)鎖存器高位</p><p>  MOV

69、AL,03H ;設(shè)置數(shù)據(jù)格式</p><p>  MOV DX,3FBH ;寫(xiě)入通信線路控制寄存器</p><p>  OUT DX,AL</p><p>  MOV AL,00H ;禁止所有中斷</p><p>  MOV

70、 DX,3F9H</p><p>  OUT DX,AL</p><p>  WAIT1: MOV DX,3FDH ;發(fā)送保持寄存器不空則循環(huán)等待</p><p>  IN AL,DX</p><p>  TEST AL,20H</p><p>  JZ

71、WAIT1</p><p>  WAIT2: MOV AH,1 ;檢查鍵盤緩沖區(qū),無(wú)字符則循環(huán)等待</p><p>  INT 16H</p><p>  JZ WAIT2</p><p>  MOV AH,0 ;若有,則取鍵盤字符&

72、lt;/p><p>  INT 16H</p><p>  SEND: MOV DX,3F8H ;發(fā)送鍵入的字符</p><p>  OUT DX,AL</p><p>  RECE: MOV DX,3FDH ;檢查接收數(shù)據(jù)是否準(zhǔn)備好</

73、p><p>  IN AL,DX</p><p>  TEST AL,01H</p><p>  JZ RECE</p><p>  TEST AL,1AH ;判斷接收到的數(shù)據(jù)是否出錯(cuò)</p><p>  JNZ ERROR</p>

74、<p>  MOV DX,3F8H</p><p>  IN AL,DX ;讀取數(shù)據(jù)</p><p>  AND AL,7EH ;去掉無(wú)效位</p><p>  PUSH AX</p><p>  MOV BX,0

75、 ;顯示接收字符</p><p>  MOV AH,14</p><p>  INT 10H</p><p>  POP AXCMP AL,0DH ;接到的字符若不是回車則返回</p><p>  JNZ WAIT1</p><p>

76、;  MOV AL,0AH ;是回車則回車換行</p><p>  MOV BX,0</p><p>  MOV AH,14H</p><p>  INT 10H</p><p>  JMP WAIT1</p><p>  ERROR: MOV

77、DX,3F8H ;讀接收寄存器,清除錯(cuò)誤字符</p><p>  IN AL,DX</p><p>  MOV AL, '?' ;顯示‘?’號(hào)</p><p>  MOV BX,0</p><p>  MOV AH,14H</p&g

78、t;<p>  INT 10H</p><p>  JMP WAIT1 ;繼續(xù)循環(huán)</p><p>  Start ends</p><p>  Code ends</p><p>  end start</p><p><b>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論