版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程名稱: 智能儀器設(shè)計課程設(shè)計 </p><p> 實驗項目: _設(shè)計智能儀表______ </p><p> 專業(yè)班級: 學(xué)號: </p><p> 學(xué)生姓名:
2、 </p><p> 指導(dǎo)教師: </p><p> 2012年 1 月 12 日</p><p><b> 目 錄</b></p><p> 一、設(shè)計目的及要求..................................
3、..3</p><p> 二、設(shè)計思路..........................................3</p><p> 三、硬件電路原理圖與設(shè)計..............................3</p><p> 3.1智能儀表基本模塊硬件電路.........................................
4、.3</p><p> 3.2智能儀表基本模塊的功能............................................8</p><p> 四、測溫模塊設(shè)計......................................9</p><p> 4.1熱電偶.....................................
5、.......................9</p><p> 4.2 熱電偶信號調(diào)理電路...............................................10</p><p> 五、驅(qū)動雙向晶閘管設(shè)計................................10</p><p> 六、軟件設(shè)計..............
6、............................11</p><p> 6.1主程序...........................................................11</p><p> 6.2子程序...........................................................12</p>
7、<p> 七、總結(jié).............................................16</p><p><b> 一、設(shè)計目的及要求</b></p><p> 實現(xiàn)智能數(shù)字顯示儀表。要求8位數(shù)碼管顯示(4位顯示測量值,4位顯示設(shè)定值),4輸入按鈕(功能選擇、數(shù)碼管選擇、數(shù)字增加、數(shù)字減少),可設(shè)定上下限報警(蜂鳴器報警)。
8、適配B型(鉑銠30)熱電偶,測溫范圍為400℃~1200℃。采用位式(兩位、三位,具有滯環(huán))控制、并用晶閘管過零驅(qū)動1000W電加熱器(電源電壓為AC220V)。</p><p><b> 二、設(shè)計思路</b></p><p> 通過B型(鉑銠30)熱電偶測量的答題思路為</p><p> 三、硬件電路原理圖與設(shè)計</p>
9、<p> 3.1智能儀表基本模塊硬件電路</p><p> 智能儀表基本模塊由單片機(jī)、輸入按鈕、硬件顯示和通信接口組成</p><p><b> 原理圖:</b></p><p> (1)最小系統(tǒng)板電路</p><p><b> (2)電源電路</b></p>&l
10、t;p><b> (3)按鍵電路</b></p><p><b> (4)揚聲器電路</b></p><p><b> ?。?)數(shù)碼管電路</b></p><p><b> (6)信號調(diào)理電路</b></p><p><b> (7
11、)功率驅(qū)動電路</b></p><p><b> (8)LED電路</b></p><p> 3.2智能儀表基本模塊的功能:</p><p> ?。?)具有兩排8個是數(shù)碼管顯示,分別顯示測量值與設(shè)定值, 數(shù)碼管由74HC595驅(qū)動,因此只需要3個單片機(jī)引腳,可以用SPI接口引腳:PB4、PB5(MOSI)和PB7(SCK),或是
12、采用I/O引腳搭配時序的方法驅(qū)動。</p><p> ?。?)具有4個按鈕:功能選擇按鈕、數(shù)碼管選擇按鈕、數(shù)字加按鈕、數(shù)字減按鈕。按鈕直接連在單片機(jī)引腳,低電平有效。</p><p> ?。?)具有4個LED燈,用于顯示狀態(tài),直接連到單片機(jī)引腳,低電平有效。</p><p><b> 智能儀表的外形:</b></p><p
13、> 其中上排數(shù)碼管顯示測量值,下排數(shù)碼管顯示設(shè)定值,4個按鈕用三個,右上側(cè)有4個發(fā)光二極管。</p><p><b> 四、測溫模塊設(shè)計</b></p><p><b> 4.1熱電偶</b></p><p> B型熱電偶在熱電偶系列中具有準(zhǔn)確度最高,穩(wěn)定性最好,測溫溫區(qū)寬,使用壽命長,測溫上限高等優(yōu)點。適用
14、于氧化性和惰性氣氛中,也可短期用于真空中,但不適用于還原性氣氛或含有金屬或非金屬蒸氣氣氛中。B型熱電偶一個明顯的優(yōu)點是不需用補償導(dǎo)線進(jìn)行補償,因為在0~50℃范圍內(nèi)熱電勢小于3μV。</p><p> B型熱電偶不足之處是熱電勢,熱電勢率較小,靈敏度低,高溫下機(jī)械強度下降,對污染非常敏感,貴金屬材料昂貴,因而一次性投資較大。 兩種不同成分的導(dǎo)體兩端接合成回路,當(dāng)接合點的溫度不同時,在回路中就會產(chǎn)生電動勢
15、,這種現(xiàn)象稱為熱電效應(yīng),而這種電動勢成為熱電勢,也稱為熱電動勢,熱電偶就是利用這種原理進(jìn)行溫度測量的。其中,直接用做測量介質(zhì)溫度的一端叫作工作端(稱為測量端),另一端叫做冷端(稱為補償端)。冷端與顯示儀表或配套儀表連接,顯示儀表會顯示出熱電偶所產(chǎn)生的熱電勢。</p><p> 熱電偶將熱能轉(zhuǎn)換為電能,用所產(chǎn)生的熱電勢測量溫度,對于熱電偶的熱電勢,應(yīng)注意以下問題:</p><p> 熱電
16、偶所產(chǎn)生的熱電勢大小,與熱電偶的長度和直徑無關(guān),只與熱電偶材料的成分和兩端的溫差有關(guān)</p><p> 當(dāng)熱電偶的兩個熱電偶絲材料成分確定后,熱電偶電勢的大小,只與熱電偶的溫度差有關(guān);若熱電偶冷端的溫度保持一定,則熱電勢僅是工作端溫度的單值函數(shù)</p><p> 本設(shè)計要求的B型(鉑銠30)熱電偶測溫范圍如下表</p><p> 4.2 熱電偶信號調(diào)理電路&l
17、t;/p><p> 采用LM35的B00000000----------------------------型熱電偶冷端補償電路</p><p> B型熱電偶在0度時的熱電勢為0mV,在1600度時的熱電勢為18.84mV。若輸出電壓為0.2-3.3v。因此放大器輸出電壓方程為:</p><p> 1)0.2=m*0+b 和 2)3.3=m*18.84+b算出m、
18、b的值然后根據(jù)</p><p> 3)m=[R2/(R1+R2)][(Rf+Rg)/Rg] 和 4)b=Vref[R1/(R1+R2)][(Rf+Rg)/Rg]算出實驗所需的數(shù)據(jù)</p><p> 五、驅(qū)動雙向晶閘管設(shè)計</p><p> 本系統(tǒng)采用晶閘管脈沖調(diào)制驅(qū)動電路,其負(fù)載為1000W的電加熱器(電源電壓為220VAC)。單片機(jī)驅(qū)動晶閘管脈沖調(diào)制驅(qū)動器的
19、電路如下圖所示。</p><p> 單片機(jī)驅(qū)動晶閘管脈沖調(diào)制驅(qū)動器的電路</p><p><b> 六、軟件設(shè)計</b></p><p><b> 6.1主程序</b></p><p> #include<iom 16v.h></p><p> #inc
20、lude< macros.h ></p><p> unsigned char vadc; //vadc 測得的放大電勢值</p><p> unsigned int var; //測得的溫度值</p><p> Unsign int
21、data[8]; //全局變量</p><p> unsigned char xs[8]; //數(shù)據(jù)緩存</p><p> unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,//共陽數(shù)碼</p><p
22、> 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf, </p><p> 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0xFE,0xFF}; </p><p> unsigned int weizhi[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 高電平有效*/</
23、p><p> unsigned char LED0,LED1,LED2,LED3;</p><p> Void main(void) //主函數(shù)</p><p><b> {</b></p><p> unsign char adc_time;</p>&
24、lt;p> unsign char saomiao_time;</p><p> unsign char xianshi_time;</p><p> init_devices();adc_time=0;}</p><p><b> while(1)</b></p><p> While(adc_time
25、=1) //測溫</p><p> { adc(); </p><p> Char lp(); //濾波 </p><p><b> PID();</b></p><p><b> Shuchu();</b
26、></p><p> adc_time=0;}</p><p> While(saomiao_time==1)</p><p> { saomiao1(); //掃描按鍵并存放數(shù)據(jù)</p><p> Saomiao_time=0;}</p><p> while(xianshi
27、_time==1)</p><p> { spihc(); //數(shù)碼管顯示</p><p> LED(); // LED燈顯示</p><p> xianshi_time=0;}</p><p><b> }</b></p>&
28、lt;p> #pragma interrupt_handler int_TCCR1A:7 //定時器1的TCCR1A組比較匹配中斷服務(wù)程序</p><p> { static unsigned char n;</p><p><b> n ++;</b></p><p> If(n==20)
29、 //200ms</p><p> adc_time=1; //adc轉(zhuǎn)換</p><p> Saomiao_time=1; //掃描PD口按鍵 </p><p> xianshi_time=1;
30、 //顯示數(shù)碼管</p><p><b> } </b></p><p><b> 6.2子程序</b></p><p> ?。?)ADC初始化函數(shù)</p><p> Void adc_init(void)</p><p> { ADCSRA=0x00;
31、 // ADCSRA –ADC控制和狀態(tài)寄存器</p><p> ADMAX=0x20; //選擇外部參考電壓,通道0,左對齊</p><p> ADCSRA=0xE2;</p><p> SFIOR=0Xa0; // SFIOR
32、-特殊功能IO寄存器,定時器1比較匹配B</p><p><b> }</b></p><p> (2)ADC轉(zhuǎn)換程序</p><p> Void adc(void)</p><p> { static unsigned char n;</p><p> while(!(ADCSRA&a
33、mp;(1<<ADIF))); //等待轉(zhuǎn)換完成</p><p> ADH=ADCH; //8位轉(zhuǎn)換</p><p><b> If(n<5)</b></p><p> Value_adc[n++]=ADH;</p><p
34、><b> Else </b></p><p><b> n =0;} </b></p><p> (3)算術(shù)平均值濾波子函數(shù)</p><p> Void Char lp(void)</p><p> { Int sum=0;</p><p> Char
35、count;</p><p> For (count=0;count<5;count++)</p><p> { sum+=Value_adc[count]; //獲取ADC轉(zhuǎn)換結(jié)果,計算相加</p><p><b> Delay();}</b></p><p> vadc=sum/5
36、;</p><p><b> }</b></p><p> (4)定時器初始化函數(shù)</p><p> Void T1_init(void) //初始化定時器,產(chǎn)生10ms周期中斷</p><p> {OCR1A=1249;</p><p> TIMSK|
37、=(1<<OCIEA);</p><p> TCCR1A=0x00;</p><p> TCCR1B=0x08; //定時器工作在CTC計數(shù)器模式</p><p> TCCR1B|=0x02; // 設(shè)定定時器1的分頻值為8分頻</p
38、><p><b> }</b></p><p> ?。?)顯示LED燈子程序</p><p> Void LED(void)</p><p> { if(LED0==1)</p><p> PORTB^=0x01;</p><p> If(LED1==1)</p
39、><p> PORTB|=1<<1;</p><p> If(LED2==1)</p><p> PORTB|=1<<2;</p><p> If(LED3==1)</p><p> PORTB|=1<<3;</p><p><b> }&l
40、t;/b></p><p> (6)定時器1的TCCR1A組比較匹配中斷服務(wù)程序 </p><p> #pragma interrupt_handler int_TCCR1A:7 //定時器1的TCCR1A組比較匹配中斷服務(wù)程序</p><p> { static unsigned char n;</p><p><
41、;b> n ++;</b></p><p> If(n==20) //200ms</p><p> adc_time=1; //adc轉(zhuǎn)換</p><p> Saomiao_time=1;
42、 //掃描PD口按鍵 </p><p> xianshi_time=1; //顯示數(shù)碼管</p><p><b> } </b></p><p> (7) SPI初始化</p><p> Void SPI_init(void)</p>&l
43、t;p> SPDR=(1<<6)|(1<<4)|(1<<5)|(1<<1)|(1<<0); //使能SPI主機(jī)模式,設(shè)置時鐘速率為fck/128</p><p><b> }</b></p><p> ?。?)引腳初始化函數(shù)</p><p> Void port_init
44、(void) //引腳初始化函數(shù)</p><p> {PORTA=0x80; //AD通道PA0口輸入模擬信號</p><p> DDRA=0x80;</p><p> PORTB=0xff; /
45、/PB輸出 LED燈</p><p> DDRB=0xff;</p><p> PORTC=0xff; //PC輸出 數(shù)碼管</p><p> DDRC=0xff;</p><p> PORTD=0x00; //PD口
46、輸入按鈕信號</p><p> DDRD=0x00;</p><p><b> }</b></p><p> (9)系統(tǒng)初始化函數(shù)</p><p> Void init_devices(void) //系統(tǒng)初始化</p><p><b>
47、 {CLI();</b></p><p> port_init();</p><p><b> adc_init;</b></p><p><b> T1_init;</b></p><p><b> SPI_init;</b></p>&l
48、t;p><b> SEI();</b></p><p><b> }</b></p><p><b> (10)掃描子程序</b></p><p> Void saomiao1(void)</p><p> { unsigned int i;</p>
49、<p> Static unsigned int j,m,k;</p><p><b> If(j==0)</b></p><p> {if (PIND|=0xFE) //判斷PD0引腳 功能鍵</p><p> for (i=0;i<<2000;i++);</p><p
50、> if (PIND|=0xFE) </p><p> while(PIND|=0xFE);</p><p><b> {j+=1;</b></p><p><b> if(j>3)</b></p><p><b> j=0;}</b></p>
51、;<p><b> else </b></p><p> saomiao2();</p><p><b> shuju();</b></p><p> if(j==1) // LED燈亮</p><p><b> {LED1
52、=1;</b></p><p> data[3]=data[2];} //設(shè)定并存放報警上限值</p><p> Else if(j==2)</p><p> {LED2=1; data[4]=data[2];} //設(shè)定并存放報警下限值 </p><p> Else if(j==3
53、)</p><p> {ED3=1; data[5]=data[2];} //設(shè)定并存放給定值</p><p><b> }</b></p><p> ?。?1)數(shù)碼管、按鈕子程序</p><p> Void saomiao2(void) //選擇數(shù)碼管 按鈕 </p&
54、gt;<p> { unsigned int p;</p><p><b> if(m==0)</b></p><p> if (PIND|=0xFD) //判斷PD1引腳</p><p> for (p=0;p<<2000;p++);</p><p> if (PI
55、ND|=0xFD) </p><p> while(PIND|=0xFD);</p><p><b> {m+=1;</b></p><p><b> if(m>4)</b></p><p><b> m=0;}</b></p><p>
56、<b> else</b></p><p> saomiao3();</p><p><b> }</b></p><p> (12)判斷數(shù)據(jù)增減子程序</p><p> Void saomiao3(void) //判斷數(shù)據(jù)增減</p><p
57、> { unsigned int q; </p><p><b> If(0<k<9)</b></p><p> if (PIND|=0xFB) //判斷PD2引腳</p><p> for (q=0;q<<2000;q++);</p>&l
58、t;p> if (PIND|=0xFB) </p><p> while(PIND|=0xFB);</p><p><b> {k+=1;}</b></p><p> if (PIND|=0xF7) //判斷PD3引腳</p><p> for (q=0;q<<2000;q
59、++);</p><p> if (PIND|=0Xf7) </p><p> while(PIND|=0xF7);</p><p><b> {k-=1;}</b></p><p> Else k=0; </p><p><b> }</b></p>
60、<p> ?。?3)數(shù)據(jù)設(shè)定存放子程序</p><p> Void shuju(void)</p><p><b> {If(m==1)</b></p><p> data[2]+=k;</p><p><b> if(m==2)</b></p><p>
61、; data[2]+=1<<4;</p><p><b> if(m==3)</b></p><p> data[2]+=1<<8;</p><p><b> if(m==4)</b></p><p> data[2]+=1<<12;}</p>
62、;<p> ?。?4)向HC595輸出數(shù)據(jù)的函數(shù)</p><p> void xianshi(unsigned char X) //向HC595輸出數(shù)據(jù)的函數(shù)</p><p> {unsigned char i; </p><p> for(i=8;i>=1;i--)</p><p> {if (X&am
63、p;0x80) PORTC.5=1; else PORTC.5=0; //先輸出低位</p><p><b> X<<=1;</b></p><p> PORTC.7 = 0;</p><p> PORTC.7 = 1;</p><p><b> }</b></p&g
64、t;<p><b> }</b></p><p> (15)顯示數(shù)碼管子程序</p><p> void spihc595 (void) //顯示子程序</p><p> {unsigned char i; </p><p><b
65、> {</b></p><p> {data[0]=var; //顯示測量值</p><p> data[1]=data[4]; //顯示給定值定值</p><p> if(LED1==1)<
66、;/p><p> data[1]=data[2]; //顯示報警上限值</p><p> if(LED2==1)</p><p> data[1]=data[3]; //顯示報警下限值</p><p> xs[0]= data
67、[1]/1000%10;</p><p> xs[1]= data[1]/100%10;</p><p> xs[2]= data[1]/10%10;</p><p> xs[3]=data[1]%10;</p><p> xs[4]= data[0]/1000%10;</p><p> xs[5]= dat
68、a[0]/100%10;</p><p> xs[6]= data[0]/10%10;</p><p> xs[7]=data[0]%10;</p><p><b> }</b></p><p> xianshi(weizhi[i]); //位輸出</p
69、><p> xianshi(disp[xs[i]]); //段輸出 </p><p> PORTC.6 = 0; //鎖存信號低電平</p><p> PORTC.6= 1; //鎖存信號高電平</p><
70、;p> i++;if(i==8)i=0;</p><p><b> } </b></p><p><b> } </b></p><p><b> 七、總結(jié)</b></p><p> 在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何
71、去做一件事情,又如何完成一件事情。在設(shè)計過程中,與同學(xué)分工設(shè)計,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會了合作,學(xué)會了運籌帷幄,學(xué)會了寬容,學(xué)會了理解,也學(xué)會了做人與處世。</p><p> 智能儀表的課程設(shè)計使我加深了對于所學(xué)知識的理解,鞏固了所學(xué)的知識,學(xué)會了用Protel99SE軟件設(shè)計制作簡單的單片機(jī)電路及其設(shè)計封裝PCB圖。從生疏到較熟練地應(yīng)用軟件設(shè)計單片機(jī)的過程中 ,并不是一帆風(fēng)順,我在設(shè)計過程中
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能儀表課程設(shè)計
- 智能儀表課程設(shè)計報告
- 智能儀表課程設(shè)計報告
- 智能儀表原理與設(shè)計
- 智能儀表綜合訓(xùn)練課程設(shè)計--數(shù)據(jù)采集器(led顯示)
- 智能儀表課程設(shè)計--基于ds18b20的溫度采集系統(tǒng)
- 過程控制課程設(shè)計--鍋爐溫度定值智能儀表控制系統(tǒng)
- 《智能溫控儀表設(shè)計》課程設(shè)計
- 雙方向檢測智能儀表的設(shè)計.pdf
- 電力智能儀表的設(shè)計與實現(xiàn).pdf
- 雙方向檢測智能儀表的設(shè)計(1)
- 基于Internet的智能儀表的設(shè)計.pdf
- 現(xiàn)場總線智能儀表其應(yīng)用
- 基于WinCE的車載智能儀表系統(tǒng)設(shè)計.pdf
- 基于CAN總線的汽車智能儀表設(shè)計.pdf
- 多通道智能儀表的設(shè)計與開發(fā).pdf
- 基于MODBUS協(xié)議的智能儀表的設(shè)計.pdf
- 基于ARM的智能儀表設(shè)計與開發(fā).pdf
- ff現(xiàn)場總線與智能儀表技術(shù)
- 柱柵智能儀表的研究.pdf
評論
0/150
提交評論