單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)單片機(jī)電子鐘合一_第1頁
單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)單片機(jī)電子鐘合一_第2頁
單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)單片機(jī)電子鐘合一_第3頁
單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)單片機(jī)電子鐘合一_第4頁
單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)單片機(jī)電子鐘合一_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)實(shí)踐課題及任務(wù)課題簡介該課題主要是利用單片機(jī)技術(shù)進(jìn)行的一項(xiàng)軟、硬件開發(fā)技術(shù)。其目的是培養(yǎng)學(xué)生利用單片機(jī)技術(shù)解決生產(chǎn)、生活中的實(shí)際問題,對提高學(xué)生設(shè)計(jì)能力動手能力和工程實(shí)踐技能有較重要的意義。學(xué)生應(yīng)具備電路分析、電子技術(shù)、單片機(jī)技術(shù)等方面的相關(guān)知識,熟悉單片機(jī)系統(tǒng)流程圖、硬件結(jié)構(gòu)圖及匯編語言,能進(jìn)行單片機(jī)控制電路的連接、程序編寫、輸入、修改及調(diào)試等課題任務(wù)要求一、 畢業(yè)設(shè)計(jì)(論文)的內(nèi)容概述:汽車?yán)锍瘫硎且环N具有速度測量,行程測量、超速報(bào)警及LCD顯示功能的單片機(jī)應(yīng)用系統(tǒng),利用硬件電路和軟件控制來實(shí)現(xiàn)上述功能。二、畢業(yè)設(shè)計(jì)(論文)的要求與數(shù)據(jù):1、寫出汽車?yán)锍瘫淼目刂埔蠓治?、畫出硬件電路

2、接線圖3、畫出控制系統(tǒng)流程圖4、編寫控制程序5、寫出汽車?yán)锍瘫淼氖褂谜f明三、畢業(yè)設(shè)計(jì)(論文)應(yīng)完成的工作:1、畢業(yè)設(shè)計(jì)(論文)應(yīng)有詳細(xì)的設(shè)計(jì)方案、控制電路、控制程序及分析說明2、畢業(yè)設(shè)計(jì)(論文)應(yīng)在規(guī)定的時(shí)間內(nèi)完成3、畢業(yè)設(shè)計(jì)(論文)應(yīng)嚴(yán)格按設(shè)計(jì)規(guī)范打印、裝訂進(jìn)程安排參考資料1、單片機(jī)原理及應(yīng)用 北京航空航天大學(xué)出版社 孫涵芳主編2、電子技術(shù) 高教出版社 胡宴如主編3、電子線路CAD 機(jī)械工業(yè)出版社 王廷才主編4、單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù) 北京航空航天大學(xué)出版社 周航慈主編湖南工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)實(shí)踐開題報(bào)告書 系 專業(yè) 學(xué)生姓名班級學(xué)號課題名稱 課題準(zhǔn)備情況思路和方法擬重點(diǎn)解決的問題計(jì)劃進(jìn)度指

3、導(dǎo)教師意見 簽名:年 月 日湖南工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)實(shí)踐考核表 系 專業(yè) 學(xué)生姓名班級學(xué)號課題名稱 課題完成情況及自我評價(jià)指導(dǎo)教師評價(jià)評語評分 (共40分)簽名: 年 月 日評閱教師評價(jià)評語評分 (共30分)簽名: 年 月 日答辯小組評價(jià)評語評分 (共30分)組長簽名: 年 月 日畢業(yè)實(shí)踐評審組審核 經(jīng)綜合考核該學(xué)生畢業(yè)實(shí)踐得分 分,評定為 組長簽名:年 月 日電動自行車?yán)锍瘫淼能浖O(shè)計(jì)序 言本文介紹里程表設(shè)計(jì)以單片機(jī)和霍爾傳感器為核心?;魻杺鞲衅鲗⒌絹淼牡碗娖矫}沖信號輸入到單片機(jī)進(jìn)行控制與計(jì)算,再采用LED模塊進(jìn)行顯示,使得電動自行車的里程數(shù)據(jù)能直觀的顯示給使用者。自行車?yán)锍瘫硎怯糜谶h(yuǎn)距離連

4、續(xù)測量自行車行駛距離的儀表。它分為電源、霍爾傳感器和顯示器3部分。目前,里程表普遍使用在汽車和摩扦車上,是一種機(jī)械測量裝置,測試精度相對低,自行車上使用里程表的還很少見。針對這種情況,研制新型的數(shù)字化里程表用于自行車上是非常必要的。本文介紹的自行車?yán)锍瘫硎怯呻娫捶€(wěn)壓系統(tǒng)供電,AT89C52單片機(jī)為中央處理器,結(jié)合高精度的控制電路,方便地實(shí)現(xiàn)了智能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計(jì),并且使用方便。里程表廣泛應(yīng)用于各類機(jī)車,包括廠礦企業(yè)所使用的電機(jī)車和汽車、摩托車等。傳統(tǒng)的機(jī)械式里程表雖然穩(wěn)定可靠,但功能單一,隨著電子技術(shù)的迅猛發(fā)展,電子式里程表得以廣泛應(yīng)用。一種以單片機(jī)為核心的里程

5、表,它不僅可以顯示車輛行駛的總里程,也可顯示一段時(shí)間的階段里程,并且具有較強(qiáng)的再開發(fā)能力。這一切都是因?yàn)槔昧藛纹瑱C(jī)系統(tǒng)強(qiáng)大的數(shù)據(jù)存儲和處理控制功能。里程表以單片機(jī)AT89C52為核心,由系統(tǒng)輸入、單片機(jī)部分和系統(tǒng)輸出組成。第 1 章 緒論單片機(jī)自從推出以來,以其超小型化、結(jié)構(gòu)緊湊、可靠性高、成本低等優(yōu)點(diǎn)被人們廣泛接受,從而應(yīng)用于工業(yè)、電訊、數(shù)據(jù)處理、儀器儀表等多方面。電動自行車?yán)锍瘫硎请妱幼孕熊嚨闹匾浼?,在電動自行車儀表中占重要位置,但幾十年來其發(fā)展變化并不大,現(xiàn)在國外很多車中使用了數(shù)字里程表,但在國內(nèi)還并不多見。1.1 課題背景里程表的原理很簡單,因?yàn)槠囓囕喌闹睆揭阎?,車輪的圓周長便是

