畢業(yè)設(shè)計(論文)基于單片機的鍵盤控制設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于單片機的鍵盤控制設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于單片機的鍵盤控制設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于單片機的鍵盤控制設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于單片機的鍵盤控制設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘摘 要要 單片機即單片微型計算機(single-chip microcomputer),是集 cpu,ram,rom, 定時,計數(shù)和多種接口于一體的微控制器,廣泛應(yīng)用于各個領(lǐng)域1。 本論文設(shè)計的單片機鍵盤主要由 at89c51 單片機控制。該鍵盤控制系統(tǒng)是由單片 機最小系統(tǒng)及 led 顯示電路組成。使用單片機 c 語言進行編程,實現(xiàn)可設(shè)定本論文主 要介紹了鍵盤設(shè)計的軟、硬件部分的設(shè)計,以及在設(shè)計、調(diào)試過程中遇到的問題及解 決方案。 本設(shè)計包括硬件設(shè)計和軟件設(shè)計,其中的硬件設(shè)計包括時鐘電路,復(fù)位電路,4*4 矩陣式鍵盤電路和 led 數(shù)字顯示電路。其中需要選擇使用的掃描方式;為防鍵盤判斷 失誤

2、,導(dǎo)致實現(xiàn)多次按鍵按鍵的顯示問題,需要去抖動的處理,其顯示需要七段數(shù)碼 管顯示。 本設(shè)計的與眾不同之處在于其既能實現(xiàn)常規(guī)數(shù)字的顯示,同時還能實現(xiàn)作為簡單 的電子琴,不同的鍵表示不同的音符;還能夠?qū)崿F(xiàn)簡單計算功能。 本課題設(shè)計的鍵盤控制系統(tǒng)結(jié)構(gòu)簡單,造價成本低,功能齊全,具有很強的實用 性。 關(guān)鍵詞:關(guān)鍵詞: at89c51 單片機 矩陣式鍵盤 按鍵掃描 abstract the monolithic integrated circuit namely monolithic microcomputer (single-chip microcomputer), is collection cpu,

3、 ram, rom, fixed time, counting and many kinds of connections in a body micro controller.widely applies in each domain. the present paper design monolithic integrated circuit keyboard mainly controls by at89c51 monolithic integrated circuit.this keyboard control system is composed by the monolithic

4、integrated circuit smallest system and the led display circuit. the use monolithic integrated circuit c language carried on the programming, the realization may establish the present paper mainly to introduce the keyboard designed the software and hardware part design, as well as the question and th

5、e solution which in the design, the debugging process met13. this design including the hardware design and the software design, hardware design including the clock electric circuit, repositions the electric circuit, the 4*4 matrix form keyboard electric circuit and the led digita display circuit. ne

6、ed choice use scanning way; in order to guard against the keyboard judgment fault, causes the realization many times the pressed key demonstration question, needs to vibrate processing, its demonstration needs seven section of nixietube demonstrations. this design out of the ordinary place lies in i

7、t already to be able to realize the conventional numeral demonstration, meanwhile can realize takes the electric piano, the different key expresses the different note; also can realize the simple computation function14. this topic design keyboard control system structure is simple, the construction

8、cost cost is low, the function is complete, has the very strong usability. key words: at89c51list slice machine matrix form keyboard pressed key scanning 目目 錄錄 摘摘 要要.i 1 緒緒 論論 .1 1.1 at89c51 單片機設(shè)計意義和目的: .1 1.2 設(shè)計要求:.1 1.3 思路及步驟.1 1.3.1 思路及成果:.1 1.3.2 設(shè)計內(nèi)容步驟安排:.2 2 整體設(shè)整體設(shè)計計方案方案 .3 2.1 單片機的基本概念.3 2.2

9、單片機的特點.3 2.3 單片機的應(yīng)用領(lǐng)域.4 2.4 at89c51 的引腳封裝概述 .4 2.5 at89c51 單片機工作的基本時序 .6 2.6 at89c51 單片機的內(nèi)部結(jié)構(gòu)及存儲器配置:.6 2.6.1 at89c51 單片機的內(nèi)部結(jié)構(gòu).6 2.6.2 at89c51 單片機的存儲器配置.7 2.7 at89c51 單片機鍵盤設(shè)計方案論證 .8 3 系統(tǒng)硬件設(shè)計與實現(xiàn)系統(tǒng)硬件設(shè)計與實現(xiàn).10 3.1 系統(tǒng)原理圖.10 3.2 at89c51 單片機的最小系統(tǒng)設(shè)計 .10 3.2.1 最小系統(tǒng)設(shè)計.10 3.2.2 時鐘頻率電路的設(shè)計.11 3.2.3 復(fù)位電路的設(shè)計.11 3.3

10、 數(shù)碼管顯示電路.12 3.3.1 數(shù)碼管的結(jié)構(gòu).12 3.3.2 數(shù)碼管的設(shè)計選擇.13 3.4 鍵盤掃描電路的設(shè)計.13 3.4.1 鍵盤的作用.13 3.4.2 鍵盤系統(tǒng)設(shè)計.14 3.5 喇叭控制電路的設(shè)計.17 4 系統(tǒng)軟件的設(shè)計系統(tǒng)軟件的設(shè)計.18 4.1 程序流程框圖.18 4.2 系統(tǒng)工作原理.18 4.3 系統(tǒng)程序設(shè)計.19 4.3.1 程序設(shè)計.19 4.3.2 鍵盤掃描程序的設(shè)計.19 5 仿真及其調(diào)試仿真及其調(diào)試.21 5.1 鍵盤控制protenus軟件的仿真.21 5.2 軟件調(diào)試.21 結(jié)結(jié) 論論.22 致致 謝謝.23 參考文獻參考文獻.24 附附 錄錄.25

