測控綜合設(shè)計(jì)PID控制new_第1頁
測控綜合設(shè)計(jì)PID控制new_第2頁
測控綜合設(shè)計(jì)PID控制new_第3頁
測控綜合設(shè)計(jì)PID控制new_第4頁
測控綜合設(shè)計(jì)PID控制new_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

1、測控綜合課程設(shè)計(jì)PID溫度控制器的設(shè)計(jì)目錄一實(shí)驗(yàn)?zāi)康模?二實(shí)驗(yàn)內(nèi)容:21.靜態(tài)顯示模塊2器件2功能2靜態(tài)顯示電路圖2靜態(tài)顯示參考程序2 仿真結(jié)果32.動態(tài)顯示模塊3器件3功能3動態(tài)顯示電路圖3動態(tài)顯示參考程序4仿真結(jié)果53.鍵盤顯示模塊5器件5功能5 鍵盤掃描電路圖6 鍵盤掃描參考程序6 仿真結(jié)果9三參考資料9一 實(shí)驗(yàn)?zāi)康模弘姞t內(nèi)的熱電阻溫度傳感器測出的溫度信號經(jīng)運(yùn)算放大器放大和模/數(shù)轉(zhuǎn)換后,由8051讀出電阻爐溫,控制程序根據(jù)當(dāng)前爐溫和目標(biāo)溫度的偏差,按照一定的控制方法控制開關(guān)的開與斷,提供適當(dāng) 的加熱功率,以使?fàn)t溫盡快趨近目標(biāo)溫度。最后通過LED將結(jié)果顯示出來。二 實(shí)驗(yàn)內(nèi)容:1. 靜態(tài)顯示

2、模塊 器件名稱型號標(biāo)號數(shù)量單片機(jī)AT80C51U11譯碼器74LS138U51或非門74LS02U6(ABC)3譯碼器74LS373U2,U3,U43電阻R1,R2,R33LED數(shù)碼管3 功能利用LED靜態(tài)編程方式來是LED的靜態(tài)顯示。通過編寫程序在LED上顯示1,2,3 。 靜態(tài)顯示電路圖 靜態(tài)顯示參考程序#include "absacc.h"Unsigned char code LED_CODES=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF,0x

3、0C,0x89,0x7F,0xBF;void main() XBYTE0x0000=LED_CODES1; XBYTE0x0100=LED_CODES2; XBYTE0x0200=LED_CODES3; while(1); 仿真結(jié)果 (當(dāng)按下運(yùn)行鍵時顯示1,2,3)2. 動態(tài)顯示 器件名稱型號標(biāo)號數(shù)量單片機(jī)80C31U11譯碼器74LS373U31譯碼器74LS138U21RAM2764U41ROM6264U51定時器8255U01編碼器LIN2003U71譯碼器74LS244U8(AB)2LED顯示器7SEG-MPX6-CC1晶體振蕩器CRYSTALX11電容CAPC1,C2,C43電阻RE

4、SR1R1717按鈕1 功能采用動態(tài)掃描方式編程實(shí)現(xiàn)LED的動態(tài)顯示,這個模塊是通過編程在LED上顯示1,2,3,4,5.由于LED段引腳是接在一起的,而COM引腳是獨(dú)立的,程序通過控制各LEDCOM端的點(diǎn)評來決定點(diǎn)亮某一位LED,刷新的速度達(dá)到每秒30幀以上,雖然各位是分時點(diǎn)亮的,單由于人的視覺暫留效應(yīng)看起來顯示還是連續(xù)的。 動態(tài)顯示電路圖 動態(tài)顯示參考程序#define base 0x0000#define port_a (base)#define port_b (base + 1)#define port_c (base+ 2)#define port_control (base+ 3)

5、#define leds 6#define ca 0#define cc 1/*函數(shù)聲明*/void turn_on(char led,char chnumber,char mode);void ledsoff();void onebyone(char datas);extern void init8255();unsigned char code select;unsigned char code led_codes;#include"reg51.h"#include"absacc.h"#include"display.h"/*le

6、d 燈選通信號*/*高電平位選*/unsigned char code select= 0x01,0x02,0x04,0x08,0x10,0x20;unsigned char code led_codes= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0x0c,0x89,0x7f,0xbf;/*初始化8255A*/*各led位全滅*/void init8255()unsigned char i,j;for(j=0;j<10;j+)for(i=0;i<255;

7、i+);XBYTEport_control= 0x90;ledsoff();void turn_on(char led,char chnumber,char mode)if(mode=ca)XBYTEport_c= led_codeschnumber;elseXBYTEport_c= led_codeschnumber;XBYTEport_b= selectled;void ledsoff()XBYTEport_b= 0x00;/*main.c#include"reg51.h"#include"display.h"循環(huán)在05位上顯示數(shù)字05 */void