6、恒定不變的。由此可以計(jì)算出每走一里路車輪要轉(zhuǎn)多少圈,這個(gè)數(shù)也是恒定不變的。因此只要能夠自動把車輪的轉(zhuǎn)數(shù)積累下來,然后除以每一里路對應(yīng)的轉(zhuǎn)數(shù)就可以得到行駛的里程了。這樣簡單的原理古人就已經(jīng)發(fā)現(xiàn),并且開始使用了?!坝浝锕能嚒本褪沁@樣的裝置,它是利用上述原理,再加上巧妙的機(jī)構(gòu)使得車輪每轉(zhuǎn)一定圈數(shù)就自動敲一下鼓,此時(shí)只要有專人把它記下了,就可以得到所走里程。此裝置十分巧妙無論白天、黑夜均可使用,而且盲人也可使用,體現(xiàn)出了我國古代勞動人民的聰明才智。不過,如果車上沒有人默記鼓聲數(shù)目的話,單靠記里鼓車本身還不能累計(jì)一共走了多少里。而且車停下來之后誰也不知道這車曾經(jīng)走過多少里路,這是美中不足之處。從保護(hù)環(huán)境

7、和經(jīng)濟(jì)條件許可等因素綜合來看,電動自行車目前乃至今后都有著廣闊的發(fā)展空間。目前市面上電動自行車的速度表和里程表都是機(jī)械的,看起來不夠直觀與方便。如果能用LED直接顯示出來里程數(shù)或速度值,就可節(jié)省用戶的時(shí)間及精力處理自行車行進(jìn)過程中的突發(fā)事件。1.2 里程表的發(fā)展現(xiàn)在汽車上的里程表可就不一樣了,它克服了“記里鼓車”的不足之處,既能告訴你這次走了多少公里,也能記憶自從出廠以來一共走了多少公里,于是,車輛是否需要大修,發(fā)動機(jī)比例關(guān)系是否應(yīng)該報(bào)廢,全都有記錄可依。汽車發(fā)動機(jī)的軸把動力傳給變速箱,從變速箱的輸出軸到車輪的傳動比是不變的。在變速箱的輸出軸上裝有一根“軟軸”,一直通到駕駛員面前的里程表里去。

8、所謂“軟軸”就是像自行車線閘用的拉線那樣有鋼絲芯的螺旋管,管壁和內(nèi)芯之間有潤滑油,外管固定而內(nèi)芯可以轉(zhuǎn)動,這個(gè)內(nèi)芯的轉(zhuǎn)速與車輪的轉(zhuǎn)速有著恒定的比例關(guān)系。軟軸通到車速表,使得指針能把車的行駛速度指示出來。同時(shí),軟軸旋轉(zhuǎn)還經(jīng)過蝸輪蝸桿傳到車速表中間的滾輪計(jì)數(shù)器上,把車輪的轉(zhuǎn)數(shù)所代表的里程數(shù)累計(jì)了下來,因?yàn)檐囁俸屠锍潭际强客桓涊S傳來的旋轉(zhuǎn)動作驅(qū)動的,所以這兩個(gè)表在一起,前者用指針指示,后者由滾輪計(jì)數(shù)器累計(jì)。新型小汽車的里程表里包括由同一軟軸帶動的兩個(gè)滾輪計(jì)數(shù)器,分別累計(jì)本次里程和總里程。本次里程通常有四位數(shù),供短期計(jì)數(shù),這是可以清零的;總里程則有六位數(shù),不能清零。本次里程的單獨(dú)指示和清零對于出租

