2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第13章 單片機的課程設計(綜合應用實例) 13.1 紅外接收器件TL1838 近年來隨著計算機在社會各領域的滲透,單片機的應用正在不斷地走向深入,同時也帶動傳統(tǒng)的控制、檢測等工作日益更新。傳統(tǒng)的遙控器大多采用無線電遙控技術,隨著科技的進步,紅外線遙控技術的進一步成熟,紅外遙控也逐步成為了一種被廣泛應故不同房間的家用電器可使用通用的遙控器而不會產生相互干擾;電用的通信和遙控手段。為了方便實用,傳統(tǒng)的家庭電器逐漸采用紅外線

2、遙控。工業(yè)設備中,在高壓、輻射、有毒氣體、粉塵等有害環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。  紅外遙控的特點是不影響周邊環(huán)境、不干擾其它電器設備。由于其無法穿透墻壁,路調試簡單,只要按給定電路連接無誤,一般不需任何調試即可投入工作;編解碼容易,可進行多路遙控。紅外遙控雖然被廣泛應用,但各產商的遙控器不能相互兼容。當今市場上的紅外線遙控裝置一般采用專用的遙控編碼及解碼集成電路,但編程靈活性較低,且產品多相互綁定,不

3、能復用,故應用范圍有限。而本文采用單片機進行遙控系統(tǒng)的應用設計,遙控裝置將同時具有編程靈活、控制范圍廣、體積小、功耗低、功能強、成本低、可靠性高等特點,因此采用單片機的紅外遙控技術具有廣闊的發(fā)展前景。,13.1.1 概述 1. 基于單片機的紅外遙控系統(tǒng)概述 當今社會科學技術的發(fā)展與日俱增,人們生活水平也是日益提高,為了減少人們的工作量,所以對各種家用電器、電子器件的非人工控制的要求越來越高,針對這種情況,設計出一種集成度

4、比較高的控制體系是必然的?,F(xiàn)代科技的飛速發(fā)展在許多危險、不可近場合也對遠程控制提出了越來越高的要求。單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機的集成度

5、很高,它體積小、功耗低、控制功能強、擴展靈活、微型化、使用方便等突出特點,尤其耗電少,又可使供電電源體積小、質量輕。所以特別適用于“電腦型產品”,它的應用已深入到工業(yè)、農業(yè)、國防、科研、教育以及日常生活用品(家電、玩具)等各種領域,幾乎很難找到哪個領域沒有單片機的蹤跡。單片機特別適合把它做到產品的內部,取代部分老式機械、電子零件或元器件??墒巩a品縮小體積,增強功能,實現(xiàn)不同程度的智能化。,紅外線是一種光線,具有普通光的性質,可以以光速直

6、線傳播,強度可調,可以通過光學透鏡聚焦,可以被不透明物體遮擋等等。特別制造的半導體發(fā)光二極管,可以發(fā)出特定波長(通常是近紅外)的紅外線,通過控制二極管的電流可以很方便的改變紅外線的強度,以達到調制的目的,因此,在現(xiàn)代電子工程應用中,紅外線常常被用做近距離視線范圍內的通訊載波。使用紅外線做信號載波的優(yōu)點很多:成本低、傳播范圍和方向可以控制、不產生電磁輻射干擾,也不受干擾等等。因此被廣泛地應用在各種技術領域中。由于紅外線為不可見光,因此對環(huán)

7、境影響很小,再由紅外光波長遠小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影響臨近的無線電設備。最典型的應用就是家電遙控器。紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設計家用電器的紅外線遙控器時,不必要像無線電遙控器那樣,每套(發(fā)射器和接收器)要有不同的遙控頻率或編碼(否則,就會隔墻控制或干擾鄰居的家用電器)。同類產品的紅外線遙控器,也可以有相同的遙控頻率或編碼,而不會出現(xiàn)遙控信號“串門”的

8、情況。這對于大批量生產以及在家用電器上普及紅外線遙控提供了極大的方面。,本設計主要研究并設計一個基于單片機的紅外發(fā)射及接收系統(tǒng),實現(xiàn)對溫度控制的隔離控制??刂葡到y(tǒng)主要是由 MCS-51 系列單片機、集成紅外發(fā)射遙控器、紅外接收電路、LCD 顯示電路,溫度控制電路等部分組成,發(fā)射遙控信號經紅外接收處理傳送給單片機,單片機根據(jù)不同的信息碼控制溫度報警,并完成相應的狀態(tài)指示(如圖13-1)。,圖13-1 紅外線遙控系統(tǒng)框圖,2. 本設計方案思

