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

正文內(nèi)容

基于pic單片機(jī)的紅外遙控設(shè)計本科畢業(yè)設(shè)計(編輯修改稿)

2025-08-15 14:13 本頁面
 

【文章內(nèi)容簡介】 6 個特殊功能寄存器: EEADR、 EEADRH、 EEDATA、 EEDATH、 EECON EECON2。 FLASH 程序存儲器允許以指令字節(jié)( 14 位)進(jìn)行讀∕寫操作,但是寫操作會暫停 CPU 對 FLASH 區(qū)中指令的執(zhí)行,直到寫操作完成。當(dāng) CPU 間接訪 問 FLASH 程序存儲器時, EEADRA 和 EEADRH 一起用來存放指向某一單元的 13 位(或 12 位或11位)地址碼, EEDATA 和 EEDATH 一起用來存放即將被寫入或讀出的 14 位數(shù)據(jù)(實(shí)際是用戶程序的指令代碼)。依據(jù)內(nèi)部配置 FLASH 的容量不同,又可以分為以下 3種情況。 ⑴ 對于 PIC16F876∕ 877 而言,配置的 FLASH 容量 8K 14。用到了 EEADR 和EEADRH 寄存器對的低 13 位, 213 =8K。雖然最高 3位沒有用到,但是必須將這幾位清 0。原因是,當(dāng) EEADR 和 EEADRH 內(nèi)部 16 位地址碼 超出 8K時,尋址范圍并不會繞回到 FLASH的低地址單元上。例如,當(dāng) EEADR和 EEADRH內(nèi)部 16位地址碼為 20xxH時,尋址到的單元并不是 0000H 號單元。這樣做也便于用戶程序在 PIC16F87X 不同型號之間的移植和兼容。 12 ⑵ 對于 PIC16F873∕ 874 而言,配置的 FLASH 容量為 4K 14,為 PIC16F876∕ 877 的一半。所以僅用到了 EEADR 和 EEADRH 內(nèi)部 16 位地址碼的低 12 位, 212=4K。雖然最高 4 位沒有用到,但是必須將這 4位清 0,理由同上。 ⑶ 對于 PIC16F870∕ 871∕ 872 而言,配置的 FLASH 容量僅為 2K 14,為PIC16F876∕ 877 的 1/4。所以,僅用到了 EEADR 和 EEADRH 內(nèi)部 16 位地址碼的低11位, 211=2K。雖然最高 5 位沒有用到,但是必須要將這 5位清 0,理由同上。 FLASH 程序存儲器結(jié)構(gòu)和操作原理 圖 3 FLASH 數(shù)據(jù)存儲器結(jié)構(gòu)圖 PIC16F877a 單片機(jī)內(nèi)部,用于固化用戶程序的 FLASH 。 也把它當(dāng)作一個外圍模塊來看待,對于它的操作與操作 EEPROM 數(shù)據(jù)存儲器也基本相同,只是其數(shù)據(jù)寬度和地址寬度都需要增加,因此,地址寄存器 和數(shù)據(jù)寄存器都增加到了一對。 FLASH 與單片機(jī)內(nèi)部總線之間,利用地址寄存器對 EEADR:EEADRH 和數(shù)據(jù)寄存器對 EEDATA: EEDATH,作為用戶程序與 FLASH 存儲器打交道的對話窗口。從圖中可以發(fā)現(xiàn),以上述 4 個寄存器為界,其左邊,在工作寄存器 W和 4 個寄存器之間經(jīng)過內(nèi)部數(shù)據(jù)總線進(jìn)行的是數(shù)據(jù)傳送,是由 CPU 執(zhí)行用戶程序分 4 次來完成的;而右邊,在 4 個寄存器與 FLASH 之間的數(shù)據(jù)傳送則是靠硬件自動實(shí)現(xiàn)的。單片機(jī)向 FLASH 程序存儲器燒寫的程序代碼或數(shù)據(jù),常常是最先來自于單片機(jī)外部,方法是可以經(jīng)過端口模塊(如 USART、 SPI、 I2C 等),與外界進(jìn)行 13 通信并獲取程序代碼或數(shù)據(jù),然后寫入 FLASH。 燒寫 FLASH 與向 EEPROM 中燒寫數(shù)據(jù)的操作過程相比,主要的不同之處有: 地址碼有 13 位、 12 位或 11 位(分別對應(yīng) 876∕ 87 873∕ 874 和 872∕ 871∕ 870),需要 2 個地址寄存器并行工作;數(shù)據(jù)有 14 位,也需要 2 個數(shù)據(jù)寄存器并行工作。 對于以 FLASH 為對象的燒寫操作,與 CPU 以 FLASH 為指令來源的程序執(zhí)行,兩種操作行為之間存在著互斥關(guān)系。也就是說,這兩種操作絕對不能發(fā)生在同一時刻,其中的道理前面分析過。在 對于 FLASH 寫操作期間,系統(tǒng)時鐘繼續(xù)振蕩,所有外設(shè)模塊繼續(xù)工作,如果中斷處于使能狀態(tài),發(fā)生的中斷請求將排隊(duì)等候。一旦寫操作完成, CPU 將繼續(xù)執(zhí)行被中止的程序。 能否燒寫 FLASH,還與系統(tǒng)配置字的 WRT 位有關(guān)。在用程序燒寫器經(jīng)過在線串行編程( ICSP)引腳,對單片機(jī)進(jìn)行燒寫編程時如果將 WRT 位清 0,此后就不能再以執(zhí)行用戶程序來操縱控制寄存器 EECON 的方式,燒寫 FLASH 程序存儲器,如表 1所列。我們在此可以主要關(guān)注內(nèi)部寫操作與 WRT 的對應(yīng)關(guān)系。 表 1 內(nèi)部 FLASH 程序存儲器的讀∕寫狀態(tài)表 配置位 FLASH 程序存儲器 區(qū)間 內(nèi)部 ICSP CP1 CP0 WRT 讀操作 寫操作 讀操作 寫操作 0 0 X 全部 是 不 不 不 0 1 0 未保護(hù)區(qū)間 是 不 是 不 保護(hù)區(qū)間 是 不 不 不 0 1 1 未保護(hù)區(qū)間 是 是 是 不 保護(hù)區(qū)間 是 不 不 不 1 0 0 未保護(hù)區(qū)間 是 不 是 不 保護(hù)區(qū)間 是 不 不 不 1 0 1 未保護(hù)區(qū)間 是 是 是 不 保護(hù)區(qū)間 是 不 不 不 表 內(nèi)部 FLASH 程序存儲器的讀∕寫狀態(tài)表 (續(xù) ) 1 1 0 全部 是 不 是 是 1 1 1 全部 是 是 是 是 14 說明: ⑴ ICSP 讀∕寫操作 —— 指借助于“程序燒寫器”經(jīng)過在線串行編程( ICSP)引腳對單片機(jī)片內(nèi)存儲器進(jìn)行讀∕寫操作; ⑵ 內(nèi)部讀∕寫操作 —— 以執(zhí)行用戶程序和通過操縱控制寄存器 EECON的方式進(jìn)行讀∕寫操作 燒寫 FLASH 比燒寫 EEPROM 更需要慎重,以防程序失控導(dǎo)致死機(jī)。與向 EEPROM單元中一次燒寫數(shù)據(jù)過程一樣,燒寫 FLASH 也需要多個步驟才能完成:應(yīng)事先把長地址和長數(shù)據(jù)分別放入地址寄存器對 EEADRH: EEADR 和數(shù)據(jù)寄存器 EEDATH:EEDATA 中,把 EEPGD 控制位置 1,再將寫允許位 WREN 置 1,最后再把寫啟動位 WR置 1。除了正在對于 FLASH 進(jìn)行寫操作之外,平時 WREN 始終保持為 0。只有在前一次的操作中把控制位 WREN 置 1,后面的操作才能把控制位 WR置 1,也就是,這兩位的置 1 操作,絕對不能在 1 條指令的執(zhí)行過程中同時完成,必須安排兩條指令。在一次寫操作完畢之后, WREN 位由軟件清 0。在一次寫操作尚未完成之前,如果用軟件清除 WREN 位,則不會停止本次寫操作過程。 寫 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)。 ① 把準(zhǔn)備燒寫的 14 位數(shù)據(jù)分兩步送入數(shù)據(jù)寄存器對 EEDATH: EEDATA 中。 ② 把控制位 EEPGD 置位,以指定 FLASH 作為燒寫對象。 ③ 把寫使能位 WREN 置 1,允許后面進(jìn)行寫操作。 ④ 清除全局中斷控制位 GIE,關(guān)閉所有中斷請求。 ⑤ 執(zhí)行專用的“ 5 指令序列”這 5條指令是固定搭配,道理同前: 用一條移動指令把 55H 寫入到 W; 用一條移動指令再把 W 中的 55H 轉(zhuǎn)入控制寄存器 EECON2 中; 用一條移動指令把 AAH 寫入到 W; 用一條移動指令再把 W 中的 AAH 轉(zhuǎn)入控制寄存器 EECON2 中; 操作啟動控制位 WR 置 1。 ⑥ 執(zhí)行 2 條 NOP 指令,給單片機(jī)足夠的進(jìn)入寫操作的時間。 ⑦ 放開中斷總屏蔽位(如果打算利用 EEIF 中斷功能的話)。 15 ⑧ 清除寫允許位 WREN,在本次寫操作沒有完畢之前,禁止重開新的一次寫操作。 當(dāng)寫操作完成時,控 制位 WR 被硬件自動清 0,中斷標(biāo)志位 EEIF 被硬件置 1(該位必須由軟件清 0)。由于在對 FLASH 的寫操作期間, CPU 不能執(zhí)行任何指令,因此,就不能使用軟件查詢方式檢驗(yàn) WR 狀態(tài)位或 EEIF 標(biāo)志位,來判定寫操作是否完成。 對于 FLASH 程序存儲器的寫操作是事關(guān)系統(tǒng)安全運(yùn)行的大問題,需要謹(jǐn)慎對待,并且可以充分利用 PIC16F87X 單片機(jī)為解決此類問題而配置的一些片內(nèi)軟、硬件資源,來設(shè)計一些有效的方法和措施。為了防止意外寫操作行為的發(fā)生,(意外寫操作主要是指由于某些偶然的原因單片機(jī)自發(fā)進(jìn)行的、可能導(dǎo)致不良后果的一類寫 操作行為。在某些特殊情況下單片機(jī)是不適合對 FLASH 程序存儲器進(jìn)行寫操作的。) PIC16F87X 單片機(jī)內(nèi)部建立了多種保障機(jī)制。 在上電復(fù)位時,寫操作使能控制位 WREN 自動被清 0,以防止上電期間可能發(fā)生的意外寫操作。 72ms 的上電延時復(fù)位定時器 PWRT(如果系統(tǒng)配置字定義為使能,即PWRTE =0),也可以防止上電期間可能發(fā)生的意外寫操作。 可以由軟件編程的寫操作使能控制位 WREN,平時保持為 0,為寫操作的啟動設(shè)置了一道關(guān)卡。 廠家規(guī)定的寫操作專用的“ 5 指令序列”, 如果順序顛倒、密碼出錯、不連續(xù)執(zhí)行等,都不能啟動寫操作,從而有效地防止關(guān)機(jī)、電源跌落、電源受到強(qiáng)烈干擾、軟件失控期間,可能發(fā)生的意外寫操作。 對于 FLASH 程序存儲器防止意外寫操作, PIC16F87X 單片機(jī)內(nèi)部,額外設(shè)置了更加嚴(yán)格的限制。那就是系統(tǒng)配置字中的 CP CP0 和 WRT 這 3位(見表 或系統(tǒng)配置字的說明部分)。當(dāng) CP1: CP0=00 時,無論 WRT 等于何值,都會禁止任何對于 FLASH 存儲器的寫操作;當(dāng) WRT=0 時,無論 CP1: CP0 等于何值,也都會禁止任何對于 FLASH 存儲器的寫操作。況且這三位不 是由軟件所能改動的。一旦設(shè)置 了此種寫保護(hù)功能,若想把它解除,只能對芯片全部擦除。 4.編碼及解碼原理 ( 1) 遙控發(fā)射器編碼 發(fā)射電路編碼原理(一般家庭用的 DVD、 VCD、音響都使用這種編碼方式)。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙 16 控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為 、間隔 、周期為 的組合表示二進(jìn)制的 “0” ;以脈寬為 、間隔 、周期為 的組合表示二進(jìn)制的 “1” ,其波形如圖 4所示。 圖 4 遙控碼的 “0” 和 “1” (注:所有波形為接收端的與發(fā)射相反) 上述 “0” 和 “1” 組成的 32位二進(jìn)制碼經(jīng) 38kHz 的載頻進(jìn)行二次調(diào)制以提高發(fā)射效
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1