單片機原理及應(yīng)用課程設(shè)計_第1頁
單片機原理及應(yīng)用課程設(shè)計_第2頁
單片機原理及應(yīng)用課程設(shè)計_第3頁
單片機原理及應(yīng)用課程設(shè)計_第4頁
單片機原理及應(yīng)用課程設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 單片機原理及應(yīng)用課程設(shè)計指導(dǎo)書指導(dǎo)教師 寧立全 呂洪武 胡黃水 長春工業(yè)大學(xué)計算機科學(xué)與工程學(xué)院2014.12.22-2015.1.2目 錄一、課程設(shè)計的目的與意義.2二、課程設(shè)計內(nèi)容安排及教學(xué)要求.3三、單片機應(yīng)用系統(tǒng)的設(shè)計開發(fā)過程.4四、課程設(shè)計選題原則.5五、課程設(shè)計題目6 (一)、設(shè)計實現(xiàn)類課題.6 (二)、設(shè)計應(yīng)用類課題.7六、課程設(shè)計報告格式.8七、考核及成績評定辦法8八、課程設(shè)計的要求9附錄:主要模塊電路及代碼10一、課程設(shè)計的目的與意義“單片機原理及應(yīng)用”課程是電子信息專業(yè)的一門重要的工程技術(shù)理論基礎(chǔ)課,是一門實踐性和實用性都很強的課程, 課程設(shè)計是本課程不可缺少的重要教學(xué)環(huán)

2、節(jié)。學(xué)習(xí)的目的在于應(yīng)用,本課程設(shè)計是配合單片機原理及應(yīng)用課堂教學(xué)的一個重要的實踐教學(xué)環(huán)節(jié),它能起到鞏固課堂和書本上所學(xué)知識,加強綜合能力,提高系統(tǒng)設(shè)計水平,啟發(fā)創(chuàng)新思想的效果。最終應(yīng)能達到每個學(xué)生都能自己動手獨立設(shè)計完成一個典型的單片機應(yīng)用系統(tǒng)。學(xué)習(xí)了單片機原理及應(yīng)用課程之后,專門安排一段時間運用本課程所學(xué)到的知識,進行有實際意義的設(shè)計。通過完成一個課題的理論設(shè)計和實際調(diào)試工作,既能加深對所學(xué)知識的理解,又能培養(yǎng)綜合的實踐技能,從而提高分析問題和解決問題的能力。通過本課程設(shè)計可以達到以下幾個目的:(1)、鞏固和加強對匯編語言和c51程序設(shè)計的掌握,以及對接口芯片種類、使用方法的了解并適當(dāng)拓寬學(xué)

3、生在工控領(lǐng)域的知識面。(2)初步掌握接口芯片在系統(tǒng)中的設(shè)計、使用方法。能根據(jù)系統(tǒng)的要求擬訂設(shè)計方案;選用合適的接口器件并進行系統(tǒng)設(shè)計。(3)培養(yǎng)獨立工作能力,獨立設(shè)計、準備、調(diào)試,在實踐中提高對單片機系統(tǒng)及接口技術(shù)的掌握,加強運用所學(xué)理論知識解決實際問題的能力。二、課程設(shè)計內(nèi)容安排及教學(xué)要求(一)課程設(shè)計內(nèi)容和進度安排:內(nèi)容:兩部分組成,自選設(shè)計題目+上機實驗題目。進度:第1天:設(shè)計動員,教師講述設(shè)計內(nèi)容、要求和注意事項,學(xué)生根據(jù)自己的情況來選擇設(shè)計題目和上機實驗題目;確定總體設(shè)計方案。第2-4天:查資料,初步完成設(shè)計題目的資料收集整理;完成上機題目程序的編寫、調(diào)試,同時上機進行實際測試驗收工

4、作;第5-7天:完成電路設(shè)計,程序編寫,同時上機進行匯編、通訊、調(diào)試并修改程序的操作;實現(xiàn)上機題目的調(diào)試工作。第8-9天:整理設(shè)計說明書,并交給指導(dǎo)教師,教師安排好答辯時間及順序;第10天:答辯。(二)教學(xué)要求1鞏固和加深對MCS51基本知識的理解,培養(yǎng)學(xué)生根據(jù)設(shè)計課題的需要,選用參考文獻資料、查閱有關(guān)工程手冊的技術(shù)數(shù)據(jù)圖表、上網(wǎng)查閱相關(guān)文章、從網(wǎng)上下載相應(yīng)的軟硬件資料等的能力,提高學(xué)生綜合運用所學(xué)知識和獨立解決工程問題的能力。2掌握偉福仿真器的正確使用,學(xué)會簡單系統(tǒng)的實驗調(diào)試和測試方法,提高學(xué)生的動手能力;并能在教師的指導(dǎo)下,完成設(shè)計任務(wù)。3通過課程設(shè)計實踐,幫助學(xué)生逐步建立正確的科研觀點、