9、路 本設計主控芯片采用目前比較通用的MCS-51系列單片機。此類單片機的運算能力強,軟件編程靈活,自由度大,市場上比較多見,價格便宜且技術比較成熟容易實現(xiàn)?!  〖t外傳輸利用載波對信號進行調制從而減少信號傳輸過程中的光波干擾,提高數(shù)據(jù)傳輸效率。由遙控器將鍵盤信息及系統(tǒng)識別碼等數(shù)據(jù)調制在紅外載波上經紅外發(fā)射頭發(fā)射出去。接收方由紅外一體化接收頭實現(xiàn)對接收信號的放大解調并還原為數(shù)據(jù)流,經由單片機解碼后對相關IO口進行操作。

10、3. 研發(fā)方向和技術關鍵 1) 合理設計硬件電路,使各模塊功能協(xié)調; 2) 紅外接收信號的脈沖波形; 3) 紅外接收信號的編解碼; 4) 單片機對IO口的操作; 4. 主要技術指標 1) 遙控最遠距離8到10m 2) 工作頻率為 38KHz,即紅外發(fā)射和接收的載頻為 38KHz; 4) 接收端可顯示受控狀態(tài)以及輸入控制數(shù)據(jù)。,13.1.2 總體設計 紅外遙控系統(tǒng)是集

11、中集光、電于一體的系統(tǒng)。其工作原理是用戶按鍵信號經單片機編碼處理后轉化為脈沖信號,經由紅外發(fā)射頭發(fā)送出去;接收端由紅外一體化接收頭實現(xiàn)對接收信號的放大解調并還原為數(shù)據(jù)流,經由單片機解碼后對相關IO口進行操作,從而完成整個遙控操作。整個系統(tǒng)主要是由51單片機基本電路、紅外接收電路、LCD 顯示電路,溫度控制電路等部分組成。系統(tǒng)硬件由以下幾部分組成:紅外數(shù)據(jù)發(fā)射遙控器。紅外數(shù)據(jù)接收則是采用 VS1838B 一體化紅外接收頭,內部集成紅外接

12、收、數(shù)據(jù)采集、解碼的功能,只要在接收端 INT0 檢測頭信號低電平的到來,就可完成對整個串行的信號進行分析得出當前控制指令的功能。然后根據(jù)所得的指令去操作相應的用電器件工作,如圖13-2所示。,,圖13-2 系統(tǒng)總體結構框圖,1. 紅外遙控發(fā)射部分 紅外遙控發(fā)射部分為常見的普通遙控器。 2. 紅外遙控接收部分   紅外遙控接收電路框圖見圖13-3。紅外接收端普遍采用價格便宜,性能可靠的一體化紅外接收頭(VS1838B ,

13、它接收紅外信號頻率為38KHz ,周期約26μs)。它能同時對信號進行放大、檢波、整形,得到TTL 電平的編碼信號。紅外接收頭收到信號后單片機立即產生中斷,開始接收紅外信號。接收到的信號經單片機解碼得到用戶遙控信息并轉至IO口執(zhí)行,同時單片機還完成對處于工作狀態(tài)的設備進行計數(shù)并顯示。,3. 紅外編碼標準 通過拆解遙控器知道這個用的編碼芯片是PT2221 通過查詢得知是NEC編碼標準: 此標準下的發(fā)射端所發(fā)射的一幀

14、碼含有一個引導碼、8位用戶碼、8位用戶反碼,8位鍵數(shù)據(jù)碼、8位鍵數(shù)據(jù)反碼。引導碼由一個9ms的高電平和4.5ms的低電平組成。當按下持續(xù)時間超過108ms時,則發(fā)送簡碼(簡碼由9ms高電平和2.25ms的低電平組成)來告之接收端是某一個按鍵一直按著,象電視的音量和頻道切換鍵都有此功能,簡碼與簡碼之間相隔是108ms?!?”和“0”的區(qū)分采用脈沖位置調制方式(PPM)。 1) 二進制信號的調制   二進制信號的調制仍由發(fā)送單片機

