基于串口通信的字符終端的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)設(shè)計(jì)論文</b></p><p>  題 目 基于串口通信的字符終端的設(shè)計(jì)</p><p>  系別名稱 電子信息工程 0 </p><p>  專業(yè)名稱 電子信息工程 0 </p><p>  學(xué)生姓名 *

2、***** </p><p>  班 級 </p><p>  學(xué) 號 ****** </p><p>  指導(dǎo)教師 **** </p><p>  畢業(yè)時間

3、 2013年6月 0</p><p>  畢業(yè) 任務(wù)書</p><p><b>  一、題目</b></p><p>  基于串口通信的字符顯示終端的設(shè)計(jì)</p><p><b>  二、基本內(nèi)容及重點(diǎn)</b></p><p> ?。?)查閱串行

4、通信相關(guān)方面的資料,掌握關(guān)于串行通信的軟、硬件設(shè)計(jì); </p><p>  (2)制定出適用于數(shù)據(jù)采集系統(tǒng)的,通用的,易于實(shí)現(xiàn)的串行通信協(xié)議; </p><p>  (3)根據(jù)制定的通信協(xié)議,設(shè)計(jì)出下位機(jī)串行通信模塊; </p><p> ?。?)根據(jù)制定的通信協(xié)議,利用編程語言設(shè)計(jì)動態(tài)鏈接庫文件; </p><p>  (5)通過設(shè)計(jì)一個可

5、視化界面來對單片機(jī)程序和動態(tài)鏈接庫文件進(jìn)行調(diào)試和驗(yàn)證,并進(jìn)行改善; </p><p> ?。?)資料的整理以及各種說明文檔的撰寫。</p><p><b>  附加初步總體結(jié)構(gòu)圖</b></p><p><b>  設(shè)計(jì)總體構(gòu)思圖</b></p><p><b>  (1)硬件設(shè)計(jì)<

6、/b></p><p>  通過ALtium Designer設(shè)計(jì)串口通信硬件電路,制作全部電路PCB及所有的元器件的焊接。</p><p><b>  (2)軟件設(shè)計(jì)</b></p><p>  通過keil軟件編寫相關(guān)程序并進(jìn)行調(diào)試。</p><p>  三 、預(yù)期達(dá)到的成果</p><p&

7、gt;  (1)運(yùn)行于計(jì)算機(jī)上的程序可通過動態(tài)鏈接文件對單片機(jī)進(jìn)行數(shù)據(jù)訪問和傳送; </p><p>  (2)單片機(jī)機(jī)串行通信模塊具有通用性和可移植性,可以通過簡單的設(shè)置和改變而嵌入到其它數(shù)據(jù)采集系統(tǒng)中;</p><p> ?。?)串行通信協(xié)議具有穩(wěn)定性、通用性和可實(shí)現(xiàn)性。</p><p>  四、存在的問題及擬采取的解決措施</p><p&g

8、t;  1.usb不能正常通信,可能存在的問題?</p><p><b>  1、電路焊接錯誤</b></p><p>  2、程序編寫不正確,如:中斷未開啟。</p><p>  2.usb通信正常,但顯示出現(xiàn)亂碼?</p><p>  初步診斷應(yīng)該是程序邏輯不正確。</p><p><b

9、>  五、進(jìn)度安排</b></p><p>  1.2-3周 接受并熟悉任務(wù)書,查閱有關(guān)書籍、資料,上網(wǎng)查尋相關(guān)網(wǎng)站,獲取所需的信息。</p><p>  2. 4周 根據(jù)要求,消化資料,確定思路和總體技術(shù)方案,學(xué)習(xí)Protel軟件,提供初稿審核,編寫開題報告。</p><p>  3. 5-13周 根據(jù)第二階段的設(shè)計(jì),進(jìn)入具體實(shí)施階段,進(jìn)

10、行硬件電路設(shè)計(jì),和軟件設(shè)計(jì)。并不斷改進(jìn)。</p><p>  4. 14-15周 對各階段的工作整理,完成畢業(yè)設(shè)計(jì)論文撰寫及修改。</p><p>  5. 15-16周 準(zhǔn)備及完成畢業(yè)設(shè)計(jì)答辯</p><p><b>  六、參考文獻(xiàn)和書目</b></p><p>  [1] 王偉 鄭金奎 MCS_51單片機(jī)主從式多機(jī)

11、系統(tǒng)實(shí)時通訊的實(shí)現(xiàn).西南自動化研究所,1998年第3期</p><p>  [2] 陳永真.全國大學(xué)生電子設(shè)計(jì)競賽試題精解選.北京:電子工業(yè)出版社,</p><p>  [3] 張傳新 徐少杰 PC機(jī)與MCS_51單片機(jī)主從多機(jī)通信控制程序的研究.伊圖里河分局研究所,鐵路計(jì)算機(jī)應(yīng)用第5卷第2期.</p><p>  學(xué)生 ___________ 指導(dǎo)教師 __

12、_________ 系主任 ___________</p><p>  基于串口通信的字符顯示終端的設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測和控制。51單片機(jī)是一種集CPU,RAM,F(xiàn)LASH

13、 ROM,I/O接口和定時中斷系統(tǒng)于一體的微型計(jì)算機(jī)。只要有外加電源和晶體振蕩器就可以獨(dú)立完成對數(shù)字信號的算術(shù)運(yùn)算,邏輯控制,串行通信等功能。由于單片機(jī)具有體積小,重量輕,功耗低,功能強(qiáng),價格低,可靠性好等諸多優(yōu)點(diǎn),因而在儀器儀表,家用電器,數(shù)據(jù)采集等一些嵌入式控制領(lǐng)域被廣泛應(yīng)用。 </p><p>  當(dāng)需要處理較復(fù)雜數(shù)據(jù)或需要對多個采集數(shù)據(jù)進(jìn)行綜合處理以及需要進(jìn)行集散控制時,單片機(jī)的算術(shù)運(yùn)算和邏輯運(yùn)算能力顯