5、經(jīng)濟觀點、全局觀點。4初步掌握有關(guān)工程設(shè)計的方法、步驟,逐步熟悉開展技術(shù)設(shè)計的基本程序,為以后參與設(shè)計及研制新產(chǎn)品打下初步基礎(chǔ)。 三、單片機應(yīng)用系統(tǒng)的設(shè)計開發(fā)過程設(shè)計一個單片機應(yīng)用系統(tǒng),可以分為硬件設(shè)計和軟件設(shè)計兩個部分,從設(shè)計草圖開始到樣機調(diào)試成功,常常要將硬件,軟件結(jié)合起來考慮,才能取得較好的效果.隨著系統(tǒng)的用途不同,它們的硬,軟件結(jié)構(gòu)各有不同,但系統(tǒng)研制的方法和步驟是基本相同的,其研制過程可以歸納為以下所述的四個步驟.(一) 確定任務(wù) 如同任何一個新產(chǎn)品設(shè)計一樣, 單片機應(yīng)用系統(tǒng)的研制過程也是以確定應(yīng)用系統(tǒng)的任務(wù)開始的。確定應(yīng)用系統(tǒng)的功能指標(biāo)和技術(shù)參數(shù),這是系統(tǒng)設(shè)計的起點和依據(jù),它將貫穿

6、于系統(tǒng)設(shè)計的全過程,必須認真做好這個工作,在確定任務(wù)的階段中必須明確:1) 本應(yīng)用系統(tǒng)需要達到的主要目標(biāo)是什么,有多少個回路,有幾個參數(shù)需要進行檢測和控制 檢測和控制的精度為多少; 2) 本應(yīng)用系統(tǒng)有多少輸入信號和輸出信號, 輸入信號的形式和電壓等級及變化頻率情況,輸出信號的形式,電壓等級和驅(qū)動功率有何要求; 3) 本應(yīng)用系統(tǒng)需要提供哪些人一機對話功能,如:小鍵盤要多少個按鈕,顯示器應(yīng)有幾位等;4) 本應(yīng)用系統(tǒng)的工作環(huán)境情況,如:溫度、濕度、供電質(zhì)量、電磁干擾等,是否需要采用特殊的安全保護和抗干擾措施; 5) 本應(yīng)用系統(tǒng)的經(jīng)濟指標(biāo),特別是對新產(chǎn)品的開發(fā),應(yīng)當(dāng)綜合考慮成本,可靠性,可維護性以及經(jīng)

7、濟效益和社會效益,參考國內(nèi)外同類產(chǎn)品的資料,提出比較合理的技術(shù)指標(biāo),使所開發(fā)的產(chǎn)品具有最佳的性能價格比。(二) 總體設(shè)計本階段的任務(wù)便是通過調(diào)查研究,查閱資料來初定系統(tǒng)結(jié)構(gòu)的總體方案,其中主要涉及到硬件和軟件的功能劃分。應(yīng)用系統(tǒng)中硬件和軟件具有一定的互換性,即某些功能既可以用硬件實現(xiàn)也可以用軟件來完成。一般說來,用硬件實現(xiàn)的優(yōu)點是可以提高工作速度,但使電路復(fù)雜,增加了硬件成本,而用軟件代替某些硬件的功能可以使電路簡化,硬件成本降低,但軟件工作量增大??傮w設(shè)計時,必須在硬件和軟件之間權(quán)衡,分工明確,然后分頭開始設(shè)計。(三) 硬件設(shè)計過程1、 將整個硬件系統(tǒng)劃分為若干功能單元電路,繪出整個系統(tǒng)邏輯