15、來完成,A是二進制信號的編碼波形,B 是頻率為38KHz (周期為26μs)的連續(xù)脈沖,C是經調制后的間斷脈沖串(相當于C=A×B),用于紅外發(fā)射二極管發(fā)送的波形。,2) 二進制信號的解調   二進制信號的解調由一體化紅外接收頭VS1838B來完成,它把接收到的紅外信號(圖13-4 中波形D)經內部處理并解調復原,在輸出腳輸出圖13-4中波形E,VS1838B 的解調可理解為:在輸入有脈沖串時,輸出端輸出低電平,否則輸出高電

16、平??芍苯优c單片機串行輸入口及外中斷相聯(lián),以實現(xiàn)隨時接收遙控信號并產生中斷,然后由單片機對編碼還原。 3) 二進制信號的解碼 二進制信號的解碼由接收單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,還原出發(fā)送端發(fā)送的數(shù)據(jù)。如圖13-4,把波形E解碼還原成原始二進制數(shù)據(jù)信息101。,圖13-4 紅外接收頭接收及輸出波形,13.1.3 硬件設計 1. 主控芯片AT89C51

17、 AT89C51是美國ATMEL公司生產的低功耗,高性能CMOS8位單片機,片內含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統(tǒng)及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統(tǒng)方法進行編程?!?2. 紅外發(fā)射紅外發(fā)送器大多是使用Ga、As等材料制成的紅外發(fā)射二極管,其能夠通過的LED電流越大,發(fā)射角度越小,產生的發(fā)射強度就

18、越大;發(fā)射強度越大,紅外傳輸距離就越遠,傳輸距離正比于發(fā)射強度的平方根。 通常,紅外遙控器將遙控信號(二進制脈沖碼)調制在40KHz(周期為26.3ms)的載波上,經緩沖放大后送至紅外發(fā)光二極管,產生紅外信號發(fā)射出去。在紅外數(shù)據(jù)發(fā)射過程中,由于發(fā)送信號時的最大平均電流需幾十mA(對應mW級發(fā)射功率),所以需要三極管放大后去驅動紅外光發(fā)射二極管(又稱電光二極管)。單片機通過軟件編程將調制好的脈沖信號從P3口第6腳(P3.5)

19、將數(shù)據(jù)輸出,3. 紅外遙控接收電路 本部分電路是該設計中硬件電路的重點部分,系統(tǒng)由紅外接收電路,單片機電路,設備驅動電路,狀態(tài)顯示電路組成。一體化紅外接收頭采用VS1838B,它負責對接收到的紅外遙控信號的解調。將調制在40kHz上的紅外脈沖信號解調后再輸入到AT89C51的INT0(P3.2)引腳,由單片機進行高電平與低電平寬度的測量。遙控信號的還原是通過P3.1輸入二進制脈沖碼的高電平與低電平及維持時間,當接收頭接收信號時

20、,單片機產生中斷,并在P3.1口對信號電平進行識別,并還原為原發(fā)送數(shù)據(jù),這在后面的軟件設計中會具體介紹到。數(shù)據(jù)流通過單片機處理后送驅動控制部分。并通過數(shù)碼管顯示用電設備的個數(shù),1) 紅外信號接收電路VS1838B是用于紅外遙控接收的小型一體化接收頭,它的主要功能包括放大,選頻,解調幾大部分,要求輸入信號需是已經被調制的信號。經過它的接收放大和解調會在輸出端直接輸出原始信號的反相信號。其不需要任何外接元件,就能完成從紅外線接收到輸出與T

21、TL電平信號兼容的所有工作,而體積和普通的塑封三極管大小一樣,從而使電路達到最簡化!靈敏度和抗干擾性都非常好。它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸,中心頻率38.0kHz。接收器對外只有3個引腳,如圖13-5所示,從左至右依次為OUT、GND、VCC。紅外接收頭電路圖如圖13-6所示,OUT腳(1號腳)與單片機IO口直接相連。,圖13-5 VS1838B引腳,紅外接收頭內部放大器的增益很大,很容易引起干擾,依次在接收頭的供電腳上必須加

22、上濾波電容。故紅外接收部分電路如圖13-6所示。,圖13-6 紅外接收頭電路,2) 控制部分電路 單片機收到紅外接收頭解調后的信號后,對其進行解碼,從中解出控制碼,此時系統(tǒng)將轉至對具體設備的控制工作?! 囟葯z測部分采用DS18B20數(shù)字溫度傳感器,DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應用

23、場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數(shù)字測溫和控制領域。 3) 顯示部分 紅外遙控系統(tǒng)接收到遙控碼并對相關設備操作后,單片機將對正在工作的設備進行計數(shù)并通過一個LCD12232顯示。,13.1.4 制作過程仿真調試電路如圖13-7所示。,

