鍵控流水燈設計_第1頁
鍵控流水燈設計_第2頁
鍵控流水燈設計_第3頁
鍵控流水燈設計_第4頁
鍵控流水燈設計_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機課程設計題目 基于單片機的流水燈設計 姓名:李坤呈 班級:11110201 學號:33摘 要:單片機是一種集成電路芯片,采用超大規模技術,把具有數據處理能力的微處理器、隨機存取數據存儲器、只讀程序存儲器、輸入輸出電路、可能還包括定時計數器、串口通信口、顯示驅動電路,脈寬調制電路、模擬多路轉換器及A/D轉換器等電路集成到一塊芯片上,構成一個最小而完善的計算機系統。這些電路在軟件的控制下準確、迅速、高效地完成程序設計者事先規定的任務。鍵控流水燈設計通過編寫代碼實現8個LED燈3種流水燈顯示方式。在設計中主要采用AT89C51這款芯片作為控制主體,用按鈕來切換流水燈的發光方式來顯示流水燈的發光

2、模式。系統通過P0口外接8個發光二極管,P3口接2個按鍵,一個按鍵實現一種發光模式,并且兩個按鍵有優先級。設計中輔以簡單的設備和必要的電路,設計了一款流水燈,最終達到預期的目的。關鍵詞 單片機AT89C51 LED 鍵控 流水燈1引言單片機控制系統能夠取代以前利用復雜電子線路或者數字電路構成的控制系統,可以軟件控制來實現,并能夠實現智能化。現在的單片機的控制范疇無所不在,例如通信產品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機的應用領域越來越廣泛。2中斷系統概述1.中斷概念:中斷是指計算機在執行某一程序的過程中, 由于計算機系統內、 外的某種原因, 而必須中止原來程序的執行,

3、轉去執行相應的處理程序, 待處理結束之后, 再回來繼續執行被中止的原程序的過程。2.中斷作用:采用了中斷技術后的計算機, 可以解決CPU與外設之間速度匹配的問題, 使計算機可以及時處理系統中許多隨機的參數和信息, 同時, 它也提高了計算機處理故障與應變的能力。3.中斷的處理過程:分為四步,第一是中斷請求,第二是中斷響應,第三是中斷服務,第四是中斷返回。3總體設計實現這個課題我使用AT89C51作為控制主體,使用八個共陽極發光二極管作為LED顯示流水燈,外接兩個按鈕,一個按鍵顯示一種花樣。外接一個晶振來提供外接時鐘脈沖。模塊圖如下圖所示系統電路設計圖程序流程圖4模塊設計主體控制模塊芯片AT89C

4、51是核心,P0、P3口均可以作為I/O口使用。八個LED燈接在AT89C51的P0口上,P3口的P3.2和P3.3分別接一個按鍵,P3.2口的按鍵實現八個LED燈閃爍五次,P3.3口的按鍵讓LED燈循環右移。按鍵控制模塊 按鍵控制模塊采用獨立式按鍵接口設計。獨立式按鍵是每一個按鍵占用一根I/O端線。特點:各個按鍵相互獨立,電路配置靈活;按鍵數量較多時,I/O端線耗費較多,電路復雜;軟件結構簡單。時鐘模塊時鐘電路用于產生單片機工作時所需的時鐘信號,在芯片的外部通過18腳、19腳接晶體振蕩器和微調電容,形成反饋電路,構成一個穩定的自激振蕩器。電路中的C1、C2取30Pf左右,二晶體振蕩器的頻率范

5、圍通常是1.2-12MHZ,晶體振蕩器的頻率越高,振蕩頻率越高。顯示模塊顯示模塊主體是八個LED燈。都是接的高電平。當某段驅動電路的輸出端為低電平時,則該端所連接的字段導通并點亮。根據發光位置和個數的不同可顯示出各種花樣。5程序設計C語言程序#include"reg51.h"#include"intrins.h"#define uint unsigned intvoid delay(uint m)uint i;for(;m>0;m-)for(i=0;i<124;i+); void Timer0() interrupt 0static k;P0