8、電路圖,注明各單元電路間接口信號,并畫出一些重要控制信號的時序圖。2、 完成各單元電路設(shè)計:包括選擇合適的各類元器件和電路板設(shè)計(元器件布局和走線等)。3、各單元電路板裝配,分調(diào)。4、整個硬件聯(lián)機調(diào)試,完成后準備與軟件聯(lián)調(diào)。(四) 軟件設(shè)計過程1、采用模塊化程序結(jié)構(gòu)設(shè)計軟件,首先將整個軟件分成若干功能模塊;2、對各模塊設(shè)計寫一個詳細的程序流程圖;3、根據(jù)流程圖,編寫源程序;4、上機調(diào)試各模塊程序;5、各程序模塊聯(lián)調(diào);6、與硬件一起聯(lián)調(diào),最后完成全部調(diào)試工作。四、課程設(shè)計選題原則 課程設(shè)計是對理論教學(xué)進行消化、吸收并發(fā)展的一個教學(xué)環(huán)節(jié),它可以幫助學(xué)生進一步理解理論知識,并能與實踐結(jié)合起來,達到學(xué)

9、以致用的效果。所以,課程設(shè)計的選題顯得尤為重要。 課程設(shè)計的選題一般應(yīng)遵循以下幾個原則:1、課題內(nèi)容綜合教學(xué)要求 課題內(nèi)容應(yīng)與單片機原理及應(yīng)用課程理論教學(xué)內(nèi)容相符,可適當(dāng)深化與拓寬知識面。2、課題內(nèi)容的難度應(yīng)適當(dāng) 課題內(nèi)容的難易程度應(yīng)保證大多數(shù)學(xué)生在規(guī)定時間內(nèi)通過努力能完成設(shè)計。同時,課題內(nèi)容也應(yīng)多樣化,以便不同層次、不同水平、不同興趣的學(xué)生有選擇的余地。3、課題內(nèi)容應(yīng)具有較強的實踐性讓學(xué)生有較多的機會進行調(diào)整、測試,從而鍛煉動手能力。同時,也應(yīng)有一定的實用性,以利于調(diào)動學(xué)生對課程設(shè)計的積極性。4、課題內(nèi)容應(yīng)適當(dāng)反映該課程在工程技術(shù)領(lǐng)域中的應(yīng)用。五、課程設(shè)計題目 本課程設(shè)計題目分兩大類:(一)

10、、設(shè)計實現(xiàn)類:進行軟、硬件設(shè)計,并上機編程、聯(lián)線、調(diào)試、實現(xiàn);(二)、應(yīng)用系統(tǒng)設(shè)計類:不須上機,查資料完成軟、硬件設(shè)計畫圖。(一)、設(shè)計實現(xiàn)類(上機實驗課題) 該類題目既要進行硬件設(shè)計,又要進行軟件設(shè)計。硬件設(shè)計不用自己整理電路板,而是使用單片機綜合實驗箱。該系統(tǒng)中,CPU與各種接口芯片均已連接好,我們在使用時,只需選擇實驗系統(tǒng)提供的模塊選擇開關(guān),切換到89s52端即可。 上機實驗的設(shè)計題目如下:至少完成三個實驗。課題一:液晶顯示系統(tǒng)設(shè)計要求:顯示課程設(shè)計名稱和本人名字。課題二:電子時鐘設(shè)計要求:(1)在LED上顯示分秒數(shù),每隔一秒秒數(shù)加1;(2)定時時間為1秒;(3)用中斷完成時間的處理;課

11、題三:點陣顯示設(shè)計要求:顯示本人名字,兩個漢字。課題四:鍵盤液晶顯示系統(tǒng)設(shè)計要求:按下鍵并在液晶上顯示出鍵值。課題五:A/D,D/A控制系統(tǒng)設(shè)計要求:能簡單實現(xiàn)模數(shù),數(shù)模的采集輸出。課題六:18b20溫度采集顯示課題七:電子音樂發(fā)聲(自己選曲)課題八:電機調(diào)速(二)、設(shè)計應(yīng)用類課題 選題采用教師指定和自選題目兩種方式。題目不須上機實現(xiàn),要求能正確完成硬件電路和軟件程序設(shè)計。參考題目如下:測量類:相關(guān)傳感器,信號調(diào)理,單片機數(shù)據(jù)接收和處理,顯示,測量精度1.工頻檢測工頻頻率的測量工頻電壓、電流相位差及功率因數(shù)的測量工頻電壓、電流瞬時值測量及有功P和無功Q的測量有、無功電量的測量2熱敏電阻式溫度檢

