籃球比賽計(jì)時(shí)器_第1頁
籃球比賽計(jì)時(shí)器_第2頁
籃球比賽計(jì)時(shí)器_第3頁
籃球比賽計(jì)時(shí)器_第4頁
籃球比賽計(jì)時(shí)器_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、i 摘要 本文主要介紹:籃球比賽計(jì)時(shí)器。本文首先介紹單片機(jī)的相關(guān)知識,對單 片機(jī)進(jìn)行相應(yīng)的研究,并將其與 74hc595 串行顯示電路配合使用。本電路主 要核心是 at89s51,利用軟件和硬件的結(jié)合實(shí)現(xiàn)開機(jī)自動(dòng)置節(jié)計(jì)數(shù)器為第一節(jié), 節(jié)計(jì)時(shí)器為 12 分 00 秒,24 秒違例為 24 秒。用數(shù)字顯示籃球比賽當(dāng)時(shí)節(jié)數(shù), 每節(jié)時(shí)間及 24 秒的倒計(jì)時(shí),采用單片機(jī)串行顯示。最后,本文會(huì)詳細(xì)敘述此 電路的安裝與調(diào)試,并對調(diào)試過程中出現(xiàn)的問題做簡要說明。 關(guān)鍵詞 at89s52 單片機(jī);74hc595;xxx ii abstract abstract this article mainly intro

2、duced: basketball game timer. this article first introduced that monolithic integrated circuits 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, realiz

3、es using the software and hardwares 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 seco

4、nd countdown, used the monolithic integrated circuit serial demonstration. finally, this article will narrate this electric circuits 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 ci

5、rcuit; 74hc595; xxx iii 目 錄 摘要 .i abstractabstract .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

6、鍵盤控制原理介紹.14 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 iv 5.1 軟件設(shè)計(jì)的基本工具 .26 5.1.1 匯編語言的簡介 .26 5.1.2 匯編語言的指令系統(tǒng)與程序 .26 5.1.3 keilc51 開發(fā)軟件簡介 .28 5.2

7、獨(dú)立式鍵盤軟件設(shè)計(jì) .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 附錄 1 外文資料 .34 附錄 2 電路原理圖 .37 附錄 3 匯編源程序 .38 附錄 4 元件清單 .45 1 第 1 章 緒論 1.1 課題背景 在電子技術(shù)飛速發(fā)展的今天,電子產(chǎn)品的人性化和智能化已經(jīng)非常成熟, 其發(fā)展前景仍然不可估量。如今的人們需求的是一種能給自己帶來方便的電子 產(chǎn)品,當(dāng)然最好是人性化和智能化的,如何能做到智能化呢?單片機(jī)的引入就 是一個(gè)很好的

8、例子。單片機(jī)又稱單片微型計(jì)算機(jī),也稱為微控制器,是微型計(jì) 算機(jī)的一個(gè)重要分支,單片機(jī)是 20 世紀(jì) 70 年代中期發(fā)展起來的一種大規(guī)模集 成電路芯片,是集 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ī)作為主控制器的全自動(dòng)洗衣機(jī)、 高檔電風(fēng)扇、電子廚具、變頻空調(diào)、遙控彩電、錄像機(jī)、vcd/dvd 機(jī)、組合 音響、電子琴等。單片機(jī)已在廣闊的計(jì)算機(jī)應(yīng)用領(lǐng)域中表現(xiàn)得淋漓盡致,出盡 了風(fēng)頭。從家用消費(fèi)類電器

9、到復(fù)印機(jī)、打印機(jī)、掃描儀、傳真機(jī)等辦公自動(dòng)化 產(chǎn)品;從智能儀表、工業(yè)測控裝置到 ct、mri、 刀等醫(yī)療設(shè)備;從數(shù)碼相機(jī)、 攝錄一體機(jī)到航天技術(shù)、導(dǎo)航設(shè)備、現(xiàn)代軍事裝備;從形形色色的電子貨幣如 電話卡、水電氣卡到身份識別卡、門禁控制卡、檔案管理卡及相關(guān)讀/寫卡機(jī) 等等都有單片機(jī)在里面扮演重要角色。因此,單片機(jī)已成為電子類工作者必須 掌握的專業(yè)技術(shù)之一。單片機(jī)就是一個(gè)微型中央處理器,通過編程即能完成很 多智能化的工作 ,因此它的出現(xiàn)給電子技術(shù)智能化和微型化起到了很大的推 動(dòng)作用。隨著人們生活水平的提高,社會(huì)經(jīng)濟(jì)的發(fā)展,人們開始考慮精神生活 的享受,并開始注重身體素質(zhì)的提高。開始舉辦一些小型的籃球

