基于PIC單片機(jī)的紅外遙控設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第1頁(yè)
基于PIC單片機(jī)的紅外遙控設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第2頁(yè)
基于PIC單片機(jī)的紅外遙控設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第3頁(yè)
基于PIC單片機(jī)的紅外遙控設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第4頁(yè)
基于PIC單片機(jī)的紅外遙控設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、XXXX大學(xué)本科畢業(yè)設(shè)計(jì)基于PIC單片機(jī)的紅外遙控設(shè)計(jì)學(xué)生姓名 所 在 系專業(yè)名稱班 級(jí)學(xué) 號(hào)指導(dǎo)教師XXX大學(xué)教務(wù)處年 月畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得安陽(yáng)工學(xué)院及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了謝意。作 者 簽 名: 日 期: 指導(dǎo)教師簽名: 日期: 使用授權(quán)說(shuō)明本人完全了解安陽(yáng)工學(xué)院關(guān)于收

2、集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名: 日 期: 基于PIC單片機(jī)的紅外遙控設(shè)計(jì)學(xué)生: 指導(dǎo)教師:內(nèi)容提要:遙控器是現(xiàn)代電子控制系統(tǒng)的重要部件??梢岳脽o(wú)線電波、可見(jiàn)光、紅外光、超聲波作為傳輸介質(zhì)遠(yuǎn)距離操控電子設(shè)備。由于其功耗低、可靠性高和互相干擾小等優(yōu)點(diǎn),已在現(xiàn)實(shí)生活中得到了廣泛應(yīng)用。在目前的家用電器中,如電視機(jī)、家庭影院和數(shù)字音像設(shè)備中,大多都

3、采用了紅外線遙控電路。而這套“基于PIC單片機(jī)的紅外遙控設(shè)計(jì)”則是以Microchip公司生產(chǎn)的16F877a芯片為模版,價(jià)格低廉,電路結(jié)構(gòu)簡(jiǎn)單,據(jù)此本設(shè)計(jì)提出了一種簡(jiǎn)單易行的紅外遙控器的設(shè)計(jì)。關(guān)鍵詞:PIC單片機(jī) 紅外遙控 簡(jiǎn)單易行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, in

4、frared light, ultrasonic remote control as the transmission medium of electronic equipment. 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 telev

5、isions, home theater and digital audio-visual equipment, most of them have adopted the infrared 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, wher

6、eby the design of a simple infrared remote control design. Key words:PIC Single-chip infrared remote control is simple一、前言(一)開(kāi)發(fā)的背景自從1800年英國(guó)天文學(xué)家赫歇爾發(fā)現(xiàn)紅外輻射至今,紅外技術(shù)的發(fā)展經(jīng)歷了將近兩個(gè)世紀(jì)。從那時(shí)開(kāi)始,紅外輻射和紅外元件、部件的科學(xué)研究逐步發(fā)展,但發(fā)展比較緩慢,直到1940年前后才真正出現(xiàn)現(xiàn)代的紅外技術(shù)。隨著科技的不斷發(fā)展,各系統(tǒng)間的聯(lián)系越來(lái)越緊密,對(duì)各系統(tǒng)間的數(shù)據(jù)傳遞的要求也越來(lái)越高,但是外部設(shè)備越多,連接用的線也越多,短距離聯(lián)接的發(fā)展必然

7、要走向無(wú)線聯(lián)機(jī),目前主要的短距離無(wú)線連接技術(shù)有紅外通信技術(shù)和藍(lán)牙技術(shù),前者采用紅外線,后者采用無(wú)線電波作為信息傳播的媒介。紅外無(wú)線通訊的技術(shù)與藍(lán)牙相比較,紅外技術(shù)具有比較成熟,接口電路簡(jiǎn)單,成本低等諸多優(yōu)點(diǎn)。紅外遙控是通過(guò)紅外設(shè)備將單片機(jī)與外部設(shè)備聯(lián)系起來(lái)進(jìn)行通訊,實(shí)現(xiàn)系統(tǒng)間的無(wú)線通訊。自從紅外技術(shù)出現(xiàn)以來(lái),美國(guó)、英國(guó)、前蘇聯(lián)等國(guó)競(jìng)相發(fā)展。特別是美國(guó),大力研究紅外技術(shù)在軍事方面的應(yīng)用。目前,美國(guó)將紅外技術(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),這就是目前被廣泛使用的

8、IrDA紅外數(shù)據(jù)通訊協(xié)議及規(guī)范。IrDA專司制訂和推進(jìn)能共同使用的低成本紅外數(shù)據(jù)互連標(biāo)準(zhǔn),支持點(diǎn)對(duì)點(diǎn)的工作模式。由于標(biāo)準(zhǔn)的統(tǒng)一和應(yīng)用的廣泛,更多的公司開(kāi)始開(kāi)發(fā)和生產(chǎn)IrDA模塊,技術(shù)的進(jìn)步也使得IrDA模塊的集成越來(lái)越高,體積也越來(lái)越小。IrDA1.0可支持最高115.2kbps的通信速率,而IrDA1.1可以支持的通信速率達(dá)到4Mbps。本課題是專業(yè)知識(shí)綜合用于前沿科技的一個(gè)嘗試,本人堅(jiān)信此次研究和設(shè)計(jì)的成果具有一定的現(xiàn)實(shí)意義。(二)開(kāi)發(fā)的目標(biāo)本系統(tǒng)的基本任務(wù)和目標(biāo)就是,通過(guò)紅外發(fā)射電路的設(shè)計(jì),實(shí)現(xiàn)單片機(jī)利用紅外信號(hào),通過(guò)發(fā)射電路與外界聯(lián)系,實(shí)現(xiàn)對(duì)外的遙控控制,其中包含了輸入設(shè)備紅外鍵盤,和