12、測熱敏電阻溫度轉(zhuǎn)換原理,基本電路,程序設(shè)計3電感電容電阻參數(shù)檢測4. 超聲波測距儀5. IC卡智能水表6. 酒精測試儀7. 電子羅盤系統(tǒng)8. 無線多路數(shù)據(jù)(溫度)采集系統(tǒng)9. 數(shù)字頻率計10. 出租車計價器系統(tǒng)控制類:1恒溫箱控制2. 大棚溫濕度控制3自動澆灌機的設(shè)計4交通信號燈模擬控制定時交通信號燈控制有時間顯示定時交通信號燈控制主支線路口的交通信號燈控制有急救車優(yōu)先的交通信號燈控制5智能小車控制器設(shè)計、智能循跡小車6LED彩燈控制器設(shè)計 7作息時間控制系統(tǒng)8. 汽車防撞報警系統(tǒng)9. 閥門定位控制系統(tǒng)10. 智能煤氣監(jiān)控報警系統(tǒng)11. 紅外防盜報警器12. 自動停車收費系統(tǒng)13. 全自動洗衣

13、機設(shè)計14. 水塔水位控制系統(tǒng)15. 照明系統(tǒng)節(jié)能控制其他:1函數(shù)發(fā)生器單片函數(shù)發(fā)生器的原理和線路真、有效值轉(zhuǎn)換電路,AD轉(zhuǎn)換器的接口電路利用軟件來提高儀器的準確度,單片機的最小系統(tǒng)2波形發(fā)生硬件電路及原理,系統(tǒng)軟件3. 數(shù)控直流電源以上題目僅供參考。可以自己查資料選題目。六、課程設(shè)計報告格式(一)封面范例:【就是填寫課程設(shè)計任務(wù)書】單片機原理及應(yīng)用課程設(shè)計報告題目:姓名:班級: 學(xué)號:完成日期:2015年1月2日(二)報告內(nèi)容1. 設(shè)計題目、任務(wù)與要求2. 硬件框圖與電路圖 3. 軟件及流程圖 (1)主要模塊流程圖 (2)源程序清單與注釋4. 總結(jié)5. 參考資料6.附錄 實驗上機調(diào)試內(nèi)容七、

14、考核及成績評定辦法課程設(shè)計的成績采用平時考勤、檢查進度完成情況和答辯考核相結(jié)合;(一)考核方法:1每天指定時間考勤、檢查進度、根據(jù)情況給分;2不按規(guī)定時間考勤者,當(dāng)天成績以0分計;3考勤累計2天不來者,視為不及格處理;(二)成績評定方法:報告質(zhì)量占30,答辯占50,平時表現(xiàn)占20。 設(shè)計成績采用比例方式,即按班級人數(shù)劃分,優(yōu)秀30%,良好50%,中等、及格和不及格適當(dāng)分配。八、課程設(shè)計的要求、不允許遲到及早退。遲到或早退累計達四次時按曠課一次處理。、不允許曠課。如果曠課學(xué)時達到三分之一,不允許參加答辯,成績按“未考試”計。、一旦進入實驗室,就不允許打游戲、看電影等違反紀律的活動。違反一次,成績

15、降一檔。、課程設(shè)計報告(包括代碼在內(nèi))一律手寫,代碼必須上機編譯通過!、封面用“課程設(shè)計任務(wù)書”,封底用“考核表”。答辯前必須填好。、報告一律使用紙。一、封面課程設(shè)計任務(wù)書的填寫課程設(shè)計時間: 2014年12月22日 2015年1月2日題目:自選題題目,課程名稱:單片機原理及應(yīng)用課程設(shè)計任務(wù)書的填寫時間:2014年12月22日姓名后面寫上學(xué)號。地點: 老圖書館四樓3(每天上午8:3011:30及下午1:004:00)設(shè)計任務(wù):概括的填寫自選題的內(nèi)容。時間安排:第1天:查閱資料,確定題目。第2-4天:進實驗室做實驗,連接硬件并編寫程序作相關(guān)的模塊實驗。第5-7天:編寫程序,并調(diào)試通過。觀察及總結(jié)

16、硬件實驗現(xiàn)象和結(jié)果。第8-9天:整理資料,撰寫課程設(shè)計報告,準備答辯。第10天:上交課程設(shè)計報告,開始答辯。二、封底課程設(shè)計考核表的填寫:題目:自選題題目,課程名稱:單片機原理及應(yīng)用課程設(shè)計考核表的填寫時間:2015年1月2日三 報告的寫法課程設(shè)計的題目 課程設(shè)計報告里寫兩個內(nèi)容,自選題目內(nèi)容+附錄(實驗內(nèi)容)。而實驗內(nèi)容為“電子鐘的設(shè)計”或“交通燈的設(shè)計”或者“溫度計的設(shè)計”等自己做過的任選一題。四具體上機實驗調(diào)試的安排: 每班一天上機,順次循環(huán)。上午8:30-11:30 下午 13:00-16:00最后一天 交報告、答辯,時間由各班指導(dǎo)教師安排。附錄:主要模塊電路及代碼實驗一 循環(huán)彩燈一、

