




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-目錄TOC\o"1-3"\u摘要 IABSTRACT II第1章緒論 11.1國(guó)內(nèi)外研究現(xiàn)狀及課題意義 11.1.1課題意義 11.1.2國(guó)內(nèi)外研究現(xiàn)狀 11.2主要研究的內(nèi)容 41.3方案論證 41.3.1傳感電路部分 41.3.2執(zhí)行電路部分 5第2章總體設(shè)計(jì) 62.1設(shè)計(jì)要求 62.2設(shè)計(jì)思路 62.3系統(tǒng)框圖 7第3章硬件設(shè)計(jì) 83.1單片機(jī)概述 83.1.1單片機(jī)的簡(jiǎn)介 83.1.2單片機(jī)的特點(diǎn) 93.2單片機(jī)的選型 93.2.1AT89C51的簡(jiǎn)介 103.2.2AT89C51特性概述 113.2.3單片機(jī)的中斷系統(tǒng) 113.2.4引腳說(shuō)明 113.2.5時(shí)鐘電路 153.2.6存儲(chǔ)器系統(tǒng) 153.3時(shí)鐘電路 183.4復(fù)位電路 193.4.1復(fù)位方式 193.4.2手動(dòng)按鈕復(fù)位 193.4.3上電復(fù)位 203.5LM324 213.5.1LM324簡(jiǎn)介 213.5.2LM324的特點(diǎn) 223.674HC573簡(jiǎn)介 223.7光敏電阻簡(jiǎn)介 243.8按鍵電路 253.9顯示電路 263.9.1顯示方式選擇 263.9.2LED的驅(qū)動(dòng)和顯示 273.10電源電路 283.11光控電路 283.12路燈控制電路 29第4章軟件設(shè)計(jì) 304.1主程序 304.2計(jì)時(shí)程序 304.3中斷程序 344.4按鍵程序 354.5程序清單 36第5章系統(tǒng)調(diào)試 485.1結(jié)果分析 485.2系統(tǒng)調(diào)試 485.2.1對(duì)每個(gè)子程序進(jìn)行調(diào)試 485.2.2總的程序調(diào)試 48第6章結(jié)論 50參考文獻(xiàn) 51附錄A外文參考及中文翻譯 53附錄B系統(tǒng)原理圖 71致謝 72第1章緒論1.1國(guó)內(nèi)外研究現(xiàn)狀及課題意義1.1.1課題意義近年來(lái),隨著我國(guó)經(jīng)濟(jì)改革的深入發(fā)展和信息化時(shí)代的深入,各級(jí)政府對(duì)城市整體形象工程建設(shè)備受重視,他們通過(guò)各種方式來(lái)開(kāi)展城市化建設(shè)。城市亮化隨之也被政府重視,既而大量的資金投入建設(shè)與改造中,是我們的城市變得燈火輝煌的同時(shí),諸多問(wèn)題隨之而來(lái):我國(guó)目前大部分城市采用全夜燈方式照明,可是到了后半夜行人稀少,浪費(fèi)太大;所以,有些地方采用前半夜全亮,而后半夜全滅的方式,這種方式雖然節(jié)約電費(fèi)支出,但是不利于社會(huì)治安,容易引發(fā)交通事故。而且,我國(guó)大多數(shù)地區(qū)的路燈關(guān)開(kāi)燈都是采用人工控制或者定時(shí)控制,這樣也有許多的不利之處;若采用人工控制,則路燈開(kāi)關(guān)存在著一定的不確定性,同時(shí)也占用了一定的人力資源;定時(shí)控制則存在著夏冬季白黑晝時(shí)間不同的情況,有的天還沒(méi)黑路燈就開(kāi),天還沒(méi)亮路燈就滅的情況,影響人們的日常生活。高效LED照明系統(tǒng)具有省電、輕巧、壽命長(zhǎng)、高耐久性等特征,近年來(lái)已經(jīng)越來(lái)越多應(yīng)用于路燈照明系統(tǒng),其趨勢(shì)是取代目前廣泛采用的高壓汞燈的路燈照明。明顯地提高了路燈的用電效率,延長(zhǎng)了路燈的使用壽命?,F(xiàn)階段,城市路燈照明系統(tǒng)存在的燈光控制方法和管理手段落后,所用燈具科技含量低等問(wèn)題。為了解決這些缺點(diǎn)與不足,為此,提出了路燈智能化控制,采用高效LED路燈光源,以單片機(jī)作為控制中心,利用傳感器模塊、光控路燈模塊來(lái)實(shí)現(xiàn)。1.1.2國(guó)內(nèi)外研究現(xiàn)狀隨著技術(shù)發(fā)展和人們對(duì)生活質(zhì)量要求的提高,對(duì)城市公共照明系統(tǒng)也提出了新的要求。其發(fā)展趨勢(shì)可以體現(xiàn)在以下幾個(gè)方面,即:精確化控制、多場(chǎng)景控制、網(wǎng)絡(luò)化控制、節(jié)能與快速反應(yīng)。綠色照明是當(dāng)今和未來(lái)照明領(lǐng)域的重要發(fā)展趨勢(shì),提高城市照明系統(tǒng)的實(shí)時(shí)監(jiān)控,提高城市照明維護(hù)響應(yīng)速度是現(xiàn)代技術(shù)發(fā)展的必然結(jié)果。城市照明監(jiān)控技術(shù)在我國(guó)已有將近三十年的發(fā)展歷史了,從過(guò)去簡(jiǎn)單的有線載波監(jiān)控和無(wú)線監(jiān)控技術(shù)發(fā)展到今天的網(wǎng)絡(luò)通信技術(shù),城市照明監(jiān)控的理念正在發(fā)生變化。近年來(lái),隨著科技的不斷發(fā)展,各種路燈控制器也被不斷的研究出來(lái)。其中,美國(guó)和日本主要集中在研究緊湊型熒光燈和鎮(zhèn)流器熒光燈兩個(gè)方面。而我國(guó)目前的市場(chǎng)上有多種路燈節(jié)能控制產(chǎn)品,能達(dá)到一定的節(jié)能效果,但就功能和效果上還不能盡如人意,主要有以下幾種情況:第一種,采用自耦變壓器及磁飽和電抗器的降壓技術(shù)。其不足是由于反應(yīng)速度較慢,用電高峰時(shí)電壓降到非穩(wěn)定區(qū)容易造成燈光閃滅,不能自動(dòng)調(diào)節(jié),同時(shí)如果電壓突然升高,則會(huì)對(duì)燈具造成損壞,相對(duì)來(lái)說(shuō)穩(wěn)壓效果較差;第二種是采用電子器件構(gòu)件的可控硅式設(shè)備。該設(shè)備主要采取簡(jiǎn)單的相控技術(shù),不足之處是元器件較容易發(fā)熱損壞。而為了更好的達(dá)到控制的目的,現(xiàn)在國(guó)內(nèi)外都開(kāi)始采用智能控制方式,如光控、聲控、時(shí)空等,國(guó)外甚至開(kāi)始采用太陽(yáng)能供能光控方式來(lái)控制路燈,基本可以達(dá)到完全自給自足的效果。本系統(tǒng)采用的路燈是LED燈。眾所周知,LED是目前最為節(jié)能的發(fā)光元件,通過(guò)采用LED發(fā)光可以節(jié)省大量的電能,并且LED燈發(fā)光柔和,亮度適中,對(duì)環(huán)境無(wú)污染,已經(jīng)廣泛的應(yīng)用于各種照明場(chǎng)合。因此,智能光控節(jié)能路燈必將在未來(lái)得到廣泛的應(yīng)用。目前LED路燈的配光技術(shù)已經(jīng)有了很大發(fā)展,有些廠家已經(jīng)開(kāi)發(fā)出良好的二次配光系統(tǒng),而不再是單純依靠光源排列來(lái)配光,但綜合看,配光還不能做到完全合理,有些在道路內(nèi)側(cè)的配光較亮,均勻度也能滿足要求,但人行道側(cè)環(huán)境光的亮度明顯不足,SR值明顯不符合要求,還是廠家設(shè)計(jì)人員對(duì)道路照明標(biāo)準(zhǔn)的要求理解不夠。LED路燈的色溫問(wèn)題:目前大功率LED路燈基本上都是采用5000K—6000K色溫的白光,作為道路照明光源,在視覺(jué)上過(guò)分陰冷甚至陰森,同時(shí)遠(yuǎn)視時(shí)眼睛的觀察能力會(huì)下降,在這方面的一些研究中證明,低于3000K的黃光或暖白光是比較適合道路照明的。高壓鈉燈的相關(guān)色溫(Tcp)為2100K左右,屬于暖色溫,其顯色指數(shù)(Ra)只有23—25,顯色性低;而LED路燈現(xiàn)在使用的色溫多大于5300K,屬于冷色溫,較好的產(chǎn)品,其Ra可達(dá)70—80,顯色性好。作為機(jī)動(dòng)車行駛的快速通道與主干道,偏黃色光的鈉燈,對(duì)看清前方90—160m左右距離路面狀況,效果比白色光略優(yōu),特別是在有霧、多塵的空氣條件下,鈉燈較有優(yōu)勢(shì),相對(duì)的LED路燈射程短,在較高的高度下工作,燈光就顯得很暗。對(duì)于人行道、商業(yè)步行街、居住小區(qū)等道路,LED的顯色性優(yōu)于鈉燈,分辨人的狀況更加清晰,較有優(yōu)勢(shì)。LED路燈的壽命:使用壽命應(yīng)立足于整個(gè)燈的壽命。高壓鈉燈稱標(biāo)準(zhǔn)壽命目前已超過(guò)2萬(wàn)小時(shí),實(shí)際應(yīng)用3年左右,節(jié)能型電感鎮(zhèn)流器不會(huì)低于20度,燈具也是如此。LED路燈標(biāo)稱使用壽命是5萬(wàn)小時(shí)以上,這是芯片的理想壽命,芯片的封裝、燈具散熱等因素都有可能光衰減,還有驅(qū)動(dòng)電路(以電子元器件為主)的壽命顯然也不能達(dá)到5萬(wàn)小時(shí)。美國(guó)能源之星制訂的要求,分為不低于35000h和25000h兩檔,主要是LED芯片壽命很長(zhǎng),卻與封裝后的溫度,散熱等諸多因素有關(guān),另外還有驅(qū)動(dòng)電路裝置的電子元器件壽命問(wèn)題。LED路燈的維護(hù):對(duì)于光源的維護(hù),高壓鈉燈若直接更換光源電器,成本較高。而對(duì)于LED路燈,現(xiàn)在很多大功率LED燈珠內(nèi)部集成了齊納二極管,單顆LED燈珠損壞不會(huì)影響整體燈具的亮度,不需要更換,但是要整個(gè)光源更換,現(xiàn)場(chǎng)的維護(hù)就無(wú)法進(jìn)行了。一旦出現(xiàn)整體故障時(shí),只能整個(gè)燈具進(jìn)行替換維護(hù),這對(duì)使用單位來(lái)說(shuō)是很不方便的,還有待今后解決。LED路燈的統(tǒng)一標(biāo)準(zhǔn):LED路燈在產(chǎn)品規(guī)格方面缺少統(tǒng)一的技術(shù)標(biāo)準(zhǔn),目前還沒(méi)有統(tǒng)一的LED路燈生產(chǎn)技術(shù)標(biāo)準(zhǔn),每個(gè)廠家都按自己的標(biāo)準(zhǔn)生產(chǎn)自己的產(chǎn)品,彼此之間是很難通用的。而高壓鈉燈由于技術(shù)標(biāo)準(zhǔn)的統(tǒng)一,燈具、光源、電器方面通用性較強(qiáng),不同廠家之間的產(chǎn)品是可以互用的,從維護(hù)角度考慮,這是很重要的,而維護(hù)對(duì)于路燈管理單位來(lái)說(shuō)則又是重中之重,只有這樣才可以及時(shí)對(duì)熄滅路燈進(jìn)行維護(hù),保證高的亮燈率,同時(shí)大大降低維護(hù)成本。LED路燈還沒(méi)有標(biāo)準(zhǔn)可循,對(duì)訂購(gòu)、使用、維護(hù)都不利。本設(shè)計(jì)是采用MSC-51系列單片機(jī)AT89C51和相關(guān)的光電檢測(cè)設(shè)備來(lái)設(shè)計(jì)智能光控路燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際光線條件通過(guò)8051芯片的P1口控制路燈開(kāi)關(guān)的功能。照明系統(tǒng)能夠根據(jù)不同區(qū)域的不同功能需求,在每天不同時(shí)段、不同自然光照度或者不同交通流量情況下,按照特定的設(shè)置,實(shí)現(xiàn)對(duì)道路照明的動(dòng)態(tài)智能化管理,即TPO管理(TIME時(shí)間/PLACE地點(diǎn)/OCCASION場(chǎng)合)。智能化道路照明控制系統(tǒng),通過(guò)綜合考慮和分析與道路照明密切相關(guān)的時(shí)間、路段、環(huán)境照度和交通流量等因素的場(chǎng)景控制方法,在微機(jī)中按照預(yù)設(shè)的控制策略,對(duì)道路照明進(jìn)行動(dòng)態(tài)智能化管理,控制路燈在不同情況下工作在不同狀態(tài)實(shí)現(xiàn)多樣化的道路照明場(chǎng)景,從而在提高照明質(zhì)量的同時(shí)獲得最佳的節(jié)簡(jiǎn)單的相控技術(shù),不足之處是元器件較容易發(fā)熱損壞。而為了更好的達(dá)到控制的目的,現(xiàn)在國(guó)內(nèi)外都開(kāi)始采用智能控制方式,如光控、聲控、時(shí)控等,國(guó)外甚至開(kāi)始采用太陽(yáng)能供能光控能效果。隨著社會(huì)文明的不斷發(fā)展,城市照明已不僅局限于街道的照明,而且發(fā)展成了了城市景觀等裝飾性照明的綜合市政工程。社會(huì)對(duì)亮燈率、開(kāi)關(guān)燈的準(zhǔn)確率、故障檢測(cè)的實(shí)時(shí)性和維修的及時(shí)性要求不斷提高,利用51系列單片機(jī)可編程控制八位邏輯I/O端口實(shí)現(xiàn)路燈的智能化,達(dá)到節(jié)能、自動(dòng)控制的目的,避免了傳統(tǒng)電路對(duì)能源的浪費(fèi),且路燈的自動(dòng)控制更方便了工作人員的管理。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單。現(xiàn)在許多生產(chǎn)廠家大功率LED的熱沉散熱殼體應(yīng)用基本采用不同的合金鋁材料,其導(dǎo)熱系數(shù)不一,一些材料的散熱速率難以滿足LED工作條件。不可忽略的鋁基板及導(dǎo)熱硅膠,硅脂材料的導(dǎo)熱環(huán)節(jié),使用材料的實(shí)際壽命質(zhì)量,將直接影響LED的工作散熱條件。如何減少中間環(huán)節(jié),直接與熱沉散熱近距離接觸將熱量快速達(dá)到平衡的有效散熱,是現(xiàn)今高質(zhì)量的LED燈具產(chǎn)品開(kāi)發(fā)需考慮的方向。從對(duì)比上看,最好的散熱材料也并不是鋁材。銅和鋁的對(duì)比中形成了一種新型的工藝——銅鋁結(jié)合。所謂的銅鋁結(jié)合就是把銅和鋁用一定的工藝完美的結(jié)合到一塊,讓銅快速的把熱量傳給鋁,再由大面積的鋁把熱量散去,這不但增充了鋁的導(dǎo)熱不及銅,還彌補(bǔ)了銅的散熱不如鋁,有機(jī)的結(jié)合從而達(dá)到急速傳熱快速散熱的效果。多篇文章中都闡述了散熱是靠面積而不是看體積的大小,許多企業(yè)都了解了個(gè)中道理,殼體采用多層翅片散熱,但對(duì)熱沉散熱殼體的翅片忽略了防塵和積塵,日積月累將會(huì)影響殼體的散熱效果。應(yīng)從在自然條件下規(guī)避積塵的最小化,不同方向的風(fēng)和雨的自然沖刷可易性和清除灰塵的粘敷性。保證熱沉殼體的散熱效果不受惡劣環(huán)境的影響,散熱通道的暢通,做到真正的長(zhǎng)壽命。大家共同來(lái)探討一個(gè)設(shè)計(jì)方式:散熱是靠面積的道理顯而易見(jiàn),是否可以將散熱面做成柱狀或多面形錐體。作為解決辦法,導(dǎo)熱介質(zhì)就應(yīng)運(yùn)而生了,它的作用就是填充兩個(gè)接觸表面之間大大小小的空隙,增大發(fā)熱源與散熱片的接觸面積。導(dǎo)熱硅脂是我們最常見(jiàn)的導(dǎo)熱介質(zhì)。導(dǎo)熱硅脂是用來(lái)填充鋁基板與散熱片之間的空隙的材料的一種,這種材料又稱之為熱界面材料。其作用是用來(lái)向散熱片傳導(dǎo)鋁基板散發(fā)出來(lái)的熱量,使鋁基板溫度保持在一個(gè)可以穩(wěn)定工作的水平,防止鋁基板因?yàn)樯岵涣级鴵p毀,并延長(zhǎng)使用壽命。有關(guān)人士正研究在熱沉材料上進(jìn)行特殊的陶瓷化處理直接安裝線路,經(jīng)過(guò)這樣的優(yōu)化后將會(huì)根本解決散熱的導(dǎo)熱環(huán)節(jié)。1.2主要研究的內(nèi)容本課題主要以模擬路燈控制系統(tǒng)為背景,采用高效LED路燈光源,以AT89C51單片機(jī)作為控制中心,利用傳感器模塊、光控路燈模塊、恒流源模塊等來(lái)實(shí)現(xiàn)。根據(jù)環(huán)境、交通等因素,單片機(jī)采用光敏電阻或光電開(kāi)關(guān)的信號(hào)控制路燈的亮滅,具有自動(dòng)檢查故障報(bào)警等功能;采用切換多種模式設(shè)定并實(shí)現(xiàn)PWM調(diào)光功能,實(shí)現(xiàn)了光電控制、時(shí)間控制、交通情況檢測(cè)、故障自動(dòng)檢測(cè)與報(bào)警功能,節(jié)省了電力能源和人力資源。
設(shè)計(jì)主要包括硬件和軟件的設(shè)計(jì),硬件設(shè)計(jì)可分為傳感器模塊和光控路燈模塊,包括:調(diào)光方式設(shè)計(jì)、時(shí)鐘芯片的選擇、液晶顯示器的選擇。軟件的設(shè)計(jì)包括:畫出程序框圖、主程序設(shè)計(jì)、鍵盤和顯示軟件設(shè)計(jì)、各功能程序設(shè)計(jì)及清單注釋。1.3方案論證1.3.1傳感電路部分方案一:使用光敏電阻與電源相連,通過(guò)上拉電阻給51單片機(jī)輸入信號(hào),并進(jìn)行相應(yīng)的后續(xù)程序操作。方案二:使用光敏電阻和三極管聯(lián)合驅(qū)動(dòng)的方式,提供給單片機(jī)輸入傳感信號(hào)。由于方案二提供的輸入信號(hào)相對(duì)來(lái)說(shuō)對(duì)環(huán)境的要求較高,難以實(shí)現(xiàn)且不符合系統(tǒng)在現(xiàn)實(shí)生活中的實(shí)用性等原則,故選取方案一。1.3.2執(zhí)行電路部分方案一:由單片機(jī)端口對(duì)相應(yīng)電路進(jìn)行操作;方案二:使用LM324芯片,含有四個(gè)運(yùn)算放大器,電源電壓范圍寬,靜態(tài)功耗小,可單電源使用。方案三:由單片機(jī)對(duì)后續(xù)的執(zhí)行元件進(jìn)行操作,如繼電器等相關(guān)的執(zhí)行元件。由于方案二使用LM324芯片等相關(guān)元件,使系統(tǒng)的設(shè)計(jì)更加接近實(shí)際應(yīng)用,在實(shí)際應(yīng)用中,系統(tǒng)是由電子電路→電氣電路的控制,使用LM324等可使系統(tǒng)的現(xiàn)實(shí)性大大增強(qiáng)。第2章總體設(shè)計(jì)2.1設(shè)計(jì)要求本設(shè)計(jì)是采用高效LED路燈光源,以AT89C51單片機(jī)為核心,利用傳感器模塊、光控路燈模塊、恒流源模塊等來(lái)實(shí)現(xiàn)路燈智能化控制。1、根據(jù)日照設(shè)置光控參數(shù)、時(shí)間參數(shù);2、可同時(shí)控制多路照明、單雙間隔開(kāi)啟照明;3、系統(tǒng)要求可自動(dòng)、手動(dòng)、緊急三種模式操作;4、系統(tǒng)要求有LED檢測(cè)模塊、聲光報(bào)警模塊、時(shí)鐘模塊。2.2設(shè)計(jì)思路一個(gè)大型的單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含兩部分內(nèi)容:一是系統(tǒng)擴(kuò)展,二是系統(tǒng)的配置,即按照系統(tǒng)功能要求配置外圍設(shè)備,要設(shè)計(jì)合適的接口電路。硬件電路部分主要包括以下幾個(gè)部分:?jiǎn)纹瑱C(jī)最小系統(tǒng)、路燈控制電路部分、光電檢測(cè)電路部分。其中最小系統(tǒng)是51單片機(jī)的最基本的組成部分,雖然51單片機(jī)的引腳只有四十,但是它有很多的擴(kuò)展功能,根據(jù)相應(yīng)的課題設(shè)計(jì)要求可以設(shè)計(jì)相應(yīng)的外圍電路。根據(jù)任務(wù)書的要求,分析出需要的功能有:具備時(shí)鐘功能、時(shí)間調(diào)節(jié)的調(diào)節(jié)、二極管(模擬路燈)的顯示功能、定時(shí)開(kāi)燈關(guān)燈的時(shí)間調(diào)整功能、按鍵控制功能,光電控制路燈功能。通過(guò)硬件電路的分析,當(dāng)開(kāi)機(jī)后,經(jīng)過(guò)上電復(fù)位,時(shí)鐘顯示為17:59:50,這時(shí)可以調(diào)整時(shí)、分、秒按鈕進(jìn)行精確調(diào)整到當(dāng)前時(shí)間,進(jìn)行正常走時(shí)。開(kāi)機(jī)后系統(tǒng)內(nèi)部自定義開(kāi)路燈時(shí)間為18:00:00,關(guān)路燈時(shí)間為6:00:00,如果不做調(diào)整的話,時(shí)間就是下午六點(diǎn)鐘開(kāi)燈,早晨6點(diǎn)鐘關(guān)燈,但春、夏、秋、冬四季的晝夜并不相等,為了更好的節(jié)省資源(電力)。本設(shè)計(jì)中可以進(jìn)行手動(dòng)調(diào)整,根據(jù)四季的變化來(lái)調(diào)整開(kāi)路燈和關(guān)路燈的時(shí)間,更有效的節(jié)省資源。本設(shè)計(jì)中另外的一大特點(diǎn)就是在夜晚12:00的時(shí)候,路燈會(huì)熄滅一半,這種設(shè)計(jì)也是為了節(jié)省資源,因?yàn)橐股钊遂o的時(shí)候,并不需要太多的路燈照明整個(gè)路面,只需要點(diǎn)點(diǎn)燈光就行。然后到早晨六點(diǎn)鐘或自己重新設(shè)定的時(shí)間的時(shí)候在關(guān)閉其它的路燈。本次設(shè)計(jì)中共用到了五個(gè)按鈕和四個(gè)發(fā)光二極管,用來(lái)控制路燈和調(diào)整時(shí)間。按鈕上到下編號(hào)為①、②、③、④、⑤。①為進(jìn)入調(diào)整開(kāi)燈、關(guān)燈的時(shí)間按鈕,還有為退出調(diào)整開(kāi)燈和關(guān)燈的按鈕,只有通過(guò)它才能有效的退出定義開(kāi)燈和關(guān)燈的調(diào)整狀態(tài);②為調(diào)整加一小時(shí)的按鈕,③為調(diào)整減一小時(shí)的按鈕,④為調(diào)加一分鐘的按鈕,⑤為調(diào)整減一分鐘的按鈕。發(fā)光二極管從上至下的標(biāo)號(hào)是①、②、③、④。①、③為路燈的左邊一排。②、④為路燈的右邊一排。2.3系統(tǒng)框圖圖2-1系統(tǒng)框圖第3章硬件設(shè)計(jì)3.1單片機(jī)概述3.1.1單片機(jī)的簡(jiǎn)介單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器,常用英文字母縮寫MCU表示單片機(jī)。它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)是采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU)、隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、輸入/輸出電路(I/O口)等電路集成到單片芯片上,構(gòu)成一個(gè)最小而完善的計(jì)算機(jī)系統(tǒng)。有時(shí)還包括定時(shí)器/計(jì)數(shù)器,串行通信口、顯示驅(qū)動(dòng)電路(LCD或LED驅(qū)動(dòng)電路)、脈寬調(diào)制電路(PWM)、模擬多路轉(zhuǎn)換器以及A/D轉(zhuǎn)換器等電路,并具有獨(dú)立的指令系統(tǒng)。這些電路能在軟件控制之下,準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。它能夠單獨(dú)地完成現(xiàn)代工業(yè)控制系統(tǒng)所要求的智能化控制功能。單片機(jī)的功能很多:比較器;模數(shù)/數(shù)模轉(zhuǎn)換器;PWM;多種多樣的接口;LCD驅(qū)動(dòng);存儲(chǔ)器等等。同時(shí)它也是計(jì)算機(jī)—單片微型計(jì)算機(jī)。部分單片機(jī)的計(jì)算能力已經(jīng)比早期PC的CPU強(qiáng)大,速度也越來(lái)越快。甚至也有類似雙核CPU的設(shè)計(jì)出現(xiàn)。因?yàn)槟軌蜻\(yùn)行程序,所以可以做很多的事情。幾乎您上網(wǎng)用的計(jì)算機(jī)能做的事情,它都同樣能做。只是能力沒(méi)那么強(qiáng)大。比如:可以讀寫硬盤、可以接受按鍵輸入、可以顯示輸出、可以驅(qū)動(dòng)打印、您甚至可以給它接個(gè)鼠標(biāo)。當(dāng)然這可能涉及一些接口的問(wèn)題,但是CPU也不是直接做這些事情的。它的輸入輸出,如前面所說(shuō),也是多種多樣的??梢允悄M量,也可以是數(shù)字量,標(biāo)準(zhǔn)的USB接口也已經(jīng)集成在了單片機(jī)內(nèi)部。此外,單片機(jī)的體積小、價(jià)格低、可靠性高、適用面寬、有著其本身的指令系統(tǒng)等諸多優(yōu)勢(shì),在各行各業(yè)都得到廣泛應(yīng)用。單片機(jī)控制系統(tǒng)已基本取代了以前復(fù)雜的電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),用軟件來(lái)實(shí)現(xiàn)產(chǎn)品的智能化?,F(xiàn)在,單片機(jī)的控制范疇無(wú)所不在,其應(yīng)用領(lǐng)域也越來(lái)越廣泛。單片機(jī)的應(yīng)用意義遠(yuǎn)不限于它的應(yīng)用范疇或由此帶來(lái)的經(jīng)濟(jì)效益,更重要的是它從根本上改變了傳統(tǒng)的控制方法和設(shè)計(jì)理念,向著嵌入式系統(tǒng)方向發(fā)展。隨著嵌入式系統(tǒng)的快速發(fā)展和在各行各業(yè)的深入應(yīng)用,人們的電子設(shè)備的小型化、智能化的要求也越來(lái)越高。在航空航天、機(jī)械加工、工程控制、智能儀器儀表、家用電器、通信系統(tǒng)等領(lǐng)域,單片機(jī)都正在發(fā)生著非常重要的作用。單片機(jī)應(yīng)用技術(shù)業(yè)已成為現(xiàn)代電子技術(shù)應(yīng)用領(lǐng)域十分重要的高新技術(shù)之一,是電子工程技術(shù)人員必備的知識(shí)技能,它能使你設(shè)計(jì)出更具智能化和方便的產(chǎn)品。3.1.2單片機(jī)的特點(diǎn)單片機(jī)及其應(yīng)用系統(tǒng)之所以能發(fā)揮著如此重要的作用,歸納起來(lái)原因如下:①單片機(jī)具有體積小、功能強(qiáng)、價(jià)格低、使用靈活等特點(diǎn),具有明顯的優(yōu)勢(shì)和廣闊的應(yīng)用前景。②單片機(jī)具有獨(dú)立的指令系統(tǒng),可以將我們的設(shè)計(jì)思想充分表達(dá)出來(lái),使產(chǎn)品智能化。③系統(tǒng)配置以滿足控制對(duì)象的要求出發(fā)點(diǎn),使得系統(tǒng)具有較高的性價(jià)比。④應(yīng)用系統(tǒng)通常將程序駐留在片內(nèi)(外)ROM中,抗干擾能力強(qiáng),可靠性高,使用方便。⑤單片機(jī)本身并不具備開(kāi)發(fā)能力,一般情況下,需要借助專用的開(kāi)發(fā)工具在相應(yīng)的開(kāi)發(fā)環(huán)境下,進(jìn)行系統(tǒng)的開(kāi)發(fā)和調(diào)試,但最終形成的產(chǎn)品簡(jiǎn)單實(shí)用,成本低,效益高。⑥單片機(jī)應(yīng)用系統(tǒng)所使用的存儲(chǔ)芯片可選用EPROM、EEPROM、OTP芯片或利用掩膜形式生產(chǎn),便于批量生產(chǎn)和應(yīng)用。大多數(shù)單片機(jī)如51系列,開(kāi)發(fā)芯片和擴(kuò)展應(yīng)用芯片相互配套,降低了系統(tǒng)成本。⑦由于系統(tǒng)小巧玲瓏,控制功能強(qiáng)、體積小,便于嵌入被控設(shè)備內(nèi),大大推動(dòng)了產(chǎn)品的智能化。隨著微電子技術(shù)和集成電路技術(shù)的迅速發(fā)展,目前各個(gè)公司研制出了能夠適用于各種領(lǐng)域的單片機(jī)。高性能的單片機(jī)芯片市場(chǎng)也異?;钴S,采用新技術(shù),使單片機(jī)的種類、性能不斷提高,應(yīng)用領(lǐng)域迅速擴(kuò)大。單片機(jī)的改進(jìn)和發(fā)展歸納起來(lái)有以下幾個(gè)方面:①CPU得到改進(jìn):現(xiàn)在CPU開(kāi)始采用雙CPU結(jié)構(gòu),提高了芯片的處理能力。②存儲(chǔ)器的發(fā)展:增大了片內(nèi)存儲(chǔ)器容量;片內(nèi)采用EEPROM和Flash可在線編程,讀/寫更加方便;采用了編程加密技術(shù)。③內(nèi)部資源增多:片內(nèi)的資源越豐富,產(chǎn)品的體積就越小,可靠性就越高。④I/O接口形式增多:性能提高了。⑤引腳的多功能化:?jiǎn)纹瑱C(jī)現(xiàn)在普遍都采用管腳復(fù)用的設(shè)計(jì)方案。⑥低電壓和低功耗:?jiǎn)纹瑱C(jī)制造時(shí)普遍采用CMOS工藝制作。3.2單片機(jī)的選型單片機(jī)的種類很多,最常用的就是8051系列,其常見(jiàn)的型號(hào)有AT89C51、AT89C52、AT89S51、AT89S52等。有相當(dāng)一部分廠家的單片機(jī)與8051單片機(jī)是基于該系列單片機(jī),從而可以方便地替換該系列單片機(jī),如STC公司、PHILIPS公司等等。一般情況下,52型號(hào)的可以直接替換51型號(hào)單片機(jī),如果程序不大(code區(qū)小于4096)的話51型號(hào)也可以替換52型號(hào)。如果程序較大,還可以采用89C54、89C58等資源更多的單片機(jī)。本系統(tǒng)采用的是最常用的AT89C51。3.2.1AT89C51的簡(jiǎn)介MCS-51系列單片機(jī)是由美國(guó)的Intel公司開(kāi)發(fā)研制,并于1980年推出的產(chǎn)品。與MCS-48系列單片機(jī)相比,其以典型的體系結(jié)構(gòu)和完善的專用寄存器集中管理方式,方便的邏輯位操作功能及豐富的指令系統(tǒng)[5],堪稱一代“名機(jī)”,為之后的其他單片機(jī)的發(fā)展奠定了基礎(chǔ)。因此,MCS-51系列單片機(jī)結(jié)構(gòu)先進(jìn),功能強(qiáng)大,增加了更多的電路單元和功能模塊,指令數(shù)達(dá)111條。其中的代表作便是AT89C5x系列單片機(jī),而本文所采用的就是AT89C51。AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶有2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。圖3-1單片機(jī)外形圖及引腳圖3.2.2AT89C51特性概述AT89C51具有以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器;128字節(jié)內(nèi)部RAM;32個(gè)I/O口線;兩個(gè)16位定時(shí)/計(jì)數(shù)器;一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu);一個(gè)全雙工串行通信口;片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。3.2.3單片機(jī)的中斷系統(tǒng)8051具備較完善的中斷功能,其中有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。3.2.4引腳說(shuō)明AT89C51的引腳如圖所示:圖3-2AT89C51管腳圖管腳說(shuō)明:VCC:電源電壓。GND:接地。P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。當(dāng)P0口作為輸出口用時(shí),在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在FLASH編程時(shí),P0口作為原碼輸入口,而當(dāng)FLASH在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1口:P1口是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR指令)時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O,可接收輸出4個(gè)TTL門電路。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表所示:表STYLEREF1\s3-1P3口第二功能端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外中斷0)P3.3/INT1(外中斷1)P3.4T0(定時(shí)/計(jì)數(shù)器0外部輸入)P3.5T1(定時(shí)/計(jì)數(shù)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)RESET/復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電時(shí),時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,如下圖所示。此外,RESET/還是一復(fù)用腳,VCC掉電其間,此腳可接上備用電源,來(lái)保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。圖STYLEREF1\s3-3AT89C51的復(fù)位方式XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。振蕩器的特性:XTAL1和XTAL2分別為反向放大器的輸入與輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。ALE當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,同時(shí)也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,當(dāng)外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。EA/程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而當(dāng)超過(guò)4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。3.2.5時(shí)鐘電路8051內(nèi)置最高頻率可達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。3.2.6存儲(chǔ)器系統(tǒng)在計(jì)算機(jī)的組成結(jié)構(gòu)中,有一個(gè)很重要的部分,就是存儲(chǔ)器。存儲(chǔ)器是一種記憶部件,是用來(lái)存儲(chǔ)程序和數(shù)據(jù)的。對(duì)于計(jì)算機(jī)來(lái)說(shuō),有了存儲(chǔ)器,才有記憶功能,才能保證正常工作。存儲(chǔ)器的種類很多,8051單片機(jī)存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間。程序存儲(chǔ)器ROM;為了讓單片機(jī)實(shí)現(xiàn)某種功能,需要利用匯編語(yǔ)言或者其他語(yǔ)言編寫一些源程序,然后再燒錄到芯片中。我們編寫的這些程序,就存儲(chǔ)在程序存儲(chǔ)器空間中。而數(shù)據(jù)存儲(chǔ)器RAM:我們編寫的源程序,在運(yùn)行的過(guò)程中,會(huì)產(chǎn)生一些臨時(shí)的運(yùn)算結(jié)果,這些結(jié)果需要臨時(shí)存放在一個(gè)地方,這個(gè)地方就是數(shù)據(jù)寄存器。8051單片機(jī)具有四個(gè)存儲(chǔ)器空間:①片內(nèi)程序存儲(chǔ)器,即單片機(jī)芯片內(nèi)置的存儲(chǔ)空間。②片外程序存儲(chǔ)器,即當(dāng)單片機(jī)芯片內(nèi)置的存儲(chǔ)空間不夠使用時(shí),我們需要外加的一個(gè)存儲(chǔ)器芯片。③片內(nèi)數(shù)據(jù)存儲(chǔ)器,即單片機(jī)芯片內(nèi)置的存儲(chǔ)空間。④片外數(shù)據(jù)存儲(chǔ)器,即當(dāng)單片機(jī)芯片內(nèi)置的存儲(chǔ)空間不夠使用時(shí),我們需要外加的一個(gè)存儲(chǔ)器芯片。從用戶使用的角度,8051存儲(chǔ)器地址空間分為三類:片內(nèi)片外統(tǒng)一編址的0000H--FFFFH的64K字節(jié)的程序存儲(chǔ)器地址空間,用16位地址。64K字節(jié)片外數(shù)據(jù)存儲(chǔ)器空間,地址也是從0000H--FFFFH用16位地址。256字節(jié)數(shù)據(jù)存儲(chǔ)器空間,用8位地址。表3-2MCS-51系列單片機(jī)性能一覽表一、程序存儲(chǔ)器地址空間8051程序存儲(chǔ)器用于存放編寫好的程序和表格常數(shù)。程序存儲(chǔ)器通過(guò)16位程序計(jì)數(shù)器PC尋址。尋址能力為64K字節(jié)。片內(nèi)ROM為4KB。地址為0000H--0FFFH。片外最多可擴(kuò)至64K字節(jié)。地址為1000H--FFFFH。片內(nèi)片外是統(tǒng)一編址的。當(dāng)引腳EA接高電平時(shí),8051程序計(jì)數(shù)器PC在0000H--0FFFH范圍內(nèi),即前4K字節(jié)地址執(zhí)行片內(nèi)ROM中的程序。當(dāng)指令地址超過(guò)0FFFH后,就自動(dòng)轉(zhuǎn)向片外ROM中取指令。程序存儲(chǔ)器的某些單元是留給系統(tǒng)使用的。存儲(chǔ)單元0000H--0002H用作8051上電復(fù)位后引導(dǎo)程序存放單元。因?yàn)?051上電復(fù)位后程序計(jì)數(shù)器PC的內(nèi)容為0000H,所以CPU總是從0000H開(kāi)始執(zhí)行程序,如果在這三個(gè)單元中有跳轉(zhuǎn)指令,那么,程序就被引導(dǎo)到轉(zhuǎn)移指令所指的ROM空間去執(zhí)行。二、數(shù)據(jù)存儲(chǔ)器空間數(shù)據(jù)存儲(chǔ)器RAM用于存放運(yùn)算中的結(jié)果、數(shù)據(jù)暫存或緩沖、標(biāo)志位等。數(shù)據(jù)存儲(chǔ)空間也分為片內(nèi)和片外兩大部分,即片內(nèi)RAM和片外RAM。(1)片外數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器又稱為外部數(shù)據(jù)RAM,當(dāng)805l片內(nèi)256個(gè)字節(jié)的數(shù)據(jù)RAM不能滿足數(shù)量上的要求時(shí),可通過(guò)總線端口和其它I/O端口擴(kuò)展外部數(shù)據(jù)RAM(擴(kuò)展方法見(jiàn)相關(guān)章節(jié)),其最大容量可達(dá)64K字節(jié)。地址從0000H--FFFFH。外部數(shù)據(jù)RAM與內(nèi)部數(shù)據(jù)RAM的功用基本相同,但外部數(shù)據(jù)RAM不能進(jìn)行堆棧操作。(2)片內(nèi)數(shù)據(jù)存儲(chǔ)器MCS-51系列單片機(jī)的片內(nèi)數(shù)據(jù)存儲(chǔ)器包括通用數(shù)據(jù)存儲(chǔ)器塊和特殊功能寄存器(SFR)塊。對(duì)于51子系列,前者占128B,其編址為00H—7FH,后者也占128B,其編址為80H—FFH,二者連續(xù)而不重疊。對(duì)于52子系列,前者有256B,其編址為00H—FFH,后者占128B,其編址為80H—FFH,后者與前者高128B的編址是重疊的,由于訪問(wèn)所用的指令不同,所以不會(huì)引起混亂。片內(nèi)數(shù)據(jù)存儲(chǔ)器的容量很小,常需要擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器。MCS-51系列單片機(jī)有一個(gè)數(shù)據(jù)指針寄存器,可用于尋址程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器單元,它有16位,尋址范圍可達(dá)64KB。故片外數(shù)據(jù)存儲(chǔ)器的容量可達(dá)到與程序存儲(chǔ)器一樣,其編址自0000H開(kāi)始,最大可至FFFFH。片內(nèi)RAM數(shù)據(jù)存儲(chǔ)器最大尋址空間為256字節(jié)。他們又分為兩個(gè)部分。低128字節(jié)00H--7FH是真正的RAM區(qū)。低128字節(jié)中地址00H一1FH的32個(gè)單元,安排為四組工作寄存器。每組又分為8個(gè)寄存器區(qū)R0--R7。圖3-4AT89C51內(nèi)部功能圖3.3時(shí)鐘電路時(shí)鐘電路是產(chǎn)生CPU校準(zhǔn)時(shí)序,是單片機(jī)的控制核心,它控制著計(jì)算機(jī)的工作節(jié)奏。MCS-51系列單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而不同的。AT89C51的時(shí)鐘信號(hào)可通過(guò)內(nèi)部振蕩方式和外部振蕩方式兩種方式得到。內(nèi)部振蕩方式,AT89C51內(nèi)部都有一個(gè)反相放大器,XTAL1、XTAL2分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件,這樣就構(gòu)成了內(nèi)部振蕩方式。外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適合用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)一致。在本次設(shè)計(jì)中不需要與外部時(shí)鐘信號(hào)保持一致,所以我選擇內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。而對(duì)于晶振的選擇:一種是:6MHz的晶振,其機(jī)器周期是2us。另一種是:12MHz的晶振,其機(jī)器周期是1us,也就是說(shuō)在執(zhí)行同一條指令時(shí)用6MHz的晶振所用的時(shí)間是12MHz晶振的兩倍。為了提高整個(gè)系統(tǒng)的性能我選擇了12MHz的晶振。晶振我選擇了12MHz,相對(duì)于6MHz的晶振,整個(gè)系統(tǒng)的運(yùn)行速度就更快了。電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值我選擇了30pF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)穩(wěn)定性高。3.4復(fù)位電路3.4.1復(fù)位方式單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),而且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將其系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動(dòng)按鈕復(fù)位和上電復(fù)位。3.4.2手動(dòng)按鈕復(fù)位手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST加上高電平。一般的方法是將一個(gè)按鈕開(kāi)關(guān)并聯(lián)于上電自動(dòng)復(fù)位電路,按一下開(kāi)關(guān)就RST端出現(xiàn)一段時(shí)間的高電平,即使器件復(fù)位。如圖所示:圖3-5上電和開(kāi)關(guān)復(fù)位3.4.3上電復(fù)位上電復(fù)位是常用的一種復(fù)位方式,AT89C51單片機(jī)有一個(gè)復(fù)位引腳RST,它是施密特觸發(fā)輸入,當(dāng)振蕩器起振后,該引腳上出現(xiàn)2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘周期)以上的高電平。使元器件復(fù)位,只要RST保持高電平,AT89C51保持復(fù)位狀態(tài)。此時(shí)ALE、/PSEN、P0、P1、P2、P3口都輸出高電平。RST變?yōu)榈碗娖胶?,退出?fù)位,則CPU從初始狀態(tài)開(kāi)始工作。復(fù)位以后內(nèi)部寄存器的初始狀態(tài)為(SP=07,P0、P1、P2、P3為0FFH外,其它寄存器都為0)。對(duì)于NMOS型單片機(jī),在RST復(fù)位端接一個(gè)電容至VccHE一個(gè)電阻至Vss,就能實(shí)現(xiàn)上電自動(dòng)復(fù)位,對(duì)于CMOS單片機(jī)只要接一個(gè)電容至Vcc即可。如圖,在加電瞬間,電容通過(guò)電阻充電,就在RST端出現(xiàn)一定時(shí)間的高電平,只要高電平時(shí)間足夠長(zhǎng),就可以使AT89C51有效地復(fù)位。RST端在加電時(shí)應(yīng)保持的高電平時(shí)間包括Vcc的上升時(shí)間和振蕩器起振時(shí)間,Vcc上升時(shí)間若為10ms,振蕩器起振時(shí)間和頻率有關(guān)。10MHz時(shí)間約為1ms,1MHz時(shí)約為10ms,所以一般為了可靠地復(fù)位,RST在上電時(shí)應(yīng)保持20ms以上的高電平。圖2.5中,RC時(shí)間常數(shù)越大,上電時(shí)RST端保持高電平的時(shí)間越長(zhǎng)。振蕩頻率為12MHZ時(shí),典型值為C=10uF,R=8.2kΩ。若復(fù)位電路失效,加電后CPU從一個(gè)隨機(jī)的狀態(tài)開(kāi)始工作,系統(tǒng)就不能正常運(yùn)轉(zhuǎn)。上電復(fù)位電路如下圖所示:圖3-6上電復(fù)位電路在這次的畢業(yè)設(shè)計(jì)中我選擇運(yùn)用上電復(fù)位電路.即只要一接+5V電壓,系統(tǒng)就會(huì)自動(dòng)的復(fù)位.出于可靠性和適時(shí)性的考慮,我選擇了簡(jiǎn)單實(shí)用的上電復(fù)位電路上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。從而實(shí)現(xiàn)上電復(fù)位操作。我選擇的C=10uF,R=1kΩ。3.5LM3243.5.1LM324簡(jiǎn)介L(zhǎng)M324系列器件帶有差動(dòng)輸入的四運(yùn)算放大器。與單電源應(yīng)用場(chǎng)合的標(biāo)準(zhǔn)運(yùn)算放大器相比,它們有一些顯著優(yōu)點(diǎn)。該放大器可以工作在低到3.0伏或者高于32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。LM324是采用14腳雙列直插塑料封裝,外形如圖所示。它的內(nèi)部包含四組形式完全相同的運(yùn)算放大器。除電源共用之外,四組運(yùn)放是相互獨(dú)立的。每一組運(yùn)算放大器可用圖一所示的符號(hào)來(lái)表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)的輸入端,“V+”、“V-”為正、負(fù)電源端,“Vo”(+)為輸出端,兩個(gè)信號(hào)輸入端中,“Vi-”(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的位相反;“Vi+”(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。LM324的引腳排列見(jiàn)圖:圖3-7LM324引腳排列圖3-8LM324外形圖3.5.2LM324的特點(diǎn)LM324的特點(diǎn)可歸納如下:(1)短跑保護(hù)輸出。(2)真差動(dòng)輸入級(jí)。(3)可單電源工作:3V-32V。(4)低偏置電流:最大100nA(LM324A)。(5)每封裝含四個(gè)運(yùn)算放大器。(6)具有內(nèi)部補(bǔ)償?shù)墓δ堋?7)共模范圍擴(kuò)展到負(fù)電源。(8)行業(yè)標(biāo)準(zhǔn)的引腳排列。(9)輸入端具有靜電保護(hù)功能。由于LM324芯片四運(yùn)放電路具有電源電壓范圍寬,靜態(tài)功耗小,可單電源使用,價(jià)格低廉等優(yōu)點(diǎn),因此被廣泛應(yīng)用于各種電路中。3.674HC573簡(jiǎn)介74HC573是八進(jìn)制三態(tài)非反轉(zhuǎn)透明鎖存器,它是高性能硅門CMOS器件。SL74HC573跟LS/AL573的管腳一樣的器件。器件的輸入是和標(biāo)準(zhǔn)CMOS輸出兼容的,加上拉電阻他們能和LS/ALSTTL輸出兼容。圖3-974HC573引腳圖表3-374HC573引腳功能表引腳號(hào)符號(hào)名稱及功能1/OE3態(tài)輸出使能輸入(低電平)2,3,4,5,6,7,8,9D0toD7數(shù)據(jù)輸入12,13,14,15,16,17,18,19Q0toQ73態(tài)鎖存輸出11LE鎖存使能輸入10GND接地(0V)20VCC電源電壓對(duì)于原理說(shuō)明:74HC573的八個(gè)鎖存器都是透明D型鎖存器,當(dāng)使能(G)為高時(shí),則Q為輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能(G)為低時(shí),輸出將鎖存在已經(jīng)建立的數(shù)據(jù)電平上。輸出控制不會(huì)影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)還可以保持,而且甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這樣的電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并且驅(qū)動(dòng)總線,不需要外接口。特別適用于緩沖寄存器,I/O通道,雙向總線驅(qū)動(dòng)器和工作寄存器。鎖存器的使用可以大大的緩解處理器這方面的壓力。當(dāng)處理器把數(shù)據(jù)傳輸?shù)芥i存器并將其鎖存后,鎖存器的輸出引腳便會(huì)一直保持?jǐn)?shù)據(jù)的狀態(tài)直到下一次鎖存新的數(shù)據(jù)為止。3.7光敏電阻簡(jiǎn)介光敏電阻器又稱光導(dǎo)管,特性是指在特定的照射下,其阻值迅速減小,可用于檢測(cè)可見(jiàn)光。光敏電阻器是利用半導(dǎo)體的光電效應(yīng)而制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器;入射光增強(qiáng),電阻值減小,入射光減弱,電阻值增大。光敏電阻一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換等。光敏電阻器通常是由光敏層、玻璃基層(或樹(shù)脂防潮膜)和電極等組成。光敏電阻器在電路中用字母“R”或“RL”、“RG”表示。光敏電阻的工作原理是基于內(nèi)光電效應(yīng)。在半導(dǎo)體光敏材料的兩端裝上電極引線,將它封裝在帶有透明窗的管殼里就構(gòu)成光敏電阻,為了增加靈敏度,兩電極通常做成梳狀。用于制造光敏電阻的材料主要是金屬的硫化物、硒化物和碲化物等半導(dǎo)體。并且通常采用涂敷、噴涂、燒結(jié)等方法在絕緣襯底上制作很薄的光敏電阻體及梳狀的歐姆電極,然后接出引線,封裝在具有透光鏡的密封殼體內(nèi),以避免受潮影響其靈敏度。當(dāng)入射光消失后,由光子激發(fā)產(chǎn)生的電子—空穴對(duì)將復(fù)合,光敏電阻的阻值也將恢復(fù)原來(lái)的值。在光敏電阻兩端的金屬電極加上電壓,其中便會(huì)有電流通過(guò),受到一定波長(zhǎng)的光線照射時(shí),電流就會(huì)隨光強(qiáng)的增大而增大,從而實(shí)現(xiàn)了光電轉(zhuǎn)換。光敏電阻沒(méi)有極性,純粹是一個(gè)電阻器件。使用時(shí)既可以加直流電壓,也可以加交流電壓。半導(dǎo)體的導(dǎo)電能力取決于半導(dǎo)體導(dǎo)帶內(nèi)載流子數(shù)目的多少。光敏電阻的原理結(jié)構(gòu)如下圖所示。圖3-10光敏電阻原理圖圖3-11光敏電阻結(jié)構(gòu)圖在黑暗環(huán)境下,它的電阻值很高,當(dāng)它受到光照時(shí),只要光子能量大于半導(dǎo)體材料的禁帶寬度,則價(jià)帶中的電子吸收一個(gè)光子的能量后可躍遷到導(dǎo)帶,并在價(jià)帶中產(chǎn)生一個(gè)帶正電荷的空穴,這種由光照所產(chǎn)生的電子—空穴對(duì)增加了半導(dǎo)體材料中載流子的數(shù)目,使其電阻率變小,從而造成光敏電阻阻值的下降。光照越強(qiáng),阻值越低。入射光消失后,由光子激發(fā)產(chǎn)生的電子—空穴對(duì)將逐漸復(fù)合,光敏電阻的阻值也就逐漸恢復(fù)到原值。光敏電阻屬于半導(dǎo)體光敏器件,除了具有靈敏度高,反應(yīng)速度快,光譜特性好以及R值一致性好等特點(diǎn)外,在高溫、多濕的惡劣環(huán)境下,還能保持高度的穩(wěn)定性和可靠性,并且廣泛應(yīng)用于照相機(jī),太陽(yáng)能庭院燈,草坪燈,石英鐘,禮品盒,路燈自動(dòng)開(kāi)關(guān)以及各種光控玩具,光控?zé)麸?,燈具等光自?dòng)開(kāi)關(guān)控制領(lǐng)域。3.8按鍵電路在單片機(jī)系統(tǒng)中,通常有且僅有一鍵按下才視為按鍵有效。有效的確認(rèn)方式通??梢苑譃閮深?。第一類是按下-釋放鍵方式,系統(tǒng)要求從按下倒釋放鍵才算一次有效按鍵。第二類是連擊方式,就是一次按鍵可以產(chǎn)生多次擊鍵效果,其連擊頻率可以自己設(shè)定,如2次/秒、3次/秒等等。對(duì)于本次設(shè)計(jì),我選擇了按下-釋放方式,電路如下圖所示。電路為低電平有效輸出方式,當(dāng)按鍵按下時(shí)輸出為低電平。在按下-釋放鍵方式時(shí),系統(tǒng)先判斷是否有鍵按下,如果不用硬件去抖,則同時(shí)進(jìn)行軟件去抖,確認(rèn)有鍵按下,然后等待至該按鍵釋放才算依次按鍵,注意釋放鍵判斷同樣要進(jìn)行去抖處理。圖3-12按鍵電路圖3.9顯示電路3.9.1顯示方式選擇顯示器用于實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)中的數(shù)據(jù)輸出和狀態(tài)反饋。單片機(jī)系統(tǒng)中常用的顯示器有發(fā)光二極管、七段數(shù)碼顯示器和液晶顯示器等等。LED數(shù)碼顯示器是一種常用的顯示器,具有顯示亮度高、響應(yīng)速度快等特點(diǎn)。最常用的是七段式LED顯示器,也稱之為數(shù)碼管。它能夠顯示十進(jìn)制或十六進(jìn)制數(shù)字及某些簡(jiǎn)單字符。但控制簡(jiǎn)單,使用方便。七段式LED顯示器的內(nèi)部是由7個(gè)條形發(fā)光的二極管和1個(gè)小圓點(diǎn)發(fā)光二極管組成,并且根據(jù)各管的亮暗組合成各種字符。從各發(fā)光段電極連接方式分為共陰極和共陽(yáng)極兩種方式。所謂的共陰極方式就是指筆畫顯示器各段發(fā)光管的陰極(即N區(qū))是公共的,而陽(yáng)極卻是互相隔離的。而共陽(yáng)極方式就是指筆畫顯示器各段發(fā)光管的陽(yáng)極(即P區(qū))是公共的,而陰極卻是互相隔離的。圖3-13數(shù)碼管及共陰極共陽(yáng)極電路顯示的方式共有兩種方式,所謂的靜態(tài)顯示方式就是把共陰極或共陽(yáng)極的公共端(位選端)連接在一起接地或接5V電源,形成位控端;每一位的段選線(a—dp)作為段控端。而動(dòng)態(tài)顯示方式是單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示方式,就是把所有的顯示器的同名段選端選線相互并接在一起,由同一個(gè)8位的并行輸出口控制;而各顯示器的位選線則分別由不同輸出口線控制端。這樣各顯示位不能同時(shí)顯示不同的數(shù)字或字符。因此要選擇掃描的方法,即從右到左(或從左到右)依次輪流使每位顯示器顯示數(shù)字或者字符并保留一段時(shí)間(通常位1ms),由于LED的余輝特性以及人眼視覺(jué)上的惰性,盡管各位顯示器實(shí)際上使分時(shí)斷續(xù)地顯示,但只要適當(dāng)選取掃描頻率,給人眼的視察印象就會(huì)是在連續(xù)地顯示,察覺(jué)不到閃爍的現(xiàn)象。相對(duì)于靜態(tài)顯示,動(dòng)態(tài)顯示方式雖然占用的CPU空間較多,但使用的硬件較少,所占用的端口也較靜態(tài)顯示方式少,這樣可以大大的節(jié)約系統(tǒng)的端口資源,所以根據(jù)我設(shè)計(jì)中沒(méi)有擴(kuò)展端口,端口資源比較緊張,因此我選擇動(dòng)態(tài)顯示,不僅能節(jié)約線路板空間,而且效果也不差于靜態(tài)顯示。3.9.2LED的驅(qū)動(dòng)和顯示在本次電路設(shè)計(jì)的過(guò)程中,單片機(jī)的的P2.6口接的是74HC573作為段選輸出口,經(jīng)過(guò)上拉電阻加到數(shù)碼管的A-G和DP上,P2.7口接的是74HC573作為位選輸出口,經(jīng)電阻驅(qū)動(dòng)分別加到數(shù)碼管的COM端。LED的驅(qū)動(dòng)問(wèn)題是顯示設(shè)計(jì)中的一個(gè)非常重要的環(huán)節(jié)。如果驅(qū)動(dòng)能力差,顯示器高度就低;且驅(qū)動(dòng)器長(zhǎng)期在超負(fù)荷下運(yùn)行很容易損壞。下面就簡(jiǎn)單介紹選擇LED驅(qū)動(dòng)器時(shí)應(yīng)注意的問(wèn)題。顯示分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種方式,由于這兩種方式有本質(zhì)的不同,因此在選擇LED驅(qū)動(dòng)器時(shí),一定要分清顯示方式。如果是靜態(tài)顯示,則LED驅(qū)動(dòng)器的選擇較為簡(jiǎn)單,只要驅(qū)動(dòng)器的驅(qū)動(dòng)能力與顯示器的工作電流相匹配即可,而且只需要考慮段的驅(qū)動(dòng),因?yàn)?,共?yáng)極接+5V,而共陰極接地,所以位的驅(qū)動(dòng)無(wú)須考慮。動(dòng)態(tài)顯示則不同,由于一位數(shù)據(jù)的表示是由段和位選信號(hào)共同配合完成的,因此必須同時(shí)考慮段與位的驅(qū)動(dòng)能力和位的驅(qū)動(dòng)能力,而且段的驅(qū)動(dòng)能力決定位的驅(qū)動(dòng)能力。段的驅(qū)動(dòng)能力是由驅(qū)動(dòng)能力決定位的驅(qū)動(dòng)能力。段的驅(qū)動(dòng)能力是由顯示器的亮度決定的,通過(guò)發(fā)光的二極管的電流較大,其亮度也就越多,對(duì)于靜態(tài)顯示器,當(dāng)某位電量時(shí),此位中點(diǎn)亮的段通過(guò)恒定的電流;而對(duì)于動(dòng)態(tài)顯示器,此電流卻是以一定脈沖方式出現(xiàn)的,其峰值電流來(lái)考慮。我采用的是三個(gè)數(shù)碼管集成在一起的管子,這種管子的好處是在接線的時(shí)候比較簡(jiǎn)單,三個(gè)COM端接位選接口,非常適合用于動(dòng)態(tài)顯示。我們所采用的是動(dòng)態(tài)顯示,雖然有閃爍感,占用的CPU空間較多,但使用的硬件少,能節(jié)約線路板空間。3.10電源電路電源是一個(gè)控制系統(tǒng)中最重要的一部分,用于驅(qū)動(dòng)整個(gè)系統(tǒng)的運(yùn)行。輸入電源經(jīng)過(guò)穩(wěn)壓塊后輸出穩(wěn)定的+5V電源。圖3-14+5V穩(wěn)壓電路3.11光控電路由光敏電阻、滑動(dòng)變阻器、電阻及運(yùn)算放大器LM324組成,如圖所示:圖3-15光控電路在這次設(shè)計(jì)中把光敏電阻作為光傳感器件對(duì)外界光線進(jìn)行檢測(cè),若光敏電阻受光照時(shí),電阻阻值減小,運(yùn)放同向輸入端為低電平;若光照減弱時(shí),電阻增大,運(yùn)放同向輸入端就為高電平。光控電路的輸出信號(hào)經(jīng)過(guò)電壓跟隨器后,將比較微弱的電流信號(hào)放大到單片機(jī)能夠識(shí)別到的電流,然后再由運(yùn)放輸出端將放大后的信號(hào)傳給單片機(jī)的P1.7口。電路圖中的調(diào)節(jié)變阻器RV1能夠改變電流,從而來(lái)控制整個(gè)光控電路對(duì)光信號(hào)的靈敏度。3.12路燈控制電路路燈控制電路是整個(gè)硬件電路的基本組成部分之一,也是智能化路燈控制器電路的發(fā)光部分,這一部分的電路相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的,在其中起到控制作用的元件是單片機(jī),它的控制功能主要是通過(guò)指令系統(tǒng)的指令來(lái)實(shí)現(xiàn)的。圖3-16路燈控制電路第4章軟件設(shè)計(jì)4.1主程序模擬路燈控制系統(tǒng)的軟件程序設(shè)計(jì)包括判斷各個(gè)按鈕按下之后能夠?qū)崿F(xiàn)什么樣功能,判斷開(kāi)燈、關(guān)燈的時(shí)間。其中,動(dòng)態(tài)顯示是在中斷子程序中來(lái)進(jìn)行的,每一次中斷的時(shí)間為1Ms,每中斷一次就掃描一次,從而實(shí)現(xiàn)動(dòng)態(tài)顯示。正常走時(shí)的動(dòng)態(tài)顯示是在T0中斷中進(jìn)行動(dòng)態(tài)掃描的,而設(shè)置開(kāi)燈、關(guān)燈的時(shí)間是在T1中斷中進(jìn)行動(dòng)態(tài)掃描的。主程序流程圖如下:圖4-1主程序流程圖4.2計(jì)時(shí)程序在計(jì)時(shí)程序中主要是定時(shí)器/計(jì)數(shù)器的運(yùn)用,基本的MCS-51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,即定時(shí)器/計(jì)數(shù)器T0和定時(shí)器/計(jì)數(shù)器T1。它們既可以做定時(shí)器,也可以做計(jì)數(shù)器。定時(shí)器/計(jì)數(shù)器的基本結(jié)構(gòu)是由兩個(gè)8位的計(jì)數(shù)器(其中TH0、TL0是T0的計(jì)數(shù)器,TH1、TL1是T1的計(jì)數(shù)器。)組裝而成的。當(dāng)它作為定時(shí)器使用時(shí),輸入的時(shí)鐘脈沖是由于晶體振蕩器的輸出經(jīng)12分頻后得到的。所以定時(shí)器也可看做是對(duì)計(jì)算機(jī)的機(jī)器周期的計(jì)數(shù)器,因?yàn)槊總€(gè)機(jī)器周期包含晶體振蕩器的12個(gè)振蕩周期,所以每一個(gè)機(jī)器周期定時(shí)器加1,可以把輸入的時(shí)鐘脈沖看成機(jī)器周期信號(hào)。故它的頻率為晶振頻率的1/12。如果晶振頻率為12MHZ,那么定時(shí)器每接收一個(gè)輸入脈沖的時(shí)間為1us。定時(shí)器/計(jì)數(shù)器一共有四種工作方式,其工作方式的選擇與控制都由兩個(gè)特殊功能寄存器(TMOD和TCON)的內(nèi)容來(lái)決定。先用指令改變TMOD或TCON的內(nèi)容后,則在下一條指令的第一個(gè)機(jī)器周期的S1P1時(shí)起作用。對(duì)于定時(shí)器/計(jì)數(shù)器的工作方式而言,MCS-51片內(nèi)的定時(shí)器/計(jì)數(shù)器可以通過(guò)對(duì)特殊功能寄存器TMOD中的控制位C/的設(shè)置來(lái)選擇定時(shí)器方式或計(jì)數(shù)器方式;通過(guò)對(duì)M1、M0兩位的設(shè)置來(lái)選擇四種工作方式,由于在設(shè)計(jì)中采用了T0,所以就以T0來(lái)加以說(shuō)明。①方式0當(dāng)M1M0設(shè)置為00時(shí),定時(shí)器選定為方式0工作。在這種方式下,16位寄存器只用了13位,TL0的高三位沒(méi)有用。由TH0的8位和TL0的低5位組成一個(gè)13位計(jì)數(shù)器。當(dāng)GATE=0時(shí),只要TCON中的TR0為1,TL0及TH0組成的13位計(jì)數(shù)器就開(kāi)始計(jì)數(shù);當(dāng)GATE=1時(shí),此時(shí)僅TR0=1仍不能使計(jì)數(shù)器計(jì)數(shù),還需要引腳為1才能使計(jì)數(shù)器工作。由此可知,當(dāng)GATE=1和TR0=1時(shí),TH0+TL0是否計(jì)數(shù)取決于引腳的信號(hào),當(dāng)由0變1時(shí),開(kāi)始計(jì)數(shù);當(dāng)由1變0時(shí),停止計(jì)數(shù),這樣就可以用來(lái)測(cè)量在端出現(xiàn)的脈沖寬度。當(dāng)13位計(jì)數(shù)器從0或設(shè)定的初值,加1到全“1”以后,再加1就產(chǎn)生溢出。這時(shí),置TCON的TF0位為1,同時(shí)把計(jì)數(shù)器變?yōu)槿?”。②方式1方式1和方式0的工作相同,唯一的差別是TH0和TL0組成一個(gè)16位計(jì)數(shù)器。③方式2方式2把TL0配置成一個(gè)可以自動(dòng)恢復(fù)初值(初始常數(shù)自動(dòng)重新裝入)的8位計(jì)數(shù)器,TH0作為常數(shù)緩沖器,TH0由軟件預(yù)置值。當(dāng)TL0產(chǎn)生溢出時(shí),一方面使溢出標(biāo)志TF0置1,同時(shí)把TH0中的8位數(shù)據(jù)重新裝入TL0中。方式2常用于定時(shí)控制。例如希望每隔250μs產(chǎn)生一個(gè)定時(shí)控制脈沖,則可以采用12MHz的振蕩器,把TH0預(yù)置為6,并使C/=0就能實(shí)現(xiàn)。方式2不用作串行口波特率發(fā)生器。④方式3方式3對(duì)定時(shí)器T0和定時(shí)器T1是不相同的。若T1設(shè)置為方式3,則停止工作(其效果與TR1=0相同)。所以方式3只適用于T0。方式0和方式1的最大特點(diǎn)是計(jì)數(shù)溢出后,計(jì)數(shù)器全為0,因此循環(huán)定時(shí)或計(jì)數(shù)應(yīng)用時(shí)就存在重新設(shè)置計(jì)數(shù)初值的問(wèn)題,這不但影響定時(shí)精度,而且也給程序設(shè)計(jì)帶來(lái)不便。方式2就是針對(duì)此問(wèn)題而設(shè)置的,它具有自動(dòng)重新加載功能,因此也可以說(shuō)方式2是自動(dòng)重新加載工作方式。在這種工作方式下,把16位計(jì)數(shù)器分為兩部分,即以TL0作計(jì)數(shù)器,以TH0作預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別裝入TL0和TH0中。當(dāng)計(jì)數(shù)溢出后,由預(yù)置寄存器以硬件方法自動(dòng)加載。初始化時(shí),8位計(jì)數(shù)初值同時(shí)裝入TL0和TH0中。當(dāng)TL0計(jì)數(shù)溢出時(shí),置位TF0,同時(shí)把保存在TH0中的計(jì)數(shù)初值自動(dòng)加載裝入TL0中,然后TL0重新計(jì)數(shù),如此重復(fù)不止,這不但省去了用戶程序中的重裝指令,而且有利于提高定時(shí)精度。但這種方式下計(jì)數(shù)值有限,最大只能到256。這種自動(dòng)重新加載工作方式非常適用于連續(xù)定時(shí)或計(jì)數(shù)應(yīng)用。當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:1-256(28)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為:(28-計(jì)數(shù)初值)x晶振周期x12或(28-計(jì)數(shù)初值)x機(jī)器周期通過(guò)上述四種方式的比較,根據(jù)本計(jì)時(shí)軟件設(shè)計(jì)的要求,所以我們就采用了T0定時(shí)器的方式1。時(shí)間調(diào)整子程序流程圖:圖4-2時(shí)間調(diào)整子程序流程圖這次設(shè)計(jì)用到了T0和T1進(jìn)行中斷控制,T0和T1用的都是方式一。在中斷子程序中放進(jìn)了顯示程序,中斷時(shí)間為1Ms,可以實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)掃描且無(wú)閃爍感。4.3中斷程序所謂的中斷就是指在計(jì)算機(jī)執(zhí)行程序過(guò)程中,當(dāng)出現(xiàn)某種情況時(shí)(例如:發(fā)生停電或其他情況),先由服務(wù)對(duì)象向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU暫時(shí)中斷當(dāng)前程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,等待處理程序執(zhí)行完畢后,再繼續(xù)處理執(zhí)行原來(lái)被中斷的程序。實(shí)現(xiàn)這一個(gè)功能的部件稱作為中斷系統(tǒng),申請(qǐng)CPU中斷的請(qǐng)求源稱之為中斷源,單片機(jī)的中斷系統(tǒng)一般允許多個(gè)中斷源,若當(dāng)多個(gè)中斷源同時(shí)向CPU請(qǐng)求中斷時(shí),就存在一個(gè)中斷優(yōu)先權(quán)的問(wèn)題。通常情況下,根據(jù)中斷源的優(yōu)先級(jí)別,優(yōu)先處理最緊急事件的中斷請(qǐng)求源,即最先響應(yīng)級(jí)別最高的中斷請(qǐng)求。MCS-51單片機(jī)的中斷控制系統(tǒng)有兩種中斷方式,即外部中斷與內(nèi)部中斷。外部中斷是指從單片機(jī)的外部引腳/INT0和/INT1輸入中斷請(qǐng)求信號(hào)的中斷,即外部中斷源共有兩個(gè)。如輸入/輸出的中斷請(qǐng)求、掉電和設(shè)備故障的中斷請(qǐng)求都可以作為外部中斷源,從引腳輸入。內(nèi)部中斷是指單片機(jī)芯片內(nèi)部產(chǎn)生的中斷,MCS-51單片機(jī)的內(nèi)部中斷有定時(shí)/計(jì)數(shù)器T0和T1的溢出中斷、串行口的發(fā)送/接收中斷。當(dāng)定時(shí)/計(jì)數(shù)器T0和T1的定時(shí)或計(jì)數(shù)到時(shí),由硬件自動(dòng)置位TCON的TF1或TF0,然后向CPU申請(qǐng)中斷;CPU響應(yīng)中斷而轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)將TF0或TF1清零。當(dāng)串行口發(fā)送或接收完一幀數(shù)據(jù)時(shí),由硬件自動(dòng)置位SCON的TI或RI,以此向CPU申請(qǐng)中斷;CPU響應(yīng)中斷后,硬件不能自動(dòng)將TI或RI清零,即CPU響應(yīng)串行口中斷后不能自動(dòng)撤除中斷請(qǐng)求信號(hào),必須由用戶采用軟件方法將TI或RI清零,來(lái)撤除中斷請(qǐng)求信號(hào)。中斷過(guò)程分為5個(gè)階段:中斷請(qǐng)求、中斷優(yōu)先、中斷響應(yīng)、中斷處理和中斷返回。其中中斷處理就是執(zhí)行中斷服務(wù)程序,這就是中斷系統(tǒng)的核心。不同的計(jì)算機(jī)系統(tǒng)的中斷處理過(guò)程各具特色,但是對(duì)多數(shù)計(jì)算機(jī)而言,中斷服務(wù)程序的流程如下。中斷處理的過(guò)程基本上是由3部分組成,第一部分為準(zhǔn)備部分,它的基本功能是保護(hù)現(xiàn)場(chǎng),相對(duì)于非向量中斷方式則需要確定中斷源,然后開(kāi)放中斷,允許更高級(jí)的中斷請(qǐng)求來(lái)打斷低級(jí)的中斷服務(wù)程序;第二部分是處理部分,即真正執(zhí)行具體的為某個(gè)中斷源服務(wù)的中斷服務(wù)程序;第三部分是結(jié)尾部分,首先要關(guān)掉中斷,以便返回原來(lái)的程序后可響應(yīng)其他的中斷請(qǐng)求。中斷服務(wù)程序的最后一條指令一定是中斷返回指令了。流程圖如下:圖4-3中斷程序流程圖4.4按鍵程序?qū)τ诎存I電路的設(shè)計(jì),在沒(méi)有鍵按下去時(shí)一直為高電平,有按鍵按下時(shí)就變?yōu)榈碗娖?。單片機(jī)據(jù)此作為判斷的依據(jù)。用來(lái)表示每個(gè)不同的按鈕按下能夠?qū)崿F(xiàn)不同的功能,例如:調(diào)節(jié)定時(shí)開(kāi)燈時(shí)間、定時(shí)關(guān)燈時(shí)間等等。當(dāng)單片機(jī)查到按鍵閉合時(shí),就調(diào)用按鍵功能程序,來(lái)實(shí)現(xiàn)相應(yīng)的功能。4.5程序清單與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),界面友好,易學(xué)易用。#include<reg51.h>sbitfunction=P1^0;sbithour_add=P1^1;sbithour_sub=P1^2;sbitminute_add =P1^3;sbitminute_sub =P1^4;sbitlamp1=P3^0;sbitlamp2=P3^1;sbitlamp3=P3^2;sbitlamp4=P3^3;sbitguang=P0^2;bitEN_COCLK=1;bitBEGIN=0;unsignedcharcnt;unsignedcharhour;unsignedcharminute;unsignedcharsecond;unsignedcharhalf_second;unsignedintms50;structtime{ unsignedcharhour; unsignedcharminute; unsignedcharsecond;}ds[2];codeunsignedcharseg[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //CA//unsignedcharcodechoose_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsignedcharcodechoose_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};unsignedcharidatadisdata[7];unsignedcharidatadissetup[7];unsignedcharturnon[4]={0x01,0x02,0x04,0x08};unsignedcharkey_min_hour=0; //分或秒閃爍unsignedchardisp_type=0; //記錄時(shí)間組unsignedcharrn; //按定時(shí)開(kāi)關(guān)鍵次數(shù)/**************************************** 延時(shí)1毫秒*****************************************/voiddelay1ms(unsignedinti) { unsignedinta,b;for(a=0;a<i;a++) for(b=0;b<120;b++);}voiddelay(unsignedchara){ while(--a) ;}/******************************* 顯示時(shí)鐘*******************************/voiddisp_clock(void){ unsignedchardisplay; unsignedchari; disdata[0]=hour/10; disdata[1]=hour%10; disdata[2]=minute/10; disdata[3]=minute%10; disdata[4]=second/10; disdata[5]=second%10; for(i=0;i<6;i++) { P0=0xff; display=tab[disdata[i]]; if(half_second&&(i==3)) { display&=0x7f; } P2=choose_bit[i]; P0=display; delay1ms(1); } P0=0xff; //關(guān)燈}/******************************* 顯示設(shè)置時(shí)間值*******************************/voiddisp_init(void){ unsignedchardisplay; unsignedchari; dissetup[0]=ds[disp_type-1].hour/10; dissetup[1]=ds[disp_type-1].hour%10; dissetup[2]=ds[disp_type-1].minute/10; dissetup[3]=ds[disp_type-1].minute%10; dissetup[4]=ds[disp_type-1].second/10; dissetup[5]=ds[disp_type-1].second%10; for(i=0;i<6;i++) { P0=0xff; display=tab[dissetup[i]]; if(i==3||i==1) { display&=0x7f; } P2=choose_bit[i]; P0=display; delay1ms(1); } P0=0xff;} /****************************** 鍵盤掃描子程序******************************/voidkeyscan(void){unsignedcharhouradd=1;unsignedcharminadd=1;if(!function) {delay1ms(20);if(function==0){while(function==0);EN_COCLK=0;if(++disp_type==3){ disp_type=0; EN_COCLK=1;}}}if(!hour_add) {delay1ms(20);if(hour_add==0){while(hour_add==0);switch(disp_type){case0:if(++hour>=24) hour=0;break;case1:if(++ds[0].hour>=24)ds[0].hour=0;break;case2:if(++ds[1].hour>=24) ds[1].hour=0;break;default:break;}}}if(!hour_sub) {delay1ms(20);if(hour_sub==0){while(hour_sub==0); switch(disp_type){ case0: if(--hour==0xff) hour=23; break; case1: if(--ds[0].hour==0xff) ds[0].hour=23; break; case2: if(--ds[1].hour==0xff) ds[1].hour=23; break; default: break;}}}if(!minute_add) {delay1ms(20);if(minute_add==0){while(minute_add==0);switch(disp_type){ case0: if(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒保教知識(shí)與能力-教師資格《幼兒保教知識(shí)與能力》模擬題5
- 《三顧茅廬》教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)語(yǔ)文上冊(cè)同步特色備課資源(統(tǒng)編版)
- 14 《我要的是葫蘆》教學(xué)設(shè)計(jì)-2024-2025學(xué)年二年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 第16課 冷戰(zhàn)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年九年級(jí)歷史下冊(cè)素養(yǎng)提升教學(xué)設(shè)計(jì)(統(tǒng)編版)
- 2025年無(wú)菌包裝用包裝材料合作協(xié)議書
- 2025年嘉興職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 10《制作視頻作品》教學(xué)設(shè)計(jì)、教材分析與教學(xué)反思2024年滇人版初中信息技術(shù)七年級(jí)下冊(cè)
- 肝病護(hù)理病歷書寫
- 順產(chǎn)流程護(hù)理常規(guī)
- 啤酒的消費(fèi)模式變化
- 12月腹痛護(hù)理常規(guī)
- 經(jīng)典文學(xué)作品中的女性形象研究外文文獻(xiàn)翻譯2016年
- 控股集團(tuán)公司組織架構(gòu)圖.docx
- 高爐煤氣安全知識(shí)的培訓(xùn)
- 2008 年全國(guó)高校俄語(yǔ)專業(yè)四級(jí)水平測(cè)試試卷
- 需求供給與均衡價(jià)格PPT課件
- 最常用2000個(gè)英語(yǔ)單詞_(全部標(biāo)有注釋)字母排序
- 在銀行大零售業(yè)務(wù)工作會(huì)議上的講話講解學(xué)習(xí)
- 古代傳說(shuō)中的藝術(shù)形象-
- 水電站大壩土建安裝工程懸臂模板施工手冊(cè)
- 三體系內(nèi)審檢查表(共58頁(yè)).doc
評(píng)論
0/150
提交評(píng)論