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

正文內(nèi)容

基于單片機(jī)的紅外遙控發(fā)射器畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2024-11-29 11:02本頁(yè)面

【導(dǎo)讀】活的遙控系統(tǒng)開(kāi)始進(jìn)入了人們的生活。傳統(tǒng)的遙控器采用專用的遙控編碼及解碼。制,只實(shí)用于某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。而采用單片機(jī)進(jìn)行。遙控系統(tǒng)的應(yīng)用設(shè)計(jì),具有編程靈活多樣、操作碼個(gè)數(shù)可隨便設(shè)定等優(yōu)點(diǎn)。統(tǒng)、定時(shí)器、計(jì)數(shù)器等知識(shí),應(yīng)用紅外光的優(yōu)點(diǎn)。頻率的識(shí)別,判斷出控制操作,來(lái)完成整個(gè)紅外遙控發(fā)射、接收過(guò)程。

  

【正文】 圖 遙控發(fā)射主程序流程圖 當(dāng) K2 至 K7 鍵按下時(shí),執(zhí)行的程序類似于按下 K1 鍵所執(zhí)行的程序。 偽指令和初始化程序 在初始化程序前,需要定義一些相關(guān)的偽指令,偽指令不能命令 CPU執(zhí)行某中操作,也沒(méi)有對(duì)應(yīng)的機(jī)器代碼, 它的作用僅用來(lái)給匯編程序提供某中信息。偽指令是匯編程序能夠識(shí)別的匯編命令??刂菩盘?hào)的輸入口 — 分別用按鍵開(kāi)關(guān)鍵號(hào) K0— K7 來(lái)定義;各頻率紅外信號(hào)對(duì)應(yīng)的定時(shí)器 T0的初值分別用 K0H、 K0L—— K7H、 K7L 來(lái)定義,這樣做不影響整個(gè)程序的執(zhí)行,但便于閱讀和理解程序。定義格式如下: K0 BIT ? K7 BIT 由于 至 對(duì)應(yīng)的紅外發(fā)射頻率分別為 300Hz、 600 Hz、 900 Hz、1200 Hz、 1500 Hz、 1800 Hz、 2100 Hz、 2400 Hz,而 T1 的定時(shí)時(shí)間是 50ms 故在這七種狀態(tài)下面, 端口狀態(tài)分別反轉(zhuǎn) 15 次、 30 次、 45 次、 60 次、 75次、 90 次、 105 次、 120 次。故定時(shí)器 T0 對(duì)應(yīng)的定時(shí)時(shí)間分別為 50ms/150ms/ 50ms/4 50ms/60、 50ms/7 50ms/90、 50ms/10 50ms/120,即分別為: 、 、 、 、 、 、 、。由前述定時(shí)器初值計(jì)算方法可算出各狀態(tài)定時(shí)器的初值。 定時(shí)器 T1 的定時(shí)初值計(jì)算如下: 由于工作在方式一,時(shí)鐘頻率為 12MHz,故定時(shí)最大值 M 為 65536 初值 X=M— 定時(shí)值 /T X=65536— 50000/1=15536 即 T1 的初值為 15536,轉(zhuǎn)化為十六進(jìn)制為 3CB0H 各情況下,定時(shí) T0 的定時(shí)初值計(jì)算如下: 當(dāng)按下 K0 鍵時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X0= 65536— 3330/1=62206 轉(zhuǎn)化為十六進(jìn)制為 0F2FEH 當(dāng)按下 K1 鍵時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X1=65536— 1670/1=63866 轉(zhuǎn)化為十六進(jìn)制為 0F97AH 當(dāng)按下 K2 鍵時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X2=655361110/1=64426 23 轉(zhuǎn)化為十六進(jìn)制為 0FBAAH 當(dāng)按下鍵 K3 時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X3=65536833/1=64703 轉(zhuǎn)化為十六進(jìn)制為 0FCBFH 當(dāng)按下鍵 K4 時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X4=65536667/1=64869 轉(zhuǎn)化為十六進(jìn)制為 0FD65H 當(dāng)按下鍵 K5 時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X5=65536556/1=64980 轉(zhuǎn)化為十六進(jìn)制為 0FDD4H 當(dāng)按下鍵 K6 時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X6=65536476/1=65060 轉(zhuǎn)化為十六進(jìn)制數(shù)為 0FE24H 當(dāng)按下鍵 K7 時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X7=65536417/1=65119 轉(zhuǎn)化為十六進(jìn)制數(shù)為 0FE5FH 為了便于理解源程序,各種情況下定時(shí)器 的初值采用 K0H— K7H 和 K0L— K7L來(lái)表示,分別存入定時(shí)器的高 8 位和低 8 位。采用賦值偽指令 EQU,格式如下: K0H EQU 0F2H K0L EQU 0FEH 通常,在一個(gè)匯編語(yǔ)言源程序的開(kāi)始,響應(yīng)中斷前,都要設(shè)置一條 ORG偽指令來(lái)指定該程序在存儲(chǔ)器中存放的起始位置。若省略 ORG 指令,則該程序從 0000H 單元開(kāi)始存放。在一個(gè)源程序中,可以多次使用 ORG 偽指令,以規(guī)定不同程序段或數(shù)據(jù)段存放的起始地址,但要求 16 位地址由小到大順序排列,不允許空間重疊。匯編語(yǔ)言結(jié)束應(yīng)加一個(gè) END 指令,表 示匯編程序已經(jīng)結(jié)束,處于 END 之后的程序,匯編程序不予處理。 對(duì)于初始化程序,就是對(duì) P1 口、 P3 口賦初值,此時(shí)遙控器沒(méi)有工作,兩個(gè) 8 位端口均賦以 0FFH;設(shè)置定時(shí)器 0 和定時(shí)器 1 方式控制寄存器 TMOD,由于 T0 和 T1 均工作在方式 1,功能選擇為定時(shí)器,故 TMOD 的值為 11H,然24 后開(kāi)放所有中斷,將單片機(jī)設(shè)置為空閑工作方式,即將電源控制寄存器的值設(shè)為 01H,初始化完畢,程序即進(jìn)入鍵盤掃描程序。 鍵盤掃描程序 鍵盤掃描程序就是掃描鍵盤看是否有鍵按下,如有鍵按下,判斷出是哪一個(gè)鍵,當(dāng)確定按下某一個(gè)鍵 后,即執(zhí)行紅外發(fā)射程序。掃描的方法是判斷 P1口各位的電平,無(wú)按鍵按下時(shí),各位均為高電平,當(dāng)某一個(gè)按鍵按下以后,該位即為低電平。 通常,按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),均利用了機(jī)械觸點(diǎn)的合、斷。一個(gè)電壓通過(guò)機(jī)械觸點(diǎn)的斷開(kāi)、閉合過(guò)程,由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉和時(shí)不會(huì)馬上穩(wěn)定接通,在斷開(kāi)時(shí)也不會(huì)一下斷開(kāi)。因而,在閉合和斷開(kāi)的瞬間均伴隨著一連串的抖動(dòng),抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為 5— 10ms。按鍵電路的消抖措施通常有硬件和軟件兩種方法 [24]。硬件消除鍵盤抖動(dòng)措施主要就是外加雙穩(wěn)態(tài)電路或者 濾波電路的方法。本電路采用的是軟件消抖的方法,就是調(diào)用一個(gè)延時(shí)子程序,延時(shí)時(shí)間設(shè)定為 6ms,延時(shí)子程序如下: DL1: MOV R4, 0CH DL2: MOV R5, 0FFH DL3: DJNZ R5, DL3 DJNZ R4, DL2 RET 延時(shí)時(shí)間的計(jì)算就是根據(jù)執(zhí)行指令所需時(shí)間的總和, 0CH、 0FFH 分別為十進(jìn)制數(shù)的 12 和 255,因此這個(gè)程序所耗用的時(shí)間為 1+( 255*2+2+1) *12+1+2=6160 個(gè)機(jī)器周期 由于晶振采用的是 12MHz,所以 1 機(jī)器周期 =1us,執(zhí)行程序的總時(shí)間為,與 6ms 存在 的誤差,不過(guò)這不影響程序的執(zhí)行。 中斷服務(wù)程序 1.外部中斷 1 外部中斷 1 在程序中的作用就是喚醒單片機(jī),使單片機(jī)從空閑方式回到工作狀態(tài)。當(dāng)有鍵按下時(shí),通過(guò)與門觸發(fā)外部中斷 1 中斷, IDL 被硬件硬件清零,單片機(jī)結(jié)束低功耗空閑節(jié)電方式 [25]。 外部中斷是由外部原因引起的,共有兩個(gè)中斷源,即外部中斷 0 和外部中斷 1,相應(yīng)的中斷請(qǐng)求信號(hào)輸入 端是 INT0 和 INT1。 外部中斷請(qǐng)求有兩種觸發(fā)方式,即電平觸發(fā)方式和脈沖出發(fā)方式。 25 定時(shí)器 /計(jì)數(shù)器控制寄存器 TCON 的低四位用于控制外部中斷請(qǐng)求和觸發(fā)方式,有關(guān)的位表示如下: IE:外部中斷請(qǐng)求標(biāo)志位,當(dāng) CPU采樣到 INT端出現(xiàn)有效的中斷請(qǐng)求時(shí),次位由硬件置 1,表示外部事件請(qǐng)求中斷,中斷響應(yīng)完成后,再由硬件自動(dòng)清零。 IT:外部中斷請(qǐng)求觸發(fā)方式控制位。當(dāng) IT=1,選擇脈沖觸發(fā)方式(也稱邊沿觸發(fā)方式)負(fù)跳變有效;當(dāng) IT=0,選擇電平出發(fā)方式,低電平有效。 中斷的允許或禁止是由片內(nèi)的中斷允許寄存器 IE 控制的。 IE 的格式如下: EA — ET2 ES ET1 EX1 ET0 EX0 IE 的每一位都可以由軟件置 1或清零。且 1—— 中斷允許, 0—— 中斷屏蔽 EA:中斷允許總控制位。 EA=0時(shí),表示 CPU禁止所有中斷,即所有的中斷請(qǐng)求被屏蔽; EA=1 時(shí),表示 CPU 開(kāi)放中斷,但每個(gè)中斷源的中斷請(qǐng)求是允許還是禁止,要由各自的允許位控制。 EX:外部中斷允許控制位 ET:外部中斷允許控制位。 ET:定時(shí) /計(jì)數(shù)器的中斷允許控制位 ES:串行中斷允許控制位。 中斷的各控制位在初始化程序中定義,在初始化程序中應(yīng)當(dāng)開(kāi)外部中斷 1 和總中斷,觸發(fā)方式選擇為脈沖觸發(fā)方式,后負(fù)跳變有效。中斷程序如下: INT1: CLR IE1 ANL PCON, 00H RETI 2. 定時(shí)器中斷服務(wù)程序 定時(shí)器 T1 作為發(fā)射時(shí)間控制器,當(dāng)確認(rèn)某一按鍵被按下后, T1 開(kāi)始記時(shí),記時(shí)時(shí)間為 50ms,記時(shí)時(shí)間到,定時(shí)器 1產(chǎn)生中斷,紅外脈沖停止發(fā)射。同時(shí)將紅外脈沖發(fā)射端口 電平置成無(wú)效電平 定時(shí)器 T0 作為紅外線發(fā)射頻率控制器,當(dāng)定時(shí)時(shí)間 到產(chǎn)生中斷,將 端口反轉(zhuǎn)一次,同時(shí)對(duì)定時(shí)器重新裝初值,定時(shí)時(shí)間與前相同, T0 重新定時(shí),時(shí)間到又將 端口反轉(zhuǎn)一次,如此往復(fù),直到定時(shí)器 1 記時(shí)時(shí)間到,關(guān)閉定時(shí)器 1 和定時(shí)器 0 重新回到主程序。此處采用了一個(gè)位標(biāo)志 bz,在宏指令中將其定義為位尋址區(qū)的 07H,當(dāng)定時(shí)器在執(zhí)行中斷服務(wù)程序時(shí),將該位定義為高點(diǎn)平 1,使主程序不斷的查詢?cè)撐?,?dāng)該位為 1 時(shí),等待中斷程序的執(zhí)行,此時(shí)向外發(fā)射紅外脈沖;當(dāng)該位為 0 時(shí),中斷結(jié)束,主程序繼續(xù)向下執(zhí)行26 [26]。其流程圖如下: Y N Y N N Y 圖 定時(shí)器中斷服務(wù)子程序流程圖 遙控接收器程序設(shè)計(jì) 程序總體結(jié)構(gòu) 遙控接收器是根據(jù)接收到的不同頻率的紅外光信號(hào),由 CPU 轉(zhuǎn)化為對(duì)應(yīng)的控制功能對(duì)控制電路實(shí)施控制。當(dāng)接收電路接收到第一個(gè)紅外線脈沖時(shí),中斷INT1 被觸發(fā),啟動(dòng)定時(shí)器 1 和計(jì)數(shù)器 0。定時(shí)器 1 作為計(jì)數(shù)時(shí)間控制器,計(jì)數(shù)啟動(dòng)定時(shí)器 T0 T0 定時(shí)時(shí)間到 翻轉(zhuǎn)一次, T0 重新裝初值, T1定時(shí)時(shí)間到 確認(rèn)是否有鍵按下 開(kāi)始 啟 動(dòng)定時(shí)器 T1,定時(shí)時(shí)間為 50ms 返主 27 器 0 作為在規(guī)定記數(shù)時(shí)間內(nèi)所記得的紅外脈沖數(shù)。接收信號(hào)端接至 和 口,該兩引腳為復(fù)用引腳, 引腳復(fù)用為外部中斷 1 請(qǐng)求輸入端; 引腳復(fù)用為定時(shí)器 /計(jì)數(shù)器 0 計(jì)數(shù)脈沖輸入端。當(dāng)收到第一個(gè)紅外脈沖時(shí), INT1 被觸發(fā), T0 和 T1 開(kāi)始工作,每收到一個(gè)紅外脈沖,計(jì)數(shù)器 0 記數(shù)值加一,當(dāng)定時(shí)器定時(shí)時(shí)間到,產(chǎn)生中斷,保存計(jì)數(shù)器 0的計(jì)數(shù)值。由于定時(shí)時(shí)間為 50ms,故各種不同狀態(tài)對(duì)應(yīng)的紅外脈沖數(shù)大約為 1 4 60、 7 90、 10 120個(gè),然后將記數(shù)值與上述各值比較。由于存在誤差,計(jì)數(shù)器 0 的記數(shù)值不可能嚴(yán)格和上述值相等,只要近似相等就行,限制的誤差范圍為 5,即將記數(shù)值加減 5 得到兩個(gè)數(shù)值,再判斷哪一個(gè)值在這一范圍之內(nèi),即可斷定遙控發(fā)射器發(fā)射出的紅外信號(hào)的發(fā)射 頻率即為該值,從而可斷定出遙控操作,然后由接收遙控器 CPU 將其轉(zhuǎn)化為控制操作,對(duì)外電路實(shí)施控制功能 [27]。 口與地之間的開(kāi)關(guān) SW 為控制方式選擇開(kāi)關(guān),當(dāng)開(kāi)關(guān)閉合,即=0,單片機(jī)輸出為上鎖控制方式,此狀態(tài)下遙控器不能對(duì)控制電路實(shí)施控制功能;當(dāng)開(kāi)關(guān)斷開(kāi),即 =1,為單路控制方式,此狀態(tài)下遙控器能對(duì)外電路實(shí)施控制功能。當(dāng)外部中斷 1 響應(yīng),自動(dòng)檢測(cè)該位的電平,若為 0 自動(dòng)跳出,重新等待紅外脈沖,在檢測(cè)該位電平,如此循環(huán),不對(duì)外電路發(fā)控制命令;若為 1 則繼續(xù)執(zhí)行下面的程序 [28]。 28 Y N Y 調(diào)初始化過(guò)程 接收到第一個(gè)紅 外 脈 沖 ,INT1 被觸發(fā) 啟動(dòng)計(jì)數(shù)器 T0 和定時(shí)器 T1 定 時(shí)器 T1定時(shí)時(shí)間到 開(kāi)始 定時(shí)器 T1 中斷,計(jì)數(shù)器T0 停止計(jì)數(shù) 查詢各預(yù)定記數(shù)值是否在 T0記數(shù)值加減 5 的范圍內(nèi) 查到該值 將對(duì)應(yīng) P1 口位的電平翻轉(zhuǎn) 返回 SW=1 29 圖 遙控接收主程序流程圖 初始化程序 在初始化程序中,首先將 P1 口和 P3 口初始化,初值均為 0FFH。外部中斷 1 觸發(fā)方式設(shè)置
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1