9、車的計(jì)費(fèi)十分不方便。最近電子式車速里程表逐步推廣,它不用軟軸,而是在變速箱輸出軸上安裝脈沖發(fā)生器,用導(dǎo)線把電脈沖傳到儀表里,用脈沖頻率指示速度,用脈沖計(jì)數(shù)器累計(jì)里程。看起來電子式車速里程表比先前的機(jī)械電磁式的更合理,因?yàn)樗挥密涊S傳動。但是因?yàn)闄C(jī)械電磁式的價(jià)格比較便宜,在目前汽車?yán)镉玫萌匀槐容^多。 汽車?yán)锍瘫碇饕譃闄C(jī)械式和電子式兩種,目前市場上的大部分新車型都采用電子式里程表,而配備機(jī)械式里程表的大都屬于較老車型,在二手車市場上比較多見,像老款的捷達(dá)、普桑和富康,這些熱銷車型都是機(jī)械式里程表?;卣{(diào)里程表其實(shí)很簡單,尤其是機(jī)械式里程表,幾分鐘就可以了。而調(diào)整電子式里程表的成本較高,需要專門的設(shè)

10、備?,F(xiàn)在市面上就有一種專門針對電子式里程表的調(diào)表儀器。早期的機(jī)械軟軸的里程表幾乎已經(jīng)消失了,取而代之的是電子式的里程表和液晶顯示屏,過去可以通過撥數(shù)碼齒輪的方式調(diào)整里程表,現(xiàn)在這些方法都行不通,不過調(diào)表的需求并不隨調(diào)整難度的增加而減少,如賣車和新車的都需要減小里程數(shù)掩蓋車子真實(shí)行駛里程。公家車的司機(jī)又需要增加里程數(shù)。如果減小液晶表的公里數(shù)只能通過編程器調(diào)整存儲片數(shù)據(jù)來實(shí)現(xiàn),這需要專門的設(shè)備和知識,普通人要調(diào)整的確不易。但如果要增加公里數(shù)實(shí)現(xiàn)起來就要容易很多了,我們只要給車速傳感器提供一個(gè)符合要求的信號就可以了。1.3 設(shè)計(jì)的主要內(nèi)容及技術(shù)指標(biāo)單片機(jī)軟件設(shè)計(jì)程序主要包括里程設(shè)計(jì)模塊;存儲歷史里程

11、數(shù)據(jù)設(shè)計(jì)模塊;里程的顯示設(shè)計(jì)模塊;里程公里數(shù)的累計(jì)設(shè)計(jì)模塊;里程公里數(shù)的清0設(shè)計(jì)模塊。里程計(jì)數(shù)時(shí)有一盞指示燈閃爍;用AT24C01進(jìn)行對歷史里程數(shù)據(jù)存儲;用共陰7段動態(tài)顯示的數(shù)碼管進(jìn)行顯示公里數(shù);用個(gè)開關(guān)實(shí)現(xiàn)對里程公里數(shù)的清0功能;用霍爾傳感器實(shí)現(xiàn)對里程車輪圈數(shù)的累計(jì)功能。主要技術(shù)指標(biāo):一. 完成里程的顯示功能二能存貯歷史里程數(shù)據(jù)三能夠清除歷史數(shù)據(jù)四有一盞指示燈第 2 章 硬件的設(shè)計(jì)2.1 單片機(jī)簡介單片機(jī)是單片微型計(jì)算機(jī)(Singlc-Chip Microcomputer)的簡稱。單片機(jī)是將中央處理器(CPU),程序存貯器(ROM或EPROM),隨機(jī)存貯器(RAM),定時(shí)器/計(jì)數(shù)器,并行及串

12、行I/O口等電路集成在一塊芯片上做成的計(jì)算機(jī)。單片機(jī)的典型結(jié)構(gòu)如圖2-1-1所示。定時(shí) 計(jì)數(shù)器時(shí)鐘CPU串行口并行口ROM RAM單片機(jī)的典型結(jié)構(gòu)(圖2-1-1)單片機(jī)與一般的非單片型微型機(jī)相比,具有以下特點(diǎn):Ø 具有較強(qiáng)的通用性又有相當(dāng)?shù)膶S眯?,尤其適合于各種控制系統(tǒng)。Ø 片內(nèi)帶有定時(shí)器/計(jì)數(shù)器。Ø 片內(nèi)設(shè)有多個(gè)I/O接口,便于系統(tǒng)擴(kuò)展及信息交換。Ø 使用匯編語言,指令系統(tǒng)的指令字節(jié)數(shù)較少,程序執(zhí)行速度快,節(jié)省存貯器。Ø 多品種,多系列。2.2 AT89系列單片機(jī)簡介AT89系列單片機(jī)是以8051為內(nèi)核,結(jié)合自己的技術(shù)優(yōu)勢構(gòu)成的,所以它和80

13、51是兼容的系列。因此,AT89系列對于以8051為基礎(chǔ)的應(yīng)用系統(tǒng)而言,是十分容易進(jìn)行取代和構(gòu)成的。而且對于熟悉8051的用戶來說,選用AT89系列單片機(jī)進(jìn)行系統(tǒng)設(shè)計(jì)也是輕而易舉的。AT89系列單片機(jī)具有下列很明顯的優(yōu)點(diǎn):1 和AT8051接插相兼容AT89系列單片機(jī)的引腳和8051是一樣的,因此,當(dāng)選用AT89系列單片機(jī)取代8051時(shí),可以直接替換。這時(shí)不管是采用40引腳還是44引腳產(chǎn)品,只要選用相同的AT89系列單片機(jī)取代8051單片機(jī)即可。 2 以EEPROM電可檫除和Flash技術(shù)為主導(dǎo)的存儲器ATMEL公司把EEPROM和Flash技術(shù)巧妙相結(jié)合形成特殊的集成電路,從而使應(yīng)用領(lǐng)域擴(kuò)大

14、。由于AT89系列內(nèi)部含有Flash存儲器,因此在系列的開發(fā)過程中可以十分容易地進(jìn)行程序的修改,從而大大縮短了系統(tǒng)的開發(fā)周期。同時(shí),在系統(tǒng)的工作過程中,能有效地保存部分重要數(shù)據(jù),不受外界因素而遭到破壞(如電源故障等),這給便攜類產(chǎn)品的應(yīng)用提供了極大方便。含有EEPROM和Flash存儲器是AT產(chǎn)品的明顯特色之一。3 靜態(tài)時(shí)鐘方式AT89系列單片機(jī)采用靜態(tài)時(shí)鐘方式,可以節(jié)省電能。這對于降低便攜類產(chǎn)品的應(yīng)用提供了極大方便。含有EEPROM和Flash存儲器是AT產(chǎn)品的明顯特色之一。2.3 AT89C52系列單片機(jī)的介紹AT89C52是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)

15、含8K bytes 的可反復(fù)擦寫的只讀程序存儲器(PEROM)和256 bytes 的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度,非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。主要性能參數(shù):1. 與MCS-51產(chǎn)品指令和引腳完全兼容2. 18K 字節(jié)可重擦寫Flash閃速存儲器3. 1000次擦寫周期4. 全靜態(tài)操作:0Hz-24MHz5. 三級加密程序存儲器6. 256*8字節(jié)內(nèi)部RAM7. 32個(gè)可編程I/O口線8. 3個(gè)16位定時(shí)

16、/計(jì)數(shù)器9. 8個(gè)中斷源10.可編程串行UART通道11.低功耗空閑和掉電模式 功能特性概述: AT89C52提供以下標(biāo)準(zhǔn)功能:8K 字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量兩級中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。引腳如圖3.3-1所示。振蕩器反相放大器如圖3.3-2所