8、 main()unsigned int m;unsigned char i;init8255();i=leds-1;while(1)ledsoff();for(m=500;m!=0;m-);turn_on(i,leds-i,cc);for(m=500;m!=0;m-);if(i=0)i=leds-1;else i-; 仿真結(jié)果(當(dāng)按下運(yùn)行鍵時顯示1,2,3,4,5,)3. 鍵盤顯示 器件名稱型號標(biāo)號數(shù)量單片機(jī)80C31U11譯碼器74LS373U31譯碼器74LS138U21RAM2764U41ROM6264U51定時器8255U01驅(qū)動器LIN2003U71譯碼器74LS244U8(AB)2

9、LED顯示器7SEG-MPX6-CC1晶體振蕩器CRYSTALX11電容CAPC1,C2,C3,C4,4電阻RESR1R1717按鈕BUTTON13 功能采用矩陣鍵盤的識別的行掃描法,實(shí)現(xiàn)鍵盤的掃描。編程實(shí)現(xiàn),當(dāng)按下第1行第0列的鍵候,LED前兩位顯示行號01,后兩位顯示列號00,中間顯示。 鍵盤掃描電路圖 鍵盤掃描參考程序/*按鍵按下識別子程序:keycheck*/ /*鍵盤掃描程序*/#include"absacc.h"#include"display.h"#include"reg51.h"/*延時程序*/void delay()

10、char i;for(i=255;i!=0;i-);char keycheck(char *row,char *col) /*row返回行號,col返回列號,若有鍵按下,函數(shù)返回1,否則返回0*/unsigned char t1,t2,t3,i;unsigned char result=0;P1=0XF0; /*行為低,列為高,若按鍵按下,則行和列電平相同*/t1=P1;if(t1=0XF0) goto exit; /*無鍵按下則返回*/for(i=11;i!=0;i-) /*去抖延時,約20ms*/delay();t1=P1;if(t1=0XF0) goto exit; /*若仍無鍵按下則返

11、回*/result=1; /*將result改變設(shè)置,因?yàn)橄旅媸前存I按下的程序*/*求列號*/t2=0X80; t1=t1; /*t1初態(tài)為0X00,取反后為0XFF*/for(i=4;i!=0;i-) t3=t2&t1; /*t3=0X80&0XFF=0X80*/if(t3!=0) /*即有按鍵按下,并且是第4列有鍵按下*/*col=i-1;break;else t2=t2>>1; /*若第4列無鍵按下,則繼續(xù)檢測第3、2、1列*/t1=t1; /*t1上一個狀態(tài)為0XFF,取反后為0X00*/t1=t1|0X0F;P1=t1; /*即讓行為高電平*/t1=P1;

12、/*求行號*/t2=0X08; t1=t1;for(i=4;i!=0;i-)t3=t2&t1;if(t3!=0) *row=i-1;break;else t2=t2>>1;exit:return result; /*最初的result=0*/*main.c,顯示所識別鍵的行和列號*/#include"absacc.h"#include"display.h"#include"reg51.h"extern char keycheck(char *row,char *col);void main()char row,co

13、l,r;char strindexs6=20,20,20,20,20,20;/*待顯示字符下標(biāo)組,即display.c中的LED段碼的第20個:“0xBF”就是“”*/unsigned char i,k;init8255();while(1)r=keycheck(&row,&col); /*r表示返回的結(jié)果:result*/if(r=0) /*無鍵按下,則顯示全'-'*/strindexs5=20,strindexs4=20,strindexs1=20,strindexs0=20;else /*否則保存按鍵行列號*/strindexs5=0,strindexs1

14、=0,strindexs4=row,strindexs0=col;for(k=6;k!=0;k-)ledsoff();for(i=5000;i!=0;i-); /*此處控制掃描的顯示時間*/turn_on(k-1,strindexsk-1,cc);for(i=500;i!=0;i-); /*display.c*/#include"absacc.h"#include"reg51.h"#include"display.h"unsigned char code select=0x01,0x02,0x04,0x08,0x10,0x20;uns

15、igned char code led_codes=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,/*0-9*/ 0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF,0x0C,0x89,0x7F,0xBF;/*A,b,C,d,E,F(xiàn),空格,P,H,.,- */ void init8255()unsigned char i,j;for(j=0;j<10;j+)for(i=0;i<255;i+)XBYTEport_control=0x90;ledsoff();void turn_on(char led,char c

16、hnumber,char mode)if(mode=ca)XBYTEport_c=led_codeschnumber;elseXBYTEport_c=led_codeschnumber;XBYTEport_b=selectled;void ledsoff()XBYTEport_b=0x00;/*display.h*/*8255A端口地址*/#define base 0x0000#define port_a (base)#define port_b (base+1)#define port_c (base+2)#define port_control (base+3)#define leds 6/*共用6位LED*/#define ca 0 /*共陽*/#define cc 1 /*共陰*/void

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論