2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  摘要...................................................................................................................i</p><p><b>  1 任務(wù)及要求2<

2、/b></p><p><b>  1.1設(shè)計任務(wù)2</b></p><p>  1.2 設(shè)計要求2</p><p><b>  2 設(shè)計思想2</b></p><p>  2.1 硬件設(shè)計思想2</p><p>  2.2 軟件設(shè)計思想2</p>

3、<p>  3 電路原理與電路圖3</p><p>  3.1 電路原理3</p><p>  3.2 電路原理圖3</p><p>  4 流程圖與算法描述3</p><p><b>  4.1 流程圖3</b></p><p>  4.2 算法描述5</p>

4、;<p><b>  5 仿真結(jié)果6</b></p><p><b>  6 設(shè)計總結(jié)12</b></p><p><b>  參考文獻12</b></p><p><b>  致謝12</b></p><p><b> 

5、 附錄14</b></p><p><b>  1 任務(wù)及要求</b></p><p><b>  1.1設(shè)計任務(wù)</b></p><p>  設(shè)計一個4×4的鍵盤的簡易計算器和LED數(shù)碼管的顯示電路的Proteus仿真及匯編程序設(shè)計。</p><p><b>  

6、1.2 設(shè)計要求</b></p><p>  (1)、設(shè)計一個十六個按鍵的矩陣式計算器的模擬系統(tǒng)。</p><p>  (2)、該系統(tǒng)具有加減乘除等功能。</p><p>  (3)、用Proteus 7仿真工作的全過程。</p><p>  (4)、掌握4×4矩陣式鍵盤程序識別原理,4×4矩陣式鍵盤按鍵的設(shè)計

7、方法。</p><p><b>  2 設(shè)計思想</b></p><p>  2.1 硬件設(shè)計思想</p><p>  用單片機的并行口P1連接4×4矩陣鍵盤,并以單片機的P1.0-P1.7各管腳作輸入線,以單片機的P2.0-P2.7和P0.0—P0.7各管腳作輸出線,在數(shù)碼管上顯示每個按鍵 “0-9”的序號。鍵盤中對應(yīng)按鍵的序號排列

8、如圖(1)所示。數(shù)字0、1、2、3接X0;4、5、6、7接X1;8、9、10、11接X2;12、13、14、15接X3。即16個按鈕空接,即十六個鍵一端低電平,另一端接高電平;當按下任意一個按鈕時顯示對應(yīng)數(shù)字。該系統(tǒng)可以實現(xiàn)四則運算,當分別按下2個數(shù)字,再按任意一個功能鍵即可實現(xiàn)相應(yīng)的運算。</p><p>  2.2 軟件設(shè)計思想</p><p>  整個程序可以實現(xiàn)十進制內(nèi)的加減乘除,

9、其中包含了延時子程序(去抖動),加法、減法、除法、乘法等子程序。</p><p><b>  (1)按鍵的識別</b></p><p>  判斷鍵盤上有無按鍵閉合,先判斷行線X0—X3輸出低電平“0”,然后判斷列線Y0—Y3的狀態(tài),若為全1,即列線全為高電平,說明鍵盤上沒有按鍵閉合,若Y0—Y3不全為1,說明有鍵按下。</p><p><

10、b> ?。?)消抖處理</b></p><p>  當判斷有鍵按下后,需要進行消除抖動,這里使用了軟件方法即程序中采用時間延時0.5秒,待信號穩(wěn)定后再判別鍵盤的狀態(tài),若有鍵按下,則再進行鍵號的計算。</p><p><b>  (3)判別鍵號</b></p><p>  先判斷行線X0—X3是否有輸出低電平“0”,若有鍵按下,

11、則相應(yīng)的列線也為低電平“0”,例如行線X1輸出為低電平“0”,且列線Y2為低電平,即X1與Y2相交的鍵被按下,進行鍵號=行號*4+列號 的計算。</p><p><b> ?。?)顯示結(jié)果</b></p><p>  顯示器接高電頻,左邊顯示器接P0,右邊顯示接P2,當按下一個數(shù)字時右顯示器顯示相應(yīng)的數(shù)字,按第2個數(shù)字時左邊顯示器顯示相應(yīng)數(shù)字;當進行除法運算時,除的的

12、數(shù)據(jù)要看接口P0.7接高還是低電頻,低電頻則結(jié)果為幾點幾,為高電頻則幾十幾。其它運算直接看數(shù)據(jù)即可。</p><p>  3 電路原理與電路圖</p><p><b>  3.1 電路原理</b></p><p>  單片機最小系統(tǒng)。一個AT89C51單片機做為控制電路,運用其P0、P1口來控制數(shù)碼管和鍵盤,通過P0和P2口來顯示鍵值(0~9)

