基于單片機(jī)的電梯控制系統(tǒng)的論文_第1頁
基于單片機(jī)的電梯控制系統(tǒng)的論文_第2頁
基于單片機(jī)的電梯控制系統(tǒng)的論文_第3頁
基于單片機(jī)的電梯控制系統(tǒng)的論文_第4頁
基于單片機(jī)的電梯控制系統(tǒng)的論文_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章緒論1.1課題的背景簡介1.1.1電梯的歷史與發(fā)展電梯進(jìn)入人們的生活已經(jīng)150年了。一個(gè)半世紀(jì)的風(fēng)風(fēng)雨雨,翻天覆地的是歷史的變遷,永恒不變的是電梯提升人類生活質(zhì)量的承諾。 生活在繼續(xù),科技在發(fā)展,電梯也在進(jìn)步。150年來,電梯的材質(zhì)由黑白到彩色,樣式由直式到斜式,在操縱控制方面更是步步出新手柄開關(guān)操縱、按鈕控制、信號(hào)控制、集選控制、人機(jī)對(duì)話等等,多臺(tái)電梯還出現(xiàn)了并聯(lián)控制,智能群控;雙層轎廂電梯展示出節(jié)省井道空間,提升運(yùn)輸能力的優(yōu)勢(shì);變速式自動(dòng)人行道扶梯的出現(xiàn)大大節(jié)省了行人的時(shí)間;不同外形扇形、三角形、半菱形、半圓形、整圓形的觀光電梯則使身處其中的乘客的視線不再封閉。如今,以美國奧的斯公司

2、為代表的世界各大著名電梯公司各展風(fēng)姿,仍在繼續(xù)進(jìn)行電梯新品的研發(fā),并不斷完善維修和保養(yǎng)服務(wù)系統(tǒng)。調(diào)頻門控、智能遠(yuǎn)程監(jiān)控、主機(jī)節(jié)能、控制柜低噪音耐用,一款款集納了人類在機(jī)械、電子、光學(xué)等領(lǐng)域最新科研成果的新型電梯競相問世,冷冰冰的建筑因此散射出人性的光輝,人們的生活因此變得更加美好。 中國最早的一部電梯出現(xiàn)在上海,是由美國奧的斯公司于1901年安裝的。1932年由美國奧的斯公司安裝在天津利順德酒店的電梯至今還在安全運(yùn)轉(zhuǎn)著。1951年,黨中央提出要在天安門安裝一臺(tái)由我國自行制造的電梯,天津從慶生電機(jī)廠榮接此任,四個(gè)月后不辱使命,順利地完成了任務(wù)。十一屆三中全會(huì)后,沐浴著改革開放的春風(fēng),我國電梯業(yè)進(jìn)

3、入了高速發(fā)展的時(shí)期。在我國任何一個(gè)城市,電梯都在被廣泛應(yīng)用著。電梯給人們的生活帶來了便利,也為我國現(xiàn)代化建設(shè)的加速發(fā)展提供了強(qiáng)大的保障。電梯是高層建筑中安全、可靠、垂直上下的運(yùn)載工具,對(duì)改善勞動(dòng)條件、減輕勞動(dòng)強(qiáng)度起到很大的作用。電梯的應(yīng)用范圍很廣,可用于賓館、飯店、辦公大樓、商場、娛樂場所、倉庫以及居民住宅大樓等。在現(xiàn)代社會(huì)中,電梯已成為人類必不可少的垂直運(yùn)輸交通工具。1.2課題的主要研究內(nèi)容及設(shè)計(jì)步驟本課題的主要任務(wù)是完成一個(gè)電梯系統(tǒng)的調(diào)度模塊,即根據(jù)每個(gè)樓層不同顧客的按鍵需求,讓電梯做出合理的判斷,正確高效地知道電梯完成各項(xiàng)載客任務(wù)。根據(jù)此任務(wù),本課題需要研究的內(nèi)容有:1、根據(jù)系統(tǒng)的技術(shù)要

4、求,進(jìn)行系統(tǒng)硬件的總體方案設(shè)計(jì);2、學(xué)習(xí)單片機(jī)的相關(guān)知識(shí),并且加以運(yùn)用;3、選擇恰當(dāng)?shù)男酒?,并?duì)其內(nèi)部協(xié)議有所掌握,便于應(yīng)用。4、研究C語言編程,并且規(guī)定電梯的工作規(guī)則,用C語言加以實(shí)現(xiàn);5、對(duì)軟件和硬件進(jìn)行調(diào)試,讓其協(xié)調(diào)工作,完成指定任務(wù)。結(jié)合以上內(nèi)容,本課題的設(shè)計(jì)方案步驟如下:關(guān)于硬件部分:首先,對(duì)實(shí)際的電梯系統(tǒng)進(jìn)行模擬,一般情況下,一個(gè)電梯應(yīng)該具備相關(guān)按鍵、顯示二極管、數(shù)碼管等,由于這是一個(gè)調(diào)度模塊,故沒有設(shè)計(jì)具體的轎廂等機(jī)械部分。然后,結(jié)合這些實(shí)物,選擇恰當(dāng)?shù)男酒?,并分成若干模塊,安排好各自之間的關(guān)系。由于其有諸多按鍵和顯示環(huán)節(jié),而單片機(jī)的I/O口管腳資源實(shí)在有限,故需要I/O口擴(kuò)展,

5、用以管理二極管;同時(shí)要有專門的按鍵控制芯片,從而便于按鍵管理。在此,我分別選擇了82C55和8279芯片。接著,要完成電路圖的設(shè)計(jì),畫出PCB板,焊接相關(guān)器件后進(jìn)行硬件調(diào)試,看是否好用并加以適當(dāng)?shù)母?。關(guān)于軟件部分:處于最底層的是對(duì)兩個(gè)芯片的寄存器讀寫工作,完成后方可進(jìn)行更高層的應(yīng)用程序調(diào)試。為了使硬件簡單化,我選擇了模擬時(shí)序的方法讀寫寄存器,這比總線操作的方法節(jié)省了鎖存器。然后是關(guān)于電梯調(diào)度時(shí)所遵循的原則作出規(guī)定,其必須基于高效與人性化兩個(gè)原則。最后是使用C語言將規(guī)定程序化,以便電梯真正的運(yùn)作。當(dāng)然,二者的關(guān)系并不是分離的,它們是相輔相成,硬件依據(jù)軟件來驗(yàn)證,軟件依據(jù)硬件來調(diào)試。經(jīng)過一個(gè)個(gè)的

