版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、過(guò)程控制系統(tǒng)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告課程設(shè)計(jì)題目:基于單片機(jī)的水溫控制系統(tǒng)指導(dǎo)老師:許麗佳小組成員:李飛 王金 李科 王鵬 一、 系統(tǒng)總方案設(shè)計(jì) DS18B20LED顯示指示燈單 片 機(jī)加熱繼電器按鍵復(fù)位電路時(shí)鐘電路圖1-1 系統(tǒng)框圖本系統(tǒng)的電路設(shè)計(jì)方框圖如圖1-1所示,它由七部分組成:控制部分主芯片采用單片機(jī)STC89C52;顯示部分采用4位共陽(yáng)極LED數(shù)碼管以動(dòng)態(tài)掃描方式實(shí)現(xiàn)溫度顯示;溫度采集部分采用DS18B20溫度傳感器;加熱控制部分采用繼電器電路;時(shí)鐘電路;復(fù)位電路;單列3按鍵鍵盤(pán)輸入設(shè)定溫度值。二、 硬件電路設(shè)計(jì)1. 時(shí)鐘電路設(shè)計(jì)時(shí)鐘電路是用來(lái)產(chǎn)生STC89C52單片機(jī)工作時(shí)所必須的時(shí)鐘
2、信號(hào),STC89C52本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為保證工作方式的實(shí)現(xiàn),STC89C52在唯一的時(shí)鐘信號(hào)的控制下嚴(yán)格的按時(shí)序執(zhí)行指令進(jìn)行工作 ,時(shí)鐘的頻率影響單片機(jī)的速度和穩(wěn)定性。通常時(shí)鐘由于兩種形式:內(nèi)部時(shí)鐘和外部時(shí)鐘。我們系統(tǒng)采用內(nèi)部時(shí)鐘方式來(lái)為系統(tǒng)提供時(shí)鐘信號(hào)。STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調(diào)的電容,便構(gòu)成了一個(gè)自激勵(lì)振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會(huì)影響振蕩的頻率、穩(wěn)定性和快速性。晶振頻率為在1.2MHZ12MHZ之間,頻率越高單片機(jī)的速度就越快,但對(duì)
3、存儲(chǔ)器速度要求就高。為了提高穩(wěn)定性我們采用溫度穩(wěn)定性好的30pf的貼片電容,采用的晶振頻率為12MHZ。本次系統(tǒng)的時(shí)鐘電路設(shè)計(jì)如圖2-1所示。圖 2-1 時(shí)鐘電路圖2系統(tǒng)復(fù)位電路在圖2-2 中復(fù)位開(kāi)關(guān)K1 被按下并松開(kāi),使端獲得低電平,RST 端輸出復(fù)位信號(hào),單片機(jī)復(fù)位。圖2-2 復(fù)位電路3報(bào)警與控制電路設(shè)計(jì)當(dāng)水箱內(nèi)的溫度超出或低于設(shè)定的溫度超出1時(shí),P1.4輸出低電平“0”時(shí),晶體管導(dǎo)通,壓電蜂鳴器兩端獲得約+5V電壓而鳴叫,出報(bào)警聲音;單片機(jī)的P1.1輸出低電平,此時(shí)紅色指示燈亮,直到低于設(shè)定的最低溫度時(shí),P1.4輸出高電平時(shí),三極管截止,蜂鳴器停止發(fā)聲,P1.1輸出電平高電平,發(fā)光二極管
4、滅,(由于實(shí)驗(yàn)器材有限,本設(shè)計(jì)的蜂鳴器使用發(fā)光二級(jí)管替代)報(bào)警和控制電路而下圖2-3所示 圖2-3 報(bào)警與控制電路與單片機(jī)的連接4 LED顯示電路設(shè)計(jì)在本設(shè)計(jì)中采用了四位共陽(yáng)極八段數(shù)碼管,用動(dòng)態(tài)驅(qū)動(dòng)來(lái)顯示溫度的值,如圖2-4-2所示,其結(jié)構(gòu)如2-4-1所示圖2-4-1 數(shù)碼管內(nèi)部結(jié)構(gòu) 圖2-4-2 LED顯示電路5溫度檢測(cè)電路設(shè)計(jì)本次設(shè)計(jì)所采用的溫度傳感器為DS18B20,無(wú)需A/D轉(zhuǎn)換,因此從主機(jī)CPU到DSl8B20僅需一條線,當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。DS18B20的測(cè)量溫度范圍為 -55C-+125C,在-10-+85C范圍內(nèi),精度為0.5C?,F(xiàn)場(chǎng)溫度直接以“
5、一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。圖2-5為DS18B20與單片機(jī)的連接圖圖2-5 DS18B20與STC89C52單片機(jī)的連接6按鍵電路設(shè)計(jì)鍵盤(pán)共有三個(gè)鍵,判斷K2-K4鍵是否按下,可采用軟件查詢和中斷的方法,當(dāng)某個(gè)鍵按下時(shí),低電平有效。3個(gè)鍵K2-K4的功能定義如表所示。K2-K4鍵的定義按鍵鍵名功能K2功能轉(zhuǎn)換鍵此鍵按下,顯示溫度設(shè)定值,按鍵松開(kāi),顯示當(dāng)前溫度K3加1鍵設(shè)定溫度值加1K4減1鍵設(shè)定溫度值減1 圖 2-6 按鍵電路7 繼電器控制電路 控制P10的高低電平來(lái)控制繼電器的斷開(kāi)和閉合,當(dāng)P10口為低電平時(shí),三極管導(dǎo)通,發(fā)光二極管亮,控制繼電器開(kāi)始加熱,當(dāng)P10為
6、高電平時(shí),三極管截止,繼電器斷開(kāi),停止加熱。(由于實(shí)驗(yàn)設(shè)備有限,本設(shè)計(jì)使用發(fā)光二級(jí)管代替繼電器加熱裝置,當(dāng)二極管發(fā)亮?xí)r代表正在加熱)。 圖2-7 繼電器控制加熱裝置電路圖三、軟件設(shè)計(jì)1 .系統(tǒng)總流程圖圖3-1 系統(tǒng)總流程圖2.主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖3-2所示。通過(guò)調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小數(shù)部分分開(kāi)存放在不同的兩個(gè)單元中,然后通過(guò)調(diào)用顯示子程序顯示出來(lái)。圖3-2 主程序流程圖3.讀出溫度子程序DS18B20復(fù)位、應(yīng)答子程序讀溫度命令子程序
7、寫(xiě)入子程序跳過(guò)ROM匹配命令DS18B20復(fù)位、應(yīng)答子程序顯示子程序(延時(shí))寫(xiě)入子程序溫度轉(zhuǎn)換命令寫(xiě)入子程序跳過(guò)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 ;/共陽(yáng)數(shù)碼管段碼表uc
9、har code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/帶小數(shù)點(diǎn)的編碼 void delay(uchar z) /延時(shí)函數(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; /延時(shí)最短480us while(i0) i-; ds=1; /等待16-60us,收到低電平一個(gè)約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+起到延時(shí)作用 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ù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat里 return(dat);void tempwritebyte(uchar dat) /向DS18B20寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)函數(shù) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫(xiě)1 ds=0;i+;i+;ds=1;i=8;while(i0)i-; else /寫(xiě)0 ds=0;i=8;while(i0) i-;ds=1;i+;i+; void temp
12、change(void) /DS18B20開(kāi)始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc);/寫(xiě)跳過(guò)讀ROM指令 tempwritebyte(0x44); /寫(xiě)溫度轉(zhuǎn)換指令uint get_temp()/讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù) uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); /寫(xiě)跳過(guò)讀ROM指令 tempwritebyte(0xbe); /寫(xiě)溫度轉(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邊城書(shū)籍介紹課件
- 辯論賽培訓(xùn)課件
- 車隊(duì)職工安全培訓(xùn)課件
- 內(nèi)科主治醫(yī)師考試強(qiáng)化沖刺試題及答案
- 車隊(duì)冬季四防安全培訓(xùn)課件
- 2026年四川低壓電工理論考試題庫(kù)及答案
- 酒店員工行為規(guī)范及獎(jiǎng)懲制度
- 車間級(jí)安全培訓(xùn)教學(xué)課件
- (2026)院感科年度培訓(xùn)計(jì)劃(2篇)
- 車間電氣設(shè)備培訓(xùn)課件
- 委內(nèi)瑞拉變局的背后
- 政府補(bǔ)償協(xié)議書(shū)模板
- 語(yǔ)文-吉林省2026屆高三九校11月聯(lián)合模擬考
- 2025年四川省高職單招模擬試題語(yǔ)數(shù)外全科及答案
- 2025年江蘇事業(yè)單位教師招聘體育學(xué)科專業(yè)知識(shí)考試試卷含答案
- 模擬智能交通信號(hào)燈課件
- 合肥市軌道交通集團(tuán)有限公司招聘筆試題庫(kù)及答案2025
- 2.3《河流與湖泊》學(xué)案(第2課時(shí))
- 工地臨建合同(標(biāo)準(zhǔn)版)
- GB/T 46275-2025中餐評(píng)價(jià)規(guī)范
- 2025至2030供水產(chǎn)業(yè)行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論