14、的不足,這時往往需要借助計(jì)算機(jī)系統(tǒng)。將單片機(jī)采集的數(shù)據(jù)通過串行口傳給PC機(jī),由PC機(jī)高級語言或數(shù)據(jù)庫語言進(jìn)行處理,或者實(shí)現(xiàn)PC機(jī)對遠(yuǎn)程單片機(jī)進(jìn)行控制。因此,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信更具有實(shí)際意義。</p><p>  關(guān)鍵詞:單片機(jī)、PC機(jī)、發(fā)送數(shù)據(jù)、接收數(shù)據(jù) 串行通信</p><p><b>  ABSTRACT</b></p><p&g

15、t;  With computer technology, especially the single-chip microcomputer technology development, it has been increasingly used microcontroller to some industrial control systems such as temperature, flow and pressure param

16、eters to detect and control. 51 is a set of single-chip CPU, RAM, FLASH ROM, I / O interfaces, and timer interrupt system in one of the micro-computer. As long as the external power source and the crystal oscillator can

17、be done independently of the digital signal arithmetic, logic co</p><p>  When you need to deal with more complex data, or the need for more comprehensive data collection process and the need for distributed

18、 control, the microcontroller arithmetic and logic operations noticeable lack of ability, then often require the use of computer systems. The microcontroller data collected through the serial port to the PC machine, high

19、-level language, or by the PC database language processing, or achieve PC remote microprocessor control. Therefore, SCM and remote communication be</p><p>  Keywords: microcontroller, PC, send data, receive

20、data ,serial communication</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p><b>  緒 論2</b></p><p>  第一章 設(shè)計(jì)總體介紹3</p><p>

21、;  1.1單片機(jī)的發(fā)展階段3</p><p>  1.2單片機(jī)的發(fā)展趨勢3</p><p>  1.3單片機(jī)的應(yīng)用模式4</p><p>  1.4單片機(jī)與PC串口間通訊設(shè)計(jì)的應(yīng)用5</p><p>  1.5設(shè)計(jì)內(nèi)容及要求 5</p><p>  1.6串口通信原理 5</p&

22、gt;<p>  第二章 系統(tǒng)設(shè)計(jì)8</p><p>  2.1硬件方案選擇8</p><p>  2.1.1單片機(jī)的選擇8</p><p>  2.1.2電平轉(zhuǎn)換8</p><p>  2.1.3單片機(jī)與pc機(jī)通信原理8</p><p>  2.2軟件方案選擇9</p><

23、;p>  2.2.1 PC機(jī)編程方案選擇9</p><p>  2.2.2 單片機(jī)編程方案選擇9</p><p>  2.3 總體方案選擇10</p><p>  2.4系統(tǒng)總體設(shè)計(jì)思路10</p><p>  第三章 單元硬件電路設(shè)計(jì)11</p><p>  3.1硬件實(shí)現(xiàn)的過程11</p&

24、gt;<p>  3.1.1 單片機(jī)主要特性11</p><p>  3.1.2 RS-232總線標(biāo)準(zhǔn)16</p><p>  3.2 RS-232C接口電路17</p><p>  3.2.1 、MAX232接口電路18</p><p>  3.3 51單片機(jī)與PC機(jī)串行通信電路19</p><

25、;p>  第四章 軟件設(shè)計(jì)21</p><p>  4.1 軟件設(shè)計(jì)和硬件設(shè)計(jì)的關(guān)系21</p><p>  4.2 Proteus中的仿真使用21</p><p>  4.2.1 虛擬串口21</p><p>  4.2.2 虛擬串口在Proteus中的使用24</p><p>  4.2.3 在Pr

26、oteus中實(shí)現(xiàn)單片機(jī)的串口調(diào)試功能28</p><p>  4.2程序設(shè)計(jì)30</p><p>  4.3、程序運(yùn)行后的結(jié)果33</p><p><b>  第五章 結(jié)論34</b></p><p><b>  致 謝35</b></p><p><b>

27、;  參考文獻(xiàn)36</b></p><p><b>  緒 論</b></p><p>  計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時,避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時,要求通訊雙方都采用一個標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以

28、方便地連接起來進(jìn)行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會(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)規(guī)定采用一個25個腳的 DB2

29、5連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信 號的電平加以規(guī)定。 </p><p>  隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過PC機(jī)的RS-232串行接口與外部設(shè)備進(jìn)行通信,是許多測控系統(tǒng)中常用的一種通信解決方案。因此

30、如何實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通訊具有非常重要的現(xiàn)實(shí)意義。</p><p>  第一章 設(shè)計(jì)總體介紹</p><p>  1.1單片機(jī)的發(fā)展階段</p><p>  51單片機(jī)的發(fā)展可分為以下4個階段。</p><p>  第一代:單片機(jī)探索階段。主要有同通用CPU68XX系列和專用MCS-48系列的簡單實(shí)例應(yīng)用。</p><

31、;p>  第二代:單片機(jī)完善階段。具體表現(xiàn)在:面對對象,突出控制功能,專用CPU滿足嵌入功能;尋址范圍為8位或16位;規(guī)范的種線結(jié)構(gòu),有8位數(shù)據(jù)線,16位地址線及多功能異步串行接口(UART);指令系統(tǒng)突出控制功。</p><p>  第三代:微控制形成階段。這一間段已形成系列產(chǎn)品:以8051系列為代表,如8031,8031和8051等。</p><p>  第四代:微控制器百花齊放

32、。表現(xiàn)在:滿足最低層電子技術(shù)的應(yīng)用;大力發(fā)展專用型單片機(jī),致力于提高單片機(jī)的綜合品質(zhì)。</p><p>  1.2單片機(jī)的發(fā)展趨勢</p><p>  單片機(jī)的發(fā)展趨勢可歸為以下8個方面。</p><p><b>  主流機(jī)型發(fā)展趨勢。</b></p><p>  全盤CMOS化趨勢。</p><p&

33、gt;  RISC體系結(jié)構(gòu)的發(fā)展。</p><p>  可刷新的FLASHROM成為主流供應(yīng)狀態(tài),便于用戶對系統(tǒng)軟件進(jìn)行升級和修改。</p><p>  ISP及基于ISP的開發(fā)環(huán)境。</p><p><b>  單片機(jī)的軟件嵌入。</b></p><p><b>  實(shí)現(xiàn)全面功耗管理。</b>&l

