基于單片機的流水燈設(shè)計_第1頁
基于單片機的流水燈設(shè)計_第2頁
基于單片機的流水燈設(shè)計_第3頁
基于單片機的流水燈設(shè)計_第4頁
基于單片機的流水燈設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)摘要近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。我們周圍有許多廣告牌。通過單片機的控制,我們可以把城市的夜晚裝飾的更漂亮。通過對單片機的系統(tǒng)學習,對一些廣告燈的設(shè)計做了一些必要的改進。同時對自己的改進也做了真實的仿真。達到了預期的目的。但是在改進的過程里也

2、發(fā)現(xiàn)了自己的很多的不足。這會在以后的學習生活里不斷提高。逐步完善自己。關(guān)鍵字:廣告燈,單片機,程序設(shè)計目錄1單片機技術(shù)概述11.1 基本概念11.2 MCS-51系列單片機簡介22 系統(tǒng)的硬件設(shè)計32.1硬件組成32.2流水燈硬件原理圖32.3開發(fā)軟件32.4編程語言特點43系統(tǒng)軟件設(shè)計及調(diào)試5 3.1設(shè)計思路53.2 軟件編程53.3 位控法53.4 循環(huán)移位法63.5 查表法73.6 匯編語法要求、規(guī)則93.7小燈控制程序93.8 結(jié)語114參考文獻125致謝131 單片機技術(shù)概述1.1基本概念單片機實際上是微型計算機的一種,自從它問世以來,人們對它不斷地改進,以應(yīng)用于現(xiàn)代化社會的各方各面

3、。單片機體積小,價格低廉,開發(fā)較為容易,可根據(jù)需要制作成各種智能控制器以代替人工的操作,實現(xiàn)自動化。在我國,由于ASIC(專用集成電路)的生產(chǎn)還跟不上,單片機的作用更加地重要,在智能儀器儀表、工業(yè)設(shè)備過程控制、家用電器中,都可以見到它的蹤跡。單片機應(yīng)用的意義不僅在于它的廣闊范圍及所帶來的經(jīng)濟效益。更重要的意義在于,單片機的應(yīng)用從根本上改變了控制系統(tǒng)傳統(tǒng)的設(shè)計思想和設(shè)計方法。以前采用硬件電路實現(xiàn)的大部分控制功能,正在用單片機通過軟件方法來實現(xiàn)。以前自動控制中的PID調(diào)節(jié),現(xiàn)在可以用單片機實現(xiàn)具有智能化的數(shù)字計算控制、模糊控制和自適應(yīng)控制。這種以軟件取代硬件并能提高系統(tǒng)性能的控制技術(shù)稱為微控技術(shù)。

4、 單片微型計算機就是將CPU、RAM、ROM、時/計數(shù)器和多種接口都集成到一塊集成電路芯片上的微型計算機。(引腳圖例如圖1.1) 按用途可分為通用型和專用型兩大類根據(jù)單片機能夠一次處理的數(shù)據(jù)的寬度,單片機可分為1位機,4位機,8 位機,16位機,32位機。(內(nèi)部邏輯如圖1.2)圖1.1 51系列單片機引腳圖圖1.2 51系列單片機內(nèi)部邏輯圖1.2 MCS-51系列單片機簡介MCS是Intel公司生產(chǎn)的單片機的系列符號 。20世紀80年代中期以后,Intel公司以專利轉(zhuǎn)讓的形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給了許多半導體芯片生產(chǎn)廠家,如AMTEL、PHILIPS、ANALOG DEVICES、DALLA

5、S公司等。這些廠家生產(chǎn)與MCS-51指令系統(tǒng)兼容的單片機。這些兼容機與8051的系統(tǒng)結(jié)構(gòu)(主要是指令系統(tǒng))相同,采用CMOS工藝,因而常用80C51系列來稱呼所有具有8051指令系統(tǒng)的單片機。不應(yīng)該把它們直接稱為MCS-51系列單片機,因為MCS只是Intel公司專用的單片機系列符號。2 系統(tǒng)的硬件設(shè)計 2.1 硬件組成按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機,具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷

6、結(jié)構(gòu)、2個全雙工的串行口,具有4.255.50V的電壓工作范圍和024MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發(fā)光二極管的單片機最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。2.2 流水燈硬件原理圖圖2.1 系統(tǒng)硬件原理圖2.3開發(fā)軟件Keil C51 軟件是眾多單片機應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語言和 C 語言的程序設(shè)計,界面友好,易學易用。它可以結(jié)合proteus軟件可以實現(xiàn)單機仿真。對于初學者的需求基本能得到滿足。而對于所需電路圖的繪制則需要專用的prot

7、el軟件的支持。它也是個功能全面的軟件。所以學好單片機首先要熟悉上面提到的幾種軟件。以便于理論與實踐的真正結(jié)合。用protel軟件的主要注意的是對各圖標代碼的熟悉。一提高繪畫速度。Keil C51軟件主要是對程序的編寫要準確。軟件的使用要在學習理論知識的同時帶著使用,在使用中不斷的熟悉。如果在實驗室則主要熟悉對Keil C51與硬件設(shè)備的連接和使用。為了正確仿真串口,在軟件仿真調(diào)試時,在用戶的Keil工程文件的屬性中,還需要設(shè)置實際使用的晶振頻率。這個參數(shù)非常重要,直接影響通信的波特率,可以按照實際使用的參數(shù)進行設(shè)置。2.4編程軟件特點它最大的好處就是簡單、方便,容易使用,不需要使用任何電路,

8、也沒有特殊的要求;甚至可以在硬件電路制作好之前就將串口部分的程序編寫、調(diào)試完畢。3系統(tǒng)軟件設(shè)計及調(diào)試3.1 設(shè)計思路從硬件原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖剑煌?,接在P1.1P1.7口的其他7個LED的點亮和熄滅的方法同LED1。因此,要實現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1LED8依次點亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應(yīng)注意一點,由于人眼的視覺暫留效應(yīng)以及單片機執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延

9、時一段時間,否則我們就看不到“流水”效果了。3.2 軟件編程單片機的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點亮的現(xiàn)象,我們還需要告訴單片機怎么來進行工作,即編寫程序控制單片機管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應(yīng)用系統(tǒng)中的一個重要的組成部分,是單片機學習的重點和難點。下面我們以最簡單的流水燈控制功能即實現(xiàn)8個LED燈的循環(huán)點亮,來介紹實現(xiàn)流水燈控制的幾種軟件編程方法。3.3位控法這是一種比較笨但又最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制P1口的每一個位輸出高低電平,從而來控制相應(yīng)LED燈的亮滅。程序如下:ORG000

10、0H ;單片機上電后從0000H地址執(zhí)行AJMP START ;跳轉(zhuǎn)到主程序存放地址處ORG 0030H ;設(shè)置主程序開始地址START:MOV SP,#60H ;設(shè)置堆棧起始地址為60H CLR P1.0 ;P1.0輸出低電平,使LED1點亮ACALL DELAY ;調(diào)用延時子程序 SETB P1.0 ;P1.0輸出高電平,使LED1熄滅CLR P1.1 ;P1.1輸出低電平,使LED2點亮ACALL DELAY;調(diào)用延時子程序SETB P1.1 ;P1.1輸出高電平,使LED2熄滅CLR P1.2 ;P1.2輸出低電平,使LED3點亮ACALL DELAY;調(diào)用延時子程序SETB P1.2

11、 ;P1.2輸出高電平,使LED3熄滅CLR P1.3 ;P1.3輸出低電平,使LED4點亮ACALL DELAY;調(diào)用延時子程序SETB P1.3 ;P1.3輸出高電平,使LED4熄滅CLR P1.4 ;P1.4輸出低電平,使LED5點亮ACALL DELAY;調(diào)用延時子程序SETB P1.4 ;P1.4輸出高電平,使LED5熄滅CLR P1.5 ;P1.5輸出低電平,使LED6點亮ACALL DELAY ;調(diào)用延時子程序SETB P1.5 ;P1.5輸出高電平,使LED6熄滅CLR P1.6 ;P1.6輸出低電平,使LED7點亮ACALL DELAY ;調(diào)用延時子程序 SETB P1.6