24、圖13-7 紅外仿真調試電路圖,實物制作樣品如圖13-8所示。,圖13-8 實物制作樣品圖,實物演示效果圖如圖13-9所示。,圖13-9 實物演示效果圖,溫度控制規(guī)則:當前實際溫度大于設定最高溫度,LED燈發(fā)出警告。當前實際溫度小于設定最少溫度,LED燈發(fā)出警告。由于目前的遙控裝置大多對某一設備進行單獨控制,而在本設計中的紅外遙控電路設計了多個控制按鍵,可以對不同的設備,也可以對同一設備的多個功能進行控制。系統(tǒng)可通過設定發(fā)射及接收

25、程序中的識別碼及識別反碼達到不同遙控器間相互區(qū)分,對識別碼、識別反碼、控制碼和控制碼反碼的判定一方面消除了非遙控信號的紅外干擾,另一方面降低了誤操作發(fā)生的幾率。經過測試,設計結果完全達到課題任務要求。 但是本電路也有不完善的地方, 由于時間、水平和經驗有限,在信號解碼、抗干擾及功耗控制等方面仍有不足之處,有改進的余地。例如設計中可通過增加紅外線發(fā)射功率進而增加遙控距離,改進信號編碼方式以提高數(shù)據(jù)的傳輸速度,使用小型單片機以降低功

26、耗等。另外在系統(tǒng)的調試方面,由于時間和設備的原因,只進行了短距離的調試,更多參數(shù)有待進一步的調試。在設計過程中,通過大量的查閱資料,認真研究教材,對單片機有了更為深刻的理解,在編寫軟件時,須仔細的分析硬件電路及所要達到的功能,然后設計程序流程,編寫代碼。整個過程培養(yǎng)了我的耐性和刻苦鉆研的精神。,這次設計對于我們組來說,既是一次機遇,又是一次挑戰(zhàn)。通過這次的設計,我學到了很多東西。通過自己的實踐,增強了動手能力,掌握了系統(tǒng)的分析解決問題的

27、方法。通過實際工程設計也使我了解到書本知識和實際應用的差別。在實際應用中遇到很多的問題,這都需要我對問題進行具體的分析,并一步一步地去解決它。,13.1.5 源程序代碼#include#include#include "18b20.h"#define uchar unsigned char#define uint unsigned int uchar m,k1,k2; uchar c,c1

28、,c2,c3,t1,t2,t3,b;uint temp; uint temp_h=350,temp_l=250;void delay(uchar x); //x*0.14MSvoid display(uchar *tab1,uchar *tab2);void IR_IN();,/**************** IO口定義 ***************************/sbit IRIN = P3^2;

29、 //紅外接收器數(shù)據(jù)線sbit LCD_RS = P1^0; sbit LCD_RW = P1^1;sbit LCD_EN = P1^2;sbit led=P1^3;//1602數(shù)據(jù)口接P0uchar IRCOM[7];uchar cdis1[ ] = {"當前溫度:--.-"};uchar cdis2[ ] = {"當前編碼:--"};ucha

30、r cdis21[ ] = {"最高報警溫度"};uchar cdis22[ ] = {"35.0 新:--.-"};uchar cdis31[ ] = {"最低報警溫度"};uchar cdis32[ ] = {"25.0 新:--.-"};/***************************************************

31、****************/,/* *//*寫指令數(shù)據(jù)到LCD *//*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 *//*

32、 *//*******************************************************************/void lcd_wcmd(uchar cmd){ LCD_RS = 0; LCD_RW = 0;

33、 LCD_EN = 0; P0 = cmd; LCD_EN = 1; delay(50); LCD_EN = 0; delay(50); }/*******************************************************************/,/*

34、 *//*寫顯示數(shù)據(jù)到LCD *//*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 *//* *//***********

35、********************************************************/void lcd_wdat(uchar dat){ LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; LCD_EN = 1; delay(50); LCD_EN = 0;

36、 delay(50);}/*******************************************************************/,/* *//* LCD初始化設定 */