13、。通過P1口來控制鍵盤。</p><p><b>  3.2 電路原理圖</b></p><p>  圖3.1 電路原理圖</p><p>  4 流程圖與算法描述</p><p><b>  4.1 流程圖</b></p><p><b>  主函數(shù)流程圖:<

14、;/b></p><p>  圖4.1 主函數(shù)流程圖</p><p>  主函數(shù)首先判斷是否有鍵按下,如果有鍵按下則去抖動,判斷是否是十進制,把第一次按下的數(shù)字發(fā)送到P2口。再判斷第二次按下的值,和第一次一樣,發(fā)送至P0口顯示,在判斷第三次按下的值,看是什么功能鍵,相對的再進行運算,把結(jié)果的十位存在P0口,P2口存?zhèn)€位。</p><p><b>  

15、延時函數(shù)流程圖:</b></p><p>  圖4.2 延時子程序流程圖 </p><p>  延時函數(shù)是由三個嵌套的循環(huán)構(gòu)成。首先發(fā)送初值至R7,R6,R5,R5為內(nèi)循環(huán),R6為第二層,R7是最外層循環(huán),也就是說,當R7的值減為0時,循環(huán)就結(jié)束了,延時程序結(jié)束,返回主函數(shù)。</p><p><b>  4.2 算法描述</b>&

16、lt;/p><p>  (1)、設(shè)計一個延時子程序,延時0.5s。本程序通過兩個DJNZ的語句來實現(xiàn)。延時程序的代碼段如下:</p><p>  DELAY:MOV R7,#100D </p><p>  DEL1:MOV R6,#250D </p><p>  DEL2:MOV R5,#10D </p><p&

17、gt;  DJNZ R5,$ </p><p>  DJNZ R6,DEL2 </p><p>  DJNZ R7,DEL1 </p><p><b>  RET</b></p><p>  (2)、僅實現(xiàn)十進制的加減乘除運算。CJNE是判斷兩個數(shù)是否相等,不想等則轉(zhuǎn)移,代碼段如下:</p><p&g

18、t;  M0:CJNE R1,#10D,M1 </p><p><b>  LJMP L1 </b></p><p>  M1:CJNE R1,#11D,M2 </p><p><b>  LJMP L1 </b></p><p>  M2:CJNE R1,#12D,M3 <

19、;/p><p><b>  LJMP L1 </b></p><p>  M3:CJNE R1,#13D,M4 </p><p><b>  LJMP L1 </b></p><p>  M4:CJNE R1,#14D,M5 </p><p><b>  LJMP L1

20、 </b></p><p>  M5:CJNE R1,#15D,M6 </p><p><b>  LJMP L1 </b></p><p>  M6:RET ;返回重新按入新的鍵號</p><p><b>  5 仿真結(jié)果</b></p

21、><p> ?。?)、加法仿真如下:(1加2)</p><p>  當我在鍵值為1的地方按下時,1就顯示在了由P2口接著的數(shù)碼管上。按下第二個數(shù)值時,就顯示在了由P0口接著的數(shù)碼管上。顯示如5.1所示。當我按下代表加法的運算符時,結(jié)果就如圖5.2所示。</p><p>  圖5.1 加法仿真結(jié)果圖</p><p>  圖5.2 加法仿真結(jié)果圖&l

22、t;/p><p> ?。?)、減法仿真如下:(2減3) </p><p>  減法如同加法一樣,只是不同的是,減法得到的結(jié)果可能是負數(shù),當結(jié)果是負數(shù)時,P0口顯示負數(shù)。結(jié)果如圖5.4所示。</p><p>  圖5.3 減法仿真結(jié)果圖</p><p>  圖5.4 減法仿真結(jié)果圖</p><p>  (3)、乘法仿真如下:

23、(3乘以2) </p><p>  乘法和加法的操作順序也沒什么不同,結(jié)果顯示如圖5.5和5.6所示。</p><p>  圖5.5 乘法仿真結(jié)果圖</p><p><b>  申</b></p><p>  圖5.6 乘法仿真結(jié)果圖</p><p>  (4)、除法仿真如下:(2除以4)<

