基于at89s52單片機(jī)的串口通訊硬件系統(tǒng)設(shè)計(jì)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩104頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要 </b></p><p>  計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊兩種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前

2、最常用的一種串行通訊接口。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。</p><p>  隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對(duì)一些工業(yè)控制

3、系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),利用MAX232轉(zhuǎn)換芯片實(shí)現(xiàn)PC機(jī)的RS-232串行接口與外部設(shè)備進(jìn)行通信,是許多測(cè)控系統(tǒng)中常用的一種通信解決方案。因此如何實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通訊具有非常重要的現(xiàn)實(shí)意義。</p><p>  關(guān)鍵詞:串行通訊;AT89S52;MAX232</p><p><b>

4、;  Abstract</b></p><p>  The computer and the computer or between computer and terminal transfer data can use serial communication and parallel communication in two ways. Because of serial communicatio

5、n way has less use of lines, low cost, especially in remote transmission, avoid multiple line characteristics, widely adopted inconsistent. In serial communication, communication both adopt a request, make different stan

6、dard interface of equipment can be easily connected to communicate. RS - 232 - C interface (also called </p><p>  Along with the computer technology, especially the development of single chip, Internet techn

7、ology. People have increasingly used to some industry single ship controlling system such as temperature, flow and pressure testing and control parameters such as. PC machines have powerful monitoring and management func

8、tions, and SCM has rapid and flexible control characteristics.Use MAX232 conversion chip realize the PC RS - 232 serial interface communication with external devices, is used in many meas</p><p>  Keywords:

9、serial communication;AT89S52;MAX232</p><p><b>  目錄</b></p><p><b>  1 緒論1</b></p><p>  1.1選題背景和意義1</p><p>  1.2國(guó)內(nèi)外研究現(xiàn)狀1</p><p>  

10、1.3研究的主要內(nèi)容2</p><p>  2 串口通訊協(xié)議3</p><p>  2.1串口通訊的概念及背景3</p><p>  2.2 串口通訊的特點(diǎn)3</p><p>  2.3 串口通訊的應(yīng)用3</p><p>  2.4串口通訊的選擇4</p><p>  2.5 RS-

11、232C標(biāo)準(zhǔn)介紹5</p><p>  2.5.1 RS-232C引腳定義5</p><p>  2.5.2 RS-232C電氣特性6</p><p>  2.6串口通訊原理7</p><p>  3 串口通訊硬件系統(tǒng)設(shè)計(jì)11</p><p>  3.1 AT89S52單片機(jī)的概述11</p>

12、<p>  3.2 AT89S52單片機(jī)存儲(chǔ)器13</p><p>  3.3 定時(shí)系統(tǒng)13</p><p>  3.4中斷系統(tǒng)15</p><p>  3.4.1中斷的基本概念15</p><p>  3.4.2中斷源15</p><p>  3.4.3中斷控制16</p>&l

13、t;p>  3.5 AT89S52單片機(jī)的串行口16</p><p>  3.6 RS-232C與TTL邏輯電平的轉(zhuǎn)換17</p><p>  3.7單片機(jī)開發(fā)板介紹19</p><p>  3.8單片機(jī)與PC串口通訊的收發(fā)原理22</p><p>  4 串口通訊軟件設(shè)計(jì)23</p><p>  4.

14、1單片機(jī)C51編程介紹23</p><p>  4.2 Keil C開發(fā)軟件及應(yīng)用23</p><p>  4.2.1開發(fā)軟件介紹23</p><p>  4.2.2 keil uVision2軟件使用方法24</p><p>  4.3串口通訊軟件流程圖30</p><p>  5 系統(tǒng)運(yùn)行調(diào)試32<

15、;/p><p>  5.1調(diào)試助手設(shè)置32</p><p>  5.2通訊測(cè)試33</p><p>  5.3 調(diào)試注意事項(xiàng)34</p><p><b>  6 結(jié)論35</b></p><p><b>  致謝36</b></p><p>&l

16、t;b>  參考文獻(xiàn)37</b></p><p>  附錄一 串口通訊程序源代碼38</p><p>  附錄二 程序流程圖41</p><p><b>  1 緒論</b></p><p>  1.1選題背景和意義</p><p>  在實(shí)驗(yàn)和工業(yè)中,串口通訊是常用的計(jì)

17、算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,同時(shí)串口通訊是工業(yè)自動(dòng)化、智能終端、通信管理等領(lǐng)域傳統(tǒng)且重要的通訊手段。而串口通信協(xié)議是通信設(shè)備通用的通信協(xié)議,可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。單片機(jī)技術(shù)自發(fā)展以來已走過了近20年的發(fā)展路程 。以廣泛的應(yīng)用領(lǐng)域拉動(dòng),表現(xiàn)出較微處理器更具個(gè)性的發(fā)展趨勢(shì)。小到遙電子玩具,大到航空航天技術(shù)等電子行業(yè)都有單片機(jī)應(yīng)用的影子。AT89S52單片機(jī)以其獨(dú)特的串行通信功能為主、從設(shè)備之間的數(shù)據(jù)傳輸提供了便利,可以通

18、過軟件編程來表達(dá)到不同的效果,實(shí)現(xiàn)各種各樣不同的功能,具有靈活性強(qiáng)、可靠性高、可擴(kuò)展性好等優(yōu)點(diǎn),因此串口通訊作為設(shè)計(jì)課題很有價(jià)值。</p><p>  計(jì)算機(jī)通信技術(shù)越來越成熟,在眾多通信實(shí)現(xiàn)方案中,串行通行技術(shù)有著廣泛的應(yīng)用。尤其是在工業(yè)控制領(lǐng)域,微機(jī)與微機(jī)、微機(jī)與外設(shè)、微機(jī)與分布式下位機(jī)等都可以通過RS232串行端口互連通信,以實(shí)現(xiàn)控制和傳輸數(shù)據(jù)等目的。各種智能終端設(shè)備都可以通過通訊的方式聯(lián)接起來,形成高度的

19、自動(dòng)化控制集成系統(tǒng)。</p><p>  1.2國(guó)內(nèi)外研究現(xiàn)狀</p><p>  在工業(yè)控制領(lǐng)域(如DCS系統(tǒng)),國(guó)內(nèi)外不少公司開展了這方面的研制開發(fā)工作,并取得了成功,已產(chǎn)生出若干性能良好、應(yīng)用廣泛的串行接口總線。如Philips開發(fā)出的一種雙向二線串行總線的I2C總線、Intel的位總線、National Semiconductor Corporation開發(fā)的一種三線同步串行接口總

20、線的Microwire 總線,以及美國(guó)Motorola公司生產(chǎn)的68系列單片機(jī)內(nèi)含的兩種串行接口總線的SPI/SCI 總線等。在競(jìng)爭(zhēng)和發(fā)展中,一些企業(yè)級(jí)串行接口總線可望發(fā)展形成新的通用串行接口標(biāo)準(zhǔn)。例如Philips,與DEC共同開發(fā)和制定的Access 總線就是一種以I2C總線為基礎(chǔ)的開放式串行聯(lián)接系統(tǒng)。</p><p>  無論是通信主機(jī)發(fā)送信息至指定的RS-232串口設(shè)備或是RS-232串口設(shè)備發(fā)送信息至指

21、定通信主機(jī),都可以經(jīng)其輕易且正確地傳輸。如中國(guó)波士電子創(chuàng)造了許多種世界上第一的RS-232/RS-485產(chǎn)品,波士的USB232是專門為工業(yè)通信設(shè)計(jì)制造的,特別強(qiáng)調(diào)對(duì)工業(yè)通信的適用性。</p><p>  1.3研究的主要內(nèi)容</p><p>  本文主要是利用AT89S52單片機(jī)的串口功能單元實(shí)現(xiàn)單片機(jī)與PC機(jī)間數(shù)據(jù)通訊。首先文中介紹了串口通訊協(xié)議,在此基礎(chǔ)上設(shè)計(jì)了基于單片機(jī)的簡(jiǎn)易通訊板

22、卡,通訊系統(tǒng)硬件和配套的軟件,最后,把PC機(jī)和該板卡通過串口線連接起來,實(shí)現(xiàn)兩者的數(shù)據(jù)通訊功能。通過實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù)。通過完成一個(gè)包括電路設(shè)計(jì)和程序開發(fā)的完整過程,了解開發(fā)單片機(jī)應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)打下基礎(chǔ)。</p><p><b>  2 串口通訊協(xié)議</b></p><p>  2.1串口通訊的概念及背景<