9、紅外傳感器的使用。借助軟件部分的設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)的總體功能,紅外遙控。總的說(shuō)來(lái),完成此設(shè)計(jì)主要有四個(gè)模塊:·發(fā)射及接收電路的設(shè)計(jì);·編碼及解碼程序;·紅外傳感器的選取和使用;·紅外鍵盤的設(shè)計(jì)。(三)開(kāi)發(fā)的思路 設(shè)計(jì)基于單片機(jī)的紅外遙控,我們要從發(fā)射接收電路,編碼解碼,傳感器,紅外鍵盤幾個(gè)方向入手。在軟件部分中,我們主要是先要畫(huà)好系統(tǒng)原理圖,還有明確系統(tǒng)各部分功能,發(fā)射接收電路的設(shè)計(jì),編碼及解碼程序,在硬件部分中,主要是發(fā)射和接收電路的硬件設(shè)計(jì),紅外傳感器的使用,以及紅外鍵盤的設(shè)計(jì)。二、設(shè)計(jì)基礎(chǔ)(一)PIC單片機(jī)的介紹1PIC單片機(jī)常識(shí)據(jù)統(tǒng)計(jì),我國(guó)的單片機(jī)年

10、容量已達(dá)13億片,且每年以大約16%的速度增長(zhǎng),但相對(duì)于世界市場(chǎng)我國(guó)的占有率還不到1%。這說(shuō)明單片機(jī)應(yīng)用在我國(guó)才剛剛起步,有著廣闊的前景。培養(yǎng)單片機(jī)應(yīng)用人才,特別是在工程技術(shù)人員中普及單片機(jī)知識(shí)有著重要的現(xiàn)實(shí)意義。當(dāng)今單片機(jī)廠商琳瑯滿目,產(chǎn)品性能各異。針對(duì)具體情況,我們應(yīng)選何種型號(hào)呢?首先,我們來(lái)弄清兩個(gè)概念:集中指令集(CISC)和精簡(jiǎn)指令集(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)行,且由

11、于一般指令線寬于數(shù)據(jù)線,使其指令較同類CISC單片機(jī)指令包含更多的處理信息,執(zhí)行效率更高,速度亦更快。同時(shí),這種單片機(jī)指令多為單字節(jié),程序存儲(chǔ)器的空間利用率大大提高,有利于實(shí)現(xiàn)超小型化。屬于CISC結(jié)構(gòu)的單片機(jī)有Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺(tái)灣Winbond(華邦)W78系列、荷蘭Pilips的PCF80C51系列等;屬于RISC結(jié)構(gòu)的有Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韓國(guó)三星公司的KS57C系列4位單片機(jī)、臺(tái)灣義隆的EM-78系列等。一般來(lái)說(shuō),控制關(guān)系較簡(jiǎn)單的小家電,可以采用RIS

12、C型單片機(jī);控制關(guān)系較復(fù)雜的場(chǎng)合,如通訊產(chǎn)品、工業(yè)控制系統(tǒng)應(yīng)采用CISC單片機(jī)。不過(guò),RISC單片機(jī)的迅速完善,使其佼佼者在控制關(guān)系復(fù)雜的場(chǎng)合也毫不遜色。根據(jù)程序存儲(chǔ)方式的不同,單片機(jī)可分為EPROM、OTP(一次可編程)、QTP(掩膜)三種。我國(guó)一開(kāi)始都采用ROMless型單片機(jī)(片內(nèi)無(wú)ROM,需片外配EPROM),對(duì)單片機(jī)的普及起了很大作用,但這種強(qiáng)調(diào)接口的單片機(jī)無(wú)法廣泛應(yīng)用,甚至走入了誤區(qū)。如單片機(jī)的應(yīng)用一味強(qiáng)調(diào)接口,外接I/O及存儲(chǔ)器,便失去了單片機(jī)的特色。目前單片機(jī)大都將程序存儲(chǔ)體置于其內(nèi),給應(yīng)用帶來(lái)了極大的方便。2PIC單片機(jī)的特點(diǎn)和工作原理(1)PIC最大的特點(diǎn)是不搞單純的功能堆

13、積,而是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,靠發(fā)展多種型號(hào)來(lái)滿足不同層次的應(yīng)用要求。就實(shí)際而言,不同的應(yīng)用對(duì)單片機(jī)功能和資源的需求也是不同的。比如,一個(gè)摩托車的點(diǎn)火器需要一個(gè)I/O較少、RAM及程序存儲(chǔ)空間不大、可靠性較高的小型單片機(jī),若采用40腳且功能強(qiáng)大的單片機(jī),投資大不說(shuō),使用起來(lái)也不方便。PIC系列從低到高有幾十個(gè)型號(hào),可以滿足各種需要。其中,PIC12C508單片機(jī)僅有8個(gè)引腳,是世界上最小的單片機(jī)。(2)精簡(jiǎn)指令使其執(zhí)行效率大為提高。PIC系列8位CMOS單片機(jī)具有獨(dú)特的RISC結(jié)構(gòu),數(shù)據(jù)總線和指令總線分離的哈佛總線(Harvard)結(jié)構(gòu),使指令具有單字長(zhǎng)的特性,且允許指令碼的位數(shù)