24、/p><p>  除法有所不同的是,他的值有可能為小數(shù),當除不盡的時候,只保留小數(shù)點后一</p><p>  位,顯示結(jié)果如圖5.7和圖5.8所示。</p><p>  圖5.7 除法仿真結(jié)果圖</p><p>  圖5.8 除法仿真結(jié)果圖</p><p> ?。?)、復(fù)位仿真如下:</p><p>

25、;  當按下復(fù)位鍵時,數(shù)碼管會熄滅,如圖5.9和圖5.10所示。</p><p>  圖5.9復(fù)位仿真結(jié)果圖</p><p>  圖5.10復(fù)位仿真結(jié)果圖</p><p><b>  6 設(shè)計總結(jié)</b></p><p>  課程設(shè)計剛開始時,拿著選定的題目不知如何下手。畢竟課程設(shè)計不同于實驗課,電路圖都要自己設(shè)計。靜下

26、心來,仔細分析題目,再加上指導(dǎo)老師的說明與提示,心中才有了譜。將整個系統(tǒng)根據(jù)不同的功能化分成模塊,再分別進行設(shè)計,逐個攻破,最后將其整合即可。</p><p>  回顧起此課程設(shè)計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論

27、知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。 實驗過程中,也對團隊精神的進行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。此次設(shè)計也讓我明白了思路即出路,有什么不懂不明白的地方要

28、及時請教或上網(wǎng)查詢,只要認真鉆研,動腦思考,動手實踐,就沒有弄不懂的知識,收獲頗豐。</p><p>  在此我非常感謝我的指導(dǎo)老師—-申壽云老師,感謝申老師不辭辛苦的細心輔導(dǎo),讓我對單片機原理這門課程有了更深刻的認識,讓我對獨立做課程設(shè)計有了信心,同時我還要感謝我的隊友,感謝他們的努力和配合,這次課程設(shè)計才能順利完成。</p><p><b>  參考文獻</b>&

29、lt;/p><p> ?。?] 蔡美琴,張為民,沈新群等.MCS51系列單片機系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,1992.</p><p> ?。?]何立民.單片機應(yīng)用技術(shù)選篇(5)[M].北京:北京航空航天大學出版社,1997.</p><p> ?。?]楊光友. 單片機微型計算機原理及接口技術(shù)[M].北京:中國水利水電出版社,2002</p>

30、<p> ?。?]李廣弟.單片機基礎(chǔ)[M].北京:北京航空航天大學出版社,1994</p><p> ?。?]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,1989</p><p><b>  致謝</b></p><p>  在論文完成之際,我要特別感謝我的指導(dǎo)老師xx老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰寫論文的過程中,xx

31、老師傾注了大量的心血和汗水,無論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了xx老師悉心細致的教誨和無私的幫助,特別是他廣博的學識、深厚的學術(shù)素養(yǎng)、嚴謹?shù)闹螌W精神和一絲不茍的工作作風使我終生受益,在此表示真誠地感謝和深深的謝意。在論文的寫作過程中,也得到了許多同學的寶貴建議,同時還到許多在設(shè)計過程中許多同伴的支持和幫助,在此一并致以誠摯的謝意。感謝所有關(guān)心、支持、幫助過我的良師益友。</p

32、><p><b>  附錄</b></p><p>  ORG 0000H </p><p>  L1:LCALL SCAN </p><p>  MOV 40H,32H ;將鍵號保存在40H </p><p>  MOV R1,40H ;暫存在R1 &l

33、t;/p><p>  LCALL M0 </p><p>  LCALL XY1 </p><p>  MOV P0,#0FFH ; 使P0口置1 </p><p>  LCALL SCAN </p><p>  MOV 41H,32H ;將鍵號保存在41H &

34、lt;/p><p>  MOV R1,41H ;暫存在R1 </p><p><b>  LCALL M0 </b></p><p>  LCALL XY2 </p><p>  L2:LCALL SCAN </p><p>  MOV 42H,32H </p>

35、<p>  MOV R7,42H </p><p>  CJNE R7,#10D,L3 ;是否進行加法運算</p><p>  MOV A,40H </p><p>  ADD A,41H </p><p>  MOV B,#10D </p><p>  DIV AB

36、 ; 商存在A中即十位,余數(shù)存在B中即個位</p><p>  CJNE A,#00H,L8 ; 判斷十位是否為0,不為0跳轉(zhuǎn)</p><p>  MOV P0,#0FFH ;置1不顯示</p><p><b>  LJMP L9 </b></p><p>  L8:MOV 32H,A

