版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、溫度采集控制的設(shè)計與實現(xiàn)電子科技大學 英才實驗 學院實 驗 報 告實驗名稱 現(xiàn)代電子技術(shù)綜合實驗姓名:汪曉華學號:2702108015評分:教師簽字電子科技大學教務(wù)處制電 子 科 技 大 學實 驗 報 告學生姓名:汪曉華 學號:2702108015 指導教師:王軍實驗地點: 331 實驗時間:(雙周)周二9、10、11節(jié)一、 實驗室名稱: 電子技術(shù)綜合實驗室二、 實驗項目名稱:溫度采集控制的設(shè)計與實現(xiàn)三、 實驗學時: 32四、 實驗?zāi)康呐c任務(wù):1、 熟悉系統(tǒng)設(shè)計與實現(xiàn)原理2、 掌握KEIL C51的基本使用方法3、 熟悉SMART SOPC實驗箱的應(yīng)用4、 連接電路,編程調(diào)試,實現(xiàn)各部分的功能
2、5、 完成系統(tǒng)軟件的編寫與調(diào)試五、 實驗器材1、 PC機一臺2、 示波器、SMART SOPC實驗箱一套六、 實驗原理、步驟及內(nèi)容1、 數(shù)碼管動態(tài)掃描原理七段式LED數(shù)碼管是常見的電子設(shè)備顯示器件,能夠顯示數(shù)字09以及字母a f,外加一個小數(shù)點,作為第八段。數(shù)碼管有靜態(tài)和動態(tài)之分,每一類又有共陽和共陰之分。靜態(tài)數(shù)碼管驅(qū)動方法簡單、亮度高,但是連線比較多,而動態(tài)數(shù)碼管常常以多位聯(lián)體的形式提供,連線較少,但是要用動態(tài)掃描的方法驅(qū)動,為了獲得足夠的亮度,限流電阻取值常常比較小。 動態(tài)數(shù)碼管掃描的具體過程如下,先把第1個數(shù)碼管的顯示數(shù)據(jù)送到abcdefg和dp,同時選通com1,而其它數(shù)碼管的com信
3、號禁止;延時一段時間(通常不超過10ms),再把第2個數(shù)碼管的顯示數(shù)據(jù)送到abcdefg和dp,同時選通com2,而其它數(shù)碼管的comd信號禁止;延時一段時間,再顯示下一個。當掃描整個數(shù)碼管的頻率應(yīng)當保證在50Hz以上時,就不會看到明顯的閃爍,肉眼 觀察,看上去是一起亮的。原理圖如下:圖 1 數(shù)碼管的動態(tài)掃描原理圖2、 蜂鳴器工作原理蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。原理圖見圖:圖 2 蜂鳴器的原理圖如圖2所示,蜂鳴器的負
4、極經(jīng)電阻R3接地,蜂鳴器的正極接到三極管的集電極C,三極管的基級B經(jīng)過限流電阻R2后由單片機的P1.3引腳控制,當P1.3輸出高電平時,三極管Q1截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當P1.3輸出低電平時,三極管導通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制P1.3腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。程序中改變單片機P1.3引腳輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。另外,改變P1.3輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小。3、 I2C工作原理1)I2C總線概述I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機系統(tǒng)所
5、需的包括總線裁決和高低速器件同步功能的高性能串行總線。 2)I2C信號線I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。圖 3 I2C總線框圖3)I2C總線的數(shù)據(jù)傳送 a)數(shù)據(jù)位的有效性規(guī)定 I2C總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。圖 4 SDA與SCL的工作時序圖b) 起始和終止信號SCL線為高電平期
6、間,SDA線由高電平向低電平的變化表示起始信號SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。起始和終止信號都是由主機發(fā)出的,在起始信號產(chǎn)生后,總線就處于被占用的狀態(tài);在終止信號產(chǎn)生后,總線就處于空閑狀態(tài)。c) I2C總線的數(shù)據(jù)傳送速率 I2C總線的通信速率受主機控制,能快能慢,最高速率限制為100Kb/s d) I2C總線的數(shù)據(jù)傳送格式 主機向從機發(fā)送數(shù)據(jù) 從機向主機發(fā)送數(shù)據(jù)圖 5 I2C總線的數(shù)據(jù)傳送格式S:起始位 SA: 從機地址,7位W/:寫標志位,1位 R:讀標志位,1位A:應(yīng)答位,1位 A/:非應(yīng)答位,1位D:數(shù)據(jù),8位 P:停止位陰影:主機產(chǎn)生的信號 無陰影:從
7、機產(chǎn)生的信號4)總線的尋址 I2C總線協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號后的第一個字節(jié))。尋址字節(jié)的位定義 D7D1位組成從機的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時表示主機向從機寫數(shù)據(jù),為“1”時表示主機由從機讀數(shù)據(jù)。主機發(fā)送地址時,總線上的每個從機都將這7位地址碼與自己的地址進行比較,如果相同,則認為自己正被主機尋址,根據(jù)R/位將自己確定為發(fā)送器或接收器。從機的地址由固定部分和可編程部分組成。在一個系統(tǒng)中可能希望接入多個相同的從機,從機地址中可編程部分決定了可接入總線該類器件的最大數(shù)目。如一個從機的7位尋址位有4位是固定位,3位是可編程位,這時僅能尋址8個同樣的器件
8、,即可以有8個同樣的器件接入到該I2C總線系統(tǒng)中。4、 LM75特征及應(yīng)用LM75A是一個使用了內(nèi)置帶隙溫度傳感器和模數(shù)轉(zhuǎn)換技術(shù)的溫度-數(shù)字轉(zhuǎn)換器I2C 總線接口。工作溫度范圍-55oC+125 oC,精度可達0.125 oC。 LM75A可設(shè)置成工作在兩種模式:正常工作模式或關(guān)斷模式。在正常工作模式中,每隔100ms執(zhí)行一次溫度-數(shù)字的轉(zhuǎn)換,Temp寄存器保存著最后一次更新的結(jié)果;但是,在該模式下,器件的I2C接口仍然有效,寄存器讀/寫操作糾結(jié)執(zhí)行。器件的工作模式通過配置寄存器可編程位B0業(yè)設(shè)定。當器件上電或從關(guān)斷模式進入正常工作模式時啟動溫度轉(zhuǎn)換。LM75A可配置成不同的工作條件。它可設(shè)置
9、成在正常工作模式下周期性地對環(huán)境溫度進行監(jiān)控或進入關(guān)斷模式來將器件功耗降至最低。OS輸出有2種可選的工作模式:OS比較器模式和OS中斷模式。OS輸出可選擇高電平或低電平有效。圖表 6 LM75A工作原理圖溫度寄存器(Temp)Temp寄存器存放著每次A/D轉(zhuǎn)換的或監(jiān)控到的數(shù)字結(jié)果。包含2 個8位的數(shù)據(jù)字節(jié),由一個高數(shù)據(jù)字節(jié)(MS)和一個低數(shù)據(jù)字節(jié)(LS)組成。其中,只有11位用來存放分辨率為0.125 oC的Temp數(shù)據(jù)(以二進制補碼數(shù)據(jù)的形式) 對于正的溫度值,D100 T=Temp *0.125oC對于負的溫度值,D101 T=-Temp的補碼*0.125oCLM75A主要應(yīng)用于系統(tǒng)溫度管
10、理、個人計算機、電子設(shè)備和工業(yè)控制器等地方,典型應(yīng)用實例為:圖 7 LM75A典型應(yīng)用5、 步進電機驅(qū)動原理步進電機是一種將電脈沖轉(zhuǎn)化為角位位移的執(zhí)行機構(gòu)。通俗一點講:當步進驅(qū)動器接收到一個脈沖從頭到尾,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(即步進角)。所以,我們可以通過控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的,同時也可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)整的目的。本實驗中驅(qū)動電機的信號仍由PWM脈沖方波控制。原理圖如圖8所示。圖 8 步進電機驅(qū)動原理圖6、 程序框圖主程序初始化SysInit() 開啟16位定時器T0DispInit() 數(shù)據(jù)管顯示初
11、始化 開啟中斷T1I2C_Init() I2C總線協(xié)議初始化設(shè)定PWM,溫度初值讀取溫度顯示溫度掃描鍵盤判斷是否有鍵按下+,溫度cnt+更新DispBuf設(shè)置延時標志flag的值中斷時間到蜂鳴器響0.5s-, 溫度cnt-判斷k更新溫度值判斷是否有鍵抬起掃描鍵盤有無無每1ms進入一次中斷(T1)中斷服務(wù)程序開始有更新掃描數(shù)據(jù)判斷延時標志 flag為0 ,BUZZER取反比較cnt與temp,設(shè)置PwmValue值為差的絕對值若大則致熱燈亮若小則致冷燈亮相等則送風燈亮中斷服務(wù)程序結(jié)束PwmValue的值控制脈沖寬度t>PwmValuePWM = 0t<PwmValuePWM = 1t
12、>PWM_MAXt = 0思考題: 設(shè)定溫度的按鍵改用外部中斷模式,電路如何修改(畫示意圖)?程序如何修改,寫出中斷服務(wù)程序。答:將KEY1與KEY2鍵通過跳線分別接到INT0與INT1接口上。開啟中斷:SysInit() EA=0; /禁止總中斷 EX1=1; /使能/INT1中斷EX0=1; /使能/INT0中斷EA1; /使能總中斷中斷服務(wù)程序:void INT0SVC () interrupt 0if(cnt<=31) cnt+;void INT1SVC () interrupt 2if(cnt>=17) cnt-; 示意圖七、 總結(jié)及心得體會 通過本實驗課程,我對中
13、斷和定時有了較深入的了解,對單片機的認識也進一步的提高。在編程的過程中,遇到了一些問題,本質(zhì)原因是因為對單片機的認識不足,對工作機理不清楚,望文生義,從而導致一些程序行不通,不過最終還是在老師和同學的幫助下,順利的完成了實驗。我想,對于語言來說,要想機器懂你,就必須遵守規(guī)則,所以,先弄懂是怎么運行的,再著手編程,會更順理成章一點。八、 對本實驗過程及方法、手段的改進建議無九、 附錄1、 學號+秒表+按鍵+電機的程序2、 溫度采集控制(數(shù)碼管+直流電機)程序附錄1:學號+秒表+按鍵+電機的程序/*main.c加減計數(shù)器*/#include <reg51.h>#include <
14、absacc.h>#include <ctype.h>/定義按鍵sbit KEY1 = P20;/按鍵1sbit KEY2 = P21;/按鍵2sbit BUZZER = P32;sbit PWM =P33;/定義PWM最大級數(shù)#define PWM_MAX50/定義PWM級數(shù),分為0PWM_MAX-1級unsigned char cnt = 18;/定義計數(shù)器變量int flag=1;unsigned char PwmValue;unsigned char sec = 0;unsigned int count = 998;code unsigned char Tab =/定
15、義0123456789AbCdEF的數(shù)碼管字型數(shù)據(jù)0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned char DispBuf8;/*函數(shù):KeyScan()功能:鍵盤掃描返回:掃描到的鍵值*/unsigned char KeyScan()unsigned char k = '0'if ( KEY1 = 0 ) k = '+'if ( KEY2 = 0 ) k = '-'return k;/*函數(shù):T1INTSVC()功能:定時器T1的中斷服務(wù)函數(shù)*/void T1INTSVC()
16、 interrupt 3code unsigned char com = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;static unsigned char n = 0;static unsigned char t = 0;TR1 = 0;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;P1 = 0xFF;/暫停顯示XBYTE0xE800 = DispBufn;/更新掃描數(shù)據(jù)P1 = comn;/重新顯示n+; t+;n &= 0x07;if(flag=0)BUZZER=!BUZZER; if (n =8)n = 0;count +;/
17、統(tǒng)計毫秒 /pwmcnt + ; if (count = 999)/一秒時間到sec +; count = 0;DispBuf4 = Tabsec / 10;/分離十位DispBuf3 = Tabsec % 10;/分離個位if (sec = 30)sec = 0; if(cnt>sec) PwmValue=cnt-sec;elsePwmValue=sec-cnt;if ( t >= PWM_MAX ) t = 0;if ( t <= PwmValue)PWM = 1; elsePWM = 0; /*函數(shù):DispClear()功能:清除數(shù)碼管的所有顯示*/void Disp
18、Clear()unsigned char i;for ( i=0; i<8; i+ )DispBufi = 0x00; /*函數(shù):DispChar()功能:在數(shù)碼管上顯示字符參數(shù):x:數(shù)碼管的坐標位置(07)c:要顯示的字符(僅限16進制數(shù)字和減號)dp:是否顯示小數(shù)點,0不顯示,1顯示/*函數(shù):DispInit()功能:數(shù)碼管掃描顯示初始化*/void DispInit()DispClear();/初始為全滅EA = 0;TMOD &= 0x0F;TMOD |= 0x10;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;ET1 = 1;EA = 1; /*函數(shù):De
19、lay()功能:延時0.012.56s參數(shù):t>0時,延時(t*0.01)st=0時,延時2.56s說明:晶振用11.0592MHz*/void Delay(unsigned char t)doTH0 = 0xDC;TL0 = 0x00;TR0 = 1;while ( !TF0 );TR0 = 0;TF0 = 0; while ( -t != 0 ); /*函數(shù):SysInit()功能:系統(tǒng)初始化*/void SysInit()TMOD &= 0xF0;TMOD |= 0x01;/設(shè)置定時器T0為16位定時器DispInit();/數(shù)碼管掃描顯示初始化PwmValue = PWM
20、_MAX / 2;/設(shè)置PWM初值PWM = 1; /PWM管腳為高void main()unsigned char k;/定義鍵值變量SysInit();/系統(tǒng)初始化DispBuf7=Tab1;DispBuf6=Tab5;DispBuf1=Tabcnt/10;DispBuf0=Tabcnt%10;for (;)for (;)Delay(5);/延時50msk = KeyScan();/鍵盤掃描if ( k != '0' )flag=0;Delay(50);flag=1; break; switch ( k )/判斷鍵值,執(zhí)行具體功能case '+':if (
21、cnt < 25 )cnt+;break;case '-':if ( cnt > 16 ) cnt-;break;default:break;DispBuf1=Tabcnt/10;DispBuf0=Tabcnt%10;for (;)Delay(5);/延時50msif ( KeyScan() = '0' ) break;/如果按鍵抬起,退出循環(huán)附錄2:溫度采集控制(數(shù)碼管+直流電機)程序/*main.cLM75A數(shù)字溫度計*/#include "I2C.h"#include <reg51.h>#include <
22、string.h>#include <absacc.h>#include <ctype.h>/定義按鍵sbit KEY1 = P20;/按鍵1sbit KEY2 = P21;/按鍵2sbit BUZZER = P32;sbit PWM =P33;sbit LED0 = P22;sbit LED1 = P23;/定義LED由P0.0控制 /定義LED由P0.0控制 sbit LED2 = P24;/定義LED由P0.0控制 #define PWM_MAX50/定義PWM級數(shù),分為0PWM_MAX-1級unsigned char PwmValue;unsigned c
23、har cnt = 25;/定義計數(shù)器變量int flag=1;unsigned int temp;code unsigned char Tab =/定義0123456789AbCdEF的數(shù)碼管字型數(shù)據(jù)0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned char DispBuf8;/*函數(shù):KeyScan()功能:鍵盤掃描返回:掃描到的鍵值*/unsigned char KeyScan()unsigned char k = '0'if ( KEY1 = 0 ) k = '+'if ( KEY2 =
24、 0 ) k = '-'return k;/*函數(shù):T1INTSVC()功能:定時器T1的中斷服務(wù)函數(shù)*/void T1INTSVC() interrupt 3code unsigned char com = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;static unsigned char n = 0;static unsigned char t = 0;TR1 = 0;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;P1 = 0xFF;/暫停顯示XBYTE0xE800 = DispBufn;/更新掃描數(shù)據(jù)P1 = comn;
25、/重新顯示n+; t+;n &= 0x07;if(flag=0) BUZZER=!BUZZER; if (cnt=temp/8) LED2=0; LED1=1; LED0=1;if(cnt>temp/8) PwmValue=cnt-temp/8;if(PwmValue>1)LED0=0;LED1=1;LED2=1;if(cnt<temp/8)PwmValue=temp/8-cnt;if(PwmValue>1)LED1=0;LED2=1;LED0=1;if ( t >= PWM_MAX ) t = 0;if ( t <= PwmValue)PWM =
26、1; elsePWM = 0; /*函數(shù):DispClear()功能:清除數(shù)碼管的所有顯示*/void DispClear()unsigned char i;for ( i=0; i<8; i+ )DispBufi = 0x00;/*函數(shù):DispChar()功能:在數(shù)碼管上顯示字符參數(shù):x:數(shù)碼管的坐標位置(07)c:要顯示的字符(僅限16進制數(shù)字和減號)dp:是否顯示小數(shù)點,0不顯示,1顯示/*函數(shù):DispInit()功能:數(shù)碼管掃描顯示初始化*/void DispInit()DispClear();/初始為全滅EA = 0;TMOD &= 0x0F;TMOD |= 0x1
27、0;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;ET1 = 1;EA = 1;/*函數(shù):Delay()功能:延時0.012.56s參數(shù):t>0時,延時(t*0.01)st=0時,延時2.56s說明:晶振用11.0592MHz*/void Delay(unsigned char t)doTH0 = 0xDC;TL0 = 0x00;TR0 = 1;while ( !TF0 );TR0 = 0;TF0 = 0; while ( -t != 0 );/*函數(shù):SysInit()功能:系統(tǒng)初始化*/void SysInit()TMOD &= 0xF0;TMOD |= 0x01;/設(shè)置定時器T0為16位定時器DispInit();I2C_Init();/數(shù)碼管掃描顯示初始化PwmValue = PWM_MAX / 2;/設(shè)置PWM初值PWM = 1;/PWM管腳為高/*函數(shù):LM75A_GetTemp功能:讀出LM75A的溫度值返回:LM75A溫度寄存器的數(shù)值(乘以0.125可
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年臨時倉儲設(shè)施租賃及管理服務(wù)合同
- 標準新工程設(shè)計合同樣本
- 2024年多人合伙共盈合同書范本
- 2024年度智能倉庫設(shè)備安裝合同
- 代銷協(xié)議書范例2024
- 全面房屋裝修合同模板集成
- 出口業(yè)務(wù)代理協(xié)議范本
- 2024物流合同范本
- 常見勞務(wù)派遣委托協(xié)議樣本
- 廣州建設(shè)工程裝修施工合同范例
- 雅魯藏布江大拐彎巨型水電站規(guī)劃方案
- 廣西基本醫(yī)療保險門診特殊慢性病申報表
- 城市經(jīng)濟學習題與答案
- 國開成本會計第14章綜合練習試題及答案
- 幼兒園大班科學:《樹葉為什么會變黃》課件
- 1到50帶圈數(shù)字直接復制
- 鐵路工程施工組織設(shè)計(施工方案)編制分類
- 幼兒園中班數(shù)學《有趣的圖形》課件
- 《規(guī)劃每一天》教案2021
- 草莓創(chuàng)意主題實用框架模板ppt
- 山大口腔頜面外科學課件第5章 口腔種植外科-1概論、口腔種植的生物學基礎(chǔ)
評論
0/150
提交評論