基于單片機(jī)的按鍵模擬要點_第1頁
基于單片機(jī)的按鍵模擬要點_第2頁
基于單片機(jī)的按鍵模擬要點_第3頁
基于單片機(jī)的按鍵模擬要點_第4頁
基于單片機(jī)的按鍵模擬要點_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1 .引言.1.1 作品簡介1.1.2 作品設(shè)計思路及方案 1.1.2.1 總述1.1.2.2 主程序流程圖 2.1.2.3 中斷子程序流程圖 3.1.3 知識點應(yīng)用3.2 .硬件應(yīng)用42.1 at89c51 單片機(jī)4.2.2 獨立式鍵盤 5.2.3 數(shù)碼管6.2.4 串口通信6.2.5 外部中斷7.3 .軟件應(yīng)用3.1 程序初始化73.2 主程序及其說明 .883.3 中斷程序及子程序1.04 .調(diào)試114.1 問題 11.1.4.2 問題 21.1.5 .結(jié)語116 .參考文獻(xiàn) 127.附錄程序131.引言1.1 作品簡介電視、空調(diào)等現(xiàn)代的電器產(chǎn)品都需要一個小小的遙控器來控制,而許多如

2、手機(jī)的電子 產(chǎn)品都能進(jìn)行改裝而達(dá)到控制其他電器的目的,可見,遙控器已經(jīng)在我們的生活中占了很 重要的地位。由此我產(chǎn)生了基于 51單片機(jī)的基礎(chǔ)上設(shè)計一個按鍵顯示輸出裝置的想法。 該作品具有按下一個鍵后,在數(shù)碼管上顯示相應(yīng)數(shù)字并發(fā)送數(shù)字到pc機(jī)上的功能。如果能夠繼續(xù)加深單片機(jī)的其他應(yīng)用,該作品會更完美,有效。1.2 作品設(shè)計思路及方案1.2.1 總述本作品的大致思路是:按下按鍵,數(shù)碼管顯示數(shù)字,同時 pc機(jī)輸出相應(yīng)數(shù)字,并還 有一個中斷功能,如圖1.2.1所示。數(shù)碼圖&pc機(jī)”管,11.2.2主程序流程圖本作品主程序:判斷按鍵是否按下,如果按下,執(zhí)行相應(yīng)的程序,之后返回。如果沒按下,則判斷下一個按鍵

3、是否按下,如此反復(fù)。如圖1.2.2251是百蜻下s2是否按下延時40m、延時北皿樣31h蛾的jl發(fā)送敷據(jù)n圖 1.2.21.2.3中斷子程序流程圖本作品使用了外部中斷 0,當(dāng)中斷按下時,當(dāng)前數(shù)碼管上顯示入棧保護(hù),數(shù)碼管上全 部顯示“a”,按鍵彈起后,數(shù)碼管恢復(fù)原來狀態(tài)。如圖 1.2.31.3知識點應(yīng)用本作品運用了 51單片機(jī)的獨立式鍵盤(i/o 口)、數(shù)碼管顯示、串口同信、外部中斷 四個知識點。2 .硬件應(yīng)用本作品使用了單片機(jī)上的一些硬件: 獨立式鍵盤、數(shù)碼管、中斷0開關(guān)、串口助手等。2.1at89c51 單片機(jī)本作品是基于51單片機(jī)基礎(chǔ)上擴(kuò)展的應(yīng)用,選用 at89c51芯片,如圖2.1.1所

4、示:u11bxtal1puiwl 口口皿勒口1xta12rstfset ale 函膽m0 2 叩md3 bijuwi 咱就05 pnm&s pd.7adtp2.1jm9 p2210njurn 陛;mm3 p2wh 理才赧悔f1dfsufflxdfl1p3.1/tcdf12p12/1ntdf1j pl* fl, p1p1.7pijflmti f3.ytd p?5flt1p3 了而331n-11ffu15帕什4圖 2.1.12.2獨立式鍵盤6在p1 口上接按鈕,作為獨立式鍵盤,如圖 2.2.1所示:19u1pd.mdi p02wd2ktaczpdjrd3rumi 戶口副地5rstpd.tad?fp

