單片機(jī)技術(shù)及工程實(shí)踐第7章課件_第1頁(yè)
單片機(jī)技術(shù)及工程實(shí)踐第7章課件_第2頁(yè)
單片機(jī)技術(shù)及工程實(shí)踐第7章課件_第3頁(yè)
單片機(jī)技術(shù)及工程實(shí)踐第7章課件_第4頁(yè)
單片機(jī)技術(shù)及工程實(shí)踐第7章課件_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第7章 單片機(jī)技術(shù)應(yīng)用實(shí)踐 * 單片機(jī)技術(shù)必須與實(shí)驗(yàn)和工程實(shí)踐緊密結(jié)合, 理解和應(yīng)用才能融會(huì)貫通.經(jīng)過實(shí)踐驗(yàn)證的知 識(shí)才易于理解,理解了的知識(shí)才能夠靈活運(yùn)用, 靈活運(yùn)用了知識(shí)才能夠有所創(chuàng)新.* 初學(xué)者可先從有代表性的應(yīng)用實(shí)例入手,進(jìn)行 模仿、理解和體驗(yàn),有助于消除畏難心理、盡 快嘗試到學(xué)習(xí)和成功的樂趣.* 絕大部分應(yīng)用實(shí)例,都不同程度應(yīng)用到定時(shí)器 /計(jì)數(shù)器、中斷和串行通信. 掌握了這三大核 心技術(shù)的功能,許多問題就能迎刃而解. 17.1 定時(shí)器/計(jì)數(shù)器的音樂應(yīng)用 * 本章圍繞這三大技術(shù)功能展示相關(guān)應(yīng)用實(shí)例. 采用簡(jiǎn)單而富有針對(duì)性的電路形式,旨在闡明 技術(shù)原理和設(shè)計(jì)思路, 并給出硬件軟件范例,

2、使讀者在實(shí)踐中領(lǐng)悟技術(shù)要領(lǐng)并受到啟發(fā),培 養(yǎng)分析電路原理的能力,養(yǎng)成查閱元件數(shù)據(jù)手 冊(cè)的習(xí)慣,積累元器件使用的工程經(jīng)驗(yàn). 定時(shí)器/計(jì)數(shù)器可作片外輸入信號(hào)的計(jì)數(shù)器和作片內(nèi)定時(shí)器. 實(shí)現(xiàn)基本的定時(shí)功能外,還可與其他技術(shù)結(jié)合使用,充分發(fā)揮應(yīng)用功能. 27.1.1 設(shè)計(jì)思路與依據(jù) 音樂由不同頻率的音符構(gòu)成,定時(shí)器/計(jì)數(shù)器的片內(nèi)定時(shí)溢出功能產(chǎn)生一定頻率的方波脈沖,驅(qū)動(dòng)揚(yáng)聲器發(fā)出相應(yīng)的音符,是單片機(jī)音樂應(yīng)用的技術(shù)依據(jù). 1. 音符方波脈沖產(chǎn)生的原理計(jì)算出音符頻率的方波半周期,用定時(shí)器/計(jì)數(shù)器進(jìn)行半周期定時(shí)并從I/O口輸出,同樣方法定時(shí)的另半個(gè)周期從I/O口反相輸出,重復(fù)這一過程就得到該音符的方波脈沖序列.

3、 3音符發(fā)生器的定時(shí)波形圖例如:中音“D0”的頻率523Hz,周期1.912ms,半周期9.56ms,定時(shí)器/計(jì)數(shù)器裝入定時(shí)預(yù)置值并啟動(dòng),每9.56ms中斷溢出一次,在中服重裝預(yù)置值并啟動(dòng),反相輸出,驅(qū)動(dòng)揚(yáng)聲器發(fā)“D0”音. 42. 音符對(duì)應(yīng)的定時(shí)器預(yù)置值計(jì)算 設(shè):定時(shí)方式1,構(gòu)成16位定時(shí)器/計(jì)數(shù)器. 內(nèi)部計(jì)時(shí)頻率為ftime,周期為ttime, 要產(chǎn)生的音符頻率為fmusic,周期為tmusic, 要求的定時(shí)計(jì)數(shù)值為N,定時(shí)預(yù)置值為X.音符方波脈沖周期比機(jī)器周期寬得多,如下: 5從音符頻率fmusic的半周期,得到內(nèi)部定時(shí)的機(jī)器周期計(jì)數(shù)值N : N (tmusic2) ttime (fti

4、me2) fmusic從而得到定時(shí)器的預(yù)置值X (又稱時(shí)間常數(shù)),計(jì)算關(guān)系為: X 65536(ftime2fmusic)例:用12MHz晶振,求中音“D0”的頻率 fDo523Hz所對(duì)應(yīng)的X .因機(jī)器周期為1s,內(nèi)部計(jì)時(shí)頻率ftime1MHz,得 X 65536(1062523)6458063. 音符頻率與定時(shí)器預(yù)置值對(duì)照表 77.1.2 硬件電路設(shè)計(jì) 1. 硬件組成 (精簡(jiǎn)型89C2051為控制核心)82. 電路原理* 鍵盤行輸出線:P1.0P1.3 (P1.0,P1.1因兼作片內(nèi)模擬比較器,需加上拉電阻) 鍵盤列輸入線:P1.4P1.6 * 鍵號(hào)“18”對(duì)應(yīng)音符的“中1D0高1D0”,