34、t;/p><p><b>  推行串口擴(kuò)展總線。</b></p><p><b>  單片機(jī)引腳圖1-2</b></p><p>  1.3單片機(jī)的應(yīng)用模式</p><p>  單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心構(gòu)成計(jì)算機(jī)應(yīng)用系統(tǒng),是最具有代表性和使用最廣范的專用計(jì)算機(jī)應(yīng)用系統(tǒng)。</p>&l

35、t;p>  (1)單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)。</p><p>  單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)分3個層次。</p><p>  1.單片機(jī):通常指應(yīng)用系統(tǒng)主處理機(jī),即所選擇的單片機(jī)器件。</p><p>  2.單片機(jī)系統(tǒng):指按照單片機(jī)的技術(shù)要求和嵌入對象的資源要求而構(gòu)成的基本系統(tǒng),如時鐘電路、復(fù)位電路和擴(kuò)展存儲器等與單片機(jī)構(gòu)成了單片機(jī)系統(tǒng)。</p><

36、;p>  3.單片機(jī)應(yīng)用系統(tǒng):指能滿足嵌入對象要求的全部電路系統(tǒng)。在單片機(jī)系統(tǒng)的基礎(chǔ)上加上面向?qū)ο蟮慕涌陔娐?,如前向通道、后向通道、人機(jī)交互通道和串行通信口(RS232)以及應(yīng)用程序等。</p><p>  1.4單片機(jī)與PC串口間通訊設(shè)計(jì)的應(yīng)用</p><p>  目前RS-232是PC與通信工業(yè)中應(yīng)用最廣泛的一種串行接口,其中EIA代表美國電子工業(yè)協(xié)會,RS代表推薦標(biāo)準(zhǔn),232是

37、標(biāo)識號。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即單端通信。單片機(jī)之間的串口通信,當(dāng)傳輸距離在1.5-15米之間時,可以采用RS-232通訊協(xié)議進(jìn)行數(shù)據(jù)傳輸,基于RS-232電氣特性的限制,只能實(shí)現(xiàn)一點(diǎn)對一點(diǎn)通信(既單機(jī)通信)。</p><p>  1.5設(shè)計(jì)內(nèi)容及要求 </p><p>  在計(jì)算機(jī)控制系統(tǒng)中,不可避免的

38、要采用多機(jī)進(jìn)行通信。隨著單片機(jī)在各個領(lǐng)域的廣泛應(yīng)用,利用51實(shí)驗(yàn)板等單片機(jī)系統(tǒng)與PC機(jī)RS232串口相連,實(shí)現(xiàn)雙向數(shù)據(jù)通信。 </p><p>  利用可視化程序設(shè)計(jì)編制串口調(diào)試軟件,然后向串口發(fā)送“1”、“2”、“3”......“8”、“9”、“0”等字符,實(shí)驗(yàn)板收到數(shù)據(jù)后通過lcd1602液晶顯示出來,同時會向PC機(jī)反饋顯示成功的確認(rèn)信號,即在PC機(jī)串口調(diào)試軟件的接收緩沖區(qū)內(nèi)將顯示“display

39、 OK!”等字樣。 </p><p>  1.6串口通信原理 </p><p>  所謂"串行通信"是指外設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號線,數(shù)據(jù)在一根數(shù)據(jù)信號線上按位進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,當(dāng)然,其傳輸速度比并行傳輸慢。相比之下,由于高速率的要求,處于計(jì)算機(jī)內(nèi)部

40、的CPU與串口之間的通訊仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現(xiàn)CPU與外圍數(shù)據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換(或者稱為串并轉(zhuǎn)換器),即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計(jì)算機(jī)時,數(shù)據(jù)格式由位 (bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);反之,當(dāng)計(jì)算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時,串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。 </p><p>  串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU經(jīng)過串行端口發(fā)送出

41、去時,字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時,串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。   在Windows環(huán)境(Windows NT、Win98、Windows2000)下,串口是系統(tǒng)資源的一部分。  應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請要求(打開串口),通信完成后必須釋放資源(關(guān)閉串口)。 </p><p>  串口通信的概念非

42、常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總常不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達(dá)1200米。     </p><p>  典型的串口用于ASCI

43、I碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對于兩個進(jìn)行通行的端口,這些參數(shù)必須匹配: </p><p>  a,波特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300

44、個bit。當(dāng)我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。  </p><p>  b,數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)

45、位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個信息包,實(shí)際的數(shù)據(jù)不會是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語 “包”指任何通信的情況。  

46、</p><p>  c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時鐘同步的機(jī)會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。      d,奇偶

47、校驗(yàn)位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對于偶和奇校驗(yàn)的情況,串口會設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機(jī)會判斷是否

48、有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。</p><p><b>  第二章 系統(tǒng)設(shè)計(jì)</b></p><p><b>  2.1硬件方案選擇</b></p><p>  2.1.1單片機(jī)的選擇</p><p>  本設(shè)計(jì)采用的是AT89S52單片機(jī),AT89S52是一種帶8K字節(jié)閃存可編

49、程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。它是一種高效微控制器,因?yàn)樗?jīng)濟(jì)實(shí)惠,用起來靈活方便,而且習(xí)慣了用這種型號的單片機(jī),所以選擇AT89S52單片機(jī)。</p><p><b>  2.1.2電平轉(zhuǎn)換</b></p><p&g

50、t;  本設(shè)計(jì)采用MAX232芯片進(jìn)行電平轉(zhuǎn)換,MAX232芯片是美信公司專門為電腦的RS232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5V單電源供電,它的作用就是完成TTL電平與RS232電平的轉(zhuǎn)換。PC機(jī)的串行口采用的是標(biāo)準(zhǔn)的RS 232接口,單片機(jī)的串行口電平是TTL電平,而TTL電平特性與RS 232的電氣特性不匹配,因此為了使單片機(jī)的串行口能與RS 232接口通信,必須將串行口的輸入/輸出電平進(jìn)行轉(zhuǎn)換。通常用MAX232芯片來完成電平轉(zhuǎn)