37、 </p><p>  LCALL XY2 ;商非0則調(diào)用顯示十位數(shù)</p><p>  L9:MOV 32H,B </p><p>  LCALL XY1 ;調(diào)用顯示個位數(shù)</p><p>  LJMP L1 </p><

38、;p>  l3:CJNE R7,#11,l4 ;是否進行減法運算</p><p>  MOV A,40H </p><p>  SUBB A,41H ;結(jié)果存在A </p><p>  JB ACC.7,N1 ;判斷正負</p><p>  MOV 32H,A </p>

39、<p>  MOV P0,#0FFH </p><p>  LCALL XY1 ;減法結(jié)果為正</p><p><b>  LJMP L1 </b></p><p>  N1:MOV P0,#0BFH ;顯示負號</p><p>  MOV A,41H </p>

40、;<p>  SUBB A,40H </p><p>  ADD A,#1D </p><p>  MOV 32H,A </p><p>  LCALL XY1 ;顯示結(jié)果</p><p><b>  LJMP L1 </b></p><p&

41、gt;  l4:CJNE R7,#12,l5 ;是否進行乘法運算</p><p>  MOV A,40H </p><p>  MOV B,41H </p><p>  MUL AB ;結(jié)果存在A中</p><p>  MOV 50H,A </p><p>  MOV B,

42、#10D </p><p>  DIV AB ;商存在A中即十位,余數(shù)存在B中即個位</p><p>  CJNE A,#00H,L10 ;判斷十位是否為0,不為0跳轉(zhuǎn)</p><p>  MOV P0,#0FFH ; 置1不顯示</p><p><b>  LJMP L

43、11 </b></p><p>  L10:MOV 32H,A </p><p>  LCALL XY2 </p><p>  L11:MOV 32H,B </p><p>  LCALL XY1 </p><p><b>  LJMP L1 </b></p><p

44、>  l5:CJNE R7,#13,l6 ;是否進行除法運算</p><p>  MOV A,40H </p><p>  MOV B,41H </p><p>  DIV AB ;X/Y 除法</p><p><b>  MOV R6,B </b></p>

45、<p>  CJNE R6,#00H,L12 ; 判斷余數(shù)是否為0,不為0跳轉(zhuǎn)</p><p>  MOV P0,#0FFH ; 置1不顯示十位</p><p>  MOV 32H,A </p><p>  LCALL XY1 </p><p><b>  LJMP L13 </b&

46、gt;</p><p>  L12:MOV 32H,A </p><p>  LCALL XY2 ; p0顯示小數(shù)點前的數(shù)</p><p>  CLR P0.7 ;有小數(shù)點</p><p><b>  MOV A,B </b></p><p> 

47、 MOV B,#10D </p><p>  MUL AB ;余數(shù)的十倍</p><p>  MOV B,41H </p><p>  DIV AB ;余數(shù)的十倍再除以除數(shù)</p><p>  MOV 32H,A

48、 ;結(jié)果保留小數(shù)點后一位</p><p>  LCALL XY1 ;p2顯示小數(shù)點后的數(shù)</p><p>  L13:LJMP L1 </p><p>  l6:CJNE R7,#0D,L7 </p><p>  CJNE R7,#1D,L7 ;屏蔽十進制,實現(xiàn)加減乘除</p><

49、p>  CJNE R7,#2D,L7 </p><p>  CJNE R7,#3D,L7 </p><p>  CJNE R7,#4D,L7 </p><p>  CJNE R7,#5D,L7 </p><p>  CJNE R7,#6D,L7 </p><p>  CJNE R7,#7D,

50、L7 </p><p>  CJNE R7,#8D,L7 </p><p>  CJNE R7,#9D,L7 </p><p>  CJNE R7,#14D,L7 ;屏蔽E、F </p><p>  CJNE R7,#15D,L7 </p><p>  L7:LJMP L2 </p><

51、;p>  SCAN:MOV P1,#0F0H ; P1口高4位置1 </p><p>  JNB P1.4,Y0 ;判斷Y0列是否有鍵按下,有就跳至Y0 </p><p>  JNB P1.5,Y1 </p><p>  JNB P1.6,Y2 </p><p>  JNB P1.7,Y3 </

52、p><p>  LJMP SCAN ;無鍵按下繼續(xù)掃描</p><p>  Y0:MOV 31H,#00H ; 列線Y0有鍵按下</p><p>  MOV P1,#0FEH </p><p>  JNB P1.4,X0 ;判斷X0橫是否有鍵按下</p><p&g