6、發(fā)現(xiàn)問題、一個(gè)個(gè)的解決問題,最終做出完美的電梯調(diào)度模塊。1.3課題的開發(fā)環(huán)境簡介 1.3.1電路圖制作軟件Altium designer 7.0Altium Designer 7.0 不斷通過為高速設(shè)計(jì)提供各種功能來提高用戶生產(chǎn)力,這些功能包括交互式長度調(diào)整和 PCB 層片增強(qiáng)等功能。新增的庫工具和各種新功能將 Altium Designer 提升成為統(tǒng)一的電子產(chǎn)品開發(fā)解決方案。這款最新的更新程序?qū)⑦M(jìn)一步增強(qiáng)您的能力,讓您能夠在更短的“設(shè)計(jì)到制造”周期內(nèi)生產(chǎn)更為尖端、更具創(chuàng)新性的電子產(chǎn)品。(Altium Designer完全取代了Protel) Altium Designer Summer 0

7、8新增匯入Allegro PCB(*.brd)的轉(zhuǎn)文件功能。 Altium Designer 提供了唯一一款統(tǒng)一的應(yīng)用方案,其綜合電子產(chǎn)品一體化開發(fā)所需的所有必須技術(shù)和功能。Altium Designer 在單一設(shè)計(jì)環(huán)境中集成板級(jí)和FPGA系統(tǒng)設(shè)計(jì)、基于FPGA和分立處理器的嵌入式軟件開發(fā)以及PCB版圖設(shè)計(jì)、編輯和制造。并集成了現(xiàn)代設(shè)計(jì)數(shù)據(jù)管理功能,使得Altium Designer成為電子產(chǎn)品開發(fā)的完整解決方案一個(gè)既滿足當(dāng)前,也滿足未來開發(fā)需求的解決方案。1.3.2C51的程序開發(fā)軟件Keil單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種

8、方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多

9、RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。Keil C51 軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語言和 C 語言的程序設(shè)計(jì),界面友好,易學(xué)易用。1.4 設(shè)計(jì)功能要求本設(shè)計(jì)是為一八層電梯設(shè)計(jì)一調(diào)度系統(tǒng),即使電梯能夠合理

10、高效地運(yùn)行,完成各樓層顧客的接送任務(wù)。形象地說,就是要應(yīng)對(duì)不同樓層顧客的不同需求,作出合理高效的判斷,使所有顧客在整體運(yùn)用時(shí)間最短的條件下將其運(yùn)往各自的目的地。這個(gè)設(shè)計(jì)的成品應(yīng)該可以作為真實(shí)電梯的控制系統(tǒng)一樣,遵守以下兩個(gè)原則:一是高效性,二是人性化。而實(shí)際電梯所面臨的情況無比復(fù)雜,故本設(shè)計(jì)的難點(diǎn)除了硬件上面外,還有對(duì)這些復(fù)雜的情況歸類化,分為若干個(gè)基本情況,另外是用恰當(dāng)?shù)腃語言描述來表達(dá)這些復(fù)雜的邏輯。1.5 本文內(nèi)容安排在本設(shè)計(jì)制作的過程中,我查閱閱了大量的相關(guān)資料、期刊,并在導(dǎo)師的指導(dǎo)幫助下仔細(xì)地進(jìn)行了斟酌?,F(xiàn)將論文的章節(jié)安排再次做些簡要的說明:第一章,即緒論部分,先對(duì)電梯的背景知識(shí)等做

11、些介紹,并且對(duì)與本設(shè)計(jì)的設(shè)計(jì)步驟與重點(diǎn)加以說明,簡單介紹了兩個(gè)與畢設(shè)有關(guān)的開發(fā)軟件。第二章,詳細(xì)地闡述了設(shè)計(jì)中所用到的各個(gè)模塊的硬件電路及其工作原理。其中包括單片機(jī)最小系統(tǒng)、82C55發(fā)光二極管控制模塊、8279鍵盤控制模塊和串口下載模塊等。第三章,以硬件的物理連接作為基石,以讀寫芯片內(nèi)部數(shù)據(jù)與命令寄存器作為基礎(chǔ),以電梯判決函數(shù)作為核心,本章詳細(xì)地講述了軟件系統(tǒng)的工作原理,并對(duì)各個(gè)重要函數(shù)都有相關(guān)的說明。第二章系統(tǒng)的硬件設(shè)計(jì)2.1引言由于電梯要運(yùn)送不同樓層的客人,所以要有很多按鍵才可以讓滿足不同樓層顧客的需求。而且,電梯還要有人性化的顯示,如哪個(gè)按鈕按下了,就把它對(duì)應(yīng)樓層按鈕的二極管點(diǎn)亮,還要

12、有一個(gè)數(shù)碼管實(shí)時(shí)顯示電梯所在層數(shù),用發(fā)光二極管組成的上下箭頭來表示電梯當(dāng)前的運(yùn)行方向等等。而這些零碎的原件,又需要高效的芯片來控制,它們相互之間的物理連接問題這些就是本章所要敘述的硬件設(shè)計(jì)部分。硬件芯片的選擇合理的硬件設(shè)計(jì)是一個(gè)設(shè)計(jì)成功的基石,所以在設(shè)計(jì)之初,我便把自己的主要任務(wù)集中于籌劃硬件的搭建工作,當(dāng)然其中需要兼顧軟件設(shè)計(jì)的需求。由于本設(shè)計(jì)所模擬的樓層共有八層,其中所需要控制的器件較多,如每層都需有兩個(gè)上下的指示燈,電梯轎廂內(nèi)也需有去幾層的指示燈等,而現(xiàn)有單片機(jī)的管腳資源無法滿足需求,故第一步需要想法擴(kuò)展單片機(jī)的I/O口管腳資源。在此,我選擇了擴(kuò)展I/O口最典型的芯片82C55。其可把一

13、組八位I/O管腳擴(kuò)展為PA、PB、PC三組管腳,并通過寄存器對(duì)各組管腳進(jìn)行配置,從而滿足了本次設(shè)計(jì)的要求。考慮到電梯會(huì)有多個(gè)按鍵,而傳統(tǒng)的依據(jù)單片機(jī)自身的I/O口布局鍵盤的方法顯然也是不可行的,故本設(shè)計(jì)選擇了典型的管理鍵盤的芯片82C79,其重要意義不僅在于減輕了單片機(jī)I/O口的開支負(fù)擔(dān),而且可以代替單片機(jī)完成各個(gè)按鍵的鍵值編寫工作,單片機(jī)只要從其FIFO寄存器中直接讀取鍵值即可得知哪個(gè)按鍵被按下,進(jìn)而進(jìn)行相應(yīng)的操作。另外,電路板上還有一些擴(kuò)展的子電路模塊,例如MAX232串口下載模塊,U口供電模塊等等,當(dāng)然這些都是方便程序的下載與調(diào)試的。并考慮到電路板的面積與價(jià)格問題,一些芯片與二極管、電阻