51、換。</p><p>  2.1.3單片機(jī)與pc機(jī)通信原理</p><p>  MCS-51單片機(jī)有一個全雙工的串行通訊口UART。利用其RXD和TXD與外界進(jìn)行通信,其內(nèi)部有2個物理上完全獨(dú)立的接收、發(fā)送緩沖器SBUF,可同時發(fā)送和接收數(shù)據(jù)。所以單片機(jī)和PC機(jī)之間可以方便地進(jìn)行串口通訊。單片機(jī)串口有3條引線:TXD(發(fā)送數(shù)據(jù))、RXD(接收數(shù)據(jù))和GND(信號地)。因此在通信距離較短時可

52、采用零MO·</p><p>  DEM方式,簡單三連線結(jié)構(gòu)。PC機(jī)有兩個標(biāo)準(zhǔn)的RS.232串行口,其電平采用的是EIA電平,而MCS-51單片機(jī)的串行通信是由TXD(發(fā)送數(shù)據(jù))和RXD(接收數(shù)據(jù))來進(jìn)行全雙工通信的,它們的電平是TTL電平;為了Pc機(jī)與MCS-51機(jī)之間能可靠地進(jìn)行串行通信,需要用電平轉(zhuǎn)換芯片,我們采用了MAXIM公司生產(chǎn)的專用芯片MAX232進(jìn)行轉(zhuǎn)換。電路如圖所示。</p>

53、;<p>  圖2.2 MAX232工作原理圖</p><p><b>  2.2軟件方案選擇</b></p><p>  2.2.1 PC機(jī)編程方案選擇</p><p>  本設(shè)計(jì)采用VC6.0++來實(shí)現(xiàn)編程,上位機(jī)與單片機(jī)進(jìn)行通信的程序編寫可用VB、VC等軟件。由于VB作為面向?qū)ο蟮木幊坦ぞ卟粔蛲耆?,效率比VC低,提供的命令

54、語言環(huán)境較弱,通過串口設(shè)備一次最多只能交換16B的數(shù)據(jù),對較大數(shù)據(jù)量的傳輸存在很大的局限性,很難實(shí)現(xiàn)較為復(fù)雜的數(shù)據(jù)處理,VC6.0++是一種功能強(qiáng)大的面向?qū)ο蟮腤indows編程開發(fā)平臺。VC6.0的優(yōu)點(diǎn)是界面簡潔,占用資源少,操作方便。所以本設(shè)計(jì)采用VC作為串口編程工具。</p><p>  2.2.2 單片機(jī)編程方案選擇</p><p>  本設(shè)計(jì)單片機(jī)的編程選擇C語言編寫,因?yàn)樗啙?/p>

55、緊湊、靈活方便、運(yùn)算符豐富、數(shù)據(jù)結(jié)構(gòu)豐富、C是結(jié)構(gòu)式語言、C語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大、C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作、C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高,一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%、C語言適用范圍大,可移植性好C語言有一個突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機(jī)型。C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,

56、二維圖形和動畫它是數(shù)值計(jì)算的高級語言。所以我選用C語言來編寫此程序。</p><p>  2.3 總體方案選擇</p><p>  溫度傳感器測量出來的溫度值由單片機(jī)采集出來,然后單片機(jī)再將采集出的溫度數(shù)據(jù)處理后,通過串行口發(fā)送給上位機(jī)。</p><p>  圖2.1總體設(shè)計(jì)方案流程圖</p><p>  2.4系統(tǒng)總體設(shè)計(jì)思路</p&

57、gt;<p>  本文要求設(shè)計(jì)一個51單片機(jī)與PC串口間通訊系統(tǒng)的字符終端顯示,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信。設(shè)計(jì)分發(fā)送和接收兩大模塊,發(fā)送部分通過硬件電路的引用。其中包括RS-232接口電路、MAX232接口電路,引用相應(yīng)的管腳相連,并將相應(yīng)的軟件程序轉(zhuǎn)入電路中,即可運(yùn)行。當(dāng)電路是相對獨(dú)立時,可直接調(diào)速電路參數(shù)值,其影響和干擾就小。在滿足發(fā)射和接收模塊的要求后可單獨(dú)對控制進(jìn)行調(diào)整,程序的編入,接收部分相應(yīng)的結(jié)果即以實(shí)

58、現(xiàn),因此實(shí)現(xiàn)了PC機(jī)對遠(yuǎn)端單片機(jī)的控制。</p><p>  利用vc++編寫上位機(jī)數(shù)據(jù)發(fā)送接收軟件,作為給單片機(jī)發(fā)送數(shù)據(jù)或接收單片機(jī)發(fā)送數(shù)據(jù)的軟件。用單片機(jī)設(shè)計(jì)好硬件電路,給單片機(jī)進(jìn)行編程,從而是單片機(jī)能夠接收pc機(jī)傳送來的數(shù)據(jù),并通過lcd1602液晶顯示出來從而達(dá)到設(shè)計(jì)要求。</p><p>  第三章 單元硬件電路設(shè)計(jì)</p><p>  3.1硬件實(shí)現(xiàn)的過

59、程</p><p>  在實(shí)現(xiàn)單片機(jī)與PC機(jī)之間通信或單片機(jī)與單片機(jī)之間遠(yuǎn)程距離通信時通常采用標(biāo)準(zhǔn)串行總線通訊接口。比如RS-232C、RS-422、RS485等。在這些串行總線接口標(biāo)準(zhǔn)中,是在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,它實(shí)用于短距離或帶調(diào)制解調(diào)器的通信場合。下面以RS-232標(biāo)準(zhǔn)串行總線接口為例,簡單介紹單片機(jī)與PC機(jī)之間串行通信的硬件實(shí)現(xiàn)過程。</p><p>  3.1.1

60、單片機(jī)主要特性</p><p>  ·與MCS-51 兼容   </p><p>  ·4K字節(jié)可編程閃爍存儲器   </p><p>  ·壽命:1000寫/擦循環(huán)   </p><p>  ·數(shù)據(jù)保留時間:10年   </p><p>  ·全靜態(tài)工作:0Hz-24

