




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、過程控制系統(tǒng)課程設(shè)計 實驗報告課程設(shè)計題目:基于單片機(jī)的水溫控制系統(tǒng)指導(dǎo)老師:許麗佳小組成員:李飛 王金 李科 王鵬 一、 系統(tǒng)總方案設(shè)計 DS18B20LED顯示指示燈單 片 機(jī)加熱繼電器按鍵復(fù)位電路時鐘電路圖1-1 系統(tǒng)框圖本系統(tǒng)的電路設(shè)計方框圖如圖1-1所示,它由七部分組成:控制部分主芯片采用單片機(jī)STC89C52;顯示部分采用4位共陽極LED數(shù)碼管以動態(tài)掃描方式實現(xiàn)溫度顯示;溫度采集部分采用DS18B20溫度傳感器;加熱控制部分采用繼電器電路;時鐘電路;復(fù)位電路;單列3按鍵鍵盤輸入設(shè)定溫度值。二、 硬件電路設(shè)計1. 時鐘電路設(shè)計時鐘電路是用來產(chǎn)生STC89C52單片機(jī)工作時所必須的時鐘
2、信號,STC89C52本身就是一個復(fù)雜的同步時序電路,為保證工作方式的實現(xiàn),STC89C52在唯一的時鐘信號的控制下嚴(yán)格的按時序執(zhí)行指令進(jìn)行工作 ,時鐘的頻率影響單片機(jī)的速度和穩(wěn)定性。通常時鐘由于兩種形式:內(nèi)部時鐘和外部時鐘。我們系統(tǒng)采用內(nèi)部時鐘方式來為系統(tǒng)提供時鐘信號。STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調(diào)的電容,便構(gòu)成了一個自激勵振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會影響振蕩的頻率、穩(wěn)定性和快速性。晶振頻率為在1.2MHZ12MHZ之間,頻率越高單片機(jī)的速度就越快,但對
3、存儲器速度要求就高。為了提高穩(wěn)定性我們采用溫度穩(wěn)定性好的30pf的貼片電容,采用的晶振頻率為12MHZ。本次系統(tǒng)的時鐘電路設(shè)計如圖2-1所示。圖 2-1 時鐘電路圖2系統(tǒng)復(fù)位電路在圖2-2 中復(fù)位開關(guān)K1 被按下并松開,使端獲得低電平,RST 端輸出復(fù)位信號,單片機(jī)復(fù)位。圖2-2 復(fù)位電路3報警與控制電路設(shè)計當(dāng)水箱內(nèi)的溫度超出或低于設(shè)定的溫度超出1時,P1.4輸出低電平“0”時,晶體管導(dǎo)通,壓電蜂鳴器兩端獲得約+5V電壓而鳴叫,出報警聲音;單片機(jī)的P1.1輸出低電平,此時紅色指示燈亮,直到低于設(shè)定的最低溫度時,P1.4輸出高電平時,三極管截止,蜂鳴器停止發(fā)聲,P1.1輸出電平高電平,發(fā)光二極管
4、滅,(由于實驗器材有限,本設(shè)計的蜂鳴器使用發(fā)光二級管替代)報警和控制電路而下圖2-3所示 圖2-3 報警與控制電路與單片機(jī)的連接4 LED顯示電路設(shè)計在本設(shè)計中采用了四位共陽極八段數(shù)碼管,用動態(tài)驅(qū)動來顯示溫度的值,如圖2-4-2所示,其結(jié)構(gòu)如2-4-1所示圖2-4-1 數(shù)碼管內(nèi)部結(jié)構(gòu) 圖2-4-2 LED顯示電路5溫度檢測電路設(shè)計本次設(shè)計所采用的溫度傳感器為DS18B20,無需A/D轉(zhuǎn)換,因此從主機(jī)CPU到DSl8B20僅需一條線,當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。DS18B20的測量溫度范圍為 -55C-+125C,在-10-+85C范圍內(nèi),精度為0.5C。現(xiàn)場溫度直接以“
5、一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。圖2-5為DS18B20與單片機(jī)的連接圖圖2-5 DS18B20與STC89C52單片機(jī)的連接6按鍵電路設(shè)計鍵盤共有三個鍵,判斷K2-K4鍵是否按下,可采用軟件查詢和中斷的方法,當(dāng)某個鍵按下時,低電平有效。3個鍵K2-K4的功能定義如表所示。K2-K4鍵的定義按鍵鍵名功能K2功能轉(zhuǎn)換鍵此鍵按下,顯示溫度設(shè)定值,按鍵松開,顯示當(dāng)前溫度K3加1鍵設(shè)定溫度值加1K4減1鍵設(shè)定溫度值減1 圖 2-6 按鍵電路7 繼電器控制電路 控制P10的高低電平來控制繼電器的斷開和閉合,當(dāng)P10口為低電平時,三極管導(dǎo)通,發(fā)光二極管亮,控制繼電器開始加熱,當(dāng)P10為
6、高電平時,三極管截止,繼電器斷開,停止加熱。(由于實驗設(shè)備有限,本設(shè)計使用發(fā)光二級管代替繼電器加熱裝置,當(dāng)二極管發(fā)亮?xí)r代表正在加熱)。 圖2-7 繼電器控制加熱裝置電路圖三、軟件設(shè)計1 .系統(tǒng)總流程圖圖3-1 系統(tǒng)總流程圖2.主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖3-2所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示出來。圖3-2 主程序流程圖3.讀出溫度子程序DS18B20復(fù)位、應(yīng)答子程序讀溫度命令子程序
7、寫入子程序跳過ROM匹配命令DS18B20復(fù)位、應(yīng)答子程序顯示子程序(延時)寫入子程序溫度轉(zhuǎn)換命令寫入子程序跳過ROM匹配命令終 止 圖4-3 讀出溫度子程序4.數(shù)碼管顯示模塊圖4-4 數(shù)碼管顯示模塊附錄一 系統(tǒng)電路圖附錄二 系統(tǒng)源代碼#include /52系列頭文件#include #define uchar unsigned char#define uint unsigned intsbit ds=P34;sbit dula=P26;sbit beep=P14; /定義蜂鳴器sbit led=P11;sbit jdq=P10;uint temp,t,w; /定義整型的溫度數(shù)據(jù)uchar
8、flag;float f_temp; /定義浮點(diǎn)型的溫度數(shù)據(jù)uint low; /定義溫度下限值 是溫度乘以10后的結(jié)果uint high; /定義溫度的上限值sbit led1=P10; /控制發(fā)光二極管sbit led2=P11; /控制發(fā)光二極管sbit s1=P35;sbit s2=P36;sbit s3=P37;uchar flag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xc6 ;/共陽數(shù)碼管段碼表uc
9、har code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/帶小數(shù)點(diǎn)的編碼 void delay(uchar z) /延時函數(shù) uchar a,b; for(a=z;a0;a-) for(b=100;b0;b-);void init() EA=1; ET1=1; TR1=1; TMOD=0x10; TH1=(65536-4000)/256; TL1=(65536-4000)%256; flag=0; high=100; jdq=1;void didi() beep=0; led=0; delay(500); beep=1
10、; led=1; delay(500);void dsreset(void) /DS18b20復(fù)位, 初始化函數(shù) uint i; ds=0; i=103; /延時最短480us while(i0) i-; ds=1; /等待16-60us,收到低電平一個約60-240us則復(fù)位成功 i=4; while(i0) i-;bit tempreadbit(void) /讀1位數(shù)據(jù)函數(shù) uint i; bit dat; ds=0;i+; ds=1;i+;i+;/i+起到延時作用 dat=ds; i=8; while(i0)i-; return(dat);uchar tempread(void)/讀1字
11、節(jié)的數(shù)據(jù)函數(shù) uint i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat里 return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個字節(jié)的數(shù)據(jù)函數(shù) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫1 ds=0;i+;i+;ds=1;i=8;while(i0)i-; else /寫0 ds=0;i=8;while(i0) i-;ds=1;i+;i+; void temp
12、change(void) /DS18B20開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc);/寫跳過讀ROM指令 tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令uint get_temp()/讀取寄存器中存儲的溫度數(shù)據(jù) uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); /寫跳過讀ROM指令 tempwritebyte(0xbe); /寫溫度轉(zhuǎn)換指令 a=tempread(); /讀低8位 b=tempread(); /讀高8位 temp=256*b+a; f_temp=tem
13、p*0.0625; /溫度在寄存器中為12位,分辨率為0.0625 temp=f_temp*10+0.5; /乘以10表示小數(shù)點(diǎn)后面只取一位 return temp; /temp是整型void keyscan() if(s1=0) P2=0xff; delay(5); if(s1=0) while(!s1); s1num+; if(s1num=1) flag=1; if(s1num=2) s1num=0; flag=0; if(s1num=1) flag=1;if(s2=0) delay(5);if(s2=0) while(!s2);high+=10;if(high=1000) high=10
14、0;if(s3=0)delay(5);if(s3=0) while(!s3); high-=10; if(high=0) high=100;void main()/主函數(shù) init(); while(1) tempchange(); /溫度轉(zhuǎn)換函數(shù) if(temp=high-10)&(temphigh)&(temphigh+10) jdq=1;didi(); void time1() interrupt 3 TH1=(65536-4000)/256; TL1=(65536-4000)%256; t+; keyscan(); if(flag=0) if(t=4)t=0; switch(t) case 1:P0=tableget_temp()/100; P2=0xfd;break; case 2:P0=table1get_temp()%100/10;P2=0xfb;break
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育類讀書分享
- 2025年計算機(jī)服務(wù)項目規(guī)劃申請報告模板
- 2025年蚌埠淮上區(qū)區(qū)屬國有企業(yè)招聘考試筆試試題(含答案)
- 【錦州】2025年遼寧錦州義縣事業(yè)單位面向社會公開招聘工作人員15人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 文庫發(fā)布:中醫(yī)護(hù)理
- 書包勞動與技術(shù)課件
- 整體護(hù)理教程課件教學(xué)
- 【課件】角的平分線+第1課時+++課件-2025-2026學(xué)年+人教版2024八年級數(shù)學(xué)上冊
- 魏姍姍四季之美教學(xué)課件
- 教育課件背景圖
- 短期培訓(xùn)財務(wù)管理制度
- GB/T 3608-2008高處作業(yè)分級
- 項目安全體系圖
- 中央財政科技計劃的項目結(jié)題審計指引講解文課件
- 職業(yè)暴露(銳器傷)應(yīng)急預(yù)案演練腳本
- 首屆全國報刊編校技能大賽決賽試卷(一)及答案
- 材料出入庫表格范本
- DB14∕T 2442-2022 政務(wù)數(shù)據(jù)分類分級要求
- 醫(yī)務(wù)人員行為規(guī)范以及服務(wù)禮儀
- 醫(yī)用手套的研究進(jìn)展
- 華為要求終端結(jié)構(gòu)件Cpk及SPC執(zhí)行操作規(guī)范V20
評論
0/150
提交評論