14、可多于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)用程序開(kāi)發(fā)完成后立刻使該產(chǎn)品上市。(4)PIC有優(yōu)越開(kāi)發(fā)環(huán)境。OTP單片機(jī)開(kāi)發(fā)系統(tǒng)的實(shí)時(shí)性是一個(gè)重要的指標(biāo),象普通51單片機(jī)的開(kāi)發(fā)系統(tǒng)大都采用高檔型號(hào)仿真低檔型號(hào),其實(shí)時(shí)性不盡理想。PIC在推出一款新型號(hào)的同時(shí)推出相應(yīng)的仿真芯片,所有的開(kāi)發(fā)系統(tǒng)由專用的仿真芯片支持,實(shí)時(shí)性非常好。就我個(gè)人的經(jīng)驗(yàn)看,還沒(méi)有出現(xiàn)過(guò)仿真結(jié)果與實(shí)際運(yùn)行結(jié)果不同的情況。(5)其引腳具有防瞬態(tài)能力,通過(guò)限流電阻

15、可以接至220V交流電源,可直接與繼電器控制電路相連,無(wú)須光電耦合器隔離,給應(yīng)用帶來(lái)極大方便。(6)徹底的保密性。PIC以保密熔絲來(lái)保護(hù)代碼,用戶在燒入代碼后熔斷熔絲,別人再也無(wú)法讀出,除非恢復(fù)熔絲。目前,PIC采用熔絲深埋工藝,恢復(fù)熔絲的可能性極小。(7)自帶看門狗定時(shí)器,可以用來(lái)提高程序運(yùn)行的可靠性。(8)睡眠和低功耗模式。雖然PIC在這方面已不能與新型的TIMSP430相比,但在大多數(shù)應(yīng)用場(chǎng)合還是能滿足需要的。3PIC單片機(jī)的分類初檔8位單片機(jī):PIC12C5XXX16C5X系列PIC16C5X系列是最早在市場(chǎng)上得到發(fā)展的系列,因其價(jià)格較低,且有較完善的開(kāi)發(fā)手段,因此在國(guó)內(nèi)應(yīng)用最為廣泛;

