




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
書名:
單片機應(yīng)用技術(shù)——匯編+C51ISBN:978-7-111-50040-7出版社:機械工業(yè)出版社本書配有電子課件項目3可以調(diào)控的走馬燈設(shè)計與制作
走在大街上,看到五彩斑斕的走馬燈,你是不是也想自己一試伸手,親自做一個出來?本項目就將設(shè)計一個帶按鍵控制的非常漂亮的走馬燈效果。本項目涉及到的知識點有鍵盤接口、中斷系統(tǒng)、定時器定時、C51編程。
任務(wù)3.1學習鍵盤接口技術(shù)任務(wù)3.2可以調(diào)控的走馬燈的設(shè)計與仿真下一頁任務(wù)3.1學習鍵盤接口技術(shù)鍵盤接口是單片機系統(tǒng)的一個非常常見、實用的接口。用于實現(xiàn)人機交互中指令的輸入。常見的鍵盤接口有獨立式按鍵和行列式(也叫矩陣式)鍵盤。3.1.1獨立式鍵盤應(yīng)用3.1.2按鍵的消抖處理3.1.3矩陣式鍵盤應(yīng)用
上一頁下一頁返回獨立式按鍵的結(jié)構(gòu)特點:每個按鍵單獨占有一根I/O口線,按鍵的兩個端子一端接地,另外一端接到一個單獨的I/O口線,同時通過上拉電阻接到+5v電源端。每個按鍵的工作不會影響其它I/O口線的狀態(tài)。在此電路中,按鍵輸入為低電平有效,上拉電阻保證了按鍵斷開時,I/O口線有確定的高電平。當I/O口線內(nèi)部有上拉電阻時,外電路可以不配置上拉電阻。上一頁下一頁返回二、獨立式按鍵的軟件設(shè)計按上圖的電路,設(shè)計出獨立式鍵盤程序如下,此程序中Keyfun1~Keyfun8分別為每個按鍵對應(yīng)的功能子程序標號(可根據(jù)實際需要編寫),按鍵去除抖動采用軟件延時,按鍵的接口選用P1端口。匯編源程序清單如下:START:MOVA,P1;讀入鍵盤狀態(tài)
MOV30H,A;保存鍵盤狀態(tài)值
LCALLDL10ms;延時10ms消抖
MOVA,P1;再讀鍵盤狀態(tài)
CJNEA,30H,RETURN;再次結(jié)果不同。說明是抖動引起,返回
CJNEA,#0FFH,KEY-1;確認是否有鍵按下
LJMPRETURN上一頁下一頁返回KEY-1:CJNEA,#0FEH,KEY-2;K1鍵未按下,轉(zhuǎn)KEY-2LJMPKeyfun1;是Kl鍵按下,轉(zhuǎn)KEY1對應(yīng)的功能子程序KEY-2:CJNEA,#0FDH,KEY-3;K2鍵未按下,轉(zhuǎn)KEY-3LJMPKeyfun2;K2鍵按下,轉(zhuǎn)Keyfun2處理KEY-3:CJNEA,#0FBH,KEY-4;K3鍵未按下,轉(zhuǎn)KEY-4LJMPKeyfun3;K3鍵按下,轉(zhuǎn)Keyfun3處理KEY-4:CJNEA,#0F7H,KEY-5LJMPKeyfun4KEY-5:CJNEA,#0EFH,KEY-6LJMPKeyfun5KEY-6:CJNEA,#0DFH,KEY-7LJMPKeyfun6KEY-7:CJNEA,#0BFH,KEY-8LJMPKeyfun7KEY-8:CJNEA,#7FH,RETURN;K8未按下,返回
LJMPKeyfun8;K8鍵按下,轉(zhuǎn)Keyfun8處理RETURN:RET;重鍵或無鍵按下,不處理返回DL10ms:MOVR7,#12H;三循環(huán)延時程序,大約10ms。
D0:MOVR5,#10HD1:MOVR4,#10HD2:DJNZR4,$D3:DJNZR5,D1
DJNZR7,D0RET上一頁下一頁返回3.1.2按鍵的消抖處理在單片機應(yīng)用系統(tǒng)中所用的鍵盤按鍵是一種機械開關(guān),其機械觸點在閉合或斷開瞬間,會出現(xiàn)電壓抖動現(xiàn)象,如圖所示。為了保證按鍵識別的準確性,可采用硬件消抖和軟件消抖兩種方式進行消抖處理。硬件方法可采用RS觸發(fā)器等消抖電路。軟件方法則是采用時間延遲,由于鍵的前沿抖動時間大約為10ms左右,因此可在延時10ms后待按鍵穩(wěn)定閉合時再判別鍵盤的狀態(tài),若仍有按鍵閉合,則確認有鍵按下,否則認為是按鍵的抖動。上一頁下一頁返回例3-1:如圖所示,實現(xiàn)如下功能,按下某個鍵,在單個數(shù)碼管上顯示出鍵號。
上一頁下一頁返回本題中,按鍵全部為獨立式按鍵,讀取P1口的狀態(tài)即可判斷按下的是哪個鍵,讀取相應(yīng)的鍵的編碼送入P1口即可。C51源程序如下:#include<AT89X51.H>unsignedcharled[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};voiddelay(){unsignedinti;for(i=0;i<2000;i++);}voidmain(){unsignedcharkey;while(1){key=P2;if(key!=0xFF)delay();上一頁下一頁返回3.1.3行列式鍵盤應(yīng)用
一、行列式鍵盤結(jié)構(gòu)上一頁下一頁返回二、行列式鍵盤按鍵識別如上圖所示AT89S51與4×4鍵盤的接口電路,按鍵識別時通過P1.0~P1.3(X0~X3)分別輸出低電平,檢測P1.4~P1.7(Y0~Y3)的狀態(tài)是否為低電平來確定是否有鍵按下,通常把X3~X0稱為行掃描輸出線,Y0~Y3稱為列檢測輸入線。具體識別過程如下:①判別鍵盤上有無鍵閉合。其方法為掃描口X0~X3輸出全“0”,讀Y0~Y3的狀態(tài),若為全“1”(鍵盤上列線全為高電平)則鍵盤上沒有閉合鍵,若Y0~Y3不為全“1”則有鍵處于閉合狀態(tài)。②去除鍵的機械抖動。其方法為判別到鍵盤上有鍵閉合后,可采用軟件延遲一段時間(一般為10ms)再判別鍵盤的狀態(tài),若仍為有鍵閉合狀態(tài),則認為鍵盤上有一個確定的鍵被按下,否則認為是鍵的抖動。上一頁下一頁返回③判別閉合鍵的鍵號。方法為對X0~X3每位依次分別輸出低電平,其它三位為高電平,對鍵盤的列線進行檢測。即相應(yīng)的順次讀Y0~Y3的狀態(tài),若Y0~Y3為全“1”,則行線為0的這一行上沒有鍵閉合,否則這一行上有鍵閉合。閉合鍵的鍵號等于為低電平的列號加上為低電平行的首鍵號。例如:X0~X3輸出為1101時,讀出Y0~Y3為1101,則第2行與第2列相交的鍵處于閉合狀態(tài),第2行的首鍵號為8,列號為2,閉合鍵的鍵號為:N=為低電平的行首鍵號+為低電平的列號=8+2=10④使CPU對鍵的一次閉合僅作一次處理。閉合鍵一次僅進行一次鍵功能操作,采用的方法為等待閉合鍵釋放以后再把鍵值送入A中,然后執(zhí)行鍵功能操作。上一頁下一頁返回定時器中斷掃描方式是利用單片機內(nèi)部定時器產(chǎn)生定時中斷(例如100ms),CPU響應(yīng)中斷請求時,對鍵盤進行掃描和鍵值識別。定時中斷掃描方式的鍵盤接口電路與程序掃描法的接口電路相同。定時器中斷鍵盤掃描程序,實際上作為定時器中斷服務(wù)程序。這種方式雖然可以改善程序結(jié)構(gòu),但是多數(shù)掃描仍然可能為“空掃描”,CPU效率提高不大。另外一種中斷掃描方式是鍵盤按鍵中斷掃描方式。下圖是按鍵中斷掃描方式的AT89S51與鍵盤的接口電路任務(wù)3.2可以調(diào)控的走馬燈的設(shè)計與仿真3.2.1硬件電路設(shè)計3.2.2程序編制3.2.3綜合仿真調(diào)試上一頁下一頁返回3.2.1硬件電路設(shè)計本項目在P2和P0口連接16個共陽極的發(fā)光二極管,在P1口在第0、1、2設(shè)置3個獨立式按鍵,在P3口連接一只公陽極的7段數(shù)碼管。要實現(xiàn)的功能如下:模式鍵K1設(shè)置走馬燈的模式,共有8種模式可設(shè)置,每種模式對應(yīng)的16只二極管的走動模式。選擇某種模式后可在數(shù)碼管上顯示出模式號。加速鍵K2用來實現(xiàn)走馬燈的速度加速。減速鍵則用來實現(xiàn)走馬燈的速度減速。上一頁下一頁返回3.2.2程序編制本項目對應(yīng)的C51源程序如下:#include<AT89X51.h>#defineu8unsignedchar#defineu16unsignedintu8ModeNo;//模式編號u8MovingBit=0;//移動位數(shù)u8Tdx;//速度索引u8TCounter=0;//延時計數(shù)器u16Speed;//二極管移動速度bitDirection=1;//滾動方向u8codeModeDisplay[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};u16code上一頁下一頁返回SpeedCommon[]={0,2,4,6,8,10,15,30,45,80,120,160,200,240,280};//速度常數(shù)//延時函數(shù)voidDelay(u16x){u8i;while(x--)for(i=0;i<120;i++);}//三按鍵識別函數(shù)u8GetKey(){u8K;if(P1==0xFF)return0;//如果沒有鍵按下,則返回0。Delay(10);switch(P1)//確認有鍵按下,判斷是哪個鍵。{上一頁下一頁返回case0xFE:K=1;break;case0xFD:K=2;break;case0xFB:K=3;break;default:K=0;}while(P1!=0xFF);//等待按鍵釋放再返回鍵值。returnK;}//按鍵處理voidKeyProcess(u8Key){switch(Key){case1:Direction=1;MovingBit=0;ModeNo=(ModeNo+1)%8;P3=ModeDisplay[ModeNo];break;case2:if(Tdx>1)Speed=SpeedCommon[--Tdx];break;case3:if(Tdx<14)Speed=SpeedCommon[++Tdx];上一頁下一頁返回switch(ModeNo){case0:LedLight(0x0001<<MovingBit);break;case1:LedLight(0x8000>>MovingBit);break;case2:if(Direction)LedLight(0x0001<<MovingBit);elseLedLight(0x8000>>MovingBit);if(MovingBit==15)Direction=!Direction;break;case3:if(Direction)LedLight(~(0x0001<<MovingBit));elseLedLight(~(0x8000>>MovingBit));if(MovingBit==15)Direction=!Direction;break;case4:if(Direction)LedLight(0x000F<<MovingBit);elseLedLight(0xF000>>MovingBit);if(MovingBit==15)Direction=!Direction;break;case5:if(Direction)LedLight(~(0x000F<<MovingBit));elseLedLight(~(0xF000>>MovingBit));if(MovingBit==15)Direction=!Direction;break;上一頁下一頁返回case6:if(Direction)LedLight(0xFFFE<<MovingBit);elseLedLight(~(0x7FFF>>MovingBit));if(MovingBit==15)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新質(zhì)生產(chǎn)力領(lǐng)航
- 2025家庭裝修合同協(xié)議書
- 2025短期圍擋建設(shè)合同
- 上海食品模擬考核b類試卷及答案
- 山東省初中統(tǒng)考語文試卷及答案
- 《電容式傳感器》課件
- 化纖織造工藝參數(shù)優(yōu)化考核試卷
- 油炸食品制造的工藝流程考核試卷
- 浙江國企招聘2025中移鐵通嘉興海鹽分公司招聘10人筆試參考題庫附帶答案詳解
- 2025年中國鋁鍛壓五金制品市場調(diào)查研究報告
- 新疆烏魯木齊市米東區(qū)2024-2025學年九年級上學期期中數(shù)學試卷(含答案)
- 課件:《科學社會主義概論(第二版)》第一章
- 國際關(guān)系理論知到智慧樹章節(jié)測試課后答案2024年秋外交學院
- 第一章整式的乘法單元(教學設(shè)計)-七年級數(shù)學下冊同步備課系列(湘教版2024)
- 中考物理復(fù)習歐姆定律復(fù)習講解學習
- 上海市2024年中考英語試題及答案
- TMT行業(yè)市場發(fā)展現(xiàn)狀及趨勢與投資分析研究報告
- 2024年黑龍江哈爾濱市中考英語真題卷及答案解析
- 【MOOC】道路交通安全-河海大學 中國大學慕課MOOC答案
- 人教版二年級上冊英語期中考試卷【3套】
- 2025年湖北省武漢市高考數(shù)學模擬試卷附答案解析
評論
0/150
提交評論