23、;/p><p>  串行接口簡(jiǎn)稱串口,也稱串行通信接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。</p><p>  計(jì)算機(jī)與外界的信息交換稱為通信,通信有并行和串行兩種方法。并行通信是數(shù)據(jù)字節(jié)的各位同時(shí)發(fā)送。而串行通信是指數(shù)據(jù)一位一位的按順序傳送。</p><p>  串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115kbps~230kbps。串口出現(xiàn)的初期是

24、為了實(shí)現(xiàn)連接計(jì)算機(jī)外設(shè)的目的,初期串口一般用來連接鼠標(biāo)和外置Modem以及老式攝像頭和寫字板等設(shè)備。串口也可以應(yīng)用于由于兩臺(tái)計(jì)算機(jī)(或設(shè)備)之間的互聯(lián)及數(shù)據(jù)傳輸。由于串口不支持熱插拔及傳輸速率較低目前部分新主板和大部分便攜電腦已開始取消該接口,目前串口多用于工控和測(cè)量設(shè)備以及部分通信設(shè)備中。</p><p>  2.2 串口通訊的特點(diǎn)</p><p>  串行通訊的特點(diǎn)是:數(shù)據(jù)按位傳送,最

25、少只需一根傳輸線即可完成,可大大降低硬件成本,特別適合遠(yuǎn)距離通信。但傳輸速度較低。串行通訊的距離可以從幾米到幾千米。根據(jù)信息的傳送方向,串行通訊可以進(jìn)一步分為單工、半雙工和全雙工三種。串口通信具有穩(wěn)定可靠,成本低廉,軟件易實(shí)現(xiàn)等優(yōu)點(diǎn)。</p><p>  2.3 串口通訊的應(yīng)用</p><p>  對(duì)于那些與計(jì)算機(jī)相距不遠(yuǎn)的人-機(jī)交換設(shè)備和串行存儲(chǔ)的外部設(shè)備如終端、打印機(jī)、邏輯分析儀、磁盤

26、等,采用串行方式交換數(shù)據(jù)也很普遍。在實(shí)時(shí)控制和管理方面,采用多臺(tái)微機(jī)處理機(jī)組成分級(jí)分布控制系統(tǒng)中,各 CPU 之間的通信一般都是串行方式。所以串行接口是微機(jī)應(yīng)用系統(tǒng)常用的接口。許多外設(shè)和計(jì)算機(jī)按串行方式進(jìn)行通信,這里所說的串行方式,是指外設(shè)與接口電路之間的信息傳送方式,實(shí)際上, CPU 與接口之間仍按并行方式工作。</p><p>  單片機(jī)系統(tǒng)中經(jīng)常使用串口進(jìn)行外部通訊,因此,串口通訊部分是單片機(jī)功能模塊極為重

27、要的一部分。早期的8位單片機(jī),如Intel的MCS-48系列,并沒有在單片機(jī)芯片中集成串行通訊模塊,使用上受到很大的限制。從MSC-51系列起,串行通訊模塊作為單片機(jī)的一個(gè)重要功能,被集成到了單片機(jī)內(nèi)部。Atmel的AT89S52,其內(nèi)部集成了一個(gè)全雙工的串行通訊接口,并提供了四種工作模式。此后在一系列的單片機(jī)設(shè)計(jì)中,都將串行通信模塊作為標(biāo)準(zhǔn)配置,部分高檔單片機(jī)還增加了串口的數(shù)量和功能。因此,串口仍是當(dāng)前工業(yè)控制領(lǐng)域比較廣泛的通信方式。

28、</p><p>  2.4串口通訊的選擇 </p><p>  串行通訊的標(biāo)準(zhǔn)接口存在多種,如RS-232,RS-485,USB接口,IEEE-1394等, 它們各有特點(diǎn), 應(yīng)用的領(lǐng)域也各有側(cè)重。RS-485在傳輸數(shù)據(jù)時(shí)抗噪聲干擾的能力比較強(qiáng),常用于工業(yè)生產(chǎn)領(lǐng)域;USB接口和IEEE-1394傳輸速度較快, 但有些計(jì)算機(jī)和操作系統(tǒng)不支持這樣的接口;RS-232 是PC機(jī)與通信工業(yè)中應(yīng)用最

29、廣泛的一種串行接口;RS-232 被定義為一種在速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS-232-C接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,如傳輸距離短,傳輸速率低、有電平偏移,抗干擾能力差等缺點(diǎn)。但是經(jīng)過許多年來RS-232 器件以及通信技術(shù)的改進(jìn),RS-232 的通信距離已經(jīng)大大增加而且綜合其性能、價(jià)格和實(shí)用性, 對(duì)該系統(tǒng)而言, 利用RS-232 進(jìn)行端口通訊最為合適。</p><p>  為了實(shí)現(xiàn)系統(tǒng)的可靠實(shí)時(shí)