5、鍵號(hào)“9”對(duì)應(yīng)音符的“低1D0低4FA” * 燈VL采用芯片口線吸電流接法,P3.5低點(diǎn)亮.* 低頻放大器LM386用單電源工作,由P3.7單端 信號(hào)驅(qū)動(dòng),揚(yáng)聲器SP為負(fù)載.在1和8腳間串入 電阻電容支路可在200倍內(nèi)調(diào)整放大倍數(shù).* 電容C7和C6作芯片供電端的抗電源干擾濾波. 93. 主要器件89C2051為20腳DIP封裝,內(nèi)含2KB Flash.鍵盤也可用雙觸點(diǎn)開關(guān)搭建,SP阻抗8歐,用萬(wàn)用板. 定時(shí)器音樂應(yīng)用的 實(shí)驗(yàn)電路裝置樣照(建議實(shí) 驗(yàn)使用 IC插座) 107.1.3 軟件設(shè)計(jì) 1. 軟件框架鍵盤操作采用直觀響應(yīng)方式:鍵按下燈亮發(fā)聲;鍵釋放燈熄消聲.采用片內(nèi)定時(shí)溢出中斷請(qǐng)求方式,

6、以反相方式從聲音驅(qū)動(dòng)口輸出方波脈沖.112. 軟件流程12* 主程序?qū)Χ〞r(shí)模式和中斷方式初始化, 鍵盤 掃描采用延時(shí)去抖,查表方式(常設(shè)在程序之 末)獲取鍵號(hào)對(duì)應(yīng)的音符預(yù)置值,啟動(dòng)定時(shí)器 輸出音符脈沖.* 中服程序中通過程序狀態(tài)字PSW中的 R0、R1 切換工作寄存器區(qū)來(lái)保護(hù)現(xiàn)場(chǎng). 由于定時(shí)啟 動(dòng)后沒有使用停止指令, 因此重裝定時(shí)預(yù)置 值后定時(shí)器仍能繼續(xù)運(yùn)行. 3. 匯編語(yǔ)言源程序 (見書P.160) 對(duì)照流程圖寫指令語(yǔ)句,需注意避免字符鍵入13錯(cuò)誤.程序最末端的數(shù)據(jù)表TAB采用DW偽指令,把12個(gè)預(yù)置值以十進(jìn)制數(shù)表示. 習(xí)慣上把調(diào)用的子程序和中斷服務(wù)程序放在主程序的后面,且最后必須以END語(yǔ)

7、句作結(jié)束標(biāo)志. 4. C語(yǔ)言源程序 (見書P.164) * 匯編語(yǔ)言程序簡(jiǎn)練,尤能發(fā)揮硬件層面的控制 優(yōu)勢(shì),但運(yùn)算能力較弱,需要直接操作RAM空間. * C語(yǔ)言有很強(qiáng)數(shù)據(jù)運(yùn)算能力, 用戶不必知道數(shù) 據(jù)放在的RAM空間位置,但效率較低,編譯成的 代碼量較大.兩者結(jié)合可充分發(fā)揮各自優(yōu)點(diǎn). 147.1.4 應(yīng)用說明 電路裝置上電后系統(tǒng)復(fù)位, 按下任一按鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)單音符聲音且燈發(fā)亮,按鍵釋放時(shí)單音符聲音消失且燈熄滅,連續(xù)操作按鍵可演奏由12個(gè)音符組成的音樂,體現(xiàn)定時(shí)應(yīng)用. 7.2 中斷技術(shù)的雙向識(shí)別 7.2.1 設(shè)計(jì)思路和依據(jù) 1. 物體運(yùn)動(dòng)方向識(shí)別的意義和應(yīng)用 識(shí)別物體的運(yùn)動(dòng)方向有實(shí)際工程應(yīng)

