




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、單片機課程設計題目可控的左右循環(huán)流水燈設計學生姓名李強學號1207030124教學院系電氣信息學院專業(yè)年級電子信息工程2012級完成日期2015年7月2日摘要此設計是根據(jù)我們所學習的單片機課程,按照大綱要求對門我進行的一次課程檢驗,是進行單片機課程訓練的必要任務,也對我們掌握單片機的應用有很大幫助。近年來,隨著電子技術和微型計算機的發(fā)展,單片機的檔次不斷提高,其應用領域也在不斷的擴大,在工業(yè)控制、尖端科學、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動化設備、個人信息終端及通信產(chǎn)品中得到了廣泛的應用,成為現(xiàn)代電子系統(tǒng)中最重要也最基礎的智能化的核心部件。流水燈的控制應該是我們學習一片單片機最基本
2、的入門知識,此設計應用80C51單片機作為主控芯片,根據(jù)不同的按鍵情況,實現(xiàn)LED燈不同的亮滅組合形式。通過使用循環(huán)移位函數(shù),改變端口的輸出值,達到LED燈流水閃爍的效果。不同的按鍵對應不同的函數(shù)調(diào)用,不同的函數(shù)對應不同的LED燈亮滅。此設計中,程序部分由當前流行的C語言編寫,采用PROTUES軟件和Keil軟件進行聯(lián)合仿真。關鍵詞:按鍵;流水燈;單片機;PROTUES;KeilAbstractThe design is based on what we learn the course syllabus, according to the requirements of your first
3、 course examination, is the necessary training course of our mission, and SCM are of great help. Master microcontroller technology is one of the indispensable to our future technology, the work and life and learning are very close connection. In recent years ,with the electronic technology and the d
4、evelopment of the microcomputer chip, has advanced science , intelligent instrument, electrical appliances automobile electronic system, office automation equipment, become the most important core components of intelligence. As we know ,controlling running LED is the most basic introductory knowledg
5、e that when we learn to use a single chip. This design using 80C51 single chip microcomputer as the main control chip, according to different keys, LED lights bright differently. By using the cyclic shift function, the output value of the port is changed to achieve the effect of the LED light flashi
6、ng. Different keys correspond to different functions, different functions corresponding to different LED lights light out. In this design, the original program is C language program, using the simulation software, and popular PROTUES and KEIL joint simulation, convenient debug program and modify the
7、 hardware, the results show that the scheme design of hardware correct procedures also meets the requirement .Keywords: Bottom;Running LED;single chip ; PROTUES;Keil目錄1 設計任務- 4 -2 方案設計- 4 -3 硬件設計- 4 -3.1系統(tǒng)的整體框圖- 4 -3.2硬件系統(tǒng)原理圖- 5 -3.3元器件清單- 5 -4 軟件設計- 5 -4.1軟件設計的原理- 5 -5調(diào)試過程及結果- 8 -6 結論- 8 -參 考 文 獻-
8、9 -附錄- 11 -1 設計任務設計一個可控的左右循環(huán)流水燈,用兩個按鍵控制顯示,顯示效果如下: 1)合上K1,8個LED依次左移點亮反復顯示; 2)合上K2,8個LED依次右移點亮再依次左移點亮反復顯示; 3)單擊K1,8個LED僅依次左移流水顯示1次; 4)單擊K2,8個LED依次右移點亮再依次左移點亮顯示1次; 5)初始狀態(tài)或K1,K2全合上時,8個LED全熄滅2 方案設計此設計的關鍵之一是,判斷按鍵K1、K2的狀態(tài),所以對此有以下兩種方案選擇。方案一:采用單片機的外部中斷引腳與按鍵K1、K2分別相接的方法,軟件開啟外部中斷,當按鍵單擊時產(chǎn)生一個外部中斷,以此來調(diào)用LED的閃爍函數(shù)。方
9、案二:不采用外部中斷,將K1、K2分別接單片機的通用引腳P3.2、P3.3,通過掃描P3.0、P3.1引腳的狀態(tài),來判斷K1、K2的開關情況,再根據(jù)K1、K2的開關情況,分別調(diào)用不同的LED的閃爍函數(shù)。根據(jù)題目要求,由于方案一無法判斷合上K1、K2的情況,故方案一不適用,此設計采用方案二。3 硬件設計3.1系統(tǒng)的整體框圖 80C51LED燈按鍵K1、K2 圖3-1 系統(tǒng)框圖3.2硬件系統(tǒng)原理圖可以看到,這個硬件原理圖并不復雜,8個LED分別接在P0端口的8個引腳上,外部晶振如圖所示連接到單片機的相應引腳上,按鍵K1、K2分別接在P3.2、P3.3引腳上。 3.3元器件清單芯片80C51 1片;
10、LED燈8個;10uf電容2個;12MHZ晶振1個;按鍵2個;4 軟件設計4.1軟件設計的原理單片機的應用系統(tǒng)由硬件和軟件組成,在硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點亮的現(xiàn)象,我們還需要編寫程序控制單片機管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應用系統(tǒng)中的一個重要的組成部分,也是本次課程設計的重點和難點。我們編程實現(xiàn)流水燈的方法是循環(huán)移位法,下面簡述一下循環(huán)移位法的工作原理。循環(huán)移位法是采用循環(huán)程序結構進行編程。我們在程序一開始就給P0口送一個數(shù),這個數(shù)本身就讓P0.0先低,其他位為高,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至P0口,最后
11、再進行延時,這樣就可以實現(xiàn)“流水燈”的效果。此設計雖然不用嚴格地控制流水燈的速度,但是一個比較準確的延時函數(shù)也是十分有必要的,因為這十分有利于我們編寫后續(xù)程序,也為修改程序帶來方便。因此本設計采用了如下所示的延時函數(shù):void delay(uint m)uint i;for(;m0;m-)for(i=0;i0;i-) P0=outdata; outdata=_cror_(outdata,1); /outdata按位循環(huán)右移/所以燈向左移閃爍 ,_cror_為循環(huán)右移函數(shù)delay(500); 5調(diào)試過程及結果開始時,由于程序代碼還不太完善,出了一些小的問題,比如LED燈并不按照預想的那樣閃爍。
12、通過一次次的修改、仿真,再修改、再仿真,最后對程序的深入地分析并進行修改,最終使我的設計能夠成功地實現(xiàn)設計任務。由于此設計的實驗結果為一動態(tài)效果,所以無法附上調(diào)試過程中的截圖。6 結論由于本次課程設計含括了軟件和硬件知識,所以在完成課程設計的同時也讓我了解到了我們在軟硬件設計和制作方面的不足。對于軟件方面,雖然在這過程中,我有向同學請教。但是最終的整體代碼還是由我親自編寫完成。雖然此次設計難度并不算大,但對于我來說,能夠成功設計實現(xiàn)的功能已經(jīng)是一個不小的收獲了,也幫助我進一步理解了設計中所會遇見的問題和方法。我在最初編寫代碼的時候有一些小的迷惑,但是最后在理解了如何運用左移法實現(xiàn)流水燈亮燈的工
13、作原理后,并且自己舉一反三,理解并運用了循環(huán)右移函數(shù),最后成功地編寫及完成代碼的調(diào)試工作。通過這一系列的操作過程,對如何調(diào)用程序也有了更深刻的理解和體會。當軟件和硬件仿真題都完成之后,接下來就是將軟件的控制程序?qū)懭氲接布抡骐娐穲D里面,從而實現(xiàn)軟硬結合的過程,最終實現(xiàn)設計要求。在這個環(huán)節(jié)中我們還是遇到了或多或少的問題,例如LED燈不按照預想的方式工作等問題都讓我們困惑了很久,最后還是通過不斷的修改完善代碼來實現(xiàn)各個部分的協(xié)調(diào)工作。通過這次課程設計,我養(yǎng)成了良好的書寫代碼的習慣,因為良好的代碼格式有助于查找程序的問題,達到事半功倍的效果。雖然如此,修改程序還是不是一件輕松的工作,需要能夠靜下心,
14、沉住氣,一步一步地修改程序,調(diào)試程序,所以此次課程設計極好地鍛煉了我的耐心,并且在這次的課程設計過程中,我自己獨立的完成了硬件仿真電路的畫制,進一步熟悉了protues這款仿真軟件,同時還要負責編寫代碼,也進一步熟悉了keil軟件的使用,完整的掌握了編寫代碼的流程和調(diào)試的基本方法。雖然此設計能夠完美實現(xiàn)設計任務,但是還有值得改進的地方,比如控制流水燈的流水閃爍速度,同時自仿真電路中也可以添加復位電路并編寫復位程序,使整個設計更加的優(yōu)越、穩(wěn)定。而在這一周的設計過程中讓我深深的了解了我在軟件、硬件方面的許多不足之處,對于今后的學習和工作都是一次很好的借鑒經(jīng)驗。 參 考 文 獻【1】李廣弟,朱月秀,
15、冷祖祁.單片機基礎.第3版.北京:北京航空航天大學出版社,2007【2】蔡美琴,張為民.MCS-51系列單片機系統(tǒng)及其應用.第2版.北京:高等教育出版社,2004【3】張培仁.基于 C 語言編程 MCS-51 單片機原理與應用M . 北京:清華大學出版社,2003【4】周潤景,張麗娜基于PROTEUS 的電路及單片機系統(tǒng)設計與仿真M北京:航空航天大學出版社,2006附錄完整代碼:#includereg51.h #includeintrins.h #define uint unsigned int sbit k1=P32;sbitk2=P33;staticunsigned char flag=0
16、;static int count=0;void delay(uint m)uint i;for(;m0;m-)for(i=0;i0;i-) P0=outdata; outdata=_cror_(outdata,1); /outdata按位循環(huán)右移,所以燈向左移閃爍 ,_cror_循環(huán)為右移函數(shù)delay(500); void led2()unsigned char g=0xfe;int i=8;unsigned char outdata=0x7f;flag=0;while(i0) P0=outdata; outdata=_cror_(outdata,1); /outdata按位循環(huán)右移,所以
17、燈向左移閃爍 ,_cror_循環(huán)為右移函數(shù)delay(500); -i;void led3()unsigned char g=0xfe;int i=0;unsigned char outdata=0x7f;flag=0;for(i=7;i0;i-) P0=g; g=_crol_(g,1);/ 調(diào)用循環(huán)左移函數(shù)_crol_,燈右閃delay(500); for(i=8;i0;i-) P0=outdata; outdata=_cror_(outdata,1); /outdata按位循環(huán)右移,所以燈向左移閃爍 ,_cror_循環(huán)為右移函數(shù)delay(500); void led4()unsigned char g=0xfe;int i=0;unsigned char outdata=0x7f;flag=0;for(i=7;i0;i-) P0=g; g=_crol_(g,1);/ 調(diào)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人住房按揭貸款擔保協(xié)議合同版
- 2025年度公司銷售業(yè)務員協(xié)議書:智能穿戴設備銷售代理協(xié)議
- 2025年度就業(yè)協(xié)議違約金賠償與就業(yè)心理調(diào)適協(xié)議
- 2025年度綠色環(huán)保材料研發(fā)股東合作協(xié)議書
- 2025年度停車場停車費電子支付服務合同
- 2025年度建設銀行個人住房貸款合同電子版
- 2025年度不銹鋼欄桿項目風險評估與管理合同
- 農(nóng)資裝卸搬運服務協(xié)議
- 2025年度農(nóng)村土地經(jīng)營權轉讓與農(nóng)業(yè)扶貧項目合作合同
- 二零二五年度土地承包種植與鄉(xiāng)村旅游結合合同
- 工業(yè)園區(qū)消防培訓課件
- 供水管網(wǎng)項目背景
- 淺層高效氣浮池技術說明
- 小學大觀念教學:設計與實施
- 《安全原理》習題庫及參考答案
- 氮氣能耗估算表
- 分離工程授課教案
- 《HSK標準教程3》第10課
- 人民醫(yī)院能源托管服務項目可研技術方案書
- 系統(tǒng)上線驗收合格證書
- ABO血型鑒定及交叉配血
評論
0/150
提交評論