




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)課程設(shè)計(jì)多路溫度巡回檢測儀的設(shè)計(jì)及單片機(jī)實(shí)驗(yàn) 姓名:東京的櫻花 學(xué)號(hào):10090# 設(shè)計(jì)題目:7、多路溫度巡回檢測儀 指導(dǎo)老師:潘#樓主造福東華學(xué)子啦,后面程序可以直接運(yùn)行哦目錄1、 項(xiàng)目設(shè)計(jì)要求32、 方案可行性分析. . 33、 硬件電路設(shè)計(jì). . 4(1)、鉑電阻測量單元. 4(2)、按鍵控制單元. 5(3)、ad轉(zhuǎn)換單元. 6(4)、led數(shù)碼管顯示單元. 7(5)、數(shù)據(jù)傳輸上位機(jī)單元. 84、 整體硬件設(shè)計(jì)連接圖. 95、軟件設(shè)計(jì). . 10(1)、軟件設(shè)計(jì)思想. 10(2)、程序流程圖. 11(3)、程序清單. 125、 電路pcb原理圖及pcb圖設(shè)計(jì). 136、 系統(tǒng)pro
2、tues仿真及調(diào)試. 157、 結(jié)果與展望. . 169、參考文獻(xiàn). . 1610、附錄:程序源代碼 + pcb 3d模擬圖.161、 項(xiàng)目設(shè)計(jì)要求題7 多路溫度巡回檢測儀的設(shè)計(jì)設(shè)計(jì)一個(gè)多路溫度檢測儀,共有8個(gè)測溫點(diǎn),每個(gè)點(diǎn)連續(xù)檢測8次,以平均值代表該點(diǎn)溫度,并輪流在led顯示器上顯示。測試檢測元件為鉑熱電阻pt1000, 溫度測量范圍為100 +500,測量精度為±1。系統(tǒng)每隔10秒完成一個(gè)點(diǎn)的測量,測量值除在led顯示器上顯示外,還必須通過串行口(rs485)發(fā)送到上位機(jī)。任何時(shí)刻,可以通過按鍵切換顯示通道。2、方案可行性分析在測溫系統(tǒng)中,用溫度敏感元件通過電路的調(diào)整可以把溫度信
3、號(hào)轉(zhuǎn)換為模擬電壓信號(hào),在將模擬電壓信號(hào)遠(yuǎn)距離傳輸并通過a/d轉(zhuǎn)換得到相應(yīng)的數(shù)字信號(hào),通過程序進(jìn)行處理得到實(shí)時(shí)的溫度數(shù)值。鉑熱電阻測量范圍為200850,r0有10 、100和1000三種,分度號(hào)分別為pt10、pt100和pt1000。鉑熱電阻的精度高,體積小,測溫范圍寬,穩(wěn)定性好,再現(xiàn)性好,但是價(jià)格較貴。其電阻與溫度的關(guān)系為:當(dāng)t0時(shí) r(t)= r0(1+at+bt²) 當(dāng)t< 0時(shí) r(t)= r0 1+at+bt²+ct³(t-100) 式中: rt為被測溫度t下的阻值,單位為 r0為0下的阻值 t為實(shí)際溫度值 a為常數(shù)3.9083×10&
4、#179;/ b為常數(shù)-5.775×107/² c為常數(shù)-4.183×1012/4由于我們要測得溫度是100-500,所以,不用考慮小于0的情況了。所以公式為:r(t)= r0(1+at+bt²)由數(shù)學(xué)知識(shí)可以直接解出t=(-a-sqrt(a2-4*b(1-r(t)/r0))/2b(1)因?yàn)閍、b、r(0)已知,所以只要測到r(t)就能夠算出t。所以我們將測量電阻上的電壓來算出電阻的阻值,進(jìn)而得出他現(xiàn)在的溫度。2、 硬件電路設(shè)計(jì)(1)、鉑電阻測量單元設(shè)計(jì)思想:鉑金屬的阻值會(huì)隨著溫度變化而變化,所以可以通過測量它的電阻來確定溫度。我們可以通過串接另一個(gè)阻值
5、已知的電阻通過電壓的變化而確定鉑金屬的阻值。由電路知識(shí)求得:rv9=3*u/(5-u).(2)式(2)、按鍵控制單元設(shè)計(jì)思想:由于有八路信號(hào),所以可以用3*3的矩陣鍵盤,或者用8各獨(dú)立的鍵盤來控制八路信號(hào)。我這里由于簡化設(shè)計(jì)就用了8個(gè)獨(dú)立的鍵盤控制。低電平有效。(3)、ad轉(zhuǎn)換單元設(shè)計(jì)思想:由于精度要求+-1度,從100-500所以有400個(gè)檔位,所以要9位(512)或者9位以上的ad轉(zhuǎn)換器才能實(shí)現(xiàn)這個(gè)精度。我這里使用了tlc1543,這個(gè)ad芯片的精度很高,為10位串行逐步逼近型ad轉(zhuǎn)換器(1024)。所以能精確到0.4度。其工作過程分為兩個(gè)周期:訪問周期和采樣周期。(4)、led數(shù)碼管顯示
6、單元設(shè)計(jì)思想:led接收來自p0口的數(shù)據(jù)信號(hào)與地址信號(hào),通過地址鎖存,分時(shí)復(fù)用來實(shí)現(xiàn)led數(shù)碼管的動(dòng)態(tài)顯示,我這里用74ls373來作為鎖存器,來鎖住數(shù)據(jù)與地址信息。(5)、數(shù)據(jù)傳輸上位機(jī)單元設(shè)計(jì)思想:由于rs232傳輸?shù)木嚯x有限,所以我們這里使用傳輸距離更遠(yuǎn)的rs485。max485位一款rs485。但是由于485電平和rs232電平不符,所以,當(dāng)我們連接計(jì)算機(jī)的時(shí)候還是要接上max232用來轉(zhuǎn)換電平。4、整體硬件設(shè)計(jì)連接圖軟件設(shè)計(jì)(1)、軟件設(shè)計(jì)思想在本次設(shè)計(jì)中,mcu主要的工作是將ad采集來的數(shù)據(jù),通過一定的計(jì)算轉(zhuǎn)化成為溫度的值,并且將這個(gè)值通過p0口輸出到led數(shù)碼管上。在循環(huán)掃描八個(gè)
7、檢測點(diǎn)的時(shí)候,順便掃描按鍵部分,看有沒有按鍵被按下,按下則進(jìn)入按鍵服務(wù)程序,執(zhí)行按鍵指定的測量。并通過串口傳輸?shù)缴衔粰C(jī)上。由于軟件源代碼過長,這里簡略的寫ad部分(詳細(xì)軟件部分見附錄)uint adc(uchar chn1)uchar i;uchar addr8; uint adresult; ad_eoc=1; ad_cs=0;_nop_();addr8=chn1;addr8<<=4;for(i=0;i<4;i+)/寫地址 ad_add=(bit)(addr8&0x80);ad_clk=1;ad_clk=0;addr8<<=1; for(i=0;i<
8、;6;i+) /采樣ad_clk=1;ad_clk=0;ad_cs=1;while(!ad_eoc);/查詢_nop_();adresult=0;ad_cs=0; /移位傳數(shù)據(jù)for(i=0;i<10;i+)ad_clk=1;adresult<<=1;m=ad_dat;adresult+=m;ad_clk=0;ad_cs=1;return(adresult);(2)、程序流程圖(3)、程序清單void delay(uint z)延時(shí)z 毫秒void display(num)顯示子程序,顯示num和數(shù)據(jù)uint adc(uchar chn1)ad轉(zhuǎn)換子程序,負(fù)責(zé)轉(zhuǎn)化模擬信號(hào)位數(shù)
9、字信號(hào)void send(unsigned char dat)串口發(fā)送子程序,負(fù)責(zé)將收集到的數(shù)據(jù)發(fā)送到上位機(jī)上void jianpan(void)鍵盤檢測子程序,負(fù)責(zé)不斷地掃描鍵盤,看是否有鍵盤按下void main()主函數(shù)5、電路pcb原理圖及pcb圖設(shè)計(jì)用altium designer6.9設(shè)計(jì)并做出原理圖pcb圖設(shè)計(jì)畫好原理圖后電器檢查通過后編譯,并design-updatato pcb再布局布線覆銅。6、系統(tǒng)protues仿真及調(diào)試通過protues仿真,可以了解自己的電路到底能不跑起來,大部分的原件還是找得到的,就是不知道叫什么名字,所以在百度里查查名字后再連線,之后就是通過kei
10、l來編譯生成的hex文件燒到mcu中去。8、 結(jié)果與展望通過本次課程設(shè)計(jì),我更深刻理解了單片機(jī),特別是51系列的單片機(jī)。當(dāng)然,我也了解了一點(diǎn)avr的知識(shí)。avr價(jià)格上面還是有點(diǎn)高,所以現(xiàn)在51單片機(jī)還是有很大的市場的。但是51的引腳比較少,所以還是主要用于簡單的控制上面。對于我們大自動(dòng)化的學(xué)生,我們可不要認(rèn)為會(huì)51就好了,至少得學(xué)個(gè)arm cortex-m3吧。對于有追求,有理想的學(xué)生,我們更應(yīng)該好好學(xué)習(xí)arm9的內(nèi)容,以及l(fā)inux系統(tǒng)。要是更高級(jí)的話,x86芯片也可以去研究??墒菍W(xué)校給我們做實(shí)驗(yàn)的機(jī)會(huì)太少了。就那幾臺(tái)設(shè)備,而且課內(nèi)充滿做一下,都不到在干什么。對于實(shí)驗(yàn)室,我只能說,粥少僧多啊
11、。主要還是沒有實(shí)驗(yàn)室地皮的問題。建議擴(kuò)展地皮,要建一個(gè)自由實(shí)驗(yàn)室,以用來給買不起試驗(yàn)設(shè)備的學(xué)子一個(gè)做實(shí)驗(yàn)的平臺(tái)。我們應(yīng)該做的是揚(yáng)長避短,發(fā)揮所長,為社會(huì)做貢獻(xiàn)。9、參考文獻(xiàn)郭天祥10天學(xué)會(huì)單片機(jī)視頻mcs-51單片機(jī)原理與應(yīng)用張毅剛 劉杰 哈爾濱工業(yè)大學(xué)出版社郭天祥10天學(xué)會(huì)pcb教程視頻10、附錄:程序源代碼 + pcb 3d模擬圖(見附錄)附錄#include <reg52.h>#include<intrins.h>#include <math.h>#define uchar unsigned char#define uint unsigned intu
12、int num;float num1; int keyval;int o;int i;int q;int rt;int tr;double n2;uchar port,m;uchar ge,shi,bai,qian;sbit wela=p27; int sy;sbit dula=p26; uchar led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit ad_eoc=p10;sbit ad_clk=p11;sbit ad_add=p12;sbit ad_dat=p13;sbit ad_cs=p14;sbit s1=p35; /
13、將s1位定義為p1.4引腳sbit s2=p34; sbit s3=p20; sbit s4=p21; sbit s5=p22; sbit s6=p23; sbit s7=p24; sbit s8=p25; void delay(uint z)uint k; for(z;z>0;z-) for(k=1000;k>0;k-); void display(num) n2=num;n2=n2*5/1024; n2=(3*n2)/(5-n2)*1000;/r1=3k電壓求電阻 n2=3383.8-8.658*(sqrt(175850-23.1*n2); sy=n2; bai=sy/100%
14、10; shi=sy/10%10; ge=sy%10; p0=0xff; wela=1;wela=0;p0=ledbai; dula=1;dula=0; p0=0xf7; wela=1;wela=0; delay(1); p0=0xff; wela=1;wela=0;p0=ledshi; dula=1;dula=0;p0=0xef; wela=1;wela=0;delay(1);p0=0xff; wela=1;wela=0; p0=ledge; dula=1;dula=0;p0=0xdf; wela=1;wela=0;delay(1);p0=0xff; wela=1;wela=0;p0=o;
15、dula=1;dula=0;p0=0xfe; /顯示哪一路標(biāo)號(hào) wela=1;wela=0;delay(1);uint adc(uchar chn1)uchar i;uchar addr8; uint adresult; ad_eoc=1; ad_cs=0;_nop_();addr8=chn1;addr8<<=4;for(i=0;i<4;i+)/寫地址 ad_add=(bit)(addr8&0x80);ad_clk=1;ad_clk=0;addr8<<=1; for(i=0;i<6;i+) /采樣ad_clk=1;ad_clk=0;ad_cs=1;w
16、hile(!ad_eoc);/查詢_nop_();adresult=0;ad_cs=0; /移位傳數(shù)據(jù)for(i=0;i<10;i+)ad_clk=1;adresult<<=1;m=ad_dat;adresult+=m;ad_clk=0;ad_cs=1;return(adresult);void send(unsigned char dat) sbuf=dat; while(ti=0) ; ti=0; void delay5(void) unsigned char m,n; for(m=0;m<200;m+) for(n=0;n<250;n+) ; void ji
17、anpan(void) if(s1=0) /按鍵s1被按下 tr=0; for(rt=0;rt<10;rt+)port=0x0a; o=led1;num=adc(port); tr=num+tr; num=tr/10; for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); /發(fā)送數(shù)據(jù) tr=0; if(s2=0) keyval=2; tr=0; for(rt=0;rt<10;rt+) port=0x09; o=led2;num=adc(port);tr=num+tr;num=tr/10;
18、for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); tr=0; if(s3=0) keyval=3; tr=0; for(rt=0;rt<10;rt+) port=0x08; o=led3;num=adc(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); tr=0; if(s4=0) keyval=4; tr=0; for(rt=0;rt<
19、;10;rt+) port=0x07;o=led4;num=adc(port);tr=num+tr;num=tr/10;for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); tr=0; if(s5=0) tr=0; for(rt=0;rt<10;rt+) port=0x06; o=led5;num=adc(port);tr=num+tr; num=tr/10; for(rt=0;rt<50;rt+)display(num); send(ledbai); send(ledshi); send
20、(ledge); tr=0; if(s6=0) tr=0; for(rt=0;rt<10;rt+) port=0x05; o=led6;num=adc(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); tr=0; if(s7=0) tr=0; for(rt=0;rt<10;rt+) port=0x04; o=led7;num=adc(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)disp
21、lay(num); send(ledbai); send(ledshi); send(ledge); tr=0; if(s8=0) tr=0; for(rt=0;rt<10;rt+) port=0x03;o=led8;num=adc(port);tr=num+tr; num=tr/10;for(q=0;q<50;q+)display(num); send(ledbai); send(ledshi); send(ledge); o=led1; ; void main() tmod=0x20; /tmod=0010 0000b,定時(shí)器t1工作于方式2 scon=0x40; /scon=
22、0100 0000b,串口工作方式1 pcon=0x00; /pcon=0000 0000b,波特率9600 th1=0xfd; /根據(jù)規(guī)定給定時(shí)器t1賦初值 tl1=0xfd; /根據(jù)規(guī)定給定時(shí)器t1賦初值 tr1=1; /啟動(dòng)定時(shí)器t1 while(1) jianpan(); tr=0; for(rt=0;rt<10;rt+)port=0x0a; o=led1;num=adc(port); tr=num+tr;jianpan(); num=tr/10; for(q=0;q<20;q+)display(num);jianpan(); send(ledbai); send(leds
23、hi); send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x09;jianpan(); o=led2;num=adc(port);tr=num+tr;num=tr/10; for(q=0;q<30;q+)jianpan();display(num); send(ledbai); send(ledshi); send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x08; o=led3;jianpan();num=adc(port);tr=num+tr; num=tr/10;for(q=0;q<30;q+)display(num); jianpan(); send(ledbai); send(ledshi); send(ledge); tr=0; for(rt=0;rt<10;rt+) port=0x07; o=led4; jianpan();num=adc(port);tr=num+tr;num=tr/10;for(q=0;q<30
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球及中國備用驅(qū)動(dòng)系統(tǒng)行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025年小學(xué)英語畢業(yè)考試模擬試題:英語閱讀理解技巧提升技巧解析
- 數(shù)字化室內(nèi)建模-全面剖析
- 2025-2030中國鼻出血藥物行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 化工行業(yè)閥門遠(yuǎn)程遙控系統(tǒng)的智能化應(yīng)用研究-全面剖析
- 新型藥物合成途徑探索-全面剖析
- 城市軌道交通項(xiàng)目質(zhì)量管理體系構(gòu)建-全面剖析
- 2025-2030中國食用精制鹽行業(yè)市場運(yùn)行分析及發(fā)展前景與投資風(fēng)險(xiǎn)研究報(bào)告
- 2025-2030中國靜水壓測試行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國零售行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資戰(zhàn)略研究報(bào)告
- GB 16325-2005干果食品衛(wèi)生標(biāo)準(zhǔn)
- 混凝土減水劑課件
- 2023機(jī)修鉗工試題庫及答案
- 進(jìn)料檢驗(yàn)流程圖
- 先進(jìn)制造模式課件
- 人工智能簡史與機(jī)器學(xué)習(xí)及其應(yīng)用課件
- 奇美牌口風(fēng)琴吹奏說明電子版
- 面對自我 課程輔導(dǎo)教師讀本
- 奎因企業(yè)文化因?qū)蛟\斷模型詳解
- 溫室大棚項(xiàng)目績效管理手冊范文
- 叉車技能比武實(shí)施方案
評論
0/150
提交評論