14、等用的是貼片封裝。2.2硬件電路單片機(jī)最小系統(tǒng)模塊單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。在本設(shè)計(jì)中,最小系統(tǒng)應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路等。如圖2.1所示,晶振電路由C1與C2和晶振組成,晶振是給單片機(jī)提供工作信號(hào)脈沖的。

15、它的速率就是單片機(jī)的工作速率,簡單地說,沒有晶振,就沒有時(shí)鐘周期,沒有時(shí)鐘周期,就無法執(zhí)行程序代碼,單片機(jī)就無法工作。并在晶振的兩引腳處接入兩個(gè)10pF-50pF的瓷片電容接地用來削減偕波對(duì)電路的穩(wěn)定性的影響。復(fù)位電路采取的為手動(dòng)按鍵復(fù)位電路,由電容C13,電阻R11、R12和開關(guān)RESET組成,當(dāng)單片機(jī)的復(fù)位引腳RESET出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。每次復(fù)位后,單片機(jī)的程序都會(huì)從第一條開始從新執(zhí)行。另外,還額外設(shè)計(jì)了濾波防干擾電路,由C13與R12組成,電源先經(jīng)過它們?cè)俳尤雴纹瑱C(jī)的Vcc,可以有效的減少其中的雜波帶來

16、的干擾。可編程I/O擴(kuò)展芯片82C55模塊8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。其芯片引腳圖如圖2.2所示。圖2. 1單片機(jī)最小系統(tǒng)圖2.282C55引腳分布D7D0(data bus):三態(tài)、雙向數(shù)據(jù)線,與CPU數(shù)據(jù)總線連接,用來傳送數(shù)據(jù)。(chip select):片選信號(hào)線,低電平有效時(shí),芯片被選中。A1, A0(port address):地址線,用來選擇內(nèi)部端口。(read):讀出信號(hào)線,

17、低電平有效時(shí),允許數(shù)據(jù)讀出。(write):寫入信號(hào)線,低電平有效時(shí),允許數(shù)據(jù)寫入。RESET(reset):復(fù)位信號(hào)線,高電平有效時(shí),將所有內(nèi)部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口輸入/輸出信號(hào)線。PB7PB0(port B):B口輸入/輸出信號(hào)線。PC7PC0(port C):C口輸入/輸出信號(hào)線。VCC:5V電源。 GND:電源地線。 8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時(shí)必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與CPU

18、連接部分、與外設(shè)連接部分、控制部分。1、與CPU連接部分根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為8根D0D7。由于8255具有3個(gè)通道A、B、C,所以只要兩根地址線就能尋址A、B、C口及控制寄存器,故地址線為兩根A0A1。此外CPU要對(duì)8255進(jìn)行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號(hào)。各信號(hào)的引腳編號(hào)如下:(1)數(shù)據(jù)總線DB:編號(hào)為D0D7,用于8255與CPU傳送8位數(shù)據(jù)。(2)地址總線AB:編號(hào)為A0A1,用于選擇A、B、C口與控制寄存器。(3)控制總線CB:片選信號(hào)、復(fù)位信號(hào)RST、寫信號(hào)、讀信號(hào)。當(dāng)CPU要對(duì)8255進(jìn)行讀、寫操作時(shí),必須先向8255發(fā)片選信

19、號(hào)選中8255芯片,然后發(fā)讀信號(hào)或?qū)懶盘?hào)對(duì)8255進(jìn)行讀或?qū)憯?shù)據(jù)的操作。2、與外設(shè)接口部分根據(jù)定義,8255有3個(gè)通道A、B、C與外設(shè)連接,每個(gè)通道又有8根線與外設(shè)連接,所以8255可以用24根線與外設(shè)連接,若進(jìn)行開關(guān)量控制,則8255可同時(shí)控制24路開關(guān)。各通道的引腳編號(hào)如下:(1)A口:編號(hào)為PA0PA7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。(2)B口:編號(hào)為PB0PB7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。(3)C口:編號(hào)為PC0PC7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù),當(dāng)8255工作于應(yīng)答I/O方式時(shí),C口用于應(yīng)答信號(hào)的通信。3、控制器8255將3個(gè)通道分為兩組,即PA0

20、PA7與PC4PC7組成A組,PB0PB7與PC0PC3組成B組。如圖7.5所示,相應(yīng)的控制器也分為A組控制器與B組控制器,各組控制器的作用如下:(1)A組控制器:控制A口與上C口的輸入與輸出。(2)B組控制器:控制B口與下C口的輸入與輸出。在本設(shè)計(jì)中,8255與單片機(jī)間的通信采取的時(shí)模擬時(shí)序的方法。單片機(jī)的P0口只是用作了數(shù)據(jù)線,這樣與以往的采用P0口數(shù)據(jù)地址線分時(shí)復(fù)用的方法相比,簡化了電路構(gòu)造(因?yàn)檫@樣可以少用一個(gè)芯片74HC573)。具體的電路子模塊如圖2.3所示,三組擴(kuò)展管腳均得到了充分的利用。PA口與PB口負(fù)責(zé)每層樓的上下按鍵顯示燈的亮滅,而PC口負(fù)責(zé)電梯所到達(dá)當(dāng)前樓層的樓層顯示工作

21、。同時(shí),由于干擾等原因,82C55所輸出的電壓值偶爾偏低,這樣直接驅(qū)動(dòng)二極管時(shí),可能會(huì)出現(xiàn)顯示昏暗甚至不亮的問題,故而在此加上了一個(gè)非門,可以起到提高電平值的作用。P1與P2為兩個(gè)220歐的排阻,用于限流作用,以防二極管由于電壓過高所導(dǎo)致的可能被燒壞。芯片82C55的數(shù)據(jù)口D0D7分別與單片機(jī)的P0口各管腳相連,進(jìn)行數(shù)據(jù)的傳輸。而和也當(dāng)然與單片機(jī)的和相連,方便數(shù)據(jù)或者命令的讀與寫。其尋址管腳A0與A1分別與單片機(jī)的P20與P21相連,操作時(shí)只需對(duì)P2口的對(duì)應(yīng)兩管腳輸出合理的高低電平組合,即可選中芯片82C55的相應(yīng)寄存器,進(jìn)而進(jìn)行相應(yīng)操作。芯片的片選由單片機(jī)的P26控制,且低電平有效。其復(fù)位管