11、1 緒緒 論論 1.11.1 at89c51 單片機單片機設(shè)計意義設(shè)計意義和目的:和目的: 隨著計算機及電子技術(shù)的飛躍發(fā)展,單片機也在不斷更新?lián)Q代,并成為電子系統(tǒng) 中進行數(shù)據(jù)采集,信息處理,通信聯(lián)絡(luò)和實施控制的重要器件。單片機技術(shù)已滲入到 了各個領(lǐng)域,在智能儀器儀表,工業(yè)監(jiān)測控制,電力電子,汽車電子等方面得到了廣 泛的應(yīng)用,并取得了巨大的成果。在今后若干年,mcs-51 單片機的應(yīng)用仍將占主要地 位,仍然是我國單片機應(yīng)用領(lǐng)域的主流機型?,F(xiàn)今各個領(lǐng)域的工程技術(shù)人員都應(yīng)掌握 單片機應(yīng)用技術(shù)。 單片機鍵盤是單片機系統(tǒng)設(shè)計中一種主要的信息輸入接口,其合理的設(shè)計,不僅 可以節(jié)省系統(tǒng)的設(shè)計成本,更可使儀器

12、設(shè)備的操作變得更為簡單、方便,很大程度上 提高系統(tǒng)綜合性能。 隨著就業(yè)形勢日趨嚴峻,我們大學(xué)生的動手能力、實踐能力和綜合素質(zhì)越來越受 到學(xué)校和用人單位的重視。在我們大學(xué)畢業(yè)時,必要的設(shè)計無疑是培養(yǎng)和鍛煉動手能 力、實踐能力和綜合素質(zhì)的一個重要環(huán)節(jié),這次關(guān)于單片機的鍵盤設(shè)計是對我們所學(xué) 知識的一次綜合實踐,是對老師教學(xué),我們學(xué)習(xí)成果的一次檢驗,也是我們即將畢業(yè) 面臨就業(yè)對自己就業(yè)信心的考驗,對自己就業(yè)實力的測試。也使我們對 mcs-51 單片機 的主要技術(shù)深入理解,更深入掌握其原理及接口技術(shù)的應(yīng)用,真正自己動手實踐,做 到能靈活應(yīng)用2。 1.21.2 設(shè)計要求:設(shè)計要求: 單片機具有集成度高,功

13、能強,結(jié)構(gòu)簡單,應(yīng)用靈活,可靠性高等特點。在工業(yè) 控制,機電一體化,通信終端,智能儀器儀表等諸多領(lǐng)域中得到了廣泛應(yīng)用。本設(shè)計 基于 atmel 公司的 89c51 單片機,結(jié)合 c 語言控制的特點,實現(xiàn)鍵盤掃描的相關(guān)功能。 通過原理圖設(shè)計,實現(xiàn)基本功能模塊的組合,從而驗證設(shè)計的可行性與可靠性。 掌握用單片機制作的鍵盤的原理及應(yīng)用,熟練的學(xué)習(xí) atmel 公司所用的 at89c51 系列。畢業(yè)設(shè)計的要求體現(xiàn)于整個工作的各個階段中,可根據(jù)課題的特點有 所側(cè)重,但應(yīng)該注意一下幾點: 1.根據(jù)課題任務(wù)制定合理、可行的工作計劃; 2.進行必要的調(diào)研和資料搜集、文獻閱讀; 3.制定適當(dāng)?shù)募夹g(shù)方案,并通過與

14、其它方案的比較加以論證; 4.獨立完成系統(tǒng)或模塊的設(shè)計,軟件設(shè)計要符合軟件工程規(guī)范,硬件設(shè)計符合原理 表示、線路圖紙和工藝要求的各種規(guī)范; 5.制定系統(tǒng)(模塊)的測試方法,并根據(jù)完整的測試數(shù)據(jù)對系統(tǒng)(模塊)的性能指 標(biāo)做出分析和評價; 1.31.3 思路及步驟思路及步驟 1.3.11.3.1 思路及成果:思路及成果: 本設(shè)計包括硬件設(shè)計和軟件設(shè)計,其中的硬件設(shè)計包括時鐘電路,復(fù)位電路,4*4 矩陣式鍵盤電路和 led 數(shù)字顯示電路。其中需要選擇使用的掃描方式;為防鍵盤判斷 失誤,導(dǎo)致實現(xiàn)多次按鍵按鍵的顯示問題,需要去抖動的處理,其顯示需要七段數(shù)碼 管顯示。 本設(shè)計的與眾不同之處在于其既能實現(xiàn)常

15、規(guī)數(shù)字的顯示,同時還能實現(xiàn)作為電子 琴,不同的鍵表示不同的音符;還能夠?qū)崿F(xiàn)簡單計算功能。 1.3.21.3.2 設(shè)計內(nèi)容步驟安排:設(shè)計內(nèi)容步驟安排: 1、大量查閱單片機資料,明確設(shè)計要求,確定設(shè)計方案。 2、進行硬件設(shè)計,繪制原理圖。 3、進行軟件設(shè)計,電路板實物的完成。 4、論文撰寫、外文翻譯,完成答辯。 2 2 整體設(shè)計方案整體設(shè)計方案 2.12.1 單片機的基本概念單片機的基本概念 圖 2-1 單片機組成框圖 單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管它的大部分功能集成 在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:cpu、內(nèi)存、內(nèi) 部和外部總線系統(tǒng)。單片機是將中

