版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于單片機(jī)的多路遙控系統(tǒng)的設(shè)計(jì)摘要:隨著社會(huì)的發(fā)展、科技的進(jìn)步以及人們生活水平的逐步提高,各種方便于生活的遙控系統(tǒng)開(kāi)始進(jìn)入了人們的生活。本文介紹了一種基于單片機(jī)STC89C52最小系統(tǒng)的多路遙控系統(tǒng)。當(dāng)按鍵時(shí),發(fā)射模塊的單片機(jī)根據(jù)鍵號(hào)進(jìn)行軟件編碼,由紅外發(fā)射二極管發(fā)射;接收器HS0038接收,由接收模塊的單片機(jī)在其內(nèi)部進(jìn)行狀態(tài)解碼,從而實(shí)現(xiàn)不同的功能。該論文重點(diǎn)描述了單片機(jī)紅外遙控器的設(shè)計(jì)思想及軟硬件電路的工作原理、設(shè)計(jì)過(guò)程,并敘述了調(diào)試過(guò)程以及調(diào)試中所出現(xiàn)的問(wèn)題,最后給出詳細(xì)的測(cè)試數(shù)據(jù)并且進(jìn)行了分析。關(guān)鍵詞:?jiǎn)纹瑱C(jī);紅外遙控;編碼;解碼TheDesignofMultiRemoteControlSystemontheBasisofsingleChipAbstract:Withthesocialandscientificdevelopmentandimprovementofpeople’slivingstandard,variousremotecontrolsystemsfortheconvenienceofourlifecomeintobeing.ThispaperintroducesaminimaltypeofmultiremotecontrolsystembasedonthesinglechipSTC89C52.Whenpressingthebutton,thesinglechipoftransmittingmoduleencodessoftwareaccordingtokeynumber,andbywayofthetransmissionofinfrareddiodethereceiverHS0038takesthesignal.Thesinglechipofreceivermodulecarriestheinternaldecodingprocesssoastorealizedifferentfunctions.Thispaperfocusesonthedescriptionofthedesignandpricipleofinfraredremotecontrolofsinglechip,andaccountsforthesystemdebugginganditsproblemsrelated.Finallythedetailedtestingdataandtheiranalysisareprovided.Keywords:SingleChip;InfraredRemoteControl;Encoding;Decoding目錄TOC前言 1第一章設(shè)計(jì)任務(wù) 21.1設(shè)計(jì)的內(nèi)容與功能 21.2技術(shù)指標(biāo) 2第二章總體設(shè)計(jì)方案 32.1設(shè)計(jì)方案的論證 32.1.1紅外遙控發(fā)射電路的方案論證 32.1.2紅外遙控接收電路的方案論證 32.1.3單片機(jī)的選擇 42.1.4顯示器件選擇 42.2紅外遙控系統(tǒng)電路的原理框圖以及各部分作用 42.2.1紅外發(fā)射部分原理框圖以及各部分作用 42.2.2紅外接收部分原理框圖以及各部分作用 5第三章系統(tǒng)硬件電路的設(shè)計(jì) 73.1單片機(jī)遙控接收部分的硬件電路 73.1.1電源電路 73.1.2紅外接收部分電路 83.1.3顯示電路 93.1.4控制電路 93.1.5單片機(jī)STC89C52的最小系統(tǒng)的連接電路 103.2單片機(jī)遙控發(fā)射部分的硬件電路 11第四章遙控發(fā)射及接收控制電路的軟件設(shè)計(jì) 134.1軟件設(shè)計(jì)流程圖 134.1.1遙控發(fā)射主程序流程圖 134.1.2鍵掃描程序流程圖 144.1.3遙控碼發(fā)射程序流程圖 164.1.4遙控接收器主程序流程圖 194.1.5中斷程序流程圖 23第五章系統(tǒng)調(diào)試 265.1本設(shè)計(jì)常用的調(diào)試儀器 265.2調(diào)試步驟: 265.2.1調(diào)試前不加電源的檢查 265.2.2靜態(tài)檢測(cè)與調(diào)試 265.2.3動(dòng)態(tài)檢測(cè)與調(diào)試 275.2.4調(diào)試過(guò)程中所遇到的問(wèn)題及解決方法 275.2.5調(diào)試注意事項(xiàng) 28第六章測(cè)試結(jié)果與分析 296.1測(cè)試結(jié)果 296.2問(wèn)題分析 29參考文獻(xiàn) 31致謝 32附錄 33附錄一發(fā)送接收電路原理圖 33附錄二程序清單 34附錄三元器件清單 43附錄四英文資料 44前言無(wú)線遙控是指利用無(wú)線電波、紅外線、超聲波等作為載體,不用導(dǎo)線,而在空間傳輸,實(shí)現(xiàn)對(duì)被控目標(biāo)的控制。實(shí)現(xiàn)對(duì)以家用電器為代表的中小型電器的遙控方法,主要有無(wú)線電遙控和紅外線遙控[1]。紅外線遙控與無(wú)線電遙控相比:紅外光波的波長(zhǎng)遠(yuǎn)小于無(wú)線電波的波長(zhǎng),因此紅外線遙控信號(hào)不會(huì)影響其它家用電器,也不會(huì)影響到鄰近的無(wú)線電設(shè)備;另外,紅外線遙控不具有無(wú)線電遙控那樣穿透障礙物去控制被控對(duì)象的能力,在設(shè)計(jì)家用電器的紅外線遙控器時(shí),不必要像無(wú)線電遙控那樣,每套發(fā)射器和接收器要有不同的遙控頻率或編碼,否則,就會(huì)隔墻控制或干擾鄰居的家用電器,所有同類產(chǎn)品的紅外線遙控器,可以有相同的遙控頻率或編碼,而不會(huì)出現(xiàn)遙控信號(hào)“串門(mén)”的情況,這對(duì)于大批量生產(chǎn)以及在家用電器上普及紅外線遙控提供了極大的方便;此外,紅外線為不可見(jiàn)光,對(duì)環(huán)境影響很小,同時(shí)又具有很強(qiáng)的隱蔽性和保密性[2]。由此可見(jiàn),紅外線遙控具有結(jié)構(gòu)簡(jiǎn)單、制作方便、成本低廉、抗干擾能力強(qiáng)、工作可靠性高等一系列優(yōu)點(diǎn),是近距離遙控優(yōu)選方式,并因此而廣泛應(yīng)用在各類電器上[3]。但目前市場(chǎng)上一般設(shè)備系統(tǒng)均采用專用的遙控編碼及解碼集成電路,具有制作簡(jiǎn)單等特點(diǎn),由于這些芯片價(jià)格較貴,功能鍵數(shù)及功能受到特定的限制,且相互之間采用的遙控編碼格式互不兼容,所以各機(jī)型的遙控器通常只能針對(duì)各自的遙控對(duì)象而無(wú)法通用,只適用于某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。而采用單片機(jī)進(jìn)行遙控系統(tǒng)的設(shè)計(jì),具有硬件接口簡(jiǎn)單方便,編程靈活多樣,操作碼個(gè)數(shù)可隨意設(shè)定等優(yōu)點(diǎn)。本文介紹了一種基于STC89C52單片機(jī)的紅外遙控系統(tǒng)的設(shè)計(jì)和制作過(guò)程。該系統(tǒng)利用紅外發(fā)送,單片機(jī)軟件編碼,把狀態(tài)發(fā)送給接收部分的單片機(jī),接收的單片機(jī)在內(nèi)部進(jìn)行狀態(tài)解碼,從而實(shí)現(xiàn)一個(gè)遙控器控制多種電器設(shè)備的功能。第一章設(shè)計(jì)任務(wù)1.1設(shè)計(jì)的內(nèi)容與功能設(shè)計(jì)內(nèi)容:用單片機(jī)作為控制芯片制作一個(gè)遙控器,另一個(gè)單片機(jī)控制系統(tǒng)能被遙控操作。本設(shè)計(jì)用單片機(jī)制作7路電器遙控器,可以分別控制7個(gè)電器的電源開(kāi)關(guān)。該遙控采用脈沖個(gè)數(shù)編碼,4*4鍵盤(pán)開(kāi)關(guān)。并特別擴(kuò)展了對(duì)一個(gè)電機(jī)的正反轉(zhuǎn)的控制。具體功能如下:當(dāng)按下鍵1時(shí),發(fā)光二極管LED1亮,數(shù)碼管顯示數(shù)字1;當(dāng)按下鍵2時(shí),發(fā)光二極管LED2亮,數(shù)碼管顯示數(shù)字2;當(dāng)按下鍵3時(shí),發(fā)光二極管LED3亮,數(shù)碼管顯示數(shù)字3;當(dāng)按下鍵4時(shí),發(fā)光二極管LED4亮,數(shù)碼管顯示數(shù)字4;當(dāng)按下鍵5時(shí),發(fā)光二極管LED5亮,數(shù)碼管顯示數(shù)字5;當(dāng)按下鍵6時(shí),發(fā)光二極管LED6亮,數(shù)碼管顯示數(shù)字6;當(dāng)按下鍵7時(shí),發(fā)光二極管LED7亮,數(shù)碼管顯示數(shù)字7;當(dāng)按下鍵8時(shí),電機(jī)正轉(zhuǎn),數(shù)碼管顯示數(shù)字8;當(dāng)按下鍵9時(shí),電機(jī)反轉(zhuǎn),數(shù)碼管顯示數(shù)字9;當(dāng)按下鍵10時(shí),發(fā)光二極管LED1-LED7依次亮,數(shù)碼管顯示數(shù)字A;當(dāng)按下鍵11時(shí),發(fā)光二極管LED7-LED1依次亮,數(shù)碼管顯示數(shù)字b;當(dāng)按下鍵12時(shí),發(fā)光二極管LED1-LED7依次漸亮,數(shù)碼管顯示數(shù)字c;當(dāng)按下鍵13時(shí),發(fā)光二極管LED7-LED1依次漸亮,數(shù)碼管顯示數(shù)字d;當(dāng)按下鍵14時(shí),發(fā)光二極管全亮,數(shù)碼管顯示數(shù)字e;當(dāng)按下鍵15時(shí),發(fā)光二極管全亮,數(shù)碼管顯示數(shù)字f;1.2技術(shù)指標(biāo)(1)最大遙控距離:5M(2)發(fā)射接收角:水平最大90度(3)遙控器發(fā)射時(shí)工作電流:20mA第二章總體設(shè)計(jì)方案2.1設(shè)計(jì)方案的論證由于是遙控系統(tǒng),所以分遙控發(fā)射和遙控接收兩大部分。2.1.1紅外遙控發(fā)射電路的方案論證方案一:指令信號(hào)產(chǎn)生電路以不同的脈沖編碼(不同的脈沖數(shù)目及組合)代表不同的控制指令。當(dāng)不同的指令鍵被按下時(shí),指令信號(hào)電路產(chǎn)生不同脈沖編碼的指令信號(hào),也就是進(jìn)行編碼,然后經(jīng)調(diào)制電路調(diào)制,變?yōu)榫幋a脈沖調(diào)制信號(hào),再由驅(qū)動(dòng)電路驅(qū)動(dòng)紅外發(fā)射器發(fā)射紅外信號(hào)[4]。整體過(guò)程如下:驅(qū)動(dòng)紅外發(fā)射調(diào)制指令編碼指令鍵驅(qū)動(dòng)紅外發(fā)射調(diào)制指令編碼指令鍵圖2-1遙控發(fā)射器遙控過(guò)程方案二:采用指令鍵產(chǎn)生電路產(chǎn)生不同的控制指令,單片機(jī)進(jìn)行狀態(tài)的編碼,直接由單片機(jī)的口輸出方波信號(hào)控制紅外發(fā)射管進(jìn)行發(fā)射。紅外發(fā)射管采用普通的紅外發(fā)射二極管[5]。由于我們現(xiàn)在所掌握專業(yè)知識(shí)的限制,調(diào)制電路功能不易實(shí)現(xiàn),通過(guò)比較,選用方案二。2.1.2紅外遙控接收電路的方案論證方案一:紅外接收裝置把接收過(guò)來(lái)的信號(hào)進(jìn)行前置放大,通過(guò)解調(diào)電路,指令解碼電路,記憶驅(qū)動(dòng)電路實(shí)現(xiàn)對(duì)所控制狀態(tài)的解碼,然后執(zhí)行(實(shí)現(xiàn)控制功能)。原理框圖[7]如圖2-2所示。紅外接收紅外接收前置放大解調(diào)指令解碼記憶驅(qū)動(dòng)執(zhí)行圖2-2紅外遙控接收器的接收過(guò)程框圖方案二:遙控系統(tǒng)采用紅外線脈沖個(gè)數(shù)編碼,直接利用單片機(jī)軟件解碼,實(shí)現(xiàn)功能的遙控[8]。綜合以上兩種方案分析,方案一比較復(fù)雜,相應(yīng)的硬件電路難以實(shí)現(xiàn)其要求,所用到的芯片也比較昂貴,而方案二直接利用單片機(jī)就可以達(dá)到接收功能,減少了電路的復(fù)雜程度,也比較符合我們現(xiàn)在的知識(shí)程度,信價(jià)比較高,故采用方案二。2.1.3單片機(jī)的選擇本設(shè)計(jì)所用的單片機(jī)可以用C-31,STC89C-52,羚羊單片機(jī)等多種單片機(jī)來(lái)實(shí)現(xiàn)??紤]本設(shè)計(jì)的要求,需要編寫(xiě)程序,但是C-31沒(méi)有內(nèi)部存儲(chǔ)器,那么就要用外部擴(kuò)展,比較麻煩[9]。本設(shè)計(jì)所編寫(xiě)的程序比較簡(jiǎn)單,功能也比較少,如果用羚羊單片機(jī)就過(guò)于麻煩,大材小用,本設(shè)計(jì)所用到的輸入輸出端口也不是很多,所以我們決定用STC89C-52單片機(jī)來(lái)完成本設(shè)計(jì),既方便也很實(shí)用[10]。2.1.4顯示器件選擇在單片機(jī)應(yīng)用系統(tǒng)中,使用的顯示器主要有LED(發(fā)光二極管)以及LCD(液晶顯示器)[11]。這兩種顯示器成本低廉,配置靈活,與單片機(jī)接口方便。但是他們也是各有特點(diǎn)的:LED接口非常簡(jiǎn)單,不需要專用的驅(qū)動(dòng)程序,在設(shè)計(jì)程序時(shí)也非常的簡(jiǎn)單[12];LCD顯示的字比較豐富,也比較清楚,給人的感覺(jué)很好,但是它接口復(fù)雜,且要自己造字庫(kù),難度不小。故沒(méi)必要采用LCD,用LED發(fā)光二極管就夠了。2.2紅外遙控系統(tǒng)電路的原理框圖以及各部分作用2.2.1紅外發(fā)射部分原理框圖以及各部分作用紅外發(fā)射部分原理框圖如圖2-3所示。圖2-3紅外遙控發(fā)射原理框圖各部分作用:(1)行列式鍵盤(pán)行列式鍵盤(pán)又稱為矩陣式鍵盤(pán),用I/O線組成行列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上,行列式分別連接到按鍵開(kāi)關(guān)的兩端。鍵盤(pán)中有無(wú)按鍵按下是由行線送入掃描字及列線讀入列線狀態(tài)字來(lái)判斷的,有鍵按下時(shí)通過(guò)查鍵并執(zhí)行鍵功能程序。(2)紅外線發(fā)射電路遙控器信息碼由單片機(jī)的定時(shí)器1中斷產(chǎn)生40KHZ紅外線方波信號(hào)。由P3.5口輸出,經(jīng)過(guò)三極管放大,由紅外線發(fā)射管發(fā)送。(3)單片機(jī)單片機(jī)用于輸出方波信號(hào)控制紅外發(fā)射電路的工作。2.2.2紅外接收部分原理框圖以及各部分作用紅外接收部分原理框圖如圖2-4所示。圖2-4單片機(jī)紅外接收部分原理框圖各部分作用:(1)+5V電源電路給單片機(jī)最小系統(tǒng)、控制電路提供以及紅外接收電路提供電壓。(2)紅外接收電路紅外接收電路把接收到的狀態(tài)在內(nèi)部進(jìn)行解碼,從而實(shí)現(xiàn)不同的功能。(3)控制電路通過(guò)發(fā)射電路的按鍵實(shí)現(xiàn)對(duì)控制電路的控制作用。第三章系統(tǒng)硬件電路的設(shè)計(jì)3.1單片機(jī)遙控接收部分的硬件電路圖3-1遙控接收部分硬件電路3.1.1電源電路由橋式整流、濾波電容、7805穩(wěn)壓器以及電源指示燈組成。選用220V10W的電源變壓器把220V50HZ的市網(wǎng)電壓變成9V50HZ的電壓。電源電路如圖3-2所示。其中:(1)電源變壓器選用220V10W的電源變壓器(2)橋式整流:選用4個(gè)IN4007的鍺整流二極管構(gòu)成,額定正向工作電流為1A,I反向耐壓為1000V(3)電容濾波C1:選用容量為2200uf,耐壓為25V的電容實(shí)現(xiàn)濾波(4)電容C2:選用容量為1000uf,耐壓為16V的電容(5)電源指示燈:選用紅色的發(fā)光二極管,發(fā)光二極管的壓降為1.5V,其工作電流一般取10mA,圖中電阻R1為限流電阻圖3-2電源電路3.1.2紅外接收部分電路本設(shè)計(jì)的接收電路使用一體化的集成紅外接收器成品,一體化的紅外接收裝置將紅外信號(hào)的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機(jī)識(shí)別的TTL信號(hào),這樣大大簡(jiǎn)化了接收電路的復(fù)雜程度和電路的設(shè)計(jì)工作,方便使用。在本系統(tǒng)中采用的紅外一體化接收頭HS0038,外接電阻與電容。該接收器對(duì)外只有三個(gè)引腳,分別為電源VCC,地GND和一個(gè)脈沖信號(hào)輸出OUT,脈沖信號(hào)輸出接CPU的中斷輸入引腳,采用這種連接方式,軟件解碼既可以工作于查詢方式,也可以工作在中斷方式。單片機(jī)STC89C52根據(jù)不同的信息碼可以對(duì)相應(yīng)的端口進(jìn)行控制操作[12]。紅外接收電路如圖3-3所示。圖3-3遙控接收部分硬件電路3.1.3顯示電路利用7段共陰數(shù)碼管進(jìn)行顯示,數(shù)碼管與P0口的P0.0-P0.7相連,并接一個(gè)10K*8的排阻。數(shù)碼管用來(lái)顯示發(fā)射電路中的按鍵號(hào)。電路如圖3-4所示。圖3-4數(shù)碼管電路3.1.4控制電路控制電路由電機(jī)的正反轉(zhuǎn)和7個(gè)LED發(fā)光二極管電路組成。電機(jī)的正反轉(zhuǎn)電路:電機(jī)的兩個(gè)端分別與兩個(gè)繼電器的常閉端相連,繼電器的常開(kāi)端接地。一個(gè)繼電器的電源端經(jīng)過(guò)驅(qū)動(dòng)三極管9012,電阻接到P1.0口。另一個(gè)繼電器的電源端經(jīng)過(guò)驅(qū)動(dòng)三極管9012,電阻接到P1.1口。7個(gè)LED發(fā)光二極管電路:陽(yáng)極分別于+5V電源相連,陰極分別接到P2.1-P2.2口。圖3-5控制電路3.1.5單片機(jī)STC89C52的最小系統(tǒng)的連接電路最小系統(tǒng)包括單片機(jī)的基本供電、時(shí)鐘電路和復(fù)位電路。單片機(jī)由橋式整流穩(wěn)壓電源電路供電。時(shí)鐘和時(shí)鐘電路:時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。STC89C52單片允許的時(shí)鐘頻率的典型值12MHZ,也可以是6MHZ。本設(shè)計(jì)采用12MHZ。單片機(jī)時(shí)鐘電路圖如圖3-6所示。圖3-6單片機(jī)時(shí)鐘電路圖3-6中晶振頻率選擇12MHZ。接到晶振兩端的瓷片電容作用是使振蕩器起振和對(duì)f微調(diào)補(bǔ)償,典型值為30PF。當(dāng)單片機(jī)加電以后延遲約10ms的時(shí)間振蕩器起振產(chǎn)生時(shí)鐘,不受軟件控制(XTAL2輸出幅度為3V左右的正弦波)。復(fù)位和復(fù)位電路:計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。單片機(jī)的復(fù)位引腳是RST,當(dāng)振蕩器起振后,該引腳上出現(xiàn)2個(gè)周期的高電平,是器件復(fù)位,只要RST保持高電平,單片機(jī)保持復(fù)位狀態(tài)。單片機(jī)復(fù)位方式有二種:上電復(fù)位(如圖3-7)、人工復(fù)位(如圖3-8)。本設(shè)計(jì)采用的是圖3-7上電復(fù)位,具體電路如圖3-9所示。圖3-7上電復(fù)位電路圖3-8人工復(fù)位注:RST與Vss之間的那個(gè)電阻在NMOS型單片機(jī)種需要接,但是在CMOS型單片機(jī)中不接。其中電容一般為10uF的電解電容。圖3-9復(fù)位和復(fù)位電路3.2單片機(jī)遙控發(fā)射部分的硬件電路單片機(jī)遙控發(fā)射部分的硬件電路如圖3-10所示。圖3-10單片機(jī)遙控發(fā)射部分的硬件電路本發(fā)射電路采用一個(gè)12M的晶體振蕩器,產(chǎn)生相對(duì)應(yīng)受控開(kāi)關(guān)的脈沖頻率,通過(guò)紅外發(fā)射管發(fā)射出去。P3.5接兩個(gè)9013三級(jí)管,發(fā)光二級(jí)管利用紅外光為介質(zhì),將控制信號(hào)以紅外光脈沖的形式發(fā)射出去。晶體三極管主要用于放大電路中起放大作用,為了得到更大的放大倍數(shù),采用了復(fù)合三極管的連接方法。因?yàn)閺腜3.5口出來(lái)的為高電壓,而三級(jí)管9013不能承受此電壓,所以采用了一個(gè)阻值較大的電阻來(lái)起分壓作用,從而緩沖了加到三級(jí)管上的電壓。改變與紅外發(fā)射管相連的10K的滑動(dòng)變阻器阻值可以改變發(fā)射距離。第四章遙控發(fā)射及接收控制電路的軟件設(shè)計(jì)4.1軟件設(shè)計(jì)流程圖4.1.1遙控發(fā)射主程序流程圖圖4-1遙控發(fā)射主程序流程圖圖4-1是遙控發(fā)射的主程序流程圖:首先初始化程序,然后調(diào)用鍵掃描程序。相應(yīng)的發(fā)射主程序如下:發(fā)送主程序:#include<reg52.h>//定義#defineuintunsignedint//定義#defineucharunsignedchar//定義externucharkeyscan(void);//定義externvoidinit(void);//定義externvoidsend_infrared(ucharkeyval);//定義voiddelay1ms(uinttime)//延時(shí)時(shí)間{ uinti,j; for(i=0;i<time;i++) for(j=0;j<110;j++);}voidmain(){ uintkeyval;//對(duì)鍵號(hào)的定義 init();//調(diào)用初始化程序 while(1) { keyval=keyscan();//保存鍵值 while(keyscan()); if(keyval) {send_infrared(keyval);}//掃描鍵值,然后發(fā)送 }}4.1.2鍵掃描程序流程圖圖4-2鍵掃描程序流程圖掃鍵過(guò)程:首先判斷控制鍵是否按下,若有控制鍵按下則進(jìn)行逐行掃描,按照P口值查找鍵號(hào)。最后按照鍵號(hào)轉(zhuǎn)至相應(yīng)的發(fā)射程序如下圖4-3所示。相應(yīng)的按鍵掃描程序如下所示:鍵掃描程序:#include<reg52.h>//定義#define uint unsignedint#defineuchar unsignedchar#definekeyrowP0//對(duì)P0口的定義#definekeylineP2//對(duì)P2口的定義ucharcodekeyv[8]={1,2,4,8};ucharkeyscan(void){ ucharkeyval,i;//定義 keyval=0;//初始化 keyrow=0xfe;//P0.0=0 if(keyline!=0xff)//判斷P2的P2.0~P2.3口是否為0 for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+1;//為0,說(shuō)明鍵號(hào)為i+1的鍵按下 keyrow=0xfd;//P0.1=0 if(keyline!=0xff)//判斷P2的P2.0~P2.3口是否為0 for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+5;//為0,說(shuō)明鍵號(hào)為i+5的鍵按下 keyrow=0xfb;//P0.2=0if(keyline!=0xff)//判斷P2的P2.0~P2.3口是否為0 for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+9;//為0,說(shuō)明鍵號(hào)為i+9的鍵按下 keyrow=0xf7;//P0.7=0 if(keyline!=0xff)//判斷P2的P2.0~P2.3口是否為0 for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+13;//為0,說(shuō)明鍵號(hào)為i+13的鍵按下 while(keyline!=0xff);//判斷P2的P2.0~P2.3口為否為0,為0,不執(zhí)行 return(keyval);//返回鍵號(hào)值}4.1.3遙控碼發(fā)射程序流程圖圖4-3遙控碼發(fā)射程序流程圖紅外信號(hào)發(fā)射過(guò)程:該遙控器采用脈沖個(gè)數(shù)編碼,不同的脈沖個(gè)數(shù)代表不同的碼,最小為2個(gè)脈沖,最大為17個(gè)脈沖,為了使接收可靠,第一位碼寬為3ms,其余為1ms,遙控碼數(shù)據(jù)幀間隔大于10ms。如圖4-4為遙控碼的編碼格式[13]。當(dāng)某個(gè)被控電器的電源開(kāi)關(guān)被按下時(shí),單片機(jī)先讀出鍵值,然后根據(jù)鍵值設(shè)定遙控碼的脈沖個(gè)數(shù),再調(diào)制成40kHz方波由紅外線發(fā)光管發(fā)身出去[14]。圖4-4遙控碼的編碼格式相應(yīng)的遙控碼發(fā)射程序如下:發(fā)送程序:#include<reg52.h>#define uint unsignedint#defineuchar unsignedcharsbitremoteout=P3^3;//遙控輸出口externvoiddelay1ms(uinttime);/*************初始化函數(shù)***********/voidinit(void){ remoteout=0;//關(guān)遙控輸出 IE=0x00; IP=0x08; TMOD=0x22;//8位自動(dòng)重新裝模式 TH1=0xf3;//40kHZ初值 TL1=0xf3; EA=1;//開(kāi)總中斷}/*****************發(fā)射函數(shù)***********/voidsend_infrared(ucharkeyval){ ucharm; ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;//40KHZ發(fā)3ms for(m=keyval;m>0;m--) { delay1ms(1);//停1ms ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0;//40KHZ發(fā)1ms } delay1ms(10);}/******************40KHZ發(fā)生器************///定時(shí)中斷T1voidtime_intt1(void)interrupt3{ remoteout=~remoteout;}4.1.4遙控接收器主程序流程圖圖4-5遙控接收器主程序流程圖相應(yīng)的接收主程序如下:接收主程序:#include<reg52.h>#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintCharcodetable[16]={0x11,0xbd,0x23,0x29,0x8d,0x49,0x41,0x3d,0x01,0x09,0x05,0xc1,0xe3,0xa1,0x43,0x47}; //數(shù)碼管字型碼0-Fexternvoidclearmen(void);externucharvalue;sbitjdq1=P2^0;//繼電器1與P2.0口相連sbitjdq2=P2^1;//繼電器2與P2.1口相連uchartemp; voiddelay1ms(uinttime)//延時(shí)時(shí)間程序{ uinti,j; for(i=0;i<time;i++) for(j=0;j<110;j++);}voidyouyi(void) //7個(gè)流水燈逐個(gè)閃動(dòng){ uinti; temp=0x01; for(i=0;i<8;i++)//7個(gè)流水燈從0到7逐個(gè),即閃動(dòng)7次{ P0=table[11]; P1=~temp; delay1ms(1000);//調(diào)用延時(shí)時(shí)間程序temp<<=1;//整個(gè)功能顯示完一次后左移一位,重新開(kāi)始 }}voidzuoyi(void) //7個(gè)流水燈反向逐個(gè)閃動(dòng){ uinti; temp=0x80;for(i=0;i<8;i++)//7個(gè)流水燈反向逐個(gè)閃動(dòng),即從LED7~LED0逐個(gè)閃動(dòng),閃動(dòng)7次{ P0=table[12]; P1=~temp; delay1ms(1000);//調(diào)用延時(shí)時(shí)間程序 temp>>=1;//整個(gè)功能顯示完一次后右移一位,重新開(kāi)始 }}voidquanliang(void)//7個(gè)流水燈全亮{ uinti; temp=0xfe; for(i=0;i<8;i++)//7個(gè)流水燈依次全部點(diǎn)亮 { P0=table[13]; P1=temp; delay1ms(1000);//調(diào)用延時(shí)時(shí)間程序temp<<=1;//整個(gè)功能顯示完后左移一位,重新開(kāi)始 }}voidfquanliang(void)//7個(gè)流水燈全亮{ uinti; temp=0x7f; for(i=0;i<8;i++)//7個(gè)流水燈依次全部點(diǎn)亮 { P0=table[14]; P1=temp; delay1ms(1000);//調(diào)用延時(shí)時(shí)間程序 temp>>=1;//整個(gè)功能顯示完后右左移一位,重新開(kāi)始 }}voidmain(){ clearmen(); P0=0xff; while(1)//判斷接收鍵值,執(zhí)行相應(yīng)的按鍵功能 {if(value==1){P0=table[1];P1=0xfe;}//如果是鍵1,執(zhí)行鍵1功能if(value==2){P0=table[2];P1=0xfd;}//如果是鍵2,執(zhí)行鍵2功能if(value==3){P0=table[3];P1=0xfb;}//如果是鍵3,執(zhí)行鍵3功能if(value==4){P0=table[4];P1=0xf7;}//如果是鍵4,執(zhí)行鍵4功能if(value==5){P0=table[5];P1=0xef;}//如果是鍵5,執(zhí)行鍵5功能if(value==6){P0=table[6];P1=0xdf;}//如果是鍵6,執(zhí)行鍵6功能if(value==7){P0=table[7];P1=0xbf;}//如果是鍵7,執(zhí)行鍵7功能if(value==8){P0=table[8];P1=0xff;}//如果是鍵8,執(zhí)行鍵8功能if(value==9) {P0=table[9];jdq1=0;}//如果是鍵9,執(zhí)行鍵9功能if(value==10) {P0=table[10];jdq2=0;}//如果是鍵10,執(zhí)行鍵10功能if(value==11) {P0=table[11];P2=0x03;}//如果是鍵11,執(zhí)行鍵11功能if(value==12)youyi();//如果是鍵12,執(zhí)行鍵12功能if(value==13) zuoyi();//如果是鍵13,執(zhí)行鍵13功能if(value==14) quanliang();//如果是鍵14,執(zhí)行鍵14功能if(value==15) fquanliang();//如果是鍵15,執(zhí)行鍵15功能 }} 4.1.5中斷程序流程圖圖4-6中斷程序流程圖中斷過(guò)程:首先判斷低電平脈寬度是否大于2ms,若脈寬不到2ms,則中斷返回;若低電平大于2ms,則接收并地低電平脈沖計(jì)數(shù),接下來(lái)看判斷高電平脈寬度沖是否大于3ms,若脈寬不到3ms,則返回上一接收計(jì)數(shù)過(guò)程;若高電平脈寬大于3ms,則按照脈沖個(gè)數(shù)至對(duì)應(yīng)功能程序。此時(shí)中斷返回。相應(yīng)的中斷程序如下:中斷程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitremotein=P3^1;//遙控輸入externvoiddelay1ms(uinttime);ucharvalue;/***********初始化********/voidclearmen(void){ EX0=1; EA=1;//開(kāi)總中斷}/**************外中斷遙控接收函數(shù)**************/voidintt0(void)interrupt0{ ucharkeyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein==0) { delay1ms(1); if(remotein==0) while(1) { while(remotein==0); keyval++;k=0;delay1ms(1); while(remotein==1) { delay1ms(1);k++; if(k>2) { value=keyval-1; sign=1; break; } } if(sign)break; } } EX0=1;}系統(tǒng)調(diào)試控制電路板的安裝與調(diào)試在整個(gè)電路的設(shè)計(jì)中占有重要位置,它是把理論付諸實(shí)踐的過(guò)程,也是把紙面設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際產(chǎn)品的必經(jīng)階段。5.1本設(shè)計(jì)常用的調(diào)試儀器萬(wàn)用表、穩(wěn)壓電源、示波器、信號(hào)發(fā)生器等。5.2調(diào)試步驟:5.2.1調(diào)試前不加電源的檢查對(duì)照電路圖和實(shí)際線路檢查連線是否正確,包括錯(cuò)接、少接、多接等;用萬(wàn)用表電阻檔檢查焊接和接插是否良好;元器件引腳之間有無(wú)短路,連接處有無(wú)接觸不良,二極管、三極管、集成電路和電解電容的極性是否正確;電源供電包括極性、信號(hào)源連線是否正確;電源端對(duì)地是否存在短路(用萬(wàn)用表測(cè)量電阻)。經(jīng)過(guò)上述檢查,我們發(fā)現(xiàn)我們所設(shè)計(jì)的電路存在錯(cuò)接和連接處不良接觸的問(wèn)題,經(jīng)過(guò)細(xì)心的檢查后,解決了上述的一些電路上的問(wèn)題。5.2.2靜態(tài)檢測(cè)與調(diào)試斷開(kāi)信號(hào)源,把經(jīng)過(guò)準(zhǔn)確測(cè)量的電源接入電路,用萬(wàn)用表電壓檔監(jiān)測(cè)電源電壓,觀察有無(wú)異常現(xiàn)象:如冒煙、異常氣味、手摸元器件發(fā)燙,電源短路等,如發(fā)現(xiàn)異常情況,立即切斷電源,排除故障;我們的電路在此項(xiàng)測(cè)試中如無(wú)異常情況,接著我們又分別測(cè)量各關(guān)鍵點(diǎn)直流電壓,如靜態(tài)工作點(diǎn)、放大電路輸入、輸出端直流電壓等是否在正常工作狀態(tài)下,結(jié)果有個(gè)別電路不符,經(jīng)過(guò)調(diào)整電路元器件參數(shù)、更換元器件,使電路最終工作在合適的工作狀態(tài);對(duì)于放大電路我們還用示波器觀察是否有自激發(fā)生。結(jié)果一切正常。5.2.3動(dòng)態(tài)檢測(cè)與調(diào)試動(dòng)態(tài)調(diào)試是在靜態(tài)調(diào)試的基礎(chǔ)上進(jìn)行的,調(diào)試的方法地在電路的輸入端加上所需的信號(hào)源,并循著信號(hào)的注射逐級(jí)檢測(cè)各有關(guān)點(diǎn)的波形、參數(shù)和性能指標(biāo)是否滿足設(shè)計(jì)要求,如必要,要對(duì)電路參數(shù)作進(jìn)一步調(diào)整。發(fā)現(xiàn)問(wèn)題,要設(shè)法找出原因,排除故障,繼續(xù)進(jìn)行。我們所設(shè)計(jì)的遙控器電路是采用碼分制遙控方式,用示波器對(duì)發(fā)射電路輸出端及接收電路輸入端的信號(hào)波型的進(jìn)行了檢查,發(fā)現(xiàn)當(dāng)按下不同的開(kāi)關(guān)按鈕時(shí)所顯示的波型是不同的。這說(shuō)明了此電路是工作在正常狀態(tài)的。5.2.4調(diào)試過(guò)程中所遇到的問(wèn)題及解決方法(1)電源電路輸出不是5V,于是用數(shù)字萬(wàn)用表對(duì)電源電路一部分一部分的測(cè)電壓,發(fā)現(xiàn)整流二極管最后輸出的電壓不對(duì),經(jīng)分析,發(fā)現(xiàn)有一個(gè)整流二極管沒(méi)接。(2)按下按鍵時(shí),當(dāng)LED發(fā)光二極管正在顯示的狀態(tài)沒(méi)顯示完時(shí),如果立馬按另外一個(gè)鍵,LED發(fā)光二極管會(huì)把之前的狀態(tài)完全顯示完以后再顯示我當(dāng)前按得鍵的鍵功能,此時(shí)數(shù)碼管的顯示值卻是我當(dāng)前的鍵號(hào)值。也就是說(shuō)換鍵后,數(shù)碼管所顯示的鍵號(hào)值與LED數(shù)碼管的狀態(tài)不對(duì)應(yīng)。經(jīng)過(guò)分析,是程序中延時(shí)時(shí)間太長(zhǎng)了的原因,經(jīng)修改,避免了這個(gè)問(wèn)題。(3)由于數(shù)碼管的動(dòng)態(tài)連接。因?yàn)閯?dòng)態(tài)連接時(shí)需要連接的腳比較多也比較緊,所以在焊接的時(shí)候要特別的小心,不能焊接錯(cuò)誤。我在焊接時(shí)就發(fā)生了類似的錯(cuò)誤,沒(méi)有把數(shù)碼管的公共端和單片機(jī)的接口對(duì)應(yīng)的連接起來(lái),然后在數(shù)碼管調(diào)試的時(shí)候發(fā)生了數(shù)碼位置混亂的情況。而且有的時(shí)候會(huì)出現(xiàn)沒(méi)有焊上或者是焊點(diǎn)焊接時(shí)間過(guò)長(zhǎng)導(dǎo)致導(dǎo)線銅皮外露引起短路,這些問(wèn)題在用萬(wàn)用表檢測(cè)后被排除。(4)看遙控發(fā)射部分是否能發(fā)射信號(hào),主要是用示波器看發(fā)射部分能給否輸出圖4-4的波形[15]。剛開(kāi)始波形比較亂,前面符合,后面不能與圖4-4對(duì)應(yīng)。經(jīng)分析后,得出原因是編碼格式?jīng)]置好。(5)對(duì)遙控器的調(diào)試主要是用示波器觀察能否在遙控接收器中輸出圖2-7數(shù)據(jù)幀的接收處理的圖形。如果能輸出此波形,就代表接收模塊能接收到發(fā)射模塊發(fā)射的信息。剛開(kāi)始調(diào)試時(shí),沒(méi)有波形,原因是中斷程序里出錯(cuò),經(jīng)改進(jìn),解決了此問(wèn)題。(6)發(fā)射部分能發(fā)射信號(hào),接收部分也能接收信號(hào),能實(shí)現(xiàn)功能,接下來(lái)就要看遙控發(fā)射距離,調(diào)節(jié)與紅外發(fā)射管相串聯(lián)的發(fā)射管,本設(shè)計(jì)用的是滑動(dòng)變阻器,改變其阻值,可以改變發(fā)射距離[16]。調(diào)節(jié)時(shí)發(fā)現(xiàn)不能變更發(fā)射距離,經(jīng)分析后,發(fā)現(xiàn)滑動(dòng)變阻器焊接錯(cuò)了,不能改變其阻值。于是拆下來(lái)重新焊接后,達(dá)到了效果。5.2.5調(diào)試注意事項(xiàng)經(jīng)過(guò)自己動(dòng)手調(diào)試電路。從問(wèn)題之中總結(jié)出來(lái)一些常用電路調(diào)試的注意事項(xiàng)。(1)正確使用測(cè)量?jī)x器的接地端,儀器的接地端與電路的接地端要可靠連接;(2)在信號(hào)較弱的輸入端,盡可能使用屏蔽線連線,屏蔽線的外屏蔽層要接到公共地線上,在頻率較高時(shí)要設(shè)法隔離連接線分布電容的影響,例如用示波器測(cè)量時(shí)應(yīng)該使用示波器探頭連接,以減少分布電容的影響。(3)測(cè)量電壓所用儀器的輸入阻抗必須遠(yuǎn)大于被測(cè)處的等效阻抗。(4)測(cè)量?jī)x器的帶寬必須大于被測(cè)量電路的帶寬。(5)正確選擇測(cè)量點(diǎn)和測(cè)量(6)認(rèn)真觀察記錄實(shí)驗(yàn)過(guò)程,包括條件、現(xiàn)象、數(shù)據(jù)、波形、相位等。(7)出現(xiàn)故障時(shí)要認(rèn)真查找原因。(8)在按鍵8時(shí),電機(jī)是正轉(zhuǎn)的,此時(shí)必須先讓它停下來(lái)后,才能讓它反轉(zhuǎn),也就是說(shuō)按下鍵9后,得先按鍵10,才能按鍵9。反過(guò)來(lái)也是一樣的道理。第六章測(cè)試結(jié)果與分析6.1測(cè)試結(jié)果調(diào)試完以后,按照測(cè)試步驟,測(cè)出的結(jié)果如下表6-1所示。由下表6-1可看出,功能已經(jīng)達(dá)到了任務(wù)書(shū)上的任務(wù)要求,但是技術(shù)指標(biāo)沒(méi)有達(dá)到相應(yīng)的要求,發(fā)射距離測(cè)到3m多,發(fā)射角度也只有30度。表6-1測(cè)試結(jié)果鍵號(hào)值數(shù)碼管LED0-LED6的狀態(tài)/電機(jī)狀態(tài)數(shù)碼管顯示值1LED1亮12LED2亮23LED3亮34LED4亮45LED5亮56LED6亮67數(shù)碼管全滅78電機(jī)正轉(zhuǎn)89電機(jī)反轉(zhuǎn)910電機(jī)停止轉(zhuǎn)動(dòng)A11LED0-LED6從左到右依次亮b12LED0-LED6從右到左依次亮c13LED0-LED6從左到右依次漸亮(最后全亮)d14LED0-LED6從右到左依次漸亮(最后全亮)e15LED發(fā)光二級(jí)管全亮f6.2問(wèn)題分析:存在的問(wèn)題:發(fā)送距離達(dá)不到技術(shù)指標(biāo)的要求,即達(dá)不到5M,約只有3米多;發(fā)射角度也達(dá)不到90度的,當(dāng)超出這2個(gè)范圍時(shí),接收模塊接收不到發(fā)送模塊所發(fā)送的信息。測(cè)試問(wèn)題的分析:因?yàn)檫b控系統(tǒng)采用的是碼分制原理,而在碼分制系統(tǒng)中由編碼電路和解碼電路構(gòu)成,而且要有調(diào)制和解調(diào)的過(guò)程,因?yàn)榇a分制系統(tǒng)編碼脈沖的頻率極低,為超低頻,如果不用調(diào)制與解調(diào)電路,外界突然的光線變化可能會(huì)對(duì)接收電路造成干擾,產(chǎn)生誤動(dòng)作,系統(tǒng)的抗干擾能力及可靠性就難以保證。因?yàn)楸驹O(shè)計(jì)系統(tǒng)中沒(méi)有調(diào)制和解調(diào)的電路,直接利用單片機(jī)進(jìn)行軟件編碼與解碼,所以導(dǎo)致發(fā)送距離和角度的限制,也是今后將要改進(jìn)的地方。參考文獻(xiàn)[1]謝自美.電子線路實(shí)驗(yàn)與測(cè)試[M].武漢:華中科技大學(xué)出版社,2002.[2]樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2005:152-178.[3]周平.單片機(jī)應(yīng)用技術(shù)[M].北京:高等教育出版社,2002.[4]繼宗南.紅外線遙控發(fā)射器的原理及應(yīng)用[J].國(guó)外電子元器件,1999,(10):32-34.[5]陳玻沿.紅外系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,1988.[6]李貴和.電器及其控制[M].重慶:重慶大學(xué)出版社,1993.[7]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002:56-62.[8]李華等.MCS-51系列單片機(jī)使用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993:51-68.[9]李建華.實(shí)用遙控器原理與制作[D].北京:人民郵電出版社,1996.[10]蘇長(zhǎng)贊.紅外線與超聲波遙控[D].北京:人民郵電出版社,1995.[11]高章飛,朱善安.\o"基于單片機(jī)MSP430和nRF905的無(wú)線通信模塊"基于單片機(jī)MSP430和nRF905的無(wú)線通信模塊[J].機(jī)電工程,2006,(02).[12]汪小旵,李洵.\o"用VB實(shí)現(xiàn)微機(jī)與單片機(jī)之間多機(jī)通信的兩種方式"用VB實(shí)現(xiàn)微機(jī)與單片機(jī)之間多機(jī)通信的兩種方式[J].機(jī)械與電子,2000,(02).[13]AT89C2051DataSheet[R].ATMELInc.[14]InfraredRemoteControlTransmitterPT2221A_PT2222ADataShee[R]t.PTCInc.[15]PhilipsSemiconductors.TheI2C-BusSpecificationVersion(2.1)2000.[16]SheuJK,ChangSJ,KuoCH,etal.White2LightEmissionFromNearUV:InGaN2GaNLEDChipPrecoatedWithBluePGreenPRedPhosphors[J].IEEEPHOTONICSTECHNLOGYIEITERS,2003,15(1):18~20.附錄附錄一:發(fā)送接收電路原理圖:接收電路原理圖發(fā)射電路原理圖附錄二:程序清單發(fā)送系統(tǒng):1、鍵掃描程序:#include<reg52.h>#define uint unsignedint#defineuchar unsignedchar#definekeyrow P0#definekeylineP2ucharcodekeyv[8]={1,2,4,8};ucharkeyscan(void){ ucharkeyval,i; keyval=0; keyrow=0xfe; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+1; keyrow=0xfd; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+5; keyrow=0xfb; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+9; keyrow=0xf7; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+13; while(keyline!=0xff); return(keyval);}2、發(fā)送程序:#include<reg52.h>#define uint unsignedint#defineuchar unsignedcharsbitremoteout=P3^3;//遙控輸出口externvoiddelay1ms(uinttime);/*************初始化函數(shù)***********/voidinit(void){ remoteout=0;//關(guān)遙控輸出 IE=0x00; IP=0x08; TMOD=0x22;//8位自動(dòng)重新裝模式 TH1=0xf3;//40kHZ初值 TL1=0xf3; EA=1;//開(kāi)總中斷}/*****************發(fā)射函數(shù)***********/voidsend_infrared(ucharkeyval){ ucharm; ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;//40KHZ發(fā)3ms for(m=keyval;m>0;m--) { delay1ms(1);//停1ms ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0;//40KHZ發(fā)1ms } delay1ms(10);}/******************40KHZ發(fā)生器************///定時(shí)中斷T1voidtime_intt1(void)interrupt3{ remoteout=~remoteout;}3、發(fā)送主程序:#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharexternucharkeyscan(void);externvoidinit(void);externvoidsend_infrared(ucharkeyval);voiddelay1ms(uinttime){ uinti,j; for(i=0;i<time;i++) for(j=0;j<110;j++);}voidmain(){ uintkeyval; init(); while(1) { keyval=keyscan(); while(keyscan()); if(keyval) {send_infrared(keyval);} }}二、接收系統(tǒng):中斷程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitremotein=P3^1;//遙控輸入externvoiddelay1ms(uinttime);ucharvalue;/***********初始化********/voidclearmen(void){ EX0=1; EA=1;//開(kāi)總中斷}/**************外中斷遙控接收函數(shù)**************/voidintt0(void)interrupt0{ ucharkeyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein==0) { delay1ms(1); if(remotein==0) while(1) { while(remotein==0); keyval++;k=0;delay1ms(1); while(remotein==1) { delay1ms(1);k++; if(k>2) { value=keyval-1; sign=1; break; } } if(sign)break; } } EX0=1;}2、接收主程序:#include<reg52.h>#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintCharcodetable[16]={0x11,0xbd,0x23,0x29,0x8d,0x49,0x41,0x3d,0x01,0x09,0x05,0xc1,0xe3,0xa1,0x43,0x47}; //0-Fexternvoidclearmen(void);externucharvalue;sbitjdq1=P2^0;sbitjdq2=P2^1;uchartemp; voiddelay1ms(uinttime){ uinti,j; for(i=0;i<time;i++) for(j=0;j<110;j++);}voidyouyi(void) //7個(gè)流水燈逐個(gè)閃動(dòng){ uinti; temp=0x01; for(i=0;i<8;i++) { P0=table[11]; P1=~temp; delay1ms(1000); temp<<=1; }}voidzuoyi(void) //7個(gè)流水燈反向逐個(gè)閃動(dòng){ uinti; temp=0x80; for(i=0;i<8;i++) { P0=table[12]; P1=~temp; delay1ms(1000); temp>>=1; }}voidquanliang(void){ uinti; temp=0xfe; for(i=0;i<8;i++)//7個(gè)流水燈依次全部點(diǎn)亮 { P0=table[13]; P1=temp; delay1ms(1000); temp<<=1; }}voidfquanliang(void){ uinti; temp=0x7f; for(i=0;i<8;i++)//7個(gè)流水燈依次全部點(diǎn)亮 { P0=table[14]; P1=temp; delay1ms(1000); temp>>=1; }}voidmain(){ clearmen(); P0=0xff; while(1) { if(value==0){P0=table[0];P1=0xfe;} if(value==1){P0=table[1];P1=0xfd;} if(value==2){P0=table[2];P1=0xfb;} if(value==3){P0=table[3];P1=0xf7;} if(value==4){P0=table[4];P1=0xef;} if(value==5){P0=table[5];P1=0xdf;} if(value==6){P0=table[6];P1=0xbf;} if(value==7){P0=table[7];P1=0xff;} if(value==8) {P0=table[8];jdq1=0;} if(value==9) {P0=table[9];jdq2=0;} if(value==10) {P0=table[10];P2=0x03;} if(value==11) youyi(); if(value==12) zuoyi(); if(value==13) quanliang(); if(value==14) fquanliang(); }}附錄三:元器件清單通用板兩塊變壓器一個(gè)電機(jī)一個(gè)繼電器兩個(gè)三極管9012PNP兩個(gè)9013NPN兩個(gè)電阻1K五個(gè)100一個(gè)10K三個(gè)滑動(dòng)變阻器10K一個(gè)紅外接收頭HS0038一個(gè)紅外發(fā)射二極管一個(gè)電容1uf一個(gè)30p四個(gè)10uf兩個(gè)開(kāi)關(guān)按鈕十六個(gè)LED發(fā)光二級(jí)管十一個(gè)數(shù)碼管一個(gè)排阻10K*8一個(gè)晶振12M兩個(gè)二極管四個(gè)7805穩(wěn)壓管一個(gè)附錄四:英文資料WirelessTechnologyinIndustrialNetworksAbstract:Withthesuccessofwirelesstechnologiesinconsumerelectronics,standardwirelesstechnologiesareenvisionedforthedeploymentinindustrialenvironmentsaswell.Industrialapplicationsinvolvingmobilesubsystemsorjustthedesiretosavecablingmakewirelesstechnologiesattractive[15].Nevertheless,theseapplicationsoftenhavestringentrequirementsonreliabilityandtiming.Inwiredenvironments,timingandreliabilityarewellcateredforbyfieldbussystems(whichareamaturetechnologydesignedtoenablecommunicationbetweendigitalcontrollersandthesensorsandactuatorsinterfacingtoaphysicalprocess).Whenwirelesslinksareincluded,reliabilityandtimingrequirementsaresignificantlymoredifficulttomeet,duetotheadversepropertiesoftheradiochannels[15].Inthispaperwethusdiscusssomekeyissuescomingupinwirelessfieldbusandwirelessindustrialcommunicationsystems:i)fundamentalproblemslikeachievingtimelyandreliabletransmissiondespitechannelerrors;ii)theusageofexistingwirelesstechnologiesforthisspecificfieldofapplications,andiii)thecreationofhybridsystemsinwhichwirelessstationsareincludedintoexistingwiredsystems.Keywords:Fieldbus;systems;real-time;communications;wireless;technologies;Bluetooth;IEEE802.15.4;IEEE802.11;hybridsystemsI.INTRODUCTIONThetrueconvenienceofbeingabletoconnectdeviceswithouttheuseofwireshasleadtotheunprecedentedsuccessofwirelesstechnologiesintheconsumergoodsindustry.Basedonthissuccess,applicationsusingthesetechnologiesarebeginningtoappearinvariousothersettingsaswell.Inanindustrialorfactoryfloorsetting,forexample,thebenefitsofusingwirelesstechnologiesaremanifold.Firstofall,thecostandtimeneededfortheinstallationandmaintanceofthelargenumberofcablesnormallyrequiredinsuchanenvironmentcanbesubstantiallyreduced,thusmakingplantsetupandreconfigurationmoreeasy.Thisisespeciallyimportantinharshenvironmentswherechemicals,vibrations,ormovingpartsexistthatcouldpotentiallydamageanysortofcabling.Intermsofplantflexibility,stationarysystemscanbewirelesslycoupledtoanymobilesubsytemsormobilerobotsthatmayexistinordertoachieveaconnectivitythatwouldotherwisebeimpossible.Furthermore,thetaskoftemporarilyaccessinganyofthemachineryintheplantfordiagnosticorprogrammingpurposescanbegreatlysimplifiedbytheuseofthesewirelesstechnologies.Alongwiththesimplificationofacessingmachinery,manyindustrialapplicationsexistthatcouldbenefitfromtheuseofwirelesstechnologies.Thelocalizationandtrackingofunfinishedparts,thecoordinationofautonomoustransportvehiclesandmobilerobots[1]–[3],aswellasapplicationsinvolvingdistributedcontrolareallareasinwhichwirelesstechnologiescouldbeusedinanindustrialenvironment.Manyoftheseindustrialapplicationsareservedbyfieldbussystems[4]–[8]likePROFIBUS[9],[10],WorldFIP[11],[12]orCAN[13],[14],whicharewired.Fieldbussystemshavebeenspecificallydesignedforsolvingautomationorcontroltasksthatrelyontheinterconnectionofdigitalcontrollerswithotherdigitalcontrollersaswellassensorsand/oractuators(includingtheirunderlyingphysicalprocesses).Theprimarygoalofthesesystemsistoprovidereal-timecommunicationservicesthatarebothpredictableandreliable,i.e.makecertainguaranteesoneventualdeliveryofpacketsanddeliverytimes.Someimportantcharacteristicsoffieldbustrafficare:i)presenceofcyclic(i.e.recurring)orevenperiodictraffic(boundedjitterbetweensubsequentpacketsrequired),subjecttodeadlines;ii)presenceofimportantacyclicpacketslikealarms,whichneedtobereliablytransmittedwithboundedlatencies;andiii)mostpacketsareshort,intheorderofafewbytes.Theprotocolarchitectureofmostfieldbussystemscoversonlythephysicallayer,thedata-linklayerincludingthemediumaccesscontrol(MAC)sublayer,andtheapplicationlayeroftheOSIreferencemodel.Theobviousbenefitsofwirelesstransmissionhaveledtoanumberofsolutions.Thesesolutionsrangefromvoice-oriented,large-scalecellularnetworkssuchasUMTS,todata-orientedsolutionslikewirelesslocalareanetworks(WLAN),wirelesspersonalareanetworks(WPAN)andwirelesssensornetworks.WLANsystems,liketheIEEE802.11familyofstandards[15]–[17],aredesignedtoprovideuserswithhighdatarates(tensofMbit/s)overrangesoftenstohundredsofmeters.TheseparametersprovidetheuserwithuntetheredaccesstoEthernet,forexample.WPANsystems,suchasBluetooth[18],[19]andIEEE802.15.4[20],[21],havebeendesignedforconnectingdeviceswirelessly,whiletakingenergy-efficiencyintoaccount.TheysupportmediumdataratesintheorderofhundredsofKbit/stoafew
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職(汽車(chē)檢測(cè)與維修技術(shù))汽車(chē)維修質(zhì)量檢驗(yàn)階段測(cè)試題及答案
- 2025年大學(xué)攝影(攝影理論)試題及答案
- 2025年大學(xué)大三(護(hù)理學(xué))兒科護(hù)理綜合測(cè)試試題及答案
- 2025年中職至大學(xué)階段(工程造價(jià)類)專業(yè)技能綜合測(cè)試試題及答案
- 2025年高職旅游(旅游線路設(shè)計(jì))試題及答案
- 2025年高職體育教育(體育教學(xué)法)試題及答案
- 2025年高職資源勘查(礦產(chǎn)普查)試題及答案
- 2025年大學(xué)第三學(xué)年(土木工程)鋼結(jié)構(gòu)設(shè)計(jì)原理試題及答案
- 稀有貴金屬高效綜合循環(huán)利用建設(shè)項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)拿地
- 金融工程美國(guó)就業(yè)指南
- 2026 中考【初中道法時(shí)政熱點(diǎn)】
- 2025年上半年山東高速集團(tuán)有限公司校園招聘(255人)筆試參考題庫(kù)附答案
- 故意傷害案件課件
- 膽管狹窄護(hù)理
- 消防操作員其他實(shí)操技能
- 2025年高考數(shù)學(xué)試題分類匯編:數(shù)列解析版
- 吉林省戶用光伏施工方案
- 工程部物業(yè)消防知識(shí)培訓(xùn)課件
- 江西省婺源縣聯(lián)考2026屆數(shù)學(xué)七年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 2025至2030水蛭素產(chǎn)品行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評(píng)估報(bào)告
- 非煤礦山安全員題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論