8、用價(jià)值,諸如統(tǒng)計(jì)進(jìn)出博物館人數(shù),辦公室或?qū)嶒?yàn)室以人15人員計(jì)數(shù)為依據(jù)的燈光通斷節(jié)能控制,公交車的上落客流量統(tǒng)計(jì)等.由51系列單片機(jī)兩個(gè)外部中斷源作聯(lián)合控制, 結(jié)合標(biāo)志位的運(yùn)用,可實(shí)現(xiàn)雙向識(shí)別的功能. 2. 外部中斷觸發(fā)信號(hào)的產(chǎn)生方法 進(jìn)行運(yùn)動(dòng)方向識(shí)別,須提供兩路外部中斷信號(hào),可利用紅外透射式對(duì)管來(lái)實(shí)現(xiàn),用其中紅外接收管的輸出作為中斷源.只要紅外發(fā)射管被遮擋,紅外光就不能被紅外接收管接收, 對(duì)管的輸出端便產(chǎn)生負(fù)脈沖信號(hào),觸發(fā)外部中斷. 163. 物體運(yùn)動(dòng)方向識(shí)別的方法分析 把兩組紅外透射對(duì)管并排裝在同一水平面上.* 物體先從外部進(jìn)入,紅外透射光(1)首先被遮 擋,接著才是紅外透射光(2)被遮擋,

9、 首先觸 發(fā)外中斷0,接著觸發(fā)外中斷1. 同理,物體從 內(nèi)部出來(lái),先觸發(fā)外中斷1,后觸發(fā)外中斷0.17* 程序設(shè)定標(biāo)志,以記錄中斷觸發(fā)的先后次序, 據(jù)此判斷物體的運(yùn)動(dòng)方向.再把運(yùn)動(dòng)方向轉(zhuǎn) 換為加減運(yùn)算,根據(jù)運(yùn)算結(jié)果執(zhí)行相應(yīng)的控 制操作,如開燈、關(guān)燈或超限報(bào)警等.7.2.2 硬件設(shè)計(jì)* 因用I/0口線少,以精簡(jiǎn)型89C2051 作核心.* 兩組紅外透射對(duì)管構(gòu)成運(yùn)動(dòng)方向識(shí)別電路, 負(fù)脈沖信號(hào)經(jīng)芯片整形后用作中斷信號(hào). * 用固體繼電器作執(zhí)行機(jī)構(gòu), 驅(qū)動(dòng)交流燈泡. 1. 硬件組成 (三部分)182. 電路原理 (中斷技術(shù)的雙向識(shí)別) * VD1,VD2為紅外發(fā)射管.V1,V2為光敏接收管.19 U3

10、,U4為施密特觸發(fā)反相器.K為固體繼電器.* 沒物體遮擋時(shí)兩接收管均導(dǎo)通,集電極低電 平經(jīng)U3和U4整形和反相后,變?yōu)楦唠娖? 不 觸發(fā)外部中斷.* 任一組紅外透射對(duì)管受遮擋時(shí),接收管截止, 集電極電平跳變,經(jīng)整形反相后產(chǎn)生從高到 低的下降沿,觸發(fā)外部中斷. * 物體從外部進(jìn)入,U1先被遮擋而U2后被遮擋, 編程關(guān)系是計(jì)數(shù)值增1;物體從內(nèi)部出來(lái),U2 先被遮擋而U1后被遮擋,計(jì)數(shù)值減1.* 若計(jì)數(shù)值大于0,使P3.5保持低,燈VL保持亮.20 同時(shí),使P3.4保持低,控制固體繼電器K使輸 出端VT(雙向晶閘管)導(dǎo)通,交流燈泡HL點(diǎn)亮.* 當(dāng)計(jì)數(shù)值等于0,使P3.5和P3.4 均變高電平, 控制

11、燈VL熄滅和固體繼電器K關(guān)斷.* 由C3和R7實(shí)現(xiàn)單片機(jī)上電復(fù)位. 3. 主要器件 (雙向識(shí)別)單片機(jī)用89C2051型.紅外發(fā)射管與接收管的實(shí)驗(yàn)透射距離取8cm,一般的聚焦型紅外發(fā)光二極管和光敏接收管都能勝任. 交流固體繼電器用GTJ24-1A型,直流輸入端314V,交流輸出端240V/1A.交流負(fù)載用1525W燈泡. 21雙向識(shí)別實(shí)驗(yàn)裝置樣照: 221. 軟件框架 (判中斷觸發(fā)先后,置相應(yīng)標(biāo)志)7.2.3 軟件設(shè)計(jì)23* 用位地址 30H、31H 記INT0、INT1觸發(fā)標(biāo)志.* 物體進(jìn)入,先觸發(fā)INT0,置標(biāo)志為1,中斷返回. 隨后觸發(fā)INT1,中服查到INT0標(biāo)志為1,判為 進(jìn)入方向,