17、示。 圖3.3-1 XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 XTAL2NCXTAL1 外部振蕩信號輸入GND圖3.3-2中斷:AT89C52共有6個(gè)中斷向量:兩個(gè)外中斷(INT0和INT1),3個(gè)定時(shí)器中斷(定時(shí)器0,1,2)和串行口中斷。所有這些中斷源可通過分別設(shè)置專用寄存器IE的置位或清0來控制每一個(gè)中斷的允許或禁止。IE也有一個(gè)總禁止位EA,它能控制所有中斷的允許或禁止。AT89C52編程方法:1. 在地址線上加上要編程單元的地址信號。2. 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3. 激活相應(yīng)的控制信號。4. 在高電壓編程方式時(shí),將/V

18、pp端加上+12V編程電壓。5. 每對Flash存儲陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序加密位,加入一個(gè) ALE/編程脈沖。每個(gè)字節(jié)寫入周期是自身定時(shí)的,通常約為1.5ms。重復(fù)1-5步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。 AT89C52的極限參數(shù):工作溫度:-55 to +125 儲藏溫度:-65 to +150任一引腳對地電壓:-1.0V to +7.0V最高工作電壓:6.6V直流輸出電流:15.0mA2.4 里程表各部分電路介紹本次里程表的設(shè)計(jì),硬件電路主要由霍爾傳感器電路,里程指示電路,里程數(shù)據(jù)存儲電路,時(shí)鐘電路,LED顯示模塊及74LS07驅(qū)動器構(gòu)成。2.4.1 霍

19、爾傳感器電路霍爾傳感器電路圖如下圖3.4.1-1所示。圖3.4.1-12.4.2 里程指示電路霍爾傳感器發(fā)出一個(gè)低電平脈沖,里程顯示時(shí)四個(gè)數(shù)碼管點(diǎn)亮后開始計(jì)數(shù),表明電動自行車正在行駛中,一盞指示燈一直閃爍著。電路如圖3.4.2-1所示。圖3.4.2-12.4.3 里程數(shù)據(jù)存儲電路里程數(shù)據(jù)的存儲電路是本次設(shè)計(jì)的關(guān)鍵電路,單片機(jī)首先向AT24C01發(fā)送寫信號,當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲存單元提取數(shù)據(jù)然后向AT24C01的內(nèi)部地址傳送數(shù)據(jù)。當(dāng)顯示里程時(shí),單片機(jī)首先向AT24C01發(fā)送讀信號,然后確認(rèn)后,單片機(jī)從AT24C01內(nèi)部的地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù),供顯示所用。因此,最終可保證掉電

20、時(shí)數(shù)據(jù)不丟失。IC總線的的介紹:IC總線是雙線串行總線。IC總線采用二線傳輸,即SDA串行數(shù)據(jù)線和SCL串行時(shí)鐘線??偩€和器件之間的數(shù)據(jù)傳送均由SDA數(shù)據(jù)線完成。一個(gè)IC總線系統(tǒng)里的所有外圍器件均采用器件地址和引腳地址的編址方式。系統(tǒng)中主CPU對任何節(jié)點(diǎn)的尋址沒有采用傳統(tǒng)的片選線方式,而是采用純軟件的尋址方式。為了能使總線上的所有節(jié)點(diǎn)器件輸出實(shí)現(xiàn)“線”與邏輯功能,IC器件輸出端必須是漏極或集電極開路結(jié)構(gòu),即SDA和SCL接口線上必須加上拉電阻。里程數(shù)據(jù)存儲電路,如圖3.4.3-1: 圖3.4.3-12.4.4 時(shí)鐘電路 圖3.4.4-1 在圖3.4.4-1的電路中,電容器C1和C2對振蕩頻率有

21、微調(diào)作用,通常的范圍:30±10PF;石英晶體選擇6MHZ或12MHZ都可以。其結(jié)果只是機(jī)器周期時(shí)間不同,影響計(jì)數(shù)器的計(jì)數(shù)初值。2.4.5 LED顯示模塊電路及74 LS07驅(qū)動器 LED顯示器采用動態(tài)顯示,用74LS07驅(qū)動共陰極LED數(shù)碼管。LED顯示模塊電路圖,如圖3.4.5-1所示。LED數(shù)碼管結(jié)構(gòu)圖,如圖3.4.5-2(a),(b)為共陰極型,(c)為共陽極型。 圖3.4.5-1圖3.4.5-2OC門驅(qū)動器用7407,7407 即TTL 集電極開路六正相高壓驅(qū)動器.當(dāng)7407輸出低電平時(shí),沒有電流流過LED,當(dāng)7407輸出為開路狀態(tài)時(shí),電流經(jīng)100限流電阻流入LED顯示器,

22、每個(gè)七段LED的公共端都接一個(gè)7407驅(qū)動器。7407模型如圖3.4.5-3: 圖3.4.5-3 7407引腳如圖3.4.5-4: 圖3.4.5-4 第 3 章 軟件的設(shè)計(jì)3.1 系統(tǒng)的總體設(shè)計(jì)一個(gè)完整的單片機(jī)系統(tǒng),包括軟硬件兩個(gè)方面。硬件是系統(tǒng)可靠運(yùn)行的“載體”,是基礎(chǔ),而軟件則是使“載體”產(chǎn)生動力的發(fā)電機(jī),二者相輔相成,缺一不可。從設(shè)計(jì)者的角度出發(fā),一個(gè)硬件電路的設(shè)計(jì)過程往往就是設(shè)計(jì)者的經(jīng)驗(yàn)不斷積累的過程??傮w設(shè)計(jì)流程:在設(shè)計(jì)硬件電路時(shí):一般的流程是:(1) 器件選擇(包括單片機(jī)和外圍芯片的選擇)(2) 電路圖繪制(3) PCB制板(4) 硬件檢查和排錯(cuò)(5) 硬件電路調(diào)試完畢只有在硬件平