16、央處理器,隨機存儲器。只讀存儲器,定時器芯片 和 i/o 接口電路集成于一個芯片上的微控制器3。 單片機也被稱為微控制器(microcontroler),是因為它最早被用在工業(yè)控制領(lǐng)域。 單片機由芯片內(nèi)僅有 cpu 的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍 設(shè)備和 cpu 集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復(fù)雜的而對提及要 求嚴格的控制設(shè)備當(dāng)中。intel 的 z80 是最早按照這種思想設(shè)計出的處理器,從此以 后,單片機和專用處理器的發(fā)展便分道揚鑣。 單片機是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特 殊的獨特的一些功能,這是別的器件需要費很大力氣

17、才能做到的,有些則是花大力氣 也很難做到的。一個不是很復(fù)雜的功能要是用美國 50 年代開發(fā)的 74 系列,或者 60 年 代的 cd4000 系列這些純硬件來搞定的話,電路一定是一塊大 pcb 板!但是如果要是 用美國 70 年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機是通 過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性4! 目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤 跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè) 自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 ic 卡,民用豪華轎車的安全 保障系統(tǒng),錄象機、攝

18、象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等, 這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因 此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的科學(xué)家、工程 師。 2.22.2 單片機的特點單片機的特點 1、控制性能和可靠性高 實時控制功能特別強,其 cpu 可以對 i/o 端口直接進行操作,位操作能力更是其 它計算機無法比擬的。另外,由于 cpu、存儲器及 i/o 接口集成在同一芯片內(nèi),各部 件間的連接緊湊,數(shù)據(jù)在傳送時受干擾的影響較小,且不易受環(huán)境條件的影響,所以 單片機的可靠性非常高。 近期推出的單片機產(chǎn)品,內(nèi)部集成有高速 i/o 口、a

19、dc、pwm、wdt 等部件, 并在低電壓、低功耗、串行擴展總線、控制網(wǎng)絡(luò)總線和開發(fā)方式(如在系統(tǒng)編程 isp) 等方面都有了進一步的增強。 2、體積小、價格低、易于產(chǎn)品化 單片機芯片即是一臺完整的微型計算機,對于批量大的專用場合,一方面可以在 眾多的單片機品種間進行匹配選擇;同時還可以專門進行芯片設(shè)計,使芯片的功能與 應(yīng)用具有良好的對應(yīng)關(guān)系;在單片機產(chǎn)品的引腳封裝方面,有的單片機引腳已減少到 8 個或更少。 從而使應(yīng)用系統(tǒng)的印制板減小、接插件減少、安裝簡單方便5。 2.32.3 單片機的應(yīng)用領(lǐng)域單片機的應(yīng)用領(lǐng)域 單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能 化管理及

20、過程控制等領(lǐng)域,大致可分如下幾個范疇: 1.在智能儀器儀表上的應(yīng)用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點, 廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕 度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采 用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電 路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能 化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。

21、 3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、 電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不 在。 4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計 算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn) 了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列 車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。 5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸

22、機,各種分析儀,監(jiān)護儀, 超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛 的用途6。 2.42.4 at89c51at89c51 的引腳封裝概述的引腳封裝概述 圖 2-2 89c51 的引腳封裝 1、主電源引腳、主電源引腳: vcc(40 腳):接+5 v 電源正端。 vss(20 腳):接+5 v 電源地端 2 2、時鐘電路引腳:、時鐘電路引腳: 外接晶體振蕩器,不能超過 24m;需加微調(diào)電容,一般為 30pf; xtal1:接外部晶振和微調(diào)電容的一端,在單片機內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的 反向放大器的輸入端。當(dāng)采用外部振蕩器時,該引腳

23、接收振蕩器的信號,即把此信號 直接接到內(nèi)部振蕩器的輸入端。 xtal2:接外部晶振和微調(diào)電容的另一端,在單片機內(nèi)部,它是構(gòu)成片內(nèi)振蕩器 的反向放大器的輸出端。當(dāng)采用外部振蕩器時,此引腳應(yīng)懸空。 3 3、復(fù)位電路引腳、復(fù)位電路引腳 rst/vpd:rst 是復(fù)位信號輸入端,高電平有效。當(dāng)此輸入端保持 2 個機器周期的 高電平時,就可以完成復(fù)位操作。rst 引腳的第二功能是備用電源的輸入端。 單片機在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán) 狀態(tài)等情況下都需要復(fù)位。復(fù)位作用是使 cpu 以及其他功能部件,如串行口,中斷都 恢復(fù)到一個確定初始狀態(tài),并從這個狀態(tài)開始工作。 復(fù)位電

24、路有兩種:上電、按鈕復(fù)位,考慮到各部件影響,采用按鈕復(fù)位,當(dāng)電阻 給電容充電,電容的電壓為高電平,當(dāng)按下按鈕時芯片復(fù)位腳近似低電平,于是芯片 復(fù)位。 4 4、控制信號引腳:、控制信號引腳: ale/prog:(address latch enable/ programming)地址鎖存允許信號端,當(dāng)單片機上 電正常工作后,ale 引腳不斷向外輸出正弦脈沖信號,此頻率為振蕩器頻率的 1/6。cpu 訪問外部存儲器時,ale 作為鎖存低 8 位地址的控制信號。此引腳的第二功 能 prog 作為 8751 編程脈沖輸入端使用。 psen:(program store enable)在訪問片外存儲器時

