基于單片機(jī)的籃球比賽計(jì)時(shí)器設(shè)計(jì)畢業(yè)論文
《基于單片機(jī)的籃球比賽計(jì)時(shí)器設(shè)計(jì)畢業(yè)論文》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的籃球比賽計(jì)時(shí)器設(shè)計(jì)畢業(yè)論文(49頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 摘要 本文主要介紹:籃球比賽計(jì)時(shí)器。本文首先介紹單片機(jī)的相關(guān)知識,對單片機(jī)進(jìn)行相應(yīng)的研究,并將其與74HC595串行顯示電路配合使用。本電路主要核心是AT89S51,利用軟件和硬件的結(jié)合實(shí)現(xiàn)開機(jī)自動置節(jié)計(jì)數(shù)器為第一節(jié),節(jié)計(jì)時(shí)器為12分00秒,24秒違例為24秒。用數(shù)字顯示籃球比賽當(dāng)時(shí)節(jié)數(shù),每節(jié)時(shí)間及24秒的倒計(jì)時(shí),采用單片機(jī)串行顯示。最后,本文會詳細(xì)敘述此電路的安裝與調(diào)試,并對調(diào)試過程中出現(xiàn)的問題做簡要說明。 關(guān)鍵詞 AT89S52單片機(jī);74HC595;XXX Abstract Abstract this article mainly introduced: Basket
2、ball game timer. This article first introduced that monolithic integrated circuit's related knowledge, conducts the corresponding research to the monolithic integrated circuit, and its and 74HC595 serial display circuit coordination use. This electric circuit main core is AT89S51, realizes using the
3、 software and hardware's union starting sets at the festival counter for first, the festival timer is 12 minute 00 second automatically, 24 second case of breaching the rules is 24 seconds. With the digital demonstration basketball game at that time the pitch number, each time and 24 second countdow
4、n, used the monolithic integrated circuit serial demonstration. Finally, this article will narrate this electric circuit's installment and the debugging in detail, and to will debug the question which in the process will appear to give the briefing。 key words 89S52 monolithic integrated circuit;
5、 74HC595; XXX 目 錄 摘要 I ABSTRACT II 第1章 緒論 1 1.1 課題背景 1 1.2 設(shè)計(jì)簡介 2 第2章 系統(tǒng)電路的設(shè)計(jì)方案 3 2.1 系統(tǒng)設(shè)計(jì)方案的提出 3 2.2 方案的確定 3 2.3 本章小結(jié) 3 第3 章 電路設(shè)計(jì)原理及芯片介紹 4 3.1 鍵盤控制及顯示電路設(shè)計(jì)的原理及要求 4 3.1.1 電路的設(shè)計(jì)原理與功能要求 4 3.1.2 電路的總設(shè)計(jì)框圖 4 3.2 總電路選用芯片簡介 4 3.2.1 控制芯片AT89S52 4 3.3 LED顯示原理介紹 11 3.4 鍵盤控制原理介紹 14
6、3.4.1 鍵盤的工作原理 14 3.4.2 獨(dú)立式鍵盤 17 3.5 本章小結(jié) 20 第4章 鍵盤控制及顯示硬件電路實(shí)現(xiàn) 21 4.1 LED顯示電路設(shè)計(jì) 21 4.2 獨(dú)立按鍵鍵盤的電路設(shè)計(jì) 22 4.3 硬件的焊接 23 4.3.1 硬件的焊接 23 4.3.2 電路板的檢查和故障排除 24 4.4 本章小結(jié) 24 第5 章 鍵盤控制及顯示電路軟件設(shè)計(jì) 26 5.1 軟件設(shè)計(jì)的基本工具 26 5.1.1 匯編語言的簡介 26 5.1.2 匯編語言的指令系統(tǒng)與程序 26 5.1.3 keilC51開發(fā)軟件簡介 28 5.2 獨(dú)立式鍵盤軟件設(shè)計(jì)
7、28 5.2.1 軟件設(shè)計(jì)流程圖 29 5.3 鍵盤控制及顯示電路設(shè)計(jì)軟件實(shí)現(xiàn)總流程圖 29 5.3.1 總流程圖 29 5.4 本章小結(jié) 30 結(jié) 論 31 致 謝 32 參考文獻(xiàn) 33 44 第1章 緒論 1.1 課題背景 在電子技術(shù)飛速發(fā)展的今天,電子產(chǎn)品的人性化和智能化已經(jīng)非常成熟,其發(fā)展前景仍然不可估量。如今的人們需求的是一種能給自己帶來方便的電子產(chǎn)品,當(dāng)然最好是人性化和智能化的,如何能做到智能化呢?單片機(jī)的引入就是一個(gè)很好的例子。單片機(jī)又稱單片微型計(jì)算機(jī),也稱為微控制器,是微型計(jì)算機(jī)的一個(gè)重要分支,單片機(jī)是20世紀(jì)70年代中期發(fā)展起來的一種大規(guī)模
8、集成電路芯片,是集CPU,RAM,ROM,I/O接口和中斷系統(tǒng)于同一硅片上的器件。單片機(jī)的誕生標(biāo)志著計(jì)算機(jī)正式形成了通過計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)兩個(gè)分支。目前單片機(jī)已滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。在我們身邊,由單片機(jī)作為主控制器的全自動洗衣機(jī)、高檔電風(fēng)扇、電子廚具、變頻空調(diào)、遙控彩電、錄像機(jī)、VCD/DVD機(jī)、組合音響、電子琴等。單片機(jī)已在廣闊的計(jì)算機(jī)應(yīng)用領(lǐng)域中表現(xiàn)得淋漓盡致,出盡了風(fēng)頭。從家用消費(fèi)類電器到復(fù)印機(jī)、打印機(jī)、掃描儀、傳真機(jī)等辦公自動化產(chǎn)品;從智能儀表、工業(yè)測控裝置到CT、MRI、γ刀等醫(yī)療設(shè)備;從數(shù)碼相機(jī)、攝錄一體機(jī)到航天技術(shù)、導(dǎo)航設(shè)備、現(xiàn)代
9、軍事裝備;從形形色色的電子貨幣如電話卡、水電氣卡到身份識別卡、門禁控制卡、檔案管理卡及相關(guān)讀/寫卡機(jī)等等都有單片機(jī)在里面扮演重要角色。因此,單片機(jī)已成為電子類工作者必須掌握的專業(yè)技術(shù)之一。單片機(jī)就是一個(gè)微型中央處理器,通過編程即能完成很多智能化的工作 ,因此它的出現(xiàn)給電子技術(shù)智能化和微型化起到了很大的推動作用。隨著人們生活水平的提高,社會經(jīng)濟(jì)的發(fā)展,人們開始考慮精神生活的享受,并開始注重身體素質(zhì)的提高。開始舉辦一些小型的籃球比賽。這就需要裁判有一個(gè)公正的判罰,以保證比賽的順利進(jìn)行。這就需要有一個(gè)專門計(jì)時(shí)的工具。所以我就設(shè)計(jì)了一個(gè)籃球比賽計(jì)時(shí)器。設(shè)計(jì)簡單,耗費(fèi)少,容易制作。可用于街頭籃球比賽和校
10、園籃球比賽?;ê苌俚腻X就可以得到一個(gè)實(shí)用的籃球比賽計(jì)時(shí)器。 本次設(shè)計(jì)注重對單片機(jī)工作原理以及鍵盤控制及顯示原理的理解,以便今后自己在單片機(jī)領(lǐng)域的學(xué)習(xí)和開發(fā)打下基礎(chǔ),提高自己的動手能力和設(shè)計(jì)能力,培養(yǎng)創(chuàng)新能力,豐富自己的理論知識,做到理論和實(shí)踐相結(jié)合。本次設(shè)計(jì)的重要意義還在于對單片機(jī)的內(nèi)部結(jié)構(gòu)和工作狀態(tài)做更進(jìn)一步的了解,同時(shí)還對單片機(jī)的接口技術(shù),中斷技術(shù),存儲方式和控制方式作更深層次的了解。此次設(shè)計(jì)更進(jìn)一步了解基本電路的設(shè)計(jì)流程,提高自己的設(shè)計(jì)理念,豐富自己的理論知識,鞏固所學(xué)知識,使自己的動手動腦能力有更進(jìn)一步提高,為自己今后的學(xué)習(xí)和工作打好基礎(chǔ),為自己的專業(yè)技能打好基礎(chǔ)。 1.2 設(shè)計(jì)簡
11、介 籃球比賽中除了有總時(shí)間倒計(jì)時(shí)外,為了加快比賽的節(jié)奏,新的規(guī)則還要求進(jìn)攻方在24秒內(nèi)有一次投籃動作,否則視為違例。根據(jù)要求,以AT89S52單片機(jī)為核心,設(shè)計(jì)籃球比賽計(jì)時(shí)控制器?;@球比賽上下半場四節(jié)制,每節(jié)12分鐘,要求能隨時(shí)暫停,啟動后繼續(xù)計(jì)時(shí),一節(jié)比賽結(jié)束后可清零。按籃球比賽規(guī)則,進(jìn)攻方有24秒為例計(jì)時(shí)?!胺帧薄懊搿憋@示用LED數(shù)碼管。用開關(guān)控制計(jì)時(shí)器的啟動/暫停。該籃球比賽計(jì)時(shí)器的設(shè)計(jì),可對比賽總時(shí)間和各方每次控球時(shí)間計(jì)時(shí)。該計(jì)時(shí)器采用按鍵操作、LED顯示,非常實(shí)用。此計(jì)時(shí)器在程序參數(shù)稍加修改后也可作為其他球類比賽的計(jì)時(shí)器。 主控芯片為AT89S52,采用12MHz晶振,P0.0-
12、P0.7作鍵盤輸入。A1為12分鐘暫停鍵;A2為啟動12分鐘計(jì)時(shí)鍵,,24秒計(jì)時(shí)開始;A3為24S復(fù)位開啟鍵(投籃或交換控球時(shí)按下此鍵); A4為24秒計(jì)時(shí)停止鍵(沒有違例);A5為總計(jì)時(shí)和24秒計(jì)時(shí)同時(shí)啟動鍵;A6為總計(jì)時(shí)和24S計(jì)時(shí)同時(shí)停止鍵。 電路采用靜態(tài)顯示,一起點(diǎn)亮各位數(shù)碼管,同時(shí)顯示不同的字符。點(diǎn)亮各位數(shù)碼管鎖存輸出。顯示器的第一位顯示計(jì)時(shí)節(jié)數(shù),3至6位顯示計(jì)時(shí)的分,最后2位顯示24秒。用T0定時(shí)器中斷進(jìn)行24秒處理,12分鐘計(jì)時(shí)用T1定時(shí)器中斷計(jì)時(shí)。同時(shí)電路通過鍵盤掃描,根據(jù)鍵值轉(zhuǎn)相應(yīng)鍵處理。 第2章 系統(tǒng)電路的設(shè)計(jì)方案 2.1 系統(tǒng)設(shè)計(jì)方案的提出 本設(shè)計(jì)是基于89S
13、52單片機(jī)的鍵盤控制及顯示電路設(shè)計(jì),從系統(tǒng)的設(shè)計(jì)功能上看,系統(tǒng)可分為兩大部分,即鍵盤輸入控制部分和顯示部分,對于每一個(gè)部分都有不同的設(shè)計(jì)方案,起初我擬訂了下面兩種方案: 第一種方案: 鍵盤控制采用矩陣掃描鍵盤,可以用普通按鍵構(gòu)成4×4矩陣鍵盤,直接接到89S52單片機(jī)的P0口,高四位作為行,低四位作為列,通過軟件完成鍵盤的掃描和定位。顯示部分采用動態(tài)顯示,采用移位寄存器74LS164和譯碼器74LS138通過顯示驅(qū)動程序驅(qū)動七段數(shù)碼管顯示。此方案成本低,所用到的兩個(gè)外圍芯片價(jià)格都很低廉,而且單片機(jī)的I/O口占用較少,可以節(jié)約單片機(jī)接口資源。 第二種方案: 鍵盤控制采用獨(dú)立是式鍵盤,每個(gè)
14、按鍵的“接零端”均接地,每個(gè)按鍵的“測試端”各接一條輸入線,通過檢測輸入線的電平狀態(tài)就可以很容易地判斷哪個(gè)鍵被按下了,這種方法操作速度高而且軟件結(jié)構(gòu)很簡單。這種方法比較適合按鍵較少或操作速度較高的場合。顯示部分采用靜態(tài)顯示方法,所謂靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小。 2.2 方案的確定 本設(shè)計(jì)要求按鍵較多,且本次設(shè)計(jì)只是對所學(xué)知識的一次實(shí)踐,設(shè)計(jì)要求簡單,容易實(shí)現(xiàn),成本低。比較以上兩中設(shè)計(jì)方案,第二種成本
15、低,占用單片機(jī)資源少,且容易實(shí)現(xiàn),這樣的設(shè)計(jì)比較適合本次設(shè)計(jì),故選用第二種設(shè)計(jì)方案。 2.3 本章小結(jié) 本章主對所選方案進(jìn)行比較,并最終確定選用那種方案。 第3 章 電路設(shè)計(jì)原理及芯片介紹 3.1 鍵盤控制及顯示電路設(shè)計(jì)的原理及要求 3.1.1 電路的設(shè)計(jì)原理與功能要求 本設(shè)計(jì)采用AT89S52單片機(jī)芯片作為中央處理芯片,采用AT89S52的P0口構(gòu)成獨(dú)立8鍵鍵盤,采用AT89S52串行口靜態(tài)顯示,選用74HC595作為LED驅(qū)動芯片。 本電路設(shè)計(jì)有以下功能及要求: (1)籃球比賽計(jì)時(shí)器全場時(shí)間為48分鐘,共四節(jié),每節(jié)12分鐘和24秒違例。要求開機(jī)自動置節(jié)計(jì)數(shù)器為第一節(jié),節(jié)計(jì)
16、時(shí)器為12分00秒,24秒違例為24秒。 (2)用數(shù)字顯示籃球比賽當(dāng)時(shí)節(jié)數(shù),每節(jié)時(shí)間及24秒的倒計(jì)時(shí),采用單片機(jī)串行顯示。 (3)能隨時(shí)用按紐開關(guān)控制比賽的啟動/暫停,啟動后開始比賽,暫停期間不計(jì)時(shí),重新啟動后繼續(xù)計(jì)時(shí)。 3.1.2 電路的總設(shè)計(jì)框圖 根據(jù)設(shè)計(jì)任務(wù)與要求,可初步將系統(tǒng)分為五大功能模塊:主電路、開關(guān)啟/停控制電路、顯示電路、音響電路和+5V穩(wěn)壓電源。進(jìn)一步細(xì)說,主電路選用89S52作為中央處理器;開關(guān)啟/??刂齐娐酚砂藗€(gè)按鍵組成;顯示電路由八位七段數(shù)碼管和74HC595組成;音響電路用ULN2003驅(qū)動蜂鳴器;+5V穩(wěn)壓電路采用7805穩(wěn)壓塊把電源電壓穩(wěn)定在+5V。原理框
17、圖如圖3-1所示。 圖3-1 籃球比賽計(jì)時(shí)器的原理框圖 3.2 總電路選用芯片簡介 3.2.1 控制芯片AT89S52 AT89S52功能特性描述: AT89S52 是一種低功耗、高性能CMOS8 位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash 允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash ,使得AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52 具有以下標(biāo)準(zhǔn)功能:8k 字
18、節(jié)Flash,256 字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6 向量2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM 、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 AT89S52引腳結(jié)構(gòu): 圖3-2 AT89S52的PDIP封裝 圖3-3 AT89S52的PLCC封裝 主要特
19、性: (1) 與MCS-51 單片機(jī)產(chǎn)品兼容; (2) 8K 字節(jié)在系統(tǒng)可編程Flash 存儲器; (3) 1000 次擦寫周期; (4) 全靜態(tài)操作:0Hz~33Hz ; (5) 三級加密程序存儲器; (6) 32 個(gè)可編程I/O 口線; (7) 三個(gè)16 位定時(shí)器/計(jì)數(shù)器; (8) 八個(gè)中斷源; (9) 全雙工UART 串行通道; (10)低功耗空閑和掉電模式; (11) 掉電后中斷可喚醒; (12) 看門狗定時(shí)器; (13) 雙數(shù)據(jù)指針; . (14)掉電標(biāo)識符. 管腳說明: VCC: 電源; GND: 接地; P0口:P0 口是一個(gè)8 位漏極開路的雙
20、向I/O 口。作為輸出口,每位能驅(qū)動8 個(gè)TTL 邏輯電平。對P0 端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0 口也被作為低8 位地址/數(shù)據(jù)復(fù)用。在這種下, P0 具有內(nèi)部上拉電阻。在flash 編程時(shí),P0 口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 P1口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個(gè)TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0 和P
21、1.2 分別作定時(shí)器/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 表3-1 部分引腳第二功能 在flash 編程和校驗(yàn)時(shí),P1 口接收低8 位地址字節(jié)。 P2口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個(gè)TTL 邏輯電平。對P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時(shí),P2 口送出高八位地址
22、。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8 位地址(如MOVX @RI )訪問外部數(shù)據(jù)存儲器時(shí),P2 口輸出P2 鎖存器的內(nèi)容。在flash 編程和校驗(yàn)時(shí),P2 口也接收高8 位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個(gè)TTL 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3 口亦作為AT89S52 特殊功能(第二功能)使用,如下表所示。 在flash 編程和校驗(yàn)時(shí),P3 口也接收一些控制
23、信號。 表 3-2 P3口引腳第二功能 RST: 復(fù)位輸入。晶振工作時(shí),RST 腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR( 地址8EH) 上的DISRTO 位可以使此功能無效。DISRTO 默認(rèn)狀態(tài)下,復(fù)位高電平有效。 ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時(shí),鎖存低8 位地址的輸出脈沖。在flash 編程時(shí),此引腳(PROG )也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時(shí),
24、ALE 脈沖將會跳過。如果需要,通過將地址為8EH 的SFR 的第0 位置“1”,ALE 操作將無效。這一位置“1”, ALE 僅在執(zhí)行MOVX 或MOVC 指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH 的SFR 的第0 位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 PSEN: 外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。 當(dāng)AT89S52 從外部程序存儲器執(zhí)行外部代碼時(shí),PSEN 在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時(shí),PSEN 將不被激活。 EA/VPP: 訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH 的外部
25、程序存儲器讀取指令,EA 必須接GND。為了執(zhí)行內(nèi)部程序指令,EA 應(yīng)該接VCC。 在flash 編程期間,EA 也接收12 伏VPP 電壓。 XTAL1: 振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 XTAL2: 振蕩器反相放大器的輸出端。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 芯片擦除: 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦
26、除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫‘1’且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 時(shí)鐘電路: AT89S52片內(nèi)設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩電路,XTALl和XTAL2 分別為振蕩電路的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。如
27、圖3.4所示: a) 內(nèi)時(shí)鐘方式 b) 外時(shí)鐘方式 3-4 時(shí)鐘電路圖 內(nèi)部方式時(shí)鐘電路如圖3-4 a)所示。在XTAL1 和XTAL2引腳上外接定時(shí)元件,內(nèi)部振蕩電路就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體可以在 1.2 MHZ到 12MHZ之間選擇,電容值在 5~30 PF之間選擇,電容的大小可起頻率微調(diào)作用。外部方式的時(shí)鐘電路如圖3-4 b)所示,XTALl接地;XTAL2接外部振蕩器。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于 12MHZ的
28、方波信號。 時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘信號從和地供單片機(jī)使用。P1在每一個(gè)狀態(tài)S的前半部分有效。P2在每個(gè)狀態(tài)的后半部分有效。 復(fù)位和復(fù)位電路: AT89S52單片機(jī)的復(fù)位電路如圖3.5所示。在RESET(圖中表示為RST)輸入端出現(xiàn)高電平時(shí)實(shí)現(xiàn)復(fù)位和初始化。在振蕩器運(yùn)行的情況下,要實(shí)現(xiàn)復(fù)位操作,必須使RST引腳至少保持兩個(gè)機(jī)器周期(24個(gè)振蕩器周期)高電平。CPU在第二個(gè)機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作、以后每一個(gè)機(jī)器周期重復(fù)一次,直至 RST端電平變低。復(fù)位期間不產(chǎn)生 ALE及PSEN信號。 a)上電復(fù)位 b)開關(guān)復(fù)位
29、 3-5 復(fù)位電路圖 3.2.2 74HC595 74HC595是具有8位移位寄存器和一個(gè)存儲器,三態(tài)輸出功能。 移位寄存器和存儲器是分別的時(shí)鐘。數(shù)據(jù)在SCHcp的上升沿輸入,在STcp的上升沿進(jìn)入的存儲寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲寄存器早一個(gè)脈沖。移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能 OE時(shí)(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。 (1)引腳結(jié)構(gòu)圖 圖3-6 74HC595引腳圖 (2)引腳
30、說明 74595的數(shù)據(jù)端: QA--QH: 八位并行輸出端,可以直接控制數(shù)碼管的8個(gè)段。 QH': 級聯(lián)輸出端。我將它接下一個(gè)595的SI端。 SI: 串行數(shù)據(jù)輸入端。 74595的控制端說明: /SCLR(10腳): 低點(diǎn)平時(shí)將移位寄存器的數(shù)據(jù)清零。通常我將它接Vcc。 SCK(11腳):上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時(shí),大于幾十納秒就行了。我通常都選微秒級) RCK(12腳):上升沿時(shí)移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲寄存器,下降沿時(shí)存儲寄存器數(shù)據(jù)不變。通常我將RCK置為低電平,當(dāng)移位結(jié)束后
31、,在RCK端產(chǎn)生一個(gè)正脈沖(5V時(shí),大于幾十納秒就行了。我通常都選微秒級),更新顯示數(shù)據(jù)。 /G(13腳): 高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時(shí)省力。 注:74164和74595功能相仿,都是8位串行輸入轉(zhuǎn)并行輸出移位寄存器。74164的驅(qū)動電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些。 74595的主要優(yōu)點(diǎn)是具有數(shù)據(jù)存儲寄存器,在移位的過程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場合很有用處,數(shù)碼管沒有閃爍感。 與164只有數(shù)據(jù)清零端相比,595還多有輸出端時(shí)
32、能/禁止控制端,可以使輸出為高阻態(tài)。 3.3 LED顯示原理介紹 本設(shè)計(jì)選用價(jià)格低廉的發(fā)光二極管LED顯示器作為顯示部分的顯示器件,下面介紹LED顯示器的工作原理。 (1) LDE發(fā)光二極管的發(fā)光原理 發(fā)光二極管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化鎵)、GaP(磷化鎵)、GaAsP(磷砷化鎵)等半導(dǎo)體制成的,其核心是PN結(jié)。因此它具有一般P-N結(jié)的I-N特性,即正向?qū)?,反向截止、擊穿特性。此外,在一定條件下,它還具有發(fā)光特性。在正向電壓下,電子由N區(qū)注入P區(qū),空穴由P區(qū)注入N區(qū)。進(jìn)入對方區(qū)域的少數(shù)載流子(少子)一部分與多數(shù)載流子(多子)復(fù)合而發(fā)光,如圖3-7所示。
33、 圖3.7 發(fā)光二極管發(fā)光原理 假設(shè)發(fā)光是在P區(qū)中發(fā)生的,那么注入的電子與價(jià)帶空穴直接復(fù)合而發(fā)光,或者先被發(fā)光中心捕獲后,再與空穴復(fù)合發(fā)光。除了這種發(fā)光復(fù)合外,還有些電子被非發(fā)光中心(這個(gè)中心介于導(dǎo)帶、介帶中間附近)捕獲,而后再與空穴復(fù)合,每次釋放的能量不大,不能形成可見光。發(fā)光的復(fù)合量相對于非發(fā)光復(fù)合量的比例越大,光量子效率越高。由于復(fù)合是在少子擴(kuò)散區(qū)內(nèi)發(fā)光的,所以光僅在靠近PN結(jié)面數(shù)μm以內(nèi)產(chǎn)生。理論和實(shí)踐證明,光的峰值波長λ與發(fā)光區(qū)域的半導(dǎo)體材料禁帶寬度Eg有關(guān),即λ≈1240/Eg(mm)式中Eg的單位為電子伏特(eV)。若能產(chǎn)生可見光(波長在380nm
34、紫光~780nm紅光),半導(dǎo)體材料的Eg應(yīng)在3.26~1.63eV之間。比紅光波長長的光為紅外光?,F(xiàn)在已有紅外、紅、黃、綠及藍(lán)光二極管,但其中藍(lán)光二極管成本、價(jià)格很高,使用不普遍。 (2) LED數(shù)碼顯示器的結(jié)構(gòu) LED是用發(fā)光二極管顯示字段的顯示器件,也可稱為數(shù)碼管,其外形如下圖3.6所示。 圖3.8 數(shù)碼管結(jié)構(gòu)圖 它由8個(gè)發(fā)光二極管構(gòu)成,通過不同的組合可用來顯示數(shù)字0 ~9、字符A ~ F、H、L、P、R、U、Y、符號“-”及小數(shù)點(diǎn)“.”。數(shù)碼管的外形結(jié)構(gòu)如圖3.9所示。 數(shù)碼管又分為共陰極和共陽極兩種結(jié)構(gòu)。由圖3.9可見,它有8個(gè)發(fā)光二極管陽極連在一起作為公共端;而共陰
35、極是將8個(gè)發(fā)光二極管陰極連在一起作為公共端。本設(shè)計(jì)采用的是共陽極的。數(shù)碼管的公共端相當(dāng)于一個(gè)總開關(guān),一般稱為碼位開關(guān),當(dāng)它低電平的時(shí)候數(shù)碼管全滅;當(dāng)它為高電平時(shí),根據(jù)發(fā)光二極管陽極的狀態(tài)(一般成為段碼或字型碼),低電平該段亮,高電平不亮。輸出一個(gè)段碼就可以控制LED顯示器的字型。表3.5給出了段碼與字型的關(guān)系,假定a,b,c,d,e,f,dp分別對應(yīng)D0,D1,D2,D3,D4,D5,D6,D7。 (3) LED數(shù)碼顯示器的接口方法 LED顯示器的接口常分為動態(tài)掃描方式和靜態(tài)顯示方式。 表3.5 段碼與字形碼的關(guān)系 字形 D7 dp D6 g D5 f
36、D4 e D3 d D2 c D1 b D0 a 段碼 0 1 1 0 0 0 0 0 0 03H 1 1 1 1 1 1 0 0 1 9FH 2 1 0 1 0 0 1 0 0 45H 3 1 0 1 1 0 0 0 0 0DH 4 1 0 0 1 1 0 0 1 99H 5 1 0 0 1 0 0 1 0 29H 6 1 0 0 0 0 0 1 0 21H 7 1 1 1 1 1 0 0 0 1FH 8 1
37、 0 0 0 0 0 0 0 01H 9 1 0 0 1 0 0 0 0 09H A 1 0 0 0 1 0 0 0 11H B 1 0 0 0 0 0 1 0 41H C 1 1 0 0 0 1 1 0 63H D 1 0 1 0 0 0 0 1 85H E 1 0 0 0 0 1 1 0 61H F 1 0 0 0 1 1 1 0 71H 靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。這種顯示方式的各位數(shù)碼管相互
38、獨(dú)立,公共端恒定接地(共陰極)或接正電源(共陽極)。每個(gè)數(shù)碼管的8個(gè)字段分別與一個(gè)8位I/O口地址相連,I/O口只要有段碼輸出,相應(yīng)字符即顯示出來,并保持不變,直到I/O口輸出新的段碼。采用靜態(tài)顯示方式,較小的電流即可獲得較高的亮度,且占用CPU時(shí)間少,編程簡單,顯示便于監(jiān)測和控制,但其占用的口線多,硬件電路復(fù)雜,成本高,只適合于顯示位數(shù)較少的場合。動態(tài)掃描顯示方式:其工作原理是將多個(gè)顯示器的段碼同名端連在一起,位碼分別控制,利用眼睛的余輝暫留效應(yīng),分別進(jìn)行顯示。只要保證一定的顯示頻率,看起來的效果和一直顯示是一樣的,但在電路上卻簡化了很多,降低了成本。比如要做四位LED顯示,靜態(tài)顯示方式則需
39、要4塊74LS164作為靜態(tài)顯示接口,如用動態(tài)掃描顯示則只需一塊即可。通常也用8155芯片作為動態(tài)掃描顯示接口的擴(kuò)展,擴(kuò)展電路在此就不做敘述了,本設(shè)計(jì)采用的是串行口動態(tài)掃描方式。動態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常,各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的位選線(公共陰極或陽極)由另外的I/O口線控制。動態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示,必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼。依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符。雖然這些字
40、符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人以同時(shí)顯示的感覺。 3.4 鍵盤控制原理介紹 3.4.1 鍵盤的工作原理 (1) 鍵盤的分類 按鍵按結(jié)構(gòu)原理可分為兩類,一類是觸點(diǎn)式開關(guān)按鍵,如機(jī)械式開關(guān)、導(dǎo)電橡膠式開關(guān)等;另一類是無觸點(diǎn)式開關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長。目前,微機(jī)系統(tǒng)中最常見的是觸點(diǎn)式開關(guān)按鍵。 按鍵按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實(shí)現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實(shí)現(xiàn)鍵盤的定義與識別。全編碼鍵盤能夠由硬
41、件邏輯自動提供與鍵對應(yīng)的編碼,此外,一般還具有去抖動和多鍵、竄鍵保護(hù)電路。這種鍵盤使用方便,但需要較多的硬件,價(jià)格較貴,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。非編碼鍵盤只簡單地提供行和列的矩陣,其它工作均由軟件完成。由于其經(jīng)濟(jì)實(shí)用,較多地應(yīng)用于單片機(jī)系統(tǒng)中。本設(shè)計(jì)采用非編碼鍵盤接口。 (2) 按鍵輸入原理 在單片機(jī)應(yīng)用系統(tǒng)中,除了復(fù)位按鍵有專門的復(fù)位電路及專一的復(fù)位功能外,其它按鍵都是以開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)的。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能,鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過程。對于一組鍵或一個(gè)鍵盤,總有一個(gè)接口電路與CPU相連。CPU可以采用查
42、詢或中斷方式了解有無將鍵輸入,并檢查是哪一個(gè)鍵按下,將該鍵號送入累加器ACC,然后通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。 (3)按鍵結(jié)構(gòu)與特點(diǎn) 機(jī)鍵盤通常使用機(jī)械觸點(diǎn)式按鍵開關(guān),其主要功能是把機(jī)械上的通斷轉(zhuǎn)換成為電氣上的邏輯關(guān)系。也就是說,它能提供標(biāo)準(zhǔn)的TTL邏輯電平,以便與通用數(shù)字系統(tǒng)的邏輯電平相容。機(jī)械式按鍵再按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動,然后其觸點(diǎn)才穩(wěn)定下來。其抖動過程如圖3.10抖動時(shí)間的長短與開關(guān)的機(jī)械特性有關(guān),一般為5~10 ms。在觸點(diǎn)抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤
43、地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖動所致的檢測誤判,必須采取去抖動措施。這一點(diǎn)可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖,而當(dāng)鍵數(shù)較多時(shí),采用軟件去抖。在硬件上可采用在鍵輸出端加R-S觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài)觸發(fā)器構(gòu)成去抖動電路。圖3.11是一種由R-S觸發(fā)器構(gòu)成的去抖動電路,當(dāng)觸發(fā)器一旦翻轉(zhuǎn),觸點(diǎn)抖動不會對其產(chǎn)生任何影響。 圖3-9 鍵觸點(diǎn)的機(jī)械抖動 圖3-10 雙穩(wěn)態(tài)去抖電路 電路工作過程如下:按鍵未按下時(shí),a = 0,b = 1,輸出Q = 1。按鍵按下時(shí),因按鍵的機(jī)械彈性作用的影響,使按鍵產(chǎn)生抖動。當(dāng)開關(guān)沒有
44、穩(wěn)定到達(dá)b端時(shí),因與非門2輸出為0反饋到與非門1的輸入端,封鎖了與非門1,雙穩(wěn)態(tài)電路的狀態(tài)不會改變,輸出保持為1,輸出Q不會產(chǎn)生抖動的波形。當(dāng)開關(guān)穩(wěn)定到達(dá)b端時(shí),因a = 1,b = 0,使Q = 0,雙穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn)。當(dāng)釋放按鍵時(shí),在開關(guān)未穩(wěn)定到達(dá)a端時(shí),因Q = 0,封鎖了與非門2,雙穩(wěn)態(tài)電路的狀態(tài)不變,輸出Q保持不變,消除了后沿的抖動波形。當(dāng)開關(guān)穩(wěn)定到達(dá)a端時(shí),因a = 0,b = 0,使Q = 1,雙穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn),輸出Q重新返回原狀態(tài)。由此可見,鍵盤輸出經(jīng)雙穩(wěn)態(tài)電路之后,輸出已變?yōu)橐?guī)范的矩形方波。 軟件上采取的措施是:在檢測到有按鍵按下時(shí),執(zhí)行一個(gè)10 ms左右(具體
45、時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài)。同理,在檢測到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而可消除抖動的影響。 (4) 按鍵編碼 一組按鍵或鍵盤都要通過I/O口線查詢按鍵的開關(guān)狀態(tài)。根據(jù)鍵盤結(jié)構(gòu)的不同,采用不同的編碼。無論有無編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成為與累加器中數(shù)值相對應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的跳轉(zhuǎn)。 (5) 編制鍵盤程序 一個(gè)完善的鍵盤控制程序應(yīng)具備以下功能: 檢測有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機(jī)械觸點(diǎn)抖動的影響。 有可靠的邏輯處理辦法。每次只處理一
46、個(gè)按鍵,其間對任何按鍵的操作對系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時(shí)間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序。 準(zhǔn)確輸出按鍵值(或鍵號),以滿足跳轉(zhuǎn)指令要求。 3.4.2 獨(dú)立式鍵盤 獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會影響其它I/O口線的狀態(tài)。獨(dú)立式按鍵的典型應(yīng)用如圖3.11所示。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根I/O口線,因此,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用。 圖3-11 獨(dú)立式按鍵電路 獨(dú)立式按鍵的軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸
47、入為低電平,則可確認(rèn)該I/O口線所對應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。此程序比較簡單,在此不做編寫,本設(shè)計(jì)采用的是矩陣掃描鍵盤。 3.4.3 矩陣式鍵盤 單片機(jī)系統(tǒng)中,若使用按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。本設(shè)計(jì)采用的就是矩陣式鍵盤。 (1) 矩陣式鍵盤的結(jié)構(gòu)及原理 矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上,其結(jié)構(gòu)如圖3.13所示。由圖可知,一個(gè)4×4的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤,顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多I/O口。 矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5V
48、上。當(dāng)無鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關(guān)鍵。然而,矩陣鍵盤中的行線、列線和多個(gè)鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號配合起來作適當(dāng)處理,才能確定閉合鍵的位置。 (2) 矩陣式鍵盤按鍵識別按鍵的方法很多,掃描法識別按鍵的過程. 圖3-12 矩陣鍵盤 按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時(shí)處在高電 平顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會
49、引起行電平的變化,因此,必須使所有列線處在低電平。只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的行電平才會由高電平變?yōu)殒I盤的編碼. (3)對于獨(dú)立式按鍵鍵盤,因按鍵數(shù)量少,可根據(jù)實(shí)際需要靈活編碼。對于矩陣式鍵盤,按鍵的位置由行號和列號惟一確定,因此可分別對行號和列號進(jìn)行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高4位是行號,低4位是列號。如圖3.12中的8號鍵,它位于第2行,第0列,因此,其鍵盤編碼應(yīng)為20H。采用上述編碼對于不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對按鍵進(jìn)行處理。因此,可采用依次排列鍵號的方式對按排進(jìn)行編碼。以圖3.12中的4×4鍵盤為例,可將鍵號編碼為:01H、02H、03H、…、0EH、0F
50、H、10H等16個(gè)鍵號。編碼相互轉(zhuǎn)換可通過計(jì)算或查表的方法實(shí)現(xiàn)。 (4)鍵盤的工作方式 對鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實(shí)際應(yīng)用系統(tǒng)中CPU的工作狀況而定,其選取的原則是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過多占用CPU的工作時(shí)間。通常,鍵盤的工作方式有三種,即編程掃描、定時(shí)掃描和中斷掃描。 (5)編程掃描方式 編程掃描方式是利用CPU完成其它工作的空余時(shí)間,調(diào)用鍵盤掃描子程序來響應(yīng)鍵盤輸入的要求。在低電平。CPU根據(jù)行電平的變化,便能判定相應(yīng)的行有鍵按下。8號鍵按下時(shí),第2行一定為低電平。然而,第2行為低電平時(shí),能否肯定是8號鍵按下呢?回答是否定的,因?yàn)?
51、、10、11號鍵按下,同樣會使第2行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都處在低電平,可在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,另一時(shí)刻,讓下一列處在低電平,依此循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。采用鍵盤掃描后,再來觀察8號鍵按下時(shí)的工作過程,當(dāng)?shù)?列處于低電平時(shí),第2行處于低電平,而第1、2、3列處于低電平時(shí),第2行卻處在高電平,由此可判定按下的鍵應(yīng)是第2行與第0列的交叉點(diǎn),即8號 執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求,直到CPU重新掃描鍵盤為止。 鍵盤掃描程序一般應(yīng)包括以下內(nèi)容: 判別有無鍵按下; 鍵盤掃描取得閉合鍵的行、
52、列值; 用計(jì)算法或查表法得到鍵值; 判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待; 將閉合鍵鍵號保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。 (6)定時(shí)掃描方式 定時(shí)掃描方式就是每隔一段時(shí)間對鍵盤掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(例如10 ms)的定時(shí),當(dāng)定時(shí)時(shí)間到就產(chǎn)生定時(shí)器溢出中斷。CPU響應(yīng)中斷后對鍵盤進(jìn)行掃描,并在有鍵按下時(shí)識別出該鍵,再執(zhí)行該鍵的功能程序。定時(shí)掃描方式的硬件電路與編程掃描方式相同。 (7)中斷掃描方式 種鍵盤掃描方式時(shí),無論是否按鍵,CPU都要定時(shí)掃描鍵盤,而單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并非經(jīng)常需要鍵盤輸入,因此,CPU經(jīng)常處于空掃描狀態(tài)。為提高CPU工作效率,
53、可采用中斷掃描工作方式。其工作過程如下:當(dāng)無鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請求,CPU轉(zhuǎn)去執(zhí)行鍵盤掃描子程序,并識別鍵。 圖3-13 中斷掃描鍵盤電路 圖3-13是一種簡易鍵盤接口電路,該鍵盤是由8031 P1口的高、低字節(jié)構(gòu)成的4×4鍵盤。鍵盤的列線與P1口的高4位相連,鍵盤的行線與P1口的低4位相連,因此,P1.4~P1.7是鍵輸出線,P1.0~P1.3是掃描輸入線。圖中的4輸入與門用于產(chǎn)生按鍵中斷,其輸入端與各列線相連,再通過上拉電阻接至+5 V電源,輸出端接至8031的外部中斷輸入端。具體工作如下:當(dāng)鍵盤無鍵按下時(shí),與門各輸入端均為高電平,保持輸出端為
54、高電平;當(dāng)有鍵按下時(shí),端為低電平,向CPU申請中斷,若CPU開放外部中斷,則會響應(yīng)中斷請求,轉(zhuǎn)去執(zhí)行鍵盤掃描子程序。 3.5 本章小結(jié) 本章對硬件電路的設(shè)計(jì)和電路所用到的芯片進(jìn)行了介紹。主要是鍵盤控制電路與顯示電路的原理和功能,并對LED顯示原理進(jìn)行了介紹。下面將根據(jù)以上說介紹的原理設(shè)計(jì)鍵盤控制及顯示硬件電路。 第4章 鍵盤控制及顯示硬件電路實(shí)現(xiàn) 本章將根據(jù)上面所介紹的原理及芯片功能設(shè)計(jì)鍵盤控制及顯示的硬件實(shí)現(xiàn)電路,鍵盤控制及顯示電路的設(shè)計(jì)流程是:鍵盤按鍵按下,輸入該鍵盤鍵值,經(jīng)CPU處理后輸出,由LED顯示器顯示所按的鍵值。 其工作原理:當(dāng)有鍵按下時(shí),CPU將對整個(gè)鍵盤進(jìn)行
55、掃描,確定按鍵位置,讀取鍵值;CPU再將所讀取的鍵值送到顯示部分,最后通過LED顯示器顯示鍵值。其總體框圖如圖,總電路原理圖見(附錄2)。 圖4-1 電路總設(shè)計(jì)框圖 4.1 LED顯示電路設(shè)計(jì) 單片機(jī)并行I/O口數(shù)量總是有限的,有時(shí)并行口需作其他更重要的用途,一般也不會用數(shù)量眾多的并行I/O口專門用來驅(qū)動顯示電路,因此本設(shè)計(jì)采用了AT89S52的串行通信口靜態(tài)顯示。 AT89S52的串行通信口是一個(gè)功能強(qiáng)大的通信口,而且是相當(dāng)好用的通信口,用于顯示驅(qū)動電路再合適不過了,下面我們就根據(jù)這種需要設(shè)計(jì)一個(gè)用兩個(gè)串行通信口線設(shè)計(jì)一個(gè)8位LED顯示電路。下圖即是電路原理圖,我采用AT89
56、S52單片機(jī),同時(shí)用廉價(jià)易得的74HC595作為驅(qū)動芯片。74HC595是一個(gè)8位串入并出的移位寄存器,其此處的功能是將AT89S52串行通信口輸出的串行數(shù)據(jù)譯碼并在其并口線上輸出,從而驅(qū)動LED數(shù)碼管。使用串行口進(jìn)行LED通信,程序編寫相當(dāng)簡單,只需將需顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行中斷即可,程序見附錄,電路原理如圖4-2。 圖4-2 串行顯示電路 采用靜態(tài)顯示技術(shù),畫面穩(wěn)定,無雜點(diǎn),圖像效果清晰;視頻效果流暢。 LED顯示器是由發(fā)光二極管排列組成的一顯示器件,它采用低電壓掃描驅(qū)動,同時(shí)還具有如下優(yōu)點(diǎn):耗電省,使用壽命長,成本低,亮度高,視角大,規(guī)格品種多等,因此本設(shè)計(jì)
57、采用LED數(shù)碼顯示器作為顯示部分的重要元件。 4.2 獨(dú)立按鍵鍵盤的電路設(shè)計(jì) 本設(shè)計(jì)采用的是8鍵獨(dú)立式鍵盤,掃描方法采用編程掃描方式,其鍵盤部分電路 圖如下: 圖4-3 獨(dú)立按鍵電路圖 本設(shè)計(jì)采用的是一種行掃描法,行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,其掃描過程如下: (1) 判斷鍵盤中有無鍵按下:將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 (2) 判斷閉合鍵所在的位置:在確認(rèn)有鍵按
58、下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。比如,如圖4.3,89C51的P1口用作鍵盤I/O口,鍵盤的列線接到P1口的低4位,鍵盤的行線接到P1口的高4位。行線P1.4-P1.7分別接有4個(gè)上拉電阻到正電源+5V,并把列線P1.0-P1.3設(shè)置為輸入線,行線P1.4-P.17設(shè)置為輸出線。4根行線和4根列線形成16個(gè)相交點(diǎn)。 檢測當(dāng)前是否有鍵被按下。檢測的方法是P1.4-P1.7輸出全“1”,讀取P1.
59、0-P1.3的狀態(tài),若P1.0-P1.3為全“0”,則無鍵閉合,否則有鍵閉合; 去除鍵抖動。當(dāng)檢測到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測判斷; 若有鍵被按下,應(yīng)識別出是哪一個(gè)鍵閉合。方法是對鍵盤的行線進(jìn)行掃描P1.4-P1.7按下述4種組合依次輸出: P1.7 1 1 1 0 P1.6 1 1 0 1 P1.5 1 0 1 1 P1.4 0 1 1 1 在每組行輸出時(shí)讀取P1.0-P1.3,若全為“1”,則表示為“0”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。 為了保證鍵每閉合一次CP
60、U僅作一次處理,必須卻除鍵釋放時(shí)的抖動。 4.3 硬件的焊接 4.3.1 硬件的焊接 硬件的焊接是本次設(shè)計(jì)的重要環(huán)節(jié),所用的工具為:30W電烙鐵,焊錫和鑷子。因?yàn)楸敬卧O(shè)計(jì)電路組成相對簡單,因此采用實(shí)驗(yàn)板焊接電路。實(shí)驗(yàn)板上沒有連通的導(dǎo)線,所有元器件都要用導(dǎo)線連接,這就要求一定的焊接技能,不過此技能在以前的電裝實(shí)習(xí)中已經(jīng)學(xué)過并熟練掌握。焊接前先要將所需材料準(zhǔn)備好,把電路所需元器件按合理的布局在實(shí)驗(yàn)板上排好,這樣焊接線路比較明朗,不容易出錯(cuò),檢查時(shí)也比較容易。 (1) 低座的焊接 本次設(shè)計(jì)一共有九個(gè)底座,即1個(gè)AT89S52,8個(gè)74HC595。焊接時(shí),先將低座按照原先排好的布局插到電
61、路板上,因?yàn)槊總€(gè)管腳幾間隙都很小,因此在焊接是都要很仔細(xì),焊錫不要太多,焊點(diǎn)不要太大,這樣可以防止管腳之間的短路,同時(shí)在焊接時(shí)不能形成虛焊,虛焊會導(dǎo)致電路的斷路,底座焊接要穩(wěn),松動也會容易導(dǎo)致虛焊。 (2) 鍵盤的焊接 本次設(shè)計(jì)鍵盤由8個(gè)普通開關(guān)按鍵按1行的形式組成。我所選用的普通開關(guān)按鍵有四個(gè)腳,其中有兩個(gè)腳是導(dǎo)通的,如果在焊接時(shí)不小心將導(dǎo)通的兩端作為按鍵則按鍵將不起作用,因此在焊接前應(yīng)使用萬用表檢查哪兩個(gè)腳為導(dǎo)通端,這樣會避免按鍵無作用情況的發(fā)生。 (3) 導(dǎo)線的焊接 電路中導(dǎo)線是用來連接元器件的,它相當(dāng)于整個(gè)電路的血管。導(dǎo)線是整個(gè)電路焊接最麻煩的,導(dǎo)線的焊接不僅需要細(xì)心還要有耐心
62、,每一根線的長短,怎么布局都要自己由根據(jù)整個(gè)電路的布局來確定,少一根都不行。因此我在焊接時(shí)是先將要連的線在實(shí)驗(yàn)板上用鉛筆標(biāo)畫好,然后焊接,這樣焊出來的不僅美觀而且不容易出錯(cuò)。 4.3.2 電路板的檢查和故障排除 (1) 電路板的檢查 當(dāng)整個(gè)電路板所有元器件及導(dǎo)線都焊接完成后,則開始用萬用表檢查電路的導(dǎo)通情況。先檢查低座,將萬用表調(diào)到電阻最低擋,再將兩個(gè)表筆分別接到每個(gè)管腳的兩端,若有萬用表有報(bào)警聲這說明導(dǎo)通,若沒反應(yīng)即為不導(dǎo)通。再檢查導(dǎo)線的導(dǎo)通情況,辦法和檢查低座一樣。 (2) 電路故障的排除 當(dāng)在檢查低座的時(shí)候發(fā)現(xiàn)AT89S52低座的21腳沒有導(dǎo)通,經(jīng)檢查發(fā)現(xiàn)21腳松動,形成虛焊
63、,經(jīng)重新焊接再用萬用表檢查,21腳導(dǎo)通,故障排除 . 在檢查導(dǎo)線時(shí)發(fā)現(xiàn)AT89S52低座的40叫與地線和火線同時(shí)導(dǎo)通,經(jīng)對整個(gè)線路盤查發(fā)現(xiàn)火線與地線相連通了,經(jīng)處理后再次用萬用表檢查,電路完好,故障排除. 高低單色光地方官地方官地方官地方官地方官地方官地方官對法國隊(duì)似懂非懂所凍豆腐大隨風(fēng)倒反對。 4.4 本章小結(jié) 本章主要敘述了鍵盤控制電路和顯示電路是怎樣實(shí)現(xiàn)的。LED顯示電路的設(shè)計(jì),獨(dú)立按鍵的電路設(shè)計(jì)以及硬件的焊接,電路板的檢查和故障的排除。, 第5 章 鍵盤控制及顯示電路軟件設(shè)計(jì) 軟件部分設(shè)計(jì)是本次設(shè)計(jì)的另一個(gè)重要組成部分,它的設(shè)計(jì)成敗將直接影響到整個(gè)設(shè)計(jì)的功能能否
64、正常實(shí)現(xiàn)。本次軟件設(shè)計(jì)采用匯編語言編程,用keil51軟件對所編程序進(jìn)行編譯。 5.1 軟件設(shè)計(jì)的基本工具 5.1.1 匯編語言的簡介 匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,因此匯編語言是不易移植的。?C語言也是一種結(jié)構(gòu)化的高級語言。其優(yōu)點(diǎn)是可讀性好,移植容易,是普遍使用的一種計(jì)算機(jī)語言。缺點(diǎn)是占用資源較多,執(zhí)行效率沒有匯編高。對于目前普遍使用的RISC架構(gòu)的8bit?MCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,
65、會變成很多條機(jī)器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應(yīng)一個(gè)機(jī)器碼,每一步執(zhí)行什么動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在單片機(jī)開發(fā)中,通常是建議采用匯編語言。 5.1.2 匯編語言的指令系統(tǒng)與程序 前面已經(jīng)講述了本設(shè)計(jì)的幾個(gè)主要組成部分,這些部分只構(gòu)成了系統(tǒng)的硬件。所謂硬件(Hardware),就是看得到,摸得到的實(shí)體。但是,光有這樣的硬件,還只是有了實(shí)現(xiàn)和控制功能的可能性。整個(gè)電路系統(tǒng)要真正地能進(jìn)行工作,還必須有軟件(Software)的配合。軟件主要指的是單片機(jī)實(shí)現(xiàn)各種功能
66、的各種程序。程序是由指令組成的,指令的基本組成是操作碼和操作數(shù)。單片機(jī)的品種很多,設(shè)計(jì)時(shí)怎樣表示操作碼和操作數(shù),都有各自的規(guī)定,再有指令代碼也各不相同,因此,必須對所選單片機(jī)的全部指令,也就是所謂”指令系統(tǒng)”,有足夠的了解。各個(gè)系列的單片機(jī)雖然有不同的指令系統(tǒng),但也有其共同性。掌握一種單片機(jī)的指令系統(tǒng),對其它系列單片機(jī)可以起到觸類旁通的作用。MCS-51單片機(jī)應(yīng)用廣泛,派生品種多,具有代表性,所以,這里以MCS-51系列的指令系統(tǒng)為例說明”指令”的組成和應(yīng)用。例:MOV?A,#20H,這條指令表示把20H這個(gè)數(shù)送入累加器A中(一個(gè)特殊功能寄存器)。再如:ADD?A,70H,這條指令表示把累加器A中的內(nèi)容(在上例中送入的#20H)和存貯器中地址為70H單元中的內(nèi)容(也是一個(gè)數(shù)字),通過算術(shù)邏輯單元(英文縮寫為ALU)相加,并將結(jié)果保留在A中。這里MOV、ADD等稱為操作碼,而A、#20H、70H等均稱為操作數(shù)。在匯編語言程序中,操作碼通常由英文單詞縮寫而成,這樣有助于記憶,所以又稱助記符。如MOV就是英文單詞MOVE的縮寫,含有搬移的意思;而ADD即為英文單詞,其意為相加。因此,對于略懂
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭當(dāng)公安隊(duì)伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長會長長的路慢慢地走