版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第1章 緒論 1.1 研究課題的背景介紹隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展,城市建設(shè)規(guī)模不斷擴(kuò)大,大城市人口高度集中并大幅度增長(zhǎng),同時(shí)汽車保有量急劇上升,交通需求量迅速擴(kuò)大,而道路交通基礎(chǔ)設(shè)施建設(shè)的發(fā)展則相對(duì)滯后。城市交通需求與供給之間的矛盾越來(lái)越突出,城市“乘車難”、“行車難”的局面在加劇,交通堵塞呈現(xiàn)出點(diǎn)到線、由線到面的擴(kuò)展趨勢(shì),交通擁擠、交通延誤、交通堵塞以及由此引起的噪音、廢棄污染嚴(yán)重影響著居民的正常生活以及社會(huì)經(jīng)濟(jì)的持續(xù)、健康發(fā)展。近年來(lái),我國(guó)城市交通的現(xiàn)狀已引起了政府、公眾、社會(huì)各界的廣泛關(guān)注,有關(guān)專家學(xué)者和交通工程師們?cè)谖「鲊?guó)城市交通發(fā)展經(jīng)驗(yàn)的基礎(chǔ)上,找到了解決我
2、國(guó)城市交通發(fā)展問(wèn)題的有效途徑,即優(yōu)先發(fā)展城市公共交通,以公共交通為杠桿降低城市交通需求總量,實(shí)現(xiàn)道路交通基礎(chǔ)設(shè)施發(fā)展與交通需求增長(zhǎng)的均衡。實(shí)施“公交優(yōu)先”是解決我國(guó)城市交通問(wèn)題的有效途徑,也是我國(guó)目前交通發(fā)展的基本政策。公交智能化是智能交通的一個(gè)重要子領(lǐng)域,同時(shí)也是落實(shí)“公交優(yōu)先”,使城市交通與社會(huì)經(jīng)濟(jì)和諧發(fā)展的重要組成部分。實(shí)施公交智能化,必須提高公交服務(wù)質(zhì)量,而到站后的準(zhǔn)確、及時(shí)報(bào)站就是一個(gè)方面,本設(shè)計(jì)基于AT89C52單片機(jī)、LED點(diǎn)陣制作的公交車自動(dòng)報(bào)站系統(tǒng)就能解決這方面的問(wèn)題。從而,達(dá)到公共形象的提升。當(dāng)前國(guó)內(nèi)主要大城市的公交車大都采用人工報(bào)站,即每到一站由司機(jī)或者乘務(wù)員來(lái)進(jìn)行報(bào)站。
3、但有時(shí)由于受到各種因素如雨雪天氣的影響,會(huì)出現(xiàn)報(bào)錯(cuò)站、漏報(bào)站的情況,給乘客特別是不熟悉本市地形的乘客帶來(lái)了不必要的麻煩,從而影響到了一個(gè)城市的窗口形象工程建設(shè)。于是開發(fā)研制自動(dòng)報(bào)站系統(tǒng)成為必然。因此本次畢業(yè)設(shè)計(jì)中提出以AT89C52單片機(jī)為核心,用LED顯示屏顯示站名的即經(jīng)濟(jì)、高效、直觀的公交車到站自動(dòng)報(bào)站系統(tǒng)。1.2 研究前景及國(guó)內(nèi)外發(fā)展水平隨著公交優(yōu)先戰(zhàn)略的確定,公交在緩解城市交通擁堵方面的作用將越來(lái)越重要,也這種要求相比,我國(guó)大城市公共交通還有很大差距,主要表現(xiàn)為:為社會(huì)提供服務(wù)信息的水平低,只能是以經(jīng)驗(yàn)為主的被動(dòng)、滯后的實(shí)施服務(wù),仍以人工作業(yè)為主。上述問(wèn)題顯然不利于公交對(duì)乘客的吸引,也
4、是導(dǎo)致公交運(yùn)營(yíng)組織模式落后、調(diào)度方式原始陳舊、企業(yè)管理效率不高的重要原因。因此,如何提高公交系統(tǒng)的服務(wù)質(zhì)量,是現(xiàn)行公交行業(yè)急需解決的問(wèn)題。我國(guó)智能運(yùn)輸?shù)幕A(chǔ)較差,因此理論研究雖在進(jìn)行,但相應(yīng)技術(shù)卻得不到推廣,在實(shí)際生活中得不到應(yīng)用,達(dá)不到廣泛服務(wù)社會(huì)的目的。所以發(fā)展一種自動(dòng)報(bào)站系統(tǒng),提高公交服務(wù)質(zhì)量就成為民用科技研究的一個(gè)項(xiàng)目。目前在國(guó)際上已經(jīng)實(shí)現(xiàn)了DPS定位車載智能系統(tǒng),在國(guó)內(nèi)的幾個(gè)大城市也都有使用,實(shí)現(xiàn)了公交系統(tǒng)的全面監(jiān)控和調(diào)度。公交車自動(dòng)報(bào)站系統(tǒng)的研究也達(dá)到了無(wú)線聯(lián)絡(luò),全自動(dòng)報(bào)站的水平。但一般其經(jīng)濟(jì)投入較高。結(jié)合我國(guó)現(xiàn)有的公交系統(tǒng)現(xiàn)狀,半自動(dòng)化報(bào)站系統(tǒng)還有很大的應(yīng)用空間。適用于一些中小城
5、市。1.3 課題研究的意義在公交車上,經(jīng)常有誤報(bào)站的現(xiàn)象,在早晚高峰期,公交車內(nèi)擁擠,環(huán)境噪聲大,語(yǔ)音報(bào)站往往聽不清楚,影響報(bào)站,車箱內(nèi)的喇叭分布不均勻也容易造成乘客聽不清報(bào)站。而報(bào)站LED顯示屏填補(bǔ)了語(yǔ)音報(bào)站的缺陷。在聽不清報(bào)站的時(shí)候可以通過(guò)顯示屏確認(rèn)站點(diǎn)。而且LED顯示屏的成本較低,適合在每個(gè)公交車上安裝。1.4 課題任務(wù)及設(shè)計(jì)要求以單片機(jī)為核心,制作一個(gè)公交車自動(dòng)報(bào)站系統(tǒng)。其必要的功能為:1:具有4個(gè)24*24的點(diǎn)陣漢字顯示功能。2:功能上具有速度調(diào)整、顯示控制按鍵和滾動(dòng)控制按鍵。3:漢字用點(diǎn)陣顯示,漢字顯示模塊采用24*24。4:在設(shè)計(jì)時(shí)應(yīng)該充分考慮單片機(jī)的I/O口的擴(kuò)展和單片機(jī)的存儲(chǔ)
6、字庫(kù)的問(wèn)題。第2章 方案論證與方案選擇 2.1 總體方案論證公交車LED顯示屏電路大體上可以分成單片機(jī)本身的硬件電路、顯示驅(qū)動(dòng)電路和控制電路??刂齐娐凡糠职ㄒ粋€(gè)51CUP和一些外圍電路。在整個(gè)電路當(dāng)中此控制電路部分相當(dāng)于一個(gè)上位機(jī),它負(fù)責(zé)控制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、與PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。此顯示電路采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。由行譯碼器給出的行選通信號(hào),從第一行開始,按順序依次對(duì)各行進(jìn)行掃描(把該行與電源的一端接通)。另一方面,根據(jù)各行鎖存的數(shù)據(jù),確定相應(yīng)的行驅(qū)動(dòng)器是否將該列與電源的另一端接通。接通的行,就在該列該行
7、點(diǎn)燃相應(yīng)的LED;未接通的行所對(duì)應(yīng)的LED熄滅??赏ㄟ^(guò)按鍵控制電路控制實(shí)現(xiàn)顯示站名的移動(dòng)/停止,開/關(guān),速度的加減,下一個(gè)站名的功能。根據(jù)任務(wù)要求,該系統(tǒng)框圖如圖1所示。時(shí)鐘電路復(fù)位電路單片機(jī)點(diǎn)陣顯示器陰極驅(qū)動(dòng)電路點(diǎn)陣顯示器陽(yáng)極驅(qū)動(dòng)電路24×24點(diǎn)陣LED顯示屏按鍵控制電路圖1 系統(tǒng)框圖2.2 各方案選擇與論證2.2.1單片機(jī)選擇方案一: 采用通過(guò)SPCE061A單片機(jī)編寫程序顯示要求漢字。SPCE061A是凌陽(yáng)科技公司umSPTM(microcontroller and signal processor)系列產(chǎn)品中的16位微控制芯片,內(nèi)置32閃存,其較高的處理速度芯片能夠非常容易、
8、快速地處理復(fù)雜的數(shù)字信號(hào),適用于數(shù)字語(yǔ)音識(shí)別等領(lǐng)域。8×8雙色LED點(diǎn)陣電路,用行驅(qū)動(dòng)和列驅(qū)動(dòng)可以亮點(diǎn)LED點(diǎn)陣模塊。圖中RCOL1ECOL8分別控制8×8LED的每一列顯示成紅色,成為紅色LED的列驅(qū)動(dòng),低電平有效;而GCOL1GCOL8分別控制著8×8LED的每一列顯示成綠色,成為綠色LED的列驅(qū)動(dòng),同樣是低電平有效;COM1COM8使他們的數(shù)據(jù)口,當(dāng)送入一個(gè)口高電平時(shí),相應(yīng)的LED被點(diǎn)亮,而當(dāng)送入其中一個(gè)低電平時(shí),相應(yīng)的LED就會(huì)被熄滅,所以也成為行驅(qū)動(dòng)。比如,當(dāng)想要第一行(從下到上)的第一個(gè)LED顯示成紅色的時(shí)候,只需要送RCOL1一個(gè)低電平,而且送COM
9、1一個(gè)高電平即可,也即選中紅色的第一列(從右到左),并給第一行(從下到上)送一個(gè)高電平,就可以使得第一行第一列(同前)的LED顯示成紅色。此方案也是有單片機(jī)直接驅(qū)動(dòng),性能穩(wěn)定,驅(qū)動(dòng)能力強(qiáng),簡(jiǎn)單方便,但是由于我們系主要學(xué)習(xí)的是51系列單片機(jī)對(duì)于這一款新的單片機(jī)再去學(xué)習(xí)了解可能時(shí)間不夠,故此方案也被放棄了。方案二:選用ATMEL公司的AT89C52單片機(jī)作為硬件電路的主控芯片,它是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)8K BYTES的可反復(fù)擦寫的只讀程序存儲(chǔ)器和256 BYTES的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置
10、有8位中央處理器和FLASH存儲(chǔ)器單元,功能強(qiáng)大的AT89C52單片機(jī)可提供許多復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。AT89C52單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案,因此單片機(jī)選擇ATC89C52較為合適。2.2.2復(fù)位電路選擇單片機(jī)剛上電時(shí)需要復(fù)位一次才能可靠工作,單片機(jī)有多種復(fù)位電路,本系統(tǒng)采用電平式開關(guān)復(fù)位和上電復(fù)位方式,當(dāng)上電時(shí),C1相當(dāng)于短路,單片機(jī)復(fù)位,在正常工作時(shí),按下復(fù)位鍵時(shí)單片機(jī)復(fù)位。復(fù)位電路如圖2所示。圖2 單片機(jī)復(fù)位電路2.2.3外部晶振選擇AT89C52的內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。通過(guò)XTAL1,XTAL2外部接上一片作為反饋元件的晶體,與C1
11、和C2構(gòu)成了并聯(lián)諧振電路,使其構(gòu)成自激震蕩器。電容的值具有微調(diào)的作用,我們?nèi)?3PF。具體的接法如圖3外部晶振電路所示。圖3 外部晶振電路2.2.4顯示屏模塊選擇我們知道的用來(lái)顯示的器件很多,比如數(shù)碼管、LCD、點(diǎn)陣式LED。數(shù)碼管只能顯示數(shù)字,LCD可以顯示漢字、符號(hào)、數(shù)字和圖形。雖然LCD的顯示效果要比LED好,顯示電路也比較簡(jiǎn)單,因?yàn)楹艽笠徊糠忠呀?jīng)集成化,但是它的價(jià)格比較高,也不容易采購(gòu)。所以綜合考慮生產(chǎn)成本,本系統(tǒng)采用點(diǎn)陣式LED顯示。它具有一下特點(diǎn):1、價(jià)格比較便宜;2、容易擴(kuò)展顯示比較多的漢字;3、顯示漢字效果好,廣泛用于廣告顯示屏,交通屏幕。通常情況下,點(diǎn)陣式LED顯示屏是由標(biāo)準(zhǔn)
12、的LED顯示模塊組成的。HS 1088BS點(diǎn)陣式LED顯示模塊是8行8列64個(gè)LED組成。單塊點(diǎn)陣式LED顯示模塊能夠顯示各種字母,數(shù)字和常用的符號(hào)。點(diǎn)陣式LED顯示模塊在8行8列的每一個(gè)交點(diǎn)上裝有一個(gè)LED。模塊有共陽(yáng)極和共陰極之分。LED的正極接行引線,負(fù)極接列引線的稱為共陽(yáng)極LED顯示模塊,反之為共陰極LED顯示模塊。方案一:采用9塊8×8點(diǎn)陣LED顯示屏相連接構(gòu)成一塊24×24點(diǎn)陣LED顯示屏,9塊點(diǎn)陣屏連接起來(lái)面積較大,且需多根導(dǎo)線將其焊接,但是這種方案制作的顯示屏的大小、形狀沒(méi)有限制,可以任意制作,現(xiàn)在制作的LED顯示屏都是用此方法。 方案二:采用24×
13、;24點(diǎn)陣LED顯示屏,24×24點(diǎn)陣屏的功能與9塊8×8點(diǎn)陣屏構(gòu)成24×24點(diǎn)陣屏功能相同,但是更為美觀小巧美觀,且單塊24×24點(diǎn)陣屏和9塊8×8點(diǎn)陣屏價(jià)格相等。但市面上幾乎沒(méi)有24×24點(diǎn)陣LED顯示屏,都是由8×8點(diǎn)陣連接而成。故本設(shè)計(jì)采用方案一。2.2.5 驅(qū)動(dòng)顯示模塊選擇LED顯示的三種方式:1、 占空比控制驅(qū)動(dòng):減少驅(qū)動(dòng)電路。在需要進(jìn)行灰度級(jí)控制顯示的情況下要求隨時(shí)調(diào)整占空比使LED達(dá)到響應(yīng)的發(fā)光程度。2、 組合驅(qū)動(dòng):按照行列進(jìn)行驅(qū)動(dòng)。3、 掃描驅(qū)動(dòng):所謂脈沖驅(qū)動(dòng)方式,就是利用人眼的視覺(jué)暫留效應(yīng),以脈沖的方式對(duì)
14、LED器件進(jìn)行供電,使之間歇性點(diǎn)亮。采用這種驅(qū)動(dòng)方式需要對(duì)以下兩個(gè)方面進(jìn)行考慮:脈沖電流的幅值和其重復(fù)頻率。首先,脈沖電流幅值的選擇,當(dāng)脈沖驅(qū)動(dòng)的平均值與直流驅(qū)動(dòng)的電流值相等時(shí),我們?nèi)搜鄣母杏X(jué)就是相同的,也就是說(shuō)兩者的發(fā)光強(qiáng)度相當(dāng)。掃描驅(qū)動(dòng)是通過(guò)數(shù)字邏輯電路,使若干個(gè)LED器件輪流導(dǎo)通,用以節(jié)省控制驅(qū)動(dòng)電路。LED顯示屏是將發(fā)光燈按行按列布置的,驅(qū)動(dòng)時(shí)也就按行按列驅(qū)動(dòng)。在掃描方式下進(jìn)行掃描:(1) 按列控制也叫可按列掃描,按行控制。所謂“掃描”的含義,就是指一行一行地循環(huán)接通整行的LED器件,而不問(wèn)這一行的哪一列的LED器件是否應(yīng)該點(diǎn)亮,某一列的LED器件是否應(yīng)該點(diǎn)亮,由所謂的列控制電路來(lái)負(fù)責(zé)
15、。(2) 按行掃描按列控制的方式。一個(gè)m行n列結(jié)構(gòu)的LED顯示屏,當(dāng)采用行掃描列控制的驅(qū)動(dòng)方式時(shí),從H1到Hm輪流將高電位接通各行線,使連接到各行的LED器件接通正電源,但具體哪一個(gè)LED導(dǎo)通,還是看它的負(fù)電源是否接通,這就是列控制所要完成的工作。根據(jù)驅(qū)動(dòng)方式的不同,LED大屏幕顯示方式可分為靜態(tài)顯示和動(dòng)態(tài)掃描顯示。方案一:采用靜態(tài)鎖存方式,從理論上說(shuō),不論顯示圖形還是文字,只要控制這些組成圖形或文字的各個(gè)點(diǎn)所在位置相對(duì)應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動(dòng)顯示方式。24×24的點(diǎn)陣共有576個(gè)發(fā)光二極管,顯然單片機(jī)沒(méi)有這么多端
16、口,如果采用鎖存器來(lái)擴(kuò)展端口,按8位的鎖存器來(lái)計(jì)算,24×24的點(diǎn)陣需要576/8=72個(gè)鎖存器。這個(gè)數(shù)字很大,因?yàn)閮H僅是24×24的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個(gè)很大的數(shù)字。這種方法可以直接驅(qū)動(dòng)LED,原理簡(jiǎn)單,驅(qū)動(dòng)能力強(qiáng),LED的亮度也可以通過(guò)限流電阻調(diào)節(jié),非常方便,但此種方法太浪費(fèi)單片機(jī)的I/O口,只適合于較小的系統(tǒng)。因此采用另一種稱為動(dòng)態(tài)掃描的顯示方法。方案二:采用動(dòng)態(tài)掃描方式,動(dòng)態(tài)掃描的意思簡(jiǎn)單地說(shuō)就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如24行)的同名列共用一套列驅(qū)動(dòng)器。具體就由9塊8×8組成的24&
17、#215;24的點(diǎn)陣來(lái)說(shuō),我們把所有同一行的發(fā)光管的陽(yáng)極連在一起,把所有同一列的發(fā)光管的陰極連在一起,先送出對(duì)應(yīng)第一列發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第一列使其點(diǎn)亮一定的時(shí)間,然后熄滅;再送出第二列的數(shù)據(jù)并鎖存,然后選通第二列使其點(diǎn)亮相同的時(shí)間,然后熄滅; 第二十四列之后又重新點(diǎn)亮第一列,這樣反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺(jué)暫留現(xiàn)象,只要刷新速率不小于25幀/秒,就不會(huì)有閃爍感,我們就能看到顯示屏上穩(wěn)定的圖形了。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。故采用本設(shè)計(jì)方案。2.2.5行驅(qū)動(dòng)模塊選擇采用動(dòng)態(tài)掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)
18、器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一列中各行的數(shù)據(jù)都傳送到相應(yīng)的行驅(qū)動(dòng)器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯?wèn)題。從控制電路到行驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。采用串行傳輸?shù)姆椒?,控制電路可以只用一根信?hào)線,將行數(shù)據(jù)一位一位傳往行驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。故選擇串行傳輸。但是,串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給行驅(qū)動(dòng)器,只有當(dāng)一列的各行數(shù)據(jù)都已傳輸?shù)轿恢?,這一列的各行才能并行地進(jìn)行顯示。這樣,對(duì)于一列的顯示過(guò)程就可以分解成行數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個(gè)部分。對(duì)于串行傳輸方式來(lái)說(shuō),列數(shù)據(jù)
19、準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以至影響到LED的亮度。解決串行傳輸中行數(shù)據(jù)準(zhǔn)備和行數(shù)據(jù)顯示的時(shí)間矛盾問(wèn)題,可以采用重疊處理的方法。即在顯示本列各行數(shù)據(jù)的同時(shí),傳送下一列的行數(shù)據(jù)。為了達(dá)到重疊處理的目的,行數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)過(guò)上述分析,可以歸納出行驅(qū)動(dòng)器電路應(yīng)具備的主要功能。對(duì)于行數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串入并出的移位功能;對(duì)于列行數(shù)據(jù)顯示來(lái)說(shuō),應(yīng)具有并行鎖存的功能。這樣,本列已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一列的列數(shù)據(jù),而不會(huì)影響本行的顯示。選用行驅(qū)動(dòng)模塊主要有兩種方案:方案一:74ls164是8位串行輸
20、入轉(zhuǎn)并行輸出移位寄存器。74ls164的驅(qū)動(dòng)電流(25mA)比74HC595(35mA)的要小,14腳封裝,體積也要小一些,但74ls164只有數(shù)據(jù)清零端,不容易控制。方案二:由74HC595構(gòu)成,74HC595是具有一個(gè)8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器的結(jié)構(gòu),與74ls164只有數(shù)據(jù)清零端相比,74HC595還多有使能輸出控制端,可以使輸出為高阻態(tài),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù),達(dá)到重疊處理的目的。由于有24個(gè)行線,需要3塊74HC595串聯(lián)起來(lái)。故采用方案二。第3章 系統(tǒng)硬件電路的設(shè)計(jì) 3.1 硬件電路設(shè)計(jì)本
21、電路是由AT89C52單片機(jī)為控制核心;采用普通晶體時(shí)鐘源,其中晶體用12MHZ的石英晶振;復(fù)位電路結(jié)合實(shí)際應(yīng)用功能的實(shí)現(xiàn),采用上電復(fù)位和電平式開關(guān)復(fù)位方式;顯示部分由24×24點(diǎn)陣LED顯示屏顯示;行驅(qū)動(dòng)電路采用74HC595,列驅(qū)動(dòng)電路采用74LS138。3.2 各單元電路說(shuō)明3.2.1 單片機(jī)主控模塊設(shè)計(jì)1. AT89C52單片機(jī)介紹AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有8K bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器和256的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用AEMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通
22、用8位中央處理器和FLASH存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。圖4為AT89C52外部封裝。圖4 AT89C52封裝AT89C52單片機(jī)為40引腳雙列直插芯片,有32個(gè)外部雙向輸入/輸出端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和FLASH存儲(chǔ)器結(jié)合到一起,特別是可反復(fù)擦寫的FLASH存儲(chǔ)器可有效地降低開發(fā)成本。ALE/PROG端除輸出地址鎖存允許脈沖外,在編程期間還作為編程脈沖輸入端,參與控制對(duì)FLASH存儲(chǔ)器的讀,寫,加密,擦除等操作。
23、而EA/VPP端在尋址片內(nèi)8KB FLASH程序存儲(chǔ)器時(shí),必須連到VCC,如果將此端連到GND端,將迫使單片機(jī)尋址外部0000H-1FFFH范圍的程序存儲(chǔ)器。如果加密位被編程了,AT89C52的CPU將對(duì)EA的狀態(tài)進(jìn)行采樣并鎖存,EA的狀態(tài)不得與實(shí)際使用的內(nèi)部或外部程序存儲(chǔ)器的狀態(tài)發(fā)生矛盾。AT89C52振蕩器特性為: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求
24、的寬度。 此外,AT89C52設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,停止芯片其它功能直至硬件復(fù)位,直到下一個(gè)硬件復(fù)位為止。2單片機(jī)復(fù)位電路復(fù)位電路有硬件和軟件兩種,復(fù)位的作用是使程序自動(dòng)從0000H開始執(zhí)行,因此我們只要在AT89C52單片機(jī)的RESET端加上一個(gè)高電平信號(hào),并持續(xù)10ms以上即可,RESET端接有一個(gè)上電復(fù)位電路,它是由一個(gè)小的點(diǎn)解電容和一個(gè)接地的電阻組成的。人工復(fù)位電路另外采用一個(gè)按鈕來(lái)給RESET端加上高電平信
25、號(hào)。如圖5所示人工復(fù)位電路。圖5 人工復(fù)位電路我們采用放電型人工復(fù)位電路,如圖所示,上電時(shí)C通過(guò)R充電維持寬度大于10ms的正脈沖,完成上復(fù)位功能。C充電結(jié)束后,RESET端將出現(xiàn)低電平CPU工作。在此我們?nèi)×说湫椭礡=10K,R1=1K,C=10uf。上電復(fù)位實(shí)現(xiàn)的時(shí)間:T=R*C=10K*10UF=100ms>=10ms。需要人工復(fù)位時(shí),按下按鈕K,C通過(guò)K和R1放電,RESET端電位上升到高電平,實(shí)現(xiàn)人工復(fù)位,K松開后C重新充電,充電結(jié)束后,CPU重新工作,R1是限流電阻,阻值不可以放大,否則不能起到復(fù)位作用。3. 時(shí)鐘電路單片機(jī)的時(shí)鐘電路如下圖所示,單片機(jī)18引腳和19引腳接時(shí)鐘
26、電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。如圖6所示。圖6 單片機(jī)時(shí)鐘電路3.2.2行數(shù)據(jù)傳輸電路的設(shè)計(jì)行數(shù)據(jù)傳輸電路由3個(gè)集成電路74HC595串聯(lián)構(gòu)成,74HC595的外形及內(nèi)部結(jié)構(gòu)如圖7所示。74HC595是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。74HC595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。 數(shù)據(jù)在SHcp的上升沿輸入,在STcp的上升沿進(jìn)入到存儲(chǔ)寄存器中去,下降沿時(shí)存儲(chǔ)器數(shù)據(jù)不變。如果兩個(gè)時(shí)鐘連在一起
27、,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。 移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。圖7 74HC595外形及內(nèi)部結(jié)構(gòu)通常將OE置為低電平,當(dāng)移位結(jié)束后,在OE端產(chǎn)生一個(gè)正脈沖(5V時(shí),大于幾十納秒就行了,通常都選微秒級(jí)),更新顯示數(shù)據(jù);OE(13腳)指高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅的效果,這樣比通過(guò)數(shù)據(jù)端移位控制要省事省力。然后用三片74HC595串聯(lián)起來(lái)組成行數(shù)據(jù)傳輸端,如圖8所示。通
28、過(guò)數(shù)據(jù)端和時(shí)鐘端把數(shù)據(jù)傳輸?shù)揭莆患拇嫫鳌D8 74HC595串聯(lián)電路3.2.3列控制電路列控制器件74LS138是3-8譯碼器,它具有三個(gè)使能端,只有當(dāng)使能端S1為高電平,而S2與S3之和為低電平時(shí),才能正常工作,輸出端低電平有效。74LS138管腳圖如9所示。圖9 74LS138管腳圖此列控制電路采用三片138和每個(gè)輸出端串聯(lián)一個(gè)1k的電阻起限流的作用,然后與P1口相連接作為顯示屏的列選擇線。ABC為譯碼器數(shù)據(jù)輸出端,E1、E2、E3為片使能端。當(dāng)E1為高電平,E2、E3為低電平時(shí)第一片譯碼器使能可控制(COL0COL7)列,以此類推選擇列。74LS138電路連接如圖10所示。圖10 74L
29、S138管腳分配連接圖3.2.4點(diǎn)陣組合電路的設(shè)計(jì)1.LED點(diǎn)陣屏簡(jiǎn)介L(zhǎng)ED電子顯示屏是由幾萬(wàn)幾十萬(wàn)個(gè)半導(dǎo)體發(fā)光二極管像素點(diǎn)均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點(diǎn)。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍(lán)色和純綠色LED的開發(fā)已經(jīng)達(dá)到了應(yīng)用階段。8×8單色點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)二極管是放置在行線與列線的叉點(diǎn)上。本設(shè)計(jì)是一種實(shí)用的漢字顯示屏的制作,制作的是單色點(diǎn)陣??紤]到元器件的易購(gòu)性,使用9塊8×8的點(diǎn)陣發(fā)光二極管模塊,組成了24行24列的發(fā)光點(diǎn)陣。實(shí)際使用時(shí)可以根據(jù)這個(gè)原理自行擴(kuò)充顯示的字?jǐn)?shù)。8×8點(diǎn)陣外觀及引腳如圖11所示。
30、圖11 8×8點(diǎn)陣外觀及引腳圖 2. 點(diǎn)陣組合電路設(shè)計(jì)24×24點(diǎn)陣LED顯示屏由9塊8×8點(diǎn)陣組成組成,此點(diǎn)陣是按共陰極式組合,控制列選端低電平有效。Row0Row23為行數(shù)據(jù)端,COL0COL16為列控制端,管腳分配方式如圖11所示。圖11 點(diǎn)陣管腳分配連接圖3.2.5按鍵電路的設(shè)計(jì)鍵盤實(shí)際上是一組按鍵開關(guān)的集合,控制CPU通過(guò)按鍵來(lái)識(shí)別特定的用戶命令,從而轉(zhuǎn)入相應(yīng)的程序來(lái)執(zhí)行用戶命令。鍵盤的軟硬件的設(shè)計(jì)涉及下面幾個(gè)方面的問(wèn)題:對(duì)于此設(shè)計(jì)來(lái)說(shuō)我們要準(zhǔn)確的顯示我們所要對(duì)應(yīng)的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來(lái)報(bào)站而設(shè)計(jì)的。這樣比鍵盤操作方便
31、,也比較實(shí)惠。按鍵電路采用中斷模式。當(dāng)有按鍵按下時(shí),系統(tǒng)產(chǎn)生中斷,CPU響應(yīng)中斷。圖12是單片機(jī)的I/O口連接電路,P1口作為連接74LS138的片選使能和譯碼數(shù)據(jù)端,P0作為連接74HC595的時(shí)鐘端、數(shù)據(jù)端、清零端、使能端的分配。按鍵用P2口的P2.0、P2.1、P2.2、P2.3分別控制點(diǎn)陣屏移動(dòng)/停止,開/關(guān),速度的加減,下一個(gè)站名的功能。單片機(jī)和按鍵連接電路,如圖12所示。圖12 單片機(jī)和按鍵連接電路圖第4章 系統(tǒng)軟件的設(shè)計(jì) 4.1 點(diǎn)陣顯示原理4.1.1 24×24點(diǎn)陣LED基本顯示原理LED驅(qū)動(dòng)顯示采用動(dòng)態(tài)掃描方法,動(dòng)態(tài)掃描方式是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)
32、多行的同名列共用一套列驅(qū)動(dòng)器。24×24點(diǎn)陣屏由9塊8×8點(diǎn)陣LED顯示屏組成,把9塊8×8點(diǎn)陣LED顯示屏所有同一行(同名行)的發(fā)光管的陽(yáng)極連在一起,把所有同一列(同名列)的發(fā)光管的陰極連在一起,先送出對(duì)應(yīng)第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定的時(shí)間,然后熄滅;再送出第2行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;.第24行之后,又重新燃亮第1行,反復(fù)輪回。由于人眼的視覺(jué)暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,且節(jié)省單片機(jī)的資源。顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒?,控制電路可以只用一根信?hào)線,
33、將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。但串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。對(duì)于串行傳輸方式來(lái)說(shuō),列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串行移位寄存器就可
34、以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。LED點(diǎn)陣顯示模塊進(jìn)行的方式有兩種:(1)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱列掃描方式):此時(shí)用一個(gè)P口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè)P口輸出行碼(列數(shù)據(jù)),決定該行上那哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完24列(相當(dāng)于位碼循環(huán)移動(dòng)24次)即顯示出一個(gè)完整的圖像。(2)豎直方向(Y方向)掃描,即逐行掃描方式(簡(jiǎn)稱行掃描方式):此時(shí)用一個(gè)P口輸出決定哪一行能亮(相當(dāng)于位碼),另一個(gè)P口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn)90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完24行(
35、相當(dāng)于位碼循環(huán)移位24次)即顯示一幀完整的圖像。本設(shè)計(jì)應(yīng)用的是第二種的掃描方法,即豎直方向(Y方向)掃描。 在UCDOS中文宋體字庫(kù)中,每一個(gè)字由24行24列的點(diǎn)陣組成顯示,如圖4.1所示。如果用 8位我們以UCDOS中文宋體字庫(kù)為例,每一個(gè)字由24行24列的點(diǎn)陣組成顯示。即國(guó)標(biāo)漢字庫(kù)中的每一個(gè)字均由576點(diǎn)陣來(lái)表示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在576像素范圍內(nèi)的任何圖形。我們以顯示漢字的89C51單片機(jī)控制,由于單片機(jī)的總線為8位一個(gè)字需要拆分為3個(gè)部分。 一般我們把它拆分為左邊、中間、右邊,左邊由24
36、215;8點(diǎn)陣組成,中間由24×8點(diǎn)陣組成,右邊也由24×8點(diǎn)陣組成。 在本例中單片機(jī)首先顯示的是左邊的第一列左上部分,即第一列的A-H口。方向?yàn)锳到H ,顯示漢字“沈”時(shí),如圖4.1所示。AH全是滅的。即二進(jìn)制轉(zhuǎn)換為16進(jìn)制為00H.。 左邊第一列AH完成后,繼續(xù)掃描左邊的第一列,即從I向P方向掃描,從上圖可以看出,為I滅,J滅, K滅, L滅, M滅, N滅,O滅, P滅。即二進(jìn)制轉(zhuǎn)換為16進(jìn)制為00H。接著再顯示左邊部分的第一列的QX,從圖上可以看出QX都為滅,即二進(jìn)制轉(zhuǎn)換為16進(jìn)制為00H。先左邊,再中間,最后是右邊部分,依次類推,如圖13。按照這個(gè)方法,繼續(xù)進(jìn)行下
37、面的掃描,一共掃描32個(gè)8位,可以得出漢字“沈”,它的掃描代碼為:00H,00H,00H,00H,80H,00H,00H,40H,40H,10H,70H,FEH;18H,03H,E0H,0CH,3CH,00H,01H,C0H,02H,00H,00H,04H;00H,80H,08H,07H,80H,18H,02H,00H;30H,02H,00H,C0H;02H,07H,80H,3FH,FEH,00H,3FH,1FH,F8H,02H,1FH,FCH;02H,00H,04H,02H,00H,04H,02H,00H,04H,03H,80H,04H;03H,00H,04H,00H;00H,7CH,00H
38、,00H,04H,00H,00H,00H;豎直方向掃描圖13 24×24點(diǎn)陣顯示字體4.1.2 24×24點(diǎn)陣LED顯示屏左跑馬顯示原理如果要在24×24點(diǎn)陣屏以左跑馬的方式顯示以字體,則需以以下方式進(jìn)行顯示。在24×24點(diǎn)陣屏中,我們可以把點(diǎn)陣屏看成24列LED組成,且每列有24個(gè)LED燈。在本例中單片機(jī)首先將第二列的顯示信息給第一列,使第一行顯示圖像變成第二行所要顯示的。以“沈”字為例,原第一列由上到下排列,為1滅,2滅,3滅,4滅,5滅,6滅,7滅,8滅,9滅,10滅,11滅,12滅,13滅,14滅,15滅,16滅,18滅,19滅,20滅,21滅,
39、22滅,23滅,24滅。原第二列由上到下排列,為1滅,2滅,3滅,4滅,5滅,7滅,8滅,9滅,10亮,11-24滅。單片機(jī)將第二列信息給第一列取代第一行原信息,故第一列由上到下排列,為1-9滅,10亮,11-24滅。接著將第一列的信息給第二十四列,第三列的信息給第二列,第四列的信息給第三列,依此類推,如圖14所示。按照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描。最終點(diǎn)陣屏在視覺(jué)上的顯示效果是“沈”字慢慢向左邊移動(dòng),如圖15所示。 圖14 左跑馬原理 圖15 左跑馬后顯示圖像4.2 系統(tǒng)軟件實(shí)現(xiàn)本程序主要由主程序與清屏、查表、送數(shù)、循環(huán)掃描、延時(shí)幾個(gè)部分組成。在主程序中使用DPTR地址寄存器作為地址取碼指針
40、,通過(guò)查表將數(shù)據(jù)送行線作控制信號(hào),而通過(guò)138連接的列線作掃描控制開關(guān)。主程序圖如圖16所示。系統(tǒng)初始化開始數(shù)據(jù)清零、顯示字?jǐn)?shù),賦字模初地址判斷按鍵和按鍵處理片選和列控制字賦初值調(diào)行數(shù)據(jù)傳送子程序掃描列使能延時(shí)子程序八列掃描完N取下一幀首地址字模地址改變24列掃描和數(shù)據(jù)傳輸完掃描次數(shù)到顯示字?jǐn)?shù)到Y(jié)NNNYYY圖16 主流程序圖4.2.1 行數(shù)據(jù)傳輸子程序設(shè)計(jì)DPTR置數(shù)據(jù)表地址的基值,R2作地址指針,以兩者之和查找相應(yīng)的數(shù)據(jù),R2的初值為0,當(dāng)DPTR為表首地址時(shí),在子程序的循環(huán)中R2從0加到3,取出顯示一列字符的全部字節(jié)并與列掃描配合逐列顯示,完成一幀掃描的全部操作。為保證第一屏能移動(dòng)顯示,
41、該設(shè)計(jì)將數(shù)據(jù)表的最前一屏用了0數(shù)據(jù),開始以黑屏顯示完成全部的掃描顯示。幀掃描子程序流程圖如圖17所示。行數(shù)據(jù)傳送子程序595呈現(xiàn)高電平,設(shè)傳送字節(jié)數(shù)取當(dāng)前一個(gè)字節(jié)位傳送8位傳送完傳送字節(jié)完取碼指針加一595管腳輸出數(shù)據(jù)子程序返回YYNN圖17 幀掃描子程序流程圖4.2.2 單片機(jī)延時(shí)子程序延時(shí)程序在單片機(jī)編程中使用非常廣泛,也很重要,在本畢業(yè)設(shè)計(jì)的程序中用到了延時(shí)子程序,所以在此詳細(xì)的敘述一下。在弄清延時(shí)程序指令的用法之前,要清楚的了解延時(shí)程序的基本概念,機(jī)器周期和指令周期的區(qū)別和聯(lián)系、相關(guān)指令的用法等。 我們知道程序設(shè)計(jì)是單片機(jī)開發(fā)最重要的工作,而程序在執(zhí)行過(guò)程中常常需要完成延時(shí)的功能。例如
42、在本設(shè)計(jì)中,列向的掃描要控制每列的掃描時(shí)間,還有所有的字移動(dòng)有一定的時(shí)間間隔,而在所有的字移動(dòng)一遍結(jié)束的一瞬間到下一遍移動(dòng)開始的一瞬間要有延時(shí),這時(shí)的延時(shí)可以和移動(dòng)的時(shí)間相同以保持移動(dòng)的連貫性,也可以不同作為每次從頭開始的停頓,在上述就可以通過(guò)延時(shí)程序來(lái)完成。1. 延時(shí)指令 在單片機(jī)編程里面并沒(méi)有真正的延時(shí)指令,從上面的概念中我們知道單片機(jī)每執(zhí)行一條指令都需要一定的時(shí)間,所以要達(dá)到延時(shí)的效果,只須讓單片機(jī)不斷地執(zhí)行沒(méi)有具體實(shí)際意義的指令,從而達(dá)到了延時(shí) 的效果。 (1)數(shù)據(jù)傳送指令 MOV 數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個(gè)地方復(fù)制、拷貝到另一個(gè)地方。 如:MOV R7,#80H
43、60; ;將數(shù)據(jù)80H 送到寄存器R7,這時(shí)寄存器R7 里面存放著80H,就單這條 指令而言并沒(méi)有任何實(shí)際意義,而執(zhí)行該指令則需要一個(gè)機(jī)器周期。 (2)空操作指令 NOP 空操作指令功能只是讓單片機(jī)執(zhí)行沒(méi)有意義的操作,消耗一個(gè)機(jī)器周期。 (3)循環(huán)轉(zhuǎn)移指令 DJNZ 循環(huán)轉(zhuǎn)移指令功能是將第一個(gè)數(shù)進(jìn)行減1 并判斷是否為0,不為0 則轉(zhuǎn)移到指定地點(diǎn);為0 則往下執(zhí)行。 循環(huán)轉(zhuǎn)移指令(DJNZ )除了可以給定地址標(biāo)號(hào)讓其跳轉(zhuǎn)外,還可以將地址標(biāo)號(hào)改成$,這樣 程序就跳回本指令執(zhí)行。例如: DJNZ R7,$ ;R7 內(nèi)容減1 不為0,則再次執(zhí)行本指令;為0 則往下執(zhí)行,當(dāng)R7 的值改為10 時(shí),則執(zhí)行
44、完該條程序所需的時(shí)間為2*10=20 s。利用以上三條指令的組合就可以比較精確地編寫出所需要的延時(shí)程序。下面是本設(shè)計(jì)的程序中延時(shí)程序的計(jì)算: 機(jī)器周期:MS: MOV R6,#5; 1 DELAY: MOV R7,#190; 1 DJNZR7,$; 2*R7 DJNZR6,DELAY; 2*R6+(1+2*R7)*R6 RET 2上面這個(gè)子程序共有四條指令,現(xiàn)在分別就每一條指令 被執(zhí)行的次數(shù)和所耗時(shí)間進(jìn)行分析。 第一句:MOV R6,#5 在整個(gè)子程序中只被執(zhí)行一次,且為單周期指令,所以耗時(shí)1s 第二句:MOV R7,#190 從看到只要R6-1不為0,就會(huì)返回到這句,共執(zhí)行了R6次,共耗時(shí)1
45、90s 第三句:DJNZ R5,F(xiàn)1 只要R5-1不為0,就反復(fù)執(zhí)行此句(內(nèi)循環(huán)R7次),又受外循環(huán)R6控制,所以共執(zhí)行R6*R7次,因是雙周期指令,所以耗時(shí)2*R6*R7s。所以精確延時(shí)時(shí)間為:1+(1×5)+(2×190×5)+(2×5)+2 =(2*190+3)*5+3 =1918s 2ms 4.2.3 按鍵控制子程序1.按鍵程序設(shè)計(jì)本次設(shè)計(jì)中按鍵控制電路共有4個(gè)按鍵,分別控制點(diǎn)陣屏移動(dòng)/停止,開/關(guān),速度的加減,下一個(gè)站名的功能。根據(jù)硬件電路,當(dāng)按鍵沒(méi)有按下時(shí),接按鍵的單片機(jī)接口處于高電平狀態(tài)。當(dāng)按下時(shí),接口處于低電平狀態(tài),松開時(shí)又恢復(fù)到高電平狀
46、態(tài)。所以根據(jù)硬件情況在本程序中的按鍵程序中有兩句是相同的,如下:JIAN:JB KEY3,Q_OUT JNB KEY3,$ 第一句意思是KEY3為高電平,程序直接跳轉(zhuǎn)到 Q_OUT第二句意思是KEY3為低電平時(shí),繼續(xù)執(zhí)行本條語(yǔ)句,直到按鍵釋放。2.按鍵四的程序設(shè)計(jì)按鍵四實(shí)現(xiàn)的主要功能是當(dāng)按鍵第一次按下后,LED顯示屏將顯示下一個(gè)站名,再按一下是,LED顯示屏將顯示下一個(gè)站名,由于設(shè)計(jì)中運(yùn)用的主芯片是AT89C51,它的內(nèi)存有限,所以本次設(shè)計(jì)中共存有四個(gè)四字站名。當(dāng)按第四次時(shí),又恢復(fù)到第一個(gè)站名,接著依次類推,是一個(gè)循環(huán)的過(guò)程。以下是按鍵四的子程序。NEXT4: CPL 0BHNEXT: JB
47、KEY4,JIANJNB KEY4,$CPL 0DHNEXT1:JB 0DH , NEXT2 JNB 0BH, NEXT4 MOV DPTR,#TAB2CPL 0BHAJMP JIANNEXT2: JB 0CH ,NEXT3 MOV DPTR,#TAB1CPL 0CHAJMP JIANNEXT3:MOV DPTR,#TAB3 CPL0CHJIAN:進(jìn)入到按鍵四子程序后,首先判斷按鍵四是否被按下,沒(méi)有按下則直接跳到JIAN程序,即跳出按鍵四子程序,如果按下將標(biāo)志位0DH取反(0BH,0CH,0DH為標(biāo)志位,起始位低電平),進(jìn)入到程序NEXT1,判斷0DH是否為1,若為1跳到程序NEXT2,再判斷
48、0CH是否為零,將表TAB1的地址賦予DPTR,再將0CH取反,跳到JIAN,即結(jié)束按鍵四的子程序。以上是按鍵四按第一次使得程序原理,按第二、三、四原理幾乎一樣,不再重復(fù),按第五次時(shí),程序又和第一次一樣,再繼續(xù)循環(huán)。按鍵四的程序流程圖如圖18所示。0DH取反系統(tǒng)初始化KEY4是否為1返回0BH取反0DH是否為10CH是否為10BH是否為0TAB3賦予DPTR0BH取反NYNY0CH取反TAB1賦予DPTRTAB2賦予DPTRN0CH取反NYY開始圖18 按鍵四程序流程圖第5章 系統(tǒng)調(diào)試 5.1 硬件調(diào)試24×24點(diǎn)陣LED電子顯示屏的電路系統(tǒng)較小,但是線路頗為麻煩,特別是在焊接點(diǎn)陣屏
49、時(shí)。對(duì)于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出現(xiàn)一處的錯(cuò)誤,則會(huì)對(duì)整個(gè)電路帶來(lái)麻煩且對(duì)檢測(cè)造成很大的不便,而且電路的交線較多,對(duì)于各種鋒利的引腳要注意處理,否則會(huì)刺破帶有包皮的導(dǎo)線,則會(huì)對(duì)電路造成短路現(xiàn)象。本人在24×24點(diǎn)陣LED電子顯示屏的設(shè)計(jì)調(diào)試中遇到了很多的問(wèn)題。下面為設(shè)計(jì)過(guò)程中遇到的主要問(wèn)題:1. 焊接24×24 LED點(diǎn)陣屏?xí)r管腳焊接錯(cuò)誤。2. 因焊接元器件不熟練,幾個(gè)焊盤脫落。3. 在硬件電路焊好后總體檢測(cè)時(shí),24×24LED點(diǎn)陣屏第六常亮,且亮度比其 它行都亮?;叵脒@些問(wèn)題,只要耐心仔細(xì)和認(rèn)真思考都是可以避免的,以下是對(duì)這幾個(gè)問(wèn)題的主要解決方
50、法。1. 時(shí)常焊錯(cuò)點(diǎn)陣屏管腳是因?yàn)辄c(diǎn)陣屏的管腳號(hào)和功能號(hào)是不對(duì)應(yīng)的,所以先仔細(xì)查看資料,然后用萬(wàn)能表點(diǎn)個(gè)測(cè)量,確定各個(gè)管腳所對(duì)應(yīng)的功能號(hào),并做相應(yīng)的記號(hào)以防焊接錯(cuò)誤。2. 因?yàn)殡娐钒宀皇荘CB板而是普通的電路板,焊盤質(zhì)量不是很好,所以在粗心錯(cuò)焊幾次后焊盤就容易脫落,故在選電路板時(shí)應(yīng)選焊盤質(zhì)量較好的,在后面焊元器件時(shí)應(yīng)仔細(xì)小心,盡可能的防止錯(cuò)焊。3. 檢測(cè)硬件電路時(shí)發(fā)現(xiàn)24×24 LED點(diǎn)陣屏第六列常亮,且亮度比其他行都亮。首先分析LED發(fā)光原理,只有當(dāng)電流過(guò)大時(shí)LED才會(huì)異常發(fā)光,且長(zhǎng)時(shí)間發(fā)光是因?yàn)?4×24 LED點(diǎn)陣屏第二行的某個(gè)線路管腳接與正電源相接使其長(zhǎng)時(shí)間供電才導(dǎo)
51、致LED燈常亮。當(dāng)?shù)贸龉收显蚝?,仔?xì)檢查電路,用萬(wàn)用表對(duì)焊點(diǎn)逐個(gè)檢測(cè),最終檢測(cè)出來(lái)是第六列與電源線相連接才導(dǎo)致整個(gè)硬件電路出現(xiàn)故障。硬件電路如圖19所示。圖19 硬件實(shí)物電路圖5.2 PROTEUS仿真Proteus仿真時(shí),單片機(jī)需要加載程序,加載程序?yàn)?HEX文件。本設(shè)計(jì)利用Keil Vision2, 在新建Keil項(xiàng)目時(shí)選擇AT89C52單片機(jī)作為CPU,將源程序?qū)?,在“Options For Target”對(duì)話窗口中,選中“Output”選項(xiàng)中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件。在Proteus ISIS中,選中AT89C51并單擊鼠標(biāo)左鍵,對(duì)AT
52、89C51進(jìn)行設(shè)置,設(shè)置單片機(jī)時(shí)鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件。對(duì)單片機(jī)設(shè)置完畢后就可以開始仿真了。仿真過(guò)程中如有硬件問(wèn)題可在Proteus ISIS中直接修改,如有軟件問(wèn)題可在Keil Vision2中直接修改,通過(guò)Keil與Proteus的聯(lián)合調(diào)試就可以得到滿意的結(jié)果。利用Proteus實(shí)現(xiàn)了對(duì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏的仿真,說(shuō)明程序和電路圖都沒(méi)有問(wèn)題。Proteus仿真如圖20所示。圖20 Proteus仿真圖第6章 社會(huì)經(jīng)濟(jì)效益分析 近些年來(lái),隨著經(jīng)濟(jì)的增長(zhǎng),城市的人口逐漸增多,城市的車輛也是逐年遞增,在現(xiàn)代化的城市里,公交車己經(jīng)成為都市人生活不可替代的交通工
53、具,它的運(yùn)行狀況直接影響到人們的生活。加快城市公共交通事業(yè)的發(fā)展,也是加快城市化進(jìn)程的一項(xiàng)重要內(nèi)容。公交車報(bào)站LED顯示屏有著許多優(yōu)點(diǎn),在現(xiàn)在是應(yīng)用的主流。在公交車上,經(jīng)常有誤報(bào)站的現(xiàn)象,在早晚高峰期,公交車內(nèi)擁擠,環(huán)境噪聲大,語(yǔ)音報(bào)站往往聽不清楚,影響報(bào)站,車箱內(nèi)的喇叭分布不均勻也容易造成乘客聽不清報(bào)站。而報(bào)站LED顯示屏填補(bǔ)了語(yǔ)音報(bào)站的缺陷。在聽不清報(bào)站的時(shí)候可以通過(guò)顯示屏確認(rèn)站點(diǎn)。而且LED顯示屏的成本低,功率小,性價(jià)比高,一塊8X8點(diǎn)陣幾塊錢,加上外圍的驅(qū)動(dòng)芯片,公交車報(bào)站LED顯示屏總共就幾十塊錢,適合在每個(gè)公交車上安裝??偨Y(jié) 本設(shè)計(jì)的是一個(gè)公交車報(bào)站24x24的點(diǎn)陣LED顯示屏,能
54、夠在目測(cè)條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無(wú)串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn),適合在每輛公交車上安裝。 總結(jié)本文的研究工作,主要做了下面幾點(diǎn)工作 一、通過(guò)查閱大量的相關(guān)資料,詳細(xì)了解了公交車報(bào)站系統(tǒng)和其中的LED的發(fā)光原理和LED顯示屏的原理,了解了公交車報(bào)站系統(tǒng)的現(xiàn)狀,清楚地了解了在顯示站名時(shí)LED顯示屏與其它顯示屏相比較有那些優(yōu)點(diǎn),明確了研究目標(biāo)。并且通過(guò)對(duì)單片機(jī)資料的查閱和應(yīng)用,更進(jìn)一步增加了對(duì)單片機(jī)知識(shí)的理解和運(yùn)用能力。并證實(shí)了自己的思路:“查資料思考總結(jié)運(yùn)用
55、找出差錯(cuò),再查資料和向別人詢問(wèn)再次運(yùn)用”的正確性。二,本文設(shè)計(jì)的公交車報(bào)站LED顯示屏能夠?qū)崿F(xiàn)在目測(cè)條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無(wú)串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。三,本文列出了系統(tǒng)具體的硬件設(shè)計(jì)方案,硬件結(jié)構(gòu)電路圖,軟件流程圖和具體匯編語(yǔ)言程序設(shè)計(jì)與調(diào)試等方面。四,通過(guò)這次畢業(yè)設(shè)計(jì),重新復(fù)習(xí)單片機(jī)知識(shí)并進(jìn)一步增強(qiáng)了動(dòng)手的能力,學(xué)以致用,把知識(shí)運(yùn)用到實(shí)際生活中才是根本目的。五,存在問(wèn)題:沒(méi)有考慮仿真軟件是一個(gè)理想的仿真環(huán)境,而實(shí)際連接的電路板會(huì)由于譬如連接不當(dāng),相鄰器件間的干擾等等的問(wèn)題導(dǎo)致,仿真軟件中能良好運(yùn)行的程序在實(shí)際出現(xiàn)顯示問(wèn)題,經(jīng)過(guò)排查和合理的器件擺放焊接,問(wèn)題被解決??傮w來(lái)說(shuō)這次的畢業(yè)設(shè)計(jì)很成功,達(dá)到了預(yù)想的目的:學(xué)到了知識(shí),提高了能力,完成了任務(wù)。有點(diǎn)缺憾是時(shí)間有限,不能進(jìn)一步深入和擴(kuò)散學(xué)習(xí)和研究。希望有時(shí)間可以對(duì)程序和電路圖作更進(jìn)一步的改進(jìn),譬如實(shí)現(xiàn)點(diǎn)陣的上下移動(dòng),對(duì)角線移動(dòng),三色顯示等。致 謝本論文是在指導(dǎo)教師滕金玉的悉心指導(dǎo)下完成的,從開題到論文的完成,都離不開導(dǎo)師
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度充電樁安全檢測(cè)與維護(hù)服務(wù)合同3篇
- 2024版北京市二手車買賣及車輛檢測(cè)維修保障合同9篇
- 2024年度技術(shù)研發(fā)合作與知識(shí)產(chǎn)權(quán)歸屬合同2篇
- 2024年度城市綠化樹木養(yǎng)護(hù)與銷售合同書3篇
- 2024年度軟件開發(fā)公司技術(shù)服務(wù)外包合同
- 2024年度個(gè)性化店鋪店面裝修設(shè)計(jì)與施工合同3篇
- 2024版電梯維修保養(yǎng)及配件供應(yīng)服務(wù)合同3篇
- 2024版電子設(shè)備搬遷與安全防護(hù)服務(wù)合同3篇
- 2024年度鋼結(jié)構(gòu)車棚鋼結(jié)構(gòu)結(jié)構(gòu)優(yōu)化設(shè)計(jì)與安裝合同3篇
- 2024年度能源項(xiàng)目投資合同模板2篇
- 2024年天津市專業(yè)技術(shù)人員繼續(xù)教育公需課考試題+答案 (四套全)
- 煤礦帶式輸送機(jī)保護(hù)裝置安裝試驗(yàn)規(guī)定
- (全新)中職單招機(jī)械類技能考試復(fù)習(xí)試題庫(kù)(含答案)
- 技術(shù)售后人員年終總結(jié)
- MOOC 城市生態(tài)學(xué)-華東師范大學(xué) 中國(guó)大學(xué)慕課答案
- (2024年)《豆芽發(fā)芽生長(zhǎng)過(guò)程觀察》ppt文檔全文預(yù)覽
- 口腔科護(hù)理技術(shù)課件
- 《早期教育概論》課程標(biāo)準(zhǔn)
- 部分地區(qū)高二上學(xué)期期末語(yǔ)文試卷匯編文言文閱讀(含答案)
- 電氣安全與靜電防護(hù)技術(shù)
- 2023-2024學(xué)年《網(wǎng)絡(luò)實(shí)用技術(shù)基礎(chǔ)》試卷及答案解析
評(píng)論
0/150
提交評(píng)論