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

下載本文檔

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

文檔簡介

1、 單片機課程設(shè)計報告學生姓名學號教學院系電氣信息學院專業(yè)年級 指導教師李杰完成日期2011年6月25日目錄第一章 基礎(chǔ)設(shè)計報告- 2 -1.1設(shè)計題目- 2 -1.2 流程圖- 2 -1.3 設(shè)計任務(wù)- 2 -1.4 創(chuàng)建新工程和文件- 2 -1.4.1創(chuàng)建keil4新工程- 2 -1.4.2創(chuàng)建proteus新文件- 6 -1.5 運行及調(diào)試- 8 -第二章 提高設(shè)計報告- 10 -2.1 設(shè)計題目- 10 -2.2 流程圖- 10 -2.3 設(shè)計任務(wù)- 11 -2.4 編寫程序,設(shè)計單片機電路圖- 11 -2.5 交通燈各部分功能- 12 -2.5.1晶體振蕩和復位電路- 12 -2.5.

2、2 上拉電阻- 12 -2.5.3 數(shù)碼管顯示和發(fā)光二極管- 12 -2.5.4 按鍵- 13 -2.5.5單片機模塊- 14 -2.6 程序運行及調(diào)試- 14 -2.6.1仿真- 17 -第三章 提高設(shè)計報告任務(wù)說明書- 19 -3.1 小組成員及學號- 19 -3.2 本人工作任務(wù)詳細說明- 19 -第四章 課程設(shè)計心得- 20 -參考文獻:- 20 -第一章 基礎(chǔ)設(shè)計報告1.1設(shè)計題目 基于單片機的簡易流水燈 開始1.2 流程圖依次點亮8個個發(fā)光二極管 while循環(huán) 延時1.3 設(shè)計任務(wù) 利用單片機的端口輸出,自己設(shè)計流水燈電路圖和程序,點亮8個發(fā)光二極管。1.4 創(chuàng)建新工程和文件1.

3、4.1創(chuàng)建keil4新工程1.啟動keil4軟件,點擊project圖1.4.1 啟動工程圖2.選擇new uvision project,創(chuàng)建新工程,如下圖所示:圖1.4.2 新建工程圖3.選擇單片機類型at89c51,點擊建立工程,如下圖所示:圖 1.4.3 選擇單片機類型 圖 1.4.4 工程建立完成4.新建文件,如下圖所示:圖 1.4.5 建立新文件5.新文件命名,因為用的是c語言編程,所以新文件后綴名為 .c,如下圖所示:圖 1.4.6 新文件保存6.將新文件加入工程,添加方法如下圖所示:圖 1.4.7 將新建文件添加的工程7.點擊“target options”,選擇output,

4、選中生成hex文件,如下圖所示:圖 1.4.8 選擇生成hex文件選項8.keil4新工程和文件建立完成,在操作窗口進行編程操作。如下圖所示:圖 1.4.9 編程操作圖1.4.2創(chuàng)建proteus新文件1.打開proteus,進入操作界面,創(chuàng)建新文件。進入開發(fā)環(huán)境proteus后,選擇“文件/新建”命令出現(xiàn)“新建設(shè)計”窗口屬性對話框,選擇a4,如圖所示:圖1.4.10 窗口屬性圖2.進入元件庫,在元件庫中查找所需元件,并雙擊添加,入下圖所示:選擇“庫/拾取元件”,進入元件庫。圖1.4.11 元件庫圖添加所需元件。圖1.4.12 圖庫(51單片機)3.雙擊將從元件庫中查找到的元件,添加到設(shè)計圖上

5、,如圖所示:圖1.4.13 添加元件圖4.完成后的圖如下: 圖1.4.14 流水燈電路圖1.5 運行及調(diào)試編程程序: #include #define uchar unsigned char #define uint unsigned int void delay(uint a); void main() while(1) p0=0xfe;delay(1000); p0=0xfd;delay(1000); p0=0xfb;delay(1000); p0=0xf7;delay(1000); p0=0xef;delay(1000); p0=0xdf;delay(1000); p0=0xbf;del

6、ay(1000); p0=0x7f;delay(1000); void delay(uint a) uint i,j; for(i=a;i0;i-) for(j=123;j0;j-) ; 調(diào)試與運行:程序?qū)懞煤螅c擊keil的編譯運行調(diào)試,生成hex文件,如下圖所示:圖1.5.1 運行界面圖在proteus中雙擊圖中的單片機,選中所生成的hex文件,點擊確定,單片機開始仿真,如下圖所示:圖1.5.2 仿真圖第二章 提高設(shè)計報告2.1 設(shè)計題目 基于單片機的簡易交通燈 2.2 流程圖數(shù)碼管倒計數(shù)開始,東西綠燈,南北紅燈 每減一個數(shù)判斷是否進入中斷調(diào)數(shù)數(shù)碼管開始倒計數(shù),東西紅燈,南北綠燈 每減一個

7、數(shù)判斷是否進入中斷調(diào)數(shù)外部觸發(fā)進入中斷外部按鍵控制time的增加或者減少調(diào)數(shù)完成,外部按鍵控制中斷結(jié)束返回斷點計數(shù)m0,m-;計數(shù)m0,m-;外部觸發(fā)m=time;m=time;外部觸發(fā) 開始m初值為10圖2.2.1 交通燈流程圖2.3 設(shè)計任務(wù)(1)收集資料,了解交通燈的大致變化規(guī)律(2)確定i/o口的功能(3)用keil軟件編寫程序,用proteus軟件設(shè)計電路圖(4)實現(xiàn)交通燈的簡單仿真2.4 編寫程序,設(shè)計單片機電路圖建立keil工程文件,開始編寫程序;打開proteus,按要求畫好單片機仿真電路圖。2.5 交通燈各部分功能2.5.1晶體振蕩和復位電路 電路如圖所示:下圖上邊為復位電路