30、性傳輸, 本系統(tǒng)在設(shè)計(jì)的過程中采用了三線制接法,即僅采用RS-2232 端口的地端、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三引腳與外部相連。</p><p>  接線如圖2.1所示。</p><p>  圖2.1 RS-232端口連接圖</p><p>  2.5 RS-232C標(biāo)準(zhǔn)介紹</p><p>  串口通信接口標(biāo)準(zhǔn)中,RS-232C接口是目前最常用的一

31、種串行通訊接口。RS-232C標(biāo)準(zhǔn)的全稱是EIA-RS-232C標(biāo)準(zhǔn),EIA代表美國(guó)電子工業(yè)協(xié)會(huì),RS代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS-232的最新一次修改。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。RS-232C廣泛應(yīng)用于Internet,工業(yè)控制電信,金融,終端連接等應(yīng)用領(lǐng)域。</p><p>  2.5.1 RS-232

32、C引腳定義</p><p>  傳統(tǒng)的RS-232-C接口標(biāo)準(zhǔn)有22根線,采用標(biāo)準(zhǔn)25芯D型插頭座(DB25),通常插頭在DCE端,插座在DTE端。后來為了簡(jiǎn)化串口的線路連接,出現(xiàn)了簡(jiǎn)化的9芯D型插座(DB9),現(xiàn)在應(yīng)用中25芯插頭座已很少采用。下圖為DB9連接器的引腳分布。</p><p>  圖2.2 DB9連接器的引腳圖</p><p>  RS-232C的9

33、芯連接器對(duì)應(yīng)的引腳說明如下圖所示。</p><p>  表2.1 9針串行口的針腳功能表</p><p><b>  a.聯(lián)絡(luò)控制信號(hào)線</b></p><p>  DSR:數(shù)據(jù)裝置準(zhǔn)備好——有效時(shí)(ON)狀態(tài),表明MODEM處于可以使用的狀態(tài)。 </p><p>  DTR:數(shù)據(jù)終端準(zhǔn)備好——有效時(shí)(ON)狀態(tài),表明數(shù)

34、據(jù)終端可以使用。 </p><p>  這兩個(gè)信號(hào)有時(shí)連到電源上,一上電就立即有效。這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說明通信鏈路可以開始進(jìn)行通信了,能否開始進(jìn)行通信要由下面的控制信號(hào)決定。 </p><p>  RTS:請(qǐng)求發(fā)送——用來表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM請(qǐng)求發(fā)送。它用來控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。

35、 </p><p>  CTS:允許發(fā)送——用來表示DCE準(zhǔn)備好接收DTE發(fā)來的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。 </p><p>  DCD:載波檢測(cè)——用來表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來的載

36、波信號(hào)時(shí),使DCD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來的載波信號(hào)解調(diào)成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。 </p><p>  RI:振鈴指示——當(dāng)MODEM收到交換臺(tái)送來的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。 </p><p>  b.數(shù)據(jù)發(fā)送與接收線</p><p>  TxD:發(fā)送數(shù)據(jù)——通過TxD終端將串行

37、數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。 </p><p>  RxD: 接收數(shù)據(jù)——通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCE→DTE)。 </p><p><b>  c.地線 </b></p><p>  有兩根線SG、PG——信號(hào)地和保護(hù)地信號(hào)線,無方向。 </p><p>  上述控制信號(hào)線何時(shí)

38、有效,何時(shí)無效的順序表示了接口信號(hào)的傳送過程。例如,只有當(dāng)DSR和DTR都處于有效(ON)狀態(tài)時(shí),才能在DTE和DCE之間進(jìn)行傳送操作。若DTE要發(fā)送數(shù)據(jù),則預(yù)先將DTR線置成有效(ON)狀態(tài),等CTS線上收到有效(ON)狀態(tài)的回答后,才能在TxD線上發(fā)送串行數(shù)據(jù)。 </p><p>  2.5.2 RS-232C電氣特性</p><p>  在TxD和RxD上:邏輯1:-3V~-15V

39、</p><p>  邏輯0:+3~+15V </p><p>  在RTS、CTS、DSR、DTR和DCD等控制線上: </p><p>  信號(hào)有效(接通,ON狀態(tài),正電壓):+3V~+15V </p><p>  信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓):-3V~-15V</p><p>  以上規(guī)定說明了RS-32

40、3C標(biāo)準(zhǔn)對(duì)邏輯電平的定義。對(duì)于數(shù)據(jù)(信息碼):邏輯“1”的電平低于-3V,邏輯“0”的電平高于+3V;對(duì)于控制信號(hào):接通狀態(tài)信號(hào)有效的電平高于+3V,斷開狀態(tài)信號(hào)無效的電平低于-3V,也就是當(dāng)傳輸電平的絕對(duì)值大于3V時(shí),電路可以有效地檢查出來,介于-3~+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實(shí)際工作時(shí),應(yīng)保證電平在±(3~15)V之間。</p><p><b&

41、gt;  2.6串口通訊原理</b></p><p><b>  a.通訊原理</b></p><p>  圖2.3 串口通信方框圖</p><p>  由于串口通訊是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。對(duì)于兩個(gè)進(jìn)行通訊的端口,波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)這些參數(shù)都必須是匹配的。</p>&

42、lt;p>  起止式異步協(xié)議是一個(gè)字符一個(gè)字符傳輸,并且傳送一個(gè)字符總是以起始位開始,以停止位結(jié)束,字符之間沒有固定的時(shí)間間隔要求。其格式如圖2.4 所示。每一個(gè)字符的前面都有一位起始位,字符本身有5~7位數(shù)據(jù)位組成,接著字符后面是一位校驗(yàn)位(也可以沒有校驗(yàn)位),最后是一位停止位,后面是不定長(zhǎng)度的空閑位。停止位和空閑位都規(guī)定為高電平,這樣就保證起始位開始處一定有一個(gè)下跳沿。</p><p>  圖2.4 起

43、止式異步協(xié)議圖</p><p>  傳送時(shí),數(shù)據(jù)的低位在前,高位在后,圖2.5表示了波形11110100。即ASCII碼11110100=F4H。 </p><p>  圖2.5 傳送波形圖</p><p>  起始位實(shí)際上是作為聯(lián)絡(luò)信號(hào)附加進(jìn)來的,當(dāng)它變?yōu)榈碗娖綍r(shí),告訴收方傳送開始。它的到來,表示下面接著是數(shù)據(jù)位來了,要準(zhǔn)備接收。而停止位標(biāo)志一個(gè)字符的結(jié)束,它的出