25、,此端定時輸出負脈沖作為片 外存儲器的選通信號。 ea/vpp:(enable address/voltage pulse of programming)當(dāng) ea 接高電平時,cpu 訪問片內(nèi) rom,并執(zhí)行內(nèi)部程序存儲器中的指令,但當(dāng) pc(程序計數(shù)器)的值超過 4k 時,將自動轉(zhuǎn)去執(zhí)行片外存儲器內(nèi)的程序。當(dāng) ea 腳接低電平時,cpu 只訪問片外 rom 并執(zhí)行外部程序存儲器中的指令,而不管是否有片內(nèi)程序存儲器。vpp 是對 8751 片內(nèi) rom 固化程序時,作為施加較高編程電壓(12v21v)的輸入端7。 5 5、輸入輸出引腳:、輸入輸出引腳: p0-p3p0-p3:4 個 8 位雙向

26、輸入輸出端口,每個端口都有鎖存器、輸出驅(qū)動器和輸入緩 沖器。4 個端口都可以做輸入輸出口使用,其中,p0 和 p2 通常用于對外部存儲器的訪 問。在這種方式下,把 p0 口作為地址/數(shù)據(jù)總線使用,分時輸出外部存儲器的地址和 傳送 8 位數(shù)據(jù)。當(dāng)擴充外部存儲器的地址為 16 位時,p2 口作為地址總線的高 8 位地址 使用。 (1)p0 口(39-32 腳):p0.0-p0.7 統(tǒng)稱為 p0 口。在不接片外存儲器與不擴展 i/o 口時, 可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲器或擴展 i/o 口時,p0 口分時復(fù)用為低 8 位地址總線和雙向數(shù)據(jù)總線。 (2) p1 口(1-8 腳):p1.0-

27、p1.7 統(tǒng)稱為 p1 口,可作為準(zhǔn)雙向 i/o 口使用。對于 52 子 系列,p1.0 與 p1.1 還有第二功能:p1.0 可用作定時器/計數(shù)器 2 的計數(shù)脈沖輸入端 t2,p1.1 可用作定時器/計數(shù)器 2 的外部控制端 t2ex。 (3) p2 口(21-28 腳):p2.0-p2.7 統(tǒng)稱為 p2 口,一般可作為準(zhǔn)雙向 i/o 口使用;在 接有片外存儲器或擴展 i/o 口且尋址范圍超過 256 字節(jié)時,p2 口用作高 8 位地址總線。 (4) p3 口(10-17 腳):p3.0-p3.7 統(tǒng)稱為 p3 口。除作為準(zhǔn)雙向 i/o 口使用外,還可 以將每一位用于第二功能,而且 p3 口

28、的每一條引腳均可獨立定義為第一功能的輸入輸 出或第二功能7。 2.52.5 at89c51 單片機單片機工作的基本時序工作的基本時序 機器周期和指令周期機器周期和指令周期: (1) 振蕩周期: 也稱時鐘周期, 是指為單片機提供時鐘脈沖信號的振蕩源的周期。 (2) 狀態(tài)周期: 每個狀態(tài)周期為時鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。 (3) 機器周期: 一個機器周期包含 6 個狀態(tài)周期 s1s6, 也就是 12 個時鐘周期。 在一個機器周期內(nèi), cpu 可以完成一個獨立的操作。 (4) 指令周期: 它是指 cpu 完成一條操作所需的全部時間。 每條指令執(zhí)行時間都 是有一個或幾個機器周期組

29、成。mcs - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周 期指令。 2.62.6 at89c51 單片機單片機的內(nèi)部結(jié)構(gòu)及存儲器配置的內(nèi)部結(jié)構(gòu)及存儲器配置: 2.6.12.6.1 at89c51at89c51 單片機的內(nèi)部結(jié)構(gòu)單片機的內(nèi)部結(jié)構(gòu) 圖 2-3 mcs-51 的內(nèi)部結(jié)構(gòu)框圖 cpu:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器; ram:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù); rom:用以存放程序、一些原始數(shù)據(jù)和表格; i/o 口:四個 8 位并行 i/o 口,既可用作輸入,也可用作輸出; t/c:兩個定時/記數(shù)器,既可以工作在

30、定時模式,也可以工作在記數(shù)模式。 2.6.22.6.2 at89c51at89c51 單片機的存儲器配置單片機的存儲器配置 (b) 圖 2-4 單片機的內(nèi)部存儲器配置 從用戶的角度存儲器分 3 個邏輯地址空間: (1)片內(nèi)外統(tǒng)一編址的 64kb 程序存儲器地址空間 0000hffffh 即(a)圖; (2)256b 的片內(nèi)數(shù)據(jù)存儲器地址空間 00hffh(包括低 128b 的內(nèi)部 ram 地址 00h7fh 和高 128b 的特殊功能寄存器地址空間)即(b)圖; (3)64kb 的外部數(shù)據(jù)存儲器或擴展 i/o 接口地址空間 0000hffffh (4)畫出 ram 的組成 ram 共有 256

