版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計題 目 光照強度檢測裝置 學生姓名 學號 所在學院 專業(yè)班級 指導教師 _ 完成地點 合作者 2014年 1 月 5 日目錄1.課題的意義、目的41.1課題的意義41.2課程設計目的42.光照檢測裝置硬件電路設計62.1總體方案設計62.2 單片機的選擇62.3單元電路的設計72.3.1光敏電阻電路 72.3.2晶振電路和復位電路 82.3.3數(shù)模轉換電路 82.3.4報警電路 92.3.5顯示電路 93.光照檢測裝置軟件設計103.1軟件主程序13.2 顯示程序113.3 報警程序114.電路仿真調試125.總結與心得13附錄14源程序14摘 要該數(shù)字式光照強度檢測儀以STC89C5
2、2單片機和模數(shù)轉換為技術核心,具體由單片機最小系統(tǒng)、A/D模數(shù)轉換模塊、光照強度檢測模塊、輸出模塊和數(shù)碼管顯示模塊組成。在本系統(tǒng)的設計中,利用光敏電阻阻值隨光強的變化特性來檢測光強,采用單片機控制輸出模塊和數(shù)模轉換芯片依次測量不同的光照強度,并通過編程處理數(shù)據(jù)進行光強的比較,最后通過數(shù)碼管顯示檢測結果,過低或者過高將會使報警電路蜂鳴??傊?通過對電路的設計和實際裝調,最終基本實現(xiàn)了基于單片機的數(shù)字式光照強度檢測儀的整體功能,可顯示最大光照強度。關鍵字:STC89C52單片機:模數(shù)轉換;光敏電阻;報警1.課題的意義、目的 1.1課題的意義 本系統(tǒng)是一個基于單片機的數(shù)字式光照檢測儀,通過數(shù)碼管顯示
3、光度。以89C52單片機為核心,控制A/D芯片采集數(shù)據(jù),輔以數(shù)碼管、數(shù)據(jù)選擇器等器件,實現(xiàn)功能。 本系統(tǒng)采用光敏電阻采集光照強度信息。光照強度直接反映在光敏電電阻阻值上,進而反映在光敏電阻兩端的電壓值上。然后通過單片機控制A/D模數(shù)轉換對電壓信號進行采集,經(jīng)換算后通過數(shù)碼管顯示光強強度。本設計適當?shù)乩昧斯饷綦娮璧奶匦砸约皢纹瑱C的強大的運算控制功能,實現(xiàn)了光照強度的檢測,并在數(shù)碼管上顯示。本系統(tǒng)充分利用了現(xiàn)有資源,結構合理,性能穩(wěn)定,成本低,滿足題目要求。 加強對單片機的學習和認識,正確運用所學單片機的理論知識,將理論與實際相結合,單片機在我們的生活中得到越來越廣泛的應用,單片機注定影響一個時
4、代,只要存在計算機的地方就會有他的存在,學好單片機對今后的學習與工作有很多益處。1.2課程設計目的采用光敏電阻為光傳感器,利用光敏電阻的光照特性完成光強的檢測。設計目的如下:1.對于光照強度的檢測結果能夠處理后在液晶屏上顯示(光照過強、光照強、光照一般、光照弱);2.當光強太弱或者太強的時候,系統(tǒng)報警。操控簡易實用2.光照檢測裝置硬件電路設計2.1總體方案設計 5 2 單片機光敏電阻晶振電路復位電路數(shù)模轉換器蜂鳴器顯示屏 總體設計方框圖設計原理光敏電阻在不同光照下的不同阻值通過數(shù)模轉換和單片機處理用數(shù)字表示出光照強弱的區(qū)別,當光照過強或者過弱時會觸發(fā)警報??傮w上來說,本方案電路結構簡單、所用元
5、器件供給充足、成本造價低、性能穩(wěn)定且誤差范圍也在設計選題的要求之內,能在簡單低成本的基礎上很好的完成設計選題的任務,故實驗中采用本方案。2.2 單片機的選擇本次課設選用的是STC89C52單片機,它是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有以下標準功能: 8k字節(jié)Flash,512字節(jié)
6、RAM, 32 位I/O 口線, EEPROM,MAX810復位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。STC89C52單片機引腳圖2.3單元電路的設計2.3.1光敏電阻電路光敏電阻又稱光導管,常用的制作材料為硫化鎘,另
7、外還有硒、硫化鋁、硫化鉛和硫化鉍等材料。這些制作材料具有在特定波長的光照射下,其阻值迅速減小的特性。這是由于光照產(chǎn)生的載流子都參與導電,在外加電場的作用下作漂移運動,電子奔向電源的正極,空穴奔向電源的負極,從而使光敏電阻器的阻值迅速下降。光敏電阻的工作原理是基于內光電效應。在半導體光敏材料兩端裝上電極引線,將其封裝在帶有透明窗的管殼里就構成光敏電阻,為了增加靈敏度,兩電極常做成梳狀。在光敏電阻兩端的金屬電極之間加上電壓,其中便有電流通過,受到適當波長的光線照射時,電流就會隨光強的增加而變大,從而實現(xiàn)光電轉換。光敏電阻的入射光強,電阻減?。蝗肷涔馊?電阻增大。2.3.2晶振電路和復位電路單片機需
8、要一個時間基準來為各種操作提供秩序,此電路叫時鐘電路,采用不同的接線方式可以獲得不同時鐘電路,有內部時鐘電路和外部時鐘電路,外部時鐘電路會使電路復雜,故采用的是內部時鐘電路。時鐘電路在單片機的外部通過兩個引腳跨接晶體振蕩器和微調電容,構成穩(wěn)定的自激振蕩器。 復位電路和晶振電路2.3.3數(shù)模轉換電路A/D 轉換器就是模擬/數(shù)字轉換器是將輸入的模擬信號轉換成為數(shù)字信號。本實驗中利用模數(shù)轉換將模擬電壓值轉換為離散的數(shù)字量再送入單片機進行數(shù)據(jù)處理。制作中選用芯片PCF8591為8位CMOS逐次比較型模數(shù)轉換器。模數(shù)轉換包括采樣、保持、量化和編碼四個過程。在某些特定的時刻對這種模擬信號進行測量叫做采樣,
9、量化噪聲及接收機噪聲等因素的影響,采樣速率一般取。通常采樣脈沖的寬度是很短的,故采樣輸出是斷續(xù)的窄脈沖。要把一個采樣輸出信號數(shù)字化,需要將采樣輸出所得的瞬時模擬信號保持一段時間,這就是保持過程。 量化是將連續(xù)幅度的抽樣信號轉換成離散時間、離散幅度的數(shù)字信號,量化的主要問題就是量化誤差。假設噪聲信號在量化電平中是均勻分布的, 則量化噪聲均方值與量化間隔和模數(shù)轉換器的輸入阻抗值有關。編碼是將量化后的信號編碼成二進制代碼輸出。這些過程有些是合并進行的,例如,采樣和保持就利用一個電路連續(xù)完成,量化和編碼也是在轉換過程中同時實現(xiàn)的, 且所用時間又是保持時間的一部分。2.3.4報警電路一般所指的蜂鳴器是以
10、壓電陶瓷為主要元件的。壓電陶瓷是一類有將壓力與電流相互轉換能力的特殊陶瓷。這種能力緣于其特殊的晶體結構。當壓電陶瓷在一定方向上受到一個壓力使其晶體結構發(fā)生形變時,它就會在內部產(chǎn)生一個電流,并且電流的變化與壓力的變化密切相關。反之亦然。所以利用這一特性,在壓電陶瓷上通過一定頻率的電流,就會引起壓電陶瓷微小形變,這一形變帶動空氣發(fā)生振動,如果頻率適當,就可以被人耳所聽見,也就是產(chǎn)生了蜂鳴聲。由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O 口是無法直接驅動的,所以要利用放大電路來驅動,一般使用三極管來放大電流就可以了。當光照強度過高或過弱時,蜂鳴器會開始報警。2.3.5顯示電路 顯示電路采用的
11、是1602液晶1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。液晶顯示內容有光照的強度:“Light Text:xxx”;亮度等級:“No Light!
12、”(無光)、“Low Light”(低光照)”、“Middle Light”(中等光照)、“High Light”(高亮度)、“So High! ”(太高)四個等級。由于本系統(tǒng)采用的是8位AD芯片。所以顯示亮度的數(shù)值范圍是0256,即最低亮度檢測顯示為0,最高亮度檢測顯示為256。測試圖如上可以看出當數(shù)字顯示過小時表明光照過低,系統(tǒng)發(fā)出警報。3.光照檢測裝置軟件設計開始3.1軟件主程序裝置開始運行主程序流程圖是否觸發(fā)報警顯示成像數(shù)字單片機處理模數(shù)轉換光敏電阻產(chǎn)生變化進行光照 否報警器報警 是 3.2 顯示程序while (1) LCD_Write_String(0, 0,"Light
13、 Test:");num=255-ReadADC(0);/值取差值,用于顯示光強越小,數(shù)值越小aaa=(num/100);bbb=(num%100)/10;ccc=(num%100)%10;LCD_Write_Char ( 12,0, 0x30+aaa);LCD_Write_Char ( 13,0, 0x30+bbb);LCD_Write_Char ( 14,0, 0x30+ccc);DelayMs(500);if (num<30) LCD_Write_String(1, 1,"No Light! "); warn();else if (num>=30
14、&&num<80)LCD_Write_String(1, 1,"Low Light ");else if (num>=80&&num<130)LCD_Write_String(1, 1,"Middle Light ");else if (num>=130&&num<180)LCD_Write_String(1, 1,"High Light ");elseLCD_Write_String(1, 1,"So High! "); warn();
15、 3.3 報警程序#include<reg52.h>#include"spk.h"void DelayUs2x(unsigned char t);/函數(shù)聲明 void DelayMs(unsigned char t);void warn(void) unsigned int i;/ while(1)/ for(i=0;i<200;i+) DelayUs2x(200); spk=!spk; spk=0;/防止一直給喇叭通電造成損壞 for(i=0;i<200;i+) DelayMs(1); /4.電路仿真調試5.總結與心得本設計主要完成了以下內容:數(shù)字
16、式光照強度檢測系統(tǒng)的工作原理及應用、基本方案的選擇、單片機系統(tǒng)的硬件設計、單片機系統(tǒng)的軟件設計、系統(tǒng)各個模塊的設計以及系統(tǒng)的仿真調試。設計的要求是檢測光照強度,光敏電阻在光照下電阻兩端電壓改變電壓式模擬量需要轉換成數(shù)字量這樣單片機才能采集到信號因而選擇A/D模數(shù)轉換。在設計過程中設計的前一部分也就是系統(tǒng)的硬件設計比較順利,但到了系統(tǒng)仿真調試的時候出現(xiàn)了一定困難,包括軟件繪圖方面以及軟件編程方面。經(jīng)過不懈努力還是完成了老師要求的內容,通過這次課程設計認識到了自己的不足,我會努力完善自己的知識基礎和實踐能力,相信以后會更好。感謝我的隊友王軼超,感謝老師對我們課程設計中的指導,我會更加努力,在專業(yè)上
17、取得更大進步!附錄參考文獻1 閻石.數(shù)字電子技術基礎(第四版)M.高等教育出版社.1998.112 張毅剛等.MCS-51單片機應用設計.哈爾濱工業(yè)電子出版社,19963 何立民.單片機應用技術選編.北京航空航天大學出版社,20004 張友德等.單片微型機原理應用與實驗,復旦大學出版社,1996源程序#include<reg52.h> /包含單片機寄存器的頭文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件sbit CS=P34; /將CS位定義為P3.4引腳sbit CLK=P10; /將CLK位定義為P1.0引腳sbit DIO=P11
18、; /將DIO位定義為P1.1引腳unsigned char code digit10="0123456789" /定義字符數(shù)組顯示數(shù)字unsigned char code Str1="Volt= . V" /說明顯示的是電壓unsigned char code Str2="SLG I LOVE YOU" /*以下是對液晶模塊的操作程序*/ sbit RS = P20; /定義端口sbit RW = P21; sbit E= P22; /使能信號位,將E位定義為P2.2引腳sbit BF=P07; /忙碌標志位,將BF位定義為P0.7
19、引腳/* 函數(shù)功能:延時1ms (3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒*/ void delay1ms() unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+); /* 函數(shù)功能:延時若干毫秒入口參數(shù):n */ void delaynms(unsigned char n) unsigned char i; for(i=0;i<n;i+) delay1ms(); /* 函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙*
20、/ bit BusyTest(void) bit result; RS=0; /根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài)RW=1; E=1; /E=1,才允許讀寫_nop_(); /空操作_nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間result=BF; /將忙碌標志電平賦給result E=0; /將E恢復低電平return 0; /* 函數(shù)功能:將模式設置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/ void WriteInstruction (unsigned char dictate) while(BusyTest()=1
21、); /如果忙就等待RS=0; /根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令RW=0; E=0; /E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖,/ 就是讓E從0到1發(fā)生正跳變,所以應先置"0" _nop_(); _nop_(); /空操作兩個機器周期,給硬件反應時間P0=dictate; /將數(shù)據(jù)送入P0口,即寫入指令或地址_nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間E=1; /E置高電平_nop_(); _nop_();_nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間E=0; /當E由高電平
22、跳變成低電平時,液晶模塊開始執(zhí)行命令/* 函數(shù)功能:指定字符顯示的實際地址入口參數(shù):x */ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /顯示位置的確定方法規(guī)定為"80H+地址碼x" /* 函數(shù)功能:將數(shù)據(jù)(字符的標準ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量) */ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS為高電平,RW為低電平時,可以寫入數(shù)據(jù)RW=0; E=0; /E置低電平(根據(jù)表8-6,寫指令時,
23、E為高脈沖,/ 就是讓E從0到1發(fā)生正跳變,所以應先置"0" P0=y; /將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊_nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間E=1; /E置高電平_nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間E=0; /當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /* 函數(shù)功能:對LCD的顯示模式進行初始化設置*/ void LcdInitiate(void) delaynms(15); /延時15ms,首次寫指令時應給LCD
24、一段較長的反應時間WriteInstruction(0x38); /顯示模式設置:16×2顯示,5×7點陣,8位數(shù)據(jù)接口delaynms(5); /延時5ms,給硬件一點反應時間WriteInstruction(0x38); delaynms(5); /延時5ms,給硬件一點反應時間WriteInstruction(0x38); /連續(xù)三次,確保初始化成功delaynms(5); /延時5ms,給硬件一點反應時間WriteInstruction(0x0c); /顯示模式設置:顯示開,無光標,光標不閃爍delaynms(5); /延時5ms,給硬件一點反應時間WriteIns
25、truction(0x06); /顯示模式設置:光標右移,字符不移delaynms(5); /延時5ms,給硬件一點反應時間WriteInstruction(0x01); /清屏幕指令,將以前的顯示內容清除delaynms(5); /延時5ms,給硬件一點反應時間 /*以下是電壓顯示的說明*/* 函數(shù)功能:顯示電壓符號*/ void display_volt(void) unsigned char i; WriteAddress(0x01); /寫顯示地址,將在第2行第1列開始顯示i = 0; /從第一個字符開始顯示while(Str1i != '0') /只要沒有寫到結束標志
26、,就繼續(xù)寫 WriteData(Str1i); /將字符常量寫入LCD i+; /指向下一個字符 void display3(void) unsigned char i; WriteAddress(0x80+0x41); /寫顯示地址,將在第2行第1列開始顯示i = 0; /從第一個字符開始顯示while(Str2i != '0') /只要沒有寫到結束標志,就繼續(xù)寫 WriteData(Str2i); /將字符常量寫入LCD i+; /指向下一個字符 /* 函數(shù)功能:顯示電壓的小數(shù)點*/ void display_dot(void) WriteAddress(0x0d); /寫
27、顯示地址,將在第1行第10列開始顯示W(wǎng)riteData('.'); /將小數(shù)點的字符常量寫入LCD /* 函數(shù)功能:顯示電壓的單位(V) */ void display_V(void) WriteAddress(0x0e); /寫顯示地址,將在第2行第13列開始顯示W(wǎng)riteData('V'); /將字符常量寫入LCD /* 函數(shù)功能:顯示電壓的整數(shù)部分入口參數(shù):x */ void display1(unsigned char x) WriteAddress(0x08); /寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digitx); /將百位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示電壓的小數(shù)數(shù)部分入口參數(shù):x */void display2(unsigned char x) unsigned char i,j; i=x/10; /取十位(小數(shù)點后第一位)j=x%10; /取個位(小數(shù)點后第二位)WriteAddress(0x0a); /寫顯示地址將在第1行第11列開始顯示W(wǎng)riteData(digiti); /將小數(shù)部分的第一位數(shù)字字符常量寫入LCD WriteData(digitj)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025便利店智能支付系統(tǒng)引入合同3篇
- 二零二五版游泳教學服務合同模板
- 2025年度消防演練場地租賃與組織服務合同3篇
- 二零二五年度水電設備調試與性能檢測合同3篇
- 專業(yè)化電力工程服務協(xié)議模板2024版
- 二零二五年電子商務平臺數(shù)據(jù)加密與傳輸安全合同3篇
- 2024消防系統(tǒng)安裝及消防安全培訓與演練合同3篇
- 濰坊環(huán)境工程職業(yè)學院《美術學科發(fā)展前沿專題》2023-2024學年第一學期期末試卷
- 2024版信用卡貸款服務合同范本3篇
- 二零二五年度數(shù)據(jù)中心承包協(xié)議及范本2篇
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調研考試(一模)語文試卷(含答案)
- 第7課《中華民族一家親》(第一課時)(說課稿)2024-2025學年統(tǒng)編版道德與法治五年級上冊
- 急診科十大護理課件
- 山東省濟寧市2023-2024學年高一上學期1月期末物理試題(解析版)
- GB/T 44888-2024政務服務大廳智能化建設指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務輔助人員211人筆試重點基礎提升(共500題)附帶答案詳解
- 山東省濟南市歷城區(qū)2024-2025學年七年級上學期期末數(shù)學模擬試題(無答案)
- 國家重點風景名勝區(qū)登山健身步道建設項目可行性研究報告
- 投資計劃書模板計劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內腕臂安裝
- 2024-2025學年九年級語文上學期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論