




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、XXXX大學(xué)本科畢業(yè)設(shè)計(jì)基于PIC單片機(jī)的紅外遙控設(shè)計(jì)學(xué)生姓名 所 在 系專業(yè)名稱班 級(jí)學(xué) 號(hào)指導(dǎo)教師XXX大學(xué)教務(wù)處年 月基于PIC單片機(jī)的紅外遙控設(shè)計(jì)學(xué)生: 指導(dǎo)教師:內(nèi)容提要:遙控器是現(xiàn)代電子控制系統(tǒng)的重要部件。可以利用無線電波、可見光、紅外光、超聲波作為傳輸介質(zhì)遠(yuǎn)距離操控電子設(shè)備。由于其功耗低、可靠性高和互相干擾小等優(yōu)點(diǎn),已在現(xiàn)實(shí)生活中得到了廣泛應(yīng)用。在目前的家用電器中,如電視機(jī)、家庭影院和數(shù)字音像設(shè)備中,大多都采用了紅外線遙控電路。而這套“基于PIC單片機(jī)的紅外遙控設(shè)計(jì)那么是以Microchip公司生產(chǎn)的16F877a芯片為模版,價(jià)格低廉,電路結(jié)構(gòu)簡單,據(jù)此本設(shè)計(jì)提出了一種簡單易行的
2、紅外遙控器的設(shè)計(jì)。關(guān)鍵詞:PIC單片機(jī) 紅外遙控 簡單易行PIC MCU-based infrared remote control designAbstract:The remote control of modern electronic control systems are an important component. Can make use of radio waves, visible light, infrared light, ultrasonic remote control as the transmission medium of electronic equipme
3、nt. Because of its low power consumption, high reliability, and interfere with each other the advantages of small, have been in real life has been widely applied. In the current household appliances such as televisions, home theater and digital audio-visual equipment, most of them have adopted the i
4、nfrared remote control circuit. This set of "PIC-based single-chip design of the infrared remote control" is based on Microchip produced chips for 16F877a template, cheap, simple circuit structure, whereby the design of a simple infrared remote control design. Key words:PIC Single-chip inf
5、rared remote control is simple一、前言一開發(fā)的背景自從1800年英國天文學(xué)家赫歇爾發(fā)現(xiàn)紅外輻射至今,紅外技術(shù)的開展經(jīng)歷了將近兩個(gè)世紀(jì)。從那時(shí)開始,紅外輻射和紅外元件、部件的科學(xué)研究逐步開展,但開展比擬緩慢,直到1940年前后才真正出現(xiàn)現(xiàn)代的紅外技術(shù)。隨著科技的不斷開展,各系統(tǒng)間的聯(lián)系越來越緊密,對(duì)各系統(tǒng)間的數(shù)據(jù)傳遞的要求也越來越高,但是外部設(shè)備越多,連接用的線也越多,短距離聯(lián)接的開展必然要走向無線聯(lián)機(jī),目前主要的短距離無線連接技術(shù)有紅外通信技術(shù)和藍(lán)牙技術(shù),前者采用紅外線,后者采用無線電波作為信息傳播的媒介。紅外無線通訊的技術(shù)與藍(lán)牙相比擬,紅外技術(shù)具有比擬成熟,接口
6、電路簡單,本錢低等諸多優(yōu)點(diǎn)。紅外遙控是通過紅外設(shè)備將單片機(jī)與外部設(shè)備聯(lián)系起來進(jìn)行通訊,實(shí)現(xiàn)系統(tǒng)間的無線通訊。自從紅外技術(shù)出現(xiàn)以來,美國、英國、前蘇聯(lián)等國競相開展。特別是美國,大力研究紅外技術(shù)在軍事方面的應(yīng)用。目前,美國將紅外技術(shù)應(yīng)用于單兵裝備、裝甲車輛、航空和航天的偵察監(jiān)視、預(yù)警、跟蹤以及武器制導(dǎo)等各個(gè)領(lǐng)域。 1993年,由二十多個(gè)大廠商發(fā)起成立了紅外數(shù)據(jù)協(xié)會(huì)IrDA,統(tǒng)一了紅外通訊的標(biāo)準(zhǔn),這就是目前被廣泛使用的IrDA紅外數(shù)據(jù)通訊協(xié)議及標(biāo)準(zhǔn)。IrDA專司制訂和推進(jìn)能共同使用的低本錢紅外數(shù)據(jù)互連標(biāo)準(zhǔn),支持點(diǎn)對(duì)點(diǎn)的工作模式。由于標(biāo)準(zhǔn)的統(tǒng)一和應(yīng)用的廣泛,更多的公司開始開發(fā)和生產(chǎn)IrDA模塊,技術(shù)的
7、進(jìn)步也使得IrDA模塊的集成越來越高,體積也越來越小。IrDA1.0可支持最高115.2kbps的通信速率,而IrDA1.1可以支持的通信速率到達(dá)4Mbps。本課題是專業(yè)知識(shí)綜合用于前沿科技的一個(gè)嘗試,本人堅(jiān)信此次研究和設(shè)計(jì)的成果具有一定的現(xiàn)實(shí)意義。二開發(fā)的目標(biāo)本系統(tǒng)的根本任務(wù)和目標(biāo)就是,通過紅外發(fā)射電路的設(shè)計(jì),實(shí)現(xiàn)單片機(jī)利用紅外信號(hào),通過發(fā)射電路與外界聯(lián)系,實(shí)現(xiàn)對(duì)外的遙控控制,其中包含了輸入設(shè)備紅外鍵盤,和紅外傳感器的使用。借助軟件局部的設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)的總體功能,紅外遙控。總的說來,完成此設(shè)計(jì)主要有四個(gè)模塊:·發(fā)射及接收電路的設(shè)計(jì);·編碼及解碼程序;·紅外傳感器
8、的選取和使用;·紅外鍵盤的設(shè)計(jì)。三開發(fā)的思路 設(shè)計(jì)基于單片機(jī)的紅外遙控,我們要從發(fā)射接收電路,編碼解碼,傳感器,紅外鍵盤幾個(gè)方向入手。在軟件局部中,我們主要是先要畫好系統(tǒng)原理圖,還有明確系統(tǒng)各局部功能,發(fā)射接收電路的設(shè)計(jì),編碼及解碼程序,在硬件局部中,主要是發(fā)射和接收電路的硬件設(shè)計(jì),紅外傳感器的使用,以及紅外鍵盤的設(shè)計(jì)。二、設(shè)計(jì)根底一PIC單片機(jī)的介紹1PIC單片機(jī)常識(shí)據(jù)統(tǒng)計(jì),我國的單片機(jī)年容量已達(dá)13億片,且每年以大約16%的速度增長,但相對(duì)于世界市場我國的占有率還不到1%。這說明單片機(jī)應(yīng)用在我國才剛剛起步,有著廣闊的前景。培養(yǎng)單片機(jī)應(yīng)用人才,特別是在工程技術(shù)人員中普及單片機(jī)知識(shí)有
9、著重要的現(xiàn)實(shí)意義。當(dāng)今單片機(jī)廠商琳瑯滿目,產(chǎn)品性能各異。針對(duì)具體情況,我們應(yīng)選何種型號(hào)呢?首先,我們來弄清兩個(gè)概念:集中指令集CISC和精簡指令集RISC。采用CISC結(jié)構(gòu)的單片機(jī)數(shù)據(jù)線和指令線分時(shí)復(fù)用,即所謂馮.諾伊曼結(jié)構(gòu)。它的指令豐富,功能較強(qiáng),但取指令和取數(shù)據(jù)不能同時(shí)進(jìn)行,速度受限,價(jià)格亦高。采用RISC結(jié)構(gòu)的單片機(jī)數(shù)據(jù)線和指令線別離,即所謂哈佛結(jié)構(gòu)。這使得取指令和取數(shù)據(jù)可同時(shí)進(jìn)行,且由于一般指令線寬于數(shù)據(jù)線,使其指令較同類CISC單片機(jī)指令包含更多的處理信息,執(zhí)行效率更高,速度亦更快。同時(shí),這種單片機(jī)指令多為單字節(jié),程序存儲(chǔ)器的空間利用率大大提高,有利于實(shí)現(xiàn)超小型化。屬于CISC結(jié)構(gòu)的
10、單片機(jī)有Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺(tái)灣Winbond(華邦)W78系列、荷蘭Pilips的PCF80C51系列等;屬于RISC結(jié)構(gòu)的有Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韓國三星公司的KS57C系列4位單片機(jī)、臺(tái)灣義隆的EM-78系列等。一般來說,控制關(guān)系較簡單的小家電,可以采用RISC型單片機(jī);控制關(guān)系較復(fù)雜的場合,如通訊產(chǎn)品、工業(yè)控制系統(tǒng)應(yīng)采用CISC單片機(jī)。不過,RISC單片機(jī)的迅速完善,使其佼佼者在控制關(guān)系復(fù)雜的場合也毫不遜色。根據(jù)程序存儲(chǔ)方式的不同,單片機(jī)可分為EPROM、O
11、TP一次可編程、QTP掩膜三種。我國一開始都采用ROMless型單片機(jī)片內(nèi)無ROM,需片外配EPROM,對(duì)單片機(jī)的普及起了很大作用,但這種強(qiáng)調(diào)接口的單片機(jī)無法廣泛應(yīng)用,甚至走入了誤區(qū)。如單片機(jī)的應(yīng)用一味強(qiáng)調(diào)接口,外接I/O及存儲(chǔ)器,便失去了單片機(jī)的特色。目前單片機(jī)大都將程序存儲(chǔ)體置于其內(nèi),給應(yīng)用帶來了極大的方便。2PIC單片機(jī)的特點(diǎn)和工作原理1PIC最大的特點(diǎn)是不搞單純的功能堆積,而是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,靠開展多種型號(hào)來滿足不同層次的應(yīng)用要求。就實(shí)際而言,不同的應(yīng)用對(duì)單片機(jī)功能和資源的需求也是不同的。比方,一個(gè)摩托車的點(diǎn)火器需要一個(gè)I/O較少、RAM及程序存儲(chǔ)空間不大、可靠性較
12、高的小型單片機(jī),假設(shè)采用40腳且功能強(qiáng)大的單片機(jī),投資大不說,使用起來也不方便。PIC系列從低到高有幾十個(gè)型號(hào),可以滿足各種需要。其中,PIC12C508單片機(jī)僅有8個(gè)引腳,是世界上最小的單片機(jī)。2精簡指令使其執(zhí)行效率大為提高。PIC系列8位CMOS單片機(jī)具有獨(dú)特的RISC結(jié)構(gòu),數(shù)據(jù)總線和指令總線別離的哈佛總線Harvard結(jié)構(gòu),使指令具有單字長的特性,且允許指令碼的位數(shù)可多于8位的數(shù)據(jù)位數(shù),這與傳統(tǒng)的采用CISC結(jié)構(gòu)的8位單片機(jī)相比,可以到達(dá)2:1的代碼壓縮,速度提高4倍。3產(chǎn)品上市零等待Zero time to market。采用PIC的低價(jià)OTP型芯片,可使單片機(jī)在其應(yīng)用程序開發(fā)完成后立
13、刻使該產(chǎn)品上市。4PIC有優(yōu)越開發(fā)環(huán)境。OTP單片機(jī)開發(fā)系統(tǒng)的實(shí)時(shí)性是一個(gè)重要的指標(biāo),象普通51單片機(jī)的開發(fā)系統(tǒng)大都采用高檔型號(hào)仿真低檔型號(hào),其實(shí)時(shí)性不盡理想。PIC在推出一款新型號(hào)的同時(shí)推出相應(yīng)的仿真芯片,所有的開發(fā)系統(tǒng)由專用的仿真芯片支持,實(shí)時(shí)性非常好。就我個(gè)人的經(jīng)驗(yàn)看,還沒有出現(xiàn)過仿真結(jié)果與實(shí)際運(yùn)行結(jié)果不同的情況。5其引腳具有防瞬態(tài)能力,通過限流電阻可以接至220V交流電源,可直接與繼電器控制電路相連,無須光電耦合器隔離,給應(yīng)用帶來極大方便。6徹底的保密性。PIC以保密熔絲來保護(hù)代碼,用戶在燒入代碼后熔斷熔絲,別人再也無法讀出,除非恢復(fù)熔絲。目前,PIC采用熔絲深埋工藝,恢復(fù)熔絲的可能性
14、極小。7自帶看門狗定時(shí)器,可以用來提高程序運(yùn)行的可靠性。8睡眠和低功耗模式。雖然PIC在這方面已不能與新型的TIMSP430相比,但在大多數(shù)應(yīng)用場合還是能滿足需要的。3PIC單片機(jī)的分類初檔8位單片機(jī):PIC12C5XXX16C5X系列PIC16C5X系列是最早在市場上得到開展的系列,因其價(jià)格較低,且有較完善的開發(fā)手段,因此在國內(nèi)應(yīng)用最為廣泛;而PIC12C5XX是世界第一個(gè)八腳低價(jià)位單片機(jī)可用于簡單的智能控制等一些對(duì)單片機(jī)體積要求較高的地方,前景十分廣闊。中檔8位單片機(jī):PIC12C6XX/PIC16CXXX系列PIC中檔產(chǎn)品是Microchip近年來重點(diǎn)開展的系列產(chǎn)品,品種最為豐富,其性能
15、比低檔產(chǎn)品有所提高,增加了中斷功能,指令周期可到達(dá)200ns,帶AD,內(nèi)部E2PROM數(shù)據(jù)存儲(chǔ)器,雙時(shí)鐘工作,比擬輸出,捕捉輸入,PWM輸出,I2C和SPI接口,異步串行通訊USART,模擬電壓比擬器及LCD驅(qū)動(dòng)等等,其封裝從8腳到68腳,可用于高、中、低檔的電子產(chǎn)品設(shè)計(jì)中,價(jià)格適中,廣泛應(yīng)用在各類電子產(chǎn)品中高檔8位單片機(jī):PIC17CXX系列PIC17CXX是適合高級(jí)復(fù)雜系統(tǒng)開發(fā)的系列產(chǎn)品,其性能在中檔位單片機(jī)的根底上增加了硬件乘法器,指令周期可達(dá)成160ns,它是目前世界上8位單片機(jī)中性價(jià)比最高的機(jī)種,可用于高、中檔產(chǎn)品的開發(fā),如馬達(dá)控制二相關(guān)背景知識(shí) 116F877a根本知識(shí)116F87
16、7a的根本架構(gòu)單片機(jī)是中央處理單元(CPU),存儲(chǔ)器(Memory)及輸入/輸出單元三大局部組成。其中CPU可分為兩局部,即算術(shù)邏輯單元(ALU)及控制單元(CU),CPU通過總線(BUS)執(zhí)行程式碼的Fetch、Decode、算術(shù)邏輯運(yùn)算及讀寫時(shí)鐘信號(hào)的控制。存儲(chǔ)器單元提供存放程序與資料的空間,包含只讀存儲(chǔ)器(ROM)和隨機(jī)存取存儲(chǔ)器(RAM)。而輸入/輸出單元提供與外界周邊設(shè)備或元件的管道 ,如圖一所示。 圖1 單片機(jī)根本架構(gòu)2PIC16F877a的特性說明如下:采用高性能的RISC CPU核心8位微電腦控制芯片8K×14Flash程序存儲(chǔ)器5組I/O端口A,B,C,D,E368
17、Bytes數(shù)據(jù)存儲(chǔ)器及256Bytes的EEPROM數(shù)據(jù)存儲(chǔ)器2組8位定時(shí)器TMR0,TMR2,及1組16位定時(shí)器TMR1支持14個(gè)中斷處理3PIC16F877a單片機(jī)核心架構(gòu)PIC16F877a單片機(jī)是RISC架構(gòu)單片機(jī),它所采用的Harvard結(jié)構(gòu)和過去一般單片機(jī)所采用的Von Neumann結(jié)構(gòu)最大的差異在于總線的改變,如圖2所示。Von Neumann結(jié)構(gòu)是傳統(tǒng)的單片機(jī)結(jié)構(gòu),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是在同一個(gè)存儲(chǔ)體區(qū)塊,存儲(chǔ)器與CPU之間只使用單一總線,不管是對(duì)程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器作存取都是使用此總線,因此要完成一個(gè)指令通常必須依序使用總線,從指令的提取、解碼、資料讀取、執(zhí)行到資料的寫
18、入,最后的結(jié)果是一個(gè)指令大都需要等待好幾個(gè)周期才能完成。Harvard結(jié)構(gòu)改善了這樣的缺點(diǎn),主要是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器使用不同的存儲(chǔ)體區(qū)塊,而且也有各自獨(dú)立的總線,這樣的做法就大大改善了指令執(zhí)行的頻寬,兩條總線可以同時(shí)工作,最大的優(yōu)點(diǎn)是當(dāng)一個(gè)指令在執(zhí)行時(shí),已經(jīng)可以去抓下一個(gè)指令,因此對(duì)于運(yùn)作的效率會(huì)有顯著的提升。 圖2 Harvard架構(gòu)與Von Neumann架構(gòu)比擬4存儲(chǔ)器根本知識(shí) PIC16F877a單片機(jī)共有3個(gè)存儲(chǔ)器塊,它們是程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,EEPROM數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器有它自己的總線,各自工作而不受對(duì)方影響。 PIC16F877a有一個(gè)13位程序計(jì)數(shù)器它的
19、尋址能力達(dá)8K×14程序存儲(chǔ)器空間,而且PIC16F877a的Flash存儲(chǔ)器空間正好是8K×14,當(dāng)尋址超出上面可執(zhí)行的地址范圍時(shí)將導(dǎo)致繚繞。復(fù)位向量在0000h中,而中斷向量在0004h中。 數(shù)據(jù)存儲(chǔ)器被分為4個(gè)體,它包括通用存放器(GPR)和特殊功能存放器(FSR),位 RP0,RP1是塊抉擇位。RP1 RP0 STATUS6:5=0 0 體0=01 體1 =10 體2 =11 體3 每個(gè)塊的范圍到達(dá)7Fh128bit,每個(gè)塊的較低位存儲(chǔ)單元保存SFRS,在SFRS上面是GPRS作為靜態(tài)RAM操作的。所有執(zhí)行的塊包括SFR。一些經(jīng)常使用的SFRS可以從一個(gè)體鏡像到另一
20、個(gè)體來減少代碼和實(shí)現(xiàn)快速訪問。 在實(shí)際應(yīng)用編程中會(huì)經(jīng)常使用到兩個(gè)比擬特殊的存放器:INDF和FSR。它們是實(shí)現(xiàn)間接尋址所必需的兩個(gè)存放器。位于RAM數(shù)據(jù)存儲(chǔ)器的的最頂端、地址碼最小的INDF存放器,它雖有地址編碼,但其實(shí)不是一個(gè)物理上的存放器。間接尋址通過使用INDF存放器而成為可能。任何使用INDF存放器的指令其實(shí)是通過文件選擇存放器FSR來訪問所指向的存放器。在PIC16F877a中所采用的這種獨(dú)特而巧妙的設(shè)想,可以使指令集得到很大程度的精簡。 電源控制存放器PCON電源控制存放器的內(nèi)容包括2個(gè)有效位,用其中一個(gè)來記錄和區(qū)分是否發(fā)生了上電復(fù)位、外部引腳輸入低電平引起的人工復(fù)位、還是看門狗超
21、時(shí)溢出復(fù)位。在本系統(tǒng)的設(shè)計(jì)中就會(huì)用到該存放器中的位進(jìn)行判斷進(jìn)入哪個(gè)程序模塊。 電源上電復(fù)位標(biāo)志位 =1 沒有發(fā)生上電復(fù)位 =0 發(fā)生了上電復(fù)位。當(dāng)發(fā)生上電復(fù)位之后,應(yīng)該用軟件及時(shí)將其置1,以便下次利用該比特來判斷是否發(fā)生了電源上電復(fù)位。2.FLASH程序存儲(chǔ)器的背景知識(shí) 存儲(chǔ)器是任何計(jì)算機(jī)系統(tǒng)都不可缺少的一類重要的外圍器件或部件。在計(jì)算機(jī)系統(tǒng)中應(yīng)用的存儲(chǔ)器有外部存儲(chǔ)器又叫輔助存儲(chǔ)器和內(nèi)部存儲(chǔ)器又叫主存儲(chǔ)器之分。外部存儲(chǔ)器有:磁帶存儲(chǔ)器多用于大型計(jì)算機(jī)、軟磁盤存儲(chǔ)器、硬磁盤存儲(chǔ)器、只讀光盤存儲(chǔ)器、可讀寫光盤存儲(chǔ)器、卡式存儲(chǔ)器例如IC卡等;內(nèi)部存儲(chǔ)器目前都用半導(dǎo)體存儲(chǔ)器。而常見的半導(dǎo)體存儲(chǔ)器器件分
22、為RAM、ROM和NVRAM,而它們往下又細(xì)分為多個(gè)分支,F(xiàn)LASH程序存儲(chǔ)器就是ROM中的一種,其內(nèi)容斷電后也不喪失,可反復(fù)檫寫屢次,并且容易實(shí)現(xiàn)在線檫寫,其檫寫速度根本同于EEPROM,但是其制造本錢更低、芯片面積更小。適應(yīng)于不僅要求內(nèi)容可以修改而掉電后又不喪失,而且又要求本錢更低、存儲(chǔ)容量更大的電器設(shè)備中。雖然EEPROM和FLASH存儲(chǔ)器都可以屢次電檫和電寫,但EEPROM的讀寫次數(shù)要高的多。因此,F(xiàn)LASH存儲(chǔ)器適合用來燒寫那些改動(dòng)不太頻繁的用戶程序或參數(shù),有利于降低單片機(jī)本錢。PIC16F87X單片機(jī)內(nèi)部同時(shí)具備兩種電檫和電寫存儲(chǔ)器,分別是用于存儲(chǔ)數(shù)據(jù)的EEPROM和用于固化用戶程
23、序的FLASH,它們都能夠在適合PIC單片機(jī)正常工作的VDD電壓范圍內(nèi)實(shí)現(xiàn)讀寫操作。也就是說,單片機(jī)內(nèi)部自帶電荷泵升壓電路,即使是燒寫操作也不需要外加高電壓。FLASH程序存儲(chǔ)器的讀寫操作是以14位的單指令字節(jié)為單位進(jìn)行的,對(duì)于其的寫操作實(shí)際是對(duì)某一指定單元進(jìn)行的“先檫除,后寫入的操作。對(duì)于程序存儲(chǔ)器的讀寫操作允許進(jìn)行“校驗(yàn)和的計(jì)算,以便提高可靠性。燒寫到FLASH程序存儲(chǔ)器中的內(nèi)容,不一定都是有效指令代碼,也可以利用這個(gè)14位寬的存儲(chǔ)器,存放一些固定參數(shù)等。當(dāng)CPU執(zhí)行到存放著這些無效指令代碼的區(qū)域是,產(chǎn)生與執(zhí)行空操作指令NOP同樣的結(jié)果。但是對(duì)于FLASH程序存儲(chǔ)器進(jìn)行單個(gè)指令字節(jié)的寫入操
24、作,將會(huì)暫停其他指令的執(zhí)行,直到寫操作完成,并在寫操作進(jìn)行期間,不能對(duì)程序存儲(chǔ)器的任何單元進(jìn)行取指操作,即在此期間不能執(zhí)行任何指令。原因是,F(xiàn)LASH是一個(gè)整體,當(dāng)對(duì)其任何一個(gè)單元進(jìn)行燒寫操作時(shí),升壓電荷泵啟開工作,對(duì)FLASH整體施加了高電壓,在這個(gè)不適合FLASH正常讀取操作的高電壓存續(xù)期間,F(xiàn)LASH暫時(shí)失去了程序存儲(chǔ)器的角色。總之,F(xiàn)LASH不能同時(shí)扮演“被燒寫存儲(chǔ)器和“取指令存儲(chǔ)器雙重角色。為了解決這個(gè)矛盾,在PIC16F87X系列單片機(jī)中采用的解決方案是,作為一個(gè)整體的FLASH程序存儲(chǔ)器,在對(duì)一個(gè)單元進(jìn)行燒寫并且電源自動(dòng)切換到電荷泵供電時(shí),CPU自動(dòng)停頓而進(jìn)入等待狀態(tài)。在一次燒寫
25、操作完畢,F(xiàn)LASH工作電壓再自動(dòng)切換到正常值時(shí),CPU才繼續(xù)執(zhí)行FLASH中的程序。對(duì)于PIC16F87X,在燒寫FLASH時(shí),雖然不能執(zhí)行FLASH中的指令,但是系統(tǒng)時(shí)鐘仍然振蕩,片內(nèi)各個(gè)外圍模塊仍然正常工作,可以檢測到中斷事件的發(fā)生,并進(jìn)行排隊(duì)等待,直到寫操作完成之后才會(huì)得到響應(yīng)。具體處理過程是,一旦寫操作完成,如果中斷源對(duì)應(yīng)的各個(gè)中斷屏蔽位都是開放的,并且該中斷源的中斷請(qǐng)求發(fā)生在寫操作期間,那么,在執(zhí)行完預(yù)先抓取到指令存放器中的指令之后,將立刻轉(zhuǎn)向中斷矢量地址去執(zhí)行中斷效勞子程序。FLASH不是直接影射到RAM存儲(chǔ)器地址空間的,也就是說,它并不與RAM統(tǒng)一編址。因此,F(xiàn)LASH兩者都不
26、能被用戶程序直接訪問,而只能通過專用存放器進(jìn)行間接的訪問。為了到達(dá)間接訪問它們的目的,額外增加了6個(gè)特殊功能存放器:EEADR、EEADRH、EEDATA、EEDATH、EECON1、EECON2。FLASH程序存儲(chǔ)器允許以指令字節(jié)14位進(jìn)行讀寫操作,但是寫操作會(huì)暫停CPU對(duì)FLASH區(qū)中指令的執(zhí)行,直到寫操作完成。當(dāng)CPU間接訪問FLASH程序存儲(chǔ)器時(shí),EEADRA和EEADRH一起用來存放指向某一單元的13位或12位或11位地址碼,EEDATA和EEDATH一起用來存放即將被寫入或讀出的14位數(shù)據(jù)實(shí)際是用戶程序的指令代碼。依據(jù)內(nèi)部配置FLASH的容量不同,又可以分為以下3種情況。 對(duì)于PI
27、C16F876877而言,配置的FLASH容量8K×14。用到了EEADR和EEADRH存放器對(duì)的低13位,213 =8K。雖然最高3位沒有用到,但是必須將這幾位清0。原因是,當(dāng)EEADR和EEADRH內(nèi)部16位地址碼超出8K時(shí),尋址范圍并不會(huì)繞回到FLASH的低地址單元上。例如,當(dāng)EEADR和EEADRH內(nèi)部16位地址碼為2000H時(shí),尋址到的單元并不是0000H號(hào)單元。這樣做也便于用戶程序在PIC16F87X不同型號(hào)之間的移植和兼容。 對(duì)于PIC16F873874而言,配置的FLASH容量為4K×14,為PIC16F876877的一半。所以僅用到了EEADR和EEADR
28、H內(nèi)部16位地址碼的低12位,212=4K。雖然最高4位沒有用到,但是必須將這4位清0,理由同上。 對(duì)于PIC16F870871872而言,配置的FLASH容量僅為2K×14,為PIC16F876877的1/4。所以,僅用到了EEADR和EEADRH內(nèi)部16位地址碼的低11位,211=2K。雖然最高5位沒有用到,但是必須要將這5位清0,理由同上。 3.片內(nèi)FLASH程序存儲(chǔ)器結(jié)構(gòu)和操作原理圖3 FLASH數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)圖PIC16F877a單片機(jī)內(nèi)部,用于固化用戶程序的FLASH 。也把它當(dāng)作一個(gè)外圍模塊來看待,對(duì)于它的操作與操作EEPROM數(shù)據(jù)存儲(chǔ)器也根本相同,只是其數(shù)據(jù)寬度和地址
29、寬度都需要增加,因此,地址存放器和數(shù)據(jù)存放器都增加到了一對(duì)。FLASH與單片機(jī)內(nèi)部總線之間,利用地址存放器對(duì)EEADR:EEADRH和數(shù)據(jù)存放器對(duì)EEDATA:EEDATH,作為用戶程序與FLASH存儲(chǔ)器打交道的對(duì)話窗口。從圖中可以發(fā)現(xiàn),以上述4個(gè)存放器為界,其左邊,在工作存放器W和4個(gè)存放器之間經(jīng)過內(nèi)部數(shù)據(jù)總線進(jìn)行的是數(shù)據(jù)傳送,是由CPU執(zhí)行用戶程序分4次來完成的;而右邊,在4個(gè)存放器與FLASH之間的數(shù)據(jù)傳送那么是靠硬件自動(dòng)實(shí)現(xiàn)的。單片機(jī)向FLASH程序存儲(chǔ)器燒寫的程序代碼或數(shù)據(jù),常常是最先來自于單片機(jī)外部,方法是可以經(jīng)過端口模塊如USART、SPI、I2C等,與外界進(jìn)行通信并獲取程序代碼
30、或數(shù)據(jù),然后寫入FLASH。燒寫FLASH與向EEPROM中燒寫數(shù)據(jù)的操作過程相比,主要的不同之處有:地址碼有13位、12位或11位分別對(duì)應(yīng)876877、873874和872871870,需要2個(gè)地址存放器并行工作;數(shù)據(jù)有14位,也需要2個(gè)數(shù)據(jù)存放器并行工作。對(duì)于以FLASH為對(duì)象的燒寫操作,與CPU以FLASH為指令來源的程序執(zhí)行,兩種操作行為之間存在著互斥關(guān)系。也就是說,這兩種操作絕對(duì)不能發(fā)生在同一時(shí)刻,其中的道理前面分析過。在對(duì)于FLASH寫操作期間,系統(tǒng)時(shí)鐘繼續(xù)振蕩,所有外設(shè)模塊繼續(xù)工作,如果中斷處于使能狀態(tài),發(fā)生的中斷請(qǐng)求將排隊(duì)等候。一旦寫操作完成,CPU將繼續(xù)執(zhí)行被中止的程序。能否
31、燒寫FLASH,還與系統(tǒng)配置字的WRT位有關(guān)。在用程序燒寫器經(jīng)過在線串行編程ICSP引腳,對(duì)單片機(jī)進(jìn)行燒寫編程時(shí)如果將WRT位清0,此后就不能再以執(zhí)行用戶程序來操縱控制存放器EECON的方式,燒寫FLASH程序存儲(chǔ)器,如表1所列。我們?cè)诖丝梢灾饕P(guān)注內(nèi)部寫操作與WRT的對(duì)應(yīng)關(guān)系。表1 內(nèi)部FLASH程序存儲(chǔ)器的讀寫狀態(tài)表配置位FLASH程序存儲(chǔ)器區(qū)間內(nèi)部ICSPCP1CP0WRT讀操作寫操作讀操作寫操作00X全部是不不不010未保護(hù)區(qū)間是不是不保護(hù)區(qū)間是不不不011未保護(hù)區(qū)間是是是不保護(hù)區(qū)間是不不不100未保護(hù)區(qū)間是不是不保護(hù)區(qū)間是不不不101未保護(hù)區(qū)間是是是不保護(hù)區(qū)間是不不不表2.10 內(nèi)部
32、FLASH程序存儲(chǔ)器的讀寫狀態(tài)表(續(xù))110全部是不是是111全部是是是是說明: ICSP讀寫操作指借助于“程序燒寫器經(jīng)過在線串行編程ICSP引腳對(duì)單片機(jī)片內(nèi)存儲(chǔ)器進(jìn)行讀寫操作; 內(nèi)部讀寫操作以執(zhí)行用戶程序和通過操縱控制存放器EECON的方式進(jìn)行讀寫操作燒寫FLASH比燒寫EEPROM更需要慎重,以防程序失控導(dǎo)致死機(jī)。與向EEPROM單元中一次燒寫數(shù)據(jù)過程一樣,燒寫FLASH也需要多個(gè)步驟才能完成:應(yīng)事先把長地址和長數(shù)據(jù)分別放入地址存放器對(duì)EEADRH:EEADR和數(shù)據(jù)存放器EEDATH:EEDATA中,把EEPGD控制位置1,再將寫允許位WREN置1,最后再把寫啟動(dòng)位WR置1。除了正在對(duì)于F
33、LASH進(jìn)行寫操作之外,平時(shí)WREN始終保持為0。只有在前一次的操作中把控制位WREN置1,后面的操作才能把控制位WR置1,也就是,這兩位的置1操作,絕對(duì)不能在1條指令的執(zhí)行過程中同時(shí)完成,必須安排兩條指令。在一次寫操作完畢之后,WREN位由軟件清0。在一次寫操作尚未完成之前,如果用軟件去除WREN位,那么不會(huì)停止本次寫操作過程。寫FLASH程序存儲(chǔ)器的操作步驟如下。把長地址碼分兩步送入地址存放器對(duì)EEADRH:EEADR中,并且保證地址不能超出目標(biāo)單片機(jī)內(nèi)部FLASH的最大地址范圍對(duì)于870871872,2K×14的最大地址碼是07FFH;對(duì)于873874,4K×14的最
34、大地址碼是0FFFH;對(duì)于876877,8K×14的最大地址碼是1FFFH。 把準(zhǔn)備燒寫的14位數(shù)據(jù)分兩步送入數(shù)據(jù)存放器對(duì)EEDATH:EEDATA中。把控制位EEPGD置位,以指定FLASH作為燒寫對(duì)象。 把寫使能位WREN置1,允許后面進(jìn)行寫操作。 去除全局中斷控制位GIE,關(guān)閉所有中斷請(qǐng)求。 執(zhí)行專用的“5指令序列這5條指令是固定搭配,道理同前:· 用一條移動(dòng)指令把55H寫入到W;· 用一條移動(dòng)指令再把W中的55H轉(zhuǎn)入控制存放器EECON2中;· 用一條移動(dòng)指令把AAH寫入到W;· 用一條移動(dòng)指令再把W中的AAH轉(zhuǎn)入控制存放器EECON2
35、中;· 操作啟動(dòng)控制位WR置1。 執(zhí)行2條NOP指令,給單片機(jī)足夠的進(jìn)入寫操作的時(shí)間。 放開中斷總屏蔽位如果打算利用EEIF中斷功能的話。 去除寫允許位WREN,在本次寫操作沒有完畢之前,禁止重開新的一次寫操作。當(dāng)寫操作完成時(shí),控制位WR被硬件自動(dòng)清0,中斷標(biāo)志位EEIF被硬件置1該位必須由軟件清0。由于在對(duì)FLASH的寫操作期間,CPU不能執(zhí)行任何指令,因此,就不能使用軟件查詢方式檢驗(yàn)WR狀態(tài)位或EEIF標(biāo)志位,來判定寫操作是否完成。對(duì)于FLASH程序存儲(chǔ)器的寫操作是事關(guān)系統(tǒng)平安運(yùn)行的大問題,需要謹(jǐn)慎對(duì)待,并且可以充分利用PIC16F87X單片機(jī)為解決此類問題而配置的一些片內(nèi)軟、硬
36、件資源,來設(shè)計(jì)一些有效的方法和措施。為了防止意外寫操作行為的發(fā)生,意外寫操作主要是指由于某些偶然的原因單片機(jī)自發(fā)進(jìn)行的、可能導(dǎo)致不良后果的一類寫操作行為。在某些特殊情況下單片機(jī)是不適合對(duì)FLASH程序存儲(chǔ)器進(jìn)行寫操作的。PIC16F87X單片機(jī)內(nèi)部建立了多種保障機(jī)制。在上電復(fù)位時(shí),寫操作使能控制位WREN自動(dòng)被清0,以防止上電期間可能發(fā)生的意外寫操作。72ms的上電延時(shí)復(fù)位定時(shí)器PWRT如果系統(tǒng)配置字定義為使能,即=0,也可以防止上電期間可能發(fā)生的意外寫操作。可以由軟件編程的寫操作使能控制位WREN,平時(shí)保持為0,為寫操作的啟動(dòng)設(shè)置了一道關(guān)卡。廠家規(guī)定的寫操作專用的“5指令序列,如果順序顛倒、
37、密碼出錯(cuò)、不連續(xù)執(zhí)行等,都不能啟動(dòng)寫操作,從而有效地防止關(guān)機(jī)、電源跌落、電源受到強(qiáng)烈干擾、軟件失控期間,可能發(fā)生的意外寫操作。對(duì)于FLASH程序存儲(chǔ)器防止意外寫操作,PIC16F87X單片機(jī)內(nèi)部,額外設(shè)置了更加嚴(yán)格的限制。那就是系統(tǒng)配置字中的CP1、CP0和WRT這3位見表2.2或系統(tǒng)配置字的說明局部。當(dāng)CP1:CP0=00時(shí),無論WRT等于何值,都會(huì)禁止任何對(duì)于FLASH存儲(chǔ)器的寫操作;當(dāng)WRT=0時(shí),無論CP1:CP0等于何值,也都會(huì)禁止任何對(duì)于FLASH存儲(chǔ)器的寫操作。況且這三位不是由軟件所能改動(dòng)的。一旦設(shè)置了此種寫保護(hù)功能,假設(shè)想把它解除,只能對(duì)芯片全部擦除。4編碼及解碼原理1遙控發(fā)射
38、器編碼發(fā)射電路編碼原理一般家庭用的DVD、VCD、音響都使用這種編碼方式。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖4所示。圖4 遙控碼的“0和“1 注:所有波形為接收端的與發(fā)射相反上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,到達(dá)降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射,如圖5所
39、示。圖5 遙控信號(hào)編碼波形圖UPD6121G產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶 識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼功能碼及其反碼。UPD6121G最多額128種不同組合的編碼。遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在4563ms之間,圖6為發(fā)射波形圖。圖6 遙控連發(fā)信號(hào)波形當(dāng)一個(gè)鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)引導(dǎo)碼9m
40、s,一個(gè)結(jié)果碼 4.5ms,低8位地址碼9ms18ms,高8位地址碼9ms18ms,8位數(shù)據(jù)碼9ms18ms和這8位數(shù)據(jù)的反碼 9ms18ms組成。如果按鍵按下超過108ms仍未松開,接下來發(fā)射的代碼連發(fā)碼將僅由起始碼9ms和結(jié)束碼2.25ms組成。圖7 引導(dǎo)碼 圖8連發(fā)碼2遙控信號(hào)接收及解碼 接收電路可以使用一種集紅外線接收和放大于一體的一體化紅
41、外線接收器,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。 接收器對(duì)外只有3個(gè)引腳:Out、GND、Vcc與單片機(jī)接口非常方便,如圖9所示。圖 9 脈沖信號(hào)輸出直接接在單片機(jī)的IO 口。 GND接在系統(tǒng)的地線0V; Vcc接在系統(tǒng)的電源正極+5V;把紅外遙控器每一個(gè)按鍵的鍵值讀出來,并且通過實(shí)驗(yàn)板上P1口的8個(gè)LED顯示出來,在解碼成功的同時(shí)并且能發(fā)
42、出“嘀嘀嘀的提示音。三 、各局部設(shè)計(jì)與實(shí)現(xiàn)一原理及總體設(shè)計(jì) 紅外遙控系統(tǒng) 通用紅外遙控系統(tǒng)由發(fā)射和接收兩大局部組成。應(yīng)用編/解碼專用集成電路芯片來進(jìn)行控制操作,如下圖。發(fā)射局部包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收局部包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路,如圖10所示。 圖10 紅外線遙控系統(tǒng)框圖二各局部軟硬件實(shí)現(xiàn)1.紅外傳感器這里我們采用HS0038,HS0038 一體化紅外接收頭,接收頻率為38kHz1kHz管腳依次為:
43、; 1GND 2VCC 3OUT連接時(shí),在VCC與GND之間并入一個(gè)0.1uF的電容有助于改良信號(hào)質(zhì)量。其可以用于遙控編碼接收,也可以用于低碼率的數(shù)據(jù)通訊。HS0038 信號(hào)電平: 38kHz 紅外發(fā)射接收到時(shí): OUT低電平輸出
44、; 38kHz 紅外發(fā)射接收不到時(shí):OUT高電平輸出Hs0038的使用考前須知: 38kHz紅外發(fā)射信號(hào)在HS0038接收角度范圍邊沿區(qū)域時(shí),接收信號(hào)不斷振蕩無法穩(wěn)定,因此為保證信號(hào)質(zhì)量,使用時(shí)發(fā)射接收盡力正對(duì)為好; HS0038用于數(shù)據(jù)通訊時(shí),在標(biāo)準(zhǔn)RS232下,波特率設(shè)置不要大于2400bps,否那么HS0038無法區(qū)分到接收的信號(hào)2400bps接近其帶寬極限了。2紅外鍵盤 紅外鍵盤原理圖,如圖11、12、13、14。圖11 圖12圖13圖143.通用同步異步收發(fā)器USARTPIC16F87X單片機(jī)內(nèi)部集成了兩個(gè)類型不
45、同的串行通信模塊,即通用同步異步收發(fā)器USARTuniversal synchronousasynchronous receiver transmitter模塊和主控同步串行端口MSSPmaster synchronous serial port模塊。前者的主要應(yīng)用目標(biāo)是系統(tǒng)之間的遠(yuǎn)距離串行通信;而后者的主要應(yīng)用目標(biāo)是系統(tǒng)內(nèi)部近距離的串行擴(kuò)展。與USART模塊有關(guān)的存放器有9個(gè),都在RAM陣列中具有統(tǒng)一的地址編碼。如表2所示。表2 與USART模塊相關(guān)的存放器存放器名稱存放器符號(hào)存放器地址存放器內(nèi)容bit7bit6bit5bit4bit3bit2bit1Bit0中斷控制存放器INTCON0BH
46、/8BH/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第一外設(shè)中斷標(biāo)志存放器PIR10CHPSPIFADIFRCIFTXIFSSPIFCCP1-IFTMR2-IFTMR1-IF第一外設(shè)中斷屏蔽存放器PIE18CHPSPIEADIERCIETXIESSPIECCP1-IETMR2-IETMR1-IFC口方向存放器TRISC87HTRISC7TRISC6TRISC5TRISC4TRISC3TRISC2TRISC1TRISC0發(fā)送狀態(tài)兼控制存放器TXSTA98HCSRCTX9TXENSYNC_BRGHTRMTTX9D接收狀態(tài)兼控制存放器RCSTA18HSPENRX
47、9SRENCRENADDENFERROERRRX9D發(fā)送存放器TXREG19HUSART發(fā)送緩沖存放器接收存放器RCREG1AHUSART接收緩沖存放器波特率存放器SPBRG99H對(duì)于波特率發(fā)生器產(chǎn)生波特率的定義值發(fā)送狀態(tài)兼控制存放器TXSTA,它是一個(gè)bit3不用,bit1只讀,其余6位可讀寫的存放器,其中沒有一位讀取時(shí)會(huì)返回0。其中的SYNC位是USART同步異步選擇位。等于1時(shí),是同步模式,等于0時(shí)是異步模式;TXEN是發(fā)送使能位,為1時(shí)是使能發(fā)送,為0時(shí)是關(guān)閉發(fā)送功能。RCSTA是接收狀態(tài)兼控制存放器,它是一個(gè)低三位只讀、高5位可讀寫的存放器。其中的CREN是連續(xù)接收使能位。在異步模式
48、下:等于1表示使能連續(xù)接收,等于0那么是禁止連續(xù)接收;在同步模式下,等于1表示使能連續(xù)接收,直到該位被清0為止。該位優(yōu)先于SREN位。等于0表示關(guān)閉連續(xù)接收。USART發(fā)送緩沖存放器TXREG也是一個(gè)用戶程序可讀寫的存放器。每次用戶發(fā)送的數(shù)據(jù)都是通過寫入該緩沖器來實(shí)現(xiàn)的。USART接收緩沖存放器RCREG是一個(gè)用戶程序可讀寫的存放器。每次從對(duì)方傳送過來的數(shù)據(jù),用戶都是從該緩沖器最后讀取出來的。SPBRG存放器是用來控制一個(gè)獨(dú)立的8位定時(shí)器的溢出周期。該存放器的設(shè)定值0255與波特率成反比關(guān)系。在同步方式下波特率僅由這一個(gè)存放器決定,在異步方式下那么由BRGH位和該存放器共同確定。四、總結(jié)和體會(huì)
49、通過這次紅外遙控的畢業(yè)設(shè)計(jì),學(xué)習(xí)和使用芯片的具體應(yīng)用,傳感器的選用,明白了不同芯片外圍接口使用時(shí)的工作方式。熟練掌握了它們的運(yùn)用環(huán)境和使用時(shí)的方式控制,以及編程命令字的設(shè)置。進(jìn)一步了解了所學(xué)芯片的根本的編程步驟及各種方式命令字的使用。將書本上所學(xué)的東西用在實(shí)際當(dāng)中了,這加深了我們對(duì)可編程器件的理解。在這次設(shè)計(jì)過程中我有幾點(diǎn)深刻的體會(huì)。1.經(jīng)過這次設(shè)計(jì),我體會(huì)到應(yīng)該掌握豐富的理論知識(shí),理論知識(shí)是設(shè)計(jì)的前提。但同時(shí)又決不能局限于理論。如某些地方的元件取值,應(yīng)該大膽的根據(jù)經(jīng)驗(yàn)去判斷。2.平時(shí)課堂上所學(xué)習(xí)的知識(shí)大多比擬陳舊,作為電子專業(yè)的學(xué)生,由于專業(yè)特點(diǎn)自己更要積極查閱當(dāng)前的最新信息資料。一個(gè)人不可
50、能什么都學(xué)過,什么都懂,因此,當(dāng)你在設(shè)計(jì)過程中需要用一些不曾學(xué)過的東西時(shí),就要去有針對(duì)性地查找資料,然后加以吸收利用,以提高自己的應(yīng)用能力,而且還能增長自己見識(shí),補(bǔ)充最新的專業(yè)知識(shí)。3.實(shí)踐能力得到了進(jìn)一步提高,在設(shè)計(jì)過程中積累了一些經(jīng)驗(yàn)。4.設(shè)計(jì)對(duì)以前學(xué)過的理論知識(shí)起到了回憶作用。在整個(gè)設(shè)計(jì)之中是對(duì)數(shù)字電路、模擬電路課程,單片機(jī),微機(jī)原理等課程是綜合應(yīng)用,并對(duì)其加以進(jìn)一步的消化和穩(wěn)固,加深了對(duì)以前所學(xué)課程知識(shí)的掌握。5.在設(shè)計(jì)過程中,深深感受到自己在對(duì)一些器件的了解上,還存在很大差距,對(duì)他們的功能,參數(shù)都不是太熟悉。但是通過這次理論與實(shí)際的結(jié)合之后,認(rèn)識(shí)比以前有不少提高。 五、謝辭首先感謝我
51、的父母,正是你們的默默的付出,才讓我完成大學(xué)四年的學(xué)習(xí),養(yǎng)育之恩,無以回報(bào),你們永遠(yuǎn)健康是我最大的幸福。還要感謝汪光宅老師,劉強(qiáng)老師,在畢業(yè)設(shè)計(jì)的制作過程中,老師們對(duì)我自始自終悉心教導(dǎo)、不斷鼓勵(lì)、一直催促我學(xué)習(xí)和制作,使我能夠順利完成畢業(yè)設(shè)計(jì) ,也教給了我很多新的知識(shí),令我獲益匪淺。他們嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度深深的影響著我,讓我受益一生,不管是工作還是生活中。同時(shí)我還要感謝梁明華,孫偉,劉亮宇,茍慶松等同學(xué),正是他們同時(shí)給我的幫助,才讓我的畢業(yè)設(shè)計(jì)能夠順利完成。在此,對(duì)汪光宅老師、劉強(qiáng)老師以及給我提供幫助的同學(xué)致以誠摯的謝意。祝你們工作順利,身體健康!附錄一紅外鍵盤相關(guān)程序用WHILE實(shí)現(xiàn)的延時(shí)程序v
52、oid delay16(unsigned int i)while(-i);/*void delay882us(void)delay16(100);/*void delay1000us(void)delay16(115);/*void delay4740us(void)delay16(546);非中斷方式串口輸出void ComOutChar(unsigned char OutData)SBUF = OutData; /輸出字符while(!TI); /空語句判斷字符是否發(fā)完TI = 0; /清TI/*/串口初始化晶振為.0592M方式波特率/*void InitCom(void)SCON =
53、0x50; /串口方式,允許接收TMOD = 0x21; /定時(shí)器定時(shí)方式,定時(shí)為模式,位模式TH1 = 0xFd;/設(shè)波特率為TL1 = 0xFd;PCON = 0x00; /波特率不加倍控制,SMOD為RI = 0;/清收發(fā)標(biāo)志TI = 0;TR1 = 1; /啟動(dòng)定時(shí)器二編碼及解碼程序接收,程序如下RF:BTFSC PORTB,2 GOTO RF1BTFSS DOWNBIT CLRF RTCCOUNTBSF DOWNBIT BTFSS UPBIT RETLW 0BTFSC IDBIT GOTO RF3MOVLW 2AHSUBWF RTCCOUNT,0BTFSS STATUS,0GOTO RF2MOVLW 36HSUBWF RTCCOUNT,0BTFSC STATUS,0GOTO RF2BTFSC IDBITGOTO RF3MOVLW .8MOVWF LOOPMOVLW .3MOVWF LOOPCOUNTCLRF DATACOUNTBSF IDBITBSF DOWNBITBCF UPBITCLRF RTCCOUNTRETLW 0RF1:BTFSS DOWNBITRETLW 0BSF UPBITRETLW 0RF2:BCF DOWNBITBCF UPBITBCF IDBITCLRF RTCCOUNTRETLW 0 ;遙控接收RF3:MOVLW 02HSUBWF RTCCOUN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效辦公技巧培訓(xùn)
- 裝修垃圾倒運(yùn)方案范本
- 唐山學(xué)院《中醫(yī)基礎(chǔ)綜合實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 昆明文理學(xué)院《歌唱的呼吸與發(fā)聲》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春大學(xué)旅游學(xué)院《激光器件與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 棗莊職業(yè)學(xué)院《工程制圖基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川大學(xué)《路橋工程施工與養(yǎng)護(hù)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度工程建設(shè)項(xiàng)目招標(biāo)投標(biāo)合同協(xié)議范本
- 天津商務(wù)職業(yè)學(xué)院《員工招聘與素質(zhì)測評(píng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 臨沂職業(yè)學(xué)院《電工電子技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 2022-2023學(xué)年浙江省杭州市余杭區(qū)小學(xué)三年級(jí)下冊(cè)語文期中試題及答案
- 醫(yī)用耗材服務(wù)方案
- 電動(dòng)汽車高壓系統(tǒng)基本原理與維修單選題100道及答案解析
- GB/T 9755-2024合成樹脂乳液墻面涂料
- 語音廳合同范例
- 《成分輸血指南》課件
- 【MOOC】新科學(xué)家英語:演講與寫作-哈爾濱工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 2024火力發(fā)電廠運(yùn)煤設(shè)備抑塵技術(shù)規(guī)范第4部分:輸送及轉(zhuǎn)運(yùn)設(shè)備抑塵
- 第一屆山東省職業(yè)能力大賽濟(jì)南市選拔賽制造團(tuán)隊(duì)挑戰(zhàn)賽項(xiàng)目技術(shù)工作文件(含樣題)
- 高中歷史選擇性必修第3冊(cè)試卷
- 老干工作業(yè)務(wù)培訓(xùn)
評(píng)論
0/150
提交評(píng)論