版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科畢業(yè)設(shè)計(jì)論文</b></p><p> 題 目 基于串口通信的字符終端的設(shè)計(jì)</p><p> 系別名稱 電子信息工程 0 </p><p> 專(zhuān)業(yè)名稱 電子信息工程 0 </p><p> 學(xué)生姓名 *
2、***** </p><p> 班 級(jí) </p><p> 學(xué) 號(hào) ****** </p><p> 指導(dǎo)教師 **** </p><p> 畢業(yè)時(shí)間
3、 2013年6月 0</p><p> 畢業(yè) 任務(wù)書(shū)</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> ?。?)根據(jù)制定的通信協(xié)議,設(shè)計(jì)出下位機(jī)串行通信模塊; </p><p> ?。?)根據(jù)制定的通信協(xié)議,利用編程語(yǔ)言設(shè)計(jì)動(dòng)態(tài)鏈接庫(kù)文件; </p><p> (5)通過(guò)設(shè)計(jì)一個(gè)可
5、視化界面來(lái)對(duì)單片機(jī)程序和動(dòng)態(tài)鏈接庫(kù)文件進(jìn)行調(diào)試和驗(yàn)證,并進(jìn)行改善; </p><p> (6)資料的整理以及各種說(shuō)明文檔的撰寫(xiě)。</p><p><b> 附加初步總體結(jié)構(gòu)圖</b></p><p><b> 設(shè)計(jì)總體構(gòu)思圖</b></p><p><b> ?。?)硬件設(shè)計(jì)<
6、/b></p><p> 通過(guò)ALtium Designer設(shè)計(jì)串口通信硬件電路,制作全部電路PCB及所有的元器件的焊接。</p><p><b> ?。?)軟件設(shè)計(jì)</b></p><p> 通過(guò)keil軟件編寫(xiě)相關(guān)程序并進(jìn)行調(diào)試。</p><p> 三 、預(yù)期達(dá)到的成果</p><p&
7、gt; ?。?)運(yùn)行于計(jì)算機(jī)上的程序可通過(guò)動(dòng)態(tài)鏈接文件對(duì)單片機(jī)進(jìn)行數(shù)據(jù)訪問(wèn)和傳送; </p><p> ?。?)單片機(jī)機(jī)串行通信模塊具有通用性和可移植性,可以通過(guò)簡(jiǎn)單的設(shè)置和改變而嵌入到其它數(shù)據(jù)采集系統(tǒng)中;</p><p> ?。?)串行通信協(xié)議具有穩(wěn)定性、通用性和可實(shí)現(xiàn)性。</p><p> 四、存在的問(wèn)題及擬采取的解決措施</p><p&g
8、t; 1.usb不能正常通信,可能存在的問(wèn)題?</p><p><b> 1、電路焊接錯(cuò)誤</b></p><p> 2、程序編寫(xiě)不正確,如:中斷未開(kāi)啟。</p><p> 2.usb通信正常,但顯示出現(xiàn)亂碼?</p><p> 初步診斷應(yīng)該是程序邏輯不正確。</p><p><b
9、> 五、進(jìn)度安排</b></p><p> 1.2-3周 接受并熟悉任務(wù)書(shū),查閱有關(guān)書(shū)籍、資料,上網(wǎng)查尋相關(guān)網(wǎng)站,獲取所需的信息。</p><p> 2. 4周 根據(jù)要求,消化資料,確定思路和總體技術(shù)方案,學(xué)習(xí)Protel軟件,提供初稿審核,編寫(xiě)開(kāi)題報(bào)告。</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周 對(duì)各階段的工作整理,完成畢業(yè)設(shè)計(jì)論文撰寫(xiě)及修改。</p><p> 5. 15-16周 準(zhǔn)備及完成畢業(yè)設(shè)計(jì)答辯</p><p><b> 六、參考文獻(xiàn)和書(shū)目</b></p><p> [1] 王偉 鄭金奎 MCS_51單片機(jī)主從式多機(jī)
11、系統(tǒng)實(shí)時(shí)通訊的實(shí)現(xiàn).西南自動(dòng)化研究所,1998年第3期</p><p> [2] 陳永真.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽試題精解選.北京:電子工業(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ā)展,人們已越來(lái)越多地采用單片機(jī)來(lái)對(duì)一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。51單片機(jī)是一種集CPU,RAM,F(xiàn)LASH
13、 ROM,I/O接口和定時(shí)中斷系統(tǒng)于一體的微型計(jì)算機(jī)。只要有外加電源和晶體振蕩器就可以獨(dú)立完成對(duì)數(shù)字信號(hào)的算術(shù)運(yùn)算,邏輯控制,串行通信等功能。由于單片機(jī)具有體積小,重量輕,功耗低,功能強(qiáng),價(jià)格低,可靠性好等諸多優(yōu)點(diǎn),因而在儀器儀表,家用電器,數(shù)據(jù)采集等一些嵌入式控制領(lǐng)域被廣泛應(yīng)用。 </p><p> 當(dāng)需要處理較復(fù)雜數(shù)據(jù)或需要對(duì)多個(gè)采集數(shù)據(jù)進(jìn)行綜合處理以及需要進(jìn)行集散控制時(shí),單片機(jī)的算術(shù)運(yùn)算和邏輯運(yùn)算能力顯
14、的不足,這時(shí)往往需要借助計(jì)算機(jī)系統(tǒng)。將單片機(jī)采集的數(shù)據(jù)通過(guò)串行口傳給PC機(jī),由PC機(jī)高級(jí)語(yǔ)言或數(shù)據(jù)庫(kù)語(yǔ)言進(jìn)行處理,或者實(shí)現(xiàn)PC機(jī)對(duì)遠(yuǎn)程單片機(jī)進(jìn)行控制。因此,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信更具有實(shí)際意義。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(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ā)展趨勢(shì)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)的過(guò)程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)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以
28、方便地連接起來(lái)進(jìn)行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在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)規(guī)定采用一個(gè)25個(gè)腳的 DB2
29、5連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信 號(hào)的電平加以規(guī)定。 </p><p> 隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來(lái)越多地采用單片機(jī)來(lái)對(duì)一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過(guò)PC機(jī)的RS-232串行接口與外部設(shè)備進(jìn)行通信,是許多測(cè)控系統(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個(gè)階段。</p><p> 第一代:?jiǎn)纹瑱C(jī)探索階段。主要有同通用CPU68XX系列和專(zhuān)用MCS-48系列的簡(jiǎn)單實(shí)例應(yīng)用。</p><
31、;p> 第二代:?jiǎn)纹瑱C(jī)完善階段。具體表現(xiàn)在:面對(duì)對(duì)象,突出控制功能,專(zhuā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ā)展專(zhuān)用型單片機(jī),致力于提高單片機(jī)的綜合品質(zhì)。</p><p> 1.2單片機(jī)的發(fā)展趨勢(shì)</p><p> 單片機(jī)的發(fā)展趨勢(shì)可歸為以下8個(gè)方面。</p><p><b> 主流機(jī)型發(fā)展趨勢(shì)。</b></p><p> 全盤(pán)CMOS化趨勢(shì)。</p><p&
33、gt; RISC體系結(jié)構(gòu)的發(fā)展。</p><p> 可刷新的FLASHROM成為主流供應(yīng)狀態(tài),便于用戶對(duì)系統(tǒng)軟件進(jìn)行升級(jí)和修改。</p><p> ISP及基于ISP的開(kāi)發(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),是最具有代表性和使用最廣范的專(zhuān)用計(jì)算機(jī)應(yīng)用系統(tǒng)。</p>&l
35、t;p> ?。?)單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)。</p><p> 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)分3個(gè)層次。</p><p> 1.單片機(jī):通常指應(yīng)用系統(tǒng)主處理機(jī),即所選擇的單片機(jī)器件。</p><p> 2.單片機(jī)系統(tǒng):指按照單片機(jī)的技術(shù)要求和嵌入對(duì)象的資源要求而構(gòu)成的基本系統(tǒng),如時(shí)鐘電路、復(fù)位電路和擴(kuò)展存儲(chǔ)器等與單片機(jī)構(gòu)成了單片機(jī)系統(tǒng)。</p><
36、;p> 3.單片機(jī)應(yīng)用系統(tǒng):指能滿足嵌入對(duì)象要求的全部電路系統(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代表美國(guó)電子工業(yè)協(xié)會(huì),RS代表推薦標(biāo)準(zhǔn),232是
37、標(biāo)識(shí)號(hào)。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即單端通信。單片機(jī)之間的串口通信,當(dāng)傳輸距離在1.5-15米之間時(shí),可以采用RS-232通訊協(xié)議進(jìn)行數(shù)據(jù)傳輸,基于RS-232電氣特性的限制,只能實(shí)現(xiàn)一點(diǎn)對(duì)一點(diǎn)通信(既單機(jī)通信)。</p><p> 1.5設(shè)計(jì)內(nèi)容及要求 </p><p> 在計(jì)算機(jī)控制系統(tǒng)中,不可避免的
38、要采用多機(jī)進(jìn)行通信。隨著單片機(jī)在各個(gè)領(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ù)后通過(guò)lcd1602液晶顯示出來(lái),同時(shí)會(huì)向PC機(jī)反饋顯示成功的確認(rèn)信號(hào),即在PC機(jī)串口調(diào)試軟件的接收緩沖區(qū)內(nèi)將顯示“display
39、 OK!”等字樣。 </p><p> 1.6串口通信原理 </p><p> 所謂"串行通信"是指外設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號(hào)線,數(shù)據(jù)在一根數(shù)據(jù)信號(hào)線上按位進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。這種通信方式使用的數(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í),數(shù)據(jù)格式由位 (bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);反之,當(dāng)計(jì)算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時(shí),串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。 </p><p> 串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU經(jīng)過(guò)串行端口發(fā)送出
41、去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 在Windows環(huán)境(Windows NT、Win98、Windows2000)下,串口是系統(tǒng)資源的一部分。 應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開(kāi)串口),通信完成后必須釋放資源(關(guān)閉串口)。 </p><p> 串口通信的概念非
42、常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。 </p><p> 典型的串口用于ASCI
43、I碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配: </p><p> a,波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300
44、個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是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ā)送一個(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碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開(kāi)始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ) “包”指任何通信的情況。
46、</p><p> c,停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。 d,奇偶
47、校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否
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、程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。它是一種高效微控制器,因?yàn)樗?jīng)濟(jì)實(shí)惠,用起來(lái)靈活方便,而且習(xí)慣了用這種型號(hào)的單片機(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芯片是美信公司專(zhuān)門(mén)為電腦的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芯片來(lái)完成電平轉(zhuǎn)
51、換。</p><p> 2.1.3單片機(jī)與pc機(jī)通信原理</p><p> MCS-51單片機(jī)有一個(gè)全雙工的串行通訊口UART。利用其RXD和TXD與外界進(jìn)行通信,其內(nèi)部有2個(gè)物理上完全獨(dú)立的接收、發(fā)送緩沖器SBUF,可同時(shí)發(fā)送和接收數(shù)據(jù)。所以單片機(jī)和PC機(jī)之間可以方便地進(jìn)行串口通訊。單片機(jī)串口有3條引線:TXD(發(fā)送數(shù)據(jù))、RXD(接收數(shù)據(jù))和GND(信號(hào)地)。因此在通信距離較短時(shí)可
52、采用零MO·</p><p> DEM方式,簡(jiǎn)單三連線結(jié)構(gòu)。PC機(jī)有兩個(gè)標(biāo)準(zhǔn)的RS.232串行口,其電平采用的是EIA電平,而MCS-51單片機(jī)的串行通信是由TXD(發(fā)送數(shù)據(jù))和RXD(接收數(shù)據(jù))來(lái)進(jìn)行全雙工通信的,它們的電平是TTL電平;為了Pc機(jī)與MCS-51機(jī)之間能可靠地進(jìn)行串行通信,需要用電平轉(zhuǎn)換芯片,我們采用了MAXIM公司生產(chǎn)的專(zhuā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++來(lái)實(shí)現(xiàn)編程,上位機(jī)與單片機(jī)進(jìn)行通信的程序編寫(xiě)可用VB、VC等軟件。由于VB作為面向?qū)ο蟮木幊坦ぞ卟粔蛲耆时萔C低,提供的命令
54、語(yǔ)言環(huán)境較弱,通過(guò)串口設(shè)備一次最多只能交換16B的數(shù)據(jù),對(duì)較大數(shù)據(jù)量的傳輸存在很大的局限性,很難實(shí)現(xiàn)較為復(fù)雜的數(shù)據(jù)處理,VC6.0++是一種功能強(qiáng)大的面向?qū)ο蟮腤indows編程開(kāi)發(fā)平臺(tái)。VC6.0的優(yōu)點(diǎn)是界面簡(jiǎn)潔,占用資源少,操作方便。所以本設(shè)計(jì)采用VC作為串口編程工具。</p><p> 2.2.2 單片機(jī)編程方案選擇</p><p> 本設(shè)計(jì)單片機(jī)的編程選擇C語(yǔ)言編寫(xiě),因?yàn)樗?jiǎn)潔
55、緊湊、靈活方便、運(yùn)算符豐富、數(shù)據(jù)結(jié)構(gòu)豐富、C是結(jié)構(gòu)式語(yǔ)言、C語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大、C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作、C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高,一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%、C語(yǔ)言適用范圍大,可移植性好C語(yǔ)言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機(jī)型。C語(yǔ)言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,
56、二維圖形和動(dòng)畫(huà)它是數(shù)值計(jì)算的高級(jí)語(yǔ)言。所以我選用C語(yǔ)言來(lái)編寫(xiě)此程序。</p><p> 2.3 總體方案選擇</p><p> 溫度傳感器測(cè)量出來(lái)的溫度值由單片機(jī)采集出來(lái),然后單片機(jī)再將采集出的溫度數(shù)據(jù)處理后,通過(guò)串行口發(fā)送給上位機(jī)。</p><p> 圖2.1總體設(shè)計(jì)方案流程圖</p><p> 2.4系統(tǒng)總體設(shè)計(jì)思路</p&
57、gt;<p> 本文要求設(shè)計(jì)一個(gè)51單片機(jī)與PC串口間通訊系統(tǒng)的字符終端顯示,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信。設(shè)計(jì)分發(fā)送和接收兩大模塊,發(fā)送部分通過(guò)硬件電路的引用。其中包括RS-232接口電路、MAX232接口電路,引用相應(yīng)的管腳相連,并將相應(yīng)的軟件程序轉(zhuǎn)入電路中,即可運(yùn)行。當(dāng)電路是相對(duì)獨(dú)立時(shí),可直接調(diào)速電路參數(shù)值,其影響和干擾就小。在滿足發(fā)射和接收模塊的要求后可單獨(dú)對(duì)控制進(jìn)行調(diào)整,程序的編入,接收部分相應(yīng)的結(jié)果即以實(shí)
58、現(xiàn),因此實(shí)現(xiàn)了PC機(jī)對(duì)遠(yuǎn)端單片機(jī)的控制。</p><p> 利用vc++編寫(xiě)上位機(jī)數(shù)據(jù)發(fā)送接收軟件,作為給單片機(jī)發(fā)送數(shù)據(jù)或接收單片機(jī)發(fā)送數(shù)據(jù)的軟件。用單片機(jī)設(shè)計(jì)好硬件電路,給單片機(jī)進(jìn)行編程,從而是單片機(jī)能夠接收pc機(jī)傳送來(lái)的數(shù)據(jù),并通過(guò)lcd1602液晶顯示出來(lái)從而達(dá)到設(shè)計(jì)要求。</p><p> 第三章 單元硬件電路設(shè)計(jì)</p><p> 3.1硬件實(shí)現(xiàn)的過(guò)
59、程</p><p> 在實(shí)現(xiàn)單片機(jī)與PC機(jī)之間通信或單片機(jī)與單片機(jī)之間遠(yuǎn)程距離通信時(shí)通常采用標(biāo)準(zhǔn)串行總線通訊接口。比如RS-232C、RS-422、RS485等。在這些串行總線接口標(biāo)準(zhǔn)中,是在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,它實(shí)用于短距離或帶調(diào)制解調(diào)器的通信場(chǎng)合。下面以RS-232標(biāo)準(zhǔn)串行總線接口為例,簡(jiǎn)單介紹單片機(jī)與PC機(jī)之間串行通信的硬件實(shí)現(xiàn)過(guò)程。</p><p> 3.1.1
60、單片機(jī)主要特性</p><p> ·與MCS-51 兼容 </p><p> ·4K字節(jié)可編程閃爍存儲(chǔ)器 </p><p> ·壽命:1000寫(xiě)/擦循環(huán) </p><p> ·數(shù)據(jù)保留時(shí)間:10年 </p><p> ·全靜態(tài)工作:0Hz-24
61、MHz </p><p> ·三級(jí)程序存儲(chǔ)器鎖定 </p><p> ·128×8位內(nèi)部RAM </p><p> ·32可編程I/O線 </p><p> ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 </p><p><b> ·5個(gè)中
62、斷源 </b></p><p> ·可編程串行通道 </p><p> ·低功耗的閑置和掉電模式 </p><p> ·片內(nèi)振蕩器和時(shí)鐘電路</p><p> 單片機(jī)AT89C51的引腳說(shuō)明:</p><p> 圖3.1 AT89C51的引腳排列</
63、p><p><b> 引腳描述:</b></p><p> VCC:電源電壓 </p><p><b> GND:地</b></p><p> P0口:P0口是一組8位漏極開(kāi)路雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時(shí),每一個(gè)管腳都能夠驅(qū)動(dòng)8個(gè)TTL電路。當(dāng)“1”被寫(xiě)入P0口時(shí),每
64、個(gè)管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時(shí)激活內(nèi)部的上拉電阻。P0口在閃爍編程時(shí),P0口接收指令,在程序校驗(yàn)時(shí),輸出指令,需要接電阻。</p><p> P1口:P1口一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí)可作為輸入口。因?yàn)閮?nèi)部有電阻,某個(gè)引腳被外部信號(hào)拉
65、低時(shí)輸出一個(gè)電流。閃爍編程時(shí)和程序校驗(yàn)時(shí),P1口接收低8位地址。</p><p> P2口:P2口是一個(gè)內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí),可作為輸入口。因?yàn)閮?nèi)部有電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),
66、P2口線上的內(nèi)容在整個(gè)運(yùn)行期間不變。閃爍編程或校驗(yàn)時(shí),P2口接收高位地址和其它控制信號(hào)。</p><p> P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)P3口寫(xiě)如“1”時(shí),它們被內(nèi)部電阻拉到高電平并可作為輸入端時(shí),被外部拉低的P3口將用電阻輸出電流。</p><p> P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示
67、</p><p> 表2..1 P3口第二功能</p><p> P3口還接收一些用于閃爍存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p><b> RST:</b></p><p> 復(fù)位輸入。當(dāng)震蕩器工作時(shí),RET引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。</p><p><
68、;b> ALE/:</b></p><p> 當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE以時(shí)鐘震蕩頻率的1/16輸出固定的正脈沖信號(hào),因此它可對(duì)輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖時(shí),閃爍存儲(chǔ)器編程時(shí),這個(gè)引腳還用于輸入編程脈沖。如果必要,可對(duì)特殊寄存器區(qū)中的8EH單元的D0位置禁止AL
69、E操作。這個(gè)位置后只有一條MOVX和MOVC指令A(yù)LE才會(huì)被應(yīng)用。此外,這個(gè)引腳會(huì)微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無(wú)效。</p><p> PSEN:程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C51由外部程序存儲(chǔ)器讀取指令時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN 信號(hào)不出現(xiàn)。</p><p>
70、EA/VPP:外部訪問(wèn)允許。欲使中央處理器僅訪問(wèn)外部程序存儲(chǔ)器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。閃爍存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電壓VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p> XTAL1:震蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><
71、;p> XTAL2:震蕩器反相放大器的輸出端。</p><p> 時(shí)鐘震蕩器:AT89C51中有一個(gè)用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自然震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。對(duì)外接電容C1,C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響
72、震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF±10PF,而如果使用陶瓷振蕩器建議選擇40PF±10PF。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)
73、間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。</p><p> 圖3.2內(nèi)部振蕩電路 圖3.3閑散節(jié)電模式</p><p> AT89C51有兩種可用軟件編程的省電模式,它們是閑散模式和掉電工作模式。這兩種方式是控制專(zhuān)用寄存器PCON中的PD和IDL位來(lái)實(shí)現(xiàn)的。PD是掉電模式,當(dāng)PD=1時(shí),激活掉電工作模式,單片機(jī)進(jìn)入掉電工作狀態(tài)。IDL是閑散等待方式,當(dāng)IDL
74、=1,激活閑散工作狀態(tài),單片機(jī)進(jìn)入睡眠狀態(tài)。如需要同時(shí)進(jìn)入兩種工作模式,即PD和IDL同時(shí)為1,則先激活掉電模式。在閑散工作模式狀態(tài),中央處理器CPU保持睡眠狀態(tài),而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時(shí),片內(nèi)隨機(jī)存取數(shù)據(jù)存儲(chǔ)器和所有特殊功能寄存器的內(nèi)容保持不變。閑散模式可由任何允許的中斷請(qǐng)求或硬件復(fù)位終止。終止閑散工作模式的方法有兩種,一是任何一條被允許中斷的事件被激活,IDL被硬件清除,即刻終止閑散工作模式。程序會(huì)首
75、先影響中斷,進(jìn)入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序,并緊隨RETI指令后,下一條要執(zhí)行的指令就是使單片機(jī)進(jìn)入閑散工作模式,那條指令后面的一條指令。二是通過(guò)硬件復(fù)位也可將閑散工作模式終止。需要注意的是:當(dāng)由硬件復(fù)位來(lái)終止閑散工作模式時(shí),中央處理器CPU通常是從激活空閑模式那條指令的下一條開(kāi)始繼續(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ú)效切必須保持一定時(shí)間以使振蕩器從新啟動(dòng)并穩(wěn)定工作。</p><p> 表2.2閑散和掉電模式外部引腳狀態(tài)。</p>&l
77、t;p><b> 程序存儲(chǔ)器的加密</b></p><p> AT89C51可使用對(duì)芯片上的三個(gè)加密位LB1,LB2,LB3進(jìn)行編程(P)或不編程(U)得到如下表所示的功能:</p><p> 表2.3程序存儲(chǔ)器的加密</p><p> 當(dāng)LB1被編程時(shí),在復(fù)位期間,EA端的電平被鎖存,如果單片機(jī)上電后一直沒(méi)有復(fù)位,鎖存起來(lái)的初始
78、值是一個(gè)不確定數(shù),這個(gè)不確定數(shù)會(huì)一直保存到真正復(fù)位位置。為了使單片機(jī)正常工作,被鎖存的EA電平與這個(gè)引腳當(dāng)前輯電平一致。機(jī)密位只能通過(guò)整片擦除的方法清除。</p><p> 3.1.2 RS-232總線標(biāo)準(zhǔn)</p><p> RS-232C總線標(biāo)準(zhǔn)定義了25個(gè)引腳的連接器,各引腳的定義如表3-1所示。</p><p> 表3-1 RS-232信號(hào)引腳定義<
79、;/p><p> 表3-1中定義的許多信號(hào)線是為通信業(yè)務(wù)聯(lián)系或控制而設(shè)置的,在計(jì)算機(jī)串口通信中主要是用以下一些信號(hào)。</p><p> 數(shù)據(jù)傳輸信號(hào):發(fā)送數(shù)據(jù)(TXD),接收數(shù)據(jù)(RXD)</p><p> 調(diào)制解調(diào)器控制信號(hào):請(qǐng)求發(fā)送(RTS),清除發(fā)送(CTS)</p><p> 地線:保護(hù)地(PG),信號(hào)地(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ī)通過(guò)RS-232標(biāo)準(zhǔn)總線串行通信時(shí),由于RS-232信號(hào)電平與51單片機(jī)信號(hào)電平不一致,因此,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。其常用的方法有兩種,一種是采用運(yùn)算放大器、晶體管、光電隔離器等器件組成的電路來(lái)實(shí)現(xiàn),另一種是采用專(zhuān)門(mén)集成芯片來(lái)實(shí)現(xiàn)。下面以MAX232專(zhuān)門(mén)集成芯片為例來(lái)介紹接口電路的實(shí)現(xiàn)。</
82、p><p> 3.2.1 、MAX232接口電路</p><p> MAX232芯片是MAXIM公司生產(chǎn)的具有兩路接收器和驅(qū)動(dòng)器的IC芯片,其內(nèi)部有一個(gè)電源電壓變換器,可以將輸入+5V的電壓變換成RS-232C輸出電平所需的+/-12V的電壓。在其內(nèi)部同時(shí)也完成TTL信號(hào)電平和RS-232信號(hào)電平的轉(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信號(hào)電平與RS-232信號(hào)電平的轉(zhuǎn)換電路,對(duì)應(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ā)送與接收的對(duì)應(yīng)關(guān)系不能連錯(cuò),則不能正常工作。</p><p> 圖3-3 用MAX232實(shí)現(xiàn)串行通信接口電路圖</p><p><b> 第四章 軟件設(shè)計(jì)<
86、;/b></p><p> 鑒于單片機(jī)技術(shù)比較成熟,且開(kāi)發(fā)過(guò)程中可以利用的資源和工具豐富、價(jià)格便宜、成本低。故設(shè)計(jì)用C語(yǔ)言對(duì)其編程并燒錄到芯片內(nèi)部,C語(yǔ)言表達(dá)和運(yùn)算能力比較強(qiáng),且具有很好的可移植性和硬件控制能力,程序可分為發(fā)射部分和接收部分。</p><p> 在51系列單片機(jī)中,波特率由定時(shí)/計(jì)數(shù)器T1自動(dòng)產(chǎn)生,但在使用前。需對(duì)T1進(jìn)行一些設(shè)置,才能得自己想要的波特率。我們通常
87、在有串行通信的系統(tǒng)中選用11.0592MHz的晶振,為了使用方便采用9600Kbps的波特率,所以T1的初值應(yīng)設(shè)置為T(mén)H1=0xFD,TL1=0xFD。</p><p> 4.1 軟件設(shè)計(jì)和硬件設(shè)計(jì)的關(guān)系</p><p> 為了滿足設(shè)計(jì)的功能和指標(biāo)的要求,我們必須在開(kāi)始設(shè)計(jì)時(shí)就應(yīng)考慮到硬件和軟件的協(xié)調(diào);不然就是造成硬件資源的浪費(fèi),就是增加軟件實(shí)現(xiàn)時(shí)的困難和復(fù)雜程度,甚至造成信號(hào)的斷層,
88、即使硬件和軟件能單獨(dú)使用,卻不能使它們組成的系統(tǒng)工作,故在設(shè)計(jì)的過(guò)程中必須考慮軟、硬件的處理能力以及它們的接口是否兼容,實(shí)現(xiàn)軟、硬件的過(guò)渡,其次、設(shè)計(jì)時(shí)硬件之間應(yīng)盡可能減小聯(lián)系,只要把必要的信號(hào)線相連即可。由于硬件的分離,在軟件的調(diào)試時(shí)就可以單獨(dú)針對(duì)控制模塊。</p><p> 4.2 Proteus中的仿真使用 </p><p> 4.2.1 虛擬串口</p><
89、p> 虛擬串口是計(jì)算機(jī)通過(guò)軟件模擬的串口,當(dāng)其它設(shè)計(jì)軟件使用到串口的時(shí)候,可以通過(guò)調(diào)用虛擬串口仿真模擬,以查看所設(shè)計(jì)的正確性。首先要安裝虛擬串口設(shè)置的軟件,網(wǎng)上有很多設(shè)置虛擬串口的軟件,我用的是VSPD,可試用1個(gè)月,試用期過(guò)后,該軟件將不能使用,但不用擔(dān)心,所設(shè)置的虛擬串口不會(huì)消失,可以繼續(xù)使用。</p><p><b> 設(shè)置界面:</b></p><p&g
90、t; 由于我設(shè)置的是COM3和COM4,軟件只能成對(duì)設(shè)置,主要是因?yàn)橥ㄐ艜r(shí),一方可以監(jiān)視另一方,如果僅設(shè)置1個(gè)虛擬串口的話,如你用COM3發(fā)送接收數(shù)據(jù),但發(fā)送了什么接收到什么,你無(wú)法驗(yàn)證其正確與來(lái)源。這是人家編寫(xiě)軟件的高明之處。軟件設(shè)置時(shí)將所設(shè)置的兩個(gè)虛擬串口對(duì)接,這樣就可實(shí)現(xiàn)發(fā)送與接收的監(jiān)視。從設(shè)備管理器中可以看到</p><p> 兩個(gè)虛擬串口對(duì)接方式:</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è)置好,對(duì)其它設(shè)計(jì)軟件而言,虛擬串口和普通串口沒(méi)有區(qū)別,如串口調(diào)試助手對(duì)虛擬串口的使用和普通串口的使用方法一樣。 </p><p> 4.2.2 虛擬串口在Proteus中的
92、使用</p><p> 下一步介紹一下虛擬串口在Proteus中的使用,更準(zhǔn)確的應(yīng)該說(shuō)是“串口在Proteus中的使用”,只不過(guò)我們用軟件實(shí)現(xiàn)仿真,虛擬串口在這使用的比較頻繁。</p><p> 先在Proteus中將環(huán)境建立起來(lái),很簡(jiǎn)單,先需要兩個(gè)元器件就可以建立連接VIRTUAL TERMINAL和COMPIM,如圖VIRTUAL TERMINAL的TXD與COMPIM的TXD相連
93、,RXD與RXD相連,后面有圖分析為什么這樣相連:</p><p> VIRTUAL TERMINAL是串口監(jiān)視儀器,可以通過(guò)它將數(shù)據(jù)線上的符合RS232協(xié)議的波形捕捉到,并顯示出來(lái),也可以往數(shù)據(jù)線上發(fā)送RS232協(xié)議的波形;COMPIM為串口元件,可設(shè)置占用計(jì)算機(jī)上哪一個(gè)串口,可以是“實(shí)際串口”,也可以是“虛擬串口”,對(duì)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中可直接鍵盤(pán)輸入想要發(fā)送的數(shù)據(jù),但界面中無(wú)任何顯示,可以通過(guò)串口調(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> 由于編寫(xiě)一個(gè)工作在9600bps的8052的串口程序,程序的功能就是將串口接收到的數(shù)據(jù)發(fā)送出來(lái),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ā)來(lái)的數(shù)據(jù),并判斷命令為“01H”時(shí),啟動(dòng)定時(shí)發(fā)送程序,即每隔2S向PC發(fā)送15個(gè)字節(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相連,同時(shí)運(yùn)行程序,當(dāng)PC向單片機(jī)傳送數(shù)據(jù)后,如果數(shù)據(jù)相符,則單片機(jī)點(diǎn)亮L1發(fā)光二極管,并且開(kāi)始每隔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)過(guò)一段時(shí)間的學(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)過(guò)長(zhǎng)時(shí)間的實(shí)踐的檢驗(yàn),而我?guī)缀鯊牧汩_(kāi)始做,我發(fā)現(xiàn)自己很難找到創(chuàng)新點(diǎn),即使成功了也是對(duì)前人工作的一次重復(fù),一直很茫然,前人的設(shè)
116、計(jì)創(chuàng)新何在?但是經(jīng)過(guò)仔細(xì)思考,我端正了自己的態(tài)度,同時(shí)我也找到了姑且算做創(chuàng)新點(diǎn)的所在,作好了一切準(zhǔn)備工作之后便開(kāi)始了緊張的畢業(yè)設(shè)計(jì)工作。做畢業(yè)設(shè)計(jì)的這段時(shí)間是緊張的一段時(shí)間,也是重新學(xué)習(xí)努力探索的一段時(shí)間,更是充滿收獲喜悅的一段時(shí)間。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),我學(xué)會(huì)了許多新知識(shí),學(xué)會(huì)了如何查找資料,學(xué)會(huì)了遇到問(wèn)題先分析問(wèn)題解決問(wèn)題的能力,學(xué)會(huì)了如何充分的利用網(wǎng)絡(luò)資源來(lái)提高自己的文化知識(shí)和專(zhuān)業(yè)知識(shí),學(xué)會(huì)了單片機(jī)系統(tǒng)開(kāi)發(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ì)過(guò)程中,xx老師傾注了大量的心血,他的悉心指導(dǎo)是本設(shè)計(jì)能夠圓滿完成的基礎(chǔ)。xx老師學(xué)識(shí)淵博,專(zhuān)業(yè)知識(shí)過(guò)硬,治學(xué)作風(fēng)嚴(yán)謹(jǐn),工作認(rèn)真負(fù)責(zé)。在這一段時(shí)間的畢業(yè)設(shè)計(jì)過(guò)程中,x
118、x老師言傳身教,不僅在學(xué)習(xí)上耐心地給我指點(diǎn)迷津,解惑答疑,在生活上也為我提供方便,更使我對(duì)人生的征途有了新的認(rèn)識(shí),有了新的目標(biāo)。xx老師的孜孜不倦的教誨和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)令我終生難忘,也將使我受益終生。在此謹(jǐn)向xx老師表達(dá)一個(gè)學(xué)生最真摯的謝意!</p><p><b> 參考文獻(xiàn)</b></p><p> 張旭濤. 曾現(xiàn)峰. 單片機(jī)原理與應(yīng)用. 北京:北京理工大學(xué)出
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于串口通信的字符顯示終端的設(shè)計(jì) 外文翻譯
- 畢業(yè)設(shè)計(jì)(論文)+基于gprs通信技術(shù)的終端研究
- 基于vb的pc機(jī)雙串口通信技術(shù)研究的畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于labview的串口通訊系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--基于fpga的串口通信電路設(shè)計(jì)
- 基于dsp的串口通信設(shè)計(jì)與實(shí)現(xiàn)
- 270308$高藍(lán)色海洋$畢業(yè)設(shè)計(jì)-基于RS-232C的串口通信.doc
- 270308$高藍(lán)色海洋$畢業(yè)設(shè)計(jì)-基于RS-232C的串口通信.doc
- 基于fpga的串口通信電路設(shè)計(jì)
- 串口通信c++課程設(shè)計(jì)--基于串口通信的高級(jí)語(yǔ)言控制程序的設(shè)計(jì)
- 基于單片機(jī)與pc機(jī)串口通信的溫度記錄儀畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----車(chē)牌字符分割系統(tǒng)的設(shè)計(jì)
- 基于 qt 的串口通信工具的設(shè)計(jì)與實(shí)現(xiàn)
- 單片機(jī)之間的串口通信設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)與pc機(jī)串口通信的低功耗溫度記錄儀 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-基于arm的gprs無(wú)線數(shù)據(jù)終端設(shè)計(jì)
- 基于網(wǎng)絡(luò)通信與串口通信的電梯仿真軟件的設(shè)計(jì).pdf
- 基于simulink的通信系統(tǒng)仿真畢業(yè)設(shè)計(jì)
- 基于simulink的通信系統(tǒng)仿真-畢業(yè)設(shè)計(jì)
- 基于FPGA實(shí)現(xiàn)高速串口通信的電路設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論