31、 個單元,按功能分為兩部分低 128 單元(單元地址 00h7fh)和 高 128 單元(單元地址 80hffh) 。其中高 128 單元是供給專用寄存器使用,因這些 寄存器的功能已作為專門規(guī)定故此稱之為特殊功能寄存器 sfr11 個 sfr 有位尋址作 用,而且要說明低 128 單元是單片機的真正 ram 存儲器8。 表 2.1 ram 的組成 30h7fh通用 ram 區(qū) 20h2fh位尋址區(qū)(00h7fh) 18h1fh工作寄存器 3 區(qū)(r7r0) 10h17h工作寄存器 2 區(qū)(r7r0) 08h0fh工作寄存器 1 區(qū)(r7r0) 00h07h工作寄存器 0 區(qū) (r7r0) 低

32、128 單元是單片機的真正 ram 存儲器,按其用途劃分為三個區(qū)域: 通用寄存器區(qū) 通用寄存器為 cpu 提供了就近數(shù)據(jù)存儲的便利,有利于提高單片機的運算速度。 此外,使用通用存儲器還能提高程序編制的靈活性,因此在單片機的應(yīng)用編程中應(yīng)充 分利用這些寄存器,以簡化程序設(shè)計,提高程序運行速度。 位尋址區(qū) 內(nèi)部 ram 的 20h2fh 單元,即可作為一般 ram 單元使用,進行字節(jié)操作,也 可以對單元中每一位進行位操作,因此把該區(qū)稱之為位尋址區(qū)。 工作寄存區(qū) 用戶存儲數(shù)據(jù)的。 2.72.7 at89c51 單片機鍵盤設(shè)計方案論證單片機鍵盤設(shè)計方案論證 (1)此鍵盤利用 at89c51 單片機的 p

33、1 口接 4*4 矩陣式鍵盤,以 p1.0p1.3 作輸 入線,以 p1.4p1.7 作輸出線;在數(shù)碼管上顯示每個按鍵的“0f”序號。其中需要接 電阻起到電路保護作用。 圖 2-5 鍵盤設(shè)計 (2)以 37,38,39 引腳接其顯示電路,以 22 號引腳接其發(fā)聲電路,以起到報警或 者提示作用。 (3)本設(shè)計既能實現(xiàn)常規(guī)數(shù)字的顯示,同時還能實現(xiàn)作為電子琴,不同的鍵表示 不同的音符;還能夠?qū)崿F(xiàn)簡單計算功能。其中,鍵 c,d,e,f 分別作為計算功能中的加減 乘除運算符,而 a 作為復(fù)位鍵,b 則作為數(shù)字計算及電子琴之間的功能切換按鈕。 (4)我們利用單片機可以用很少元件實現(xiàn)相同功能,而且單片機性能

34、穩(wěn)定,可操 作性強??梢灾挥?p0 口連接上拉電阻,完成驅(qū)動 led 的功能,利用 p3 口的 xtal1 晶振電路,xtal2 接移位脈沖做時鐘信號。利用單片機程序判斷按鍵是否有效,利用 74ls164 移位寄存 8 段數(shù)碼管,實現(xiàn)按鍵數(shù)字顯示,當(dāng)切換鍵盤控制功能時啟動蜂鳴 器,同時發(fā)光二極管發(fā)光。 通過單片機實現(xiàn)功能可以更人性化,只需單電源供電更方便,容易實現(xiàn)。電路結(jié) 構(gòu)簡單,外圍擴展的電路不是很多,鍛煉我們所學(xué)的知識應(yīng)用到現(xiàn)實生活當(dāng)中。為我 們提供實踐的機會。單片機是電子專業(yè)發(fā)展的方向,更好的使用單片機可以是我們的 產(chǎn)品小型化,使用更方便,性能更穩(wěn)定,功能更齊全,所以我們選用單片機加一定

35、的 外圍設(shè)備實現(xiàn)本次課程設(shè)計的要求8。 3 3 系統(tǒng)硬件設(shè)計與實現(xiàn)系統(tǒng)硬件設(shè)計與實現(xiàn) 3.13.1 系統(tǒng)原理圖系統(tǒng)原理圖 圖 3-1 設(shè)計原理圖 3.23.2 at89c51 單片機單片機的最小系統(tǒng)設(shè)計的最小系統(tǒng)設(shè)計 3.2.13.2.1 最小系統(tǒng)設(shè)計最小系統(tǒng)設(shè)計 圖 3-2 51 單片機的最小系統(tǒng)圖 3.2.23.2.2 時鐘頻率電路的設(shè)計時鐘頻率電路的設(shè)計 單片機必須在時鐘的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要 外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工 作速度。 圖 3-3 外部振蕩源電路 一般選用石英晶體振蕩器。此電路在加電大約延遲

36、10ms 后振蕩器起振,在 xtal2 引腳產(chǎn)生幅度為 3v 左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。 電路中兩個電容 c1,c2 的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行 微調(diào)。c1,c2 的典型值為 30pf。 單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時 鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用 fosc 表示。如時鐘頻 率為 12mhz,即 fosc=12mhz,則時鐘周期為 1/12s。本設(shè)計選用 f=11.0592mhz。 3.2.33.2.3 復(fù)位電路的設(shè)計復(fù)位電路的設(shè)計 1、復(fù)位方式比較、復(fù)位方式比

37、較 使 cpu 進入初始狀態(tài),從 0000h 地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。 從實現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位9。 硬件復(fù)位必須通過 cpu 外部的硬件電路給 cpu 的 reset 端加上足夠時間的高電 位才能實現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后, 各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件 復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為 不少編碼人員所忽視。 軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從 0000h 地址開始執(zhí)行。對各專用寄存器的