37、/* *//*******************************************************************/void lcd_init(){ lcd_wcmd(0x30); //16*2顯示,5*7點陣,8位數(shù)據(jù)

38、 lcd_wcmd(0x0c); //顯示開,關光標 lcd_wcmd(0x06); //移動光標 lcd_wcmd(0x01); //清除LCD的顯示內容}/*******************************************************************//*

39、 *//* 顯示函數(shù) *//* *//**************************************************************

40、*****/,void display(uchar *tab1,uchar *tab2){ lcd_wcmd(0x80); //設置顯示位置為第一行的第1個字符 m = 0; while(tab1[m] != '\0') { //顯示字符 lcd_wdat(tab1[m]);

41、m++; } lcd_wcmd(0x90); //設置顯示位置為第二行第1個字符 m = 0; while(tab2[m] != '\0') { lcd_wdat(tab2[m]); //顯示字符 m++; }},/********************延時函數(shù)*********************

42、*****************/void delay(unsigned char x) //x*0.14MS{ uchar i; while(x--) { for (i = 0; i=temp_h||temp<=temp_l)led=0;else led=1;//else if(temp<=tem_tl)// 默認45度,繼電器動作

43、,等到溫度降到35,繼電器恢復 // led=1;},/******************紅外數(shù)據(jù)接收和處理****************************************/void IR_IN() interrupt 0 using 0{ unsigned char j,k,N=0; EX0 = 0; delay(15); if (IRIN==1) {

44、EX0 =1; return; } //確認IR信號出現(xiàn) while (!IRIN) //等IR變?yōu)楦唠娖剑^9ms的前導低電平 信號。 {delay(1);},for (j=0;j=30) { EX0=1; return;}

45、 //0.14ms計數(shù)過長自動離開。 } //高電平計數(shù)完畢,IRCOM[j]=IRCOM[j] >> 1; //數(shù)據(jù)最高位補“0” if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補“1” N=0; }//end for k }//end for j

46、 if (IRCOM[2]!=~IRCOM[3]) { EX0=1; return; } IRCOM[5]=IRCOM[2] & 0x0F; //取鍵碼的低四位 IRCOM[6]=IRCOM[2] >> 4; //右移4次,高四位變?yōu)榈退奈?if(IRCOM[5]>9) { IRCOM[5]=IRCOM[5]+0x37;} els

47、e IRCOM[5]=IRCOM[5]+0x30;,if(IRCOM[6]>9) { IRCOM[6]=IRCOM[6]+0x37;} else IRCOM[6]=IRCOM[6]+0x30;/**************** (顯示編碼之后,測試譯碼,將編碼轉變成功能鍵) ***************************/ if(IRCOM[5]=='C' &&

48、amp; IRCOM[6]=='0') //遙控器中的0按鍵的編碼是0x0C,當接收的編碼是0x0c時顯示1 { c=1;b++;if(b==4)b=0; },if(IRCOM[6]=='5' && IRCOM[5]=='E') { c=3;b++;if(b==4)b=0; }

49、 if(IRCOM[6]=='0' && IRCOM[5]=='8') { c=4;b++;if(b==4)b=0; },if(IRCOM[6]=='1' && IRCOM[5]=='C') { c=5;b++;if(b==4)b=0; }

50、 if(IRCOM[6]=='5' && IRCOM[5]=='A') { c=6;b++;if(b==4)b=0; },if(IRCOM[6]=='4' && IRCOM[5]=='2') { c=7;b++;if(b==4)b=0; }

51、 if(IRCOM[6]=='5' && IRCOM[5]=='2') { c=8;b++;if(b==4)b=0; },if(IRCOM[6]=='4' && IRCOM[5]=='A') { c=9;b++;if(b==4)b=0; }

52、if(IRCOM[6]=='1' && IRCOM[5]=='6') { c=0;b++;if(b==4)b=0; }///////////////////////////////////////////////////////////////,if(IRCOM[6]=='0' && IRCOM[5]=='

53、;7') { k1++;k2=0; } if(IRCOM[6]=='1' && IRCOM[5]=='5') { k2++;k1=0; } if(IRCOM[6]=='0' && IRCOM[5]=='9') { k2=

54、0;k1=0; }///////////////////////////////////////////////////////////////,/**************** 測試譯碼end ***************************/ cdis2[10]=IRCOM[5]; cdis2[9]=IRCOM[6]; if(k1>0 && k2==0){