8、,下邊為晶振電路。 圖2.5.1晶體振蕩和復位電路圖2.5.2 上拉電阻單片機的p0口外接時要接上拉電阻,如下圖所示:圖2.5.2 上拉電阻圖2.5.3 數(shù)碼管顯示和發(fā)光二極管交通十字路口紅綠燈變換,是根據(jù)數(shù)碼管上顯示的數(shù)來變換的,當數(shù)碼管上顯示的數(shù)小于5時,數(shù)碼管和十字路口的紅綠燈開始閃爍,提示紅綠要開始變換了,來往車輛做好準備。圖2.5.3.1 數(shù)碼管圖 2.5.3.2 發(fā)光二極管2.5.4 按鍵十字路口的紅綠燈正常變換時,當按下“開始調(diào)數(shù)”觸發(fā)中斷,進入調(diào)數(shù)狀態(tài),此時可以分別按下“加1”、“減1”來改變紅綠燈每次變換的時間,當調(diào)數(shù)完成后,按下“調(diào)數(shù)完成”結(jié)束中斷,返回程序斷點繼續(xù)執(zhí)行原程

9、序,只是此時紅綠燈每次變換的時間更改為中斷中所調(diào)的數(shù)。如下圖所示:圖2.5.4 按鍵2.5.5單片機模塊圖2.5.5 51單片機2.6 程序運行及調(diào)試#include#include#define uchar unsigned char#define uint unsigned intvoid display(int m );void delay1(uint a);void delay(uint a);sbit key1=p35;sbit key2=p33;sbit key3=p34;bit g;int a,time=11;void main() int i,m=time; ea=1; /開總

10、中斷 ex0=1; /開外部中斷0 it0=0; /外部中斷0邊沿觸發(fā),下降沿觸發(fā) while(1) while(m0)p0_0=0;p0_1=1;p0_2=1;p0_3=0; if(m=3)switch(m)case 3: for(i=0;i120;i+) display(m); delay(500); p0_0=1;p0_3=1;delay1(250);p0_0=0;p0_3=0;m-;delay(250);break;case 2: for(i=0;i120;i+) display(m); delay(500); p0_0=1;p0_3=1;delay1(250);p0_0=0;p0_3

11、=0;m-;delay(250);break;case 1: for(i=0;i3)for(i=0;i0) p0_0=1;p0_1=0;p0_2=0;p0_3=1; if(m=3)switch(m)case 3: for(i=0;i120;i+) display(m); delay(500); p0_1=1;p0_2=1;delay1(500);p0_1=0;p0_2=0;m-;delay1(500);break;case 2: for(i=0;i120;i+) display(m); delay(500); p0_1=1;p0_2=1;delay1(500);p0_1=0;p0_2=0;m-

12、;delay1(500);break;case 1: for(i=0;i3)for(i=0;i0) a-; /-延時-void delay1(int n) int i,j;for(i=n;i0;i-)for(j=123;j0;j-); /-中斷- void exter0()interrupt 0 ex0=0;a=1; display(time); delay1(100);while(a) display(time);if(key2=0) delay1(100); if(key2=0) while(key2=0) time+; display(time);if(key3=0)delay1(100

13、);if(key3=0)while(key3=0)time-;display(time);if(key1=0)delay1(100);if(key1=0) while(key1=0)a=0;ex0=1; 2.6.1仿真程序經(jīng)過編譯后生成hex文件,雙擊單片機元件,選中生成的hex文件,開始仿真。仿真結(jié)果如下圖所示:圖 2.6.1 東西綠燈,南北紅燈圖 2.6.2 東西紅燈,南北綠燈第三章 提高設(shè)計報告任務(wù)說明書3.1 小組成員及學號姓名學號屈直0807040114王林建08070402253.2 本人工作任務(wù)詳細說明根據(jù)選題基于單片機的交通燈我首先在網(wǎng)上查找相關(guān)設(shè)計資料,了解實驗內(nèi)容以及基本的任務(wù),這是為了讓這次設(shè)計更加完善。交通燈的設(shè)計中主要完成的是電路圖的繪制,以及與同伴討論聯(lián)系程序與電路的結(jié)合問題。設(shè)計完成后,根據(jù)實驗電路圖和程序以及過程中的結(jié)論完成實驗報告。第四章 課程設(shè)計心得本次課程設(shè)計使我認識到了單片機這門學科的重要性,以及根據(jù)它產(chǎn)生的延伸知識。通過本次課程的設(shè)計,不但加深我對在課程上所學到的單片機理論知識的認識和理解,重新讓我認識到了這門學科的在應(yīng)用方面的廣闊前景,并且通過實踐與操作更加豐富了自己的知識。擴展了知識面,了解了理論知識與實際操作相結(jié)合的意義,懂得了如何分析電路與解決實際問題,提高了自己吃力問題的能力,從各方面提高了自己的綜合素質(zhì)。在這次的課程設(shè)計中

溫馨提示

  • 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

提交評論