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

正文內(nèi)容

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

2024-11-29 11:02本頁面

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

  

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