16、而PIC12C5XX是世界第一個(gè)八腳低價(jià)位單片機(jī)可用于簡(jiǎn)單的智能控制等一些對(duì)單片機(jī)體積要求較高的地方,前景十分廣闊。中檔8位單片機(jī):PIC12C6XX/PIC16CXXX系列PIC中檔產(chǎn)品是Microchip近年來(lái)重點(diǎn)發(fā)展的系列產(chǎn)品,品種最為豐富,其性能比低檔產(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

17、系列PIC17CXX是適合高級(jí)復(fù)雜系統(tǒng)開(kāi)發(fā)的系列產(chǎn)品,其性能在中檔位單片機(jī)的基礎(chǔ)上增加了硬件乘法器,指令周期可達(dá)成160ns,它是目前世界上8位單片機(jī)中性價(jià)比最高的機(jī)種,可用于高、中檔產(chǎn)品的開(kāi)發(fā),如馬達(dá)控制(二)相關(guān)背景知識(shí) 116F877a基本知識(shí)(1)16F877a的基本架構(gòu)單片機(jī)是中央處理單元(CPU),存儲(chǔ)器(Memory)及輸入/輸出單元三大部分組成。其中CPU可分為兩部分,即算術(shù)邏輯單元(ALU)及控制單元(CU),CPU通過(guò)總線(BUS)執(zhí)行程式碼的Fetch、Decode、算術(shù)邏輯運(yùn)算及讀寫時(shí)鐘信號(hào)的控制。存儲(chǔ)器單元提供存放程序與資料的空間,包含只讀存儲(chǔ)器(ROM)和隨機(jī)存取存

18、儲(chǔ)器(RAM)。而輸入/輸出單元提供與外界周邊設(shè)備或元件的管道 ,如圖一所示。 圖1 單片機(jī)基本架構(gòu)(2)PIC16F877a的特性說(shuō)明如下:采用高性能的RISC CPU核心8位微電腦控制芯片8K×14Flash程序存儲(chǔ)器5組I/O端口(A,B,C,D,E)368Bytes數(shù)據(jù)存儲(chǔ)器及256Bytes的EEPROM數(shù)據(jù)存儲(chǔ)器2組8位定時(shí)器TMR0,TMR2,及1組16位定時(shí)器TMR1支持14個(gè)中斷處理(3)PIC16F877a單片機(jī)核心架構(gòu)PIC16F877a單片機(jī)是RISC架構(gòu)單片機(jī),它所采用的Harvard結(jié)構(gòu)和過(guò)去一般單片機(jī)所采用的Von Neumann結(jié)構(gòu)最大的差異在于總線的

19、改變,如圖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í)行到資料的寫入,最后的結(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

20、 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ù)器它的尋址能力達(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是塊抉

21、擇位。RP1 RP0 STATUS6:5=0 0 體0=01 體1 =10 體2 =11 體3 每個(gè)塊的范圍達(dá)到7Fh(128bit),每個(gè)塊的較低位存儲(chǔ)單元保存SFRS,在SFRS上面是GPRS作為靜態(tài)RAM操作的。所有執(zhí)行的塊包括SFR。一些經(jīng)常使用的SFRS可以從一個(gè)體鏡像到另一個(gè)體來(lái)減少代碼和實(shí)現(xiàn)快速訪問(wèn)。 在實(shí)際應(yīng)用編程中會(huì)經(jīng)常使用到兩個(gè)比較特殊的寄存器:INDF和FSR。它們是實(shí)現(xiàn)間接尋址所必需的兩個(gè)寄存器。位于RAM數(shù)據(jù)存儲(chǔ)器的的最頂端、地址碼最小的INDF寄存器,它雖有地址編碼,但其實(shí)不是一個(gè)物理上的寄存器。間接尋址通過(guò)使用INDF寄存器而成為可能。任何使用INDF寄存器的指令

22、其實(shí)是通過(guò)文件選擇寄存器FSR來(lái)訪問(wèn)所指向的寄存器。在PIC16F877a中所采用的這種獨(dú)特而巧妙的構(gòu)想,可以使指令集得到很大程度的精簡(jiǎn)。 電源控制寄存器PCON電源控制寄存器的內(nèi)容包括2個(gè)有效位,用其中一個(gè)來(lái)記錄和區(qū)分是否發(fā)生了上電復(fù)位、外部引腳輸入低電平引起的人工復(fù)位、還是看門狗超時(shí)溢出復(fù)位。在本系統(tǒng)的設(shè)計(jì)中就會(huì)用到該寄存器中的位進(jìn)行判斷進(jìn)入哪個(gè)程序模塊。 電源上電復(fù)位標(biāo)志位 =1 沒(méi)有發(fā)生上電復(fù)位 =0 發(fā)生了上電復(fù)位。當(dāng)發(fā)生上電復(fù)位之后,應(yīng)該用軟件及時(shí)將其置1,以便下次利用該比特來(lái)判斷是否發(fā)生了電源上電復(fù)位。2.FLASH程序存儲(chǔ)器的背景知識(shí) 存儲(chǔ)器是任何計(jì)算機(jī)系統(tǒng)都不可缺少的一類重要

23、的外圍器件或部件。在計(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ǔ)器。而常見(jiàn)的半導(dǎo)體存儲(chǔ)器器件分為RAM、ROM和NVRAM,而它們往下又細(xì)分為多個(gè)分支,F(xiàn)LASH程序存儲(chǔ)器就是ROM中的一種,其內(nèi)容斷電后也不丟失,可反復(fù)檫寫多次,并且容易實(shí)現(xiàn)在線檫寫,其檫寫速度基本同于EEPROM,但是其制造成本更低、芯片面積更小。適應(yīng)于不僅要求內(nèi)容可以修改而掉電后又不丟失,而且又要求成本更低、存儲(chǔ)容量更

24、大的電器設(shè)備中。雖然EEPROM和FLASH存儲(chǔ)器都可以多次電檫和電寫,但EEPROM的讀寫次數(shù)要高的多。因此,F(xiàn)LASH存儲(chǔ)器適合用來(lái)燒寫那些改動(dòng)不太頻繁的用戶程序或參數(shù),有利于降低單片機(jī)成本。PIC16F87X單片機(jī)內(nèi)部同時(shí)具備兩種電檫和電寫存儲(chǔ)器,分別是用于存儲(chǔ)數(shù)據(jù)的EEPROM和用于固化用戶程序的FLASH,它們都能夠在適合PIC單片機(jī)正常工作的VDD電壓范圍內(nèi)實(shí)現(xiàn)讀寫操作。也就是說(shuō),單片機(jī)內(nèi)部自帶電荷泵升壓電路,即使是燒寫操作也不需要外加高電壓。FLASH程序存儲(chǔ)器的讀寫操作是以14位的單指令字節(jié)為單位進(jìn)行的,對(duì)于其的寫操作實(shí)際是對(duì)某一指定單元進(jìn)行的“先檫除,后寫入”的操作。對(duì)于程序

25、存儲(chǔ)器的讀寫操作允許進(jìn)行“校驗(yàn)和”的計(jì)算,以便提高可靠性。燒寫到FLASH程序存儲(chǔ)器中的內(nèi)容,不一定都是有效指令代碼,也可以利用這個(gè)14位寬的存儲(chǔ)器,存放一些固定參數(shù)等。當(dāng)CPU執(zhí)行到存放著這些無(wú)效指令代碼的區(qū)域是,產(chǎn)生與執(zhí)行空操作指令NOP同樣的結(jié)果。但是對(duì)于FLASH程序存儲(chǔ)器進(jìn)行單個(gè)指令字節(jié)的寫入操作,將會(huì)暫停其他指令的執(zhí)行,直到寫操作完成,并在寫操作進(jìn)行期間,不能對(duì)程序存儲(chǔ)器的任何單元進(jìn)行取指操作,即在此期間不能執(zhí)行任何指令。原因是,F(xiàn)LASH是一個(gè)整體,當(dāng)對(duì)其任何一個(gè)單元進(jìn)行燒寫操作時(shí),升壓電荷泵啟動(dòng)工作,對(duì)FLASH整體施加了高電壓,在這個(gè)不適合FLASH正常讀取操作的高電壓存續(xù)期

26、間,F(xiàn)LASH暫時(shí)失去了程序存儲(chǔ)器的角色??傊現(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)。在一次燒寫操作完畢,F(xiàn)LASH工作電壓再自動(dòng)切換到正常值時(shí),CPU才繼續(xù)執(zhí)行FLASH中的程序。對(duì)于PIC16F87X,在燒寫FLASH時(shí),雖然不能執(zhí)行FLASH中的指令,但是系統(tǒng)時(shí)鐘仍然振蕩,片內(nèi)各個(gè)外圍模塊仍然正常工作,可以檢測(cè)到中斷事件的發(fā)生,并進(jìn)行排隊(duì)等待,直到寫操作完成之后才會(huì)得到響應(yīng)。具

27、體處理過(guò)程是,一旦寫操作完成,如果中斷源對(duì)應(yīng)的各個(gè)中斷屏蔽位都是開(kāi)放的,并且該中斷源的中斷請(qǐng)求發(fā)生在寫操作期間,那么,在執(zhí)行完預(yù)先抓取到指令寄存器中的指令之后,將立刻轉(zhuǎn)向中斷矢量地址去執(zhí)行中斷服務(wù)子程序。FLASH不是直接影射到RAM存儲(chǔ)器地址空間的,也就是說(shuō),它并不與RAM統(tǒng)一編址。因此,F(xiàn)LASH兩者都不能被用戶程序直接訪問(wèn),而只能通過(guò)專用寄存器進(jìn)行間接的訪問(wèn)。為了達(dá)到間接訪問(wèn)它們的目的,額外增加了6個(gè)特殊功能寄存器:EEADR、EEADRH、EEDATA、EEDATH、EECON1、EECON2。FLASH程序存儲(chǔ)器允許以指令字節(jié)(14位)進(jìn)行讀寫操作,但是寫操作會(huì)暫停CPU對(duì)FLASH

28、區(qū)中指令的執(zhí)行,直到寫操作完成。當(dāng)CPU間接訪問(wèn)FLASH程序存儲(chǔ)器時(shí),EEADRA和EEADRH一起用來(lái)存放指向某一單元的13位(或12位或11位)地址碼,EEDATA和EEDATH一起用來(lái)存放即將被寫入或讀出的14位數(shù)據(jù)(實(shí)際是用戶程序的指令代碼)。依據(jù)內(nèi)部配置FLASH的容量不同,又可以分為以下3種情況。 對(duì)于PIC16F876877而言,配置的FLASH容量8K×14。用到了EEADR和EEADRH寄存器對(duì)的低13位,213 =8K。雖然最高3位沒(méi)有用到,但是必須將這幾位清0。原因是,當(dāng)EEADR和EEADRH內(nèi)部16位地址碼超出8K時(shí),尋址范圍并不會(huì)繞回到FLASH的低地址

29、單元上。例如,當(dāng)EEADR和EEADRH內(nèi)部16位地址碼為2000H時(shí),尋址到的單元并不是0000H號(hào)單元。這樣做也便于用戶程序在PIC16F87X不同型號(hào)之間的移植和兼容。 對(duì)于PIC16F873874而言,配置的FLASH容量為4K×14,為PIC16F876877的一半。所以僅用到了EEADR和EEADRH內(nèi)部16位地址碼的低12位,212=4K。雖然最高4位沒(méi)有用到,但是必須將這4位清0,理由同上。 對(duì)于PIC16F870871872而言,配置的FLASH容量?jī)H為2K×14,為PIC16F876877的1/4。所以,僅用到了EEADR和EEADRH內(nèi)部16位地址碼的