17、 實驗?zāi)康?. 熟悉單片機實驗板、Keil C51軟件使用2. 學(xué)習(xí)簡單程序的調(diào)試方法3學(xué)習(xí)延時子程序的編寫和使用4學(xué)習(xí)P0口的使用方法二、 實驗內(nèi)容P0口做輸出口,接八只發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點亮。三、 實驗原理八個發(fā)光二極管D0D7 分別接在單片機的P0.0P0.7接口上,輸出“0”時,發(fā)光二極管亮,按P0.0P0.1P0.2P0.3P0.7P0.6P0.0 逐一點亮,重復(fù)循環(huán)。硬件電路如圖1-1所示。 圖1-1 我們可以運用輸出端口指令MOV P0,A或MOV P0,DATA,只要給累加器值或常數(shù)值,然后執(zhí)行上述的指令,即可達到輸出控制的動作。每次送出的數(shù)據(jù)是不同,具體的

18、數(shù)據(jù)如下表1-1 所示。表1-1:P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0說明D7D6D5D4D3D2D1D011111110D0亮11111101D1亮11111011D2亮11110111D3亮11101111D4亮11011111D5亮10111111D6亮01111111D7亮四、 實驗步驟1.將三檔開關(guān)K29撥到最下(指向89S51),其它開關(guān)都撥到中間,插上USB下載線,打開電源。2打開KEIL軟件,在所建的項目文件中輸入源程序,進行編譯,編譯無誤后,將生成的.HEX文件用Proisp下載到單片機中。3.觀察實驗板上小燈的現(xiàn)象,看是否符合實驗要求。如果未到達

19、實驗要求,修改程序,重復(fù)2操作,直至達到實驗要求。五、 程序代碼1 匯編程序代碼: ORG 0000H AJMP START ORG 0030HSTART: MOV SP,#60H MOV R2,#8 MOV A,#0FEH SETB CLOOP: MOV P0,A ;左移 LCALL DELAY RLC A DJNZ R2,LOOP MOV R2,#8 RRC ALOOP1: MOV P0,A ;右移 LCALL DELAY RRC A DJNZ R2,LOOP1 LJMP STARTDELAY: MOV R5,#20 ;延時D1: MOV R6,#20D2: MOV R7,#200 DJN

20、Z R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END2 C編程序代碼:#includevoid delay10ms(unsigned int count);zy_a1();yy_a1();/-主函數(shù)- main() while(1) zy_a1(); yy_a1(); /-左移模塊 逐漸點亮- zy_a1() unsigned char i,temp,a; /聲明無符號型變量i,temp,a temp=0xfe; /左移初始值 for(i=0;i8;i+) /設(shè)置移動位數(shù) a=tempi; /燈左移i位 P0=a; /輸出 delay10ms(50); /延時 /-右移模塊