10、比賽。這就需 要裁判有一個(gè)公正的判罰,以保證比賽的順利進(jìn)行。這就需要有一個(gè)專門計(jì)時(shí) 的工具。所以我就設(shè)計(jì)了一個(gè)籃球比賽計(jì)時(shí)器。設(shè)計(jì)簡單,耗費(fèi)少,容易制作。 可用于街頭籃球比賽和校園籃球比賽?;ê苌俚腻X就可以得到一個(gè)實(shí)用的籃球 比賽計(jì)時(shí)器。 本次設(shè)計(jì)注重對單片機(jī)工作原理以及鍵盤控制及顯示原理的理解,以便今 后自己在單片機(jī)領(lǐng)域的學(xué)習(xí)和開發(fā)打下基礎(chǔ),提高自己的動(dòng)手能力和設(shè)計(jì)能力, 培養(yǎng)創(chuàng)新能力,豐富自己的理論知識,做到理論和實(shí)踐相結(jié)合。本次設(shè)計(jì)的重 要意義還在于對單片機(jī)的內(nèi)部結(jié)構(gòu)和工作狀態(tài)做更進(jìn)一步的了解,同時(shí)還對單 片機(jī)的接口技術(shù),中斷技術(shù),存儲(chǔ)方式和控制方式作更深層次的了解。此次設(shè) 2 計(jì)更進(jìn)一

11、步了解基本電路的設(shè)計(jì)流程,提高自己的設(shè)計(jì)理念,豐富自己的理論 知識,鞏固所學(xué)知識,使自己的動(dòng)手動(dòng)腦能力有更進(jìn)一步提高,為自己今后的 學(xué)習(xí)和工作打好基礎(chǔ),為自己的專業(yè)技能打好基礎(chǔ)。 1.2 設(shè)計(jì)簡介 籃球比賽中除了有總時(shí)間倒計(jì)時(shí)外,為了加快比賽的節(jié)奏,新的規(guī)則還要 求進(jìn)攻方在 24 秒內(nèi)有一次投籃動(dòng)作,否則視為違例。根據(jù)要求,以 at89s52 單片機(jī)為核心,設(shè)計(jì)籃球比賽計(jì)時(shí)控制器。籃球比賽上下半場四節(jié)制,每節(jié) 12 分鐘,要求能隨時(shí)暫停,啟動(dòng)后繼續(xù)計(jì)時(shí),一節(jié)比賽結(jié)束后可清零。按籃球比 賽規(guī)則,進(jìn)攻方有 24 秒為例計(jì)時(shí)。 “分” “秒”顯示用 led 數(shù)碼管。用開關(guān)控 制計(jì)時(shí)器的啟動(dòng)/暫停。該

12、籃球比賽計(jì)時(shí)器的設(shè)計(jì),可對比賽總時(shí)間和各方每 次控球時(shí)間計(jì)時(shí)。該計(jì)時(shí)器采用按鍵操作、led 顯示,非常實(shí)用。此計(jì)時(shí)器在 程序參數(shù)稍加修改后也可作為其他球類比賽的計(jì)時(shí)器。 主控芯片為 at89s52,采用 12mhz 晶振,p0.0-p0.7 作鍵盤輸入。a1 為 12 分鐘暫停鍵;a2 為啟動(dòng) 12 分鐘計(jì)時(shí)鍵,24 秒計(jì)時(shí)開始;a3 為 24s 復(fù)位開啟 鍵(投籃或交換控球時(shí)按下此鍵); a4 為 24 秒計(jì)時(shí)停止鍵(沒有違例);a5 為總計(jì)時(shí)和 24 秒計(jì)時(shí)同時(shí)啟動(dòng)鍵;a6 為總計(jì)時(shí)和 24s 計(jì)時(shí)同時(shí)停止鍵。 電路采用靜態(tài)顯示,一起點(diǎn)亮各位數(shù)碼管,同時(shí)顯示不同的字符。點(diǎn)亮各 位數(shù)碼管鎖存

13、輸出。顯示器的第一位顯示計(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)鍵處理。 3 第 2 章 系統(tǒng)電路的設(shè)計(jì)方案 2.1 系統(tǒng)設(shè)計(jì)方案的提出 本設(shè)計(jì)是基于 89s52 單片機(jī)的鍵盤控制及顯示電路設(shè)計(jì),從系統(tǒng)的設(shè)計(jì)功 能上看,系統(tǒng)可分為兩大部分,即鍵盤輸入控制部分和顯示部分,對于每一個(gè) 部分都有不同的設(shè)計(jì)方案,起初我擬訂了下面兩種方案: 第一種方案: 鍵盤控制采用矩陣掃描鍵盤,可以用普通按鍵構(gòu)成 44 矩陣鍵盤,直接接 到 89s52 單片機(jī)的 p0 口,