53、t;  MOV P1,#0FDH </p><p>  JNB P1.4,X1 ;判斷X1橫是否有鍵按下</p><p>  MOV P1,#0FBH </p><p>  JNB P1.4,X2 ;判斷X2橫是否有鍵按下</p><p>  MOV P1,#0F7H </p>&l

54、t;p>  JNB P1.4,X3 ;判斷X3橫是否有鍵按下</p><p>  LJMP Y0 ;返回繼續(xù)判斷</p><p>  Y1:MOV 31H,#01H ;列線Y1有鍵按下</p><p>  MOV P1,#0FEH </p><p>  JNB

55、 P1.5,X0 </p><p>  MOV P1,#0FDH </p><p>  JNB P1.5,X1 </p><p>  MOV P1,#0FBH </p><p>  JNB P1.5,X2 </p><p>  MOV P1,#0F7H </p><p>  JNB P1.5,X

56、3 </p><p><b>  LJMP Y1 </b></p><p>  Y2:MOV 31H,#02H ;列線Y2有鍵按下</p><p>  MOV P1,#0FEH </p><p>  JNB P1.6,X0 </p><p>  MOV P1,#0FDH &

57、lt;/p><p>  JNB P1.6,X1 </p><p>  MOV P1,#0FBH </p><p>  JNB P1.6,X2 </p><p>  MOV P1,#0F7H </p><p>  JNB P1.6,X3 </p><p><b>  LJMP Y2 <

58、/b></p><p>  Y3:MOV 31H,#03H ;列線Y3有鍵按下</p><p>  MOV P1,#0FEH </p><p>  JNB P1.7,X0 </p><p>  MOV P1,#0FDH </p><p>  JNB P1.7,X1 </p>

59、<p>  MOV P1,#0FBH </p><p>  JNB P1.7,X2 </p><p>  MOV P1,#0F7H </p><p>  JNB P1.7,X3 </p><p><b>  LJMP Y3 </b></p><p>  X0:MOV 30H,#00H

60、 ;行線X0有鍵按下</p><p>  LCALL DELAY ;0.5s延時消除抖動</p><p>  LJMP JS ;跳轉(zhuǎn)鍵值計算程序</p><p>  X1:MOV 30H,#01H ;行線X1有鍵按下</p><p>  LCALL DEL

61、AY </p><p><b>  LJMP JS </b></p><p>  X2:MOV 30H,#02H ;行線X2有鍵按下</p><p>  LCALL DELAY </p><p><b>  LJMP JS </b></p><p>  X

62、3:MOV 30H,#03H ;行線X3鍵按下</p><p>  LCALL DELAY </p><p><b>  LJMP JS </b></p><p>  JS:MOV A,30H ;計算鍵入的值</p><p>  MOV B,#04H </p>

63、<p><b>  MUL AB </b></p><p>  ADD A,31H </p><p>  MOV 32H,A </p><p><b>  RET </b></p><p>  XY1:MOV A,32H </p><p>  MOV DPTR,#T

64、AB </p><p>  MOVC A,@A+DPTR </p><p>  MOV P2,A ;顯示第一次按入的鍵號及結(jié)果的個位</p><p><b>  RET </b></p><p>  XY2:MOV A,32H </p><p>  MOV DPTR,#

65、TAB </p><p>  MOVC A,@A+DPTR </p><p>  MOV P0,A ;顯示第二次按入的鍵號及結(jié)果的十位</p><p><b>  RET </b></p><p>  DELAY:MOV R7,#100D ;延時0.5s子程序</p>

66、;<p>  DEL1:MOV R6,#250D </p><p>  DEL2:MOV R5,#10D </p><p>  DJNZ R5,$ </p><p>  DJNZ R6,DEL2 </p><p>  DJNZ R7,DEL1 </p><p><b>  RET </b&

67、gt;</p><p>  M0:CJNE R1,#10D,M1 ;僅實現(xiàn)十進制的加減乘除運算</p><p><b>  LJMP L1 </b></p><p>  M1:CJNE R1,#11D,M2 </p><p><b>  LJMP L1 </b></p>

68、;<p>  M2:CJNE R1,#12D,M3 </p><p><b>  LJMP L1 </b></p><p>  M3:CJNE R1,#13D,M4 </p><p><b>  LJMP L1 </b></p><p>  M4:CJNE R1,#14D,M5 <

69、;/p><p><b>  LJMP L1 </b></p><p>  M5:CJNE R1,#15D,M6 </p><p><b>  LJMP L1 </b></p><p>  M6:RET ;返回重新按入新的鍵號</p><p&

溫馨提示

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

評論

0/150

提交評論