21、 逐漸點亮- yy_a1() unsigned char i,temp,a; /聲明無符號型變量i,temp,a temp=0xff; /左移初始值 for(i=0;ii; /燈左移i位 P0=a; /輸出 delay10ms(50); /延時 /-延時-void delay10ms(unsigned int count) /延時函數(shù) int i,j,k; for(i=0;icount;i+) for(j=0;j10;j+) for(k=0;k120;k+); 實驗二 動態(tài)數(shù)碼顯示一、 本實驗儀提供了8 位8段碼LED顯示電路,學(xué)生只要按位置輸出相應(yīng)數(shù)據(jù),就可以實現(xiàn)對顯示器的控制。電路原理圖如

22、圖2-1所示。系統(tǒng)板上硬件連線說明如下:(1)單片機的P0.0-P0.7連接到8位數(shù)碼管的a-h段上。顯示內(nèi)容與單片機P0口輸出數(shù)據(jù)對應(yīng)關(guān)系如表2-1所示。(2)單片機的P2.0-P2.2連接到74LS138譯碼器的A-C上。74LS138譯碼的輸出端Y0-Y7連接到數(shù)碼管的COM0-COM7上。單片機P2.0-P2.1輸出數(shù)據(jù)與數(shù)碼管選通位的對應(yīng)關(guān)系如表2-2所示。圖2-1表2-1:P0口輸出數(shù)據(jù)與數(shù)碼管顯示對應(yīng)關(guān)系對應(yīng)數(shù)據(jù)線P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0對應(yīng)顯示段Dpgfedcba0C0110000001F9111110012A4101001003B010

23、1100004991001100159210010010682100000107F8111110008801000000099010010000-BF10111111表2-2:P2.0-P2.2輸出與數(shù)碼管位選通對應(yīng)關(guān)系P2.2P2.1P2.0數(shù)碼管位0通000數(shù)碼管位1通001數(shù)碼管位2通010數(shù)碼管位3通011數(shù)碼管位4通100數(shù)碼管位5通101數(shù)碼管位6通110數(shù)碼管位7通111二、 實驗步驟1將三檔開關(guān)LED撥到最下(指向89S51),其它開關(guān)都撥到中間,插上USB下載線,打開電源。2打開KEIL軟件,在所建的項目文件中輸入源程序,進行編譯,編譯無誤后,將生成的.HEX文件用Prois

24、p下載到單片機中。3觀察實驗板上數(shù)碼管顯示的現(xiàn)象,看是否符合實驗要求。如果未到達實驗要求,修改程序,重復(fù)2操作,直至達到實驗要求。三、 程序代碼1匯編程序代碼 ORG 0000H AJMP START ORG 0030HSTART: MOV SP,#60HMAIN: MOV R2,#8 ;主程序 LOOP: MOV DPTR,#TAB1 MOV A,R2 MOVP2,A MOVCA,A+DPTR MOV DPTR,#TAB0 MOVC A,A+DPTR MOV P0,A LCALL DELAY DEC R2 CJNE R2,#0FFH,LOOP AJMP MAINDELAY: MOV R6,#

25、20 ;延時NEXT: MOV R7,#50 DJNZ R7,$ DJNZ R6,NEXT RETTAB0: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0BFH ;共陽碼 0,1,2,3,4,5,6,7,8,9,-TAB1: DB 01H,00H,0AH,00H,01H,0AH,09H,00H ;09-10-01 3 C編程序代碼#include#define uchar unsigned charuchar code table0=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0

26、xbf;uchar code table1=0x01,0x00,0x0a,0x00,0x01,0x0a,0x09,0x00;void delay();main() /主函數(shù) uchar i,j,d; for(i=0;i9;i+) j=table1i; d=table0j; P2=i; P0=d; delay(); void delay() /延時函數(shù) uchar m,n; for(m=0;m5;m+) for(n=0;n5;n+); 實驗三 44矩陣鍵盤1.實驗箱上有一個16鍵的矩陣鍵盤,分為4行4列。4行作為輸入線分別連接到單片機的P1.0P1.3,4列輸出線分別連接到單片機的P1.4P1.

27、7。行列式鍵盤結(jié)構(gòu)如圖3-1所示。圖3-1圖中鍵盤的行線X0X3通過電阻接+5V,當(dāng)鍵盤沒有鍵閉合時,所有的行線和列線斷開,行線X0X3均呈高電平。當(dāng)鍵盤上某一鍵閉合時,該鍵所對應(yīng)的行線與列線短路,此時該行線的電平將由被短路的列線電平所決定。如果將行線接至單片機的輸入端口,列線接至單片機的輸出端口,則在單片機的控制下使列線Y0為低電平,其余三根列線Y1、Y2、Y3均為高電平,然后單片機讀輸入口狀態(tài)(即鍵盤行線狀態(tài)),若X0、X1、X2、X3均為高電平,則Y0這一列上沒有鍵閉合,如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和0相交的鍵處于閉合狀態(tài)。如果Y0這一列沒有鍵閉合,緊接著使列線Y1為

28、低電平,其余列線為高電平,用同樣的方法檢查Y1這一列有無鍵閉合,如此類推。這種逐行逐列地檢查鍵盤狀態(tài)的過程稱為對鍵盤的掃描。CPU對鍵盤的掃描可以采取程序控制的隨機方式,CPU空閑時才掃描鍵盤;也可以采取定時控制方式,每隔一段時間,CPU對鍵盤掃描一次;還可以采用中斷方式,當(dāng)鍵盤上有鍵閉合時,向CPU請求中斷,CPU響應(yīng)鍵盤發(fā)出的中斷請求,對鍵盤進行掃描,以識別哪一個鍵處于閉合狀態(tài),并對鍵輸入信息作相應(yīng)處理。CPU對鍵盤上閉合鍵號的確定,可以根據(jù)行線的狀態(tài)計算求得,也可以查表求得。鍵盤布置及鍵值如表3-1所示。 表3-1:第4列第3列第2列第1列行輸入P1.300H01H02H03H第4行行P

29、1.204H05H06H07H第3行P1.108H09H0AH0BH第2行P1.00CH0DH0EH0FH第1行P1.7P1.6P1.5P1.4列輸出表3-1 鍵盤布置及鍵值2.鍵盤接口及程序設(shè)計鍵輸入程序的功能有以下4個方面:1)判別鍵盤上有無鍵閉合:其方法為掃描口P1口的低四位輸出全“0”,讀P1口高四位的狀態(tài),若P1口高四位全為“1”(鍵盤上行線全為高電平)則鍵盤上沒有閉合鍵,若P1口的高四位不為全“1”,則有鍵處于閉合狀態(tài);2)去除鍵的機械抖動:其方法是判別到鍵盤上有鍵閉合后,延遲一段時間再判別鍵盤的狀態(tài),若仍有鍵閉合,則認為鍵盤上有一個鍵處于穩(wěn)定的閉合期,否則認為是鍵的抖動;3)判別