14、高四位作為行,低四位作為列,通過軟件完成鍵盤 的掃描和定位。顯示部分采用動(dòng)態(tài)顯示,采用移位寄存器 74ls164 和譯碼器 74ls138 通過顯示驅(qū)動(dòng)程序驅(qū)動(dòng)七段數(shù)碼管顯示。此方案成本低,所用到的兩 個(gè)外圍芯片價(jià)格都很低廉,而且單片機(jī)的 i/o 口占用較少,可以節(jié)約單片機(jī)接 口資源。 第二種方案: 鍵盤控制采用獨(dú)立是式鍵盤,每個(gè)按鍵的“接零端”均接地,每個(gè)按鍵的“測 試端”各接一條輸入線,通過檢測輸入線的電平狀態(tài)就可以很容易地判斷哪個(gè) 鍵被按下了,這種方法操作速度高而且軟件結(jié)構(gòu)很簡單。這種方法比較適合按 鍵較少或操作速度較高的場合。顯示部分采用靜態(tài)顯示方法,所謂靜態(tài)顯示, 就是每一個(gè)顯示器都

15、要占用單獨(dú)的具有鎖存功能的接口用于筆劃段字形代碼。 這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要 顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中 cpu 的 開銷小。 2.2 方案的確定 本設(shè)計(jì)要求按鍵較多,且本次設(shè)計(jì)只是對所學(xué)知識的一次實(shí)踐,設(shè)計(jì)要求 簡單,容易實(shí)現(xiàn),成本低。比較以上兩中設(shè)計(jì)方案,第二種成本低,占用單片 機(jī)資源少,且容易實(shí)現(xiàn),這樣的設(shè)計(jì)比較適合本次設(shè)計(jì),故選用第二種設(shè)計(jì)方 案。 2.3 本章小結(jié) 本章主對所選方案進(jìn)行比較,并最終確定選用那種方案。 4 第 3 章 電路設(shè)計(jì)原理及芯片介紹 3.1 鍵盤控制及顯示電路設(shè)計(jì)的原理及要求 3.1.

16、1 電路的設(shè)計(jì)原理與功能要求 本設(shè)計(jì)采用 at89s52 單片機(jī)芯片作為中央處理芯片,采用 at89s52 的 p0 口構(gòu)成獨(dú)立 8 鍵鍵盤,采用 at89s52 串行口靜態(tài)顯示,選用 74hc595 作為 led 驅(qū)動(dòng)芯片。 本電路設(shè)計(jì)有以下功能及要求: (1)籃球比賽計(jì)時(shí)器全場時(shí)間為 48 分鐘,共四節(jié),每節(jié) 12 分鐘和 24 秒 違例。要求開機(jī)自動(dòng)置節(jié)計(jì)數(shù)器為第一節(jié),節(jié)計(jì)時(shí)器為 12 分 00 秒,24 秒違例 為 24 秒。 (2)用數(shù)字顯示籃球比賽當(dāng)時(shí)節(jié)數(shù),每節(jié)時(shí)間及 24 秒的倒計(jì)時(shí),采用單 片機(jī)串行顯示。 (3)能隨時(shí)用按紐開關(guān)控制比賽的啟動(dòng)/暫停,啟動(dòng)后開始比賽,暫停期間不計(jì)

17、 時(shí),重新啟動(dòng)后繼續(xù)計(jì)時(shí)。 3.1.2 電路的總設(shè)計(jì)框圖電路的總設(shè)計(jì)框圖 根據(jù)設(shè)計(jì)任務(wù)與要求,可初步將系統(tǒng)分為五大功能模塊:主電路、開關(guān)啟 /??刂齐娐?、顯示電路、音響電路和+5v 穩(wěn)壓電源。進(jìn)一步細(xì)說,主電路選用 89s52 作為中央處理器;開關(guān)啟/??刂齐娐酚砂藗€(gè)按鍵組成;顯示電路由八位 七段數(shù)碼管和 74hc595 組成;音響電路用 uln2003 驅(qū)動(dòng)蜂鳴器;+5v 穩(wěn)壓電路 采用 7805 穩(wěn)壓塊把電源電壓穩(wěn)定在+5v。原理框圖如圖 3-1 所示。 圖 3-1 籃球比賽計(jì)時(shí)器的原理框圖 3.2 總電路選用芯片簡介 3.2.1 控制芯片 at89s52 at89s52 功能特性描述:

18、at89s52 是一種低功耗、高性能 cmos8 位微控制器,具有 8k 在系統(tǒng) 5 可編程 flash 存儲(chǔ)器。使用 atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工 業(yè) 80c51 產(chǎn)品指令和引腳完全兼容。片上 flash 允許程序存儲(chǔ)器在系統(tǒng)可編 程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 cpu 和在系統(tǒng)可編程 flash ,使得 at89s52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解 決方案。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

19、 向量 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 封裝 主要特性: (1) 與 mcs-51 單片機(jī)產(chǎn)品兼容; (2) 8k 字節(jié)在系統(tǒng)可編程 flash 存儲(chǔ)器; (3) 1000 次擦寫周期;

20、(4) 全靜態(tài)操作:0hz33hz ; (5) 三級加密程序存儲(chǔ)器; 6 (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 位漏極開路的雙向 i/o 口。作為輸出口,每位能驅(qū) 動(dòng) 8 個(gè) ttl 邏輯電平。對 p0 端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0 口也

21、被作為低 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ū)動(dòng) 4 個(gè) ttl 邏輯電平。對 p1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高, 此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻 的原因,將輸出電流(iil) 。此外,p1.0 和 p1.2 分別作定時(shí)器/計(jì)數(shù)器 2 的外 部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器 2 的觸發(fā)輸入(p1.1/t2ex)

22、 ,具體如下 表所示。 表 3-1 部分引腳第二功能 在 flash 編程和校驗(yàn)時(shí),p1 口接收低 8 位地址字節(jié)。 7 p2 口:p2 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖 器能驅(qū)動(dòng) 4 個(gè) ttl 邏輯電平。對 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

23、 ri )訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),p2 口輸出 p2 鎖存器的內(nèi)容。在 flash 編程和校驗(yàn) 時(shí),p2 口也接收高 8 位地址字節(jié)和一些控制信號。 p3p3 口口:p3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖 器能驅(qū)動(dòng) 4 個(gè) ttl 邏輯電平。對 p3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高, 此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻 的原因,將輸出電流(iil) 。p3 口亦作為 at89s52 特殊功能(第二功能)使 用,如下表所示。 在 flash 編程和校驗(yàn)時(shí),p3 口也接收一些控制信號。 表 3-2 p3 口引腳第二功能 rs

24、t: 復(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)是訪問外部程序存儲(chǔ)器時(shí),鎖存 低 8 位地址的輸出脈沖。在 flash 編程時(shí),此引腳(prog )也用作編程輸入 8 脈沖。在一般情況下,ale 以晶振六分之一的固定頻率輸出脈沖,可用來作 為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí), ale 脈沖將會(huì)跳過。如

25、果需要,通過將地址為 8eh 的 sfr 的第 0 位置“1”, ale 操作將無效。這一位置“1”, ale 僅在執(zhí)行 movx 或 movc 指令時(shí) 有效。否則,ale 將被微弱拉高。這個(gè) ale 使能標(biāo)志位(地址為 8eh 的 sfr 的第 0 位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 psen: 外部程序存儲(chǔ)器選通信號(psen)是外部程序存儲(chǔ)器選通信號。 當(dāng) at89s52 從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),psen 在每個(gè)機(jī)器周期被 激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),psen 將不被激活。 ea/vpp: 訪問外部程序存儲(chǔ)器控制信號。為使能從 0000h 到 ffffh 的外

26、部程序存儲(chǔ)器讀取指令,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ū)動(dòng)器件, xtal2 應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對 外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 芯片擦除: 整個(gè) perom 陣列和

27、三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并 保持 ale 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫 1且在任何非空存儲(chǔ)字節(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 分別為振蕩電路的輸入端和輸出端

28、。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部 方式產(chǎn)生。如圖 3.4 所示: 9 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 之間選擇,電容值在 530 pf 之 間選擇,電容的大小可起頻率微調(diào)作用。外部方式的時(shí)鐘電路如圖 3-4 b)所示, xtall 接地;xtal2 接外部振蕩器。對外部振蕩信號無特殊要求,只要保證 脈沖寬度,一般采用頻率低于 12mhz 的方波信號。 時(shí)鐘發(fā)

29、生器把振蕩頻率兩分頻,產(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ù)位 3-5 復(fù)位電路圖 3.2.2 74