44、現(xiàn),表示一個(gè)字符傳送完畢。這樣就為通信雙方提供了何時(shí)開始收發(fā),何時(shí)結(jié)束的標(biāo)志。傳送開始前,發(fā)收雙方把所采用的起止式格式和數(shù)據(jù)傳輸速率作統(tǒng)一規(guī)定。傳送開始后,接收設(shè)備不斷地檢測(cè)傳輸線,看是否有起始位到來。當(dāng)收到一系列的“1”(停止位或空閑位)之后,檢測(cè)到一個(gè)下跳沿,說明起始位出現(xiàn),起始位經(jīng)確認(rèn)后,就開始接收所規(guī)定的數(shù)據(jù)位和奇偶校驗(yàn)位以及停止位。經(jīng)過處理將停止位去掉,把數(shù)據(jù)位拼裝成一個(gè)并行字節(jié),并且經(jīng)校驗(yàn)后,無奇偶錯(cuò)才算正確的接收一個(gè)字符。

45、一個(gè)字符接收完畢,接收設(shè)備有繼續(xù)測(cè)試傳輸線,監(jiān)視“0”電平的到來和下一個(gè)字符的開始,直到全部數(shù)據(jù)傳送完。</p><p>  由上述工作過程可看到,異步通信是按字符傳輸?shù)?,每傳輸一個(gè)字符,就用起始位來通知收方,以此來重新核對(duì)收發(fā)雙方同步。若接收設(shè)備和發(fā)送設(shè)備兩者的時(shí)鐘頻率略有偏差,這也不會(huì)因偏差的累積而導(dǎo)致錯(cuò)位,加之字符之間的空閑位也為這種偏差提供一種緩沖,所以異步串行通信的可靠性高。但由于要在每個(gè)字符的前后加上

46、起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約80%。因此,起止協(xié)議一般用在數(shù)據(jù)速率較慢的場(chǎng)合(小于19.2kbps)。在高速傳送時(shí),一般要采用同步協(xié)議。</p><p>  在PC機(jī)和單片機(jī)的通訊中,確定一個(gè)明確而合理的通訊協(xié)議是關(guān)鍵,包括對(duì)數(shù)據(jù)格式、通訊方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問題做出統(tǒng)一規(guī)定。</p><p>  實(shí)現(xiàn)PC機(jī)與單片機(jī)的串口通訊,

47、我們采用MAX232來實(shí)現(xiàn)電平轉(zhuǎn)換,用三線制連接串口,也就是說和計(jì)算機(jī)的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡(jiǎn)單的連接方法,另外,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接。電路連接如圖2.6所示。</p><p>  圖2.6 串口通訊原理圖</p><p><b>  在此

48、電路中要注意:</b></p><p> ?。?)VCC接電源,必須保證穩(wěn)定可靠。</p><p> ?。?)管腳不可懸空,必須連到VCC,或者通過上拉電阻接到VCC。</p><p>  (3)復(fù)位電路建議采用傳統(tǒng)的RC復(fù)位,最好多帶一個(gè)復(fù)位按鍵,以便操作。</p><p> ?。?)晶振的頻率點(diǎn)不是任意的,推薦使用11.059

49、2MHZ或者22.1184MHZ。</p><p> ?。?)管腳請(qǐng)懸空,不要接GND。</p><p><b>  b.異步通信</b></p><p>  串行通信有兩種基本的通信方式,即異步通信和同步通信。同步通信使用數(shù)據(jù)塊傳送信息,而不是字節(jié),每個(gè)數(shù)據(jù)塊的開始使用同步字符,使接收和發(fā)送同步。常用于信息量大,速度要求高的場(chǎng)合。</p

50、><p>  異步傳送的特點(diǎn)是數(shù)據(jù)在線路上的傳送不連續(xù)。傳送時(shí)數(shù)據(jù)以一幀信息(一個(gè)字符)為單位進(jìn)行傳送的。一幀信息由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位4個(gè)部分組成,如表2.2所示。常用于信息量不大,速度較低的場(chǎng)合。在計(jì)算機(jī)測(cè)控系統(tǒng)中,由于串行接口的標(biāo)準(zhǔn)化,一般采用異步串行通信方式,以提高其通用性。</p><p><b>  表2.2 幀結(jié)構(gòu)表</b></p>

51、<p>  停止位后的空閑位用于等待傳送,用高電平表示。這樣接收和發(fā)送可以隨時(shí)或間斷進(jìn)行,而不受時(shí)間的限制。</p><p>  數(shù)據(jù)位:是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于想傳送的信息。例如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ASCII碼),那

52、么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。 </p><p>  停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止

53、位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。</p><p>  3 串口通訊硬件系統(tǒng)設(shè)計(jì)</p><p>  3.1 AT89S52單片機(jī)的概述</p><p>  單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p>  通常,單片機(jī)由單塊

54、集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。如圖3.1所示AT89S52單片機(jī)結(jié)構(gòu)。

55、</p><p>  圖3.1 AT89S52單片機(jī)結(jié)構(gòu)圖</p><p><b>  引腳說明</b></p><p><b>  a.電源部分</b></p><p>  VCC:接+5V電壓。   </p><p><b>  GND:接信號(hào)地。</b&

56、gt;</p><p>  b.I/O口部分   </p><p>  P0口:(P0.0~P0.7)P0口為一個(gè)8位雙向I/O口,在不接片外存儲(chǔ)器和不擴(kuò)展I/O口時(shí),可作為準(zhǔn)雙向輸入/輸出口。在接片外存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口分時(shí)復(fù)用為地8位地址總線和雙向數(shù)據(jù)總線?! ?lt;/p><p>  P1口:(P1.0~P1.7)P1口是一個(gè)8位雙向I/O口。  <

57、;/p><p>  P2口:(P2.0~P2.7)P2口為8位準(zhǔn)雙向I/O口,在接有片外存儲(chǔ)器或擴(kuò)展I/O口且尋址范圍超過256B時(shí),P2口用作高8位地址總線。</p><p>  P3口:(P3.0~P3.7)P3口是一個(gè)8位雙向I/O口。它還有第二功能。</p><p>  表3.1 P3口第二功能表</p><p><b>  c

58、.控制與復(fù)位部分</b></p><p>  RST:復(fù)位信號(hào)。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE/:地址鎖存允許輸出。當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。</p><

59、p> ?。和獠砍绦虼鎯?chǔ)器的選通信號(hào)。當(dāng)讀外部ROM時(shí),有效,實(shí)現(xiàn)從片外程序存儲(chǔ)器的讀操作。</p><p>  /V:為片外程序存儲(chǔ)器選用端。當(dāng)保持低電平時(shí),只選用片外部程序存儲(chǔ)器。否則,單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲(chǔ)器。</p><p><b>  d.外接晶振部分 </b></p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)