12、計(jì)數(shù)值增1,請(qǐng)INT0標(biāo)志,中斷返回. * 物體離開,先觸發(fā)INT1,置標(biāo)志為1,中斷返回. 隨后觸發(fā)INT0,中服查到INT1標(biāo)志為1,判為 出離方向,計(jì)數(shù)值減1,請(qǐng)INT1標(biāo)志,中斷返回. * 主程序?qū)τ?jì)數(shù)結(jié)果作判斷,進(jìn)行控制操作.注: 增1操作應(yīng)在INT1中斷服務(wù)程序中完成. 減1操作應(yīng)在INT0中斷服務(wù)程序中完成. 計(jì)數(shù)值為0時(shí)若仍有出離,則不減1保持0.242. 程序流程(1)中斷技術(shù)的雙向識(shí)別主程序流程圖 初始化設(shè)標(biāo)志,清緩沖區(qū),MA2循環(huán)判計(jì)數(shù)區(qū)值.25(2)雙向識(shí)別的INT0中斷服務(wù)程序流程圖 26 ITA作兩個(gè)判斷:1)若INT0自身被觸發(fā),則INT1的標(biāo)志沒置位,可 置標(biāo)志

13、30H為1,屬先進(jìn)入的中斷,中斷返回. 1)若INT1標(biāo)志已置位,表明INT0是后觸發(fā),INT1 屬先出離的中斷.把個(gè)位計(jì)數(shù)單元減1,不 不夠減便向高位計(jì)數(shù)單元借位(最高千位), 當(dāng)前被減的單元寫入09H. 若千位計(jì)數(shù)單元 25H為0,則把所有單元清0,標(biāo)志31H置為0,為 下一次判斷作準(zhǔn)備,然后中斷返回. 27(3)雙向識(shí)別的INT1中斷服務(wù)程序流程圖 28 ITC作兩個(gè)判斷:1)若INT1自身被觸發(fā),則INT0的標(biāo)志沒置位,可 置標(biāo)志31H為1,屬先離開的中斷,中斷返回. 1)若INT0標(biāo)志已置位,表明INT1是后觸發(fā),INT0 屬先進(jìn)入的中斷.把個(gè)位計(jì)數(shù)單元增1,滿 10便向高位計(jì)數(shù)單元

14、進(jìn)位,若最高千位25H 計(jì)滿10,表示上限溢出,則把所有計(jì)數(shù)單元清 0,且千位25H寫入1,以維持外部執(zhí)行機(jī)構(gòu)的 當(dāng)前狀態(tài),再把標(biāo)志30H置為0,為下一次判斷 作準(zhǔn)備,然后中斷返回. 293. 匯編語(yǔ)言源程序 (見書P.174) 包含一個(gè)主程序和兩個(gè)外部中斷服務(wù)程序. 4. C語(yǔ)言源程序 (見書P.176) 包含頭文件,主程序(含兩個(gè)中斷服務(wù)函數(shù)). 7.2.4 應(yīng)用說明見圖照,兩路紅外光線從左立柱兩小圓孔發(fā)出,被右立柱兩個(gè)光敏管接收.用條狀紙板在兩立柱間從由外往內(nèi)沿水平方向移動(dòng),使兩路光線先后被遮擋, 如進(jìn)入1至5次,右立柱燈VL和燈泡HL均亮;紙板改由從內(nèi)往外水平移動(dòng),直至5次后燈才熄.工

15、程應(yīng)用紅外光需調(diào)制以抗干擾. 307.3 串行通信的自發(fā)自收 內(nèi)部的全雙工串行通信口,共用一個(gè)收/發(fā)緩沖器,可用查詢、中斷或兩者的混合方式同時(shí)串行發(fā)送和接收.這類實(shí)驗(yàn)通常需要兩套單片機(jī)硬件裝置,為簡(jiǎn)化硬件設(shè)計(jì), 只用一套單片機(jī)裝置, 通過串行口自發(fā)自收的方法,達(dá)到上述三種串行通信方式的實(shí)驗(yàn)?zāi)康?能減輕初學(xué)者制作上的負(fù)擔(dān). 7.3.1 設(shè)計(jì)思路和依據(jù) 1. 串行通信發(fā)送方式和接收方式的選擇31 同一方式的串行通信只能了解單一的原理,混合方式的串行通信更利于對(duì)編程方法全面了解.為了以簡(jiǎn)化的方式了解通信的全過程, 發(fā)送端端以查詢標(biāo)志方式分別發(fā)送三個(gè)不同的數(shù)據(jù)幀,接收端以中斷方式分別接收三個(gè)不同的數(shù)據(jù)