30、hc595 74hc595 是具有 8 位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄 10 存器和存儲(chǔ)器是分別的時(shí)鐘。數(shù)據(jù)在 schcp 的上升沿輸入,在 stcp 的上升沿 進(jìn)入的存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄 存器早一個(gè)脈沖。移位寄存器有一個(gè)串行移位輸入(ds),和一個(gè)串行輸出 (q7),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行 8 位的,具備三 態(tài)的總線輸出,當(dāng)使能 oe 時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。 (1)引腳結(jié)構(gòu)圖 圖 3-6 74hc595 引腳圖 (2)引腳說明 74595 的數(shù)據(jù)端: qa-qh: 八位并行輸出端,可以直接

31、控制數(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ù)存儲(chǔ)寄存器,下降沿時(shí) 存儲(chǔ)寄存器數(shù)據(jù)不變。通常我將 rck 置為低電平,當(dāng)移位結(jié)束后,在 rck 端 產(chǎn)生一個(gè)正脈沖(5v 時(shí),大于幾十納秒就行了。我通常都

32、選微秒級),更新 顯示數(shù)據(jù)。 11 /g(13 腳): 高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用 一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要 省時(shí)省力。 注:74164 和 74595 功能相仿,都是 8 位串行輸入轉(zhuǎn)并行輸出移位寄存器。 74164 的驅(qū)動(dòng)電流(25ma)比 74595(35ma)的要小,14 腳封裝,體積也小一些。 74595 的主要優(yōu)點(diǎn)是具有數(shù)據(jù)存儲(chǔ)寄存器,在移位的過程中,輸出端的數(shù) 據(jù)可以保持不變。這在串行速度慢的場合很有用處,數(shù)碼管沒有閃爍感。 與 164 只有數(shù)據(jù)清零端相比,595 還多有輸出端時(shí)能/禁止控制端,可以使 輸出為

33、高阻態(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 所示。

34、圖 3.7 發(fā)光二極管發(fā)光原理 假設(shè)發(fā)光是在 p 區(qū)中發(fā)生的,那么注入的電子與價(jià)帶空穴直接復(fù)合而發(fā)光, 或者先被發(fā)光中心捕獲后,再與空穴復(fù)合發(fā)光。除了這種發(fā)光復(fù)合外,還有些 電子被非發(fā)光中心(這個(gè)中心介于導(dǎo)帶、介帶中間附近)捕獲,而后再與空穴復(fù) 12 合,每次釋放的能量不大,不能形成可見光。發(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)生可見光(波長在 38

35、0nm 紫光780nm 紅光),半導(dǎo)體材料的 eg 應(yīng)在 3.261.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ā)光二 極管陽極連

36、在一起作為公共端;而共陰極是將 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 顯示器的接口常分為動(dòng)態(tài)掃描方式和靜態(tài)顯示方式。 表 3.5 段碼與字形碼的關(guān)系 13 字形d7 dp

37、 d6 g d5 f d4 e d3 d d2 c d1 b d0 a 段碼 01100000003h 1111110019fh 21010010045h 3101100000dh 41001100199h 51001001029h 61000001021h 7111110001fh 81000000001h 91001000009h a1000100011h b1000001041h c1100011063h d1010000185h e1000011061h f1000111071h 靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定 截止。這種顯示方式的各位數(shù)碼管相互獨(dú)立,

38、公共端恒定接地(共陰極)或接正 電源(共陽極)。每個(gè)數(shù)碼管的 8 個(gè)字段分別與一個(gè) 8 位 i/o 口地址相連,i/o 口只要有段碼輸出,相應(yīng)字符即顯示出來,并保持不變,直到 i/o 口輸出新的 段碼。采用靜態(tài)顯示方式,較小的電流即可獲得較高的亮度,且占用 cpu 時(shí)間 少,編程簡單,顯示便于監(jiān)測和控制,但其占用的口線多,硬件電路復(fù)雜,成 本高,只適合于顯示位數(shù)較少的場合。動(dòng)態(tài)掃描顯示方式:其工作原理是將多 個(gè)顯示器的段碼同名端連在一起,位碼分別控制,利用眼睛的余輝暫留效應(yīng), 14 分別進(jìn)行顯示。只要保證一定的顯示頻率,看起來的效果和一直顯示是一樣的, 但在電路上卻簡化了很多,降低了成本。比如

39、要做四位 led 顯示,靜態(tài)顯示 方式則需要 4 塊 74ls164 作為靜態(tài)顯示接口,如用動(dòng)態(tài)掃描顯示則只需一塊即 可。通常也用 8155 芯片作為動(dòng)態(tài)掃描顯示接口的擴(kuò)展,擴(kuò)展電路在此就不做 敘述了,本設(shè)計(jì)采用的是串行口動(dòng)態(tài)掃描方式。動(dòng)態(tài)顯示是一位一位地輪流點(diǎn) 亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常,各位數(shù)碼管的 段選線相應(yīng)并聯(lián)在一起,由一個(gè) 8 位的 i/o 口控制;各位的位選線(公共陰極或 陽極)由另外的 i/o 口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使 其穩(wěn)定顯示,必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相 應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管

