智能儀器課程設(shè)計(jì)_第1頁
智能儀器課程設(shè)計(jì)_第2頁
智能儀器課程設(shè)計(jì)_第3頁
智能儀器課程設(shè)計(jì)_第4頁
智能儀器課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí) 驗(yàn) 報(bào) 告課程名稱智能儀表課程設(shè)計(jì)學(xué)校 杭州電子科技大學(xué)學(xué)院 生命信息與儀器工程學(xué)院專業(yè)電子信息技術(shù)及儀器姓名李棒學(xué)號12192213一、 實(shí)驗(yàn)?zāi)康闹悄軆x表課程設(shè)計(jì)是一項(xiàng)綜合性的專業(yè)實(shí)踐活動(dòng),目的是讓學(xué)生將所學(xué)的基礎(chǔ)理論和專業(yè)知識運(yùn)用到具體的工程實(shí)踐中,以培養(yǎng)學(xué)生綜合運(yùn)用知識能力、實(shí)際動(dòng)手能力和工程實(shí)踐能力,為此后的畢業(yè)設(shè)計(jì)打下良好的基礎(chǔ)。二、 實(shí)驗(yàn)任務(wù)本次智能儀表課程設(shè)計(jì)的任務(wù)是設(shè)計(jì)一個(gè)溫度控制器,并完成相關(guān)的編程工作?;救蝿?wù)是利用AT89C51單片機(jī)、ADC0809模數(shù)轉(zhuǎn)換器等芯片設(shè)計(jì)一個(gè)具有溫度測量顯示和開關(guān)控制輸出的裝置。三、實(shí)驗(yàn)要求 1)用6只共陰極的八段數(shù)碼管來分別顯示工作狀

2、態(tài)、設(shè)定溫度和實(shí)際溫度溫度。為了統(tǒng)一起見,對6只八段數(shù)碼管的具體排列和工作狀態(tài)的顯示符號作如下規(guī)定: 實(shí)際溫度 設(shè)定溫度 工作狀態(tài):“1”“1”表示開機(jī) “0”“0”表示關(guān)機(jī)2)用3只按鈕來分別作為開機(jī)/關(guān)機(jī)鍵、溫度設(shè)定上升鍵和下降鍵。(1#開發(fā)板有5只操作按鈕和1只系統(tǒng)復(fù)位按鈕,共6只)3)用1只LED發(fā)光二極管來表示加熱器開關(guān)量控制輸出(1#開發(fā)板上共有6只控制輸出的LED發(fā)光二極管),所有發(fā)光二極管均要求用2003達(dá)林頓管或三極管放大驅(qū)動(dòng)。4)溫度設(shè)定范圍099,在裝置處于開機(jī)狀態(tài)情況下,當(dāng)實(shí)際溫度高于等于設(shè)定溫度時(shí),加熱器控制輸出“關(guān)”;當(dāng)實(shí)際溫度低于設(shè)定溫度5時(shí),加熱器控制輸出“開”

3、。5)上電后,自動(dòng)顯示關(guān)機(jī)這時(shí)狀態(tài)、設(shè)定溫度50和實(shí)際室內(nèi)溫度,用戶可以設(shè)定溫度進(jìn)行設(shè)定,但只有在按下啟動(dòng)/關(guān)閉鍵后,控制器正式工作;在運(yùn)行期間,若對溫度狀態(tài)進(jìn)行設(shè)定,則控制器按新設(shè)定開始。若關(guān)機(jī)后(非斷電)重新啟動(dòng)控制器,則自動(dòng)進(jìn)入上次關(guān)機(jī)前的設(shè)定狀態(tài)。 三、 實(shí)驗(yàn)內(nèi)容系統(tǒng)的總體框圖如下:數(shù)碼管顯示 AT89C51 ADC0808溫度控制按鍵掃描主要是基于AT89C51單片機(jī) LED和數(shù)碼管顯示模塊、加熱器控制模塊、按鍵掃描/處理模塊和基于ADC0808芯片的數(shù)據(jù)采集模塊。1、LED模塊 LED發(fā)光二極管來表示加熱器開關(guān)量控制輸出。 2、數(shù)碼管顯示模塊顯示工作原理本系統(tǒng)應(yīng)用8段6位共陰數(shù)碼管

4、作為顯示器件,用片選信號來控制數(shù)碼管的顯示字符,應(yīng)位選信號來控制點(diǎn)亮那個(gè)數(shù)碼管。所謂的八段就是指數(shù)碼管里有八個(gè)小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。一個(gè)八段數(shù)碼管稱為一位,多個(gè)數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時(shí),都從段選線送入字符編碼,而選中哪個(gè)位選線,那個(gè)數(shù)碼管便會被點(diǎn)亮。數(shù)碼管的8段,對應(yīng)一個(gè)字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;其他數(shù)字以此類推。P0口對應(yīng)的是控制數(shù)碼管的段選,也就