12、;P1.6輸出高電平,使LED7熄滅CLR P1.7 ;P1.7輸出低電平,使LED8點亮ACALL DELAY ;調(diào)用延時子程序SETB P1.7 ;P1.7輸出高電平,使LED8熄滅ACALL DELAY;調(diào)用延時子程序AJMP START ;8個LED流了一遍后返回到標號START處再循環(huán)DELAY: ;延時子程序 MOV R0,#255 ;延時一段時間D1:MOV R1,#255DJNZ R1,$DJNZ R0,D1RET ;子程序返回END ;程序結(jié)束3.4循環(huán)移位法在上個程序中我們是逐個控制P1端口的每個位來實現(xiàn)的,因此程序顯得有點復雜,下面我們利用循環(huán)移位指令,采用循環(huán)程序結(jié)構(gòu)進

13、行編程。我們在程序一開始就給P1口送一個數(shù),這個數(shù)本身就讓P1.0先低,其他位為高,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至P1口,這樣就實現(xiàn)“流水”效果啦。由于8051系列單片機的指令中只有對累加器ACC中數(shù)據(jù)左移或右移的指令,因此實際編程中我們應(yīng)把需移動的數(shù)據(jù)先放到ACC中,讓其移動,然后將ACC移動后的數(shù)據(jù)再轉(zhuǎn)送到P1口,這樣同樣可以實現(xiàn)“流水”效果。具體編程如下所示,程序結(jié)構(gòu)確實簡單了很多。ORG0000H ;單片機上電后從0000H地址執(zhí)行AJMP START ;跳轉(zhuǎn)到主程序存放地址處ORG 0030H ;設(shè)置主程序開始地址START:MOV SP,#60H ;設(shè)置堆棧

14、起始地址為60H MOV A,#0FEH ;ACC中先裝入LED1亮的數(shù)據(jù)(二進制的)MOV P1,A ;將ACC的數(shù)據(jù)送P1口MOV R0,#7 ;將數(shù)據(jù)再移動7次就完成一個8位流水過程LOOP:RL A ;將ACC中的數(shù)據(jù)左移一位MOV P1,A ;把ACC移動過的數(shù)據(jù)送p1口顯示ACALL DELAY ;調(diào)用延時子程序DJNZ R0,LOOP ;沒有移動夠7次繼續(xù)移動 AJMP START ;移動完7次后跳到開始重來,以達到循環(huán)流動效果DELAY: ;延時子程序MOV R0,#255 ;延時一段時間D1:MOV R1,#255DJNZ R1,$DJNZ R0,D1RET ;子程序返回EN

15、D ;程序結(jié)束3.5查表法上面的兩個程序都是比較簡單的流水燈程序,“流水”花樣只能實現(xiàn)單一的“從左到右”流方式。運用查表法所編寫的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無限,只要更改流水花樣數(shù)據(jù)表的流水數(shù)據(jù)就可以隨意添加或改變流水花樣,真正實現(xiàn)隨心所欲的流水燈效果。我們首先把要顯示流水花樣的數(shù)據(jù)建在一個以TAB為標號的數(shù)據(jù)表中,然后通過查表指令“MOVC A,A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進行顯示。具體源程序如下,TAB標號處的數(shù)據(jù)表可以根據(jù)實現(xiàn)效果的要求任意修改。ORG 0000H ;單片機上電后從0000H地址執(zhí)行AJMP START;跳轉(zhuǎn)到主程序存放地址處O