22、腳RESET與單片機(jī)的復(fù)位管腳可直接相連。當(dāng)然,有時(shí)芯片82C55的反應(yīng)沒有單片機(jī)快速,此時(shí)可以進(jìn)行“軟復(fù)位”,即讓其復(fù)位管腳RESET與單片機(jī)的某個(gè)閑置的I/0管腳相連,通過人為的控制此管腳圖2.382C55數(shù)碼管控制模塊的高低電平及其時(shí)間來對(duì)芯片82C55進(jìn)行復(fù)位。即讓此I/O管腳輸出高電平,且保持一段時(shí)間,保證在此時(shí)間段內(nèi),芯片82C55有足夠的時(shí)間復(fù)位后,再讓此管腳恢復(fù)低電平即可。另外,本設(shè)計(jì)中所用的數(shù)碼管為共陽型。其引腳分布如圖2.4所示。有圖可知,當(dāng)要顯示特定字符時(shí),只需向其相應(yīng)段的管腳輸入低電平,此段即亮;反之同理,若要其某段不亮,只需輸入高電平即可。了解此原理便可方便對(duì)其的編程

23、工作。 圖2.4共陽極數(shù)碼管內(nèi)部結(jié)構(gòu)可編程按鍵控制芯片82C79模塊Intel8279芯片是一種通用的可編程序的鍵盤、顯示接口器件,單個(gè)芯片就能完成鍵盤輸入和LED顯示控制兩種功能。其引腳分布如圖2.5所示。8279包括鍵盤輸入和顯示輸出兩個(gè)部分。鍵盤部分提供的掃描方式,可以和64個(gè)按鍵或傳感器的陣列相連。能自動(dòng)消除開關(guān)抖動(dòng)以及為N個(gè)鍵同時(shí)按下提供保護(hù)。圖2.5 8279引腳分布主要管腳的定義為:(片選):輸入線,當(dāng)=0時(shí)8279被選中,允許CPU對(duì)其讀、寫,否則被禁止。A0(數(shù)據(jù)選擇):輸入線。當(dāng)A0=1時(shí)CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時(shí)CPU讀、寫的字節(jié)均為數(shù)據(jù)。DB0

24、DB7:與單片機(jī)通信的數(shù)據(jù)引腳,用于傳送數(shù)據(jù)。Vcc、GND:電源端與地端,用于給芯片提供電源。、(讀、寫信號(hào)):輸入線。低電平有效,來自CPU的控制信號(hào),控制8279的讀、寫操作。IRQ(中斷請(qǐng)求):輸出線。高電平有效。在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM存有數(shù)據(jù)時(shí),IRQ為高電平。CPU每次從RAM中讀出數(shù)據(jù)時(shí),IRQ變?yōu)榈碗娖?。若RAM中仍有數(shù)據(jù),則IRQ再次恢復(fù)高電平。在傳感器工作方式中,每當(dāng)檢測(cè)到傳感器狀態(tài)變化時(shí),IRQ就出現(xiàn)高電平。SL0SL3(掃描線):輸出線。用來掃描鍵盤和顯示器。它們可以編程設(shè)定為編碼(4中取1)或譯碼輸出(16取1)。RL0RL7(回復(fù)線):輸入線。它

25、們是鍵盤矩陣或傳感矩陣的列(或行)信號(hào)輸入線。SHIFT(移位信號(hào)):輸入線、高電平有效。該輸入信號(hào)是鍵盤數(shù)據(jù)的最高位(D7),通常用來擴(kuò)充鍵開關(guān)的功能,作為控制功能鍵用。在選通輸入方式時(shí),該信號(hào)的上升沿可將來自RL0RL7的數(shù)據(jù)存入FIFO RAM中。在傳感器輸入下,該信號(hào)無效。OUTA0OUTA3(A組顯示信號(hào)):輸出線。OUTB0OUTB3(B組顯示信號(hào)):輸出線。這兩組引線都是顯示數(shù)據(jù)輸出線,與多位數(shù)字顯示的掃描線SL0SL3同步,兩組可以獨(dú)立使用,也可以合并使用。BD(顯示消隱):輸出線。低電平有效。該信號(hào)在數(shù)字切換顯示或使用消隱命令時(shí),將顯示消隱。其在本設(shè)計(jì)中的工作電路圖模塊如圖2

26、.6所示:圖2.6 8279鍵盤控制模塊由圖可知,其八位并行數(shù)據(jù)管腳分別與單片機(jī)的P0口各管腳相連。讀寫信號(hào)端也分別與單片機(jī)的對(duì)應(yīng)。而其片選由P27控制,低電平有效。其CLK管腳與ALE相連,單片機(jī)正常工作時(shí),ALE管腳輸出方波,頻率為單片機(jī)工作頻率的六分之一。而芯片82C79的掃描鍵盤的頻率正是由此而產(chǎn)生,當(dāng)然i用這么高的頻率,還需要繼續(xù)對(duì)其分頻后方可供82C79使用。復(fù)位鍵同樣與單片機(jī)的復(fù)位鍵相通。而至于有些管腳如BD、SHIFT、CNTL/S等由于在此設(shè)計(jì)中無甚意義,故均將其接地處理。其工作機(jī)理為:82C79的SL0SL2在芯片工作時(shí),不斷以固定的頻率輸出低電平,當(dāng)然是同一時(shí)間只選擇其中

27、一根線為低電平,其他還未高電平,同時(shí)掃描RL0RL7端,若得到某各端口返回低電平,在經(jīng)過消抖處理后仍為低電平,則說明SL0SL2當(dāng)前輸出低電平的那根線與RL0RL7當(dāng)前返回低電平的那根線的交叉處的那個(gè)開關(guān)被按下了。那么芯片82C79會(huì)自動(dòng)將該按鍵按照規(guī)定的協(xié)議翻譯為相應(yīng)的鍵值(每個(gè)按鍵都有自己唯一的鍵值標(biāo)示,這便于在編寫程序時(shí)讀取鍵值進(jìn)而進(jìn)行散轉(zhuǎn)),存儲(chǔ)與FIFO寄存器中,同時(shí),由于該寄存器中存有單片機(jī)未讀取的值,IRQ管腳就會(huì)自動(dòng)輸出高電平,再經(jīng)過非門后對(duì)單片機(jī)的INT0產(chǎn)生中斷,此時(shí)只需在編程時(shí)在中斷程序中對(duì)其進(jìn)行相應(yīng)處理即可。MAX232串口下載模塊與附加電源模塊等由于程序絕不可能第一次

28、編寫完就可以達(dá)到預(yù)設(shè)的目的,其間要經(jīng)過很多次的更改修正,故為了便于程序的調(diào)試工作,我在此電路板上增設(shè)了一個(gè)MAX232串口下載模塊,這樣便可以不用取下單片機(jī)去其他的電路板上下載,而直接便可以在此電路板上完成了。同時(shí)為便于電源的引入,我選擇了電腦USB口輸出的5V直流電源,這樣無需再用大型的電源設(shè)備,隨處便可以調(diào)試。他們的電路圖如圖2.7所示:圖2.7 串口下載模塊MAX232電路時(shí)該芯片數(shù)據(jù)手冊(cè)中提供的典型應(yīng)用圖。MAX232是一個(gè)電荷泵器件,它采用開關(guān)電容技術(shù)將5V電壓升壓和獲取負(fù)電壓。至于電源模塊,便比較簡單了,USB口通常有四條引出線,其中邊緣兩根便為電源線,一個(gè)為+5V直流端,一個(gè)為地