6、=0xff;for(k=0;k<10;k+) P0=P0; delay(500); void Timer2() interrupt 2unsigned char outdata=0x7f; while(1) P0=outdata; outdata=_cror_(outdata,1);delay(500); void main()unsigned char g=0xfe;IT0=0;IT1=0;EA=1;EX1=1;EX0=1;PX0=1;while(1)P0=g;g=_crol_(g,1);delay(500);匯編程序 ORG 0000HAJMP START ORG 0003H AJM

7、P INTR0 ORG 0013H AJMP INTR1 START: MOV IE,#85H MOV IP,#01H MOV TCON,#00HMOV SP,#60H MOV P3,#0FFH MOV A,#0FEH LOOP: MOV P0,A LCALL DELAYRL AAJMP LOOPINTR0: PUSH ACC PUSH PSW SETB RS0 MOV R3,#05HLP11: MOV P0,#00H LCALL DELAY MOV P0,#0FFH LCALL DELAY DJNZ R3,LP11 AJMP LP3 LP3:NOP POP PSW POP ACC RETII

8、NTR1: PUSH ACC PUSH PSW MOV A,#7FHLOOP1: MOV P0,ALCALL DELAYRR A AJMP LOOP1POP PSW POP ACC RETIDELAY: MOV R7,#45 DELA1: MOV R6,#20 DELA2: MOV R5,#248 DJNZ R5,$DJNZ R6,DELA2DJNZ R7,DELA1RET END 沒有加入中斷的c語言程序#include"reg51.h"#include"intrins.h"#define uint unsigned intvoid delay(uin

9、t m)uint i;for(;m>0;m-)for(i=0;i<124;i+); void shanshuo()unsigned int k;if(P3|0xfb)!=0xff)P0=0xff;for(k=0;k<10;k+) P0=P0; delay(1000);void main()unsigned char g=0xfe;unsigned char outdata=0x7f;for(;)P0=g;shanshuo();if(P3|0xf7)!=0xff)while(1)shanshuo(); P0=outdata; shanshuo();outdata=_cror_(

10、outdata,1); shanshuo(); delay(1000);shanshuo(); g=_crol_(g,1);shanshuo();delay(1000);shanshuo();張老師,這個沒有用中斷的c語言程序利用for語句和if語句的相互嵌套,實現了中斷里面的優先次序,但系統的靈活性還是沒有用中斷的程序好,但這個程序也是我花時間寫出來的,當時就是想,能不能不用中斷也實現這樣的功能,雖然這個程序沒有按要求做,但我還是想寫在這里,畢竟這也是我的成果,希望老師能理解。6系統的調試與仿真當沒有發生中斷時,八個LED燈是循環左移閃亮的當INTO發生中斷時,八個LED燈閃爍五次當INT1

11、發生中斷時,八個LED燈是循環右移閃亮的對于這次的調試,比上次的情況好多了,開始做匯編語言的時候,仿真時,系統循環左移老是不對,總是兩個燈一起移動,后來我在網上查閱相關資料,大幅修改了左移函數,最終達到了想要的結果;做c語言調試時,大問題不多,主要是語法有很多錯誤,這都是我編程時的疏忽大意,經過修改,也同樣實現了該功能。7學習的感想與收獲8對老師的意見與建議對于單片機這門課,我認為作為一個老師來說,要教好一個學生這是一個挑戰,但張老師做得很好,也很到位,我認為我聽得還挺明白,但我對老師的課也有一些建議:老師您的課堂大致可分為兩部分,第一部分是純粹的講單片機理論,比如講一節課的定時或者中斷,第二部分就是叫大家自己把第一節課的PPT上的程序仿真出來,然后給老師您看。對于第一個部分,我認為每個老師都會這樣做,主要是第二部分,第二部分無非就是給出程序,然后叫大家仿真出來,這是非常簡單的,就是按步驟執行就可以做出來,因為最難做的程序是給好的。而我希望第二部分能有一些改進,比如老師您可以基于上節課講的一個單片機系統馬上給出一道與之類似的題,在第二節課的45分鐘里帶著大家,和大家一起來做這個系統,我們大家一起

溫馨提示

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

評論

0/150

提交評論