61、MHz  </p><p>  ·三級程序存儲器鎖定   </p><p>  ·128×8位內(nèi)部RAM   </p><p>  ·32可編程I/O線   </p><p>  ·兩個16位定時器/計(jì)數(shù)器   </p><p><b>  ·5個中

62、斷源   </b></p><p>  ·可編程串行通道   </p><p>  ·低功耗的閑置和掉電模式   </p><p>  ·片內(nèi)振蕩器和時鐘電路</p><p>  單片機(jī)AT89C51的引腳說明:</p><p>  圖3.1 AT89C51的引腳排列</

63、p><p><b>  引腳描述:</b></p><p>  VCC:電源電壓 </p><p><b>  GND:地</b></p><p>  P0口:P0口是一組8位漏極開路雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時,每一個管腳都能夠驅(qū)動8個TTL電路。當(dāng)“1”被寫入P0口時,每

64、個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時激活內(nèi)部的上拉電阻。P0口在閃爍編程時,P0口接收指令,在程序校驗(yàn)時,輸出指令,需要接電阻。</p><p>  P1口:P1口一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時可作為輸入口。因?yàn)閮?nèi)部有電阻,某個引腳被外部信號拉

65、低時輸出一個電流。閃爍編程時和程序校驗(yàn)時,P1口接收低8位地址。</p><p>  P2口:P2口是一個內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時,可作為輸入口。因?yàn)閮?nèi)部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,

66、P2口線上的內(nèi)容在整個運(yùn)行期間不變。閃爍編程或校驗(yàn)時,P2口接收高位地址和其它控制信號。</p><p>  P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動4個TTL電路。對P3口寫如“1”時,它們被內(nèi)部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。</p><p>  P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示

67、</p><p>  表2..1 P3口第二功能</p><p>  P3口還接收一些用于閃爍存儲器編程和程序校驗(yàn)的控制信號。</p><p><b>  RST:</b></p><p>  復(fù)位輸入。當(dāng)震蕩器工作時,RET引腳出現(xiàn)兩個機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。</p><p><

68、;b>  ALE/:</b></p><p>  當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE以時鐘震蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。如果必要,可對特殊寄存器區(qū)中的8EH單元的D0位置禁止AL

69、E操作。這個位置后只有一條MOVX和MOVC指令A(yù)LE才會被應(yīng)用。此外,這個引腳會微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。</p><p>  PSEN:程序儲存允許輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器讀取指令時,每個機(jī)器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN 信號不出現(xiàn)。</p><p>  

70、EA/VPP:外部訪問允許。欲使中央處理器僅訪問外部程序存儲器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲器中的指令。閃爍存儲器編程時,該引腳加上+12V的編程允許電壓VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p>  XTAL1:震蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。</p><

71、;p>  XTAL2:震蕩器反相放大器的輸出端。</p><p>  時鐘震蕩器:AT89C51中有一個用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自然震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。對外接電容C1,C2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響

72、震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF±10PF,而如果使用陶瓷振蕩器建議選擇40PF±10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時

73、間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。</p><p>  圖3.2內(nèi)部振蕩電路 圖3.3閑散節(jié)電模式</p><p>  AT89C51有兩種可用軟件編程的省電模式,它們是閑散模式和掉電工作模式。這兩種方式是控制專用寄存器PCON中的PD和IDL位來實(shí)現(xiàn)的。PD是掉電模式,當(dāng)PD=1時,激活掉電工作模式,單片機(jī)進(jìn)入掉電工作狀態(tài)。IDL是閑散等待方式,當(dāng)IDL

74、=1,激活閑散工作狀態(tài),單片機(jī)進(jìn)入睡眠狀態(tài)。如需要同時進(jìn)入兩種工作模式,即PD和IDL同時為1,則先激活掉電模式。在閑散工作模式狀態(tài),中央處理器CPU保持睡眠狀態(tài),而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,片內(nèi)隨機(jī)存取數(shù)據(jù)存儲器和所有特殊功能寄存器的內(nèi)容保持不變。閑散模式可由任何允許的中斷請求或硬件復(fù)位終止。終止閑散工作模式的方法有兩種,一是任何一條被允許中斷的事件被激活,IDL被硬件清除,即刻終止閑散工作模式。程序會首

75、先影響中斷,進(jìn)入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序,并緊隨RETI指令后,下一條要執(zhí)行的指令就是使單片機(jī)進(jìn)入閑散工作模式,那條指令后面的一條指令。二是通過硬件復(fù)位也可將閑散工作模式終止。需要注意的是:當(dāng)由硬件復(fù)位來終止閑散工作模式時,中央處理器CPU通常是從激活空閑模式那條指令的下一條開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復(fù)位操作</p><p><b>  掉電模式:</b></p>

76、<p>  在掉電模式下,振蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在中指掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將從新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在VCC恢復(fù)到正常工作電平前,復(fù)位應(yīng)無效切必須保持一定時間以使振蕩器從新啟動并穩(wěn)定工作。</p><p>  表2.2閑散和掉電模式外部引腳狀態(tài)。</p>&l

77、t;p><b>  程序存儲器的加密</b></p><p>  AT89C51可使用對芯片上的三個加密位LB1,LB2,LB3進(jìn)行編程(P)或不編程(U)得到如下表所示的功能:</p><p>  表2.3程序存儲器的加密</p><p>  當(dāng)LB1被編程時,在復(fù)位期間,EA端的電平被鎖存,如果單片機(jī)上電后一直沒有復(fù)位,鎖存起來的初始

78、值是一個不確定數(shù),這個不確定數(shù)會一直保存到真正復(fù)位位置。為了使單片機(jī)正常工作,被鎖存的EA電平與這個引腳當(dāng)前輯電平一致。機(jī)密位只能通過整片擦除的方法清除。</p><p>  3.1.2 RS-232總線標(biāo)準(zhǔn)</p><p>  RS-232C總線標(biāo)準(zhǔn)定義了25個引腳的連接器,各引腳的定義如表3-1所示。</p><p>  表3-1 RS-232信號引腳定義<