23、臺建立之后才能更好進(jìn)入軟件系統(tǒng)的調(diào)試。在進(jìn)行軟件系統(tǒng)的設(shè)計(jì)時(shí),設(shè)計(jì)者首先要建立完整,總體的概念,一個(gè)完整的軟件系統(tǒng)是由各個(gè)功能模塊組成的。程序設(shè)計(jì)者要時(shí)刻牢記如何將那些獨(dú)立,分散的子程序模塊通過主程序連接起來,并最終實(shí)現(xiàn)系統(tǒng)的目標(biāo)功能。3.2 單片機(jī)應(yīng)用軟件設(shè)計(jì)應(yīng)用軟件應(yīng)在硬件電路的支持下能可靠地實(shí)現(xiàn)應(yīng)用系統(tǒng)的各種功能。它應(yīng)具有下列特點(diǎn):(1) 結(jié)構(gòu)清晰,簡捷,流程合理。(2) 各功能程序模塊化,子程序化,既便于調(diào)試,鏈接,也便于移植,修改。(3) 程序存儲區(qū),數(shù)據(jù)存儲區(qū)規(guī)劃合理,既節(jié)約內(nèi)存容量,又便于操作。(4) 各功能程序的運(yùn)行狀態(tài),運(yùn)行結(jié)果以及運(yùn)行要求盡量設(shè)置狀態(tài)標(biāo)志,以便查詢,控制與程

24、序判轉(zhuǎn)。(5) 調(diào)試修改后,還應(yīng)規(guī)范化,以利于交流,借鑒,為模塊化,標(biāo)準(zhǔn)化打下基礎(chǔ)。(6) 做好抗干擾設(shè)計(jì),這是計(jì)算機(jī)應(yīng)用系統(tǒng)提高可靠性的有力措施。(7) 設(shè)置自診斷程序,系統(tǒng)工作前先運(yùn)行自診斷程序,檢查系統(tǒng)各特征狀態(tài)參數(shù)是否正常,以提高運(yùn)行的可靠性。開發(fā)步驟:(1) 確定任務(wù):a) 確定系統(tǒng)的功能,指標(biāo),成本 b) 完成期限(2) 總體設(shè)計(jì):a) 調(diào)研 b) 機(jī)型選擇 c) 軟硬件任務(wù)劃分 I. 硬件開發(fā) 一繪出線路圖 二選購元器件 三組裝 四調(diào)試硬件 II. 軟件開發(fā)一建立數(shù)學(xué)模型,確定算法,安排數(shù)據(jù)結(jié)構(gòu)二設(shè)計(jì),編制各子程序模塊三各子程序進(jìn)行調(diào)試四各子程序連接起來調(diào)試(3) 樣機(jī)聯(lián)調(diào): a

25、) 軟,硬件結(jié)合起來調(diào)試 b) 找出錯(cuò)誤,修改軟,硬件 c) 實(shí)時(shí)仿真,直至滿足設(shè)計(jì)要求(4) 產(chǎn)品定型: a) 形成工藝 b) 編寫技術(shù)文件3.3 中斷控制和的中斷請求信號由外部產(chǎn)生并輸入,稱外部中斷,其余的中斷請求信號均由主機(jī)內(nèi)部產(chǎn)生,故稱為內(nèi)部中斷。本次里程表的設(shè)計(jì)只用到外部中斷:外部中斷0請求中斷輸入端口(P3.2引腳),低電平或負(fù)跳變(從高到低)有效。中斷屏蔽: AT89C52的中斷均屬可屏蔽中斷,即通過軟件對特殊功能寄存器IE的設(shè)置,實(shí)現(xiàn)對各中斷源的中斷請求開放(允許)或屏蔽(禁止)的控制。中斷響應(yīng)的過程:AT89C52的指令系統(tǒng)中設(shè)有兩條返回指令:RET和RETI。調(diào)用子程序中應(yīng)

26、選用RET返回指令,中斷服務(wù)程序中應(yīng)選用RETI返回指令,如采用的是RET返回指令,雖然也能使中斷服務(wù)程序返回原斷點(diǎn)處繼續(xù)往下執(zhí)行原程序,但它不會告知中斷控制系統(tǒng),現(xiàn)行中斷服務(wù)程序已執(zhí)行完畢,致使中斷控制系統(tǒng)誤認(rèn)為仍在執(zhí)行中斷服務(wù)程序而屏蔽新的中斷請求。因此,中斷服務(wù)程序的返回必須用RETI指令,而不能用RET返回指令代替。中斷響應(yīng)時(shí)間:從中斷源發(fā)生中斷請求到主機(jī)響應(yīng)中斷,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序需要3-8個(gè)機(jī)器周期。外部中斷0矢量地址:0003H。3.4 I/O口的控制方式在單片機(jī)中,為了實(shí)現(xiàn)數(shù)據(jù)的輸入輸出傳送,通常使用三種控制方式。即:無條件傳送方式,查詢方式和中斷方式。無條件傳送方式適用于以

27、下器件或設(shè)備的輸入輸出:例如,機(jī)械或電子開關(guān),指示燈,發(fā)光二極管,數(shù)碼管等。它們隨時(shí)處于“準(zhǔn)備好”狀態(tài)方便數(shù)據(jù)的傳輸。查詢方式:為了實(shí)現(xiàn)查詢方式的數(shù)據(jù)輸入輸出傳送,需要由接口電路提供部,器件或設(shè)備的狀態(tài),并以軟件方法進(jìn)行狀態(tài)測試。因此,這是一種軟,硬件方法結(jié)合的數(shù)據(jù)傳送方式。程序查詢流程如圖4.4-1所示。讀入狀態(tài)信息 N準(zhǔn)備好了嗎?數(shù)據(jù)傳送 Y圖4.4-1中斷方式: 中斷方式與查詢方式的主要區(qū)別在于如何知道,器件或外設(shè)是否為數(shù)據(jù)傳輸作好了準(zhǔn)備。查詢方式是主機(jī)主動查詢。而中斷方式則為部,器件或外設(shè)主動請求。采用中斷方式進(jìn)行數(shù)據(jù)傳輸時(shí),當(dāng)部,器件或外設(shè)為數(shù)據(jù)傳輸已作好準(zhǔn)備之后,就向主機(jī)發(fā)出中斷請