60、部時(shí)鐘工作電路的輸入。   </p><p>  XTAL2:反向振蕩器的輸出。</p><p>  3.2 AT89S52單片機(jī)存儲(chǔ)器 </p><p>  AT89S52單片機(jī)的存儲(chǔ)結(jié)構(gòu)與普通的微機(jī)系統(tǒng)不同,其程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器使用兩個(gè)獨(dú)立的地址空間,是單獨(dú)編址的。從結(jié)構(gòu)上看其存儲(chǔ)空間可以分為片內(nèi),片外程序存儲(chǔ)器與片內(nèi),片外數(shù)據(jù)存儲(chǔ)器,特殊功能寄存器(SFR

61、)。</p><p><b>  a.程序存儲(chǔ)器</b></p><p>  單片機(jī)的程序存儲(chǔ)器用于保存在單片機(jī)中執(zhí)行的程序和表格常數(shù)等信息。AT89S52單片機(jī)執(zhí)行指令是根據(jù)引腳的電平來決定從片內(nèi)程序存儲(chǔ)器還是片外程序存儲(chǔ)器讀取指令的。當(dāng)=1時(shí),先執(zhí)行片內(nèi)程序存儲(chǔ)器的程序,當(dāng)程序計(jì)數(shù)器PC內(nèi)容超過片內(nèi)程序存儲(chǔ)器地址的最大值,將自動(dòng)轉(zhuǎn)向片外程序存儲(chǔ)器。當(dāng)=0時(shí),CPU

62、直接從片外程序存儲(chǔ)器讀取指令。</p><p><b>  b.數(shù)據(jù)存儲(chǔ)器</b></p><p>  AT89S52單片機(jī)片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器是兩個(gè)獨(dú)立的地址空間,應(yīng)分別單獨(dú)編址。片內(nèi)數(shù)據(jù)存儲(chǔ)器除RAM外還有特殊功能寄存器(SFR)。片內(nèi)RAM又可分為工作寄存區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)3個(gè)部分。</p><p> ?。?)工作寄存區(qū)為00H~1

63、FH,當(dāng)前程序使用的工作寄存器是由程序狀態(tài)字PSW中的RS0位和RS1位來決定的,通過修改PSW寄存器中的RS0位和RS1位,可以快速的切換工作區(qū)。</p><p> ?。?)位尋址區(qū)為20H~2FH,這16個(gè)單元(共128位)的每一位都賦予了一個(gè)位地址,地址范圍是00H~7FH。</p><p>  (3)數(shù)據(jù)緩沖區(qū)為30H~7FH,也是用戶RAM區(qū),多用于堆棧的數(shù)據(jù)空間。</p&

64、gt;<p><b>  c.特殊功能寄存器</b></p><p>  特殊功能寄存器(SFR)又稱為專用寄存器,專用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口、串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。</p><p><b>  3.3 定時(shí)系統(tǒng)</b></p><p>  在AT89S5

65、2 中,定時(shí)器0 和定時(shí)器1 的操作與AT89C51 和AT89C52一樣。定時(shí)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,它既可以做定時(shí)器,又可以做事件計(jì)數(shù)器。定時(shí)器0 和定時(shí)器1可編程控制4種工作模式。還包括兩個(gè)定時(shí)控制寄存器TCON和TMOD。</p><p>  a.定時(shí)器/計(jì)數(shù)器方式控制寄存器TMOD</p><p>  TMOD的低4位用于T0,高4位用于T1。如表3.2所示。</p&

66、gt;<p>  表3.2 TMOD格式定義表</p><p>  C/:定時(shí)或計(jì)數(shù)功能選擇位,當(dāng)C/=1時(shí)為計(jì)數(shù)方式,當(dāng)C/=0時(shí),為定時(shí)方式。M1、M0:定時(shí)/計(jì)數(shù)器工作方式選擇位如表3.3所示。</p><p>  表3.3 定時(shí)器/計(jì)數(shù)器工作方式表</p><p>  GATE:門控位,用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。

67、</p><p>  定時(shí)器/計(jì)數(shù)器在工作方式2時(shí),M1、M0分別設(shè)為1、0,此時(shí)是一個(gè)自動(dòng)裝入初值的8位定時(shí)器/計(jì)數(shù)器。此時(shí)計(jì)數(shù)器的計(jì)數(shù)值為:N=28-X=256-X</p><p>  b.定時(shí)器/計(jì)數(shù)器控制寄存器TCON</p><p>  定時(shí)器/計(jì)數(shù)器控制寄存器TCON的高4位用于定時(shí)/計(jì)數(shù)器的啟動(dòng)和溢出標(biāo)示。如表3.4所示。</p>&l

68、t;p>  表3.4 TCON位定義格式表</p><p>  TF1:定時(shí)/計(jì)數(shù)器T1溢出標(biāo)志。</p><p>  TF0: 定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志。</p><p>  TR1:T1定時(shí)器/計(jì)數(shù)器的運(yùn)行控制位,當(dāng)TR1=1時(shí),啟動(dòng)T1開始計(jì)數(shù),當(dāng)TR1=0時(shí),T1停止計(jì)數(shù)。</p><p>  TR0:T0定時(shí)器/計(jì)數(shù)器的運(yùn)行控

69、制位,當(dāng)TR0=1時(shí)啟動(dòng)T0開始計(jì)數(shù),當(dāng)TR0=0時(shí),T0停止計(jì)數(shù)。</p><p><b>  3.4中斷系統(tǒng)</b></p><p>  3.4.1中斷的基本概念</p><p>  中斷系統(tǒng)是計(jì)算機(jī)重要的組成部分。它為計(jì)算機(jī)的多任務(wù)處理提供了一種解決方法,多用于實(shí)時(shí)控制,故障自動(dòng)檢測(cè)人機(jī)互動(dòng)等應(yīng)用環(huán)境。</p><p&

70、gt;  所謂中斷是指CPU在進(jìn)行某項(xiàng)任務(wù)處理時(shí)響應(yīng)系統(tǒng)中或系統(tǒng)外的某個(gè)事件的一種響應(yīng)過程,即CPU暫時(shí)停止現(xiàn)行程序的執(zhí)行,而自動(dòng)轉(zhuǎn)去執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序。當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點(diǎn)處,繼續(xù)執(zhí)行原來的程序。實(shí)現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)統(tǒng)稱為中斷系統(tǒng)。</p><p><b>  3.4.2中斷源</b></p><p>  AT8