30、低11位,211=2K。雖然最高5位沒(méi)有用到,但是必須要將這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è)外圍模塊來(lái)看待,對(duì)于它的操作與操作EEPROM數(shù)據(jù)存儲(chǔ)器也基本相同,只是其數(shù)據(jù)寬度和地址寬度都需要增加,因此,地址寄存器和數(shù)據(jù)寄存器都增加到了一對(duì)。FLASH與單片機(jī)內(nèi)部總線之間,利用地址寄存器對(duì)EEADR:EEADRH和數(shù)據(jù)寄存器對(duì)EEDATA:EEDATH,作為用戶程序與FLASH存儲(chǔ)器打交道的對(duì)話窗口。從圖中可以發(fā)現(xiàn),以上述4個(gè)寄存器為界,其左邊,在工作寄存

31、器W和4個(gè)寄存器之間經(jīng)過(guò)內(nèi)部數(shù)據(jù)總線進(jìn)行的是數(shù)據(jù)傳送,是由CPU執(zhí)行用戶程序分4次來(lái)完成的;而右邊,在4個(gè)寄存器與FLASH之間的數(shù)據(jù)傳送則是靠硬件自動(dòng)實(shí)現(xiàn)的。單片機(jī)向FLASH程序存儲(chǔ)器燒寫的程序代碼或數(shù)據(jù),常常是最先來(lái)自于單片機(jī)外部,方法是可以經(jīng)過(guò)端口模塊(如USART、SPI、I2C等),與外界進(jìn)行通信并獲取程序代碼或數(shù)據(jù),然后寫入FLASH。燒寫FLASH與向EEPROM中燒寫數(shù)據(jù)的操作過(guò)程相比,主要的不同之處有:地址碼有13位、12位或11位(分別對(duì)應(yīng)876877、873874和872871870),需要2個(gè)地址寄存器并行工作;數(shù)據(jù)有14位,也需要2個(gè)數(shù)據(jù)寄存器并行工作。對(duì)于以FLA