28、求(相當(dāng)于通知主機(jī)),主機(jī)在接收到中斷請求之后,在允許中斷的情況下,響應(yīng)中斷請求,暫停正在執(zhí)行的原程序,轉(zhuǎn)而去為部,器件或外設(shè)的數(shù)據(jù)提供傳輸服務(wù)。待服務(wù)完成之后,程序返回,主機(jī)再從斷點(diǎn)處繼續(xù)執(zhí)行原程序。3.5 里程表的軟件設(shè)計(jì)3.5.1 總體設(shè)計(jì)思路將各英寸的電動自行車輪胎車軸內(nèi)置一個(gè)小車輪,設(shè)小車輪周長約為150毫米(直徑為47.7毫米),以10毫米為單位分15等份,即15個(gè)脈沖,小車輪的轉(zhuǎn)動,方便大車輪的周長計(jì)算,更便于行駛公里數(shù)的計(jì)算,就不需要將圈數(shù)轉(zhuǎn)換成公里數(shù),避開了除法算法,降低了軟件程序的復(fù)雜度。假設(shè)小車輪周長約為150毫米(直徑為47.7毫米),不是毫無根據(jù)的。由22英寸到28英

29、寸電動自行車的規(guī)格見下表4.5.1-1所示。大車輪與小車輪的模擬圖如圖4.5.1-2所示。 表4.5.1-1規(guī)格(英寸)直徑(毫米)周長(毫米)22558.81752 24609.61912 26660.42072 28771.22233大車輪 小車輪l 圖4.5.1-2最小的電動自行車尺寸的車輪周長為1752毫米,小車輪的周長要略小于大車輪的周長,假設(shè)為1500毫米,在將其值縮小10倍,因此得到小車輪的周長值。主程序流程圖如圖4.5.1-3所示。 初始化 讀AT24C01判內(nèi)部數(shù)據(jù)處理P1和P3規(guī)定作為電平拉高輸入口開總中斷和外部中斷,設(shè)堆棧指針SP開P0和P2口按下P1.1接的開關(guān)按下P3

30、.6接的開關(guān)END圖4.5.1-3 判內(nèi)部數(shù)據(jù)處理:AT24C01出廠時(shí)原有數(shù)據(jù)BM單元是否為0FFH,等于0FFH時(shí),BM單元清0,寫到AT24C01中,不等于時(shí)再次判斷AT24C01出廠時(shí)原有數(shù)據(jù)KM單元是否為0FFH,等于0FFH時(shí),KM單元清0, 寫到AT24C01中,以此類推,判斷到BKM單元為止。當(dāng)AT24C01出廠時(shí)原有數(shù)據(jù)BKM單元不為0FFH,調(diào)用顯示處理子程序。按下P3.6接的開關(guān):調(diào)用計(jì)數(shù)處理子程序,計(jì)數(shù)時(shí)P1.0口接的指示燈會閃爍點(diǎn)亮。BMM, M,SM,BM,KM,SKM,BKM單元加處理時(shí),判斷是否到10進(jìn)1,BMM,M,SM單元每加一次都不需要存人AT24C01和

31、顯示,BM加處理后儲存AT24C01,并顯示。按下P1.1接的開關(guān):調(diào)用清除數(shù)據(jù)子程序。3.5.2 里程的設(shè)計(jì)里程數(shù)據(jù)存放單元見如下表4.5.2-1所示。 表4.5.2-1BKMSKMKMBMSMMBMMSMMMM50H55H54H53H52H51H56H因?yàn)殡妱幼孕熊嚴(yán)锍瘫淼挠布O(shè)計(jì)里程的顯示部分是采用四個(gè)共陰極的數(shù)碼管,所以只能顯示BM(0.1公里),KM(公里),SKM(十公里),BKM(百公里)。但設(shè)計(jì)時(shí)從BMM(分米)開始置存放單元并顯示,每按一下P3.6開關(guān),存放單元數(shù)據(jù)進(jìn)行累加一,而BMM(分米),M(米),SM(十米)置存儲單元,雖然沒顯示但騎電動自行車時(shí)BMM(分米),M(米

32、),SM(十米)累加的。因此BMM(分米),M(米),SM(十米)加處理后不存儲AT24C01,而BM(0.1公里),KM(公里),SKM(十公里),BKM(百公里)加處理后存儲AT24C01后再在數(shù)碼管上顯示。3.5.3 存貯歷史里程數(shù)據(jù)的設(shè)計(jì)存貯歷史里程數(shù)據(jù)要用到IC總線,IC (InterIntegrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。IC總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。IC總線協(xié)議定義如下: 只有在總線非忙時(shí)才被允許進(jìn)行數(shù)據(jù)傳送。 在數(shù)據(jù)傳送時(shí)

33、,當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線必須為固定狀態(tài),不允許有跳變;當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線的任何電平變化將被當(dāng)作總線的啟動或停止條件。IC總線的數(shù)據(jù)傳輸和器件尋址:1總線數(shù)據(jù)傳送的起始和停止標(biāo)志 IC總線每一次數(shù)據(jù)傳送,都由主器件發(fā)送起始信號開始,發(fā)送停止信號結(jié)束,當(dāng)SCL時(shí)鐘線為高電平,SDA數(shù)據(jù)線出現(xiàn)高電平向低電平的下降沿信號時(shí)即為總線的起始信號;相反,當(dāng)SDA數(shù)據(jù)線出現(xiàn)由低電平向高電平的上升沿信號時(shí)即為總線的停止信號。2. IC總線上的數(shù)據(jù)傳輸格式主CPU發(fā)生起始信號表明一次數(shù)據(jù)傳送的開始,其后為尋址字節(jié),尋址字節(jié)由高7位地址和1位方向位組成,方向位表明CPU與從器件之間的數(shù)據(jù)傳送方向,當(dāng)該位

34、為“0” 時(shí)表明CPU對從器件進(jìn)行寫操作,為“1”時(shí)是讀操作。尋址字節(jié)后是按指定地址讀,寫操作的數(shù)據(jù)字節(jié)與應(yīng)答位。主CPU發(fā)出尋址信號后,地址與自己相符的從器件便會產(chǎn)生一個(gè)應(yīng)答信號。數(shù)據(jù)字節(jié)的后面也跟隨一個(gè)應(yīng)答信號,應(yīng)答信號在第9個(gè)時(shí)鐘位上出現(xiàn)。3本設(shè)計(jì)常用IC總線芯片的器件和引腳地址。見表4.5.3-1所示。 表4.5.3-1 型號 種類 器件地址 引腳地址AT24C01 EEPROM 1010 A2A1A0AT24C01是美國ATMEL公司生產(chǎn)的串行EEPROM芯片,容量分別為1288位,主要特性如下: 具有頁寫功能,AT24C01為4B; 可擦寫次數(shù)100000次; 數(shù)據(jù)保存周期為100

35、年; 8引腳DIP或SOIC封裝。AT24C01的引腳排列,接口電路圖如如圖2.3.2-1所示,說明如下: A0,A1,A2為器件地址選擇線; SDA為串行數(shù)據(jù)線; SCL為串行時(shí)鐘線; WP(EN)為寫保護(hù)端(當(dāng)該端口為高電平時(shí),不可對存儲器寫操作); Vcc為正電壓1.8-5.5V; Vss為地。IC總線基本操作:IC規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件(本文為AT24C01)都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器CPU)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。S