79、;/p><p>  表3-1中定義的許多信號線是為通信業(yè)務(wù)聯(lián)系或控制而設(shè)置的,在計(jì)算機(jī)串口通信中主要是用以下一些信號。</p><p>  數(shù)據(jù)傳輸信號:發(fā)送數(shù)據(jù)(TXD),接收數(shù)據(jù)(RXD)</p><p>  調(diào)制解調(diào)器控制信號:請求發(fā)送(RTS),清除發(fā)送(CTS)</p><p>  地線:保護(hù)地(PG),信號地(GND)</p&g

80、t;<p>  Rs-232 C總線的其他標(biāo)準(zhǔn)規(guī)定如下:</p><p>  RS-232總線標(biāo)準(zhǔn)邏輯電平:+5--+15V表示邏輯“0”,-15、-5表示邏輯“1”,噪聲容限為2V。</p><p>  標(biāo)準(zhǔn)數(shù)據(jù)傳輸速率:50b/s 、 75b/s、 110b/s、600b/s、 1200b/s 、 4800b/s 、9600 b/s 、 19200 b/s &

81、lt;/p><p>  3.2 RS-232C接口電路</p><p>  當(dāng)51單片機(jī)與PC機(jī)通過RS-232標(biāo)準(zhǔn)總線串行通信時,由于RS-232信號電平與51單片機(jī)信號電平不一致,因此,必須進(jìn)行信號電平轉(zhuǎn)換。其常用的方法有兩種,一種是采用運(yùn)算放大器、晶體管、光電隔離器等器件組成的電路來實(shí)現(xiàn),另一種是采用專門集成芯片來實(shí)現(xiàn)。下面以MAX232專門集成芯片為例來介紹接口電路的實(shí)現(xiàn)。</

82、p><p>  3.2.1 、MAX232接口電路</p><p>  MAX232芯片是MAXIM公司生產(chǎn)的具有兩路接收器和驅(qū)動器的IC芯片,其內(nèi)部有一個電源電壓變換器,可以將輸入+5V的電壓變換成RS-232C輸出電平所需的+/-12V的電壓。在其內(nèi)部同時也完成TTL信號電平和RS-232信號電平的轉(zhuǎn)換。所以,采用此芯片實(shí)現(xiàn)接口電路只需單一的+5V電源就可以。</p><

83、;p>  MAX232芯片的引腳結(jié)構(gòu)如圖2-2所示。其中管腳1-6(C1+,V+,C1-,C2+,C2-,V-)用于電源電壓轉(zhuǎn)換,只要在其內(nèi)部接入相應(yīng)電解電容即可:管腳7-10和管腳11-14.構(gòu)成兩組TTL信號電平與RS-232信號電平的轉(zhuǎn)換電路,對應(yīng)管腳可直接與單片機(jī)串行口的TTL電平引腳和PC機(jī)的RS-232電平引腳相連。具體連接可參看圖2-3</p><p><b>  . </b&

84、gt;</p><p>  圖3-2 MAX232引腳圖</p><p>  3.3 51單片機(jī)與PC機(jī)串行通信電路</p><p>  圖3-3是由芯片MAX232實(shí)現(xiàn)51單片機(jī)與PC機(jī)串行通信的典型接線圖。圖中外接電解電容C1,C2,C3,C4用于電源電壓變換,提高抗干擾能力,它們可以取相同數(shù)值電容1.0uF/16V.其值一般為0.1UF.</p>

85、<p>  選擇任一組電平轉(zhuǎn)換電路實(shí)行串行通信,如圖中選Tlin, Rlout分別與51單片機(jī)的TXD,RXD 相連,Tlout ,Rlin分別與PC機(jī)中RS232 接口的RSD , TSD相連,這種發(fā)送與接收的對應(yīng)關(guān)系不能連錯,則不能正常工作。</p><p>  圖3-3 用MAX232實(shí)現(xiàn)串行通信接口電路圖</p><p><b>  第四章 軟件設(shè)計(jì)<

86、;/b></p><p>  鑒于單片機(jī)技術(shù)比較成熟,且開發(fā)過程中可以利用的資源和工具豐富、價格便宜、成本低。故設(shè)計(jì)用C語言對其編程并燒錄到芯片內(nèi)部,C語言表達(dá)和運(yùn)算能力比較強(qiáng),且具有很好的可移植性和硬件控制能力,程序可分為發(fā)射部分和接收部分。</p><p>  在51系列單片機(jī)中,波特率由定時/計(jì)數(shù)器T1自動產(chǎn)生,但在使用前。需對T1進(jìn)行一些設(shè)置,才能得自己想要的波特率。我們通常

87、在有串行通信的系統(tǒng)中選用11.0592MHz的晶振,為了使用方便采用9600Kbps的波特率,所以T1的初值應(yīng)設(shè)置為TH1=0xFD,TL1=0xFD。</p><p>  4.1 軟件設(shè)計(jì)和硬件設(shè)計(jì)的關(guān)系</p><p>  為了滿足設(shè)計(jì)的功能和指標(biāo)的要求,我們必須在開始設(shè)計(jì)時就應(yīng)考慮到硬件和軟件的協(xié)調(diào);不然就是造成硬件資源的浪費(fèi),就是增加軟件實(shí)現(xiàn)時的困難和復(fù)雜程度,甚至造成信號的斷層,

88、即使硬件和軟件能單獨(dú)使用,卻不能使它們組成的系統(tǒng)工作,故在設(shè)計(jì)的過程中必須考慮軟、硬件的處理能力以及它們的接口是否兼容,實(shí)現(xiàn)軟、硬件的過渡,其次、設(shè)計(jì)時硬件之間應(yīng)盡可能減小聯(lián)系,只要把必要的信號線相連即可。由于硬件的分離,在軟件的調(diào)試時就可以單獨(dú)針對控制模塊。</p><p>  4.2 Proteus中的仿真使用 </p><p>  4.2.1 虛擬串口</p><