29、端。中間兩根為差分信號(hào)線D+與D-,負(fù)責(zé)信號(hào)的串行通信。但由于此處只用做電源功能,故中間兩根無需接入。+5V直流端通過一個(gè)按鍵開關(guān)并經(jīng)過一10微法的電容濾波后接入Vcc,供整個(gè)電路板供電。當(dāng)電源導(dǎo)通后,電源指示二極管會(huì)高亮。同時(shí),基于人性化處理,在電梯上下行時(shí),我專門用若干個(gè)二極管排列成上下箭頭的形狀,如圖所示。中間的四個(gè)發(fā)光二極管組成一豎線型,并處于常亮狀態(tài),當(dāng)電梯上行時(shí),與單片機(jī)P13管腳連接的UP端將輸出低電平,經(jīng)過一非門后使組成上三角的四個(gè)發(fā)光二極管點(diǎn)亮,從而形成以向上箭頭;同理,當(dāng)下行時(shí),與單片機(jī)P11腳相連的DOWN端將輸出低電平,使組成下三角的四個(gè)發(fā)光二極管導(dǎo)通,形成向下箭頭,如

30、圖2.8所示。圖2.8 上下行箭頭顯示模塊2.3 本章小結(jié)本章對(duì)設(shè)計(jì)中的硬件環(huán)節(jié)作了詳細(xì)的介紹,并將其分為若干模塊,分別為單片機(jī)最小系統(tǒng)模塊、82C55發(fā)光二極管顯示模塊、8279鍵盤控制與數(shù)碼管顯示模塊、串口下載模塊、電源模塊等。它們均具有不可或缺的功能及特點(diǎn)。整個(gè)硬件系統(tǒng)的工作機(jī)理為:單片機(jī)最小系統(tǒng)為整個(gè)系統(tǒng)提供最基本的運(yùn)行環(huán)境,8279通過掃描按鍵是否按下,向單片機(jī)發(fā)出中斷,單片機(jī)進(jìn)行相應(yīng)處理,并通過82C55控制發(fā)光二極管的兩滅、通過8279控制當(dāng)前樓層的顯示。第三章芯片基本讀寫的實(shí)現(xiàn)3.1引言本設(shè)計(jì)主要用到三個(gè)芯片,即單片機(jī)82C82、I/O口擴(kuò)展芯片82C55、按鍵控制芯片8279

31、。它們之間只有完美無誤地進(jìn)行通信,才可以保證更高程序思想的實(shí)現(xiàn)。本章就以此為目的,詳細(xì)探討兩芯片的內(nèi)部協(xié)議,包括引腳排列,內(nèi)部寄存器的數(shù)據(jù)結(jié)構(gòu),操作特點(diǎn)等等。最后是兩芯片的初始化函數(shù)。3.2單片機(jī)對(duì)芯片82C55的基本讀寫與一般其他的芯片類似,對(duì)82C55芯片的操作,一般也即對(duì)其內(nèi)部寄存器的操作。其內(nèi)部寄存器分為兩類,一類為命令寄存器,另一類為數(shù)據(jù)寄存器。很明顯,由于82C55的功能為將一組單片機(jī)I/O口擴(kuò)展為三組I/O口,那么肯定要有三組數(shù)據(jù)寄存器,分別對(duì)應(yīng)著它的三組I/O口,即PA口,PB口與PC口,那么82C55芯片便有四個(gè)寄存器,正好可以用兩位的地址線進(jìn)行尋址(即管腳A0與A1)。大概

32、得其讀寄存器的流程圖3.1圖3.1 讀寫寄存器流程圖具體的說,其過程為:開始選中該芯片(低電平有效),而后設(shè)置好所要讀寫的寄存器的地址,也即設(shè)置好A0與A1的數(shù)值組合,若為讀寄存器,則讓單片機(jī)讀引腳P37為低電平,反之若為寫寄存器,則讓單片機(jī)寫引腳P36為低電平,然后把要讀或者寫的數(shù)據(jù)放到數(shù)據(jù)口P0口上(需要注意的是,當(dāng)單片機(jī)讀寄存器時(shí),對(duì)于其自身來說,是輸入數(shù)據(jù),故此時(shí)需先讓P0口值為高電平0xff為下一步的輸入做準(zhǔn)備,而此流程圖的最后一步即為這種情況做準(zhǔn)備的),一段短短的穩(wěn)定時(shí)間后再讓讀引腳或者寫引腳為高電平,則在由低到高的跳變中,數(shù)據(jù)得到了轉(zhuǎn)移。然后再片選無效,以防以后的數(shù)據(jù)傳輸產(chǎn)生相互

33、干擾。最后數(shù)據(jù)口P0置為0xff,為方便下次可能的輸入做準(zhǔn)備。3.3芯片82C55的初始化芯片82C55的邏輯構(gòu)造該芯片的邏輯構(gòu)造如圖3.2所示, 圖3.2 82C55邏輯構(gòu)造圖1、三個(gè)并行輸入輸出端口(端口A、端口B、端口C) 8255A有A、B、C三個(gè)并行輸入輸出端口(簡稱為A口、B口、C口),其功能全部由程序設(shè)定,每個(gè)端口都有自己的特點(diǎn)。A口、B口通常作為獨(dú)立的I/O端口使用,C口也可以作為一般的I/O端口使用,但當(dāng)A口、B口作為應(yīng)答式的I/O口使用時(shí),C口分別用來為A口、B口提供應(yīng)答控制信號(hào)。2、讀/寫控制邏輯讀/寫控制邏輯用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送,其控制信號(hào)有以下幾種:(1

34、) 片選信號(hào),低電平有效允許8255A與CPU交換信息。(2) 讀信號(hào),低電平有效允許CPU從8255A端口中讀取數(shù)據(jù)或狀態(tài)信息。(3) ,寫信號(hào),低電平有效允許CPU將數(shù)據(jù)、控制字寫入到8255A中。(4) RESET,復(fù)位信號(hào),高電平有效。清除8255A所有控制寄存器內(nèi)容,并將各端口置成輸入方式。(5) A1、A0,8255A片內(nèi)端口尋址地址。3、A組和B組控制電路A組和B組控制電路接受讀/寫控制邏輯的信號(hào)和CPU送入的控制字,然后決定各端口的功能。A組控制電路控制A口和C口的高4位(PC7PC4);B組控制電路控制B口和C口的低4位(PC3PC0)。還可根據(jù)控制字的要求對(duì)C口的某位實(shí)現(xiàn)置