36、DA線上的數(shù)據(jù)狀態(tài)僅在 SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。AT24C系列串行PROM具有IC總線接口功能,功耗小,寬電源電壓(根據(jù)不同型號2.5V6.0V),工作電流約為3mA,靜態(tài)電流隨電源電壓不同為30A110A。AT24C系列PROM接口及地址選擇:由于IC總線可掛接多個(gè)串行接口器件,在IC總線中每個(gè)器件應(yīng)有唯一的器件地址,按IC總線規(guī)則,器件地址為7位數(shù)據(jù)(即一個(gè)IC總線系統(tǒng)中理 論上可掛接128個(gè)不同地址的器件),它和1位數(shù)據(jù)方向位構(gòu)成一個(gè)器件尋址字節(jié),最低位D0為方向位(讀/寫)。器件尋址字節(jié)中的最高4位(D7D4) 為器

37、件型號地址,不同的IC總線接口器件的型號地址是廠家給定的,如AT24C系列PROM的型號地址皆為1010,器件地址中的低3位為引腳地址 A2A1A0,對應(yīng)器件尋址字節(jié)中的D3、D2、D1位,在硬件設(shè)計(jì)時(shí)由連接的引腳電平給定。AT24C系列PROM讀寫操作軟件實(shí)現(xiàn)方法: 對AT24C系列PROM的讀寫操作完全遵守I2C總線的主收從發(fā)和主發(fā)從收的規(guī)則。AT24C01的寫操作: 寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序連續(xù)寫操作是對E2PROM連續(xù)裝載n個(gè)字節(jié)數(shù)據(jù)的寫入操作,n隨型號不同而不同,一次可裝載字節(jié)數(shù)也不同。A

38、T24C01/02 8字節(jié)/每頁。AT24C01的讀操作: 讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。 連續(xù)讀操作時(shí)為了指定首地址,需要兩個(gè)偽字節(jié)寫來給定器件地址和片內(nèi)地址,重復(fù)一次啟動信號和器件地址(讀),就可讀出該地址的數(shù)據(jù)。由于偽字節(jié)寫中并未執(zhí)行寫操作,地址沒有加1。以后每讀取一個(gè)字節(jié),地址自動加1。 在讀操作中接收器接收到最后一個(gè)數(shù)據(jù)字節(jié)后不返回肯定應(yīng)答(保持SDA高電平)隨后發(fā)停止信號。IC總線共有9個(gè)歸一化

39、子程序組成,分別是:1. 啟動信號子程序2. 終止信號子程序3. 發(fā)送應(yīng)答位(A)子程序4. 發(fā)送應(yīng)答非位()子程序5. 檢查應(yīng)答位子程序6. 發(fā)送單字節(jié)子程序7. 接收單字節(jié)子程序8. 發(fā)送N字節(jié)子程序9. 接收N字節(jié)子程序標(biāo)記符號的定義: 1. VSDA: IC總線數(shù)據(jù)線;2. VSCL:IC總線時(shí)鐘線;3. SLA:發(fā)送/接收尋址字節(jié)內(nèi)RAM存儲單元;4. NUMB:發(fā)送/接收數(shù)據(jù)字節(jié)數(shù)N內(nèi)RAM存儲單元;5. MTD:發(fā)送數(shù)據(jù)內(nèi)RAM存儲區(qū)首地址;6. MRD:接收數(shù)據(jù)內(nèi)RAM存儲區(qū)首地址;由于EPROM的半導(dǎo)體工藝特性,對EPROM的寫入時(shí)間需要5-10ms,但AT24C01串行EP