32、SH為對(duì)象的燒寫操作,與CPU以FLASH為指令來(lái)源的程序執(zhí)行,兩種操作行為之間存在著互斥關(guān)系。也就是說(shuō),這兩種操作絕對(duì)不能發(fā)生在同一時(shí)刻,其中的道理前面分析過(guò)。在對(duì)于FLASH寫操作期間,系統(tǒng)時(shí)鐘繼續(xù)振蕩,所有外設(shè)模塊繼續(xù)工作,如果中斷處于使能狀態(tài),發(fā)生的中斷請(qǐng)求將排隊(duì)等候。一旦寫操作完成,CPU將繼續(xù)執(zhí)行被中止的程序。能否燒寫FLASH,還與系統(tǒng)配置字的WRT位有關(guān)。在用程序燒寫器經(jīng)過(guò)在線串行編程(ICSP)引腳,對(duì)單片機(jī)進(jìn)行燒寫編程時(shí)如果將WRT位清0,此后就不能再以執(zhí)行用戶程序來(lái)操縱控制寄存器EECON的方式,燒寫FLASH程序存儲(chǔ)器,如表1所列。我們?cè)诖丝梢灾饕P(guān)注內(nèi)部寫操作與WRT

33、的對(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)部FLASH程序存儲(chǔ)器的讀寫狀態(tài)表(續(xù))110全部是不是是111全部是是是是說(shuō)明: ICSP讀寫操作指借助于“程序燒寫器”經(jīng)過(guò)在線串行編程(ICSP)引腳對(duì)單片機(jī)片內(nèi)存儲(chǔ)器進(jìn)行讀寫操作; 內(nèi)部讀寫操作以執(zhí)行用戶程序和通過(guò)操縱控制寄存器EECON的方式進(jìn)行讀寫操作燒寫FL

34、ASH比燒寫EEPROM更需要慎重,以防程序失控導(dǎo)致死機(jī)。與向EEPROM單元中一次燒寫數(shù)據(jù)過(guò)程一樣,燒寫FLASH也需要多個(gè)步驟才能完成:應(yīng)事先把長(zhǎng)地址和長(zhǎng)數(shù)據(jù)分別放入地址寄存器對(duì)EEADRH:EEADR和數(shù)據(jù)寄存器EEDATH:EEDATA中,把EEPGD控制位置1,再將寫允許位WREN置1,最后再把寫啟動(dòng)位WR置1。除了正在對(duì)于FLASH進(jìn)行寫操作之外,平時(shí)WREN始終保持為0。只有在前一次的操作中把控制位WREN置1,后面的操作才能把控制位WR置1,也就是,這兩位的置1操作,絕對(duì)不能在1條指令的執(zhí)行過(guò)程中同時(shí)完成,必須安排兩條指令。在一次寫操作完畢之后,WREN位由軟件清0。在一次寫操

35、作尚未完成之前,如果用軟件清除WREN位,則不會(huì)停止本次寫操作過(guò)程。寫FLASH程序存儲(chǔ)器的操作步驟如下。把長(zhǎng)地址碼分兩步送入地址寄存器對(duì)EEADRH:EEADR中,并且保證地址不能超出目標(biāo)單片機(jī)內(nèi)部FLASH的最大地址范圍(對(duì)于870871872,2K×14的最大地址碼是07FFH;對(duì)于873874,4K×14的最大地址碼是0FFFH;對(duì)于876877,8K×14的最大地址碼是1FFFH)。 把準(zhǔn)備燒寫的14位數(shù)據(jù)分兩步送入數(shù)據(jù)寄存器對(duì)EEDATH:EEDATA中。把控制位EEPGD置位,以指定FLASH作為燒寫對(duì)象。 把寫使能位WREN置1,允許后面進(jìn)行寫操作

36、。 清除全局中斷控制位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中;· 操作啟動(dòng)控制位WR置1。 執(zhí)行2條NOP指令,給單片機(jī)足夠的進(jìn)入寫操作的時(shí)間。 放開(kāi)中斷總屏蔽位(如果打算利用EEIF中斷功能的話)。 清除寫允許位WREN,在本次寫操作沒(méi)有完畢之前,禁止重開(kāi)新的一次寫操作。當(dāng)寫操作完成時(shí),控制位WR被硬件

37、自動(dòng)清0,中斷標(biāo)志位EEIF被硬件置1(該位必須由軟件清0)。由于在對(duì)FLASH的寫操作期間,CPU不能執(zhí)行任何指令,因此,就不能使用軟件查詢方式檢驗(yàn)WR狀態(tài)位或EEIF標(biāo)志位,來(lái)判定寫操作是否完成。對(duì)于FLASH程序存儲(chǔ)器的寫操作是事關(guān)系統(tǒng)安全運(yùn)行的大問(wèn)題,需要謹(jǐn)慎對(duì)待,并且可以充分利用PIC16F87X單片機(jī)為解決此類問(wèn)題而配置的一些片內(nèi)軟、硬件資源,來(lái)設(shè)計(jì)一些有效的方法和措施。為了防止意外寫操作行為的發(fā)生,(意外寫操作主要是指由于某些偶然的原因單片機(jī)自發(fā)進(jìn)行的、可能導(dǎo)致不良后果的一類寫操作行為。在某些特殊情況下單片機(jī)是不適合對(duì)FLASH程序存儲(chǔ)器進(jìn)行寫操作的。)PIC16F87X單片機(jī)內(nèi)