5、是說可以讓數(shù)碼管顯示不同的數(shù)字,字符。而在不同的數(shù)碼管顯示則是通過P2口的位選來實(shí)現(xiàn)的。換句話說P2口就是控制1-6號數(shù)碼管哪個(gè)被點(diǎn)亮,哪個(gè)來顯示數(shù)字。如果程序循環(huán)顯示的時(shí)間比較少那就呈現(xiàn)在眼前的就是六位數(shù)碼管全亮,其實(shí)是循環(huán)點(diǎn)亮,但是人的眼沒法在這么短時(shí)間內(nèi)辨別出來。硬件電路如下:注:(1、2位置顯示工作狀態(tài):“1”“1”表示開機(jī),“0”“0”表示關(guān)機(jī)。3、4位置顯示設(shè)置溫度。5、6位顯示控制溫度。)數(shù)碼管程序見3、按鍵模塊說明 用3只按鈕來分別作為開機(jī)/關(guān)機(jī)鍵、溫度設(shè)定上升鍵和下降鍵。硬件電路圖如下具體按鍵程序見4、ADC0808的簡介A/D轉(zhuǎn)換器是一種能把輸入模擬電壓或者電流信息變成與其

6、成正比的數(shù)字量信息的電路芯片。A/D轉(zhuǎn)換器用于實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換。ADC0808是典型的8通道模擬輸入8位并行數(shù)字輸出的逐次逼近式A/D轉(zhuǎn)換器。該轉(zhuǎn)換器采用COMS工藝,可以實(shí)現(xiàn)8路模擬信號的分時(shí)采集。片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路。1)ADC0808芯片的介紹2)ADC0808的工作流程2)ADC0808的實(shí)現(xiàn)方法ADC0808與8051單片機(jī)的硬件接口有3種形式,分別是查詢方式、中斷方式和延時(shí)等待方式,本系統(tǒng)中選用中斷接口方式。注:其中的CLK我是用定時(shí)器產(chǎn)生500Khz的方波。1) 具體的程序?qū)崿F(xiàn)如產(chǎn)生500KHZ的方波送給ADS0808模塊五、系統(tǒng)總框架

7、系統(tǒng)的具體框圖如下: 初始化按鍵掃描控制顯示數(shù)碼管子程序溫度控制硬件設(shè)計(jì)如下:具體程序見六、實(shí)驗(yàn)分析及心得本實(shí)驗(yàn)采用外接AD芯片采集外接模擬量發(fā)送到P0口, 并將轉(zhuǎn)化成對應(yīng)的溫度結(jié)果用數(shù)碼管顯示。進(jìn)行顯示 通過按鍵進(jìn)行設(shè)置溫度的調(diào)節(jié)及開關(guān)機(jī)的調(diào)節(jié)。通過本次實(shí)驗(yàn)讓我對keil軟件及proteus軟件有了深入的了解和認(rèn)識,尤其是proteus的強(qiáng)大的硬件仿真功能簡單易學(xué)非常適合單片機(jī)的初學(xué)者使用學(xué)習(xí)對讓我單片機(jī)系統(tǒng)搭建與程序的編寫有了更深入的認(rèn)識和了解。培養(yǎng)學(xué)生綜合運(yùn)用知識能力、實(shí)際動(dòng)手能力和工程實(shí)踐能力,為此后的畢業(yè)設(shè)計(jì)打下良好的基礎(chǔ)。數(shù)碼管在指定的地址顯示一個(gè)兩位數(shù)程序 /* * brief

8、: Display a number * * param : dat want to display number * * param : addressdisplay location * * return : none */1、 void Display(u8 dat,u8 address)2、 3、 u8 shi = 0, ge = 0;4、 Wela = 1;5、 P2 = WhichOneaddress;6、 Wela = 0;7、 Duan = 1;8、 P0 = DisplayNumberdat / 10;9、 Duan = 0;10、 delay_ms(5);11、 Wela

9、= 1;12、 P2 = WhichOneaddress+ 1;13、 Wela = 0;14、 Duan = 1;15、 P0 = DisplayNumberdat % 10;16、 Duan = 0;17、 delay_ms(4);18、 19、 /*20、 * brief : keysacnf21、 *22、 * param : none23、 *24、 * return : none25、 */26、 27、 void KeyScanfPro(void)28、 29、 static unsigned char stateFlag = 0;30、 if( key1 = 0 | key2

10、= 0 | key3 = 0 )31、 32、 static unsigned char state1 = 0,state2 = 0,Delay = 0;33、 Delay+;34、 if( key1 = 0 && Delay >= SysClycleCntMax && stateFlag = 1 )35、 36、 Delay = 0;37、 stateFlag = 0;38、 if( SystemCoreDat.SystemState = 0 ) 39、 40、 led = 1;41、 SystemCoreDat.SystemState = 1;42、