40、ROM芯片內(nèi)部設(shè)置了一個(gè)具有SRAM性質(zhì)的輸入緩沖器,稱為頁寫緩沖器。CPU對該芯片寫操作時(shí),AT24C01芯片先將CPU輸入的數(shù)據(jù)暫存頁寫緩沖器內(nèi),然后慢慢寫入EPROM中。因此,CPU對AT24C01的EPROM一次寫入的數(shù)據(jù),受到該芯片頁寫緩沖器容量的限制。頁寫緩沖器的容量:AT24C01為8B.若CPU需寫入超過芯片頁寫緩沖器容量或超過頁寫緩沖器頁內(nèi)最大地址的數(shù)據(jù),應(yīng)在一頁寫完后,隔5-10ms重新啟動一次寫操作。保存數(shù)據(jù)子程序:WTDA:MOV A,#01H MOV R0,BM LCALL WT24 ACALL DEL MOV A,#02H MOV R0,KM LCALL WT24

41、ACALL DEL MOV A,#03H MOV R0,SKM LCALL WT24 ACALL DEL MOV A,#04H MOV R0,BKM LCALL WT24 RET存貯歷史里程數(shù)據(jù)的流程圖如圖4.5.3-2所示:啟動信號STAR發(fā)送數(shù)據(jù)發(fā)送尋址字節(jié)應(yīng)答將AT24C01分別讀入到BM,KM,SKM,BKM單元中 N應(yīng)答否?Y終 止 圖4.5.3-2位的傳輸: SDA 線上的數(shù)據(jù)必須在時(shí)鐘的高電平周期保持穩(wěn)定數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL 線的時(shí)鐘信號是低電平時(shí)才能改變。WRBYT: ;寫單字節(jié) MOV R1,#08HWLP: RLC A JC WR1AJMP WR0 ;跳入寫0

42、WLP1: DJNZ R1,WLP RETWR1: ;寫1 SETB SDA SETB SCL NOP NOP NOP NOP CLR SCL CLR SDA AJMP WLP1WR0: ;寫0 CLR SDA SETB SCL NOP NOP NOP NOP CLR SCL AJMP WLP1RDBYT: ;讀單字節(jié) MOV R1,#08HRLP: SETB SDA SETB SCL MOV A,P1 JNB ACC.7,RD0 ;轉(zhuǎn)讀0AJMP RD1 ;轉(zhuǎn)讀1RLP1: DJNZ R1,RLP ;8位全接收完畢,轉(zhuǎn)退出 RETRD0: CLR C MOV A,R2 RLC A MOV R

43、2,A CLR SCL AJMP RLP1RD1: SETB C MOV A,R2 RLC A MOV R2,A CLR SCL AJMP RLP1 END開始信號: SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。開始信號程序:STAR: CLR SDA LCALL DEL SETB SDA LCALL DEL SETB SCL CLR SDA LCALL DELCLR SCL RET結(jié)束信號: SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。結(jié)束信號程序:STOP: CLR SDA LCALL DEL SETB SCL LCALL DEL SETB SDA RET應(yīng)

44、答信號: 接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號后,等待受控單元發(fā)出一個(gè)應(yīng)答信號,CPU接收到應(yīng)答信號后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應(yīng)答信號,由判斷為受控單元出現(xiàn)故障。應(yīng)答信號程序:MACK: ;發(fā)應(yīng)答位 CLR SDA SETB SCL NOP NOP NOP NOP CLR SCL ETB SDA RETMNACK: ;發(fā)非應(yīng)答位SETB SDA SETB SCL NOP NOP NOP NOP CLR SCL CLR SDA RET3.5.4 里程的顯示設(shè)計(jì)用兩片74LS07分別驅(qū)動L

45、ED數(shù)碼管(共陰型動態(tài)顯示)和數(shù)碼管的小數(shù)點(diǎn)。 用一個(gè)開關(guān),用于開電動自行車時(shí)里程的計(jì)數(shù),并點(diǎn)亮一個(gè)指示燈。這個(gè)開關(guān)在觸點(diǎn)抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖動所致的檢測誤判,必須采取去抖動措施。這一點(diǎn)可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖,而當(dāng)鍵數(shù)較多時(shí),采用軟件去抖。本設(shè)計(jì)采用軟件用延時(shí)消抖動。編制按鍵程序:一個(gè)完善的按鍵控制程序應(yīng)具備以下功能:(1) 檢測有無按鍵按下,并采取硬件或軟件措施,消除按鍵機(jī)械觸點(diǎn)抖動的影響。(2) 有可靠的邏輯處理辦法。每次只處理一個(gè)按鍵,

46、其間對任何按鍵的操作對系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時(shí)間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序。 (3) 準(zhǔn)確輸出按鍵值(或鍵號),以滿足跳轉(zhuǎn)指令要求。按鍵觸點(diǎn)的抖動如圖4.5.4-1所示: 圖4.5.4-1具體工作如下:當(dāng)鍵盤無鍵按下時(shí),與門各輸入端均為高電平,保持輸出端為高電平;當(dāng)有鍵按下時(shí),端為低電平,向CPU申請中斷,若CPU開放外部中斷,則會響應(yīng)中斷請求,轉(zhuǎn)去執(zhí)行鍵盤掃描子程序。顯示處理子程序:XSCL: MOV A,BM MOV DPTR,#TAB MOVC A,A+DPTR MOV BMD,A MOV A,KM MOV DPTR,#TAB MOVC A,A+DPTR MOV KMD,A MOV A,SKM MOV DPTR,#TAB MOVC A,A+DPTR MOV SKMD,A MOV A,BKM MOV DPTR,#TAB MOVC A,A+DPTRMOV BKMD,A RET本設(shè)計(jì)采用共陰極LED顯示器,LED顯示器采用發(fā)光二極管顯示字段。單片機(jī)系統(tǒng)中經(jīng)常采用的是7段顯示器,即LED顯示器中有8個(gè)發(fā)光二極管,代表“a.b.c.d.e.f.g.

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論