40、,并送出相應(yīng)的段碼。依此規(guī)律循環(huán), 即可使各位數(shù)碼管顯示將要顯示的字符。雖然這些字符是在不同的時(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)

41、對鍵的 識別,非編碼鍵盤主要是由軟件來實(shí)現(xiàn)鍵盤的定義與識別。全編碼鍵盤能夠由 硬件邏輯自動(dòng)提供與鍵對應(yīng)的編碼,此外,一般還具有去抖動(dò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è)定的功能,鍵信息輸入 是與軟

42、件結(jié)構(gòu)密切相關(guān)的過程。對于一組鍵或一個(gè)鍵盤,總有一個(gè)接口電路與 cpu 相連。cpu 可以采用查詢或中斷方式了解有無將鍵輸入,并檢查是哪一 15 個(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ī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來。 其抖動(dòng)過程如圖 3.10 抖動(dòng)時(shí)間的長短與開關(guān)的機(jī)

43、械特性有關(guān),一般為 510 ms。在觸點(diǎn)抖動(dòng)期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次 按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按 鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測誤判,必須采取去抖動(dòng)措施。這一點(diǎn)可從硬件、軟 件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖,而當(dāng)鍵數(shù)較多時(shí),采用 軟件去抖。在硬件上可采用在鍵輸出端加 r-s 觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài) 觸發(fā)器構(gòu)成去抖動(dòng)電路。圖 3.11 是一種由 r-s 觸發(fā)器構(gòu)成的去抖動(dòng)電路,當(dāng) 觸發(fā)器一旦翻轉(zhuǎn),觸點(diǎn)抖動(dòng)不會(huì)對其產(chǎn)生任何影響。 圖 3-9 鍵觸點(diǎn)的機(jī)械抖動(dòng) 16 圖 3-10 雙穩(wěn)態(tài)去抖電路 電路工作過程如下

44、:按鍵未按下時(shí),a = 0,b = 1,輸出 q = 1。按鍵按下 時(shí),因按鍵的機(jī)械彈性作用的影響,使按鍵產(chǎn)生抖動(dòng)。當(dāng)開關(guān)沒有穩(wěn)定到達(dá) b 端時(shí),因與非門 2 輸出為 0 反饋到與非門 1 的輸入端,封鎖了與非門 1,雙穩(wěn) 態(tài)電路的狀態(tài)不會(huì)改變,輸出保持為 1,輸出 q 不會(huì)產(chǎn)生抖動(dòng)的波形。當(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)波形。當(dāng)開關(guān)穩(wěn)定到達(dá) a 端 時(shí),因 a = 0,b = 0,使 q =

45、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 左右(具體時(shí) 間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序后,再確認(rèn)該鍵電平是否仍保持閉 合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài)。同理,在檢 測到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而可消除抖動(dòng)的影響。 (4) 按鍵編碼 一組按鍵或鍵盤都要通過 i/o 口線查詢按鍵的開關(guān)狀態(tài)。根據(jù)鍵盤結(jié)構(gòu)的 不同,采用不同的編碼。無論有無編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成 為與累加器中數(shù)值相對應(yīng)的鍵值,以實(shí)

46、現(xiàn)按鍵功能程序的跳轉(zhuǎn)。 (5) 編制鍵盤程序 一個(gè)完善的鍵盤控制程序應(yīng)具備以下功能: 檢測有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機(jī)械觸點(diǎn)抖動(dòng) 的影響。 17 有可靠的邏輯處理辦法。每次只處理一個(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è)按鍵的工作不會(huì)影響其它 i/o 口線的狀態(tài)。獨(dú)立式 按鍵的典型應(yīng)用如圖 3.11 所示。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)

47、簡單,但 每個(gè)按鍵必須占用一根 i/o 口線,因此,在按鍵較多時(shí),i/o 口線浪費(fèi)較大, 不宜采用。 圖 3-11 獨(dú)立式按鍵電路 獨(dú)立式按鍵的軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根 i/o 口線的輸入狀 態(tài),如某一根 i/o 口線輸入為低電平,則可確認(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)