38、復(fù)位操作是容易的,也沒有必要完全模擬, 可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘, 因為它沒有明確的位地址可供編程軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進行 的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將 阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清 除中斷激活標(biāo)志的重要性。 2、復(fù)位方式選擇、復(fù)位方式選擇 為便于人工操作,及令設(shè)計更人性化。本設(shè)計選擇手動硬件復(fù)位方式,因而加上 手動復(fù)位按鈕,其設(shè)計原理圖如圖所示, 圖 3-4 復(fù)位電路 3.33.3 數(shù)碼管顯示電路數(shù)碼管顯示電路 3.3.13.3.1

39、 數(shù)碼管的結(jié)構(gòu)數(shù)碼管的結(jié)構(gòu) 數(shù)碼管由 7 個發(fā)光二極管組成,行成一個日字形,它門可以共陰極,也可以共陽極.通 過解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極而形成相應(yīng)的字,這就是它的工作原理. 基本的半導(dǎo)體數(shù)碼管是由 7 個條狀的發(fā)光二極管(led)按圖 1 所示排列而成的, 可實現(xiàn)數(shù)字09及少量字符的顯示。另外為了顯示小數(shù)點,增加了 1 個點狀的發(fā)光 二極管,因此數(shù)碼管就由 8 個 led 組成,我們分別把這些發(fā)光二極管命名為 a,b,c,d,e,f,g,dp。 其中數(shù)碼管的顯示可以分為兩種:靜態(tài)顯示和動態(tài)顯示。靜態(tài) 顯示的段選位和位選位均單獨連接,因此占用的 i/o 接口多,無法擴展多個數(shù)碼管,

40、在這種采用這種方式,必須要給 led 恒定的電壓,要求電壓一直保持,所以一般在 led 和單片機之間加鎖存器,這種顯示方式亮度高,編程較簡單,結(jié)構(gòu)清晰,管理也 較簡單,占用的 cpu 時間少。 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng) 用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的 8 個顯示筆劃 a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的公共端 com 增加位選通控制 電路,位選通由各自獨立的 i/o 線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收 到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機對位選通 com 端 電路的控制,所以我們只要

41、將需要顯示的數(shù)碼管選通控制打開,該位就顯示出字形, 沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的 com 端,就使各個數(shù)碼 管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為 12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并 非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會 有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的 i/o 端口,而且功 耗更低10。 從電路上,按數(shù)碼管的接法不同又分為共陰和共陽兩種。圖1-1 是共陰和共陽極 數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而

42、已。其數(shù) 碼管的外形如下圖所示: 圖3-5 數(shù)碼管的共陰和共陽極接法 共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。 共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極 com 接到地線 gnd 上,當(dāng)某一字段發(fā)光二極管的陽 極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮 共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管。 共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極 com 接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電 平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。 3.3.2 數(shù)碼管的設(shè)計選擇數(shù)碼管的設(shè)計選擇 由于本設(shè)計比較簡

43、單,為便于操作,及功能實現(xiàn)的簡易化,設(shè)計中只需選用靜態(tài) 顯示方式,并且是共陰極接法。也就是只要是 其中某一字段發(fā)光二極管的陽極為高電 平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。 3.43.4 鍵盤掃描電路的設(shè)計鍵盤掃描電路的設(shè)計 3.4.13.4.1 鍵盤的作用鍵盤的作用 鍵盤是人與微機系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在 文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤 掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻 的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引 起

