版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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><b> 單片機(jī)多機(jī)通信實(shí)現(xiàn)</b></p><p><b> 單片機(jī)多機(jī)通信實(shí)現(xiàn)</b></p><p> 摘要:目前,單片機(jī)在多機(jī)通信領(lǐng)域應(yīng)用很廣。但研究最多的是上位機(jī)與下位機(jī)的通信及多單片機(jī)構(gòu)成的主從式多機(jī)通信系統(tǒng)。本文
2、重點(diǎn)研究了多單片機(jī)的平權(quán)式多機(jī)通信,使各單片機(jī)有相同的權(quán)限。</p><p> 本文從平權(quán)式多機(jī)通信協(xié)議入手,首先設(shè)計(jì)了具體平權(quán)式多機(jī)通信協(xié)議;主機(jī)通信用按鍵控制,模擬實(shí)際應(yīng)用中的觸發(fā)信號(hào)輸入。對(duì)于1號(hào)單片機(jī),還可通過液晶實(shí)時(shí)顯示工作狀態(tài),初始為主機(jī)。在不需置其他單片機(jī)為主機(jī)的情形下,本多機(jī)通信系統(tǒng)可以作為主從式多機(jī)通信系統(tǒng)。從機(jī)通信模式通過串口中斷觸發(fā)啟動(dòng),通信結(jié)束即恢復(fù)之前的從機(jī)狀態(tài)。通信過程中,主機(jī)先發(fā)送
3、尋址的從機(jī)號(hào),待從機(jī)響應(yīng)后開始通信。通信結(jié)束后,主機(jī)發(fā)送自己的主機(jī)號(hào),告知從機(jī)。然后從機(jī)發(fā)給主機(jī)校驗(yàn)字節(jié)數(shù)據(jù),主機(jī)檢驗(yàn)錯(cuò)誤,檢驗(yàn)無誤后,作出響應(yīng),1號(hào)單片機(jī)液晶會(huì)顯示,2號(hào)和3號(hào)單片機(jī)收發(fā)數(shù)據(jù)無誤后會(huì)使LED指示燈亮起。其外,本文研究了可切換雙向接口的實(shí)現(xiàn)方法。通過用單片機(jī)的一個(gè)引腳控制單片機(jī)的串口的連接方式,使其工作在主機(jī)模式或從機(jī)模式。</p><p> 本研究已經(jīng)仿真通過,真實(shí)可行。具有一定的檢錯(cuò)能力,串
4、行通信的比特率是9600bit/s,通信速度較快,且可靠性高。本研究通過硬件電路解決了通信過程中多單片機(jī)爭(zhēng)用主機(jī)權(quán)的問題。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);多機(jī)通信;平權(quán);AT89S52</p><p> Realization of many SCM communication</p><p> Abstract:At present, the singl
5、e chip multi-machine communication in a wide field of applications. However, the most studied is the host computer and lower computer communications and multi-chip microprocessor master-slave multi-machine communication
6、system. This paper focuses on a number of single chip multi-machine communication affirmative, so that the MCU has the same permissions. </p><p> The paper machine from the multi-level communication protoco
7、l of the right to start with, first, the specific communication protocol. Host Communication button control, the practical application of simulation in the trigger signal input. For the No. 1 microcontroller, but also th
8、rough the LCD display working status, the initial for the host. No other single chip set in the case of the host, the multi-machine communication system can be used as master-slave multi-machine communication system. Com
9、</p><p> This study has been simulated by the real feasible. Have some error detection capability, the bit rate of serial communication 9600bit / s, communication speed, and reliability. In this study, the
10、hardware circuit through the communication process to resolve the contention over the host microcontroller over the issue.</p><p> Key words::SCM;Multi-machine communication;Equal rights; AT89S52</p>
11、<p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 論文研究的背景與意義1</p><p> 1.2 單片機(jī)多機(jī)通信領(lǐng)域的歷史及國(guó)內(nèi)外發(fā)展現(xiàn)狀1</p><p> 1.3 本論文的研究?jī)?nèi)容2</p>&l
12、t;p> 2 單片機(jī)多機(jī)通信理論及方案選擇3</p><p> 2.1 單片機(jī)串口通信3</p><p> 2.2 單片機(jī)多機(jī)通信方案選擇5</p><p> 2.3 微處理器的選擇5</p><p> 2.4 液晶LCD1602介紹9</p><p> 3 單片機(jī)多機(jī)通信協(xié)議設(shè)計(jì)15&l
13、t;/p><p> 4 硬件電路設(shè)計(jì)16</p><p> 4.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì)16</p><p> 4.2 矩陣鍵盤電路設(shè)計(jì)17</p><p> 4.3 液晶顯示電路設(shè)計(jì)18</p><p> 4.4 可切換接口電路設(shè)計(jì)19</p><p> 4.5 2號(hào)與3號(hào)
14、單片機(jī)按鍵電路設(shè)計(jì)23</p><p> 4.6 LED顯示電路設(shè)計(jì)23</p><p> 4.7 主機(jī)權(quán)分配電路設(shè)計(jì)24</p><p> 4.8 電源電路設(shè)計(jì)28</p><p><b> 5 軟件設(shè)計(jì)29</b></p><p> 5.1 多機(jī)通信協(xié)議的算法設(shè)計(jì)
15、29</p><p> 5.2 鍵盤程序設(shè)計(jì)32</p><p> 5.3 系統(tǒng)初始化程序設(shè)計(jì)35</p><p><b> 6 結(jié)論35</b></p><p><b> 參考文獻(xiàn)36</b></p><p><b> 致謝37</b
16、></p><p> 附錄1:1號(hào)單片機(jī)電路原理圖38</p><p> 附錄2:2號(hào)單片機(jī)電路原理圖39</p><p> 附錄3:3號(hào)單片機(jī)電路原理圖39</p><p> 附錄4:仿真電路圖41</p><p> 附錄5:源程序:42</p><p><b&
17、gt; 單片機(jī)多機(jī)通信實(shí)現(xiàn)</b></p><p><b> 1 緒論 </b></p><p> 1.1 課題研究的背景與意義</p><p> 目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣
18、泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。 </p><p> 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域隨著計(jì)算機(jī)技術(shù)的發(fā)展及工業(yè)自動(dòng)化水平的提高, 在許多場(chǎng)合采用單機(jī)控制已不能滿足現(xiàn)場(chǎng)要求,因而必須采用多機(jī)控制的形
19、式,而多機(jī)控制主要通過多個(gè)單片機(jī)之間的串行通信實(shí)現(xiàn)。串行通信作為單片機(jī)之間常用的通信方法之一, 由于其通信編程靈活、硬件簡(jiǎn)潔并遵循統(tǒng)一的標(biāo)準(zhǔn), 因此其在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。</p><p> 構(gòu)成較大規(guī)模的檢測(cè)、控制系統(tǒng),經(jīng)常要采用多個(gè)單片機(jī),組成可以通信的多機(jī)系統(tǒng)。Mcs一51系列單片機(jī)為實(shí)現(xiàn)多機(jī)通信聯(lián)網(wǎng)設(shè)計(jì)了方便的串行通信接口功能。將多個(gè)Mcs一51單片機(jī)組成串行總線形式的相互通道,通過寫單片機(jī)的
20、串行控制方式寄存器,將串行口置成方式2或方式3,就可以實(shí)現(xiàn)主機(jī)與分機(jī)之間的串行通信。這種多機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,應(yīng)用廣泛,但它只能實(shí)現(xiàn)由主機(jī)呼叫分機(jī),然后實(shí)現(xiàn)主機(jī)與分機(jī)之間的全雙工串行通信。我們?cè)诒O(jiān)控系統(tǒng)中要求既有主機(jī)與分機(jī)主動(dòng)通信,又有分機(jī)與主機(jī)主動(dòng)通信,這種結(jié)構(gòu)的多機(jī)系統(tǒng)就無法滿足要求。</p><p> 多機(jī)協(xié)同工作已是單片機(jī)發(fā)展的一個(gè)重要趨勢(shì),目前單片機(jī)多機(jī)通信的主要方式仍然是主從式多機(jī)通信系統(tǒng)。</p
21、><p> 單片機(jī)多機(jī)通信的目的是實(shí)現(xiàn)分布式處理系統(tǒng),單片機(jī)多機(jī)通信的方式有很多種,應(yīng)用前景廣闊,非常具有研究意義!</p><p> 1.2 單片機(jī)多機(jī)通信領(lǐng)域的歷史及國(guó)內(nèi)外發(fā)展現(xiàn)狀</p><p> 單片微型計(jì)算機(jī)(Single Chip Microcomputer)簡(jiǎn)稱單片機(jī),又稱MCU(Micro Controller Unit),是將計(jì)算機(jī)的基本部分微型
22、化,使之集成在一塊芯片上的微機(jī).片內(nèi)含有CPU、ROM、RAM、并行I/O、串行I/O、定時(shí)器/計(jì)數(shù)器、中斷控制、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。 </p><p> 隨著科技的發(fā)展,單片機(jī)已不是一個(gè)陌生的名詞,它的出現(xiàn)是近代計(jì)算機(jī)技術(shù)發(fā)展史上的一個(gè)重要里程碑,因?yàn)閱纹瑱C(jī)的誕生標(biāo)志著計(jì)算機(jī)正式形成了通用計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)兩大分支。單片機(jī)單芯片的微小體積和低的成本,可廣泛地嵌入到如玩具、家用電器、機(jī)器人、儀器儀表
23、、汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動(dòng)化設(shè)備、金融電子系統(tǒng)、艦船、個(gè)人信息終端及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具。 </p><p> 所涉及的市場(chǎng)占有率最高的是MCS—51系列,因?yàn)槭澜缟虾芏嘀腎C生產(chǎn)廠家都生產(chǎn)51兼容的芯片。生產(chǎn)MCS—51系列單片機(jī)的廠家如美國(guó)AMD公司、ATMEL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TEMIC公司及南韓的LG公
24、司、日本NEC、西門子公司等。到目前為止,MCS—51單片機(jī)已有數(shù)百個(gè)品種,還在不斷推出功能更強(qiáng)的新產(chǎn)品。</p><p> 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無線電對(duì)講
25、機(jī)等。</p><p> 單片機(jī)的通信領(lǐng)域應(yīng)用首先從兩片單片機(jī)之間的通信發(fā)展起來,后來有了主從式多機(jī)通信并得到了廣泛的應(yīng)用,又出現(xiàn)了以單片機(jī)作為下位機(jī)與以PC機(jī)作為上位機(jī)的通信應(yīng)用,上位機(jī)用VB或VC++等面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言編寫通信收發(fā)程序,也得到了廣泛的應(yīng)用。雖然,單片機(jī)多機(jī)通信已經(jīng)有較長(zhǎng)的研究歷史了,但其形式大多是主從式的,很少是平權(quán)式的。</p><p> 1.3 本課題的研
26、究?jī)?nèi)容</p><p> 本文在研究傳統(tǒng)的多機(jī)通信系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)了一種基于MCS-51系列單片機(jī)AT89S52 的多機(jī)通信系統(tǒng)。初始時(shí),1號(hào)單片機(jī)為主機(jī)。主機(jī)通過串口向從單片機(jī)發(fā)送指定格式的數(shù)據(jù),從單片機(jī)收數(shù)據(jù)并作出響應(yīng),主機(jī)通過液晶屏顯示通信信息,從機(jī)通過LED顯示通信狀態(tài)。主機(jī)通信結(jié)束即轉(zhuǎn)為從機(jī),其他單片機(jī)可置為主機(jī),獲得總線控制權(quán)。1號(hào)單片機(jī)通過矩陣鍵盤控制通信過程與顯示,2與3號(hào)單片機(jī)通過獨(dú)立按鍵控
27、制通信狀態(tài)與主從機(jī)切換。</p><p> 在此多機(jī)通信系統(tǒng)中,各個(gè)單片機(jī)具有平等的權(quán)限。僅在初始時(shí),1號(hào)單片機(jī)被默認(rèn)置為主機(jī),若不需使2號(hào)與3號(hào)單片機(jī)變成主機(jī),則此通信系統(tǒng)可以作為主從式多機(jī)通信系統(tǒng)。任何時(shí)刻,系統(tǒng)只有一片單片機(jī)作為主機(jī),其他均為從機(jī)。主機(jī)發(fā)送的信息可以傳送到指定從機(jī),各從機(jī)之間也不能直接通信。主機(jī)發(fā)起通信,從機(jī)接收到自己的單片機(jī)號(hào)后,開始與主機(jī)通信。</p><p>
28、 2 單片機(jī)多機(jī)通信理論及方案選擇 </p><p> 2.1 單片機(jī)串口通信</p><p> 2.1.1 單片機(jī)串口介紹</p><p> AT89S52單片機(jī)內(nèi)部含有一個(gè)可編程全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個(gè)同步移位寄存器使用。 </p><p> 在進(jìn)行異步通
29、信時(shí),數(shù)據(jù)的發(fā)送和接收分別在各自的時(shí)鐘(TCLK和RCLK)控制下進(jìn)行的,但都必須與字符位數(shù)的波特率保持一致。MCS-51串行口的發(fā)送和接收時(shí)鐘可由兩種方式產(chǎn)生,一種是由主機(jī)頻率fosc經(jīng)分頻后產(chǎn)生,另一種方式是由內(nèi)部定時(shí)器T1或T2的溢出率經(jīng)16分頻后提供。</p><p> 串行口的發(fā)送過程由一條寫發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的發(fā)送緩沖器SBUF(發(fā))中,再由硬件電路自動(dòng)在字符的始、末加上起始位
30、(低電平)、停止位(高電平)及其它控制位(如奇偶位等),然后在移位脈沖SHIFT的控制下,低位在前,高位在后,從TXD端(方式0除外)一位位地向外發(fā)送。</p><p> 串行口的接收與否受制于允許接收位REN的狀態(tài),當(dāng)REN被軟件置“1”后,允許接收器接收。接收端RXD一位位地接收數(shù)據(jù),直到收到一個(gè)完整的字符數(shù)據(jù)后,控制電路進(jìn)行最后一次移位,自動(dòng)去掉啟始位,使接收中斷標(biāo)志RI置“1”,并向CPU申請(qǐng)中斷。TI
31、和RI是由硬件置位的,但需要用軟件復(fù)位。</p><p> 2.1.2 單片機(jī)串口控制寄存器</p><p> a.SBUF是兩個(gè)在物理上獨(dú)立的接收、發(fā)送緩沖器,可同時(shí)發(fā)送、接收數(shù)據(jù)。兩個(gè)緩沖器只用一個(gè)字節(jié)地址99H,可通過指令對(duì)SBUF的讀寫來區(qū)別是對(duì)接收緩沖器的操作還是對(duì)發(fā)送緩沖器的操作。串行口對(duì)外有兩條獨(dú)立的收發(fā)信號(hào)線RXD(P3.0)、TXD(P3.1),因此可以同時(shí)發(fā)送、接收
32、數(shù)據(jù),實(shí)現(xiàn)全雙工。</p><p> b.SCON寄存器用來控制串行口的工作方式和狀態(tài),可按位尋址,其字節(jié)地址為98H。</p><p> 它用于定義串行口的工作方式及實(shí)施接收和發(fā)送控制。字節(jié)地址為98H,其各位定義如表2-1。</p><p> 表2-1 SCON寄存器的各位功能定義</p><p> 表2-2 串行口工作方式選
33、擇位定義</p><p> 其中fosc為晶振頻率</p><p> SM2:多機(jī)通訊控制位。在方式0時(shí),SM2一定要等于0。在方式1中,當(dāng)SM2=1時(shí),則只有接收到有效停止位時(shí),RI才置1。在方式2或方式3下,當(dāng)SM2=1且接收到的第九位數(shù)據(jù)RB8=1時(shí),RI才置1。</p><p> REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。&
34、lt;/p><p> TB8: 是要發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。</p><p> RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,若SM2=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。</p><p> TI:發(fā)送中斷標(biāo)志。在方式0中,第8位發(fā)送結(jié)束時(shí),由硬
35、件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時(shí)也是申請(qǐng)中斷,可根據(jù)需要,用軟件查詢的方法獲得數(shù)據(jù)已發(fā)送完畢的信息,或用中斷的方式來發(fā)送下一個(gè)數(shù)據(jù)。TI必須用軟件清0。</p><p> RI:接收中斷標(biāo)志位。在方式0,當(dāng)接收完第8位數(shù)據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時(shí)刻由硬件置位(例外情況見于SM2的說明)。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知
36、或者用中斷的方法獲知。RI也必須用軟件清0。</p><p> c.PCON中的SMOD用來控制波特率加倍。</p><p> d.TMOD設(shè)置定時(shí)器1的工作方式,用來產(chǎn)生波特率</p><p> e.如果用到中斷,則還需要用到中斷相關(guān)的寄存器IE,IP等</p><p> 2.1.3 單片機(jī)串口的四種工作方式</p>
37、<p> 方式0:同步移位寄存器方式,其波特率是固定為振蕩頻率fosc的1/12。在這種工作方式下,發(fā)送和接收串行數(shù)據(jù)都通過RXD(P3.0)進(jìn)行,從TXD(P3.1)輸出移位脈沖,控制外部的移位寄存器移位。1幀信息為8位,沒有起始位,停止位。</p><p> 方式1:8位UART,1幀信息為10位,其中一位起始位“0”、八位數(shù)據(jù)位(先低位后高位)和一個(gè)停止位“1”,波特率可變,根據(jù)定時(shí)器1的溢出
38、率計(jì)算。</p><p> 方式2:9位UART,1幀信息為11位,其中一位起始位“0”、八位數(shù)據(jù)位(先低位后高位),一位控制位(第九位)和一個(gè)停止位“1”。波特率為振蕩頻率的1/64或1/32</p><p> 方式3:9位UART,幀信息為11位,其中一位起始位“0”、八位數(shù)據(jù)位(先低位后高位),一位控制位(第九位)和一個(gè)停止位“1”。波特率可變,根據(jù)定時(shí)器1的溢出率計(jì)算。<
39、/p><p> 附加的第9位數(shù)據(jù)為SCON中的TB8的值,它由軟件置位或清零,可作為多機(jī)通信中地址/數(shù)據(jù)信息的標(biāo)志位,也可作為數(shù)據(jù)的奇偶校驗(yàn)位。</p><p> 單片機(jī)的串行通信傳輸方式有三種:?jiǎn)喂ぶ剖健腚p工制式和全雙工制式。</p><p> 2.2 單片機(jī)多機(jī)通信方案選擇</p><p> 根據(jù)需要,各片單片機(jī)有相等的權(quán)限,每塊單
40、片機(jī)都可設(shè)置為主機(jī)或從機(jī),因此單片機(jī)的串口應(yīng)具有雙向可選擇性。采用兩個(gè)同相三態(tài)門加上一個(gè)反相器即可構(gòu)成這樣的接口,并由單片機(jī)的一根引腳控制單片機(jī)串口的連接方式。</p><p> 發(fā)送數(shù)據(jù)區(qū)可存放1B~48B的數(shù)據(jù),以空字符'\0'作為發(fā)送數(shù)據(jù)結(jié)束標(biāo)志。接收數(shù)據(jù)時(shí)以空字符作為接收有效數(shù)據(jù)結(jié)束標(biāo)志。通信結(jié)束時(shí),從機(jī)發(fā)回收發(fā)長(zhǎng)度作為校驗(yàn)。</p><p> 2.3 微處理器
41、的選擇</p><p> 本系統(tǒng)對(duì)微處理器要求不是太高,速度不要求太高,但代碼較長(zhǎng),因此要求微處理器應(yīng)有較大的程序存儲(chǔ)空間,最好用Flash ROM。通信的發(fā)送緩沖區(qū)與接收緩沖區(qū)均從RAM中分配,為了能傳送更多的數(shù)據(jù),要求要有較大的RAM。此外,處理器還應(yīng)有一個(gè)全雙工的串行口。</p><p> 綜合考慮以上各種因素,選用MCS-51系列的單片機(jī)AT89S52。</p>
42、<p> AT89S52是一種低功耗高性能的CMOS 8位微處理器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適用于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p>
43、 AT89S52 具有以下標(biāo)準(zhǔn)功能:8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍
44、結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p><b> 其引腳結(jié)構(gòu)如下圖:</b></p><p> 圖2-1 AT89S52的引腳結(jié)構(gòu)</p><p> 單片機(jī)AT89S52的引腳說明:</p><p><b> VCC:電源</b></p>&l
45、t;p><b> GND:地</b></p><p> P0口:P0 口是一個(gè) 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅(qū)動(dòng) 8 個(gè) TTL 邏輯電平。對(duì) P0 端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口也被作為低 8 位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0 具有內(nèi)部上拉電阻。</p><p> 在 flash 編
46、程時(shí),P0 口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p> P1口:P1 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p1 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)TTL 邏輯電平。對(duì) P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p>
47、; 此外,P1.0 和 P1.2 分別作定時(shí)器/計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器 2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在Flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。</p><p> P1口的第二功能如下表:</p><p> 表2-2 P1口的第二功能</p><p> P2口:P2 口是一個(gè)具有內(nèi)部上拉電阻
48、的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 MOVX @DPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如 MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P
49、2 口輸出P2鎖存器的內(nèi)容。</p><p> 在 flash 編程和校驗(yàn)時(shí),P2 口也接收高 8 位地址字節(jié)和一些控制信號(hào)。</p><p> P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)TTL 邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流
50、(IIL)。P3口亦作為 AT89S52特殊功能(第二功能)使用,如下表所示。</p><p> 在Flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p> P3口具有第二功能,具體如下表。</p><p> 表2-3 P3口的第二功能</p><p> RST:復(fù)位輸入。晶振工作時(shí),RST腳連續(xù)兩個(gè)機(jī)器周期高電平使單片機(jī)
51、復(fù)位。看門狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。</p><p> :地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在 flash 編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為 8EH 的 SFR
52、的第 0 位置“1”,ALE 操作將無效。這一位置“1”,ALE 僅在執(zhí)行 MOVX 或 MOVC 指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè) ALE 使能標(biāo)志位(地址為 8EH 的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。</p><p> ?。和獠砍绦虼鎯?chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。</p><p> 當(dāng) AT89S52 從外部程序存儲(chǔ)器執(zhí)行外部代碼
53、時(shí),PSEN 在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN 將不被激活。</p><p> ?。涸L問外部程序存儲(chǔ)器控制信號(hào)。為使能從 0000H 到 FFFFH 的外部程序存儲(chǔ)器讀取指令,EA 必須接 GND。</p><p> 為了執(zhí)行內(nèi)部程序指令,EA 應(yīng)該接 VCC。</p><p> 在 flash 編程期間,EA 也接收 12 伏 VP
54、P電壓。</p><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p> XTAL2:振蕩器反相放大器的輸出端。</p><p> 表2-4AT89S52 特殊寄存器映象及復(fù)位值</p><p> 并不是所有的地址都被定義了,片上沒有定義的地址是不能用的。讀這些地址,一般將得到一個(gè)隨機(jī)數(shù)據(jù);寫入的數(shù)據(jù)將
55、會(huì)無效。用戶不應(yīng)該給這些未定義的地址寫入數(shù)據(jù)“1”。由于這些寄存器在將來可能被賦予新的功能,復(fù)位后,這些位都為“0”。</p><p> 定時(shí)器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定時(shí)器 2 的控制位和狀態(tài)位(如表 2和表 3 所示),寄存器對(duì)RCAP2H和RCAP2L是定時(shí)器 2 的捕捉/自動(dòng)重載寄存器。</p><p> 中斷寄存器:各中斷允許位在 IE 寄存器中
56、,六個(gè)中斷源的兩個(gè)優(yōu)先級(jí)也可在 IE 中設(shè)置。</p><p> T2CON地址為 0C8H 復(fù)位值:0000 0000B</p><p><b> 位可尋址</b></p><p> 表2-5T2CON位定義</p><p> TF2:定時(shí)器 2 溢出標(biāo)志位。必須軟件清“0”。RCLK=1 或 TCLK
57、=1 時(shí),TF2不用置位。</p><p> EXF2:定時(shí)器 2 外部標(biāo)志位。EXEN2=1 時(shí),T2EX 上的負(fù)跳變而出現(xiàn)捕捉或重載時(shí),EXF2 會(huì)被硬件置位。定時(shí)器2 打開,EXF2=1 時(shí),將引導(dǎo) CPU執(zhí)行定時(shí)器 2 中斷程序。EXF2 必須如見清“0”。在向下/向上技術(shù)模式(DCEN=1)下 EXF2 不能引起中斷。</p><p> RCLK:串行口接收數(shù)據(jù)時(shí)鐘標(biāo)志位。若
58、 RCLK=1,串行口將使用定時(shí)器 2 溢出脈沖作為串行口工作模式 1 和 3 的串口接收時(shí)鐘;RCLK=0,將使用定</p><p> 時(shí)器 1 計(jì)數(shù)溢出作為串口接收時(shí)鐘。</p><p> TCLK:串行口發(fā)送數(shù)據(jù)時(shí)鐘標(biāo)志位。若 TCLK=1,串行口將使用定時(shí)器 2 溢出脈沖作為串行口工作模式 1 和 3 的串口發(fā)送時(shí)鐘;TCLK=0,將使用定</p><p&g
59、t; 時(shí)器 1 計(jì)數(shù)溢出作為串口發(fā)送時(shí)鐘。定時(shí)器 2 外部允許標(biāo)志位。當(dāng) EXEN2=1 時(shí),如果定時(shí)器 2 沒有用作串行時(shí)鐘,T2EX(P1.1)的負(fù)跳變見引起定時(shí)器2捕捉和重載。若EXEN2=0,定時(shí)器 2 將視 T2EX 端的信號(hào)無效</p><p> TR2:開始/停止控制定時(shí)器2。TR2=1,定時(shí)器 2 開始工作定時(shí)器 2 定時(shí)/計(jì)數(shù)選擇標(biāo)志位。為0,定時(shí);為1,外部事件計(jì)數(shù)(下降沿觸發(fā))</
60、p><p> CP/RL2:捕捉/重載選擇標(biāo)志位。當(dāng) EXEN2=1 時(shí),為1,T2EX 出現(xiàn)負(fù)脈沖,會(huì)引起捕捉操作;當(dāng)定時(shí)器 2 溢出或 EXEN2=1 時(shí) T2EX 出現(xiàn)負(fù)跳變,都會(huì)出現(xiàn)自動(dòng)重載操作。為0 將引起 T2EX 的負(fù)脈沖。當(dāng)RCKL=1或 TCKL為1時(shí),此標(biāo)志位無效,定時(shí)器2溢出時(shí),強(qiáng)制做自動(dòng)重載操作。</p><p> 2.4 液晶LCD1602介紹</p>
61、<p> 市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,定義如下表所示:</p><p> 表2-6 LCD1602的引腳定義</p
62、><p> HD44780內(nèi)置了DDRAM、CGROM和CGRAM。DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個(gè)字節(jié),其地址和屏幕的對(duì)應(yīng)關(guān)系如下表:</p><p> 表2-7 DDRAM地址與屏幕對(duì)應(yīng)關(guān)系</p><p> 要在LCD1602屏幕的第一行第一列顯示一個(gè)"A"字,就要向DDRAM的00H地址寫入“A”字的代碼
63、就行了。但具體的寫入是要按LCD模塊的指令格式來進(jìn)行的。在1602中我們就用前16個(gè)就行了。第二行也一樣用前16個(gè)地址。對(duì)應(yīng)如下: 表2-8 DDRAM地址與顯示位置的對(duì)應(yīng)關(guān)系</p><p> 文本文件中每一個(gè)字符都是用一個(gè)字節(jié)的代碼記錄的。一個(gè)漢字是用兩個(gè)字節(jié)的代碼記錄。在PC上我們只要打開文本文件就能在屏幕上看到對(duì)應(yīng)的字符
64、是因?yàn)樵诓僮飨到y(tǒng)里和BIOS里都固化有字符字模。字模就代表了是在點(diǎn)陣屏幕上點(diǎn)亮和熄滅的信息數(shù)據(jù)。例如“A”</p><p> 01110 ○■■■○ 10001 ■○○○■
65、60; 10001 ■○○○■ 10001 ■○○○■ 11111 ■■■■■
66、0; 10001 ■○○○■ 10001 ■○○○■圖2-2 'A'的字模</p><p> 上圖左邊的數(shù)據(jù)就是字模數(shù)據(jù),右邊就是將左邊數(shù)據(jù)用“○”代表0,用“■”代表1。在LCD模塊上也固化了字模存儲(chǔ)器,這就是CGRO
67、M和CGRAM。HD44780內(nèi)置了192個(gè)常用字符的字模,存于字符產(chǎn)生器CGROM(Character Generator ROM)中,另外還有8個(gè)允許用戶自定義的字符產(chǎn)生RAM,稱為CGRAM(Character Generator RAM)。下圖說明了CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系。</p><p> 表2-9 CGROM中字符碼與字模關(guān)系對(duì)照表</p><p> 從上圖
68、可以看出,“A”字的對(duì)應(yīng)上面高位代碼為0100,對(duì)應(yīng)左邊低位代碼為0001,合起來就是01000001,也就是41H??梢娝拇a與我們PC中的字符代碼是基本一致的。因此我們?cè)谙駾DRAM寫C51字符代碼程序時(shí)甚至可以直接用P1='A'這樣的方法。PC在編譯時(shí)就把“A”先轉(zhuǎn)為41H代碼了。</p><p> HD44780的指令集介紹,共11條指令:</p><p>&l
69、t;b> 1.清屏指令</b></p><p> 功能:<1> 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入"空白"的ASCII碼20H;</p><p> <2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方; <3> 將地址計(jì)數(shù)器(AC)的值設(shè)為0。</p><p>
70、<b> 2.光標(biāo)歸位指令 </b></p><p> 功能:<1> 把光標(biāo)撤回到顯示器的左上方; <2> 把地址計(jì)數(shù)器(AC)的值設(shè)置為0; <3> 保持DDRAM的內(nèi)容不變。 </p><
71、;p> 3.進(jìn)入模式設(shè)置指令</p><p> 功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。參數(shù)設(shè)定的情況如下所示: 位名 設(shè)置 &
72、#160;I/D 0=寫入新數(shù)據(jù)后光標(biāo)左移 1=寫入新數(shù)據(jù)后光標(biāo)右移 S 0=寫入新數(shù)據(jù)后顯示屏不移動(dòng) 1=寫入新數(shù)據(jù)后顯示屏整
73、體右移1個(gè)字符</p><p> 4.顯示開關(guān)控制指令</p><p> 功能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下: 位名 設(shè)置
74、0; D 0=顯示功能關(guān) 1=顯示功能開
75、160; C 0=無光標(biāo)
76、; 1=有光標(biāo) B 0=光標(biāo)閃爍
77、 1=光標(biāo)不閃爍</p><p> 5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令</p><p> 功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C R/L
78、 設(shè)定情況 0 0 光標(biāo)左移1格,且AC值減1 &
79、#160; 0 1 光標(biāo)右移1格,且AC值加1 1 0
80、 顯示器上字符全部左移一格,但光標(biāo)不動(dòng)</p><p> 1 1 顯示器上字符全部右移一格,但光標(biāo)不動(dòng)6.功能設(shè)定指令</p><p> 功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下:
81、; 位名 設(shè)置 DL 0=數(shù)據(jù)總線為4位
82、; 1=數(shù)據(jù)總線為8位 N 0=顯示1行
83、60; 1=顯示2行 F 0=5×7點(diǎn)陣/每字符
84、 1=5×10點(diǎn)陣/每字符</p><p> 7.設(shè)定CGRAM地址指令</p><p> 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。</p><p> 8.設(shè)定DDRAM地址指令</p><p> 功能:設(shè)定下一個(gè)要存入數(shù)
85、據(jù)的CGRAM的地址。</p><p> 9.讀取忙信號(hào)或AC地址指令</p><p> 功能:<1> 讀取忙碌信號(hào)BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時(shí)無法接收單片機(jī)送來的數(shù)據(jù)或指令;當(dāng)BF=0時(shí),液晶顯示器可以接收單片機(jī)送來的數(shù)據(jù)或指令; <2> 讀取地址計(jì)數(shù)器(AC)的內(nèi)容。<
86、;/p><p> 10.數(shù)據(jù)寫入DDRAM或CGRAM指令一覽</p><p> 功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符; <2> 將使用者自己設(shè)計(jì)的圖形存入CGRAM。</p><p> 11.從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽
87、</p><p> 功能:讀取DDRAM或CGRAM中的內(nèi)容。</p><p><b> 基本操作時(shí)序:</b></p><p> 讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0~DB7=狀態(tài)字</p><p> 寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼 <
88、/p><p> 輸出: 無讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0~DB7=數(shù)據(jù)</p><p> 寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù) 輸出:無</p><p> 3 單片機(jī)多機(jī)通信協(xié)議設(shè)計(jì) </p><p> AT89S52的內(nèi)部RAM只有256字節(jié),不能存儲(chǔ)太多的數(shù)據(jù)包;其
89、次,單片機(jī)的外接晶振選用11.0592MHz,片內(nèi)CPU的速度不理想,控制多個(gè)時(shí)鐘,CPU資源消耗太多,會(huì)大大降低系統(tǒng)性能。因此,取消了停止等待協(xié)議有發(fā)送窗口這一機(jī)制,而采用發(fā)送一個(gè)數(shù)據(jù)包就等待當(dāng)前數(shù)據(jù)包的確認(rèn)包,超時(shí)再發(fā)。</p><p><b> 主機(jī)通信協(xié)議如下:</b></p><p> 主機(jī)的SM2=0;發(fā)送從機(jī)地址。</p><p&
90、gt; 若從機(jī)無應(yīng)答則等待。若有應(yīng)答,地址若不符,則發(fā)從機(jī)復(fù)位命令,返回(1);若有應(yīng)答且地址相符則繼續(xù),準(zhǔn)備發(fā)送命令。</p><p> 發(fā)送通信方向控制命令(0x00發(fā)或0x01收)。</p><p> 若從機(jī)無應(yīng)答則等待;若從機(jī)有應(yīng)答但狀態(tài)字不正確,則令從機(jī)復(fù)位,返回(1);若從機(jī)有應(yīng)答且狀態(tài)字正確,則繼續(xù)。</p><p> 將命令分類,若為0x00
91、則準(zhǔn)備發(fā)送轉(zhuǎn)(6),若為0x01則準(zhǔn)備接收轉(zhuǎn)(7)。</p><p> 判斷狀態(tài)字,若從機(jī)接收但從機(jī)未準(zhǔn)備就緒,則令從機(jī)復(fù)位并轉(zhuǎn)到(1);若從機(jī)接收且從機(jī)準(zhǔn)備就緒,則發(fā)送數(shù)據(jù)塊。轉(zhuǎn)到(8);</p><p> 判斷狀態(tài)字,若為從機(jī)發(fā)送但從機(jī)未準(zhǔn)備就緒,則令從機(jī)復(fù)位并轉(zhuǎn)到(1);若為從機(jī)發(fā)送且從機(jī)發(fā)送就緒,則接收數(shù)據(jù)塊。轉(zhuǎn)到(8)。</p><p> 發(fā)送主機(jī)號(hào)
92、,然后接收從機(jī)發(fā)來的收發(fā)數(shù)據(jù)長(zhǎng)度。發(fā)回響應(yīng)。</p><p> 置為從機(jī)使SM2=1,返回等待接收地址。</p><p><b> 從機(jī)通信協(xié)議如下:</b></p><p> 置SM2=1,接收主機(jī)發(fā)來的地址,若不符合本機(jī)地址,則返回;若符合本機(jī)地址,則回送本機(jī)地址作為響應(yīng)。</p><p> 關(guān)串口中斷,置S
93、M2=0準(zhǔn)備接收命令。接收到主機(jī)發(fā)來的命令,先判斷,若不是合法命令則置SM2=1并返回;若為合法命令則繼續(xù)。</p><p> 將命令分類,若為0x00則發(fā)送本機(jī)接收就緒信號(hào)轉(zhuǎn)(5),若為0x01則發(fā)送本機(jī)發(fā)送就緒信號(hào)轉(zhuǎn)(4)。</p><p> 發(fā)送數(shù)據(jù),等待發(fā)送結(jié)束,轉(zhuǎn)到(6)。</p><p> 接收數(shù)據(jù),等待接收完成。</p><p
94、> 接收主機(jī)號(hào),發(fā)送收發(fā)長(zhǎng)度,等待主機(jī)的響應(yīng)。</p><p> 收到主機(jī)發(fā)來的響應(yīng)后,做些處理后,返回置SM2=1,開串口中斷。</p><p><b> 從機(jī)狀態(tài)字如下:</b></p><p> ERR=0時(shí)為合法命令,ERR=1時(shí)為非法命令;TRDY=0時(shí)表示從機(jī)發(fā)送未就緒,TRDY=1表示從機(jī)發(fā)送就緒。RRDY=0表示從
95、機(jī)接收未就緒;RRDY=1表示從機(jī)接收已經(jīng)就緒。</p><p><b> 4 硬件電路設(shè)計(jì) </b></p><p> 4.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì)</p><p> 本系統(tǒng)共用三塊單片機(jī),每塊單片機(jī)均選用AT89S52,最小系統(tǒng)也都一樣。由于三塊單片機(jī)的主要任務(wù)是通信,為了得到準(zhǔn)確的波特率,采用振蕩頻率為11.0592MHz的晶振,再
96、接兩個(gè)30pF的瓷片電容即可構(gòu)成單片機(jī)的時(shí)鐘電路。</p><p> 單片機(jī)最小系統(tǒng)電路如下:</p><p> 圖4-1 單片機(jī)最小系統(tǒng)電路</p><p> 復(fù)位電路也可以換成看門狗電路實(shí)現(xiàn),可使單片機(jī)可靠的復(fù)位。為了簡(jiǎn)化電路設(shè)計(jì),本系統(tǒng)采用簡(jiǎn)單方法,可使單片機(jī)上電復(fù)位,此外可以通過按鍵手動(dòng)復(fù)位。單片機(jī)上電即可復(fù)位,R1與C3的充電時(shí)間大于兩倍的機(jī)器周期,
97、使RST引腳有足夠長(zhǎng)的時(shí)間保存高電平,使單片機(jī)可靠的復(fù)位。正常工作時(shí),按下按鍵SW1就可以使單片機(jī)復(fù)位。</p><p> 4.2 矩陣鍵盤電路設(shè)計(jì)</p><p> 圖4-2 矩陣鍵盤電路</p><p> P1口接4×3的矩陣鍵盤,共12個(gè)按鍵,分別為0~9及Enter與Cancel鍵。P1.1~P1.3接矩陣鍵盤的行,P1.4~P1.7接矩陣鍵
98、盤的列。</p><p> 4.3 液晶顯示電路設(shè)計(jì)</p><p> 液晶顯示電路如下圖:</p><p> 圖4-3 液晶LCD1602顯示電路</p><p> P0口上拉10K×8的排阻,自己畫的排阻符號(hào)如下:</p><p><b> 圖4-4 排阻符號(hào)</b><
99、;/p><p> 排阻具有九個(gè)引腳,一個(gè)公共端,另外八個(gè)腳分別接到需要接上拉電阻的單片機(jī)的P0口。排阻相當(dāng)于8個(gè)大小均為10K的電阻,在電路中主要其電平轉(zhuǎn)化作用,通過的電流很小,每只電阻的功耗也很小。如接5V電源,每只電阻的電流約為0.5mA,很小。</p><p> 液晶LCD1602的符號(hào)繪制如下:</p><p> 圖4-5 LCD1602的符號(hào)</p
100、><p> LCD1602的符號(hào)與液晶模塊對(duì)應(yīng),共16個(gè)引腳,采用接插件形式,各位的名稱根據(jù)其定義而定。</p><p> 4.4 可切換接口電路設(shè)計(jì)</p><p> 可切換方向接口用于切換該單片機(jī)的接口連接方式,使其為主機(jī)或從機(jī)。P3.6口用于控制接口的連接方式。公共總線R為主機(jī)發(fā)送從機(jī)接收線,公共總線T為主機(jī)接收從機(jī)發(fā)送線。當(dāng)P3.6=1時(shí),同向三態(tài)門U2A
101、與U2C工作,U2B與U2D不能工作,相當(dāng)于P3.1接到R總線上,P3.5接到T總線上。該單片機(jī)此時(shí)就起主機(jī)作用。當(dāng)P3.6=0時(shí),同向三態(tài)門U2B與U2D工作,U2A與U2C不能工作,相當(dāng)于P3.1接到T總線上,P3.5接到R總線上。此時(shí),該單片機(jī)充當(dāng)從機(jī),等待主機(jī)發(fā)起通信。P3.1為單片機(jī)串口的發(fā)送端,接二極管1N4001的作用是保證用于發(fā)送數(shù)據(jù)。</p><p> 可切換接口電路圖如下:</p>
102、;<p> 圖4-6 可切換接口電路</p><p> 4.4.1 74HC126同相三態(tài)門介紹</p><p> 74HC126的引腳圖如下:</p><p> 圖4-7 74HC126的引腳圖</p><p> 74HC126芯片共14個(gè)引腳,除了7腳接地、14腳接電源外,其他3個(gè)引腳一組構(gòu)成4個(gè)三態(tài)門。具體功
103、能結(jié)構(gòu)圖如下:</p><p> 圖4-8 74HC126的功能圖</p><p> 引腳1、4、10、13為使能端,當(dāng)使能端為高電平時(shí),該三態(tài)門有效,輸出等于輸入,具體的真值表如下:</p><p> 表4-1 74HC126的真值表</p><p> 表中H表示高電平,L表示低電平。當(dāng)nOE為高電平時(shí),三態(tài)門有效;當(dāng)nOE為低電
104、平時(shí),三態(tài)門無效,輸出為高阻態(tài)。在室溫25度下,當(dāng)Vcc為4.5V時(shí),Voh最小為4.4V,典型值為4.5V。</p><p> 每個(gè)三態(tài)門的邏輯結(jié)構(gòu)圖如下:</p><p> 圖4-9 74HC126的三態(tài)門內(nèi)部邏輯結(jié)構(gòu)圖</p><p> 輸入nA經(jīng)四次反相后等效于同相。</p><p> 4.4.2 74HC04反相器介紹&
105、lt;/p><p> 74HC04的引腳圖如下:</p><p> 圖4-10 74HC04的引腳圖</p><p> 與74HC126類似,也是14個(gè)引腳。7腳接地,14腳接電源。一塊74HC04包含6個(gè)反相器,A輸入,Y輸出。如1A與1Y對(duì)應(yīng),輸入為1A,輸出為1Y。</p><p> 74HC04的真值表如下:</p>
106、<p> 表4-2 74HC04的真值表</p><p> 表中L表示低電平,H表示高電平。輸出電平與輸入電平相反。當(dāng)電源Vcc為4.5V且處于室溫25度時(shí),Voh最小為4.4V,典型值為4.5V。</p><p> 4.5 2號(hào)與3號(hào)單片機(jī)按鍵電路設(shè)計(jì)</p><p> 2號(hào)與3號(hào)單片機(jī)均有四個(gè)按鍵,分別為從機(jī)選擇鍵、通信方向選擇鍵、啟動(dòng)通
107、信鍵與設(shè)置主從機(jī)鍵。如下圖所示,R7~R10的阻值均為10K,起到上拉電阻作用,SW2、SW3與SW4分別接到單片機(jī)的P3.2、P3.3與P3.4腳,P3.2對(duì)應(yīng)單片機(jī)的外中斷一腳,P3.2對(duì)應(yīng)單片機(jī)的外中斷二腳。從機(jī)選擇與通信方向選擇通過中斷方式設(shè)置。SW4接到P3.4腳,即單片機(jī)的定時(shí)器T0輸入端。此系統(tǒng)中,定時(shí)器T0用于計(jì)數(shù),計(jì)數(shù)初值為65535,加一就產(chǎn)生計(jì)數(shù)中斷,相當(dāng)于一個(gè)下降沿觸發(fā)的中斷源。SW5接R10到電源,被拉至高電平
108、,當(dāng)按鍵按下時(shí),接插件J3的1腳變成低電平,外接到74HC148優(yōu)先編碼器的輸入端,去申請(qǐng)主機(jī)權(quán)。</p><p> 圖4-11 2號(hào)單片機(jī)按鍵電路</p><p> 接插件J3有三個(gè)腳,一腳為2HS用于輸出,二腳為2SET,為輸入腳,從優(yōu)先編碼器的輸出端引出。三腳為2NEI為輸出端,當(dāng)本機(jī)主機(jī)使用權(quán)結(jié)束后,交出主機(jī)控制權(quán),發(fā)高電平,通過與非門后輸出低電平,使優(yōu)先編碼器有效,開始接收
109、主機(jī)權(quán)申請(qǐng)信號(hào)。本單片機(jī)作為一塊電路板,通過此接插件接口,用三根的排線接口接到優(yōu)先編碼器的輸入端即可。此圖為2號(hào)單片機(jī)的按鍵電路,3號(hào)單片機(jī)的按鍵電路與此非常相似,只是網(wǎng)絡(luò)標(biāo)號(hào)不同,用于區(qū)別而已。</p><p> 4.6 LED顯示電路設(shè)計(jì)</p><p> 1號(hào)單片機(jī)默認(rèn)為主機(jī),并且有LCD1602液晶屏可顯示豐富多彩的信息,因此不許太多的LED來顯示信息。但考慮到本系統(tǒng)設(shè)計(jì)讓液
110、晶屏顯示通信收發(fā)數(shù)據(jù)長(zhǎng)度,但未能顯示通信正確與否,因此在1號(hào)單片機(jī)電路中也加入了兩個(gè)LED,分別為紅色與綠色,用于指示通信是否正確。若通信正確,則綠色LED發(fā)光,若通信不正確,則紅色LED發(fā)光。兩個(gè)LED的連接類似與下圖中LED6與LED7的連接,分別接到1號(hào)單片機(jī)的P3.5腳與P3.7腳。2號(hào)單片機(jī)與3號(hào)單片機(jī)的LED顯示電路相同,均有6個(gè)LED用于顯示狀態(tài)。LED1為紅色接到P1.0腳,用于指示本機(jī)為主機(jī),只有本機(jī)是主機(jī)時(shí)才發(fā)光。L
111、ED2為綠色接到P1.1腳,用于指示本機(jī)為從機(jī),只有本機(jī)是從機(jī)時(shí)才發(fā)光。LED3為紅色接到P1.2腳,用于指示發(fā)送數(shù)據(jù),只有本機(jī)為主機(jī)且發(fā)送數(shù)據(jù)時(shí)才發(fā)光。LED4為綠色接到P1.3腳,用于指示接收數(shù)據(jù),只有當(dāng)本機(jī)為主機(jī)且接收數(shù)據(jù)時(shí)才發(fā)光。LED5為紅色接到P1.7腳,用于按鍵錯(cuò)誤指示,當(dāng)按鍵錯(cuò)誤時(shí),此LED閃爍3次。即當(dāng)本機(jī)為從機(jī)時(shí),再按下SW2~SW4鍵時(shí),視為按鍵錯(cuò)誤,LED5閃爍3次用于提示。LED顯示電路的電源均為+5V,限&l
112、t;/p><p> 圖4-12 2號(hào)與3號(hào)單片機(jī)LED顯示電路</p><p> 4.7 主機(jī)權(quán)分配電路設(shè)計(jì)</p><p> 考慮到3塊單片機(jī)有平等的權(quán)限,都可以申請(qǐng)主機(jī)權(quán),但當(dāng)兩塊以上單片機(jī)同時(shí)申請(qǐng)主機(jī)權(quán)或是在一塊單片機(jī)已經(jīng)獲得主機(jī)權(quán),但還未通信結(jié)束時(shí),另一塊單片機(jī)又申請(qǐng)主機(jī)權(quán)將引起沖突,使系統(tǒng)通信紊亂,通信數(shù)據(jù)不確定化。因此設(shè)計(jì)了如下圖所示的主機(jī)權(quán)分配電
113、路。</p><p> 圖4-13 主機(jī)權(quán)分配電路</p><p> 將此主機(jī)權(quán)分配電路設(shè)在1號(hào)單片機(jī)電路中,不需接插件來連接1號(hào)單片機(jī)。但需要接插件來連接2號(hào)與3號(hào)單片機(jī),包括HS、SET、NEI信號(hào)。</p><p> 此電路主要由優(yōu)先編碼器74HC148與四輸入與非門74HC20共同構(gòu)成。與非門的四個(gè)輸入端,有一個(gè)固定的接到電源端,保持高電平;另三端分別
114、接從3塊單片機(jī)上引出的控制信號(hào)NEI。初始時(shí),NEI均為高電平,與非門輸出低電平,使優(yōu)先編碼器74HC148有效,接收輸入信號(hào),允許申請(qǐng)使用主機(jī)權(quán)。優(yōu)先級(jí)有7到0遞減,按照電路,優(yōu)先級(jí)順序?yàn)椋?HS>2HS>3HS,即1號(hào)單片機(jī)的權(quán)限最高。</p><p> 4.7.1 74HC148優(yōu)先編碼器介紹</p><p> 74HC148優(yōu)先編碼器的引腳圖如下:</p&g
115、t;<p> 圖4-14 74HC148優(yōu)先編碼器的引腳圖</p><p> 由圖可見,74HC148有16個(gè)引腳0~7為輸入,EI為使能端,A2 A1 A0 為輸出端,8腳接地,16腳接電源。其真值表如下:</p><p> 表4-3 74HC148的真值表</p><p> 表中H表示高電平,L表示低電平,X表示無關(guān),EI為使能端,可見當(dāng)E
116、I為低電平時(shí),優(yōu)先編碼器正常工作。輸入八個(gè)端均是低電平有效,對(duì)地平編碼,輸出為對(duì)應(yīng)的反碼。正常工作時(shí),應(yīng)使GS=0,EO=1。從表可以看出,7的優(yōu)先級(jí)最高,0的優(yōu)先級(jí)最低,即由7到0優(yōu)先級(jí)遞減。本設(shè)計(jì)用了此優(yōu)先編碼器1,2,4端輸入分別對(duì)應(yīng)3HS、2HS、1HS,對(duì)應(yīng)的輸出A2A1A0分別為110、101、011,均只有一位為低電平,分別可接至各塊單片機(jī)的主機(jī)設(shè)置端。</p><p> 4.7.2 74HC2
117、0四輸入與非門介紹</p><p> 74HC20的引腳圖如下:</p><p> 圖4-15 74HC20的引腳圖</p><p> 74HC20共14個(gè)引腳,7腳接地,14腳接電源,一塊芯片包括兩個(gè)四輸入與非門,其外還有兩個(gè)空腳。</p><p> 圖4-16 74HC20的功能圖</p><p> 每
118、個(gè)四輸入與非門又又由一些門電路組成,具體組成如下:</p><p> 圖4-17 74HC20的單個(gè)與非門的邏輯圖</p><p> 74HC20的真值表如下:</p><p> 表4-4 74HC20的真值表</p><p> 表中左邊為輸入,nY為輸出,L表示低電平,H表示高電平,X表示無關(guān)有真值表可知,四個(gè)輸入端只要有一個(gè)為低電
119、平,輸出就為高電平,只有當(dāng)輸入均為高電平時(shí),輸出才為低電平。</p><p> 4.8 電源電路設(shè)計(jì)</p><p> 本系統(tǒng)主要供電為5V直流電,為了獲得5V的直流電壓和足夠大的電流,并能提供兩種接口,交流與直流輸入都能通用,將電源電路設(shè)計(jì)成如下形式。</p><p> 圖4-18 電源電路原理圖</p><p> 交流輸入用1
120、5V的變壓器,將變壓器通過接口插到板子上。直流輸入與交流輸入類似,都要經(jīng)過整流橋,確保電解電容C4不會(huì)反接,穩(wěn)壓電路公用,用MC7805實(shí)現(xiàn)5V直流穩(wěn)壓,最大可輸出1A的電流,足以為整個(gè)系統(tǒng)供電。C5與C6用于防止穩(wěn)壓塊產(chǎn)生自激振蕩。C4用于濾波,使輸入紋波很小,輸出端接電容C7,用于防止輸出電壓突變。</p><p><b> 5 軟件設(shè)計(jì) </b></p><p&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【精品】畢業(yè)論文)單片機(jī)多機(jī)通信實(shí)現(xiàn)
- 單片機(jī)與pc機(jī)串口通信實(shí)現(xiàn)
- 單片機(jī)串行通信發(fā)射機(jī)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----單片機(jī)串行通信發(fā)射機(jī)
- 畢業(yè)設(shè)計(jì)----msc-51單片機(jī)典型雙機(jī)與多機(jī)通信
- 單片機(jī)多機(jī)通信課程設(shè)計(jì)
- 淺談單片機(jī)多機(jī)通信的設(shè)計(jì)
- 單片機(jī)多機(jī)通信課程設(shè)計(jì)
- labview與單片機(jī)通信設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---pc機(jī)與多臺(tái)單片機(jī)串行通信設(shè)計(jì)
- 51單片機(jī)多機(jī)通信課程設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-單片機(jī)
- 單片機(jī)擴(kuò)展串行通信畢業(yè)設(shè)計(jì)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)--汽車轉(zhuǎn)彎燈單片機(jī)控制
- 基于單片機(jī)gprs通信系統(tǒng)的畢業(yè)設(shè)計(jì)
- pc機(jī)與單片機(jī)間串口通信技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)開題報(bào)告
- 單片機(jī)畢業(yè)設(shè)計(jì)---單片機(jī)控制交通燈
- 單片機(jī)溫控畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論