48、上,其結(jié)構(gòu)如 圖 3.13 所示。由圖可知,一個(gè) 44 的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)含有 16 個(gè)按 鍵的鍵盤,顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省 很多 i/o 口。 矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻 接到5v 上。當(dāng)無鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線 18 將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是 否按下的關(guān)鍵。然而,矩陣鍵盤中的行線、列線和多個(gè)鍵相連,各按鍵按下與 否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行 線、列線信號配合起來作適當(dāng)處理,才能確定閉合鍵的位置。 (

49、2) 矩陣式鍵盤按鍵識別按鍵的方法很多,掃描法識別按鍵的過程. 圖 3-12 矩陣鍵盤 按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時(shí)處在高電 平顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起 行電平的變化,因此,必須使所有列線處在低電平。只有這樣,當(dāng)有鍵按下時(shí), 該鍵所在的行電平才會(huì)由高電平變?yōu)殒I盤的編碼. (3)對于獨(dú)立式按鍵鍵盤,因按鍵數(shù)量少,可根據(jù)實(shí)際需要靈活編碼。對于 矩陣式鍵盤,按鍵的位置由行號和列號惟一確定,因此可分別對行號和列號進(jìn) 行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高 4 位是行號,低 4 位是列號。如 圖 3.12 中的 8 號鍵,它位于第 2

50、行,第 0 列,因此,其鍵盤編碼應(yīng)為 20h。采 用上述編碼對于不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對按鍵進(jìn)行處理。因 此,可采用依次排列鍵號的方式對按排進(jìn)行編碼。以圖 3.12 中的 44 鍵盤為 例,可將鍵號編碼為:01h、02h、03h、0eh、0fh、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í)掃描和中斷掃描。

51、 (5)編程掃描方式 編程掃描方式是利用 cpu 完成其它工作的空余時(shí)間,調(diào)用鍵盤掃描子程 序來響應(yīng)鍵盤輸入的要求。在低電平。cpu 根據(jù)行電平的變化,便能判定相應(yīng) 19 的行有鍵按下。8 號鍵按下時(shí),第 2 行一定為低電平。然而,第 2 行為低電平 時(shí),能否肯定是 8 號鍵按下呢?回答是否定的,因?yàn)?9、10、11 號鍵按下,同 樣會(huì)使第 2 行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都 處在低電平,可在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平, 另一時(shí)刻,讓下一列處在低電平,依此循環(huán),這種依次輪流每次選通一列的工 作方式稱為鍵盤掃描。采用鍵盤掃描后,再來觀察 8