30、閉合鍵的鍵號:方法為對鍵盤的列線進行掃描,由掃描口P1口的低四位依次輸出:相應(yīng)地順次讀出P1口的高四位的狀態(tài),若P1口高四位為全“1”,則列線輸出為“0“的這一列上沒有鍵閉合,否則這一列上有鍵閉合。閉合鍵的鍵號等于為低電平的列號加上為低電平的行的首鍵號。例P1口低四位的輸出為1101時,讀出P1口的高四位為1101,則1行1列相交的鍵處于閉合狀態(tài),第一行的首鍵號為8,列號為1,閉合鍵的鍵號為:N=行首鍵號+列號=8+1=94)CPU對鍵的一次閉合僅作一次處理:采用的方法為等待閉合鍵釋放以后再作處理。5) 將得到的鍵值,用數(shù)碼管顯示出。一、 實驗步驟1將三檔開關(guān)LED撥到最下(指向89S51),

31、其它開關(guān)都撥到中間(注意此時不能將三檔開關(guān)4*4撥到最下,否則將不能正常下載程序),插上USB下載線,打開電源。2打開KEIL軟件,在所建的項目文件中輸入源程序,進行編譯,編譯無誤后,將生成的.HEX文件用Proisp下載到單片機中。3然后將三檔開關(guān)4*4撥到最下(指向89S51)。4按下按鍵,觀察實驗板上數(shù)碼管顯示的現(xiàn)象,看是否符合實驗要求。如果未到達實驗要求,修改程序,重復(fù)2操作,直至達到實驗要求。二、 程序代碼1 匯編程序代碼KEY_N EQU 40H ;鍵值暫存位置 ORG 0000H AJMP START ORG 0030HSTART: MOV SP,#60H;-;主程序MAIN:

32、LCALL KEYI ;鍵盤掃描 LCALL DISPLAY ;顯示 AJMP MAIN;-;鍵盤掃描子程序KEYI: ACALL KS1 ;判斷有無鍵閉合 JNZ LK1 ;有,跳到LK1,軟件去抖NI: AJMP EXIT ;無,返回LK1: ACALL DELAY ;延時去抖 ACALL KS1 JNZ LK2 AJMP EXITLK2: MOV R2,#0FEH ;列選碼 MOV R4,#00H ;列號LK4: MOV A,R2 MOV P1,A MOV A,P1 SWAP A JB ACC.0,LONE ;第0行為1,無鍵閉合,跳到第1行 MOV A,#00H ;第0行有鍵閉合,A=

33、0 AJMP LKP ;跳到LKP,計算鍵號LONE: JB ACC.1,LTW0 MOV A,#04H AJMP LKPLTW0: JB ACC.2,LTHR MOV A,#08H AJMP LKPLTHR: JB ACC.3,NEXT MOV A,#0CHLKP: ADD A,R4 ;計算鍵值 MOV KEY_N,A ;將鍵值存儲在KEY_N AJMP EXITNEXT: INC R4 MOV A,R2 JNB ACC.4,EXIT ;第4列為0時,跳到KND RL A MOV R2,A AJMP LK4EXIT: RET ;都比較結(jié)束,退出KS1: MOV A,#0F0H ;判斷有無鍵閉