35、0或置1的操作。4、數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個(gè)雙向三態(tài)的8位緩沖器,可與系統(tǒng)的數(shù)據(jù)總線直接相連,實(shí)現(xiàn)CPU和8255A之間的信息傳送。82C55芯片內(nèi)部有四個(gè)寄存器,即命令寄存器、PA口寄存器、PB口寄存器、PC口寄存器。其中,向命令中寫入數(shù)據(jù)可以控制芯片各擴(kuò)展口的工作方式。向后三者寄存器中寫入數(shù)據(jù),芯片會(huì)自動(dòng)將其取出,并以高低電平的形式分布于各相應(yīng)管腳。并且,三組擴(kuò)展口在作為輸出時(shí),均具有鎖存功能。由于有四組口,故相應(yīng)的應(yīng)該有兩位地址來對(duì)其尋址。芯片上的A0、A1即為此而設(shè)計(jì),當(dāng)A0=0,A1=0時(shí),尋址的為PA口寄存器;當(dāng)A0=1,A1=0時(shí),尋址的為PB口寄存器;當(dāng)A0=0,A1

36、=1時(shí),尋址的為PC口寄存器;當(dāng)A0=1,A1=1時(shí),尋址的為命令(控制)寄存器。具體的端口選擇與操作功能如表3.1所示表3.18255A端口選擇及操作功能表A1A0端口及操作功能00010端口A數(shù)據(jù)總線輸入操作(讀)01010端口B數(shù)據(jù)總線10010端口C數(shù)據(jù)總線00100數(shù)據(jù)總線端口A輸出操作(寫)01100數(shù)據(jù)總線端口B10100數(shù)據(jù)總線端口C11100數(shù)據(jù)總線控制寄存器1未選中8255A,數(shù)據(jù)總線三態(tài)11010非法狀態(tài)(不能讀控制寄存器)110數(shù)據(jù)總線三態(tài)芯片82C55的工作方式該芯片具有三種可選的工作方式,分別便于不同情況時(shí)供使用者以更為方便的選擇?,F(xiàn)對(duì)其工作方式做一簡要介紹如下:1

37、、方式0基本輸入輸出方式(1) 方式0的工作特點(diǎn)方式0稱為基本輸入輸出方式,該方式下可將3個(gè)數(shù)據(jù)端口劃分為4個(gè)獨(dú)立的部分:A口和B口作為兩個(gè)8位端口,C口的高4位和低4位可以用作兩個(gè)4位端口(當(dāng)然也可以作為一個(gè)8位端口),各個(gè)端口都可以獨(dú)立用作輸入或輸出。其特性如下:1. 任何端口都具有輸出及輸入功能。2. 輸出時(shí),各Port 均有鎖定功能,能將信號(hào)鎖定在最后一次的輸出狀態(tài)上。3. 輸入無鎖定功能,數(shù)據(jù)收到后,端口上的信號(hào)將不會(huì)保留最后一次輸入的狀態(tài)。4. 有2 個(gè)8 位端口(PA 和PB)及2 個(gè)4 位端口(PC0PC3 和PC4PC7)可供利用。5. 共可組成16 種不同的輸出入狀態(tài)。(2

38、) 方式0的使用場合方式0使用在無條件傳送和查詢式傳送兩種場合。2、方式1選通輸入輸出方式(1) 方式1的工作特點(diǎn)方式1是一種選通輸入輸出方式。在這種工作方式下,端口A、端口B和端口C被分為兩個(gè)組。端口A和端口B用作數(shù)據(jù)的輸入/輸出,端口C的一些引腳信號(hào)被規(guī)定為端口A、B的聯(lián)絡(luò)信號(hào),這些聯(lián)絡(luò)信號(hào)和C口的各引腳保持固定的對(duì)應(yīng)關(guān)系,不能用程序改變。1. A/B口輸入的聯(lián)絡(luò)信號(hào)STB :輸入選通信號(hào),低電平有效,外設(shè)輸入;當(dāng)該信號(hào)有效時(shí),使8255的A/B口接收外設(shè)的8位數(shù)據(jù)。信號(hào)通過PC4/ A口、 PC2/ B口引入。IBF:輸入滿信號(hào),高電平有效,8255輸出;當(dāng)該信號(hào)有效時(shí),表示8255已接

39、收數(shù)據(jù)。信號(hào)通過PC5/ A口、 PC1/ B口引出。INTR:中斷請(qǐng)求信號(hào),高電平有效,8255輸出;當(dāng)該信號(hào)有效時(shí), 8255向CPU申請(qǐng)中斷(讀取數(shù)據(jù)),信號(hào)通過PC3/ A口、 PC0/ B口引出。INTE:中斷允許標(biāo)志,是否允許發(fā)出中斷申請(qǐng)( INTR );當(dāng)設(shè)置PC4=1( A口的標(biāo)志), PC2=1 ( B口的標(biāo)志)時(shí),中斷允許。2. A/B口輸出的聯(lián)絡(luò)信號(hào)OBF :輸出滿信號(hào),低電平有效, 8255輸出; 當(dāng)該信號(hào)有效時(shí),通知外設(shè),A/B口的數(shù)據(jù)準(zhǔn)備好。信號(hào)通過PC7/ A口、 PC1/ B口引出。ACK:外設(shè)回答信號(hào),低電平有效;當(dāng)該信號(hào)有效時(shí),表示外設(shè)已空閑。信號(hào)通過PC6

40、/ A口、 PC2/ B口引入。INTR:中斷請(qǐng)求信號(hào),高電平有效,8255輸出;當(dāng)該信號(hào)有效時(shí), 8255向CPU申請(qǐng)中斷(輸入數(shù)據(jù)),信號(hào)通過PC3/ A口、 PC0/ B口引出。INTE:中斷允許標(biāo)志,是否允許發(fā)出中斷申請(qǐng)( INTR );當(dāng)設(shè)置PC6=1( A口的標(biāo)志), PC2=1 ( B口的標(biāo)志)時(shí),中斷允許。方式1的工作特點(diǎn)可歸納如下:端口A和端口B均可工作在方式1輸入或輸出方式。若端口A和端口B中只有一個(gè)工作在方式1,而另一個(gè)工作在方式0,則端口C中有3位作為方式1的聯(lián)絡(luò)信號(hào),端口C其余5位均可工作在方式0的輸入或輸出方式。若端口A和端口B都工作在方式1,則C口中6位作其聯(lián)絡(luò)信

