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

正文內(nèi)容

基于單片機的紅外遙控窗簾設計論文含c語言源程序(編輯修改稿)

2025-07-09 09:21 本頁面
 

【文章內(nèi)容簡介】 ,選用 4K8EPROM2732 ,可以實現(xiàn)任意 12 變量輸入、 8 變量輸出的組合邏輯函數(shù)。在本機遙控系統(tǒng)中,利用了 EPROM 的 D0~D4 五根數(shù)據(jù)線和全部 12 根地址線,通過向 2732 中固化上表所示的邏輯真值表,從而實現(xiàn)了關鍵的遙控解碼,使遙控器上按鍵與本機鍵盤按鍵一一對應起來。需要指出的是, EPROM 的地址譯碼是全譯碼,而在本方案中占據(jù)地址線 A0~A7 的 8 位遙控碼只有 20 種有效碼值( 20 個鍵),即一頁( 2S6 字節(jié)) 中只有20個有效數(shù)據(jù),則應將剩余空間填入 0FFH。 由解碼電路圖 3可見, EPROM2732的地址線 A0A7接至 8位輸出鎖存移位寄存器 74HCS9S的輸出(即 8位遙控碼), A8~A11 接至鍵盤矩陣的行掃描線 R0~R3; 2732 的 8根數(shù)據(jù)線使用了其中的 S 根 D0~D4,接至鍵盤矩陣的列掃描線 C0~C4, 2732 的(片選端)接地 ,(讀信號 )接至施密特與非門 4093 的 3 腳輸出,此輸出為雙單穩(wěn) 74HC123 的 1Q、與非的結果。 當遙控器上沒有按鍵按下時, EPROM2732 的端為 “1” ,使得 2732 的數(shù)據(jù)線 D0~D4 為 高阻態(tài)與鍵盤矩陣線脫離,而本機鍵盤的掃描與讀出照常進行不受影響,若遙控器上有鍵按下時,經(jīng)紅外發(fā)射、接收對應的8位遙控碼出現(xiàn)在 74HC595 的輸出端,并作為 EPROM2732的 A0~A7 輸入,此時的行掃描碼( CPU 發(fā)出)作為 A8~A11 輸入, 2732 的端為低電平,讀出A0~A11 指定單元的數(shù)據(jù),將其中 D0~D4 放在鍵盤矩陣列線上。 D0~D4 中只有一位為 “0” , 10 指示著哪一列有鍵按下,這樣就由遙控接收、解碼電路模擬了一次 “ 按鍵 ” 動作。接下來CPU對這個 “ 按鍵 ” 動作的響應、處理就和本機鍵盤完全一樣了 。 解 碼程序 紅外一開始發(fā)送一段 ,引導碼由 9ms的高電平和 ,跟著引導碼是系統(tǒng)碼,系統(tǒng)反碼,按鍵碼,按鍵反碼,如果按著鍵不放,則遙控器則發(fā)送一段重復碼,重復碼由 9ms 的高電平, 的低電平,跟著是一個短脈沖 。程序流程圖下: 解碼程序在比較器中斷服務程序中實現(xiàn)。第一個下降沿表明編碼輸出開始,這時將時間記錄為 last_time,當比較器輸出跳為高電平時,記錄當前時間為 current_time,并且記錄脈沖寬( current_timelast_time)判斷收到的是寬脈沖還是窄脈沖 ,如果是寬脈沖記錄為 0,窄脈沖記錄為 1。 每一組有效的編碼由 24 為組成,因此程序中需要有一個脈沖計數(shù)變量來記錄是否有24位碼,只有確認收到 24位碼后,才認為這次按鍵有效。同時需要防止將用戶的一次按鍵解釋為多次按鍵,需要有去抖功能。可以設一個變量來記錄同一個鍵值收到的次數(shù),當它的記錄小于某一預定的值時,表示用戶在進行同一操作。完整的接收到一組編碼后,在中斷程序中將鍵值有效標志 key_flag 置 1,主程序循環(huán)中如果查詢到 key_flag 為 1則保存這個鍵碼,即完 成一次解碼操作。 11 4 單片機介紹 主要功能 MCS51 系列單片機是美國 Intel 公司在 1980 年推出的高性能 8 位單片微機,較原來的 MCS48 系列結構更為先進,功能增強,它包括 51 和 52兩個子系列。 在 51 系列中,主要有 803 805 8751 三種機型,它們的指令系統(tǒng)與芯片引腳完全兼容,僅片內(nèi) ROM有所不同。 51 子系列的主要功能為: ○18 為 CPU。 ○2片內(nèi)帶振 蕩器,振蕩頻率 fosc 范圍為 ~12MHZ;可有時鐘輸出。 ○3128 個字節(jié)的片內(nèi)數(shù)據(jù)存儲器。 ○44K 字節(jié)的片內(nèi)程序存儲器( 8031 無)。 ○5程序存儲器的尋址范圍為 64K 字節(jié)。 ○6片外數(shù)據(jù)存儲器的尋址范圍為 64K 字節(jié)。 ○721 個字節(jié)專用寄存器。 ○84 個 8 位并行 I/O 接口: P0、 P P P3。 ○91 個全雙工串行 I/O 接口,可多機通訊。 ○102 個 16 位定時 /計數(shù)器。 ○11中斷系統(tǒng)有 5個中斷源,可編程為兩個優(yōu)先級。 ○12111 條指令,含乘法指令和除法指令。 ○13有強的位尋址、位處理能力。 ○14片內(nèi)采用單總線結構。 ○15用單一 +5V 電源。 52 子系列主要有 803 8052 兩種機型。與 51 子系列的不同在 于:片內(nèi)數(shù)據(jù)存儲器增至 256 個字節(jié);片內(nèi)程序存儲器增至 8KB( 8032 無);有 3個 16位定時器 /計數(shù)器;有 6 個 12 中斷源。其他性能均與 51子系列相同。 內(nèi)部結構 它含運算器、控制器、片內(nèi)存儲器、 4 個 I/O 接口、串行接口、定時器 /計數(shù)器、中斷系統(tǒng)、振蕩器等功能器件。 外部引腳說明 MCS51系列單片機芯片有 40 個引。見圖。用 HMOS 工藝制造的芯片采用雙列直插式封裝。低功耗的、采用 CHMOS 工藝制造的機型(在型號中間家一“ C”字作為識別,如 80C380C5 87C51)也有用方 型封裝結構的。 現(xiàn)將各引腳分別說明如下: Vcc:接 +5V 電源正端。 Vss:接 +5V 電源地端。 XTAL1:片內(nèi)反相放大器輸入端。 XTAL2:片內(nèi)反相放大器輸出端。外接晶體時, XTAL1 與 XTAL2 各接警惕的一端,借外接晶體與片內(nèi)反相放大器構成振蕩器。 /輸出引腳 ~: P0 口的 8 個引腳。在不接片外存儲器與不擴展 I/O 接口時,可作為準雙向輸入 /輸出接口。在接有 片外存儲器或擴展 I/O 接口時, P0 口分時復用為低 8 位地址總線和雙向數(shù)據(jù)總線。 ~: P1 口的 8 個引腳??勺鳛闇孰p向 I/O 接口使用。對于 52 子系列, 與 還有第二種功能: 可作為定時器 /計數(shù)器 2的計數(shù)脈沖輸入端 T2; 可作為定時器 /計數(shù)器 2的外部控制端 T2EX。 ~: P2 口的 8個引腳 .一般可作為準雙向 I/O 接口;在接有片外存儲器或擴展I/O接口且尋址范圍超過 256 字節(jié)時 ,P2 口用為高 8 為地址總線。 ~: P3 口的 8 個引腳,除了作為準雙向 I/O 接口使用外,還具有第二功能,具體如下: : RXD (串行輸入口) : TXD (串行輸出口) : INT0 (外部中斷 0請求輸入端) : INT1 (外部中斷 1請求輸入端) : T0 (定時器 /計數(shù)器 0計數(shù)脈沖輸入端) : T1 (定時器 /計數(shù)器 1計數(shù)脈沖輸入端) 13 : WR (片外數(shù)據(jù)存儲器寫選通信號輸出端) : RD (片外數(shù)據(jù) 存儲器讀選通信號輸出端) MCS51 系列單片機外部引腳圖 單片機接口技術 80C51 的串行通信口是一個功能強大的通信口,而且是相當好用的通信口,用于顯示驅動電路再合適不過了,下面我們就根據(jù)這種需要設計一個用兩個串行通信口線加上兩根普通 I/O 口,設計一個 4位 LED 顯示電路。當然只要再加上兩根 I/O 口線即可輕易實現(xiàn)8位 LED 的顯示電路 [7]。 圖 串行動態(tài) LED 掃描電路 圖是電原理圖,我們還是采用 C2051 單片機,同時用廉價易得的 74LS164 和 74LS138作為擴展芯片。 74LS164(詳細技術手冊) 是一個 8位串入并出的移位寄存器,其此處的功能是將 C2051 串行通信口輸出的串行數(shù)據(jù)譯碼并在其并口線上輸出,從而驅動 LED 數(shù)碼管。 74LS138 是一個 38 譯碼器 ,它將單片機輸出的地址信號譯碼后動態(tài)驅動相應的LED。但 74LS138 電流驅動能力較小,為此,我們使用了未級驅動三極管 2SA1015 作為地址驅動 。 將 4只 LED的段位都連在一起,它們的公共端則由 74LS138 分時選通,這樣任何一 14 個時刻,都只有一位 LED在點亮,也即動態(tài)掃描顯示方式,其優(yōu)點在上一節(jié)中我們已經(jīng)闡述。使用串行口進行 LED 通信,程序編寫相當簡單,用戶只需將需顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行中斷即可,看看下面的程序。 程序清單 ORG 0100H MOV SCON,00H 。串行口工作方式 0 MAIN: MOV R3, 00H ;字型碼初始地址 LOOP: MOV R4, 0E8H ;循環(huán)顯示某個字符 DELAY: ACALL DISPLAY ;顯示 DJNZ R4, DELAY ;延時時間未到繼續(xù) INC R3 ;顯示下個字符 CJNE R3, OAH, LOOP ;未顯示到“ 9”繼續(xù) AJMP MAIN ;返回主程序 DISPLAY: CLR CLR ;選中第一位 ACALL DISP ;顯示 ACALL DELAY1 ;延時 10MS SETB ;選中第二位 ACALL DISP ACALL DELAY1 SETB ;選中第三位 CLR ACALL DISP ACALL DELAY1 SETB ;選中第四位 SETB ACALL DISP ACALL DELAY1 RET DIS: MOV A, R3 MOV DPTR, TABLE MOVC A, @A+DPTR ;查表 MOV BUFF, A ;送發(fā)送緩沖器 WAIT: JNB TI, WAIT ;等待串行中斷 CLR TI RET DELAY1: MOV R6, 10H ;延時子程序 LOOP1: MOV R7, 38H LOOP2: DJNZ R7, LOOP2 DJNZ R6, LOOP1 RET TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H DB 92H, 82H, 0F8H, 80H, 90H END ;程序結束 [10] 15 在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。下面以 MCS51 單片機系統(tǒng)為例,對微機系統(tǒng)軟件抗 干擾方法進行研究。 軟件抗干擾方法的研究 在工程實踐中,軟件抗干擾研究的內(nèi)容主要是: 一、消除模擬輸入信號的嗓聲(如數(shù)字濾波技術);二、程序運行混亂時使程序重入正軌的方法。本文針對后者提出了幾種有效的軟件抗干擾方法。 指令冗余 CPU取指令過程是先取操作碼,再取操作數(shù)。當 PC 受干擾出現(xiàn)錯誤,程序便脫離正常軌道“亂飛”,當亂飛到某雙字節(jié)指令,若取指令時刻落在操作數(shù)上,誤將操作數(shù)當作操作碼,程序將出錯。若“飛” 到了三字節(jié)指令,出錯機率更大。 在關 鍵地方人為插入一些單字節(jié)指令,或將有效單字節(jié)指令重寫稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個字節(jié)以上的 NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令 NOP 的存在,避免了后面的指令被當作操作數(shù)執(zhí)行,程序自動納入正軌。 此外,對系統(tǒng)流向起重要作用的指令如 RET、 RETI、 LCALL、 LJMP、 JC 等指令之前插入兩條 NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。 攔截技術 所謂攔截,是指將亂飛的程序引向指定位置,再進行出錯處理。通常用軟件陷阱來攔截 亂飛的程序。因此先要合理設計陷阱,其次要將陷阱安排在適當?shù)奈恢谩? 1 軟件陷阱的設計 當亂飛程序進入非程序區(qū),冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進行出錯處理。軟件陷阱是指用來將捕獲的亂飛程序引向復位入口地址 0000H 的指令。通常在 EPROM 中非程序區(qū)填入以下指令作為軟件陷阱: NOP
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1