52、號鍵按下時(shí)的工作過程, 當(dāng)?shù)?0 列處于低電平時(shí),第 2 行處于低電平,而第 1、2、3 列處于低電平時(shí), 第 2 行卻處在高電平,由此可判定按下的鍵應(yīng)是第 2 行與第 0 列的交叉點(diǎn),即 8 號 執(zhí)行鍵功能程序時(shí),cpu 不再響應(yīng)鍵輸入要求,直到 cpu 重新掃描鍵 盤為止。 鍵盤掃描程序一般應(yīng)包括以下內(nèi)容: 判別有無鍵按下; 鍵盤掃描取得閉合鍵的行、列值; 用計(jì)算法或查表法得到鍵值; 判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待; 將閉合鍵鍵號保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。 (6)定時(shí)掃描方式 定時(shí)掃描方式就是每隔一段時(shí)間對鍵盤掃描一次,它利用單片機(jī)內(nèi)部的定 時(shí)器產(chǎn)生一定時(shí)間(例如 10 m

53、s)的定時(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 工作效率,可采用中斷掃描工作方式。其工作過程如下:當(dāng)無鍵按下 時(shí),cpu 處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請求,cpu 轉(zhuǎn)去執(zhí)行鍵盤 掃描子程序,并識別鍵。 20 圖 3-13 中斷掃描鍵盤電路 圖 3-13 是一種簡易鍵盤接口電路,該鍵盤

54、是由 8031 p1 口的高、低字節(jié)構(gòu) 成的 44 鍵盤。鍵盤的列線與 p1 口的高 4 位相連,鍵盤的行線與 p1 口的低 4 位相連,因此,p1.4p1.7 是鍵輸出線,p1.0p1.3 是掃描輸入線。圖中的 4 輸 入與門用于產(chǎn)生按鍵中斷,其輸入端與各列線相連,再通過上拉電阻接至+5 v 電源,輸出端接至 8031 的外部中斷輸入端。具體工作如下:當(dāng)鍵盤無鍵按 下時(shí),與門各輸入端均為高電平,保持輸出端為高電平;當(dāng)有鍵按下時(shí),端為 低電平,向 cpu 申請中斷,若 cpu 開放外部中斷,則會(huì)響應(yīng)中斷請求,轉(zhuǎn)去 執(zhí)行鍵盤掃描子程序。 3.5 本章小結(jié) 本章對硬件電路的設(shè)計(jì)和電路所用到的芯片進(jìn)

55、行了介紹。主要是鍵盤控 制電路與顯示電路的原理和功能,并對 led 顯示原理進(jìn)行了介紹。下面將根據(jù) 以上說介紹的原理設(shè)計(jì)鍵盤控制及顯示硬件電路。 21 第第 4 章章 鍵盤控制及顯示硬件電路實(shí)現(xiàn)鍵盤控制及顯示硬件電路實(shí)現(xiàn) 本章將根據(jù)上面所介紹的原理及芯片功能設(shè)計(jì)鍵盤控制及顯示的硬件實(shí)現(xiàn) 電路,鍵盤控制及顯示電路的設(shè)計(jì)流程是:鍵盤按鍵按下,輸入該鍵盤鍵值, 經(jīng) cpu 處理后輸出,由 led 顯示器顯示所按的鍵值。 其工作原理:當(dāng)有鍵按下時(shí),cpu 將對整個(gè)鍵盤進(jìn)行掃描,確定按鍵位置, 讀取鍵值;cpu 再將所讀取的鍵值送到顯示部分,最后通過 led 顯示器顯示鍵 值。其總體框圖如圖,總電路原理

56、圖見(附錄 2)。 圖 4-1 電路總設(shè)計(jì)框圖 4.1 led 顯示電路設(shè)計(jì) 單片機(jī)并行 i/o 口數(shù)量總是有限的,有時(shí)并行口需作其他更重要的用途, 一般也不會(huì)用數(shù)量眾多的并行 i/o 口專門用來驅(qū)動(dòng)顯示電路,因此本設(shè)計(jì)采用 了 at89s52 的串行通信口靜態(tài)顯示。 at89s52 的串行通信口是一個(gè)功能強(qiáng)大的通信口,而且是相當(dāng)好用的通信 口,用于顯示驅(qū)動(dòng)電路再合適不過了,下面我們就根據(jù)這種需要設(shè)計(jì)一個(gè)用兩 個(gè)串行通信口線設(shè)計(jì)一個(gè) 8 位 led 顯示電路。下圖即是電路原理圖,我采用 at89s52 單片機(jī),同時(shí)用廉價(jià)易得的 74hc595 作為驅(qū)動(dòng)芯片。74hc595 是一個(gè) 8 位串入并

57、出的移位寄存器,其此處的功能是將 at89s52 串行通信口輸出的串 行數(shù)據(jù)譯碼并在其并口線上輸出,從而驅(qū)動(dòng) led 數(shù)碼管。使用串行口進(jìn)行 led 通信,程序編寫相當(dāng)簡單,只需將需顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待 串行中斷即可,程序見附錄,電路原理如圖 4-2。 22 圖 4-2 串行顯示電路 采用靜態(tài)顯示技術(shù),畫面穩(wěn)定,無雜點(diǎn),圖像效果清晰;視頻效果流暢。 led 顯示器是由發(fā)光二極管排列組成的一顯示器件,它采用低電壓掃描驅(qū)動(dòng), 同時(shí)還具有如下優(yōu)點(diǎn):耗電省,使用壽命長,成本低,亮度高,視角大,規(guī)格 品種多等,因此本設(shè)計(jì)采用 led 數(shù)碼顯示器作為顯示部分的重要元件。 4.2 獨(dú)立按鍵鍵

58、盤的電路設(shè)計(jì) 本設(shè)計(jì)采用的是 8 鍵獨(dú)立式鍵盤,掃描方法采用編程掃描方式,其鍵盤部 分電路 圖如下: 圖 4-3 獨(dú)立按鍵電路圖 本設(shè)計(jì)采用的是一種行掃描法,行掃描法又稱為逐行(或列)掃描查詢法, 是一種最常用的按鍵識別方法,如上圖所示鍵盤,其掃描過程如下: (1) 判斷鍵盤中有無鍵按下:將全部行線 y0-y3 置低電平,然后檢測列線 的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位 23 于低電平線與 4 根行線相交叉的 4 個(gè)按鍵之中。若所有列線均為高電平,則鍵 盤中無鍵按下。 (2) 判斷閉合鍵所在的位置:在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合 鍵的過程。其方法是:依

59、次將行線置為低電平,即在置某根行線為低電平時(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 輸出

60、全“1”,讀取 p1.0-p1.3 的狀態(tài),若 p1.0-p1.3 為全“0”,則無鍵閉合,否則有鍵閉合; 去除鍵抖動(dòng)。當(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)換成所定義的鍵值。 為了保

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論