41、號(hào),剩下的2位還可工作在方式0的輸入輸出方式。方式1有兩種用法:(1) 中斷方式。將兩個(gè)INTE置為1,A組和B組可以使用各自的INTR信號(hào)申請(qǐng)中斷。(2) 查詢方式。微處理器通過讀端口C,可以查詢IBF、OBF#信號(hào)的當(dāng)前狀態(tài),決定是否立即進(jìn)行數(shù)據(jù)傳輸。3、方式2雙向輸入輸出方式方式2只適用于端口A,是雙向的輸入輸出傳輸方式。在方式2,外設(shè)可以在A口的8位數(shù)據(jù)線上分時(shí)向8255A發(fā)送數(shù)據(jù)或從8255A接收數(shù)據(jù),但不能同時(shí)進(jìn)行。該方式需占用端口C的5位作為聯(lián)絡(luò)信號(hào)。端口A工作于方式2時(shí),端口B可選方式0或方式1。芯片82C55的初始化由以上的分析可知,對(duì)芯片82C55的初始化,實(shí)質(zhì)上即是規(guī)定好

42、它每個(gè)擴(kuò)展口是作為什么方式使用,即是輸入還是輸出,并且工作于何種方式。圖3.3 8255A工作方式控制字格式根據(jù)本設(shè)計(jì)的需求可知,我們只需用到兩組擴(kuò)展口PA和PB,并且他們均是用于控制二極管的亮滅,可見是作為輸出使用的;并且他們不需要其他的控制,即只要求作為最基本的輸出即可,也即工作于方式0便可。而這一切,均可以通過芯片的方式控制字來加以限定。由以上要求,再結(jié)合圖3.3我們可以得到該控制字的數(shù)值為0x80(二進(jìn)制為1000 0000)。最后,再把這一命令控制字發(fā)送到82C55的命令寄存器即可,命令寄存器對(duì)應(yīng)的地址為A0=1,A1=1。3.4對(duì)芯片8279的基本讀寫與初始化芯片8279的基本讀寫

43、與82C55類似,由于未用諸如74HC573之類的鎖存器,P0口無法實(shí)現(xiàn)數(shù)據(jù)與地址的復(fù)用功能,對(duì)8279的讀寫控制也是基于模擬時(shí)序的基礎(chǔ)上進(jìn)行的。并且他們的時(shí)序操作圖大概類似,故在此不再贅述。芯片8279的初始化對(duì)該芯片的初始化,也即規(guī)定好該芯片的工作方式等,當(dāng)然由于其功能較為強(qiáng)大,故對(duì)其操作的語句也相對(duì)多些。一般來說,對(duì)8279操作的命令分為八種,分別為:1、鍵盤/顯示器方式命令;2、時(shí)鐘編程命令;3、讀鍵字命令;4、讀顯示緩沖器命令;5、寫顯示緩沖器命令;6、顯示器禁止寫入/熄滅命令;7、清楚命令;8、結(jié)束中斷/錯(cuò)誤方式設(shè)置命令?,F(xiàn)分別介紹如下:1、鍵盤/顯示方式設(shè)置命令字(表3.2)表3

44、.2 鍵盤/顯示方式設(shè)置命令格式D7D6D5D4D3D2D1D0000DDKKK其中:D7、D6、D5=000方式設(shè)置命令特征位。DD(D4、D3):來設(shè)定顯示方式,其定義如下(表3.3):表3.3 D3、D4顯示方式 D4 D3顯示方式0 08個(gè)字符顯示,左入口開始0 116個(gè)字符顯示,左入口開始(復(fù)位后狀態(tài))1 08個(gè)字符顯示,右入口開始1 116個(gè)字符顯示,右入口開始所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個(gè)向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時(shí),已有的顯示字符逐個(gè)向左順序移動(dòng)。KKK(D2、 D1、 D0

45、):用來設(shè)定七種鍵盤、顯示工作方式(表3. 4):表3.4 D2、D1、D0操作方式D2 D1 D0操作方式0 0 0外部編碼掃描鍵盤(16取1),雙鍵互鎖0 0 1內(nèi)部譯碼掃描鍵盤(4取1),雙鍵互鎖0 1 0外部編碼掃描鍵盤N鍵依次讀出0 1 1內(nèi)部譯碼掃描鍵盤N鍵依次讀出1 0 0外部譯碼掃描傳感器矩陣方式1 0 1內(nèi)部譯碼掃描傳感器矩陣方式1 1 0選通輸入方式,外部編碼顯示掃描1 1 1選通輸入方式,內(nèi)部譯碼顯示掃描雙鍵鎖定與N鍵輪回是多鍵按下時(shí)的兩種不同的保護(hù)方式。雙鍵鎖定為兩鍵同時(shí)按下提供的保護(hù)方法。再消顫周期里,如果有兩鍵同時(shí)按下,則只有其中一個(gè)鍵彈起,而另一個(gè)鍵保持在按下位置

46、時(shí),才被認(rèn)可。N鍵輪回為N鍵同時(shí)按下的保護(hù)方法。當(dāng)有若干鍵按下時(shí),鍵盤掃描能夠根據(jù)發(fā)現(xiàn)他們的順序,依次將它們的狀態(tài)送入FIFO RAM中。2、程序時(shí)鐘命令(表3.5)表3.5程序時(shí)鐘命令格式D7D6D5D4D3D2D1D0001PPPPP其中:D7、D6、D5=001為時(shí)鐘命令特征位。PPPPP( D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK端的時(shí)鐘進(jìn)行分頻的分頻數(shù)N。N取值為231。例如外部時(shí)鐘頻率為2MHZ,PPPPP被置為10100(N=20),則對(duì)輸入的外部時(shí)鐘20分頻,以獲得8279內(nèi)部要求的100KMZ的基本頻率。3、讀FIFO/傳感器RAM命令(表3.6)表3.6 讀FI

47、FO/傳感器RAM命令格式D7D6D5D4D3D2D1D0010AIXAAA其中:D7D6D5 =010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時(shí)使用。在CPU讀傳感器RAM之前,必須使用這條命令來設(shè)定傳感器RAM中的8個(gè)地址(每個(gè)地址一個(gè)字節(jié))。AAA(D2、D1、D0)為傳感器RAM中的八個(gè)字節(jié)地址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出傳感器RAM后地址自動(dòng)加1使地址指針指向下一個(gè)存儲(chǔ)單元。這樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操做嚴(yán)格按照先入先出順序,因此,不需使用此命令。4、讀顯示R

48、AM命令(表3.7)表3.7 讀顯示RAM命令格式D7D6D5D4D3D2D1D0011AIAAAA其中:D7D6D5 =011為讀顯示RAM命令字的特征位。該命令用來設(shè)定將要讀出的顯示RAM地址。AAAA(D3、D2、D1、D0)用來尋址顯示RAM命令字的特征位。由位顯示RAM中有16個(gè)字節(jié)單元故需要4位尋址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出后地址自動(dòng)加1指向下一地址。5、寫顯示RAM命令(表3.8)表3.8 寫顯示RAM命令格式D7D6D5D4D3D2D1D0100AIAAAA其中:D7D6D5 =100為寫顯示RAM命令字的特征位。在寫顯示器RAM之前用該命令用來設(shè)定

49、將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的存儲(chǔ)單元地址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次寫入后地址自動(dòng)加1指向下一次寫入地址。6、顯示禁止寫入/消隱命令特征位(表3.9)表3.9 顯示禁止寫入/消隱命令格式D7D6D5D4D3D2D1D0101XIWAIWBBLABLB其中:D7D6D5 =101為顯示禁止寫入/消隱命令特征位。IW/A、IW/B(D3、D2)為A、B組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩組,可以單獨(dú)送數(shù),故用兩位來分別屏蔽。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影

50、響A的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)雙四位顯示器是相互獨(dú)立的。為了給其中一個(gè)雙四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。BL/A、BL/B(D1、D0)為消隱顯示位。用于對(duì)兩組顯示輸出消隱。若BL=1時(shí),對(duì)應(yīng)組的顯示輸出被消隱。當(dāng)BL=0時(shí),則恢復(fù)顯示。7、清除命令(表3.10)表3.10 清除命令格式D7D6D5D4D3D2D1D0110CDCDCDCFCA其中:D7D6D5 =110清除命令特征位。CDCDCD(D4D3D2)用來設(shè)定清除顯示RAM方式,共有四種消除方式(表3.11)。表3.11 D4D3D2消除方式D4 D3 D2