89、p>  虛擬串口是計(jì)算機(jī)通過軟件模擬的串口,當(dāng)其它設(shè)計(jì)軟件使用到串口的時候,可以通過調(diào)用虛擬串口仿真模擬,以查看所設(shè)計(jì)的正確性。首先要安裝虛擬串口設(shè)置的軟件,網(wǎng)上有很多設(shè)置虛擬串口的軟件,我用的是VSPD,可試用1個月,試用期過后,該軟件將不能使用,但不用擔(dān)心,所設(shè)置的虛擬串口不會消失,可以繼續(xù)使用。</p><p><b>  設(shè)置界面:</b></p><p&g

90、t;  由于我設(shè)置的是COM3和COM4,軟件只能成對設(shè)置,主要是因?yàn)橥ㄐ艜r,一方可以監(jiān)視另一方,如果僅設(shè)置1個虛擬串口的話,如你用COM3發(fā)送接收數(shù)據(jù),但發(fā)送了什么接收到什么,你無法驗(yàn)證其正確與來源。這是人家編寫軟件的高明之處。軟件設(shè)置時將所設(shè)置的兩個虛擬串口對接,這樣就可實(shí)現(xiàn)發(fā)送與接收的監(jiān)視。從設(shè)備管理器中可以看到</p><p>  兩個虛擬串口對接方式:</p><p>  這樣可

91、以用串口調(diào)試助手調(diào)試串口通信了,從下圖可以看到COM3發(fā)送的數(shù)據(jù)到達(dá)了COM4的接收區(qū)域,COM4發(fā)送的數(shù)據(jù)到達(dá)了COM3的接收區(qū)域,從而實(shí)現(xiàn)了COM3與COM4之間的互聯(lián)互通。</p><p>  到這虛擬串口已經(jīng)設(shè)置好,對其它設(shè)計(jì)軟件而言,虛擬串口和普通串口沒有區(qū)別,如串口調(diào)試助手對虛擬串口的使用和普通串口的使用方法一樣。 </p><p>  4.2.2 虛擬串口在Proteus中的

92、使用</p><p>  下一步介紹一下虛擬串口在Proteus中的使用,更準(zhǔn)確的應(yīng)該說是“串口在Proteus中的使用”,只不過我們用軟件實(shí)現(xiàn)仿真,虛擬串口在這使用的比較頻繁。</p><p>  先在Proteus中將環(huán)境建立起來,很簡單,先需要兩個元器件就可以建立連接VIRTUAL TERMINAL和COMPIM,如圖VIRTUAL TERMINAL的TXD與COMPIM的TXD相連

93、,RXD與RXD相連,后面有圖分析為什么這樣相連:</p><p>  VIRTUAL TERMINAL是串口監(jiān)視儀器,可以通過它將數(shù)據(jù)線上的符合RS232協(xié)議的波形捕捉到,并顯示出來,也可以往數(shù)據(jù)線上發(fā)送RS232協(xié)議的波形;COMPIM為串口元件,可設(shè)置占用計(jì)算機(jī)上哪一個串口,可以是“實(shí)際串口”,也可以是“虛擬串口”,對Proteus而言,是分不清虛擬串口還是實(shí)際串口的。下一步就要設(shè)置通信速率以及通信格式了,

94、在屬性框中實(shí)現(xiàn)設(shè)置相同的就行了。這樣就可實(shí)現(xiàn)數(shù)據(jù)的通信了。圖為VIRTUAL TERMINAL和COMPIM的設(shè)置:</p><p>  下一步就是實(shí)現(xiàn)Proteus與串口調(diào)試助手之間的通信了。在VIRTUAL TERMINAL中可直接鍵盤輸入想要發(fā)送的數(shù)據(jù),但界面中無任何顯示,可以通過串口調(diào)試助手看到相應(yīng)的輸入數(shù)據(jù)。</p><p>  這樣的的話即實(shí)現(xiàn)數(shù)據(jù)從Proteus中傳送到串口調(diào)

95、試助手中了,其相應(yīng)的數(shù)據(jù)流向關(guān)系為</p><p>  4.2.3 在Proteus中實(shí)現(xiàn)單片機(jī)的串口調(diào)試功能</p><p>  由于編寫一個工作在9600bps的8052的串口程序,程序的功能就是將串口接收到的數(shù)據(jù)發(fā)送出來,Proteus中的連線為: </p><p>  數(shù)據(jù)傳輸?shù)膱D示為: </p><p>  這樣就模擬實(shí)現(xiàn)了單片機(jī)與

96、串口之間的通信,可以實(shí)現(xiàn)兩者之間的仿真設(shè)計(jì)。同樣實(shí)現(xiàn)該通信的數(shù)據(jù)流為: </p><p><b>  4.2程序設(shè)計(jì)</b></p><p>  假設(shè)PC機(jī)先向單片機(jī)一組指令“55H、AAH、01H”當(dāng)單片機(jī)接收到PC發(fā)來的數(shù)據(jù),并判斷命令為“01H”時,啟動定時發(fā)送程序,即每隔2S向PC發(fā)送15個字節(jié)的數(shù)據(jù)。具體程序如下:</p><p> 

97、 #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  uchar Txdnum[15]={0,1,2,3,4,5,6,7,8,9,0xa0,0xa1,0xa2,0xa3,0xa4} </p><p>  uchar timercount, Rxdcount, Numcount

98、;</p><p>  bit Txdflag;</p><p>  Void serial_Txd (uchar *p)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0;i<15

99、;i++)</p><p><b>  { </b></p><p>  SBUF=*p++;</p><p>  While(!TI);</p><p><b>  TI=0;</b></p><p><b>  }</b></p>&

