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

正文內(nèi)容

at89c2051單片機(jī)紅外遙控發(fā)射器設(shè)計(jì)畢業(yè)設(shè)計(jì)word格式-資料下載頁(yè)

2024-11-23 21:23本頁(yè)面

【導(dǎo)讀】傳統(tǒng)的遙控器采用專(zhuān)用的遙控編碼及解碼集成電路,這種方法雖然制作簡(jiǎn)單、容易,而采用單片機(jī)進(jìn)行遙控系統(tǒng)的應(yīng)用設(shè)計(jì),具有編程靈活多樣、操作碼個(gè)數(shù)可。隨便設(shè)定等優(yōu)點(diǎn)。計(jì)數(shù)器等知識(shí),應(yīng)用紅外光的優(yōu)點(diǎn)。遙控操作的不同,遙控發(fā)射器通過(guò)對(duì)紅外光發(fā)射頻。遙控接收器通過(guò)對(duì)紅外光接收頻率的識(shí)別,判斷出控制操。作,來(lái)完成整個(gè)紅外遙控發(fā)射、接收過(guò)程。使用和參考價(jià)值。

  

【正文】 — 3330/1=62206 轉(zhuǎn)化為十六進(jìn)制為 0F2FEH 當(dāng)按下 K1鍵時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 圖 41 遙控發(fā)射主程序流程圖 X1=65536— 1670/1=63866 轉(zhuǎn)化為十六進(jìn)制為 0F97AH 當(dāng)按下 K2鍵時(shí),定時(shí)時(shí)間為 ,此時(shí)定時(shí)器初值為 X2=655361110/1=64426 轉(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,然后開(kāi)放所有中斷,將單片機(jī)設(shè)置為空閑工作方式,即將電源控制寄存器的值設(shè)為 01H,初始化完畢,程序即進(jìn)入鍵盤(pán)掃描程序。 鍵盤(pán)掃描程序 鍵盤(pán)掃描程序就是掃描鍵盤(pá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]。硬件消除鍵盤(pán)抖動(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ò)與門(mén)觸發(fā)外部中斷 1 中斷, IDL 被硬件硬件清零,單片機(jī)結(jié)束低功耗空閑節(jié)電方式 [25]。 外部中斷是由外部原因引起的,共有兩個(gè)中斷源,即外部中斷 0 和外部中斷 1,相應(yīng)的中斷請(qǐng)求信號(hào)輸入端是 INT0 和 INT1。 外部中斷請(qǐng)求有兩種觸發(fā)方式,即電平觸發(fā)方式和脈沖出發(fā)方式。 定時(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ā)方式(也稱(chēng)邊沿觸發(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 定時(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)生中斷,將 一次,同時(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,使主程序不斷的查詢(xún)?cè)撐唬?dāng)該位為 1時(shí),等待中斷程序的執(zhí)行,此時(shí)向外發(fā)射紅外脈沖;當(dāng)該位為 0時(shí),中斷結(jié)束,主程序繼續(xù)向下執(zhí)行 [26]。其流程圖如圖 : Y N Y N Y 啟動(dòng)定時(shí)器 T0 T0 定時(shí)時(shí)間到 翻轉(zhuǎn)一次, T0 重新裝初值, T1定時(shí)時(shí)間到 確認(rèn)是否有鍵按下 開(kāi)始 啟動(dòng)定時(shí)器 T1,定時(shí)時(shí)間為 50ms 返主 圖 42 定時(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ù)器 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ù)值不可能?chē)?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]。 如圖 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ù) 查詢(xún)各預(yù)定記數(shù)值是否在 T0記數(shù)值加減 5 的范圍內(nèi) 查到該值 將對(duì)應(yīng) P1 口位的電平翻轉(zhuǎn) 返回 SW=1 初始化程序 在初始化程序中,首先將 P1 口和 P3 口初始化,初值均為 0FFH。外部中斷 1觸發(fā)方式設(shè)置為電平觸發(fā)方式,即將 IT1 位清零。在就是設(shè)置 T0 和 T1 的工作方式,由于 T0為計(jì)數(shù)方式、 T1 為定時(shí)方式,故將將方式控制寄存器 TMOD 賦值為 15H。為了便于編寫(xiě)和理解程序,將 各種不同狀態(tài)對(duì)應(yīng)的紅外脈沖數(shù)分別賦給 X0 到 X7。 由于在整個(gè)過(guò)程中要多次用到計(jì)數(shù)器 0的計(jì)數(shù)值,所以應(yīng)將該值予以保護(hù),我們?cè)谶@種情況下,通常的做法就是將該值放入堆棧,每次要使用時(shí),在從堆棧里面調(diào)出。 堆 棧是微機(jī)的一種重要的存儲(chǔ)器,它的一個(gè)重要特點(diǎn)是后進(jìn)先出的方式工作,用于暫存信息的存儲(chǔ)單元。他通常應(yīng)用于在調(diào)用子程序前、響應(yīng)中斷前保護(hù)現(xiàn)場(chǎng),將斷點(diǎn)的有關(guān)信息送入堆棧,待子程序和中斷服務(wù)程序執(zhí)行完畢,再將斷點(diǎn)信息彈出,恢復(fù)現(xiàn)場(chǎng)。 最后就是開(kāi)所有中斷,等待 INT1 引腳被觸發(fā),進(jìn)入中斷服務(wù)子程序。 計(jì)數(shù)值比較程序 將計(jì)時(shí)器計(jì)數(shù)值與欲置的計(jì)數(shù)值比較是定時(shí)器 1中斷服務(wù)程序的一部分。首先將兩數(shù)直接比較,看是否相等,若相等,則直接返回;若不相等,則比較它們的大小,然后將較大數(shù)減去較小數(shù),看差值是否在 5以?xún)?nèi)。若在 5以?xún)?nèi), 則可判定紅外發(fā)射器發(fā)射的紅外光的發(fā)射頻率為該欲置數(shù);若在 5以外,則將該計(jì)數(shù)值與下一個(gè)欲置數(shù)比較,知道找到一個(gè)數(shù)與它的差值在 5以?xún)?nèi),如果找不到該值,則該操作無(wú)效。 定時(shí)器 1中斷服務(wù)程序 在遙控接收程序中,主要就是定時(shí)器 1中斷服務(wù)程序,它包括數(shù)值掃描與比較程序,以及對(duì)控制電路實(shí)施控制操作程序。其流程圖如圖 : 圖 43 遙控接收主程序流程圖 開(kāi)始 T1 定時(shí)時(shí)間到 關(guān)計(jì)數(shù)器 T0保存該計(jì)數(shù)值 計(jì)數(shù)值與X0 比較差值在 5 以?xún)?nèi) 位電平翻轉(zhuǎn)一次,使該位對(duì)控制電路實(shí)現(xiàn)開(kāi)關(guān)控制 計(jì)數(shù)值與X1 比較差值在 5 以?xún)?nèi) 位電平翻轉(zhuǎn)一次,使該位對(duì)控制電路實(shí)現(xiàn)開(kāi)關(guān)控制 計(jì)數(shù)值與 X2 比較差值在 5以?xún)?nèi) 中斷返回 圖 44 定時(shí)器 1中斷服務(wù)子程序流程圖
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1