44、誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵 盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜, 一般用在對硬件電路要求不高的簡單電路中。 矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多, 而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于 多按鍵電路。 其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時 重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾 ms,而我們 按鍵的時間一般遠遠大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間 (這里我們

45、取 10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。 3.4.23.4.2 鍵盤系統(tǒng)設(shè)計鍵盤系統(tǒng)設(shè)計 首先,確定鍵盤編碼方案:采用編碼鍵盤或非編碼鍵盤。隨后,確定鍵盤工作方 式:采用中斷或查詢方式輸入鍵操作信息。然后,設(shè)計硬件電路。非編碼鍵盤系統(tǒng)中, 鍵閉合和鍵釋放的信息的獲取,鍵抖動的消除,鍵值查找及一些保護措施的實施等任 務(wù),均由軟件來完成11。 1、非編碼鍵盤的鍵輸入程序應(yīng)完成的基本任務(wù) 1.監(jiān)測有無鍵按下;鍵的閉合與否,反映在電壓上就是呈現(xiàn)出高電平或低電平,所以 通過電平的高低狀態(tài)的檢測,便可確認按鍵按下與否。 2.判斷是哪個鍵按下。 3.完成鍵處理任務(wù)。 2、從

46、電路或軟件的角度應(yīng)解決的問題 1、消除抖動影響。鍵盤按鍵所用開關(guān)為機械彈性開關(guān),利用了機械觸點的合、斷作 用。由于機械觸點的的彈性作用,一個按鍵開關(guān)在閉合和斷開的瞬間均有一連串的抖 動,波形如下: 閉合 穩(wěn)定 鍵按下 前沿抖動 后沿抖動 圖 3-6 按鍵觸點的機械抖動 抖動時間的長短由按鍵的機械特性決定,一般為 5-10ms,這是一個很重要的參數(shù)。 抖動過程引起電平信號的波動,有可能令 cpu 誤解為多次按鍵操作,從而引起誤處理。 為了確保 cpu 對一次按鍵動作只確認一次按鍵,必須消除抖動的影響。按鍵的消抖, 通常有軟件,硬件兩種消除方法。 硬件消抖:只適用于鍵的數(shù)目較少的情況。 軟件消抖:

47、如果按鍵較多,硬件消抖將無法勝任,常采用軟件消抖。通常采用軟 件延時的方法:在第一次檢測到有鍵按下時,執(zhí)行一段延時 10ms 的子程序后,再確認 電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平,則確認真正有鍵按下,進行 相應(yīng)處理工作,消除了抖動的影響。(這種消除抖動影響的軟件措施是切實可行的。 ) 2.采取串鍵保護措施。串鍵:是指同時有一個以上的鍵按下,串鍵會引起 cpu 錯 誤響應(yīng)。通常采取的策略:單鍵按下有效,多鍵同時按下無效。 3.處理連擊。連擊:是一次按鍵產(chǎn)生多次擊鍵的效果。要有對按鍵釋放的處理,為 了消除連擊,使得一次按鍵只產(chǎn)生一次鍵功能的執(zhí)行(不管一次按鍵持續(xù)的時間多長, 僅采樣

48、一個數(shù)據(jù))。否則的話,鍵功能程序的執(zhí)行次數(shù)將是不可預(yù)知,由按鍵時間決 定。連擊是可以利用的。連擊對于用計數(shù)法設(shè)計的多功能鍵特別有效。 三、鍵盤工作方式 單片及應(yīng)用系統(tǒng)中,鍵盤掃描只是 cpu 的工作內(nèi)容之一。cpu 忙于各項任務(wù)時,如何 兼顧鍵盤的輸入,取決于鍵盤的工作方式??紤]儀表系統(tǒng)中 cpu 任務(wù)的份量,來確定 鍵盤的工作方式。 鍵盤的工作方式選取的原則是:既要保證能及時響應(yīng)按鍵的操作,又不過多的占用 cpu 的工作時間。 鍵盤的工作方式有:查詢方式(編程掃描,定時掃描方式)、中斷掃描方式。 四、鍵盤電路結(jié)構(gòu) (一)獨立式按鍵接口設(shè)計 獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根

49、i/o 口線,每根 i/o 口線 的按鍵工作狀態(tài)不會影響其他 i/o 口線上的工作狀態(tài)。因此,通過檢測輸入線的電平 狀態(tài)可以很容易判斷哪個按鍵被按下了。 優(yōu)點:電路配置靈活,軟件結(jié)構(gòu)簡單。 缺點:每個按鍵需占用一根 i/o 口線,在按鍵數(shù)量較多時,i/o 口浪費大,電路結(jié) 構(gòu)顯得復(fù)雜。 因此,此鍵盤是用于按鍵較少或操作速度較高的場合。 也可以用擴展 i/o 口搭接獨立式按鍵接口電路,可采用 8255 擴展 i/o 口,用三態(tài) 緩沖器擴展。這兩種配接方式,都是把按鍵當(dāng)作外部 ram 某一工作單元的位來對待, 通過讀片外 ram 的方法,識別按鍵的工作狀態(tài)。 上電路中獨立式按鍵電路,各按鍵開關(guān)均采

50、用了上拉電阻,是為了保證在按鍵斷 開時,各 i/o 有確定的高電平。如輸入口線內(nèi)部已有上拉電阻,則外電路的上拉電阻 可省去。 (二)矩陣式鍵盤接口設(shè)計 矩陣式鍵盤適用于按鍵數(shù)量較多的場合,由行線和列線組成,按鍵位于行列的交 叉點上。節(jié)省 i/o 口。 單片機系統(tǒng)中,若使按鍵較多時,通常采用矩陣式(也稱行列式)鍵盤。 1矩陣式鍵盤的結(jié)構(gòu)及原理 矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上,其結(jié)構(gòu)如圖 7.5 所 示。 0123 4567 8 1213 910 1415 11 +5 v 0 1 2 3 0123 圖 3-7 矩陣式鍵盤結(jié)構(gòu)圖 由圖可知,一個 44 的行、列結(jié)構(gòu)可以構(gòu)成一個

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

52、中 8 號鍵的識 別為例來說明掃描法識別按鍵的過程。 按鍵按下時,與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時處在高電平,顯 然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會引起行線電平的變化, 因此,必須使所有列線處在低電平,只有這樣,當(dāng)有鍵按下時,該鍵所在的行電平才 會由高電平變?yōu)榈碗娖健pu 根據(jù)行電平的變化,便能判定相應(yīng)的行有鍵按下。8 號 鍵按下時,第 2 行一定為低電平,然而,第 2 行為低電平時,能否肯定是 8 號鍵按下 呢?回答是否定的,因為 9、10、11 號鍵按下同樣使第 2 行為低電平。為進一步確定 具體鍵,不能使所有列線在同一時刻都處在低電平,可在某一時刻只讓

53、一條列線處于 低電平,其余列線均處于高電平,另一時刻,讓下一列處在低電平,依此循環(huán),這種 依次輪流每次選通一列的工作方式稱為鍵盤掃描。采用鍵盤掃描后,再來觀察 8 號鍵 按下時的工作過程,當(dāng)?shù)?0 列處于低電平時,第 2 行處于低電平,而第 1、2、3 列處 于低電平時,第 2 行卻處在高電平,由此可判定按下的鍵應(yīng)是第 2 行與第 0 列的交叉 點,即 8 號鍵。 結(jié)論:綜合考慮各項設(shè)計標(biāo)準(zhǔn)及對其優(yōu)越性的比較,從而本設(shè)計采用矩陣式鍵盤, 只需用八個接口便能實現(xiàn)十六個鍵值的顯示,能節(jié)省更多的接口。 其原理圖如下圖所示: 圖 3-8 4*4 矩陣式鍵盤設(shè)計圖 3.53.5 喇叭控制電路的設(shè)計喇叭控

