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

正文內(nèi)容

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

2025-07-09 09:21 本頁(yè)面
 

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