51、清除方式1 0 X將顯示RAM全部清零1 1 0將顯示RAM清成20H(A組=0010,B組=0000)1 1 1將顯示RAM全部置10 X X不清除(CA =0)CF(D1)用來置空FIFO存儲(chǔ)器,當(dāng)=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使中斷輸出線復(fù)位。同時(shí),傳感器RAM的讀出地址也被置0。CA(D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CD=1時(shí),對(duì)顯示的清除方式由D3、D2的編碼決定。清除顯示RAM約需160S。在此期間FIFO狀態(tài)時(shí)的最高位DU=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。8、結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(表3.12)表3.12 結(jié)束中斷/錯(cuò)誤

52、方式設(shè)置命令格式D7D6D5D4D3D2D1D0111EXXXX其中:D7D6D5 =111為該命令的特征位。此命令有兩種不同的作用。(1)作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時(shí),掃描檢測(cè)電路將其狀態(tài)寫入傳感器RAM,并啟動(dòng)中斷邏輯,使IRQ變高,向CPU請(qǐng)求中斷,并且禁止寫入傳感器RAM。此時(shí),若傳感器RAM讀出地址的自動(dòng)遞增特征沒有置位(AI=0),則中斷請(qǐng)求IRQ在CPU第一次從傳感器RAM讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(AI=1),則CPU對(duì)傳感器RAM的讀出并不能清除IRQ,而必須通過給8279寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使IRQ變低。因此

53、在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請(qǐng)求。(2)作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(E=1),則8279將以一種特定的錯(cuò)誤方式工作。這種方式的特點(diǎn)是:在8279的消顫周期內(nèi),如果發(fā)現(xiàn)多個(gè)按鍵同時(shí)按下,則FIFO狀態(tài)字中的錯(cuò)誤特征位S/E將置1,并產(chǎn)生中斷請(qǐng)求信號(hào)和阻止寫入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信號(hào)A0=1。8279只有一位地址線A0,那么當(dāng)然只可

54、以尋址兩個(gè)寄存器。實(shí)際上也是如此的,當(dāng)A0=0時(shí),尋址的為其內(nèi)部的數(shù)據(jù)寄存器;當(dāng)A0=1時(shí),尋址的為其內(nèi)部的控制寄存器。那么其控制命令有多種,單一的一個(gè)命令寄存器又是何以分辨如此多的命令呢?如上面所示,命令寄存器的八位中,高三位為命令的分辨符。故若想輸入不同的命令,只需寫入相應(yīng)的高三位數(shù)據(jù)即可。圖3.4 8279初始化在本畢設(shè)中,應(yīng)該規(guī)定哪些命令呢?如流程圖3.4所示,對(duì)8279的初始化供分為三步,即先后輸入三個(gè)命令。首先,我們要對(duì)芯片內(nèi)部的各寄存器進(jìn)行類似于復(fù)位的清零操作,方便以后的使用;其次,由于本設(shè)計(jì)中8279主管22各按鍵,而按鍵按下時(shí)又有多種復(fù)雜的情況,諸如同時(shí)有若干按鍵按下等,我們

55、要選擇此種情況的處理方式;再者,由于8279對(duì)按鍵實(shí)際上是通過掃描的方式確定有無按鍵按下,故我們還要設(shè)置好掃描的頻率等,由硬件電路知道,8279有一時(shí)鐘輸入引腳CLK接于單片機(jī)的ALE引腳上,在單片機(jī)正常工作時(shí),ALE引腳輸出的為晶振頻率六分之一的脈沖,這正是8279掃描的時(shí)鐘源,當(dāng)然,8279的掃描頻率不可能達(dá)到單片機(jī)晶振的輸出頻率那么高,其實(shí)際的最大掃描頻率為100KH左右,故我們需要一設(shè)置分頻命令。那么這三個(gè)命令的命令字是如何得到的呢?參考上面命令字的格式可以知道:(1)清除寄存器命令的高三位特征位應(yīng)該為110,又由于我們是將顯示RAM全部清零,故D4到D2位應(yīng)該選擇為100,由于對(duì)顯示RAM的清除方式選擇由D3和D2控制,故要求其D0位為1。故最終得到的命令字為11010001,轉(zhuǎn)換為十六進(jìn)制即為0xd1。(2)設(shè)置按鍵方式中,其特征位的代碼為000。由于未用到顯示功能,故其對(duì)應(yīng)控制位D4與D3可以隨便設(shè)置,在此均設(shè)置為00。至于按鍵工作方式的選擇,我們只所以選擇內(nèi)部譯碼掃描鍵盤N鍵依次讀出的方式,是結(jié)合實(shí)際情況的結(jié)果。雙鍵互鎖的方法是當(dāng)鍵盤同時(shí)有兩個(gè)鍵按下時(shí),任何一個(gè)鍵值均不能進(jìn)入FIFO RAM中,直至僅剩一個(gè)鍵保持閉合時(shí),該鍵值才能進(jìn)入到FIFO RAM中。而N鍵依次讀出方式,是N個(gè)鍵同時(shí)按下的保護(hù)方法。當(dāng)有若干個(gè)鍵

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論