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

正文內(nèi)容

畢業(yè)論文--紅外遙控電風(fēng)扇的設(shè)計(jì)-資料下載頁

2025-02-04 13:07本頁面

【導(dǎo)讀】所取得的成果,內(nèi)容真實(shí)可靠,不存在抄襲、造假等學(xué)術(shù)不端行為。除文中已經(jīng)注明引。用的內(nèi)容外,本設(shè)計(jì)不含其他個人或集體已經(jīng)發(fā)表或撰寫過的研究成果。做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。如被發(fā)現(xiàn)設(shè)計(jì)中存在抄襲、造假等學(xué)術(shù)不端行為,本人愿承擔(dān)相應(yīng)的法律責(zé)任和一切后果。中斷、定時器和其與鍵盤的連接方面作了更詳盡的介紹。本文中包括紅外線發(fā)射和紅外。線接收的原理圖,并給出多種方案。時中斷程序、發(fā)送周期程序、發(fā)送數(shù)據(jù)程序和發(fā)送“0”和“1”等程序進(jìn)行了編制。的構(gòu)思過程,就可以編寫應(yīng)用軟件,便是本論文的特點(diǎn)。利用MCS89C51多次發(fā)送及反。碼校驗(yàn)功能,防止了其它遙控碼和未知代碼的干擾,從而提高了產(chǎn)品的可靠性。要的遙控設(shè)備,因此也是本次作為設(shè)計(jì)課題的重要理由之一。關(guān)鍵詞:MSC89C51、紅外線遙控、鍵盤接口。

  