71、9S52有6個(gè)中斷源:兩個(gè)外部中斷源,。三個(gè)定時(shí)中斷(定時(shí)器0、1、2)和一個(gè)串行中斷。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。當(dāng)系統(tǒng)產(chǎn)生中斷時(shí),6個(gè)中斷源的中斷請(qǐng)求標(biāo)志分別由特殊功能寄存器TCON和SCON的相應(yīng)位來鎖存。</p><p>  a.定時(shí)器/計(jì)數(shù)器控制寄存器TCON</p><p>  TCON是定時(shí)器/計(jì)數(shù)器T0、T1的控制寄存器,同時(shí)他又能鎖存外部中斷

72、請(qǐng)求標(biāo)志和定時(shí)/計(jì)數(shù)器T0,T1的溢出中斷標(biāo)志,如上表3.4中所示。</p><p>  IE1:外部中斷請(qǐng)求標(biāo)志。IE1=1時(shí)表示外部中斷向CPU請(qǐng)求中斷,當(dāng)CPU相應(yīng)中斷時(shí)由硬件清0。</p><p>  IT1:外部中斷觸發(fā)控制位。IT1=0,則選擇外部中斷為電平觸發(fā)方式。IT1=1,則選擇外部中斷為跳變觸發(fā)方式。</p><p>  IE0:外部中斷請(qǐng)求標(biāo)志

73、。IE0=1表示外部中斷向CPU請(qǐng)求中斷,當(dāng)CPU相應(yīng)中斷時(shí)由硬件清0。</p><p>  IT0:外部中斷請(qǐng)求標(biāo)志。</p><p>  b.串行口控制寄存器SCON</p><p>  當(dāng)AT89S52單片機(jī)內(nèi)置的串行口接收到或者發(fā)送完數(shù)據(jù)時(shí),會(huì)向CPU發(fā)出串口中斷,并根據(jù)中斷產(chǎn)生的原因相應(yīng)的置T1位和R1位。CPU響應(yīng)中斷后并不自動(dòng)清0。T1位和R1位分別位

74、于寄存器SCON的如表3.5所示。</p><p>  表3.5 SCON位定義格式表</p><p>  T1:串口發(fā)送中斷標(biāo)志。當(dāng)串行口發(fā)送完數(shù)據(jù)時(shí)置位T1,同時(shí)向CPU發(fā)送串口中斷請(qǐng)求,CPU相應(yīng)中斷后不對(duì)該位清0。</p><p>  R1:串口接收中斷標(biāo)志。當(dāng)串行口接收到一個(gè)數(shù)據(jù)時(shí)置位R1,同時(shí)向CPU發(fā)送串口中斷請(qǐng)求,CPU相應(yīng)中斷后不對(duì)該位清0。<

75、;/p><p><b>  3.4.3中斷控制</b></p><p>  使用中斷允許寄存器IE可以方便的對(duì)所有的中斷源或?qū)δ承┨囟ǖ闹袛嘣催M(jìn)行開啟和屏蔽控制。IE的各位如表3.6所示。</p><p>  表3.6 IE位定義格式表</p><p>  EA:CPU 中斷(總)允許位。EA=1,CPU開放中斷,EA=0,

76、CPU屏蔽所有中斷。</p><p>  ES:串行口中斷開放控制位。ES=1,CPU相應(yīng)串行口中斷,ES=0,CPU禁止串行口中斷。</p><p>  EX1(EX0):CPU外部中斷1(0)開放控制位。</p><p>  ET1(ET0):CPU定時(shí)溢出中斷1(0)開放控制位。</p><p>  3.5 AT89S52單片機(jī)的串行口

77、</p><p><b>  a.功能與結(jié)構(gòu)</b></p><p>  AT89S52單片機(jī)內(nèi)部有一個(gè)功能很強(qiáng)的全雙工串行口,可同時(shí)接收和發(fā)送數(shù)據(jù)。對(duì)串口的訪問和設(shè)置是通過訪問其相關(guān)的特殊寄存器進(jìn)行的,與AT89S52相關(guān)的特殊寄存器有3個(gè):SCON、PCON和SBUF。</p><p>  (1)串口控制寄存器SCON</p>

78、<p>  串口控制寄存器SCON主要用于設(shè)置串口的工作模式和串口中斷查詢,格式如表3.5。</p><p>  SM0,SM1:由軟件置為或清0,用于選擇串行口的工作方式。</p><p>  SM2:串口多機(jī)通訊控制位。</p><p>  REN:允許串行接收控制,將其置為1時(shí)允許接收。</p><p> ?。?)特殊功能寄

79、存器PCON</p><p>  特殊功能寄存器PCON僅最高位與串口有關(guān)。如表3.7所示。</p><p>  表3.7 PCON位格式定義表</p><p>  PCON的最高位SMOD是串行口波特率選擇位。SMOD=1時(shí)波特率增大一倍。</p><p>  b.串行口的工作方式</p><p>  單片機(jī)內(nèi)部串口

80、的工作方式有4中,由特殊寄存器SCON的SM0,SM1位設(shè)定,4中工作方式。如表3.8所示。</p><p>  表3.8 串行口的工作方式表 </p><p>  工作方式2的一幀信息由10位組成,包括1位起始位,8位數(shù)據(jù)位和1位停止位,不包括奇偶校驗(yàn)位。波特率是由定時(shí)器/計(jì)數(shù)器T1的溢出率決定,因此是可變的。</p><p>  所謂波特率是數(shù)據(jù)的傳送速率,即每

81、秒傳送的二進(jìn)制位數(shù),單位為位/秒。而在工作方式2情況下,波特率的計(jì)算公式如下:</p><p><b> ?。?.1)</b></p><p>  可以求出不同的波特率對(duì)應(yīng)的TL1的初值。</p><p>  因此當(dāng)通信速率設(shè)置為4800波特率。SMOD=1單片機(jī)晶振頻率為11.0592MHZ,定時(shí)器T1的初值為:</p><

82、;p><b>  ,即F4H。</b></p><p>  3.6 RS-232C與TTL邏輯電平的轉(zhuǎn)換</p><p>  RS-232C用正負(fù)電壓來表示邏輯狀態(tài),將-5V~-15V規(guī)定為“1”,+5V~+15V規(guī)定為“0”,與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。(TTL輸出高電平>2.4V,輸出低電平<0.4V)因此,為了能夠同計(jì)算機(jī)接口或終