55、 if(b==1){t1=c;cdis22[9]=c+0x30;} if(b==2){t2=c;cdis22[10]=c+0x30;} if(b==3){t3=c;cdis22[12]=c+0x30;temp_h

56、=t3+t2*10+t1*100;b=0;} },if(k2>0 && k1==0){ if(b==1){t1=c;cdis32[9]=c+0x30;} if(b==2){t

57、2=c;cdis32[10]=c+0x30;} if(b==3){t3=c;cdis32[12]=c+0x30;temp_l=t3+t2*10+t1*100;b=0;} } EX0 = 1; },/************************************

58、*******************************/main(){ IRIN=1; //I/O口初始化 lcd_init(); //初始化LCD IE = 0x81; //允許總中斷中斷,使能 INT0 外部中斷TCON = 0x01; //觸發(fā)方式為

59、脈沖負邊沿觸發(fā) while(1) { ///////////////////////////////////////////////////////////////if(k1>0){b=0;lcd_wcmd(0x01); //清除LCD的顯示內容,cdis22[0]=temp_h/100+0x30; //顯示十位cdis22[1]=temp_h/10%1

60、0+0x30; //顯示個位cdis22[3]=temp_h%10+0x30; //顯示0.1cdis22[9]='-';cdis22[10]='-';cdis22[12]='-'; while(1) { display(cdis21,cdis22);if(k1==0)break;warr();

61、 }},if(k2>0){b=0;lcd_wcmd(0x01); //清除LCD的顯示內容cdis32[0]=temp_l/100+0x30; //顯示十位cdis32[1]=temp_l/10%10+0x30; //顯示個位cdis32[3]=temp_l%10+0x30; //顯示0.1cdis32[9]='-';cdis32

62、[10]='-';cdis32[12]='-'; while(1) { display(cdis31,cdis32);if(k2==0)break;warr(); }},if(k2==0 && k1==0){lcd_wcmd(0x01); //清除LCD的顯示

63、內容while(1){temp=ReadTemperature(); //讀溫度cdis1[9]=temp%1000/100+0x30; //顯示十位cdis1[10]=temp%100/10+0x30; //顯示個位cdis1[12]=temp%10+0x30; //顯示0.1display(cdis1,cdis2);if(k2!=0 || k1!=0)break;war

64、r();} } }} //end main,#include "18b20.h"#define uchar unsigned char #define uint unsigned intsbit DATA = P1^4; //DS18B20接入口/*****************************延時子函數(shù)***************************

65、******/void Ddelay(uint num){while(num--) ;}/*****************************************************************************/,/***************************DS18b20設置********************************/Init_DS18B20()

66、 //傳感器初始化{ uchar x=0; DATA = 1; //DQ復位 Ddelay(10); //稍做延時 DATA = 0; //單片機將DQ拉低 Ddelay(80); //精確延時 大于 480us //450 DATA = 1; //拉高總線 Ddelay(20); x=DATA; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 Dde

67、lay(30);},//讀一個字節(jié)ReadOneChar(){uchar i=0;uchar dat = 0;for (i=8;i>0;i--) { DATA = 0; // 給脈沖信號 dat>>=1; DATA = 1; // 給脈沖信號 if(DATA) dat|=0x80; Ddelay(8); } return(dat);},/

68、/寫一個字節(jié)WriteOneChar(unsigned char dat){ uchar i=0; for (i=8; i>0; i--) { DATA = 0; DATA = dat&0x01; Ddelay(10); DATA = 1; dat>>=1; }Ddelay(8);},//讀取溫度int ReadTemperature(){uc

69、har a=0;uchar b=0;int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳過讀序號列號的操作WriteOneChar(0x44); // 啟動溫度轉換Init_DS18B20();WriteOneChar(0xCC); //跳過讀序號列號的操作WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器)前

70、兩個就是溫度a=ReadOneChar();//低位b=ReadOneChar();//高位t=b;t<<=8;t=t|a;t=t*0.625; return(t);}/************************************************************/,13.2 超聲波測距 隨著我國經濟與社會的發(fā)展,交通安全日益成為人們不能忽視的問題。由于

71、人口的大幅增長,機動車輛的大量增加,使得路況越來越復雜,車輛和行人所面臨的危機也越來越大。根據(jù)中國汽車協(xié)會發(fā)布的數(shù)據(jù),隨著中國經濟的高速發(fā)展和居民生活水平的不斷提高,居民擁有汽車的數(shù)量已經有爆炸性上漲的趨勢。隨著汽車保有量的迅速增加以及城市市區(qū)的密集化, 目前公路上、停車場上的汽車越來越多, 交通也越來越擁擠,使得出現(xiàn)越來越多的交通事故,嚴重威脅著人民群眾的生命和財產安全。 由于道路空間的有限性,駕車穿行、拐彎、倒車等總次數(shù)不斷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論