簡易航標燈設計實驗_第1頁
簡易航標燈設計實驗_第2頁
簡易航標燈設計實驗_第3頁
簡易航標燈設計實驗_第4頁
簡易航標燈設計實驗_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、常熟理工學院課程設計報告 單片機實驗報告 課程名稱 單片機技術(shù)與應用 實驗名稱 簡易航標燈設計實驗 專 業(yè) 光電信息工程 班 級 光電121班 學 號 050312109 姓 名 馮曉飛 實驗地點 躬行樓528 實驗日期 2015. 5 .28 簡易航標燈設計實驗一、實驗目的1、掌握定時器/計數(shù)器原理及其應用;2、了解航標燈控制要求;二、器件清單編號儀器設備數(shù)量單位1WD990微機電源1個28051最小系統(tǒng)板1套3鍵盤顯示接口板1塊4萬用表1套5示波器1臺6Proteus7.8 SP2 仿真軟件1份7單芯杜邦線若干根三、實驗流程操作圖 圖一實驗操作流程圖四、實驗內(nèi)容1、2 位撥碼開關(guān):燈質(zhì)設定

2、(頻率與占空比)2、燈驅(qū)動:發(fā)光二極管采用12V 供電,要實驗單片機驅(qū)動電路設計,三極管驅(qū)動要求:通過光敏電阻采集光照度,白天燈熄滅,黑夜燈按照上表閃爍。1.軟件部分 C語言程序 No3_HBD.c#include "reg51.h"#include "No3_HBD.h"sbit D=P00; /燈輸出控制,高電平有效sbit OPCON=P12; /光照檢測 ,高電平(亮) /結(jié)構(gòu)體全局變量定義,code:常數(shù)struct IALA code IALA44=/Num gcd ON1 OFF1 ON2 OFF2 ON3 OFF30, 0,0,0,0,0

3、,0,0, /全亮1,10,1,3,0,0,0,0,2,10,1,1,1,7,0,0,3,10,1,2,1,2,1,5; /結(jié)構(gòu)體全局變量定義struct Turn Counter50ms;/T0_ISR程序/void T0_ISR(void) interrupt 1static unsigned int i=0; /定義靜態(tài)變量i,用于統(tǒng)計進入T0中斷的次數(shù)unsigned char k;TH0=(65536-COUNT_50MS)/256; /計數(shù)初值重載TL0=(65536-COUNT_50MS)%256;if(OPCON=0) / for(k=0;k<2;k+) if(i=Cou

4、nter50ms.state2*k) D=D_CLOSE; /熄滅LED燈 if(i=Counter50ms.state2*k+1) D=D_OPEN; /點亮LED燈 if(i=Counter50ms.state4) D=D_CLOSE; /熄滅LED燈if(i>=Counter50ms.state5) D=D_OPEN; /點亮LED燈 i=0;i+;/若是黑夜,根據(jù)燈質(zhì)設定控制燈LED燈閃爍 else /若是白天,熄滅LED燈 D=D_CLOSE; i=0; /按鍵判斷/unsigned char GetKey(void)unsigned char key; key=0;if(P1

5、&0x01)key=key|0x01;if(P1&0x02)key=key|0x02; /此處添加按鍵Key1、Key0代碼return(key); /定時器0初始化/void T0_Init(void)TMOD=(TMOD&0xf0)|0x01;/定義T0為16位定時方式TH0=(65536-COUNT_50MS)/256;/賦計數(shù)初值的高8位TL0=(65536-COUNT_50MS)%256;/賦計數(shù)初值的低8位ET0=1;/T0中斷使能EA=1; /總中斷使能TR0=1; /T0啟動/主程序/void main(void)unsigned char key,pr

6、e_key=0,i;unsigned int sum;T0_Init();D=0;while(1) key=GetKey(); /獲取key1、Key0特征碼if(key!=pre_key)/若有新的按鍵,載入控燈時間 sum=0; for(i=0;i<6;i+) sum=sum+IALA4key.gcd*IALA4key.statei;Counter50ms.statei=sum; pre_key=key;No3_HBD.h#ifndef _No3_HBD_#define _No3_HBD_#define COUNT_50MS 50000 /50ms gcd:50ms的倍數(shù)#defin

7、e D_OPEN 1 /開燈#define D_CLOSE 0 /關(guān)燈/結(jié)構(gòu)體類型聲明1struct IALAunsigned char num; /撥碼開關(guān)狀態(tài)unsigned char gcd; /各時間間隔最大公約數(shù)unsigned char state6;/無符號字符型時間常數(shù);/結(jié)構(gòu)體類型聲明2,結(jié)構(gòu)體變量一般不放在.h文件中struct Turn unsigned int state6; unsigned char GetKey(void); /獲取鍵值函數(shù)聲明 void T0_Init(void);/定時器初始化函數(shù)聲明#endif 2.實物部分 本次實驗所采用的硬件都是老師提供

8、的,所以不存在原理問題,不存在硬件問題。實驗器材上,不能通過按鍵來模擬信號的高低。通過杜邦線的接地不接地來模擬兩個輸入0 ,1??傮w來說,可以恰當?shù)膶崿F(xiàn)4種燈的閃爍。當然不能單純的通過肉眼來發(fā)現(xiàn),可以通過示波器來看每個波形的周期來驗證程序的正確性,肯定的一點示波器在單片機的實驗當中,有著很大的適用面。3.調(diào)試部分調(diào)試采用ISPlay1.3進行程序燒寫,小心操作并將燒寫好的芯片放到設計系統(tǒng)中進行實物驗證原理圖所對應的實物圖,及時發(fā)現(xiàn)處理問題。調(diào)試過程中,要注意模擬仿真的過程。分模塊的設計理念對于從事這行業(yè)的人來說是有用的。這次實驗用到的程序按鍵判斷,定時器初始化,主程序可以在proteus7.0

9、下進行仿真,可以分模塊的進行仿真,在自己的操作過程中,先對按鍵判斷進行驗證,參考教師提供的程序,基本上著一個模塊是沒有問題的,同時軟件和硬件是要結(jié)合的。主程序的功能才是一個重點,需要考慮到每個模塊的調(diào)用。定時器的初始化有固定的格式,但還是要對題目有一些的了解,不然也不好分析延時的數(shù)值的大小。這部分的重點需要好好把握和學習。五、實驗小結(jié)通過這次實驗,結(jié)合所學知識,完成了簡易航標燈設計實驗,學習掌握定時器/計數(shù)器原理及其應用;了解航標燈控制要求;更進一步地掌握Proteus78單片機仿真軟件的使用;掌握Keil uVision環(huán)境下工程項目設計方法與文件管理;熟悉按鍵判斷與定時器/計數(shù)器的使用與功能驗證。采用工程設計的方法完成了程序設計,經(jīng)過調(diào)試與多次求助改正,完成了程序的編寫,理解了程序的思路,然后在通過Keil uvision 軟件生成.hex文件,用Proteus軟件對其進行仿真驗證,實驗的過程并不是一帆風順,我們面臨了

溫馨提示

  • 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

提交評論