83、端的TTL器件連接,必須在RS-232C 與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換。因此當(dāng)PC機(jī)與單片機(jī)通信時(shí)必須進(jìn)行電平轉(zhuǎn)換。常見的電平轉(zhuǎn)換方法有以下3種:</p><p>  (1)使用MC1488、MC1489電平轉(zhuǎn)換器。此方法的缺點(diǎn)是:需要+l2 V、-12 V電源供電,工作穩(wěn)定性和可靠性不高,易燒壞。</p><p>  (2)使用2個(gè)三極管構(gòu)成準(zhǔn)RS一232C電平轉(zhuǎn)換器。此方法

84、的缺點(diǎn)是:通信只能工作于半雙工狀態(tài),程序設(shè)計(jì)較復(fù)雜。</p><p>  (3)使用雙向電平轉(zhuǎn)換集成芯片。此方法的優(yōu)點(diǎn)是:只需單一+5 V電源供電,可靠性高,無需增加程序設(shè)計(jì)的復(fù)雜性,常用的芯片有ICL232、MAX232、TSC232等。本文采用最后一種方法,芯片選用MAX232,MAX232內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路僅需+5V電源可工作。</p><p><b>  MAX

85、232介紹</b></p><p>  MAX232芯片是美信公司生產(chǎn)的一種新型的電平轉(zhuǎn)換芯片,其內(nèi)部有電壓倍增電路和電壓轉(zhuǎn)換電路,只需單一+5 V電源供電。它含有4個(gè)反向器,可實(shí)現(xiàn)TTL/CMOS電平到RS-232C電平的轉(zhuǎn)換和RS-232C電平到TTL/CMOS電的轉(zhuǎn)換。結(jié)構(gòu)圖如圖3.2所示。</p><p>  圖3.2 MAX232結(jié)構(gòu)圖</p><

86、p>  MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片, 由于標(biāo)準(zhǔn)規(guī)定, RS232的電平采用±12V,與AT89S52單片機(jī)串行口的TTL電平不一致。因此,采用集成電平轉(zhuǎn)換芯片MAX232進(jìn)行電平轉(zhuǎn)換成+5V單電源供電,方能實(shí)現(xiàn)電壓一致性驅(qū)動(dòng)電路。其引腳分布如圖3.3所示。</p><p>  圖3.3 MAX232引腳分布圖</p><p

87、><b>  a.引腳介紹</b></p><p>  第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12V和-12V兩個(gè)電源,提供給RS-232串口電平的需要。   </p><p>  第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。   </p><p>  其中1

88、3腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭。DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。   </p>&

89、lt;p>  第三部分是供電。15腳GND、16腳VCC(+5V)。 </p><p><b>  b.主要特點(diǎn)</b></p><p>  1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)。   </p><p>  只需要單一 +5V電源供電。   </p><p>  片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能產(chǎn)生+10V

90、和-10V電壓?! ?lt;/p><p>  4、功耗低,典型供電電流5mA。   </p><p>  5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器。   </p><p>  內(nèi)部集成2個(gè)RS-232C接收器。</p><p>  3.7單片機(jī)開發(fā)板介紹</p><p>  AT89S52單片機(jī)開發(fā)板也稱AT89S52單片機(jī)實(shí)

91、驗(yàn)板、AT89S52單片機(jī)學(xué)習(xí)板。是用于學(xué)習(xí)AT89S52型號(hào)的單片機(jī)的實(shí)驗(yàn)及學(xué)習(xí)器件,他是將AT89S52單片機(jī)常用的外圍。比如流水燈,數(shù)碼管,矩陣鍵盤,EEPROM,時(shí)鐘,蜂鳴器,繼電器等集成在一小塊電路板上。便于攜帶及學(xué)習(xí),直接插在PC機(jī)上面。隨時(shí)隨地的進(jìn)行學(xué)習(xí),另外一些中小型項(xiàng)目也可以直接在此板上面進(jìn)行二次開發(fā),開發(fā)完成后即可以在此基礎(chǔ)上面重新畫圖做板,極大節(jié)省硬件成本。如圖3.4所示。</p><p>

92、  圖3.4單片機(jī)開發(fā)板圖</p><p>  在開發(fā)板上我們主要用到4個(gè)模塊:</p><p><b>  a.單片機(jī)模塊</b></p><p>  專用板采用AT89S52單片機(jī)作為中央控制器,這款單片機(jī)在引腳和指令上與通用的MCS-51完全兼容。編程時(shí)只需借助單片機(jī)自身的串行口,外接一塊RS232芯片即可實(shí)現(xiàn)程序下載。與在系統(tǒng)并行下載

93、比較,連線該方式顯得更為簡(jiǎn)潔方便。</p><p><b>  b.復(fù)位模塊</b></p><p><b> ?。?)復(fù)位電路</b></p><p>  通常單片機(jī)復(fù)位電路有兩種:上電復(fù)位電路,按鍵復(fù)位電路。上電復(fù)位是單片機(jī)上電后立即進(jìn)入規(guī)定的復(fù)位狀態(tài)。按鍵復(fù)位電路具有上電復(fù)位電路的功能且操作比上電復(fù)位電路的操作簡(jiǎn)單。

94、如果要實(shí)現(xiàn)復(fù)位,只要按下RESET鍵即可。它主要是利用電阻的分壓來實(shí)現(xiàn)的。</p><p>  上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的0000H處開始運(yùn)行程

95、序。復(fù)位電路如圖3.5所示。</p><p><b>  圖3.5復(fù)位電路圖</b></p><p><b> ?。?)晶振電路</b></p><p>  AT89S52系統(tǒng)工作時(shí)鐘可以采用內(nèi)部時(shí)鐘和外部時(shí)鐘兩種方式??紤]成本原因在電路中采用了內(nèi)部時(shí)鐘電路。時(shí)鐘電路見圖3.6所示。</p><p>

96、;  圖中考慮通訊時(shí)波特率準(zhǔn)確,以及系統(tǒng)工作頻率在滿足工作要求的基礎(chǔ)上應(yīng)采取較低值得要求,選擇晶振頻率為11.0592MHz。</p><p><b>  圖3.6時(shí)鐘電路圖</b></p><p>  c.MAX232模塊和串口模塊</p><p>  為滿足RS-232C轉(zhuǎn)換的要求,必須將單片機(jī)的標(biāo)準(zhǔn)TTL信號(hào)轉(zhuǎn)換成RS-232標(biāo)準(zhǔn),為此我

97、們使用MAX232芯片轉(zhuǎn)換。</p><p>  開發(fā)板中的串口和RS-232連接,經(jīng)過電平的轉(zhuǎn)換從而實(shí)現(xiàn)PC機(jī)和單片機(jī)的數(shù)據(jù)通訊。電路原理圖如圖3.7所示。</p><p>  圖3.7 RS232接口電路圖 </p><p>  3.8單片機(jī)與PC串口通訊的收發(fā)原理</p><p><b>  a.PC機(jī)</b>&l

