freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于pic單片機(jī)的紅外遙控設(shè)計-文庫吧資料

2025-01-22 22:14本頁面
  

【正文】 設(shè)中斷 屏蔽寄存器 PIE1 8CH PSPIE ADIE RCIE TXIE SSPIE CCP1 IE TMR2 IE TMR1 IF C口方向 寄存器 TRISC 87H TRISC 7 TRISC 6 TRISC 5 TRISC 4 TRISC 3 TRISC 2 TRISC 1 TRISC 0 發(fā)送狀態(tài)兼 控制寄存器 TXSTA 98H CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D 接收RCSTA 18H SPEN RX9 SREN CREN ADDEN FERR OERR RX9D X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 21 狀態(tài)兼 控制寄存器 發(fā)送寄存器 TXREG 19H USART發(fā)送緩沖寄存器 接收寄存器 RCREG 1AH USART接收緩沖寄存器 波特率寄存器 SPBRG 99H 對于波特率發(fā)生器產(chǎn)生波特率的定義值 發(fā)送狀態(tài)兼控制寄存器 TXSTA,它是一個 bit3不用, bit1 只讀,其余 6位可讀∕寫的寄存器,其中沒有一位讀取時會返回 0。與 USART 模塊有關(guān)的寄存器有 9 個,都在 RAM 陣列中具有統(tǒng)一的地址編碼。 X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 18 圖 11 圖 12 圖 13 X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 19 圖 14 ∕異步收發(fā)器 USART PIC16F87X 單片機(jī)內(nèi)部集成了兩個類型不同的串行通信模塊,即通用同步∕異步收發(fā)器 USART( universal synchronous∕ asynchronous receiver transmitter)模塊和主控同步串行端口 MSSP( master synchronous serial port)模塊。 HS0038 信號電平: 38kHz 紅外發(fā)射接收到時: OUT低電平輸出 38kHz 紅外發(fā)射接收不 到時: OUT高電平輸出 Hs0038的使用注意事項: ① 38kHz紅外發(fā)射信號在 HS0038接收角度范圍邊沿區(qū)域時,接收信號不斷振蕩無法穩(wěn)定,因此為保證信號質(zhì)量,使用時發(fā)射接收盡力正對為好; ② HS0038 用于數(shù)據(jù)通訊時,在標(biāo)準(zhǔn) RS232下,波特率設(shè)置不要大于 2400bps,否則 HS0038無法區(qū)分到接收的信號( 2400bps 接近其帶寬極限了)。 圖 10 紅外線遙控系統(tǒng) 框圖 (二 )各部分軟硬件實現(xiàn) 這里我們采用 HS0038, HS0038 一體化紅外接收頭,接收頻率為 38kHz+ 1kHz管腳依次為: 1 - GND 2 -VCC 3— OUT 連接時,在 VCC 與 GND 之間并入一個 的電容有助于改進(jìn)信號質(zhì)量。應(yīng)用編 /解碼專用集成電路芯片來進(jìn)行控制操作,如圖所示。 ② GND 接在系統(tǒng) 的地線( 0V); ③ V cc 接 在 系統(tǒng)的電源正極( +5V); 把紅外遙控器每一個按鍵的鍵值讀出來,并且通過實驗板上 P1 口的 8 個 LED顯示出來,在解碼成功的同時并且能發(fā)出 “ 嘀嘀嘀 ” 的提示音。 接收器對外只有 3個引腳: Out、 GND、 Vcc與單片機(jī)接口非常方便,如圖9所示。如果 按 鍵按下超過 108ms仍未松開,接下來發(fā)射的代碼(連發(fā)碼)將僅由起始碼( 9ms)和結(jié)束碼( )組成。一組碼本身的持續(xù)時間隨它包含的二進(jìn)制 “0” 和 “1” 的個數(shù)不同而不同,大約在 45~ 63ms之間,圖 6為發(fā)射波形圖。 UPD6121G最多額 128種不同組合的編碼。 圖 5 遙控信號編碼波形圖 UPD6121G產(chǎn)生的遙控編碼是連續(xù)的 32位二進(jìn)制碼組,其中前 16位為用戶識別碼 能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。 圖 4 遙控碼的 “0” 和 “1” (注:所有波形為接收端的與發(fā)射相反) 上述 “0” 和 “1” 組成的 32位二進(jìn)制碼經(jīng) 38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。一旦設(shè)置 了此種寫保護(hù)功能,若想把它解除,只能對芯片全部擦除。當(dāng) CP1: CP0=00 時,無論 WRT等于何值,都會禁止任何對于 FLASH存儲器的寫操作;當(dāng) WRT=0時,無論 CP1: CP0等于何值,也都會禁止任何對于 FLASH 存儲器的寫操作。 對于 FLASH 程序存儲器防止意外寫操作, PIC16F87X單片機(jī)內(nèi)部,額外設(shè)置了更加嚴(yán)格的限制。 可以由軟件編程的寫操作使能控制位 WREN,平時保持為 0,為寫操作的啟動設(shè)置了一道關(guān)卡。 在上電復(fù)位時,寫操作使能控制位 WREN 自動被清 0,以防止上電期間可能發(fā)生的意外寫操作。在某些特殊情況下單片機(jī)是不適合對 FLASH 程序存儲器進(jìn)行寫操作的。 對于 FLASH 程序存儲器的寫操作是事關(guān)系統(tǒng)安全運行的大問題,需要謹(jǐn)慎對待,并且可以充分利用 PIC16F87X 單片機(jī)為解決此類問題而配置的一些片內(nèi)軟、硬件資源,來設(shè)計一些有效的方法和措施。 當(dāng)寫操作完成時,控制位 WR被硬件自動清 0,中斷標(biāo)志位 EEIF 被硬件置 1(該位必須由軟件清 0)。 ⑦ 放開中斷總屏蔽位(如果打算利用 EEIF中斷功能的話)。 操作啟動控制位 WR置 1。 用一條移動指令把 AAH寫入到 W; 用一條移動指令把 55H寫入到 W; ④ 清除全局中斷控制位 GIE,關(guān)閉所有中斷請求。 ② 把控制位 EEPGD置位,以指定 FLASH 作為燒寫對象。 把長地址碼分兩步送入地址寄存器對 EEADRH: EEADR 中,并且保證地址不能超出目標(biāo)單片機(jī)內(nèi)部 FLASH 的最大地址范圍(對于 870∕ 871∕ 872, 2K 14 的最大地址碼是 07FFH;對于 873∕ 874, 4K 14的最大地址碼是 0FFFH;對于 876∕ 877,8K 14的最大地址碼是 1FFFH)。在一次寫操作尚未完成之前,如果用軟件清除 WREN位,則不會停止本次寫操作過 程。只有在前一次的操作中把控制位 WREN置 1,后面的操作才能把控制位 WR 置 1,也就是,這兩位的置 1 操作,絕對不能在 1 條指令的執(zhí)行過程中同時完成,必須安排兩條指令。與向 EEPROM單元中一次燒寫數(shù)據(jù)過程一樣,燒寫 FLASH 也需要多個步驟才能完成:應(yīng)事先把長地 址和長數(shù)據(jù)分別放入地址寄存器對 EEADRH: EEADR 和數(shù)據(jù)寄存器 EEDATH:EEDATA中,把 EEPGD控制位置 1,再將寫允許位 WREN置 1,最后再把寫啟動位 WR置 1。我們在此可以主要關(guān)注內(nèi)部寫操作與 WRT的對應(yīng)關(guān)系。 能否燒寫 FLASH,還與系統(tǒng)配置字的 WRT位有關(guān)。在對于 FLASH 寫操作期間,系統(tǒng)時鐘繼續(xù)振蕩,所有外設(shè)模塊繼續(xù)工作,如果中斷處于使能狀態(tài),發(fā)生的中斷請求將排隊等候。 對于以 FLASH 為對象的燒寫操作,與 CPU 以 FLASH 為指令來源的程序執(zhí)行,兩種操作行為之間存在著互 斥關(guān)系。單片機(jī)向 FLASH 程序存儲器燒 寫的程序代碼或數(shù)據(jù),常常是最先來自于單片機(jī)外部,方法是可以經(jīng)過端口模塊(如 USART、 SPI、 I2C 等),與外界進(jìn)行X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 12 通信并獲取程序代碼或數(shù)據(jù),然后寫入 FLASH。 FLASH與單片機(jī)內(nèi)部總線之間,利用地址寄存器對 EEADR:EEADRH和數(shù)據(jù)寄存器對 EEDATA: EEDATH,作為用戶程序與 FLASH 存儲器打交道的對話窗口。 FLASH 程序存儲器結(jié)構(gòu)和操作原理 圖 3 FLASH 數(shù)據(jù)存儲器結(jié)構(gòu)圖 PIC16F877a 單片機(jī)內(nèi)部,用于固化用戶程序的 FLASH 。所以,僅用到了 EEADR 和 EEADRH 內(nèi)部 16 位地址碼的低11位, 211=2K。雖然最高 4位沒有用到, 但是必須將這 4位清 0,理由同上。 X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 11 ⑵ 對于 PIC16F873∕ 874 而言,配置的 FLASH 容量為 4K 14,為 PIC16F876∕ 877的一半。例如,當(dāng) EEADR和 EEADRH內(nèi)部 16位地址碼為 2022H時,尋址到的單元并不是 0000H 號單元。雖然最高 3位沒有用 到,但是必須將這幾位清 0。 ⑴ 對于 PIC16F876∕ 877 而言,配置的 FLASH 容量 8K 14。當(dāng) CPU 間接訪問 FLASH 程序存儲器時, EEADRA 和 EEADRH 一起用來存放指向某一單元的 13 位(或 12 位或11位)地址碼, EEDATA和 EEDATH一起用來存放即將被寫入或讀出的 14位數(shù)據(jù)(實際是用戶程序的指令代碼)。為了達(dá)到間接訪問它們的目的,額外增加了 6 個特殊功能寄存器: EEADR、 EEADRH、 EEDATA、 EEDATH、 EECON EECON2。 FLASH不是直接影射到 RAM存儲器地址空間的,也就是說,它并不與 RAM統(tǒng)一編址。對于 PIC16F87X,在燒寫FLASH時,雖然不能執(zhí)行 FLASH中的指令,但是系統(tǒng)時鐘仍然振蕩,片內(nèi)各個外圍模塊仍然正常工作,可以檢測到中斷事件的發(fā)生,并進(jìn)行排隊等待,直到寫操作完成之后才會得到響應(yīng)。為了解決這個矛盾,在 PIC16F87X 系列單片機(jī)中采用的解決方案是,作為一個整體的 FLASH 程序存儲器,在對一個單元進(jìn)行燒寫并且電源自動切換到電荷泵供電時, CPU自動停頓而進(jìn)入等待狀態(tài)。原因是 , FLASH是一個整體,當(dāng)對其任何一個單元進(jìn)行燒寫操作時,升壓電荷泵啟動工作,對 FLASH 整體施加了高電壓,在這個不適合 FLASH 正常讀取操作的高電壓存續(xù)期間, FLASH暫時失去了程序存儲器的角色。當(dāng) CPU 執(zhí)行到存放著這些無效指令代碼的區(qū)域是,產(chǎn)生與執(zhí)行空操作指令 NOP 同樣的結(jié)果。對于程序存儲器的讀∕寫操作允許進(jìn)行“校驗和”的計算,以便提高可靠性。也就是說,單片機(jī)內(nèi)部自帶電荷泵升壓電路,即使是燒寫操作也不需要外加高電壓。因此, FLASH存儲器適合用來燒寫那些改動不太頻繁的用戶程序或參數(shù),有利于降低單片機(jī)成本。適應(yīng)于不僅要求內(nèi)容可以修改而掉電后又不丟失,而且又要求成本更低、存儲容量更大的電器設(shè)備中。外部存儲器有:磁帶存儲器(多用于大型計算機(jī))、軟磁盤存儲器、硬磁盤存儲器、只讀光盤存儲器、可讀∕寫光盤存儲器、卡式存儲器(例如 IC卡)等;內(nèi)部存儲器目前都用半導(dǎo)體存儲器。 存儲器是任何計算機(jī)系統(tǒng)都不可缺少的一類重要的外圍器件或部件。 電源上電復(fù)位標(biāo)志位 =1 沒有發(fā)生上電復(fù)位 =0 發(fā)生了上電復(fù)位。 ⑤ 電源控制寄存器 PCON X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 9 電源控制寄存器的內(nèi)容包括 2 個有效位,用其中一個來記錄和區(qū)分是否發(fā)生了上電復(fù)位、外部引腳 輸入 低電平引起的人工復(fù)位、還是看門狗超時溢出復(fù)位。任何使用 INDF 寄存器的指令其實是通過文件選擇寄存器 FSR 來訪問所指向的寄存器。位于 RAM 數(shù)據(jù)存儲器的的最頂端、地址碼最小的 INDF 寄存器,它雖有地址編碼,但其實不是一個物理上的寄存器。 ④ 在實際應(yīng)用編程中會經(jīng)常使用到兩個比較特殊的寄存器: INDF 和 FSR。所有執(zhí)行的塊包括 SFR。 ③ 數(shù)據(jù)存儲器被分為 4 個體,它包括通用寄存器 (GPR)和特殊功能寄存器(FSR),位 RP0, RP1 是塊抉擇位。 ② PIC16F877a有一個 13位程序計數(shù)器它的尋址能力達(dá) 8K 14程序存儲器空間, 而且 PIC16F877a的 Flash存儲器空間正好是 8K 14,當(dāng)尋址超出上面可執(zhí)行的地址范圍時將導(dǎo)致回繞 。 X大學(xué)成都學(xué)院本科畢業(yè)設(shè)計 8 圖 2 Harvard 架構(gòu)與 Von Neumann 架構(gòu)比較 ( 4) 存儲器基本知識 ① PIC16F877a 單片機(jī)共有 3個存儲器塊,它們是程序存儲器,數(shù)據(jù)存儲器,EEPROM 數(shù)據(jù)存儲器。 Von Neumann結(jié)構(gòu)是傳統(tǒng)的單片機(jī)結(jié)構(gòu),程序存儲器和數(shù)據(jù)存儲器是在同一個存儲體區(qū)塊,存儲器與 CPU 之間只使用單一總線,不論是對程序存儲器或數(shù)據(jù)存儲器作存取都是使用此總線,因此要完成一個指令通常必須依序使用總線,從指令的提取、解碼、資料讀取、執(zhí)行到資料的寫入,最后的結(jié)果是一個指令大都需要等待好幾個周期才能完成。而輸入 /輸出單元提供與外界周邊設(shè)備或元件的管道 ,如圖一所 示。其中 CPU 可分為兩部分,即算術(shù)邏輯單元 (ALU)及 控制單元 (CU), CPU 通過總線 (BUS)執(zhí)行程式碼的 Fetch、 Decode、算術(shù)邏輯運算及讀寫時鐘信號的控制。 3. PIC單片機(jī)的分類 初檔 8位單片機(jī): PIC12C5XXX/ 16C5X 系列 PIC16C5X 系列是最早在市
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1