100、lt;p><b>  }</b></p><p>  Void serial_Int() interrupt 4</p><p><b>  { </b></p><p>  uchar temp;</p><p><b>  ES=0;</b></p>

101、<p><b>  If(RI)</b></p><p><b>  {</b></p><p>  Temp=SBUF;</p><p><b>  RI=0;</b></p><p>  If(temp==0x55)</p><p>&l

102、t;b>  {</b></p><p>  while (!RI);</p><p>  temp=SBUF;</p><p><b>  RI=0;</b></p><p>  if(temp==0xaa)</p><p><b>  {</b></

103、p><p>  while (!RI);</p><p>  temp=SBUF;</p><p><b>  RI=0;</b></p><p>  if(temp==0x01)</p><p><b>  {</b></p><p>  P2 =~te

104、mp;</p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  Es=1;

105、</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  Es=1;</b></p><p><b>  }</b></p><p><b> 

106、 }</b></p><p>  Void T0_Interrupt() interrupt 1</p><p><b>  {</b></p><p><b>  TL0=0x00;</b></p><p><b>  TH0=0xdc;</b></p&

107、gt;<p>  if (--timercount==0)</p><p><b>  {</b></p><p>  Timercount==200;</p><p>  Txdflag=1;</p><p><b>  }</b></p><p><

108、b>  }</b></p><p>  Void main()</p><p><b>  {</b></p><p>  Txdflag=0;</p><p>  Rxdcount=0;</p><p>  Numcount=0;</p><p>  T

109、imercount=100;</p><p>  TMOD=0x21;</p><p><b>  TL0=0x00;</b></p><p><b>  TH0=0xdc;</b></p><p><b>  TL1=0xfd;</b></p><p>

110、;<b>  TH1=0xfd;</b></p><p>  SCON=0X50;</p><p><b>  TR1=1;</b></p><p><b>  ET0=1;</b></p><p><b>  ES=1;</b></p>&

111、lt;p><b>  EA=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(Txdflag==1)</p><p><b>  {</b></p>&

112、lt;p>  Txdflag=0;</p><p>  Serial_Txd(Txdnum);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3、程序

113、運(yùn)行后的結(jié)果</p><p>  單片機(jī)與PC相連,同時運(yùn)行程序,當(dāng)PC向單片機(jī)傳送數(shù)據(jù)后,如果數(shù)據(jù)相符,則單片機(jī)點(diǎn)亮L1發(fā)光二極管,并且開始每隔2S向PC傳送數(shù)據(jù),在PC上觀察到以下結(jié)果。</p><p>  00 01 02 03 04 05 06 07 08 09 A0 A1 A2 A3 A4 00 01 02 03 04 05 06 07 08 09 A0 A1 A2 A3 A4

114、00 01 02 03 04 05 06 07 08 09 A0 A1 A2 A3 A4 00 01 02 03 04 05 06 07 08 09 A0 A1 A2 A3 A4 </p><p>  程序運(yùn)行后PC上的運(yùn)行結(jié)果 </p><p><b>  第五章 結(jié)論</b></p><p>

115、;  經(jīng)過一段時間的學(xué)習(xí)與研究,至此,本次畢業(yè)設(shè)計(jì)已經(jīng)全部完成,所設(shè)計(jì)的接口電路、單片機(jī)串行通信、傳輸模塊基本達(dá)到預(yù)期的目的,順利地完成了任務(wù)。進(jìn)行循環(huán)數(shù)據(jù)采集,并且誤差范圍非常小,數(shù)據(jù)采集速度高,能夠滿足一般多通道數(shù)據(jù)采集要。在做畢業(yè)設(shè)計(jì)之初,我查了很多關(guān)于單片機(jī)串行通信、單片機(jī)原理與接口技術(shù)的設(shè)計(jì)資料,我發(fā)現(xiàn)經(jīng)過長時間的實(shí)踐的檢驗(yàn),而我?guī)缀鯊牧汩_始做,我發(fā)現(xiàn)自己很難找到創(chuàng)新點(diǎn),即使成功了也是對前人工作的一次重復(fù),一直很茫然,前人的設(shè)

116、計(jì)創(chuàng)新何在?但是經(jīng)過仔細(xì)思考,我端正了自己的態(tài)度,同時我也找到了姑且算做創(chuàng)新點(diǎn)的所在,作好了一切準(zhǔn)備工作之后便開始了緊張的畢業(yè)設(shè)計(jì)工作。做畢業(yè)設(shè)計(jì)的這段時間是緊張的一段時間,也是重新學(xué)習(xí)努力探索的一段時間,更是充滿收獲喜悅的一段時間。經(jīng)過這次畢業(yè)設(shè)計(jì),我學(xué)會了許多新知識,學(xué)會了如何查找資料,學(xué)會了遇到問題先分析問題解決問題的能力,學(xué)會了如何充分的利用網(wǎng)絡(luò)資源來提高自己的文化知識和專業(yè)知識,學(xué)會了單片機(jī)系統(tǒng)開發(fā)的一般流程;也明白了許多不曾

117、明白的道理,明白了求學(xué)應(yīng)當(dāng)有嚴(yán)謹(jǐn)?shù)淖黠L(fēng),并且更應(yīng)該有鍥而不舍、堅(jiān)強(qiáng)的韌勁。</p><p><b>  致 謝</b></p><p>  本畢業(yè)設(shè)計(jì)論文是在我的導(dǎo)師xx老師的悉心指導(dǎo)下完成的,在畢業(yè)設(shè)計(jì)過程中,xx老師傾注了大量的心血,他的悉心指導(dǎo)是本設(shè)計(jì)能夠圓滿完成的基礎(chǔ)。xx老師學(xué)識淵博,專業(yè)知識過硬,治學(xué)作風(fēng)嚴(yán)謹(jǐn),工作認(rèn)真負(fù)責(zé)。在這一段時間的畢業(yè)設(shè)計(jì)過程中,x

118、x老師言傳身教,不僅在學(xué)習(xí)上耐心地給我指點(diǎn)迷津,解惑答疑,在生活上也為我提供方便,更使我對人生的征途有了新的認(rèn)識,有了新的目標(biāo)。xx老師的孜孜不倦的教誨和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)令我終生難忘,也將使我受益終生。在此謹(jǐn)向xx老師表達(dá)一個學(xué)生最真摯的謝意!</p><p><b>  參考文獻(xiàn)</b></p><p>  張旭濤. 曾現(xiàn)峰. 單片機(jī)原理與應(yīng)用. 北京:北京理工大學(xué)出

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論