版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 公交車自動報站系統(tǒng)的硬件設計原理</p><p><b> 摘 要</b></p><p> 本文介紹了一種的公交車自動報站系統(tǒng)的硬件設計原理,提供了一種以AT89C52單片機為核心,控制大屏幕LED點陣顯示的硬件設計方案。系統(tǒng)主要通過AT89C52單片機做為系統(tǒng)CPU,處理包括鍵盤輸入和LED顯示屏顯示站名的所有信號處理。系統(tǒng)掃描到有鍵按
2、下,判鍵確定后給CPU一個脈沖信號,然后CPU處理信號,確定所到站的站名, 再通過掃描驅(qū)動從LED顯示屏上顯示出所到站的站名。達到半自動報站的作用。整個系統(tǒng)硬件設計包括鍵盤電路、復位電路、顯示驅(qū)動電路、顯示電路、內(nèi)存擴展電路模塊。其中顯示模塊是本系統(tǒng)的重點。</p><p> 本系統(tǒng)很大程度上提高公交車報站的準確性,可靠性。提高了公交系統(tǒng)的服務質(zhì)量。促進城市經(jīng)濟發(fā)展和交通變化的和諧發(fā)展。</p>
3、<p> 關鍵詞 : AT89C52單片機; LED點陣; AT24C64; 自動報站;</p><p> The Design of Automatic Bus Station-Informer</p><p> This article introduces a new methde to design the bus-
4、stop reporting system。It provides a new scheme ,which is based AT89C52 microcomputer,to control the display of the LED lattice。 The system mainly through AT89C52 as the core system, controls keyboard’s input and LED’s
5、display . The entire system through manual operation after receiving the keys to a system scan button press, Key subcontractors that determined a signal to the microcontroller, then the micro-processing of signals from t
6、he ac</p><p> The system can greatly enhance bus stations accuracy, and improve the quality of service of the transportation system. It will promote the city's economic development and the harmonious d
7、evelopment of traffic.</p><p> Keywords: AT89C52chip microcomputer; LED lattice; reporting system;</p><p><b> AT24C64;</b></p><p><b> 目 錄</b></p>
8、<p><b> 第一章1</b></p><p><b> 1.1 緒論1</b></p><p> 1.2 研究前景及國內(nèi)外的現(xiàn)有水平2</p><p> 1.3 課題論述與方案確定2</p><p> 1.3.1 課題任務及設計要求2</p>
9、<p> 1.3.3 方案的論述與確定3</p><p> 第二章 系統(tǒng)硬件設計7</p><p> 2.1 單片機的選擇和外圍電路的設計7</p><p> 2.1.1 外部晶振的選用7</p><p> 2.1.2 復位電路8</p><p> 2.2 按鍵電路的設計
10、8</p><p> 2.2.1 判鍵及其接口電路設計9</p><p> 2.2.2 鍵盤的工作方式10</p><p> 2.3 顯示及驅(qū)動電路的設計10</p><p> 2.3.1 顯示電路設計10</p><p> 2.3.2 顯示驅(qū)動電路設計11</p><p
11、> 2.4 數(shù)據(jù)存儲器的設計14</p><p> 2.4.1 內(nèi)存擴展電路16</p><p> 2.4.2 存儲器的組織以及運行分析16</p><p> 2.5 串行通信電路的設計18</p><p> 第三章 軟件設計21</p><p> 3.1 串口通信軟件的設計2
12、1</p><p> 3.1.1 下位機串行通信21</p><p> 3.1.2 內(nèi)存讀寫程序的設計22</p><p> 第四章 總結24</p><p> 4.1 系統(tǒng)功能完善24</p><p> 4.1.1 語音控制模塊的設計24</p><p> 4.
13、1.2 抗干擾措施25</p><p> 4.2 設計心得25</p><p><b> 致 謝25</b></p><p><b> 參考文獻26</b></p><p><b> 附 錄27</b></p><p><
14、b> 第一章</b></p><p> 隨著科技的不斷進步,人們對事物的認知程度已經(jīng)得到了廣泛的提升,在實際生活中,大家都希望能使用簡便、智能、人性化的產(chǎn)品。在公交車自動報站方面,由于我國現(xiàn)狀,人口眾多,口音復雜,對于乘客而言,原來的人工報站存在著很多的問題。為了跟隨科技發(fā)展,提高公交系統(tǒng)的服務質(zhì)量,提升城市形象。開發(fā)一種能夠節(jié)省人力和物力,而又能讓乘客方便快捷的知道站臺報站器就成為一種必然
15、。因此本次畢業(yè)設計中提出一個以AT89C52單片機為核心,用LED顯示屏顯示站名的即經(jīng)濟、高效、直觀的公交車到站自動報站系統(tǒng)。</p><p><b> 1.1 緒論</b></p><p> 隨著國民經(jīng)濟的快速發(fā)展,城市建設規(guī)模不斷擴大,大城市人口高度集中并大幅度增長,同時汽車保有量急劇上升,交通需求迅速擴大,而道路交通基礎設施建設的發(fā)展則相對滯后。城市交通需
16、求與供給之間的矛盾越來越突出,城市“乘車難”、“行車難”的局面在加劇,交通阻塞呈現(xiàn)出點到線、由線到面的擴展趨勢,交通擁擠、交通延誤、交通阻塞以及由此引起的噪音、廢氣污染嚴重影響著居民的正常的生活以及社會經(jīng)濟的持續(xù)、健康發(fā)展。</p><p> 近年來,我國城市交通的現(xiàn)狀已引起了政府、公眾、社會各界的廣泛關注,</p><p> 有關專家學者和交通工程師們在吸取各國城市交通發(fā)展經(jīng)驗的基礎
17、上,找到了一條解決我國城市交通發(fā)展問題的有效途徑,即優(yōu)先發(fā)展城市公共交通,以公共交通為杠桿降低城市交通需求總量,實現(xiàn)道路交通基礎設施發(fā)展與交通需求增長的均衡。</p><p> 實施“公交優(yōu)先”是解決我國城市交通發(fā)展問題的有效途徑,也是我國目前城市交通發(fā)展的基本政策。公交智能化是智能交通的一個重要的子領域,同時也是落實“公交優(yōu)先”,使城市交通與社會經(jīng)濟和諧發(fā)展的重要組成部分。實施公交智能化,必須提高公交服務質(zhì)量
18、,而到站后的準確、及時報站就是一個方面,本設計基于AT89C52單片機、LED點陣、AT24C64、制作的公交車自動報站系統(tǒng)就能解決這方面的問題。</p><p> 從而,達到公共形象的提升。當前國內(nèi)主要大城市的公交車大都采用人工報站,即每到一站由司機或者乘務員來進行報站。但有時由于受到各種因素如雨雪天路滑、車上擁擠、乘務員心情的變化等的影響,會出現(xiàn)報錯站,漏報站的情況,給乘客特別是不熟悉本市地形的乘客帶來了不
19、必要的麻煩,從而影響到了一個城市的窗口形象工程建設。于是開發(fā)研制自動報站系統(tǒng)成為必然。</p><p> 1.2 研究前景及國內(nèi)外的現(xiàn)有水平</p><p> 隨著公交優(yōu)先戰(zhàn)略的確定,公交在緩解城市交通擁堵方面的作用將越來越重</p><p> 要,與這種要求相比,我國大城市公共交通還有很大差距,主要表現(xiàn)為:為社會提供服務信息的水平低,只能是以經(jīng)驗為主的被動
20、、滯后的實施服務,仍以人工作業(yè)為主。上述問題顯然不利于公交對乘客的吸引,也是導致公交運營組織模式落后、調(diào)度方式原始陳舊、企業(yè)管理效率不高的重要原因。因此,如何提高公交系統(tǒng)的服務質(zhì)量,是現(xiàn)代公交行業(yè)亟待解決的問題。</p><p> 我國發(fā)展智能運輸?shù)幕A較差,因此理論研究雖在進行,但相應技術卻得不到推廣。在實際生活中得不到應用,達不到廣泛服務社會的目的。所以發(fā)展一種自動報站系統(tǒng),提高公交服務質(zhì)量就成為民用科技研
21、究的一個項目。</p><p> 目前在國際上已經(jīng)實現(xiàn)了DPS定位車載智能系統(tǒng),在國內(nèi)的幾個大城市也都有使用,實現(xiàn)了公交系統(tǒng)的全面監(jiān)控、調(diào)度。公交車自動報站系統(tǒng)的研究也達到了無線聯(lián)絡,全自動報站的水平。但其一般其經(jīng)濟投入較高。結合我國現(xiàn)有的公交系統(tǒng)現(xiàn)狀,半自動化報站系統(tǒng)還有很大的應用空間。適應用于一些中小城市。</p><p> 1.3 方案論述與方案確定</p>&l
22、t;p> 本課題是一個軟硬件緊密結合的注重實際應用的系統(tǒng)。在課題研究的期間,我主要研究系統(tǒng)硬件設計,因此,在詳細講述之前,先介紹“公共汽車自動報站”的設計思想及整體硬件方案的設計。</p><p> 實現(xiàn)公共汽車自動報站是是公交智能化的一份子,是促進智能交通的一個不可缺少的步驟,同時也是落實“公交優(yōu)先”使城市交通與社會經(jīng)濟和諧發(fā)展的重要組成部分。 </p><p> 1.3.1
23、 課題任務及設計要求</p><p><b> 1)課題任務</b></p><p> 以單片機為核心,制作一個公交車自動報站系統(tǒng)。其必要的功能為:</p><p> 1: 具有2個16*16的點陣漢字顯示功能。</p><p> 2: 提示信息具有方便的可修改性。</p><p>&l
24、t;b> 2)課題設計要求</b></p><p><b> 1 硬件設計:</b></p><p> A:漢字的顯示(點陣),漢字顯示模塊采用(16*32)。</p><p> B:串口通信:設計PC機與單片機之間的通信電路,用于把站名信息發(fā)送到單片機內(nèi)部。</p><p> C:存儲器的
25、擴展:采用大容量長壽命非易失存儲器存儲數(shù)據(jù)信息,可永久可靠的保存各項重要數(shù)據(jù)。本設計才用ATMEL公司的AT24C64串行EEPROM存儲器用中斷來控制報站。</p><p> D:用按鍵來控制報站的上下行和站名順序。</p><p><b> 軟件設計:</b></p><p><b> A:時鐘的顯示</b>&l
26、t;/p><p><b> B:漢字的顯示程序</b></p><p><b> C:串口的通信</b></p><p><b> D:存儲器的擴展</b></p><p> E:各種程序的初始化</p><p> 1.3.2 方案的論述與確定&l
27、t;/p><p> 報站器以單片機AT89C52為CPU來控制LED點陣顯示屏顯示所到站的站名,提高報站的準確性,高效性和直觀性。</p><p> 由于線路不同,報站系統(tǒng)中存儲的站名需要通過更改來適用于各種線路,以此提高系統(tǒng)的通用性。所以我們需要設計通信模塊來實現(xiàn)PC機和單片機之間的通信。并能通過單片機與PC機之間的通信來實現(xiàn)報站名的更改,使其成為多功能開發(fā)型報站器。</p>
28、<p> 而由于考慮到我的自身設計水平有限,本次設計的系統(tǒng)沒有設計語音模塊模仿人聲報站而是設計了按鍵模塊控制LED顯示屏顯示站名,達到報站的目的。</p><p> 在內(nèi)存方面,由于AT89C52的數(shù)據(jù)存儲為256字節(jié),由于站名的信息量比較大,片內(nèi)數(shù)據(jù)存儲空間有限,所以需要擴展一個片外數(shù)據(jù)存儲,來滿足要求,這就要求系統(tǒng)應設置內(nèi)存擴展模塊。</p><p> LED顯示屏
29、考慮系統(tǒng)只是一個演示作用,所以本設計采用了8塊8*8的LED顯示模塊組成的16*32的LED顯示屏,可以顯示兩個漢字,可以達到演示要求。</p><p> 綜上系統(tǒng)的框圖如圖1—1系統(tǒng)框圖;</p><p><b> 圖1—1系統(tǒng)框圖</b></p><p><b> A 方案的論述</b></p>&
30、lt;p> 1.方案A的設計框圖如1—2:</p><p> 圖1—2 A方案設計框圖</p><p> 本系統(tǒng)硬件可分為PC機,AT89C52單片機,數(shù)據(jù)存儲器,顯示模塊,串行通訊模塊和鍵盤組成。硬件電路框圖如圖1—1方案一設計框圖。</p><p> 2.方案A的設計方法:</p><p> 基于AT89C52而設計的公交
31、車自動報站系統(tǒng),為了能夠方便的報N*M鍵盤來控制報站,按1-N鍵來進行報站,只要按其中的一個按鍵,就會去處理對應的站臺信息。并且設計一些功能鍵,例如:方向鍵,結束鍵等。雖然單片機本身的 I/O口能實現(xiàn)簡單的數(shù)據(jù)I/O操作。但其功能畢竟有限,除了結構和功能的原因之外,還有數(shù)量上的原因,單片機本身的I/O口不夠用,所以要擴展I/O口。我們使用可編程接口芯片實現(xiàn)I/O口的擴展,常用的接口芯片是8255。AT89C52的數(shù)據(jù)存儲器為256字節(jié),
32、程序存儲器為8K,因為本設計需要顯示的漢字信息量大,所以得擴展數(shù)據(jù)存儲器,用6264來擴展存儲器。以地址鎖存器74LS373鎖存的P0口低八位地址和P2口低五位作為訪問8K片外數(shù)據(jù)存儲器6264的地址線,對6264進行數(shù)據(jù)的讀寫。而對于公交車要隨時修改站臺的信息,我們可以通過一個電平和邏輯關系轉(zhuǎn)換的器件來使得單片機和PC機進行通信,EIA-RS-232C是用正負電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,,為了能
33、夠同計算機接口或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平</p><p> 3.方案A的優(yōu)缺點:</p><p> 方案一采用了常規(guī)的方法利用89C52的P0口,P2口提供數(shù)據(jù)線,用P3口的部分管腳提供控制線。雖然能達到擴充系統(tǒng)功能的目的,但也需要增加74LS373等接口芯片,接口連線較多,不利于小型化,同時由于系統(tǒng)擴展的需要,P0口,P2口及P3口的
34、部分信號線不能再作為基本I/O口使用,及在擴充外圍功能的同時,浪費了單片機的I/O口資源。像訪問6264和鍵盤就使用了太多的I/O口。但方案一比較常用,程序設計簡單。</p><p><b> B方案二的論述</b></p><p> 1.方案B的設計框圖</p><p> 本系統(tǒng)硬件可分為PC機,AT89C52單片機,EEPROM為AT
35、24C64的存儲模塊,顯示模塊,串行通訊模塊,CPU復位電路,外部振蕩電路,按鍵組成。硬件電路圖如圖1—3方案B設計框圖所示:</p><p> 圖1—3方案B設計框圖</p><p> 2.方案B的設計方法</p><p> 基于AT89C52而設計的公交車自動報站系統(tǒng),為了能夠方便的報站和硬件設計的簡單用兩個外部中斷來控制站臺的”+”和“-“,通過記數(shù)來判
36、斷所到的站臺,并且通過RESET來復位.由于漢字信息的存儲量大,而單片機內(nèi)部RAM比較少,不夠用,為了提高可靠性可用串行E2PROM,它是可在線電擦除和電寫入的存儲器,該存儲器具有體積小,接口簡單,數(shù)據(jù)保存可靠,可在線改寫和功耗低等特點,在單片機系統(tǒng)中應用十分普遍。在此,我們選用AT24C64,它是8K的串行EEPROM,是支持IIC總線數(shù)據(jù)傳送協(xié)議的串行通信的片外存儲CMOS,EEPROM。而對于公交車要隨時修改站臺的信息,我們可以通
37、過一個電平和邏輯關系轉(zhuǎn)換的器件來使得單片機和PC機進行通信,EIA-RS-232C是用正負電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平和邏輯關系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉(zhuǎn)換器件,這里用MAX232。為了顯示漢字信息,可用LED點顯示屏(16*3</p&
38、gt;<p> 3.方案B 優(yōu)缺點:</p><p> 方案二采用了只占用兩根普通口線串行輸入輸出片外數(shù)據(jù)存儲器EEPROM—AT24C64,采用了IIC總線,地址和數(shù)據(jù)都是通過由普通口線模擬IIC總線串行口送出,大大節(jié)省了MCU寶貴的口線,不需要地址鎖存器和8255有利于對系統(tǒng)升級和擴展,此外方案2器件較少,硬件設計簡潔;此外,由于使用普通的口線來模擬IIC總線給程序設計帶來一定的困難。用晶
39、體管驅(qū)動點陣也能達到比較好的效果。對于站臺的報站,通過外部中斷來實現(xiàn)更加方便,這樣可以減少硬件和軟件的設計。通過以上的比較,我們選擇方案2。</p><p> 第二章 系統(tǒng)硬件設計</p><p> 硬件的設計主要圍繞系統(tǒng)的功能完全實現(xiàn),并且要保證整個系統(tǒng)在運行過程中的穩(wěn)定性、安全性及生產(chǎn)的經(jīng)濟性。</p><p> 2.1 單片機的選擇和外圍電路的設計
40、</p><p> 因為公交車車自動報站系統(tǒng)設計需要較大的存儲量,所以要選擇一個數(shù)據(jù)和程序容量較大的單片機,這樣就不用擴展數(shù)據(jù)和程序存儲器。在這里我們選用了ATMEL公司的AT89C52單片機作為本設計硬件電路的主控芯片,它是一個低電壓,高性能CMOS 8位單片機,片內(nèi)8K BYTES的可反復擦寫的只讀程序存儲器和256BYTES的隨機存取數(shù)據(jù)存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術生產(chǎn),兼容標
41、準MCS-51指令系統(tǒng),片內(nèi)置有8位中央處理器和FLASH存儲器單元,功能強大的AT89C52單片機可提供許多復雜系統(tǒng)控制應用場合。</p><p> 1: AT89C52有40個引腳,32個外部雙向輸入/輸出端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和FLASH存儲器結合在一起,特別是可
42、反復擦寫的FLASH存儲器可有效地降低開發(fā)成本。</p><p> 2: ALE/PROG端除輸出地址鎖存允許脈沖外,在編程期間還作為編程脈沖輸入端,參與控制對FLASH存儲器的讀,寫,加密,擦除等操作。而EA/VPP端在尋址片內(nèi)8KB FLASH程序存儲器時,必須連到VCC,如果將此端連到GND端,將迫使單片機尋址外部0000H-1FFFH范圍的程序存儲器。如果加密位被編程了,AT89C52的CPU將對EA的
43、狀態(tài)進行采樣并鎖存,EA的狀態(tài)不得與實際使用的內(nèi)部或外部程序存儲器的狀態(tài)發(fā)生矛盾。</p><p> 2.1.1 外部晶振的選用</p><p> AT89C52的內(nèi)部有一個用于構成振蕩器的高增益反相放大器。通過XTAL1,ATAL2外部接上一片作為反饋元件的晶體,與C1和C2構成了并聯(lián)諧振電路,使其構成自激振蕩器。電容的值具有微調(diào)的作用,我們?nèi)?0PF。具體的接法如圖2—1外部晶振
44、電路:</p><p> 圖2—1外部晶振電路</p><p> AT89C52的工作頻率范圍在 0-24MHZ。我們選用的是12MHZ的晶振,振蕩周期為1us機器周期為1us,所以這個晶振可以滿足這個系統(tǒng)的要求。并且晶振不能離單片機太遠,不然使用外部晶振進行軟件調(diào)試時就會發(fā)現(xiàn)找不到信號。</p><p> 2.1.2 復位電路</p><
45、;p> 復位有硬件和軟件兩種,復位的作用是使程序自動從0000H開始執(zhí)行,因此我們只要在AT89C52單片機的RESET端加上一個高電平信號,并持續(xù)10ms以上即可,RESET端接有一個上電復位電路,它是由一個小的電解電容和一個接地的電阻組成的。人工復位電路另外采用一個按鈕來給RESET端加上高電平信號。</p><p> 圖2-2人工復位電路</p><p> 我們采用放電型
46、人工復位電路,如圖2-2人工復位電路,上電時C通過R充電,維持寬度大于10ms的正脈沖,完成上復位功能。C充電結束后,RESET端出現(xiàn)低電平CPU正常工作。在此我們?nèi)×说湫椭礡=10K,R1=1K,C=10uf。</p><p> 上電復位實現(xiàn)的時間 :T=R*C</p><p><b> =10K*10UF</b></p><p> =
47、100ms>=10ms</p><p> 需要人工復位時,按下按鈕K,C通過K和R1放電,RESET端電位上升到高電平,實現(xiàn)人工復位,K松開后C重新充電,充電結束后,CPU重新工作,R1是限流電阻,阻值不可以過大,否則不能起到復位作用。</p><p> 2.2 按鍵電路的設計</p><p> 鍵盤實質(zhì)上是一組按鍵開關的集合,控制CPU通過按鍵來識別特
48、定的用戶命令,從而轉(zhuǎn)入相應的程序來執(zhí)行用戶命令。鍵盤的軟硬件的設計涉及下面幾個方面的問題:</p><p> 對于此設計來說我們要準確的顯示我們所要對應的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來報站的而設計的。這樣比鍵盤操作方便,也比較實惠。按鍵電路采用中斷模式。當有按鍵按下時,系統(tǒng)產(chǎn)生中斷,CPU響應中斷后,開始計數(shù),即查詢鍵號,通過軟件來實現(xiàn)該鍵號所對應鍵的功能鍵盤的大體設置為:第一個鍵為
49、報站控制鍵S1用來控制站臺“+”例如:第一站為東華站,按下S1時顯示第二站:火車站,其余的站臺工作原理也一樣。S2用來控制站臺的“-”,第二站為火車站,在按下S2時這樣就顯示火車站。電路如圖2—3按鍵電路:</p><p><b> 圖2—3按鍵電路</b></p><p> 2.2.1 判鍵及其接口電路設計</p><p> 鍵的閉合
50、與否反應在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示斷開,那么低電平則表示閉合,通過電平的高低狀態(tài)的檢測可確認鍵按下與否。</p><p> 為了確保CPU對一次按鍵動作只確認一次,并且防止干擾信號的影響,必</p><p> 需加入消除電平抖動的措施,下圖3.3為按鍵抖動示意。消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩(wěn)態(tài)電路或濾波消抖電路;軟件消抖是在第一次檢測到有鍵
51、按下時,執(zhí)行一段延時程序再確認該鍵是否仍閉合,如果還是閉合狀態(tài)則確認該鍵按下,從而消除抖動和干擾影響。當按鍵較多時,我們多采用硬件件消抖法。</p><p> 按鍵接口設計有兩種方法,獨立式按鍵和矩陣式鍵盤。獨立式按鍵各鍵相獨立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態(tài)。這種方法電路配置靈活,軟件結構簡單,但每個按鍵需占用一根輸入口。由于該設計方案IO資源浪費大。故此方法只適用于按鍵少或
52、其他控制功能很簡單的場合。矩陣鍵盤適用于按鍵數(shù)量較多的場合,它把鍵盤輸入線分為行線和列線,按鍵位于列的交叉點上。按鍵的識別需要軟件分別掃描行線和列線,根據(jù)掃描的結果判具體按下的按鍵。</p><p> 由于本設計中的按鍵只有三個,考慮系統(tǒng)可靠性和鍵盤設計的簡單所以采用獨立式按鍵。圖2—4 按鍵閉合及斷開時的電壓。</p><p> 圖2—4按鍵閉合及斷開前后的電壓</p>
53、<p> 2.2.2 鍵盤的工作方式</p><p> 鍵盤掃描只是CPU的工作內(nèi)容之一,CPU在忙于各項工作時,如何處理鍵盤輸入取決于鍵盤的工作方式,鍵盤工作方式有三種,編程掃描、定時掃描和中掃描。</p><p> 在編程掃描中,CPU反復地掃描鍵盤,等待用戶的輸入命令,而執(zhí)行鍵入命令或處理輸入數(shù)據(jù)時,CPU不再相應輸入要求,直到CPU返回重新掃描鍵盤為止。時掃描工
54、作方式利用單片機內(nèi)部定時器產(chǎn)生定時中斷,CPU相應定時器中斷后對鍵盤進行掃描,在有鍵按下時識別出該鍵并執(zhí)行相應功能程序。使用中斷方式時要求在沒有鍵按下時,不占用CPU處理時間,只有當有鍵按下時產(chǎn)生鍵盤中斷,由于中斷識別鍵并執(zhí)行功能程序,這種方法使用最多。</p><p> 2.3 顯示和驅(qū)動電路的設計</p><p> 我們知道的用來顯示的器件很多。比如數(shù)碼管、LCD、點陣式LED。
55、數(shù)碼管只能顯示數(shù)字,LCD可以顯示漢字、符號、數(shù)字和圖形。雖然LCD的顯示效果要比LED好,顯示電路也比較簡單(很大一部分已經(jīng)集成化)。但是它的價格比較高,也不容易采購。所以綜合考慮生產(chǎn)成本,本系統(tǒng)采用點陣式LED顯示。它具有以下優(yōu)點:1 價格比較便宜 2 容易擴展顯示比較多的漢字 3 顯示漢字效果好,廣泛用于廣告顯示屏,交通屏幕。通常情況下,點陣式LED顯示屏是由標準的LED顯示模塊組成的。</p><p>
56、 2.3.1 顯示電路設計</p><p> HS 1088BS點陣式LED顯示模塊是8行8列64個LED組成。單塊點陣式LED顯示模塊能夠顯示各種字母,數(shù)字和常用的符號。點陣式LED顯示模塊在8行8列的每一個交點上裝有一個LED。模塊有共陽極和共陰極之分。LED的正極接行引線,負極接列引線的稱為共陽極LED顯示模塊,反之為共陰極LED顯示模塊。</p><p> 由4個8*8的LE
57、D顯示屏組成的16*16的LED漢字顯示屏如圖2—4, 4個8*8的LED顯示屏組成的16*16的LED顯示屏,行引腳逐個連接而成。</p><p> 圖2—5 4個8*8的LED顯示屏組成的16*16的LED顯示屏</p><p> 2.3.2 顯示驅(qū)動設計</p><p> 單個LED器件的驅(qū)動:從LED器件的發(fā)光原理可知,當向LED器件施加正向電壓時,
58、流過器件的正向電流使其發(fā)光,因此LED的驅(qū)動就是如何使它的PN結處于正偏置,而且為了控制它的發(fā)光程度,還要解決正向電流的調(diào)節(jié)問題,具體的驅(qū)動方法可以分為直流驅(qū)動和恒流驅(qū)動,脈沖驅(qū)動和掃描驅(qū)動,這里采用恒流驅(qū)動。由于LED器件的正向特性比較陡,加上器件的分散性,使得在同樣電源電壓和同樣的限流電阻的情況下,各器件的正向電流并不相同,引起發(fā)光強度的差異。如果能夠?qū)ED正向電流直接進行恒流驅(qū)動,只有恒流值相同,發(fā)光強度比較接近,我們知道晶體管
59、的輸出特性具有恒流性質(zhì),所以用晶體管驅(qū)動LED,單個LED驅(qū)動如圖2—6單個LED驅(qū)動電路。</p><p> P2,P1輸出的電流約為400UA左右,LED點陣的工作電流大約為20MA,工作電壓大約為2V為了不使LED燒壞R最大約為6.75千歐。在此選R=4.7千歐。</p><p> 圖2—6單個LED驅(qū)動電路</p><p> 本次設計中采用的是(16*
60、32)的LED顯示屏顯示漢字,一次可以顯示兩 </p><p> 個漢字,由于站名的長度比顯示屏長,所以必須實現(xiàn)移位的功能。</p><p> LED顯示的三種方式:</p><p> 1) 占空比控制驅(qū)動:減少驅(qū)動電路。在需要進行灰度級控制顯示的情況下要求隨時調(diào)整占空比使LED達到響應
61、的發(fā)光強度。</p><p> 2) 組合驅(qū)動:按照行列進行驅(qū)動。</p><p> 3) 掃描驅(qū)動: 所謂脈沖驅(qū)動方式,就是利用人眼的視覺暫留效應,以脈沖的方式對LED器件進行供電,使之間歇性地點亮。采用這種驅(qū)動方式需要對以下兩個方面進行考慮:脈沖電流的幅值和其重復頗率。首先,脈沖電流幅值的選擇,當脈沖驅(qū)動的平均值與直流驅(qū)動的電流值相等時,我們?nèi)搜鄣母杏X是相同的,也就是說兩者的
62、發(fā)光強度相當。</p><p> 掃描驅(qū)動是通過數(shù)字邏輯電路,使若干LED器件輪流導通,用以節(jié)省控制驅(qū)動電路。LED顯示屏是將發(fā)光燈按行按列布置的,驅(qū)動時也就按行按列驅(qū)動。在掃描驅(qū)動方式下可以按行掃描.</p><p> A: 按列控制也叫可按列掃描,按行控制。所謂“掃描”的含義,就是指一行一行地循環(huán)接通整行的LED器件,而不問這一行的哪一列的LED器件是否應該點亮,某一列的LED器件
63、是否應該點亮,由所謂的列控制電路來負責。</p><p> B: 按行掃描按列控制的方式。一個m行n列結構的LED顯示屏,當采用行掃描列控制的驅(qū)動方式時,從H1到Hm輪流將高電位接通各行線,使連接到各行的LED器件接通正電源,但具體哪一個LED導通,還要看它的負電源是否接通,這就是列控制所要完成的工作。例如在LED顯示屏上需要LED 11熄滅,LED21點亮,那么當掃描到H1行時,L1列的電位就應該為高:當掃描
64、到H2行時,L1列的電位就應該為低。</p><p> 根據(jù)驅(qū)動方式的不同,LED大屏幕顯示方式可分為靜態(tài)顯示和動態(tài)掃描顯示兩種。靜態(tài)顯示是指將一幅畫面輸入以后要保持到下一幅畫面的輸入;動態(tài)顯示是指將畫面分為若干部分分別進行刷新。靜態(tài)顯示每一個像素需要一套驅(qū)動電路,如果顯示屏為n*m個像素屏,則需要n*m套驅(qū)動電路;動態(tài)掃描顯示則采用多路復用技術,如果是P路復用的話,則每P個像素需一套驅(qū)動電路,n*m個像素僅需
65、n*m/p套驅(qū)動電路。另外,對于靜態(tài)顯示方式,需要較多的譯碼驅(qū)動裝置,需要的引線也比較多;對于動態(tài)掃描顯示方式,可以避免以上不足,但是容易造成顯示亮度低、屏幕閃爍等問題。在實際的LED大屏幕顯示中,很少有采用靜態(tài)驅(qū)動的。</p><p> LED發(fā)光器件的數(shù)量巨大,不宜使用靜態(tài)顯示驅(qū)動電路。掃描驅(qū)動電路一般采用多行的同名列驅(qū)動器。行驅(qū)動器一行的行線連到電源的一端,列驅(qū)動器一列的列線連接到電源的另一端。當行驅(qū)動選
66、中第I行,列驅(qū)動選中第J列時,對應的LED器件根據(jù)列驅(qū)動的數(shù)據(jù)要求進行顯示,控制電路負責有序的選通各行。在選通每一行之前還要把該行各列的數(shù)據(jù)準備好。一旦該行選通,這一行上的LED發(fā)光器件就可以根據(jù)列數(shù)據(jù)進行顯示。在本設計中LED點陣顯示模塊采用動態(tài)掃描方式顯示,下圖是列掃描的LED點陣顯示的驅(qū)動接口,要顯示一個清楚的漢字要求要4塊1088BS組成。顯示兩個漢字就需要8塊,對于組成一個16*16的點陣就要求把每兩個行列組合。其中行方向接在
67、P1和P2口,考慮負載能力,接16個2n5551的PNP三極管驅(qū)動。列方向則由兩片4-16譯碼器74L154完成掃描,它由89C52的P0.4---P0.7控制。同樣的驅(qū)動部分是由32個2N5041的三極管完成的,如圖2-7漢字的顯示電路。 圖2-7漢字的顯示電路</p><p> 按列掃描時。動態(tài)顯示方式的列驅(qū)動電流大,而行驅(qū)動電流小,最大電流計算有以下公式:&l
68、t;/p><p> 行驅(qū)動電流=列數(shù)*平均工作電流</p><p> 列驅(qū)動電流=行數(shù)*行驅(qū)動電流</p><p> 由上式可以知道,列驅(qū)動電流大于保護能夠驅(qū)動電流的倍數(shù)等于顯示點陣的列數(shù),所以列的三極管要有大電流輸出的晶體管。</p><p> LED顯示屏作為單獨顯示硬件,具有能夠?qū)⑼鈦頂?shù)據(jù)轉(zhuǎn)換成漢字(或者圖形)顯示出來。這個過程由硬
69、件驅(qū)動程序完成控制和實現(xiàn)。</p><p> 顯示過程是這樣的:首先控制顯示屏的單片機接受LED屏主控微機傳來的數(shù)據(jù),下來,主孔程序?qū)?shù)據(jù)轉(zhuǎn)換成屏幕顯示的圖形,儲存起來。在按照掃描的順序與屏幕對應的關系,將存儲的內(nèi)容轉(zhuǎn)換成掃描內(nèi)容,在將數(shù)據(jù)輸出到控制單個的LED模塊的數(shù)據(jù)存儲器,最后掃描鎖存器中的數(shù)據(jù)。刷新屏幕,我們把行列總線接在單片機的I0口,然后把上面分析到掃描代碼送入總線,就可以得到顯示漢字。但是在設計中
70、每次顯示兩個漢字,由于一共用到16行,32列,如果全部接到89C52單片機,一共需用48條IO口,這樣就造成IO資源不夠使用。就得擴展系統(tǒng)才能實現(xiàn)功能。點陣顯示屏每個單元由8個8*8點陣LED顯示模塊,行信號選擇P1口、P2口,行驅(qū)動器組成。列信號選擇譯碼器74L164、列驅(qū)動器組成。8個8*8點陣LED顯示模塊組成一個16*32的LED點陣,用于同時顯示2個 16*16點陣漢字字符或數(shù)字。單元顯示屏可以接受來自控制器或者上一級顯示單元
71、模塊傳輸下來的數(shù)據(jù)信息和命令信息,并可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化的再傳輸?shù)较乱患夛@示模塊單元中,因此顯示板可擴展至更多的顯示單元,用于顯示更多的顯示內(nèi)容,顯示屏控制系統(tǒng)由顯示控制器和</p><p><b> 圖2—8顯示框圖</b></p><p> 2.4 數(shù)據(jù)存儲器的設計</p><p> 由于一般的公交車報站的數(shù)量都比
72、較大,一般每站顯示的漢字都有二三十個,那么總共的漢字就有幾百個漢字。這樣系統(tǒng)的數(shù)據(jù)存儲器的存儲空間就要求好幾K。所以必須擴展一片E2PROM來存儲漢字。這片E2PROM必須滿足漢字存儲容量要求。我們選擇AT24C64芯片作為本系統(tǒng)的外部擴展E2PROM芯片,它的地址空間滿足本次設計的要求。使用I2C總線擴展以達到簡化電路,提高系統(tǒng)可靠性的目的。</p><p> 2.4.1 內(nèi)存擴展電路</p>
73、<p> AT24C64是一個64K位的支持I2C數(shù)據(jù)總線傳送協(xié)議的串行E2PROM??捎秒姴脸⒖删幊?、自定義寫周期(可編程、擦除100萬次)的串行E2PROM。一般采用的兩種寫入方式。</p><p> 一種是字節(jié)寫入方式、另一種是頁寫入方式,具有32字節(jié)的數(shù)據(jù)的頁面寫能力。其管腳排列和功能描述如圖2-9 AT24C64管腳排列和功能描述:</p><p> 圖2-9
74、AT24C64管腳排列和功能描述</p><p><b> 管腳功能描述:</b></p><p><b> SCL:串行時鐘</b></p><p> 這是一個輸入管腳,用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘。</p><p> 2) SDL:串行數(shù)據(jù)\地址</p><p
75、> 這是一個雙向傳輸端,用于所有地址和數(shù)據(jù)的發(fā)送和接收。對于一般的數(shù)據(jù)傳輸,僅在SCL為低期間SDA才允許變化。在SCL為高期間變化,留給指示START和STOP條件。</p><p> A0(CE0)、A1(CE1)、A2(CE2),器件地址輸入端</p><p> 這些輸入端用于多個器件級聯(lián)時設置器件地址,當這些管腳懸空時默認值為0. A0、A1、A2不需片選,可任意接,本
76、設計A0接VCC,A1和A2接地。</p><p><b> WP:寫保護</b></p><p> 如果WP管腳接到VCC,所有內(nèi)容被寫保護(處于只讀狀態(tài))。當WP管腳連接到VSS或者懸空,允許器件進行正常的讀寫功能。</p><p> 通過控制WP管腳,就可以進行正常的顯示數(shù)據(jù)的存儲,并在系統(tǒng)使用中可以將WP管腳接到VCC從而達到保護
77、內(nèi)存中的數(shù)據(jù)的作用。</p><p> 由于AT24C64的容量為8KB,已經(jīng)滿足本設計的容量要求,所以本系統(tǒng)只需滿足擴展一片AT24C64芯片。AT24C64的WP管腳是寫保護,設計中接到VSS管腳(以此滿足設計中此模塊的工作任務)。允許進行正常的讀寫操作。由于只擴展一片AT24C64、A0、A1、A2不需片選,可任意接,本設計A0接VCC,A1和A2接地。6腳SCL時鐘接I2C總線時鐘線(P0.0);5腳S
78、DL數(shù)據(jù)線接I2C總線數(shù)據(jù)線(P0.1)。如圖2-10 AT89C52與AT24C64的接口電路:</p><p> 圖2-10 AT89C52與AT24C64的接口電路</p><p> 發(fā)送AT24C64的地址。從地址的高4位D7—D4固定為1010,接下來的D3—D1為器件的片選地址。本次設計A0接高電平,A1、A2接低電平,所以D3—D1為001.器件的D0位是讀寫功能控制位,
79、“1”表示對AT24C64進行讀操作,“0”表示對AT24C64進行寫操作。因此本設計中AT24C64的地址位是1010001X。</p><p> 2.4.1 存儲器的組織以及運行分析</p><p> 存儲器的的組織:AT24C64內(nèi)部分為32頁,每頁256個字節(jié),故需要13位地址對其內(nèi)部字節(jié)進行尋址。</p><p> 運行方式:對于時鐘和數(shù)據(jù)傳輸,串
80、行數(shù)據(jù)IO端SDA一般需要設置外部上拉電阻以達到使其處于高電平。加到SDA的數(shù)據(jù)只有在串行時鐘SCL對于低電平的時鐘周期內(nèi)可以改變。當串行時鐘SCL處于高電平時,SDA的數(shù)據(jù)變化用于指示起始或停止狀態(tài)。</p><p> 起始狀態(tài):當SCl為高電平時,SDA由高電平變到低電平則處于起始狀態(tài),起始狀態(tài)應該處于其他任何命令之前。</p><p> 停止狀態(tài):當SCl為高電平時,SDA由低平
81、變到高電平則處于低功耗的備用方式(Standby Mode)。</p><p> 應答信號:應答信號是由接收數(shù)據(jù)的器件發(fā)出的。當EEPROM接收完成一個寫入數(shù)據(jù)之后,會在SDA上發(fā)一個“0”應答信號ACK信號。ACK信號在第九個時鐘周期出現(xiàn)。</p><p><b> 讀寫操作過程</b></p><p> AT24C64在進入起始狀態(tài)之
82、后,需要一個8位的器件地址字去啟動存儲器進行讀寫操作。其器件地址為10 10 A2 A1 A0 R\W.器件地址的最高4位1010為器件標志;A2、A1、A0為硬件布線地址,AT24C6不用硬件布線地址,故這三位就用于內(nèi)部頁面尋址。AT24C6的字節(jié)地址為:</p><p> 真正地址=( A2 A1 A0)*28+字地址;R\W為讀寫選擇位,當其為1時,執(zhí)行讀操作,為0時執(zhí)行寫操作。</p>&
83、lt;p><b> 1)字節(jié)寫</b></p><p> 這種寫方式只執(zhí)行一個字節(jié)的寫入,在起始狀態(tài)中,首先寫入8位的起始地址,則芯片會產(chǎn)生一個“0”信號ACK;隨后,接著寫入8位數(shù)據(jù),在接到數(shù)據(jù)后,芯片又產(chǎn)生一個“0”信號ACK作為應答,到此為止,完成了一個字節(jié)的寫過程,故此在SDA產(chǎn)生一個停止狀態(tài),這是外部寫過程。在這個過程中控制芯片的單片機應在芯片的SCL、SDA斷入恰當?shù)男?/p>
84、號。當然在一個字節(jié)的寫過程結束時,單片機應以停止狀態(tài)結束寫過程,這時,芯片進入內(nèi)部定時的寫周期,以便把接受的數(shù)據(jù)寫入到存儲單元中。在芯片的內(nèi)部寫周期中,其所有輸入被屏蔽,同時不響應外部直到寫周期完成。這是內(nèi)部寫過程,這個過程大約需要10ms時間,內(nèi)部寫過程處于停止狀態(tài)余下一次起始狀態(tài)之間。</p><p><b> 2)現(xiàn)行地址讀:</b></p><p> 在上
85、一次讀\寫操作完成之后,芯片內(nèi)部字地址計數(shù)器會加一,產(chǎn)生現(xiàn)行地址,只要沒有執(zhí)行讀、寫操作,這個現(xiàn)行地址就會在芯片保持接電的期間一直保存,一旦器件地址選中芯片,并且有R\W=1,則在芯片的應答信號ACK把讀出的現(xiàn)行地址的數(shù)據(jù)輸出?,F(xiàn)行地址的數(shù)據(jù)輸出時,就由單片機一位一位接收,接收后,單片機不用發(fā)出應答信號ACK“0”電平,但應保證發(fā)出停止狀態(tài)的信號以結束現(xiàn)行地址讀操作。</p><p><b> 3)隨
86、機讀:</b></p><p> 隨機讀和現(xiàn)行地址讀的最大區(qū)別在于,隨機都會執(zhí)行一個偽寫入過程,以把字地址裝入EEPROM芯片中,然后執(zhí)行讀出。顯然,隨機讀有兩個步驟:第一,執(zhí)行偽寫入——把字地址送入EEPROM,以選擇需讀的字節(jié);第二,執(zhí)行讀出——根據(jù)字地址讀出對應的內(nèi)容。</p><p> 當EEPROM芯片接收了字地址及器件地址時,在芯片產(chǎn)生應答信號之后,單片機必須再
87、產(chǎn)生一個起始狀態(tài),執(zhí)行現(xiàn)行地址讀,這是單片機再發(fā)出器件地址并且令R\W=1,則EEPROM應答器件地址,并行輸出被讀數(shù)據(jù)。數(shù)據(jù)讀出是單片機執(zhí)行一位一位接收,接收完畢,單片機不用發(fā)“0”應答信號ACK,但必須產(chǎn)生停止狀態(tài)以結束隨機讀過程。</p><p> 2.5 串行通信電路的設計</p><p> 外設驅(qū)動程序可以對系統(tǒng)提供訪問外圍設備的接口,把操作系統(tǒng)(軟件)和</p>
88、;<p> 外圍設備(硬件)分離開來。當外圍設備改變的時候,只需更換相應的驅(qū)動程序,不必修改操作系統(tǒng)的內(nèi)核以及運行在操作系統(tǒng)中的軟件。</p><p> 智能儀器一般都設有通信接口,以便實現(xiàn)程序控制,方便構成自動測試系統(tǒng),為了提高系統(tǒng)的兼容性,讓不同廠家的生產(chǎn)的任何一起都可以用一條無源電纜連接起來,并通過一個合適的接口與PC機連接。目前國際上才有的標準接口有GP—IB、RS—232、CAMAC。
89、本次設計采用RS—232標準。RS—232標準(協(xié)議)的全稱是EIA—RS—232C標準,其中EIA代表美國電子工業(yè)協(xié)會,RS是代表推薦標準,232是標識號,C代表RS232的最新一次修改。它規(guī)定連接電纜和機械、電器特性、信號功能及傳送過程。常用的物理標準有好幾種,這里只介紹EIA�;EIA—RS—232C。例如,目前在IBM PC機上的COM1、COM2、接口就是RS—232C接口。</p><p>
90、; 1 串行接口標準設計的選用 </p><p> 目前RS-232是PC機與通信工業(yè)中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊。典型的RS-232信號在正負電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5~+15V,負電平在-5~-15V電平。當無數(shù)據(jù)傳輸時,線上為TTL,從開始傳送數(shù)據(jù)到結束,線上電
91、平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3~+12V與-3~-12V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點(即只用一對收、發(fā)設備)通訊而設計的,其驅(qū)動器負載為3~7kΩ。所以RS-232適合本地設備之間的通信。其有關電氣參數(shù)參見表1。 </p><p>
92、; 通過對比,我們可以發(fā)現(xiàn)RS232的適用條件符合本次設計的要求,所以這也是采用RS232的主要原因。</p><p><b> 2. 電氣特性 </b></p><p> EIA—RS—232C對電氣特性、邏輯電平和各種信號線功能都做了規(guī)定。在TxD和RxD上:邏輯1(MARK)= —3V~—15V,邏輯0(SPACE)=+3V~+15V。</p>
93、<p> 在RTS 、CTS、 DSR、 DTR和 DCD控制線上信號有效時為+3V~+15V。信號無效時為—3V~—15V。由此可以知道RS—232C標準對邏輯電平的定義。</p><p> 對于數(shù)據(jù)(信息碼):邏輯1的電平低于—3V,邏輯0的電平高于+3V。</p><p> 對于控制信號:接通狀態(tài)即信號有效的電平高于+3V,斷開狀態(tài)即信號的電平低于—3V,也就是當
94、傳輸電平的絕對值大于3V,電路可以有效的檢查出來。介于—3V~+3V之間的信號無意義,低于—15V或高于15V的信號也是無效信號。</p><p> EIA—RS—232C與TTL轉(zhuǎn)換:EIA—RS—232C是用正負電平來表示邏輯狀態(tài)的,與TTL以高低電平表示邏輯狀態(tài)的變化。因此為了能夠和計算機接口或終端的TTL器件連接,必須在EIA—RS—232C與TTL電路之間進行電平和邏輯關系的變換。實現(xiàn)這種變化的方法可
95、以采用分立元件,也可采用集成電路芯片。</p><p> 目前較為廣泛采用的是集成電路轉(zhuǎn)換芯片,如MC1488、SN75105芯片可完成TTL電平到EIA電平的轉(zhuǎn)換,而MC1488、SN75105即可實現(xiàn)。MAX232芯片可完成TTL——EIA的轉(zhuǎn)換。上位機的串口采用的是標準的RS—232C接口。由于AT98C52單片機的串行口電平是TTL電平,但TTL電平的特性與RS232的電氣特性不匹配。一次必須通過電平轉(zhuǎn)
96、化芯片進行電平之間的轉(zhuǎn)換才能達到正常通信。本設計采用MAX232來實現(xiàn)RS—232C與TTL電路之間的電平轉(zhuǎn)換。MAX232是一種雙組驅(qū)動器\接收器。片內(nèi)有一個電容性電壓發(fā)生器,必須在單5V TTL\COMS電平這些接收器具有1.3V典型的門限值及0.5V的典型遲滯,而且可以接受30V和—30V的輸入。每個驅(qū)動器將TTL\COMS輸入電平轉(zhuǎn)換為RS—232電平。如圖2—11串行通信接口電路所示:</p><p>
97、 圖2-11串行通信接口電路</p><p><b> 第三章 軟件設計</b></p><p> 3.1 串口通信軟件的設計</p><p> 為了提高通信的可靠性,必須制定一個約定,即通信協(xié)議,串行通信的數(shù)據(jù)格式如下圖,,沒有校驗位,所以共十位,即一位起始位、八位數(shù)據(jù)位、一位停止位。</p><p>
98、3.1.1 下位機串行通信</p><p> 由于在監(jiān)控程序中使用定時器計數(shù)器1來定時監(jiān)控鍵盤以及其他外圍硬件,所以在此將使用定時計數(shù)器1來完成串行通信。</p><p> MOV SCON,#50H ;URAT工作在MODE1,SM1=1,REN=1</p><p> MOV TMOD,#20H ;TIMER1工作在MODE2</p>
99、;<p> MOV TH1,#0F3H ;波特率2400</p><p> MOV TL1,#0F3H</p><p> MOV R1,#8EH</p><p> MOV R2,#98H ;</p><p> SETB TR1 ;啟動TIMER1 </p><p&
100、gt; 下位機數(shù)據(jù)接收流程圖如圖2—12下位機數(shù)據(jù)接收流程圖所示(程序略):</p><p> 圖3-1下位機數(shù)據(jù)接收流程圖</p><p> 3.1.2 存儲讀寫程序的設計</p><p> AT24C64器件地址為當R為1時進行讀存儲器操作,W為0時為寫存儲器操作。在硬件電路設計時AT24C64地址選擇輸入端A0接ACC、A1、A2被接收。單片機向AT
101、24C64發(fā)出一個START命令,產(chǎn)生開始條件,然后發(fā)出寫命令控制字。當AT24C64接到命令后,進入一個寫周期,再由單片機發(fā)送存儲地址,即確定數(shù)據(jù)寫入到存儲器的那個位置,隨后,單片機將存儲的數(shù)據(jù)送到SDA數(shù)據(jù)線上。寫周期結束后,單片機再發(fā)停止位。</p><p> 采用PAGE WRITE方式進行寫操作時基本和BYTE WRITE一樣,但不必在一個數(shù)據(jù)寫入后在由單片機發(fā)送停止位,而是可以繼續(xù)接著寫入最多31個
102、字節(jié)。E2PROM發(fā)送給單片機一個0標志,確定接收到數(shù)據(jù)后,MCU必須發(fā)送一個停止位終止PAGE WRITE寫入時序。其中,數(shù)據(jù)低5位在接收到對應的數(shù)據(jù)后會自動加1,而高位數(shù)據(jù)地址不會自動增加。當寫入的數(shù)據(jù)超過32位則接下來的數(shù)據(jù)從本頁首地址開始重新寫入,覆蓋開始寫入的數(shù)據(jù)。</p><p> 對于存儲器讀操作,首先,單片機向AT24C64發(fā)出一個START命令,產(chǎn)生開始條件。然后發(fā)送寫命令控制字。當AT24C
103、64接到命令后,進入寫周期,再由單片機發(fā)送存儲地址。存儲地址發(fā)送成功后,單片機又向AT24C64發(fā)送一個START命令產(chǎn)生開始條件,然后發(fā)送讀命令控制字。當AT24C64接到命令后,進入一個讀周期,單片機從SDA數(shù)據(jù)線上讀出制定存儲地址中的數(shù)據(jù)。讀周期結束時,單片機再發(fā)停止位。需要特別注意的是,歲存儲操作時,沒讀寫一個字節(jié),單片機必須送一個應答位,釋放SDA數(shù)據(jù)線,以便存儲器能繼續(xù)接收數(shù)據(jù)。</p><p>
104、其中,當SCL為高電平時,SDA由高到低就產(chǎn)生開始條件;而當SCL為高電平時,SDA由低到高就產(chǎn)生停止位。其中,在對AT24C64進行串行讀寫程序時系統(tǒng)資源使用如下:</p><p> SCL EQU P0.0 ;模擬I2C時鐘線</p><p> SDA EQU P0.1 ;模擬I2C數(shù)據(jù)線 AT24C64發(fā)送數(shù)據(jù)程序</p><p>
105、MTD EQU 8EH ;接收緩沖區(qū)首址</p><p> MED EQU 8EH ;發(fā)送緩沖區(qū)首址</p><p> SLA EQU 070H ;尋址字節(jié)(SLA\W\R)存放單元</p><p> NUMBYT DATA 071H ;傳送字節(jié)數(shù)存放單元</p><p> 對存儲器寫操作的流程圖如
106、圖3-1寫操作流程圖:</p><p> 圖3-1寫操作流程圖</p><p> 存儲器讀操作的流程圖如圖3-2讀操作流程圖:</p><p> 圖3-2讀操作的流程圖</p><p><b> 第四章 總結</b></p><p> 4.1 系統(tǒng)功能完善</p>&l
107、t;p> 本設計是我在上班期間做的,雖然有X老師耐心指導,但是由于時間有限,并且本人水平限制,并且結合XXX同學的軟件設計的情況,系統(tǒng)做的比較簡單。但是隨著科技的進步,公交系統(tǒng)的服務質(zhì)量必然要隨著發(fā)展下面是我對公交車自動報站系統(tǒng)的功能完善的一些構思。</p><p> 4.1.1語音控制模塊設計</p><p> 采用美國ISD公司推出的ISD4004 系列中單片錄放語音時間為
108、8分鐘的ISD4004-08M語音芯片,其工作電壓3V。該芯片的設計是基于所有操作由微控制器控制,通用性高,操作命令通過串行通信接口送入。片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年,并可重復錄音10萬次。不討論錄音電路的情況下的設計。ISD4004片選引腳CS,控制語音芯片的選通情況; ISD4004的串行輸入引腳MOSI,可以向語音芯片發(fā)送放音地址以及操作命令;ISD4004的串行時鐘輸入端SCLK為語音芯片提供時鐘輸入;I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公交車自動報站系統(tǒng)畢業(yè)設計
- 公交車自動報站系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---公交車自動報站系統(tǒng)的設計
- 公交車自動報站的系統(tǒng)畢業(yè)設計
- 公交車自動報站系統(tǒng)的設計-畢業(yè)設計
- 畢業(yè)設計---公交車報站系統(tǒng)的設計
- 畢業(yè)設計--公交車智能報站
- 畢業(yè)設計--基于單片機的公交車自動報站系統(tǒng)
- 畢業(yè)設計--基于單片機的公交車自動報站系統(tǒng)
- 畢業(yè)設計基于單片機的公交車自動報站系統(tǒng)
- 基于單片機的公交車自動報站系統(tǒng)設計畢業(yè)設計
- 公交車自動報站系統(tǒng)畢業(yè)論文
- 公交車語音報站器的設計【畢業(yè)設計】
- 畢業(yè)設計--基于單片機的公交車報站系統(tǒng)設計
- 畢業(yè)設計-基于單片機的公交車報站系統(tǒng)設計
- 單片機控制的公交車自動報站器的設計畢業(yè)設計
- 畢業(yè)設計---基于單片機的公交車報站系統(tǒng)設計
- 公交車自動報站系統(tǒng)開題報告
- 公交車站自動報站器 畢業(yè)設計
- 基于單片機的公交車報站系統(tǒng)畢業(yè)設計
評論
0/150
提交評論