38、部建立了多種保障機(jī)制。在上電復(fù)位時(shí),寫操作使能控制位WREN自動(dòng)被清0,以防止上電期間可能發(fā)生的意外寫操作。72ms的上電延時(shí)復(fù)位定時(shí)器PWRT(如果系統(tǒng)配置字定義為使能,即=0),也可以防止上電期間可能發(fā)生的意外寫操作??梢杂绍浖幊痰膶懖僮魇鼓芸刂莆籛REN,平時(shí)保持為0,為寫操作的啟動(dòng)設(shè)置了一道關(guān)卡。廠家規(guī)定的寫操作專用的“5指令序列”,如果順序顛倒、密碼出錯(cuò)、不連續(xù)執(zhí)行等,都不能啟動(dòng)寫操作,從而有效地防止關(guān)機(jī)、電源跌落、電源受到強(qiáng)烈干擾、軟件失控期間,可能發(fā)生的意外寫操作。對(duì)于FLASH程序存儲(chǔ)器防止意外寫操作,PIC16F87X單片機(jī)內(nèi)部,額外設(shè)置了更加嚴(yán)格的限制。那就是系統(tǒng)配置字中

39、的CP1、CP0和WRT這3位(見(jiàn)表2.2或系統(tǒng)配置字的說(shuō)明部分)。當(dāng)CP1:CP0=00時(shí),無(wú)論WRT等于何值,都會(huì)禁止任何對(duì)于FLASH存儲(chǔ)器的寫操作;當(dāng)WRT=0時(shí),無(wú)論CP1:CP0等于何值,也都會(huì)禁止任何對(duì)于FLASH存儲(chǔ)器的寫操作。況且這三位不是由軟件所能改動(dòng)的。一旦設(shè)置了此種寫保護(hù)功能,若想把它解除,只能對(duì)芯片全部擦除。4編碼及解碼原理(1)遙控發(fā)射器編碼發(fā)射電路編碼原理(一般家庭用的DVD、VCD、音響都使用這種編碼方式)。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周

40、期為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á)到降低電源功耗的目的。然后再通過(guò)紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射,如圖5所示。圖5 遙控信號(hào)編碼波形圖UPD6121G產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶 識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(

41、功能碼)及其反碼。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è)鍵按下超過(guò)36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)引導(dǎo)碼(9ms),一個(gè)結(jié)果碼 (4.5ms),低8位地址碼(9ms18ms),高8位地址碼(9ms18ms),8位數(shù)據(jù)碼(9ms18ms)和這8位數(shù)據(jù)的反碼 (9ms18ms)組成。如果按鍵按下超過(guò)108ms仍未松開(kāi),接下來(lái)發(fā)射

42、的代碼(連發(fā)碼)將僅由起始碼(9ms)和結(jié)束碼(2.25ms)組成。圖7 引導(dǎo)碼                  圖8連發(fā)碼(2)遙控信號(hào)接收及解碼    接收電路可以使用一種集紅外線接收和放大于一體的一體化紅外線接收器,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。 &

43、#160;  接收器對(duì)外只有3個(gè)引腳:Out、GND、Vcc與單片機(jī)接口非常方便,如圖9所示。圖 9 脈沖信號(hào)輸出直接接在單片機(jī)的IO 口。     GND接在系統(tǒng)的地線(0V);     Vcc接在系統(tǒng)的電源正極(+5V);把紅外遙控器每一個(gè)按鍵的鍵值讀出來(lái),并且通過(guò)實(shí)驗(yàn)板上P1口的8個(gè)LED顯示出來(lái),在解碼成功的同時(shí)并且能發(fā)出“嘀嘀嘀”的提示音。三 、各部分設(shè)計(jì)與實(shí)現(xiàn)(一)原理及總體設(shè)計(jì) 紅外遙控系統(tǒng)    通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成。應(yīng)

44、用編/解碼專用集成電路芯片來(lái)進(jìn)行控制操作,如圖所示。發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路,如圖10所示。 圖10 紅外線遙控系統(tǒng)框圖(二)各部分軟硬件實(shí)現(xiàn)1.紅外傳感器這里我們采用HS0038,HS0038 一體化紅外接收頭,接收頻率為38kHz1kHz管腳依次為:              1GND      2VCC   &#

45、160;      3OUT連接時(shí),在VCC與GND之間并入一個(gè)0.1uF的電容有助于改進(jìn)信號(hào)質(zhì)量。其可以用于遙控編碼接收,也可以用于低碼率的數(shù)據(jù)通訊。HS0038 信號(hào)電平:           38kHz 紅外發(fā)射接收到時(shí):  OUT低電平輸出          38kHz 紅外發(fā)射接收不到時(shí):OUT高電平輸出Hs0038的使用注意事項(xiàng): 38