16、RG 0030H ;設(shè)置主程序開始地址START:MOV SP,#60H ;設(shè)置堆棧起始地址為60HMOV DPTR,# TAB ;流水花樣表首地址送DPTRLOOP: CLR A ;累加器清零MOVC A,A+DPTR ;取數(shù)據(jù)表中的值CJNE A,#0FFH,SHOW ;檢查流水結(jié)束標志AJMP START ;所有花樣流完,則從頭開始重復流SHOW:MOV P1,A ;將數(shù)據(jù)送到P1口ACALL DELAY ;調(diào)用延時子程序INC DPTR ;取數(shù)據(jù)表指針指向下一數(shù)據(jù)AJMP LOOP ;繼續(xù)查表取數(shù)據(jù)DELAY: MOV R0,#255 ;延時一段時間D1:MOV R1,#255DJNZ

17、 R1,$DJNZ R0,D1RET ;子程序返回TAB: ;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編寫 DB B ;二進制表示的流水花樣數(shù)據(jù),從低到高左移 DB B DB B DB B DBB DBB DBB DBB DBB ;二進制表示的流水花樣數(shù)據(jù),從高到低右移 DBB DBB DBB DBB DBB DBB DBB DB B DB0FEH,0FDH,0FBH,0F7H ;十六進制表示的流水花樣數(shù)據(jù) DB0EFH,0DFH,0BFH,7FH DB7FH,0BFH,0DFH,0EFH DB0F7H,0FBH,0FDH,0FEH DB 0FFH ;流水花樣結(jié)束標志0FFHEND ;程序結(jié)束3

18、.6 匯編語法要求、規(guī)則這里需要說明的是,按匯編語法要求,所編制的程序(下稱源程序)之格式和書寫要求必須依下列原則: 1、源程序必須為純文本格式文件,如用Windows“附件”中的“記事本”編寫的文本文件編輯;2、源程序的擴展名應(yīng)是 *.ASM; 3、一行只能寫一條語句,以回車作為本句的結(jié)束,每一語句行長度應(yīng)少于80個字符(即40個漢字)。4、每行的格式應(yīng)為:標號: 命令 參數(shù) ;注釋 。即一行由四部份組成,各部份的順序不能搞錯,依實際要求可以缺省其中的一部份或幾部份,甚至全部省去,即空白行。需要使用標號時標號后面必須有“:”(冒號),而命令語句和參數(shù)之間必須用空格分開,如果命令有多個參數(shù),則

19、參數(shù)與參數(shù)之間必須用“,”(逗號)分開,需要注釋時注釋前必須用“;”(分號),“;”后面的語句可以寫任何字符,包括漢字用于解釋前面的匯編語句,它將不參與匯編,不生成代碼。由于匯編程序?qū)ξ覀冞€不直觀,所以在編寫源程序時,應(yīng)當養(yǎng)成多寫注釋的習慣,這樣有助于今后源程序的閱讀和維護。 標號是標志程序中某一行的符號名,編譯后標號的數(shù)值就是標號所在行代碼的地址。在宏匯編ASM51中標號的長度不受限制,但標號中不能包含:或其它的一些特殊符號,也不能用漢字,可以用數(shù)字作標號,但必須用字母開頭。當標號作參數(shù)用(如標號作轉(zhuǎn)移地址),在命令后面出現(xiàn)時,必須舍去:(如上面程序中的 AJMP START中的START是

20、不能再有:)。每行只能有一個標號,一個標號只能用在一處,如果有兩行用了同一個標號,則匯編時就會出錯。由于標號的長度沒有限制,可以用有意義的英文或漢語拼音來說明行,使源程序讀起來更方便。在源程序中的字母不區(qū)分大小寫,也就是說 start 和 START 是一樣的,請不要用大小寫方式去區(qū)分不同的標號。3.7小燈控制程序ORG 0 START: MOV DPTR,#TAB LOOP : CLR A MOVC A,A+DPTR CJNE A,#0FFH,SHOW AJMP START SHOW: MOV P1,A ACALL DELAY INC DPTR AJMP LOOP DELAY:MOV R5,#2 D0:MOV R7,#250 D1:MOV R6,#250 D2:DJNZ R6,D2 DJNZ R7,D1 DJNZ R5,D0 RET TAB: DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,B DB B,B,B,B,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論