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

正文內(nèi)容

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

2025-07-19 01:18 本頁面
 

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