34、合 MOV P1,A MOV A,P1 CPL A ANL A,#0F0H RET;-;顯示子程序DISPLAY:MOV A,KEY_N MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A CLR P2.0 LCALL DELAY RET;-;延時子程序DELAY: MOV R6,#50LOOP: MOV R7,#50 DJNZ R7,$ DJNZ R6,LOOP RETTAB1: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,88H DB 83H,0C6H,0A1H,86H,8EH ;共陽碼 0,1,2,3,4,

35、5,6,7,8,9,A,B,C,D,E,F END2 C編程序代碼#include #define uint unsigned int#define uchar unsigned charuchar keyword;uchar code table0=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uchar code table1=0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0

36、x88;/-void delay(uint c) /延時消抖uchar m,n; for(m=0;mc;m+) for(n=0;n5;n+); /-uchar scankb()uchar sccode,recode; P1=0xf0; if(P1&0xf0)!=0xf0)/判斷是否有鍵按下 delay(2); if(P1&0xf0)!=0xf0)/仍然有鍵按下 sccode=0xfe; while(sccode&0x10)!=0)/移位沒完 P1=sccode;/行掃描開始 if(P1&0xf0)!=0xf0)/若在該行 recode=(P1&0xf0)|0x0f; /中間結(jié)果 P1=0xff

37、; return(sccode)+(recode); /返回Keyword else sccode=(sccode1)|0x01; /不在該行則掃下一行 return(keyword);/-main()uchar dat,i;while(1) keyword=scankb(); for(i=0;keyword!=table1i;i+); dat=table0i; P0=dat; P2=0; 實驗四 液晶顯示一、 實驗?zāi)康? 了解液晶工作原理2 熟悉12232F液晶的引腳功能、工作時序及工作方式3 掌握如何根據(jù)時序圖編寫程序的方法。二、 實驗內(nèi)容用實驗箱上提供的12232F液晶模塊,編寫程序,靜

38、態(tài)顯示“長春工業(yè)大學(xué)-電子信息工程”字樣。三、 實驗原理112232F是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器/ 列驅(qū)動器及12232全點陣液晶顯示器組成.可完成圖形顯示,也可以顯示72個(1616點陣)漢字.與外部CPU接口可采用串行或并行方式控制。2外部接口信號如下表4-1所示:表4-1:管腳號管腳名稱LEVER管腳功能描述1GND0V電源地2VCC5.0V電源電壓3VEE-液晶顯示器驅(qū)動電壓4RSH/LD/I=“H”,表示DB7DB0為顯示數(shù)據(jù)D/I=“L”,表示DB7DB0為顯示指令數(shù)據(jù)5R/WH/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB7DB0R/W=“L”,E=“HL”, D

39、B7DB0的數(shù)據(jù)被寫到IR或DR6EH/L使能信號7DB0H/L數(shù)據(jù)線8DB1H/L數(shù)據(jù)線9DB2H/L數(shù)據(jù)線10DB3H/L數(shù)據(jù)線11DB4H/L數(shù)據(jù)線12DB5H/L數(shù)據(jù)線13DB6H/L數(shù)據(jù)線14DB7H/L數(shù)據(jù)線15LED+5V背光源電壓16LED-0V背光源電源地312232F提供兩套控制命令,基本指令和擴充指令如下:指令表4-2:(RE=1:基本指令)指令 指 令 碼功 能RSR/WD7D6D5D4D3D2D1D0清除顯示0000000001將DDRAM填滿20H,并且設(shè)定DDRAM的位置計數(shù)器(AC)到00H位置歸位000000001X設(shè)定DDRAM的位置計數(shù)器(AC)到00H,

40、并且將游標(biāo)移到開頭原點位置;這個指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開/關(guān)0000001DCBD=1: 整體顯示 ONC=1: 游標(biāo)ON B=1:游標(biāo)位置ON進入點設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時,設(shè)定游標(biāo)的移動方向及指定顯示的移位游標(biāo)或顯示移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動與顯示的移位控制位;這個指令不改變DDRAM 的內(nèi)容 功能 設(shè)定00001DLX0REXXDL=1(必須設(shè)為1)RE=1: 擴充指令操作RE=0: 基本指令操作 設(shè)定CGRAM 位置0001AC5AC4AC3AC2AC1AC0設(shè)定DDRAM 位置到位置計數(shù)器 設(shè)定DDRAM 位置001AC6AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 位置到位置計數(shù)器讀取忙標(biāo)志和位置01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標(biāo)志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出位置計數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7D0寫入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GRAM)指令

溫馨提示

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

最新文檔

評論

0/150

提交評論