16、幀.以顯示的數(shù)據(jù)一致為通信實(shí)驗(yàn)成功. 2. 人機(jī)交互輸入接口和數(shù)據(jù)顯示接口的綜合 運(yùn)用 收發(fā)端均設(shè)獨(dú)立式按鍵作人機(jī)交互接口.由按鍵啟動(dòng)數(shù)據(jù)發(fā)送并直觀顯示,接收端由按鍵啟動(dòng)數(shù)據(jù)顯示,僅用一位數(shù)碼管作硬件譯碼靜態(tài)顯示. 327.3.2 硬件設(shè)計(jì)1. 硬件組成AT89C51作電路控制核心.收發(fā)兩端均配有顯示十進(jìn)制數(shù)字的硬件譯碼/鎖存/驅(qū)動(dòng)芯片和一位共陰極LED數(shù)碼管.發(fā)送端用含三個(gè)獨(dú)立按鍵的接口電路來(lái)啟動(dòng)數(shù)據(jù)發(fā)送,按鍵按下后伴有蜂鳴器發(fā)聲提示. 接收端只用一個(gè)獨(dú)立按鍵來(lái)啟動(dòng)數(shù)據(jù)顯示,按鍵的操作伴有燈光指示. 2. 電路原理* 用一套單片機(jī),RXD和TXD 短接實(shí)現(xiàn)自發(fā)自收. 33自發(fā)自收串行通信實(shí)驗(yàn)

17、電路 34* 發(fā)送端由鎖存/譯碼/驅(qū)動(dòng)芯片U2和共陰極數(shù) 碼管DG1等作靜態(tài)顯示,位控制線接地.BCD碼 輸入端接P1.0P1.3口,信號(hào)由LE從低變高鎖 存, 經(jīng)譯碼后ag段輸出通過限流電阻接DG1. * 由 P2.4P2.6口循環(huán)查詢S1S3中哪個(gè)鍵按 下,通過TXD口發(fā)送數(shù)據(jù)幀, 3、7、9 為對(duì)應(yīng) 預(yù)置值,并由P2.2口低電平驅(qū)動(dòng)Buzzer發(fā)聲.* 接收端由U3和DG2組成靜態(tài)顯示,P2.1口提供 LE鎖存脈沖,接收的數(shù)據(jù)存于顯示緩沖區(qū).循 環(huán)查詢S4按下后,啟動(dòng)顯示并伴有燈VL發(fā)亮.* 三數(shù)據(jù)的收/發(fā)經(jīng)S手動(dòng)復(fù)位后可反復(fù)進(jìn)行. 353. 主要器件 (自發(fā)自收串行通信)89C51內(nèi)含

18、4K Flask,譯碼芯片CD4511,1/2吋共陰數(shù)碼管,自帶發(fā)聲振蕩電路的蜂鳴器Buzzer,雙觸點(diǎn)按鍵S1S4.VL為紅光LED.注: 89S51可用下載線在線編程.367.3.3 軟件設(shè)計(jì)1. 軟件框架由發(fā)送端主程序、接收端主程序和接收端中斷服務(wù)程序共三部分組成. * 發(fā)送端兩個(gè)查詢?nèi)蝿?wù):查13中何鍵按下,發(fā)數(shù) 37 據(jù)并顯示,伴有聲音提示. 查TXD口的發(fā)送標(biāo) 志置位,以便發(fā)送下一幀,此即查詢方式發(fā)送.* 接收端標(biāo)志置位便觸發(fā)接收中斷, 進(jìn)入中服 程序接收數(shù)據(jù)并儲(chǔ)存,把接收標(biāo)志清零,為下 一幀中斷接收作準(zhǔn)備,此即中斷方式接收.* 接收端主程序負(fù)責(zé)檢測(cè)按鍵4被按下,伴有燈 指示,并從R

19、AM中取出所收數(shù)據(jù)作靜態(tài)顯示.* 若收發(fā)兩端每次數(shù)據(jù)顯示相同, 則通信成功.注:鍵13和鍵4按照邏輯關(guān)系應(yīng)分開查詢,但僅 有一塊單片機(jī),因此實(shí)際編程是在一個(gè)主程 序內(nèi)對(duì)4個(gè)按鍵進(jìn)行聯(lián)合查詢來(lái)實(shí)現(xiàn).382. 程序流程(1)發(fā)送端的主程序流程圖 鍵被按下發(fā)聲,鍵釋放消聲,且均加入延時(shí)去抖. 39(2)接收端的主程序流程圖 (3)接收端中服 程序流程圖 (任務(wù)簡(jiǎn)單)鍵的處理同發(fā)送端,S4只起啟動(dòng)數(shù)據(jù)顯示作用. 403. 匯編語(yǔ)言源程序 (見書P.183) 4. C語(yǔ)言源程序 (見書P.186) 7.3.4 應(yīng)用說明* 見圖照,系統(tǒng)上電復(fù)位,按左側(cè)鍵S1,蜂鳴器 發(fā)聲,發(fā)送預(yù)設(shè)數(shù)據(jù)“3”, 并由左側(cè)D