54、制電路的設(shè)計 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某 個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就 能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸 出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音12。 但是由于單片機的電壓較低,不能直接驅(qū)動喇叭,因而應(yīng)采用三極管對其信號先 進行放大,再驅(qū)動喇叭。 本設(shè)計中若要實現(xiàn)鍵盤的電子琴的簡單功能,就要用喇叭實現(xiàn)不同聲音的轉(zhuǎn)換及 確認,而串聯(lián)上一電阻起到保護電路的作用。串聯(lián)一發(fā)光二極管是用來指示鍵盤正在 實現(xiàn)的電子琴功能。 圖 3-9 提示發(fā)聲模塊原理圖 4 4

55、系統(tǒng)軟件的設(shè)計系統(tǒng)軟件的設(shè)計 4.14.1 程序流程框圖程序流程框圖 流程圖是使用圖形表示算法的思路是一種極好的方法,不論采用何種程序設(shè)計方 法,程序總體結(jié)構(gòu)確定后,一般以程序流程圖的形式對其進行描述??傮w框圖中的各 個子模塊或各個子任務(wù)也應(yīng)該結(jié)合具體的教學(xué)模型和算法畫出較詳細的程序流程圖, 供后面編寫具體程序和閱讀程序使用。 流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的類型,圖框中的 文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。流程圖的基本結(jié)構(gòu)為順序 結(jié)構(gòu),分支結(jié)構(gòu)(又稱選擇結(jié)構(gòu)) ,循環(huán)結(jié)構(gòu)。為便于識別,繪制流程圖的習(xí)慣做法是: 方框表示:要執(zhí)行的處理(process)

56、 平行四邊型表示:代表資料輸入(input) 不規(guī)則圖形代表資料輸出(output)或報表輸出(print) 菱形表示:決策或判斷(例如:if.then.else) 圖 4-1 鍵盤掃描程序框圖 4.24.2 系統(tǒng)工作原理系統(tǒng)工作原理 (1)首先賦予顯示緩沖初始值00 00 00,并把數(shù)據(jù)存儲單元清零。 (2)主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予 23h 單元,如 是第二次輸入數(shù)字,則把第一次值乘十后與第二次值相加,結(jié)果存儲到 23h 單元, 并 r4 計數(shù) 2 次,表示已輸入兩位,掃描鍵值時就不在賦值和顯示。等待運算符號的 按下,按下等于號就直接與零計算并顯示,如加減乘除

57、就 r5 加一 并把 r4 清零,表 示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清零鍵則不管在任何 情況下都清零,相當(dāng)與軟復(fù)位。 (3)在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,并選擇,由于本任務(wù)是兩位四則 運算,只有乘法中結(jié)果會超出 ffh 的范圍,在此就是選擇處理方式,超出范圍則跳 過數(shù)據(jù)顯示轉(zhuǎn)換子程序,未超出則調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,兩種選擇都是要把值 轉(zhuǎn)換為七段碼。 (4)調(diào)用數(shù)碼管動態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)。 4.34.3 系統(tǒng)程序設(shè)計系統(tǒng)程序設(shè)計 4.3.14.3.1 程序設(shè)計程序設(shè)計 我們組所設(shè)計的搶答器的程序采用的是 c 程序設(shè)計,c 語言的顯著特點是用二進

58、制來編寫程序,程序的各個部分除了必要的信息交流外彼此之間相互獨立。這種結(jié)構(gòu)化 方式可使程序?qū)哟吻逦? 便于使用、維護以及調(diào)試。c 語言是以函數(shù)形式提供給用戶的,這 些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。 雖然 c 語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。 本次設(shè)計的主程序中包括,led 顯示程序以及按鍵控制子程序,程序設(shè)計如下: 4.3.24.3.2 鍵盤掃描程序的設(shè)計鍵盤掃描程序的設(shè)計 編程掃描方式是利用 cpu 完成其它工作的空余調(diào)用鍵盤掃描子程序來響應(yīng)鍵盤輸 入的要求。在執(zhí)行鍵功能程序時,cpu 不再響應(yīng)鍵輸入要求,

59、直到 cpu 重新掃描鍵盤 為止。 鍵盤掃描程序一般應(yīng)包括以下內(nèi)容: (1)判別有無鍵按下。 (2)鍵盤掃描取得閉合鍵的行、列值。 (3)用計算法或查表法得到鍵值。 (4)判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待。 (5)將閉合鍵鍵號保存,同時轉(zhuǎn)去執(zhí)行該閉合鍵的功能。 #include unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; unsigned char temp; unsigned cha

60、r key; unsigned char i,j; void main(void) while(1) p3=0 xff; p3_4=0; temp=p3; temp=temp if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=p3; temp=temp if (temp!=0 x0f) temp=p3; temp=temp 5 5仿真及其調(diào)試仿真及其調(diào)試 5.1 鍵盤控制鍵盤控制 protenus 軟件的仿真軟件的仿真 繪制鍵盤的軟件仿真圖步驟分一下四步: (1)查找所需要的元器件; (2)根據(jù)電路圖進行連線; (3)l 是用來寫線

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論