98、t;/p><p>  (1)向單片機(jī)進(jìn)行呼叫,接著發(fā)送字符串,最后發(fā)送結(jié)束標(biāo)志。</p><p>  (2)按照一定的時(shí)間間隔對(duì)串口進(jìn)行讀操作,如果有數(shù)據(jù)需要接收,則進(jìn)行數(shù)據(jù)接收。</p><p><b>  b.單片機(jī)</b></p><p> ?。?)接收功能:識(shí)別上位機(jī)發(fā)送的地址,如果地址匹配則接收數(shù)據(jù),直到結(jié)束標(biāo)志到

99、來,則停止接收。</p><p> ?。?)發(fā)送功能:下位機(jī)有數(shù)據(jù)需要發(fā)送時(shí),首先向上位機(jī)發(fā)送本機(jī)地址,然后發(fā)送數(shù)據(jù),最后發(fā)送結(jié)束標(biāo)志。</p><p>  分布式控制系統(tǒng)中的下位機(jī)的每臺(tái)單片機(jī)均有唯一的地址。通信開始時(shí),先由PC機(jī)呼叫被叫單片機(jī)的地址,單片機(jī)在接收到PC機(jī)的呼叫后,首先判斷是不是自己的地址,如果不是就不予理睬。如果是,則發(fā)送呼叫應(yīng)答信號(hào),并根據(jù)上位機(jī)的命令進(jìn)行相應(yīng)的接收或

100、發(fā)送。</p><p>  4 串口通訊軟件設(shè)計(jì)</p><p>  4.1單片機(jī)C51編程介紹</p><p>  AT89S52單片機(jī)的應(yīng)用程序設(shè)計(jì),既可以使用匯編語(yǔ)言,也可以使用C51語(yǔ)言。匯編語(yǔ)言與硬件緊密相關(guān),可以方便的實(shí)現(xiàn)諸如中斷管理以及模擬/數(shù)字量的輸入/輸出等功能,且占用系統(tǒng)資源小、執(zhí)行速度快。但當(dāng)應(yīng)用程序達(dá)到一定規(guī)模后,由于匯編語(yǔ)言的代碼可讀性差

101、。將增加編寫和閱讀代碼的難度,不利于系統(tǒng)的升級(jí)和維護(hù)。使用C51語(yǔ)言進(jìn)行程序設(shè)計(jì)雖然相對(duì)于匯編語(yǔ)言代碼效率有所下降,但可以方便的實(shí)現(xiàn)程序設(shè)計(jì)模塊化,代碼結(jié)構(gòu)清晰、可讀性強(qiáng),易于維護(hù)、更新和移植,適合較大規(guī)模的單片機(jī)程序設(shè)計(jì)。</p><p>  近年來,隨著C51語(yǔ)言的編譯器性能的不斷提高,在絕大數(shù)的應(yīng)用環(huán)境下, C51程序的執(zhí)行效率已經(jīng)非常接近匯編程序,因此,使用C51進(jìn)行單片機(jī)程序設(shè)計(jì)已經(jīng)成為單片機(jī)程序設(shè)計(jì)的

102、主流選擇之一。</p><p>  4.2 Keil C開發(fā)軟件及應(yīng)用</p><p>  4.2.1開發(fā)軟件介紹</p><p>  隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件。Keil C51是美國(guó)Keil Software公司出品的51系列兼容單

103、片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng)。這款軟件提供了豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外Keil C51軟件編譯后生成的匯編代碼,就能展現(xiàn)出生成的目標(biāo)代碼效率非常高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。掌握這一軟件的使用

104、對(duì)于使用51系列單片機(jī)的愛好者來說是十分必要的,如果使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。</p><p>  Keil軟件中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成

105、編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,可載入Proteus仿真軟件中的MCU中,進(jìn)行功能仿真。</p><p>  Keil的工程的建立、設(shè)置、編譯/

106、匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的主要步驟為:1.編寫源程序并保存;2.建立工程并添加源文件;3.設(shè)置工程;4.編譯/匯編、連接,產(chǎn)生目標(biāo)文件;5.程序調(diào)試。</p><p>  Keil C51 軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語(yǔ)言和C語(yǔ)言的程序設(shè)計(jì),界面友好,易學(xué)易用。</p><p>  4.

107、2.2 keil uVision2軟件使用方法</p><p>  Keil uVision2是目前使用廣泛的單片機(jī)開發(fā)軟件,它集成了源程序編輯和程序。Keil C51 的使用:</p><p> ?。?)點(diǎn)擊桌面快捷圖標(biāo),可以直接進(jìn)入主畫面。</p><p> ?。?)單擊Project菜單,在彈出的下拉菜單中選中New Project選項(xiàng)如圖4.1所示。<

108、;/p><p><b>  圖4.1新建工程</b></p><p> ?。?)然后選擇保存的路徑,輸入工程文件的名字,如保存到C51目錄里,工程文件名字為C51,如圖4.2所示。</p><p>  圖4.2 新建名工程窗口</p><p> ?。?) 選擇單片機(jī)的型號(hào) ,keil c51幾乎支持所有的51核的單片機(jī)如圖圖

109、4.3所示。</p><p>  圖4.3選擇工程項(xiàng)目</p><p> ?。?) 下面開始編寫程序。單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng)。如圖4.4所示。</p><p><b>  圖4.4新建文件</b></p><p>  此時(shí)保存該空白的文件,單擊菜單上的“File”,在下拉菜單中選中“Sav

110、e As”選項(xiàng)單擊,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名。如果用C語(yǔ)言編寫程序,則擴(kuò)展名為(.c);如果用匯編語(yǔ)言編寫程序,則擴(kuò)展名必須 (.asm)。單擊“保存”按鈕。如圖4.5所示。</p><p><b>  圖4.5添加擴(kuò)展名</b></p><p> ?。?)回到編輯界面后,單擊“Target 1”前面的“+”號(hào),然后在“Source Group

111、1”上單擊右鍵,彈出如圖4.6菜單。 </p><p><b>  圖4.6 添加文件</b></p><p> ?。?)然后單擊“Add File to Grop’Source Group 1’”如圖4.7所示。</p><p>  圖4.7添加到工程中</p><p> ?。?)選中Test.c,然后單擊“Add”,

112、如圖4.8所示</p><p>  圖4.8添加到工程中</p><p> ?。?)輸入C語(yǔ)言源程序,在輸入程序時(shí),Keil c51會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會(huì)使用戶少犯錯(cuò)誤,有利于提高編程效率。程序輸入完畢后,如圖4.9所示。</p><p><b>  圖4.9輸入程序</b></p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論