46、kHz紅外發(fā)射信號(hào)在HS0038接收角度范圍邊沿區(qū)域時(shí),接收信號(hào)不斷振蕩無(wú)法穩(wěn)定,因此為保證信號(hào)質(zhì)量,使用時(shí)發(fā)射接收盡力正對(duì)為好; HS0038用于數(shù)據(jù)通訊時(shí),在標(biāo)準(zhǔn)RS232下,波特率設(shè)置不要大于2400bps,否則HS0038無(wú)法區(qū)分到接收的信號(hào)(2400bps接近其帶寬極限了)。2紅外鍵盤 紅外鍵盤原理圖,如圖11、12、13、14。圖11 圖12圖13圖143.通用同步異步收發(fā)器USARTPIC16F87X單片機(jī)內(nèi)部集成了兩個(gè)類型不同的串行通信模塊,即通用同步異步收發(fā)器USART(universal synchronousasynchronous receiver transmitte

47、r)模塊和主控同步串行端口MSSP(master 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/8BH/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第一外設(shè)中斷標(biāo)志寄存器PIR10CHPSPIFADIFRC

48、IFTXIFSSPIFCCP1-IFTMR2-IFTMR1-IF第一外設(shè)中斷屏蔽寄存器PIE18CHPSPIEADIERCIETXIESSPIECCP1-IETMR2-IETMR1-IFC口方向寄存器TRISC87HTRISC7TRISC6TRISC5TRISC4TRISC3TRISC2TRISC1TRISC0發(fā)送狀態(tài)兼控制寄存器TXSTA98HCSRCTX9TXENSYNC_BRGHTRMTTX9D接收狀態(tài)兼控制寄存器RCSTA18HSPENRX9SRENCRENADDENFERROERRRX9D發(fā)送寄存器TXREG19HUSART發(fā)送緩沖寄存器接收寄存器RCREG1AHUSART接收緩沖寄

49、存器波特率寄存器SPBRG99H對(duì)于波特率發(fā)生器產(chǎn)生波特率的定義值發(fā)送狀態(tài)兼控制寄存器TXSTA,它是一個(gè)bit3不用,bit1只讀,其余6位可讀寫的寄存器,其中沒(méi)有一位讀取時(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ù)接收使能位。在異步模式下:等于1表示使能連續(xù)接收,等于0則是禁止連續(xù)接收;在同步模式下,等于1表示使能連續(xù)接收,直到該位被清0為止。該位優(yōu)先于SREN位。等于0表示關(guān)閉連

50、續(xù)接收。USART發(fā)送緩沖寄存器TXREG也是一個(gè)用戶程序可讀寫的寄存器。每次用戶發(fā)送的數(shù)據(jù)都是通過(guò)寫入該緩沖器來(lái)實(shí)現(xiàn)的。USART接收緩沖寄存器RCREG是一個(gè)用戶程序可讀寫的寄存器。每次從對(duì)方傳送過(guò)來(lái)的數(shù)據(jù),用戶都是從該緩沖器最后讀取出來(lái)的。SPBRG寄存器是用來(lái)控制一個(gè)獨(dú)立的8位定時(shí)器的溢出周期。該寄存器的設(shè)定值(0255)與波特率成反比關(guān)系。在同步方式下波特率僅由這一個(gè)寄存器決定,在異步方式下則由BRGH位和該寄存器共同確定。四、總結(jié)和體會(huì)通過(guò)這次紅外遙控的畢業(yè)設(shè)計(jì),學(xué)習(xí)和使用芯片的具體應(yīng)用,傳感器的選用,明白了不同芯片外圍接口使用時(shí)的工作方式。熟練掌握了它們的運(yùn)用環(huán)境和使用時(shí)的方式控

51、制,以及編程命令字的設(shè)置。進(jìn)一步了解了所學(xué)芯片的基本的編程步驟及各種方式命令字的使用。將書(shū)本上所學(xué)的東西用在實(shí)際當(dāng)中了,這加深了我們對(duì)可編程器件的理解。在這次設(shè)計(jì)過(guò)程中我有幾點(diǎn)深刻的體會(huì)。1.經(jīng)過(guò)這次設(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è)人不可能什么都學(xué)過(guò),什么都懂,因此,當(dāng)你在設(shè)計(jì)過(guò)程中需要用一些不曾學(xué)過(guò)的東西時(shí),就要去有針對(duì)性地查找資料,然后加以吸收利用,以提高自己的應(yīng)用能力,而且還能

52、增長(zhǎng)自己見(jiàn)識(shí),補(bǔ)充最新的專業(yè)知識(shí)。3.實(shí)踐能力得到了進(jìn)一步提高,在設(shè)計(jì)過(guò)程中積累了一些經(jīng)驗(yàn)。4.設(shè)計(jì)對(duì)以前學(xué)過(guò)的理論知識(shí)起到了回顧作用。在整個(gè)設(shè)計(jì)之中是對(duì)數(shù)字電路、模擬電路課程,單片機(jī),微機(jī)原理等課程是綜合應(yīng)用,并對(duì)其加以進(jìn)一步的消化和鞏固,加深了對(duì)以前所學(xué)課程知識(shí)的掌握。5.在設(shè)計(jì)過(guò)程中,深深感受到自己在對(duì)一些器件的了解上,還存在很大差距,對(duì)他們的功能,參數(shù)都不是太熟悉。但是通過(guò)這次理論與實(shí)際的結(jié)合之后,認(rèn)識(shí)比以前有不少提高。 五、謝辭首先感謝我的父母,正是你們的默默的付出,才讓我完成大學(xué)四年的學(xué)習(xí),養(yǎng)育之恩,無(wú)以回報(bào),你們永遠(yuǎn)健康是我最大的幸福。還要感謝汪光宅老師,劉強(qiáng)老師,在畢業(yè)設(shè)計(jì)的制

53、作過(guò)程中,老師們對(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é)致以誠(chéng)摯的謝意。祝你們工作順利,身體健康!附錄(一)紅外鍵盤相關(guān)程序用WHILE實(shí)現(xiàn)的延時(shí)程序void delay16(unsigned int i)while(-i);/*void delay882us(void)delay16(100)

54、;/*void delay1000us(void)delay16(115);/*void delay4740us(void)delay16(546);非中斷方式串口輸出void ComOutChar(unsigned char OutData)SBUF = OutData; /輸出字符while(!TI); /空語(yǔ)句判斷字符是否發(fā)完TI = 0; /清TI/*/串口初始化晶振為.0592M方式波特率/*void InitCom(void)SCON = 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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論