5、2jow3 p2.1jw3 p22dpseln-屋 2mlialef 2.12ea陛郵”理i總悔pinf3&rx0f1 1p3.1jtkdf12“訓(xùn)而fijifx圳 rtfpl4p3 i/tup15f3st1p1sp3j5wr-pitpsjflw3i1sf369353rf4*2921 za24r2531262t1恭1d211312i131”6t1esit圖 2.2.1由于只用到了四個鍵,所以只安裝了四個開關(guān),從上往下依次為s1、s2、s3、s42.3數(shù)碼管74hc573e片彳為p3.6與p3.7開關(guān)來控制段碼與位數(shù)碼管作為顯示輸出,裝有兩片 碼的輸入,如圖2.3.1wmgagkllm帕m&pi

6、m72.4 串口通信串口通信應(yīng)用用口中斷,在pc機(jī)上輸出信號,這里只放出仿真用的端口,如圖 2.4.1pdrwepblm fw pd w4 ibimmv21au州 tnmirikg nsnrrde pjiti 海nr hlrff咤心口i b j (j圖 2.4.12.5 外部中斷外部中斷使用的是外部中斷0,按鈕為p2.7,如圖2.5.1所示:r柳 jn”胃it n aigttr f!h?feeh-ih圖 2.5.1另外,本作品使用的是實驗室中的試驗箱,在此不再給出實物圖3 .軟件應(yīng)用本作品功能簡單,按鍵按下,數(shù)碼管上顯示相應(yīng)數(shù)字并輸出到pc機(jī)上,可同時按下多個按鍵并同時顯示,但只輸出到 pc上

7、一次,外部中斷時有保留當(dāng)前數(shù)字的功能并使得 數(shù)碼管全部顯示“ a”,當(dāng)外部中斷結(jié)束,數(shù)字會恢復(fù)原來的樣子。3.4 程序初始化設(shè)置外部中斷,串口通信等初始參數(shù)。org 0000h120003heint00030hscon,#50hpcon,#80htmod,#20hth1,#0fah;外部中斷0入口;設(shè)置用口工作方式ljmp mainorgljmporgmain: movmovmovmovmov tl1,#0fahsetb ex0setb easetb tr1clrticlr it0;波特率加倍;設(shè)置計數(shù)器工作方式;設(shè)置波特率;打開中斷0;中斷總開關(guān)打開;計數(shù)器工作;ti清零;中斷0為跳沿觸發(fā)方

8、式lp:jb p1.0,l2lcall dmmov p0,#06hlcall wmmov p0,#0fehlcall delaymov a,#31hmov sbuf,ajnb ti,$3.5 主程序及其說明主程序運行時查驗是否有按鍵按下,如果按下,則接通相應(yīng)子程序向數(shù)碼管發(fā)送數(shù)據(jù)并向pc機(jī)發(fā)送數(shù)值。;如果按鍵1沒有按下,則跳轉(zhuǎn)到l2;載入子程序dm;送段碼;載入子程序wm;送位碼;延時;送31h至u a;發(fā)送數(shù)據(jù)clr til2:jb p1.1,l3lcall dmmov p0,#5bhlcall wmmov p0,#0fdhlcall delaymov a,#32hmov sbuf,ajnb

9、 ti,$clr til3:jb p1.2,l4lcall dmmov p0,#4fhlcall wmmov p0,#0fbhlcall delaymov a,#33hmov sbuf,ajnb ti,$clr til4:jb p1.3,lplcall dmmov p0,#66hlcall wmmov p0,#0f7hlcall delaymov a,#34hmov sbuf,ajnb ti,$clr tiljmp lpret3.6 中斷程序及子程序a”,之后外外部中斷0開啟時,保護(hù)當(dāng)前數(shù)碼管數(shù)值入棧,并使數(shù)碼管全部顯示 部中斷0斷開,數(shù)值出棧,數(shù)碼管恢復(fù)原先數(shù)值。eint0: push80h

10、;入棧保護(hù)lcalldm;調(diào)用 dmmovp0,#77h ;送段碼lcallwm;調(diào)用 wmmov p0,#00h;送位碼lcall delay ;延時pop 80h;出棧retidm:setbp3.6;p3.6 開clrp3.7;p3.7 關(guān)retwm:setbp3.7;p3.7 開clr p3.6; p3.6 關(guān)retdelay: mov r7,#10;延時 40msde1: mov r6,#100de2: mov r5,#20djnz r5,$djnz r6,de2djnz r7,de1ret4 .調(diào)試本作品經(jīng)過仿真和實物調(diào)試,發(fā)現(xiàn)一些問題。4.4 問題1仿真與實物有一些差距,延時過大的

11、話,當(dāng)按鍵超過兩個一直按下時,實物與仿真上 的數(shù)碼管顯示數(shù)值時都是輪流閃動,無法達(dá)到同時亮起的效果,而當(dāng)延時過小時,實物顯 示無問題,但仿真顯示都是亂碼或者無法顯示。4.5 問題2實物運用時,按下一個鍵經(jīng)常顯示幾個相同數(shù)字,并且顯示的數(shù)字個數(shù)并不相同,毫 無規(guī)律。5 .結(jié)語經(jīng)過了一番努力,在老師和同學(xué)的幫助下,我順利結(jié)束了此次的作品設(shè)計,在這個過 程中,我了解了許多,感悟了許多。實踐是檢驗真理的唯一標(biāo)準(zhǔn),經(jīng)過這次作品設(shè)計,我深深理解了這句話,在經(jīng)過了仿 真與實物的運用后,單片機(jī)各個部分的功能顯得明確而具體。這在作品設(shè)計之前只知道概 念的我看來簡直不可思議,所以說,只有將理論與實際結(jié)合起來,才能

12、讓人映像深刻并真 正理解。通過這次設(shè)計,我深刻理解到要做好一件事情,必須有系統(tǒng)的思維方式和方法,要有 耐心和恒心去鉆研努力,要善于運用資源豐富充實自己,要有整體的目光來看待事物,再 從局部到整體慢慢實現(xiàn),這樣才會有效率。ii6.參考文獻(xiàn)【1】張毅剛、彭喜元、彭宇2010.5,119-133單片機(jī)原理及應(yīng)用【ml .第二版.北京:高等教育出版社,2 bzxy_lyz.基于at89c51的串口通信程序設(shè)計ol ., 010.5.23【3】g.edwardsuh, charles wo donnell , srinivas devadas, aegis : a single-chip secure

13、processor, ieee design and test of computers . 2008, 24 (6) 570580.4彭為.單片機(jī)典型系統(tǒng)設(shè)計實例精講,北京:電子工業(yè)出版社,20065潘永雄.新編單片機(jī)原理與應(yīng)用,西安:西安電子科技大學(xué)出版社,2003157.附錄程序orgljmporgljmporgmain: movmovmovmovmovsetbsetbsetbsetbclrclrclrsetb0000hmain0003heint00030hscon,#50hpcon,#80htmod,#20hth1,#0fahtl1,#0fahex0eseatr1tiit0pspx0l

14、p: jb p1.0,l2lcall dmmov p0,#06hlcall wmmov p0,#0fehlcall delaymov a,#31hmov sbuf,ajnb ti,$clr til2: jb p1.1,l3 lcall dm mov p0,#5bhlcall wmmov p0,#0fdh lcall delay mov a,#32h mov sbuf,a jnb ti,$ clr ti l3: jb p1.2,l4lcall dmmov p0,#4fh lcall wmmov p0,#0fbh lcall delay mov a,#33h mov sbuf,a jnb ti,$ clr ti l4: jb p1.3,lplcall dmmov p0,#66h lcall wmmov p0,#0f7h lcall delay mov a,#34h mov sbuf,ajnb

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論