【正文】 ODE RR A 。向下流動實(shí)際就是右移 MOV LAMPCODE,A MOV P1,A LCALL D500MS LAMPRET: RET END 以上程序功能很簡單,但它演示了一個鍵盤處理程序的基本思路,程序本身很簡單,也不很實(shí)用,實(shí)際工作中還會有好多要考慮的因素,比如主循環(huán)每次都調(diào)用燈的循環(huán)程序,會造成按鍵反應(yīng)“遲鈍”,而如果一直按著鍵不放,則燈不會再流動,一直要到松開手為止,等等,大家可以仔細(xì)考慮一下這些問題,再想想有什么好的解決辦法。 采用中斷方式 :如圖 4 所示。各個按鍵都接到一個與非上,當(dāng)有任何一個按鍵按下時,都會使與門輸出為低電平,從而引起單片機(jī)的中斷,它的好處是不用在主程序中不斷地循環(huán)查詢,如果有鍵按下,單片機(jī)再去做相應(yīng)的處理。 1. 矩陣式鍵盤的結(jié)構(gòu)與工作原理: 在鍵盤中按鍵數(shù)量較多時,為了減少 I/O 口的占用,通常將按鍵排列成矩陣形式,如圖 1 所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一 34 個按鍵加以連接。這樣,一個端口(如 P1 口)就可以構(gòu)成 4*4=16 個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明 顯,比如再多加一條線就可以構(gòu)成20 鍵的鍵盤,而直接用端口線則只能多出一鍵( 9 鍵)。由此可見,在 需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。 圖 2— 5 矩陣式鍵盤的結(jié)構(gòu) 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的 I/O 口作為輸出 端,而列線所接的 I/O 口則作為輸入。這樣,當(dāng)按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及編程方法如下所述。 矩陣式鍵盤的按鍵識別方法 確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。 行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。 判斷鍵盤中有無鍵按下將全部行線 Y0Y3 置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則 表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與 4 根行線相交叉的 4 個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確 35 定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 如上圖所示。 8031 單片機(jī)的 P1 口用作鍵盤 I/O 口,鍵盤的列線接到 P1 口的低 4位,鍵盤的行線接到 P1 口的高 4 位。列線 分別接有 4 個上拉電阻到正電源 +5V,并把列線 設(shè)置為輸入線,行線 設(shè)置為輸出線。 4 根行線和 4 根列線形成 16 個相交點(diǎn)。 檢測當(dāng)前是否有鍵被按下。檢測的方法是 輸出全“ 0”,讀取 的狀態(tài),若 為全“ 1”,則無鍵閉合,否則有鍵閉合。 去除鍵抖動。當(dāng)檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。 若有鍵被按下,應(yīng)識別出是哪一個鍵閉合。方法是對鍵盤的行線進(jìn)行掃描。 按下述 4 種組合依次輸出: 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 在每組行輸出時讀取 ,若全為“ 1”,則表示為“ 0”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值 為了保證鍵每閉合一次 CPU 僅作一次處理,必須卻除鍵釋放時的抖動。 鍵盤掃描程序: 從以上分析得到鍵盤掃描程序的流程圖如圖 2— 6 所示。程序如下 SCAN: MOV P1,0FH MOV A,P1 ANL A,0FH CJNE A,0FH,NEXT1 SJMP NEXT3 NEXT1: ACALL D20MS MOV A,0EFH NEXT2: MOV R1,A MOV P1,A 36 MOV A,P1 ANL A,0FH CJNE A,0FH,KCODE。 MOV A,R1 SETB C RLC A JC NEXT2 NEXT3: MOV R0,00H RET KCODE: MOV B,0FBH NEXT4: RRC A INC B JC NEXT4 MOV A,R1 SWAP A NEXT5: RRC A INC B INC B INC B INC B JC NEXT5 NEXT6: MOV A,P1 ANL A,0FH CJNE A,0FH,NEXT6 MOV R0,0FFH RET 鍵盤處理程序就作這么一個簡單的介紹,實(shí)際上,鍵盤、顯示處理是很復(fù)雜的,它往往占到一個應(yīng)用程序的大部份代碼,可見其重要性,但說到,這種復(fù)雜并不來自于單片機(jī)的本身,而是來自于操作者的習(xí)慣等等問題,因此,在編寫鍵盤處理程序之前,最好先把它從邏輯上理清,然后用適當(dāng)?shù)乃惴ū硎境鰜?,最后再去寫代碼,這樣,才能快 37 速有效地寫好代碼。 MCS8951 的定時 /計(jì)數(shù)器的方式控制字 程序 計(jì)數(shù)器與定時器 一、計(jì)數(shù)概念的引入 從選票的統(tǒng)計(jì)談起:畫“正”。這就是計(jì)數(shù),生活中計(jì)數(shù)的例子處處可見。例:錄音機(jī)上的計(jì)數(shù)器、家里面用的電度表、汽車上的里程表等等,再舉一個工業(yè)生產(chǎn)中的例子,電線生產(chǎn)出來之后要計(jì)米,也就是測量長度,怎么測法呢?用尺量?不現(xiàn)實(shí),太長不說,要一邊做一邊量呢,怎么辦呢?行業(yè)中有很巧妙的方法,用一個周長是 1 米的輪子,將電纜繞在上面一周,由線帶輪轉(zhuǎn),這樣輪轉(zhuǎn)一周不就是線長 1 米嘛,所以只要記下輪轉(zhuǎn)了多少圈,就可以知道走過的線有 多長了。 二、計(jì)數(shù)器的容量 從一個生活中的例子看起:一個水盆在水龍頭下,水龍頭沒關(guān)緊,水一滴滴地滴入盆中。水滴不斷落下,盆的容量是有限的,過一段時間之后,水就會逐漸變滿。錄音機(jī)上的計(jì)數(shù)器最多只計(jì)到 999? .那么單片機(jī)中的計(jì)數(shù)器有多大的容量呢? 8031 單片機(jī)中有兩個計(jì)數(shù)器,分別稱之為 T0 和 T1,這兩個計(jì)數(shù)器分別是由兩個 8 位的 RAM 單元組成的,即每個計(jì)數(shù)器都是 16 位的計(jì)數(shù)器,最大的計(jì)數(shù)量是 65536。 三、定時 8031 中的計(jì)數(shù)器除了可以作為計(jì)數(shù)之用外,還可以用作時鐘,時鐘的用途當(dāng)然很大,如打鈴器,電視機(jī)定時關(guān) 機(jī),空調(diào)定時開關(guān)等等,那么計(jì)數(shù)器是如何作為定時器來用的呢? 一個鬧鐘,我們將它定在 1 個小時后鬧響,換言之,也可以說是秒針走了( 3600)次,所以時間就轉(zhuǎn)化為秒針走的次數(shù),也就是計(jì)數(shù)的次數(shù)了,可見,計(jì)數(shù)的次數(shù)和時間之間的確十分相關(guān)。那么它們的關(guān)系是什么呢?那就是秒針每一次走動的時間正好是 1秒。 結(jié)論:只要計(jì)數(shù)脈沖的間隔相等,則計(jì)數(shù)值就代表了時間的流逝。 由此,單片機(jī)中的定時器和計(jì)數(shù)器是一個東西,只不過計(jì)數(shù)器是記錄的外界發(fā)生的 38 事情,而定時器則是由單片機(jī)提供一個非常穩(wěn)定的計(jì)數(shù)源。 那么提供定時器的計(jì)數(shù)源是什么呢? 看圖 1,原來就是由單片機(jī)的晶振經(jīng)過 12 分頻后獲得的一個脈沖源。晶振的頻率當(dāng)然很準(zhǔn),所以這個計(jì)數(shù)脈沖的時間間隔也很準(zhǔn)。問題:一個 12M 的晶振,它提供給計(jì)數(shù)器的脈沖時間間隔是多少呢?當(dāng)然這很容易,就是 12M/12 等于 1M,也就是 1 個微秒。 結(jié)論:計(jì)數(shù)脈沖的間隔與晶振有關(guān), 12M 的晶振,計(jì)數(shù)脈沖的間隔是 1 微秒。 四、溢出 讓我們再來看水滴的例子,當(dāng)水不斷落下,盆中的水不斷變滿,最終有一滴水使得盆中的水滿了。這時如果再有一滴水落下,就會發(fā)生什么現(xiàn)象?水會漫出來,用個術(shù)語來講就是“溢出”。 水溢出是流到地上,而計(jì)數(shù) 器溢出后將使得 TF0 變?yōu)椤?1”。至于 TF0 是什么我們稍后再談。一旦 TF0 由 0 變成 1,就是產(chǎn)生了變化,產(chǎn)生了變化就會引發(fā)事件,就象定時的時間一到,鬧鐘就會響一樣。至于會引發(fā)什么事件,我們下一課再介紹,現(xiàn)在我們來研究另一個問題:要有多少個計(jì)數(shù)脈沖才會使 TF0 由 0 變?yōu)?1。 五、任意定時及計(jì)數(shù)的方法 剛才已研究過,計(jì)數(shù)器的容量是 16 位,也就是最大的計(jì)數(shù)值到 65536,因此計(jì)數(shù)計(jì)到 65536 就會產(chǎn)生溢出。這個沒有問題,問題是我們現(xiàn)實(shí)生活中,經(jīng)常會有少于 65536個計(jì)數(shù)值的要求,如包裝線上,一打?yàn)?12 瓶,一瓶藥片為 100 粒,怎么樣來滿足這個要求呢? ?? 提示:如果是一個空的盆要 1 萬滴水滴進(jìn)去才會滿,我在開始滴水之前就先放入一勺水,還需要 10000 滴嘛? 對了,我們采用預(yù)置數(shù)的方法,我要計(jì) 100,那我就先放進(jìn) 65436,再來 100 個脈沖,不就到了 65536 了嗎。 定時也是如此,每個脈沖是 1 微秒,則計(jì)滿 65536 個脈沖需時 毫秒,但現(xiàn)在我只要 10 毫秒就可以了,怎么辦? 10 個毫秒為 10000 個微秒,所以,只要在計(jì)數(shù)器里面放進(jìn) 55536 就可以了。 在單片機(jī)中有兩個特殊功能寄存器與定時 /計(jì)數(shù)有關(guān),這就是 TMOD 和 TCON。順便說一下, TMOD 和 TCON 是名稱,我們在寫程序時就可以直接用這個名稱來指定它們,當(dāng)然也可以直接用它們的地址 89H 和 88H 來指定它們(其實(shí)用名稱也就是直接用 39 地址,匯編軟件幫你翻譯一下而已)。 符號 地址 功能介紹 B F0H B 寄存器 ACC E0H 累加器 PSW D0H 程序狀態(tài)字 IP B8H 中斷優(yōu)先級控制寄存器 P3 B0H P3 口鎖存器 IE A8H 中斷允許控制寄存器 P2 A0H P2 口鎖存器 SBUF 99H 串行口鎖存器 SCON 98H 串行口控制寄存器 P1 90H P1 口鎖存器 TH1 8DH 定時器 /計(jì)數(shù)器 1(高 8 位) TH0 8CH 定時器 /計(jì)數(shù)器 1(低 8 位) TL1 8BH 定時器 /計(jì)數(shù)器 0(高 8 位) TL0 8AH 定時器 /計(jì)數(shù)器 0(低 8 位) T 8 定時器 /計(jì)數(shù)器方式控制寄存器 40 MOD 9A TCON 88H 定時器 /計(jì)數(shù)器控制寄存器 DPH 83H 數(shù)據(jù)地址指針(高 8 位) DPL 82H 數(shù)據(jù)地址指針(低 8 位) SP 81H 堆棧指針 P0 80H P0 口鎖存器 PCON 87H 電源控制寄存器 圖 1 從圖 1 中我們可以看出 , TMOD 被分成兩部份,每部份 4 位。分別用于控制 T1 和T0,至于這里面是什么意思,我們下面介紹。 從圖 2 中我們可以看出, TCON 也被分成兩部份,高 4 位用于定時 /計(jì)數(shù)器,低 4位則用于中斷(我們暫不管)。而 TF1( 0)我們上節(jié)課已提到了,當(dāng)計(jì)數(shù)溢出后 TF1( 0)就由 0 變?yōu)?1。原來 TF1( 0)在這兒!那么 TR0、 TR1 又是什么呢?看上節(jié)課的圖。 計(jì)數(shù)脈沖要進(jìn)入計(jì)數(shù)器還真不容易,有層層關(guān)要通過,最起碼,就是 TR0( 1)要為 1,開關(guān)才能合上,脈沖才能過來。因此, TR0( 1)稱之為運(yùn)行控制位,可用指令SETB 來置位以 啟動計(jì)數(shù)器 /定時器運(yùn)行,用指令 CLR 來關(guān)閉定時 /計(jì)數(shù)器的工作,一切盡在自已的掌握中。 定時 /計(jì)數(shù)器的四種工作方式 工作方式 定時器 /計(jì)數(shù)器的工作方式 0 稱之為 13 位定時 /計(jì)數(shù)方式。它由 TL( 1/0)的低 5 位和 TH( 0/1)的 8 位構(gòu)成 13 位的計(jì)數(shù)器,此時 TL( 1/0)的高 3 位未用。 我們用這個圖來討論幾個問題: 41 1. M1M0:定時 /計(jì)數(shù)器一共有四種工作方式,就是用 M1M0 來控制的, 2 位正好是四種組合。 2. C/T:前面我們說過,定時 /計(jì)數(shù)器即可作定時用也可計(jì)數(shù)用,到底作什么用,由我們根據(jù)需要自行決定,也就是說決定權(quán)在我們編程者。如果 C/T 為 0 就是用作定時器(開關(guān)往上打),如果 C/T 為 1 就是用作計(jì)數(shù)器(開關(guān)往下打)。順便提一下:一個定時 /計(jì)數(shù)器同一時刻要么作定時用,要么作計(jì)數(shù)用,不能同時用,這是個極普通的常識,幾乎沒有教材會提這一點(diǎn),但很多初學(xué)者卻會有此困惑。 3. GATE:看圖,當(dāng)我們選擇了定時或計(jì)數(shù)工作方式后,定時 /計(jì)數(shù)脈沖卻不一定能到達(dá)計(jì)數(shù)器端,中間還有一個開關(guān),顯然這個開關(guān)不合上,計(jì)數(shù)脈沖就沒法過去,那么開關(guān)什么時候過去呢?有兩種情況 ( 1) GATE=0,分析一下邏 輯, GATE 非后是 1,進(jìn)入或門,或門總是輸出 1,和或門的另一個輸入端 INT1 無關(guān),在這種情況下,開關(guān)的打開、合上只取決于 TR1,只要 TR1 是 1,開關(guān)就合上,計(jì)數(shù)脈沖得以暢通無阻,而如果 TR1 等于 0 則開關(guān)打開,計(jì)數(shù)脈沖無
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1