20、G1顯示.* 按右側(cè)鍵S4,VL發(fā)亮,收到的數(shù)據(jù)“3”由右側(cè) DG2顯示.鍵S2和S3分別對(duì)應(yīng)數(shù)據(jù)“7”和“9”.* 在自發(fā)自收串行通信基礎(chǔ)上,可加入奇偶校 驗(yàn)功能,擴(kuò)展為雙機(jī)通信和多機(jī)通信,能從 中積累實(shí)踐經(jīng)驗(yàn).417.4 融合定時(shí)控制的鍵盤輸入 * 矩陣鍵盤是人機(jī)交互最常用界面. 調(diào)用鍵盤 子程序輸入信息,鍵入結(jié)束則返回主程序.利 用1.6.3節(jié)的“待機(jī)”功能,把鍵盤輸入與中斷 觸發(fā)相結(jié)合,在鍵入時(shí)單片機(jī)被喚醒,鍵入完 畢單片機(jī)返回待機(jī),可實(shí)現(xiàn)節(jié)能.* “待機(jī)喚醒”交替控制的典型應(yīng)用是電子密 碼保險(xiǎn)柜(見8.2節(jié)), 但非正常操作(如密碼 鍵入不足), 鍵盤子程序會(huì)一直等待鍵入,無(wú) 法返回

21、主程序的待機(jī)態(tài),電路處于全耗能.* 把定時(shí)技術(shù)融合到鍵盤操作中, 對(duì)鍵盤實(shí)施 計(jì)時(shí)控制,能解決鍵盤不能自動(dòng)返回的問題. 427.4.1 設(shè)計(jì)思路和依據(jù) 1. 鍵盤輸入的選擇和響應(yīng)方式 回顧鍵盤操作的三個(gè)步驟:判斷有否鍵按下,何鍵按下,賦予鍵值(按下和釋放均加延時(shí)去抖).同時(shí)伴以聲光直觀提示:鍵按下發(fā)聲或亮燈,鍵 釋放消聲或熄燈. 三種方法:鍵盤掃描法,鍵盤反極法,鍵盤位操作法.2. 定時(shí)控制在鍵盤操作中的接入方式鍵盤子程序進(jìn)入時(shí)啟動(dòng)定時(shí)器,退出時(shí)停止計(jì)時(shí).在鍵入等待期間,當(dāng)定時(shí)溢出次數(shù)達(dá)到預(yù)設(shè)最大值時(shí),結(jié)束鍵盤子程序并返回主程序. 437.4.2 硬件設(shè)計(jì)1. 硬件組成VL1,VL2表鍵盤輸入

22、狀態(tài).VL3表定時(shí)控制結(jié)束.442. 電路原理* 上電復(fù)位P0.0置低,紅燈1亮,表示系統(tǒng)正常.* 矩陣鍵盤采用反極法,P1.0P1.2口控制行 線,P1.3P1.6口控制列線. 檢測(cè)到有鍵按 下時(shí),P2.0置低,驅(qū)動(dòng)BELL發(fā)聲;按鍵釋放時(shí), P2.0恢復(fù)高,BELL消聲.* 鍵入次數(shù)由燈指示:鍵入達(dá)3次,綠燈2亮;鍵 入達(dá)6次(最大預(yù)設(shè)值),紅燈3亮, 鍵盤子程 序則正常結(jié)束返回主程序(可進(jìn)入待機(jī)態(tài)).* 若鍵入不足6次,預(yù)設(shè)30秒定時(shí)到達(dá)后紅燈3 亮,BELL發(fā)聲,自動(dòng)退出鍵盤子程序(可進(jìn)入 待機(jī)態(tài)).按復(fù)位鍵S可開始新的鍵入操作.453. 主要器件AT89C51,鍵盤可用雙觸點(diǎn)按鍵構(gòu)建

23、,BELL屬自發(fā)聲型蜂鳴器組件(加電發(fā)聲),晶振頻率6MHz. 467.4.3 軟件設(shè)計(jì)1. 程序流程圖 (1)常用的鍵盤掃描子程序流程圖,含鍵盤 輸入的識(shí)別三步驟,且插入聲音提示. 47(2)定時(shí)控制的鍵盤輸入子程序流程圖.若無(wú)鍵按下,查定時(shí)溢出和次數(shù)滿則賦空鍵值并自動(dòng)返回.48(3)融合定時(shí)控制的鍵盤演示主程序流程圖 調(diào)用鍵盤子程序, 鍵入3次燈2亮,共鍵入6次燈3亮;無(wú)鍵入定時(shí)滿,查空鍵值退出.492. 匯編語(yǔ)言源程序 (見書P.194) 主程序負(fù)責(zé)統(tǒng)計(jì)鍵入次數(shù)和查詢空鍵值標(biāo)志;子程序負(fù)責(zé)查詢定時(shí)溢出標(biāo)志和統(tǒng)計(jì)溢出次數(shù),溢出次數(shù)滿則賦以空鍵值標(biāo)志. 3. C語(yǔ)言源程序 (見書P.196)