11、43、 else44、 45、 led = 0;46、 SystemCoreDat.SystemState = 0;47、 48、 49、 else if( key2 = 0 && Delay >= SysClycleCntMax && stateFlag = 1 )50、 51、 Delay = 0;52、 stateFlag = 0;53、 SystemCoreDat.SetTemperature+;54、 limiateMaxMin(&SystemCoreDat.SetTemperature);55、 56、 else if( key3 =

12、0 && Delay >= SysClycleCntMax && stateFlag = 1 )57、 58、 Delay = 0;59、 stateFlag = 0;60、 if( SystemCoreDat.SetTemperature != 0 ) 61、 SystemCoreDat.SetTemperature-;62、 limiateMaxMin(&SystemCoreDat.SetTemperature); 63、 64、 65、 else66、 stateFlag = 1;67、 2) /*3) * brief : ADC0809 s

13、tart signal4) *5) * param : none6) *7) * return : none8) */1、 void ADC0809_ClockInit(void)2、 TMOD=0X12; TH0=(256-50)/256;TL0=TH0;ET0=1;TR0=1;EA=1; 3、 4、 /*5、 * brief : timer0 interrupt 6、 *7、 * param : none8、 *9、 * return : none10、 */11、 void timer0() interrupt 112、 PWM = PWM;13、 14、 2)ADS0808的讀取中斷處

14、理15、 /*16、 * brief : ADC0808 Init17、 *18、 * param : none19、 *20、 * return : none21、 */22、 void ADC0808_InIt(void)23、 EX0 = 1; IT0 = 1; EA = 1; AD0808_OE = 0;24、 25、 26、27、28、 29、 /*30、 * brief : ADC0809 start signal31、 *32、 * param : none33、 *34、 * return : none35、 */36、 void AD0808Pro(void)37、 P0 =

15、 0XFF;AD0808_Satrt = 0;_nop_();AD0808_Satrt = 1;nop_();AD0808_Satrt = 0;38、 / while(EOC = 0);39、 / AD0808_OE = 1;40、 / SystemCoreDat.ADC_Vaule = P0;41、 / SystemCoreDat.RealTemperature = (SystemCoreDat.ADC_Vaule * 0.388);42、 / AD0808_OE = 0;43、 44、 /*45、 * brief : External Interruption 46、 *47、 * par

16、am : none48、 *49、 * return : none50、 */51、52、 void T0_Interrupt() interrupt 0 53、 54、 P0 = 0Xff;55、 AD0808_OE = 1;56、 SystemCoreDat.ADC_Vaule = P0;57、 SystemCoreDat.RealTemperature = (SystemCoreDat.ADC_Vaule * 0.388);58、 AD0808_OE = 0;59、 60、 #include "main.h"61、62、 SystemCore SystemCoreDa

17、t = 0,50;63、64、 int main(void)65、 66、 ADC0808_InIt();67、 ADC0809_ClockInit();68、69、 while(1)70、 71、 SystemCoreDat.ExceCnt+;72、 coreControl();73、74、 if( SystemCoreDat.ExceCnt >= 10 )75、 76、 AD0808Pro();77、 SystemCoreDat.ExceCnt = 0;78、 79、 80、 return 0;81、 82、 其他相關(guān)程序83、 #ifndef _MAIN_H84、 #define

18、_MAIN_H85、86、 #include "corecontrol.h"87、 #include "REG51.h"88、 #include "key.h"89、90、 #define u8 unsigned char91、 #define u16 unsigned int92、93、 typedef struct System94、 95、 u8 SystemState;96、 u8 SetTemperature;97、 u8 RealTemperature;98、 u8 HealState;99、 u8 ADC_Vaule;1

19、00、 u16 ExceCnt;101、 SystemCore;102、 103、 extern SystemCore SystemCoreDat;104、 #endif 105、 const u8 DisplayNumber =106、 107、 0x3f,0x06,0x5b,0x4f,0x66,108、 0x6d,0x7d,0x07,0x7f,0x6f109、 ;110、 const u8 WhichOne =111、 112、 0xfe,0xfd,0xfb,0xf7,0xef,0xdf 113、 ;114、 /*115、 * brief : System CoreContronl116、

20、 *117、 * param : none118、 *119、 * 120、 * return : none121、 */122、 void coreControl(void)123、 124、 KeyScanfPro() ;125、 SystemDisplay();126、 127、 /*128、 * brief : System CoreContronl129、 *130、 * param : none131、 * 132、 * return : none133、 */134、 void System_State(void)135、 136、 if( SystemCoreDat.Syste

21、mState = 0 )137、 Display(0,0);138、 else139、 Display(11,0); 140、 141、 /*142、 * brief : System display143、 *144、 * param : none145、 *146、 * return : none147、 */148、 void SystemDisplay(void)149、 150、 System_State();151、 Display(SystemCoreDat.SetTemperature,2);152、 Display(SystemCoreDat.RealTemperature,4);153

溫馨提示

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

評論

0/150

提交評論