24、 7.4.4 應(yīng)用說明* 系統(tǒng)上電或手動(dòng)復(fù)位,紅燈1亮,表系統(tǒng)正常.* 鍵按下BELL發(fā)聲,鍵釋放消聲.鍵入任3個(gè)數(shù) 字,綠燈2亮;再鍵入3個(gè)數(shù)字,紅燈3亮. * 若鍵入不足6次,30s時(shí)間到紅燈3亮,定時(shí)控 制生效,結(jié)束鍵盤子程序,自動(dòng)返回主程序.507.5 混合控制技術(shù)的紅外遙控 * 單片機(jī)常與不同種類的輸入器件/輸出器件 混合運(yùn)用,進(jìn)行小信號(hào)對(duì)大信號(hào)的控制、弱 電對(duì)強(qiáng)電的控制.* 下述混合控制技術(shù)之紅外遙控裝置,用普通 電視機(jī)遙控器,向一體化紅外接收頭發(fā)射紅 外脈沖,由定時(shí)器和中斷技術(shù)進(jìn)行解碼識(shí)別, 送出相應(yīng)的控制信號(hào),驅(qū)動(dòng)雙向晶閘管開關(guān), 實(shí)現(xiàn)對(duì)交流負(fù)載的供電控制.其中單片機(jī)的 直流供

25、電通過電容降壓技術(shù)取自交流市電, 使裝置小型便攜. 517.5.1 設(shè)計(jì)思路和依據(jù) 1. 紅外遙控編碼脈沖的概念紅外遙控信號(hào)在空間中傳輸,無(wú)論是邏輯“1”或者邏輯“0”, 都必須有脈沖信號(hào)發(fā)出.采用脈沖寬度調(diào)制的編碼格式, 由不同的脈沖寬度區(qū)分脈沖碼元(或稱碼位)的邏輯1和邏輯0. 52紅外遙控編碼格式 (也是一種通信協(xié)議) * 圖中邏輯“0”和邏輯“1” 均由寬度相同的高電 平和零電平組成,零電平短的代表邏輯“0”,長(zhǎng) 的代表邏輯“1”. * 編碼格式還沒有國(guó)際或國(guó)家標(biāo)準(zhǔn),企業(yè)自定標(biāo) 準(zhǔn)各不相同.Tm 值在0.51ms不等,有的引導(dǎo) 碼取TaTb(4.5ms),有的取TbTa(9ms).*

26、紅外脈沖序列由三部分組成: 引導(dǎo)碼;用戶碼,用戶反碼;功能碼, 功能反碼.其中引導(dǎo)碼用來(lái)區(qū)分不同廠家編 碼產(chǎn)品或非紅外遙控器產(chǎn)生的干擾脈沖. 53* 碼串含兩個(gè)8位碼元組成的字節(jié), 用來(lái)區(qū)分 同一廠家不同型號(hào)的產(chǎn)品;碼串也含兩個(gè)8 位碼元組成的字節(jié),用來(lái)區(qū)分不同功能的按鍵.* 鍵按動(dòng)時(shí),遙控器發(fā)射包含引導(dǎo)碼和32個(gè)碼元 的脈沖序列,長(zhǎng)度典型值約108ms.序列波形:2. 一體化紅外接收頭及其解調(diào)脈沖一種三個(gè)外部引腳的新型集成化器件,引腳V+54是供電端,引腳GN是接地端, 引腳V0(或OUT)是脈沖信號(hào)輸出端. 紅外調(diào)制信號(hào)經(jīng)內(nèi)部紅外接收管接收和光電轉(zhuǎn)換;由芯片進(jìn)行前置放大,限幅放大,帶通濾波

27、,峰值檢波和波形整形, 去掉載波信號(hào),輸出反相脈沖,序列波形如下: 3. 單片機(jī)對(duì)解調(diào)脈沖的識(shí)別依據(jù) 利用外部中斷技術(shù),結(jié)合16位定時(shí)器/計(jì)數(shù)器的 55門控位,測(cè)量序列每個(gè)碼元的高電平寬度.當(dāng)門控位GATE1時(shí),定時(shí)器只在外部中斷引腳出現(xiàn)高電平時(shí)才啟動(dòng)計(jì)數(shù),引腳變低時(shí)停止計(jì)數(shù). 這種從反相序列測(cè)得的高脈沖寬度,實(shí)質(zhì)上是原脈沖碼元的零電平寬度, 因此可以把寬度的判斷直接轉(zhuǎn)換成邏輯“0”或邏輯“1”碼元, 并組成8位字節(jié)的脈沖編碼值.具體測(cè)量例如: * 反相序列中引導(dǎo)碼下降沿(1)觸發(fā)外部中斷, 啟動(dòng)定時(shí)器計(jì)數(shù),變高電平(2)時(shí)停止測(cè)量并 改置門控位GATE1,對(duì)外中斷口電平查詢.* (3)部分是

28、脈沖碼元的低電平部分,不必測(cè)量. 56* (4)和(5)部分是脈沖碼元的高電平寬度,其 測(cè)量受到門控位GATE的控制,只在高電平出 現(xiàn)時(shí)才啟動(dòng)定時(shí)器計(jì)數(shù),低電平出現(xiàn)時(shí)立即 停止,寬度就能被精確測(cè)量.* 碼元(4)和(5)部分的寬度比例不同(取定時(shí) 器低8位向高8位字節(jié)的進(jìn)位值,一般在09 范圍), 圖中前者碼元賦邏輯“0”,后者碼元 賦邏輯“1”,不必理會(huì)實(shí)際寬度值,使識(shí)別簡(jiǎn) 化.8個(gè)碼元邏輯值構(gòu)成一個(gè)字節(jié)的編碼值.注:由外中斷測(cè)量引導(dǎo)碼,接著在中服程序查詢 外中斷口電平,測(cè)量碼元寬度后中斷返回.574. 電容降壓式穩(wěn)壓供電方式通常由交流變壓器降壓,經(jīng)全波或半波整流和阻容濾波后,再經(jīng)三端穩(wěn)壓器

29、,輸出5V 直流電壓.但變壓器等對(duì)小巧裝置會(huì)顯得過于龐大,在某種應(yīng)用場(chǎng)合,通過電容降壓的方法可直接從交流市電中取得5V的供電電壓.58 圖a):C1為交流降壓電容,C2為濾波電容,R1為漏放電阻.VD1和VD2為整流二極管,VS為穩(wěn)壓管. 交流市電Ui正半周,電源通過C1和VD1向C2充電,并由VS穩(wěn)壓; 在交流市電Ui的負(fù)半周,電源經(jīng)VD2向C1反向充電,為下一正半周充電作準(zhǔn)備. 圖b):交流正半周充電通路是C1-VD2-C2-VD3;交流負(fù)半周充電通路是VD4-C2-VD1-C1,電容C2在兩個(gè)半周均被充電.關(guān)系式如下: 在50Hz電源中的容抗為: 所能提供的電流為: 59當(dāng)C1取1F時(shí),

30、 I69mA 半波電路,電流只有全波電路的一半(34.5mA). 元件參數(shù)取值:VD1VD4的反向耐壓應(yīng)大于輸出電壓Uo,交流電容C1的耐壓值必須大于交流市電電壓的峰值,VS取Uo值作為穩(wěn)壓值.交流市電與電路斷開后,電阻R1對(duì)C1放電,以防止觸電.R1的取值范圍在500k1M之間. 注:半波電路的輸出端與交流市電存在公共端, 交流負(fù)載應(yīng)考慮裝置安全性,如采用絕緣性 能良好的塑料外殼,并確保外殼表面不與裝 置中的裸露金屬部接觸,避免使用者觸電. 607.5.2 硬件設(shè)計(jì)1. 硬件組成 (紅外遙控交流供電開關(guān)電路 )61 因占I/O口線少,用精簡(jiǎn)型89C2051作控制核心.電容降壓半波整流電路后隨

31、三端穩(wěn)壓集成芯片,以提高直流供電穩(wěn)定性. 用一體化紅外接收頭接收紅外遙控器的紅外編碼脈沖. 由撥動(dòng)式開關(guān)SW選擇不同的引導(dǎo)碼, 以適應(yīng)不同型號(hào)的紅外遙控器. 單片機(jī)的輸出經(jīng)晶體管放大后驅(qū)動(dòng)功率執(zhí)行機(jī)構(gòu)(雙向晶閘管作交流開關(guān)),控制燈泡的通/斷.手動(dòng)按鍵S1可代替紅外遙控器作交流開關(guān)的手動(dòng)控制. 2. 電路原理* 撥動(dòng)式開關(guān)SW的a和b接通時(shí)引導(dǎo)碼為08H,a和62 b斷開時(shí)為06H.* U3接收到紅外遙控器的編碼脈沖,解碼后從V0 送至U1的外中斷口(P3.2),由引導(dǎo)碼的下降沿 觸發(fā)中斷. 引導(dǎo)碼寬度測(cè)量符合后,P3.0口輸 出低使晶體管V導(dǎo)通,雙向晶閘管TRIAC因門極 G得電而導(dǎo)通,交流燈泡HL點(diǎn)亮,燈VL同時(shí)點(diǎn)亮.* 紅外遙控器再發(fā)射一次編碼脈沖,經(jīng)接收處理 后從P3.0口反相輸出高電平, 使晶體管V截止, TRIAC因門極G失電而關(guān)斷,燈泡HL和燈VL熄滅.* 鍵S1按下時(shí),P1.7口檢測(cè)到低電平后從P3.0口 輸出低電平,晶體管V導(dǎo)通,燈泡HL和燈VL點(diǎn)亮. 63* 再按動(dòng)鍵S1,當(dāng)P1.7口檢測(cè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論