2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(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、<p><b>  單片機(jī)課程設(shè)計(jì)論文</b></p><p>  設(shè)計(jì)題目:鍵盤按鍵識(shí)別及LED數(shù)碼顯示</p><p>  系 院:信息工程學(xué)院</p><p>  專 業(yè):09計(jì)算機(jī)應(yīng)用技術(shù)</p><p>  姓 名:XXX</p><p>  學(xué) 號(hào):2

2、009010220</p><p><b>  指導(dǎo)老師:XXX</b></p><p><b>  目錄</b></p><p>  第1節(jié) 課程設(shè)計(jì)任務(wù)書·············

3、3;············3</p><p>  第2節(jié) 引言···················&

4、#183;················5</p><p>  2.1 4*4矩陣式鍵盤系統(tǒng)概述·············

5、;·················5</p><p>  2.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容·············

6、;··················6</p><p>  第3節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì)············

7、········7</p><p>  3.1 單片機(jī)控制系統(tǒng)原理····················7</p>

8、<p>  3.2 單片機(jī)主機(jī)系統(tǒng)電路····················7</p><p>  3.3 矩陣式鍵盤電路······&

9、#183;·················8</p><p>  3.4 譯碼顯示電路·············

10、;·············8</p><p>  第4節(jié) 系統(tǒng)的軟件設(shè)計(jì)·················

11、83;········11</p><p>  第5節(jié) 課程設(shè)計(jì)心得體會(huì) ·····················

12、3;·16 </p><p>  參考文獻(xiàn)······························

13、;········16</p><p>  第一節(jié) 課程設(shè)計(jì)任務(wù)書</p><p>  南 昌 工 程 學(xué) 院</p><p>  課程設(shè)計(jì)(論文)任務(wù)書</p><p>  信息工程學(xué)院 系 09計(jì)算機(jī)應(yīng)用技術(shù) 專業(yè) 1

14、班</p><p>  學(xué)生: XXX </p><p>  日期: 自 2011 年 6 月 13 日至 2011 年 6 月 24 日</p><p>  指導(dǎo)教師: XXX </p><p>  助理指導(dǎo)教師(并指

15、出所負(fù)責(zé)的部分):</p><p>  教研室: 教研室主任: </p><p><b>  第二節(jié) 引言</b></p><p><b>  引言</b></p><p>  矩陣式鍵盤乃

16、是當(dāng)今使用最為廣泛的鍵盤模式,該系統(tǒng)以N個(gè)端口連接控制N*N個(gè)按鍵,即時(shí)在LED數(shù)碼管上。單片機(jī)控制的據(jù)這是鍵盤顯示系統(tǒng),該系統(tǒng)可以對(duì)不同的按鍵進(jìn)行實(shí)時(shí)顯示,其核心是單片機(jī)和鍵盤矩陣電路部分,主要對(duì)按鍵與顯示電路的關(guān)系、矩陣式技術(shù)及設(shè)備系統(tǒng)的硬件、軟件等各個(gè)部分進(jìn)行實(shí)現(xiàn)。</p><p>  4*4矩陣式鍵盤采用AT89S51單片機(jī)為核心,主要由矩陣式鍵盤電路、譯碼電路、顯示電路等組成,軟件選用匯編語(yǔ)言編程。單片

17、機(jī)將檢測(cè)到的按鍵信號(hào)轉(zhuǎn)換成數(shù)字量,顯示于LED顯示器上。該系統(tǒng)靈活性強(qiáng),易于操作,可靠性高,將會(huì)有更廣闊的開發(fā)前景。</p><p>  2.1 4*4矩陣式鍵盤識(shí)別顯示系統(tǒng)概述</p><p>  矩陣式鍵盤模式以N個(gè)端口連接控制N*N個(gè)按鍵,實(shí)時(shí)在LED數(shù)碼管上顯示按鍵信息。顯示按鍵信息,既降低了成本,又提高了精確度,省下了很多的I/O端口為他用,相反,獨(dú)立式按鍵雖編程簡(jiǎn)單,但占用I

18、/O口資源較多,不適合在按鍵較多的場(chǎng)合應(yīng)用。并且在實(shí)際應(yīng)用中經(jīng)常要用到輸入數(shù)字、字母、符號(hào)等操作功能,如電子密碼鎖、電話機(jī)鍵盤、計(jì)算器按鍵等,至少都需要12到16個(gè)按鍵,在這種情況下如果用獨(dú)立式按鍵的話,顯然太浪費(fèi)I/O端口資源,為了解決這一問題,我們使用矩陣式鍵盤。</p><p><b>  矩陣式鍵盤簡(jiǎn)介:</b></p><p>  矩陣式鍵盤又稱行列鍵盤,它

19、是用N條I/O線作為行線,N條I/O線作為列線組成的鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為N*N個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。</p><p>  最常見的鍵盤布局如圖1-1所示。一般由16個(gè)按鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式,本設(shè)計(jì)就采用這個(gè)鍵盤模式。</p><p>

20、;<b>  如圖1-1所示</b></p><p>  圖2-1 鍵盤布局</p><p>  隨著21世紀(jì)的到來,資源危機(jī)接踵而至。快速席卷整個(gè)國(guó)家,這一狀況還將隨著時(shí)間的推移和社會(huì)的發(fā)展而更加嚴(yán)重。國(guó)家提倡資源節(jié)約型社會(huì),資源危機(jī)已成為全球性的突出問題,利用科技手段緩解這一危機(jī),將是人類主要的出路。</p><p>  電子信息行業(yè)是人

21、類社會(huì)的高科技行業(yè)之一,是設(shè)施現(xiàn)代化的基礎(chǔ),也是人類通往科技巔峰的直通路。電子行業(yè)的發(fā)展從長(zhǎng)遠(yuǎn)來看很重要,但最主要的還是科技問題。</p><p>  國(guó)家設(shè)施的現(xiàn)代化的根本出路在于全面提高科技水平,現(xiàn)代的社會(huì)經(jīng)營(yíng)模式由傳統(tǒng)模式向現(xiàn)代化、高科技模式轉(zhuǎn)變,由粗放型向集約型方向轉(zhuǎn)變,必須要求科技有一個(gè)大的發(fā)展,進(jìn)行一次新的技術(shù)革命。</p><p>  矩陣式鍵盤提高效率進(jìn)行按鍵操作管理有效方

22、法,它可以提高系統(tǒng)準(zhǔn)確性,有利于資源的節(jié)約,降低對(duì)操作者本身素質(zhì)的要求。是它能準(zhǔn)確、實(shí)時(shí)、高效地顯示按鍵信息,以提高工作效率和資源利用率。</p><p>  隨著計(jì)算機(jī)技術(shù)和電子科技的迅猛發(fā)展,計(jì)算機(jī)和電子產(chǎn)品的價(jià)格日益降</p><p>  低,可靠性日益提高。本文旨在設(shè)計(jì)一套能對(duì)按鍵信息進(jìn)行自動(dòng)實(shí)時(shí)顯示的系</p><p><b>  統(tǒng)。</

23、b></p><p>  本設(shè)計(jì)任務(wù)和主要內(nèi)容</p><p>  本論文主要研究單片機(jī)控制的鍵盤識(shí)別顯示系統(tǒng),分別對(duì)按鍵信息和顯示電路以及軟、硬件各個(gè)部分進(jìn)行研究。</p><p><b>  主要內(nèi)容如下:</b></p><p> ?、?根據(jù)矩陣式鍵盤的特點(diǎn),進(jìn)行鍵盤控制系統(tǒng)的整體研究與設(shè)計(jì);</p&g

24、t;<p> ?、?LED實(shí)時(shí)顯示按鍵信息(顯示按鍵的坐標(biāo));</p><p> ?、?采用軟件編程的方法實(shí)現(xiàn)按鍵信息的提取和顯示。</p><p>  第三節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì)</p><p>  3.1 單片機(jī)控制系統(tǒng)原理</p><p>  圖3-1 單片機(jī)控制系統(tǒng)原理框圖 </p><p&

25、gt;<b>  單片機(jī)主機(jī)系統(tǒng)電路</b></p><p>  AT89C51單片機(jī)是51系列單片機(jī)的一個(gè)成員,是8051單片機(jī)的簡(jiǎn)化版。內(nèi)部自帶2K字節(jié)可編程FLASH存儲(chǔ)器的低電壓、高性能COMS八位微處理器,與Intel MCS-51系列單片機(jī)的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲(chǔ)器結(jié)合在單個(gè)芯片中,因此,AT89C2051構(gòu)成的單片機(jī)系統(tǒng)是具有結(jié)構(gòu)最簡(jiǎn)單、造價(jià)最低

26、廉、效率最高的微控制系統(tǒng),省去了外部的RAM、ROM和接口器件,減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價(jià)比。</p><p>  圖3-2 仿真原理圖</p><p>  3.3 矩陣式鍵盤電路</p><p>  AT89C51單片機(jī)的并行口P1接4×4矩陣鍵盤,以P1.0-P1.3作輸入線,以P1.4-P1.7作輸出線;P1口輸出按鍵信息,在數(shù)碼管

27、上顯示每個(gè)按鍵的“0-F”序號(hào)。實(shí)際電路圖連接如圖2-4所示。</p><p>  圖3-3 矩陣式鍵盤電路</p><p>  3.4 譯碼顯示電路</p><p>  譯碼電路中常用的顯示器有LED(數(shù)碼管)和LCD(液晶顯示器)。這兩種顯示器都具有線路簡(jiǎn)單、耗電少、成本低、壽命長(zhǎng)等優(yōu)點(diǎn)。</p><p>  本系統(tǒng)輸出結(jié)果選用2個(gè)LE

28、D顯示。數(shù)碼管有共陰共陽(yáng)之分,本系統(tǒng)采用8段共陽(yáng)型LED,其原理圖如圖3-5所示。</p><p>  數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管,公共端由8個(gè)發(fā)光二極管的陰極并接而成,正常顯示時(shí)公共端接低電平(GND),各發(fā)光二極管是否點(diǎn)亮取決于a-dp各引腳上是否是高電平。</p><p>  LED數(shù)碼管的外形結(jié)構(gòu)如圖3-4,外部有10個(gè)引腳,其中3, 8腳為公共端也稱位選端,其余8個(gè)引腳稱為段選端

29、,當(dāng)要使某一位數(shù)碼管顯示某一數(shù)字((0-9中的一個(gè))必須在這個(gè)數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對(duì)應(yīng)的8位段選碼(也稱字形碼),在位選端加上低電平即可。</p><p>  由于系統(tǒng)要顯示的內(nèi)容比較簡(jiǎn)單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED有共陰極和共陽(yáng)極兩種。如圖3-4所示。</p><p>  二極管的陰極連接在一起,通常此公共陰極接地,而共陽(yáng)極則將發(fā)光二極管的陽(yáng)極連接在一起,

30、接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(段)a~g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時(shí),該段筆劃即亮;不加電壓則暗。</p><p>  符號(hào)和引腳 共陽(yáng)極 共陰極</p><p>  圖3-4 LED數(shù)碼管結(jié)構(gòu)

31、</p><p>  圖3-5 譯碼顯示電路</p><p>  當(dāng)無按鍵閉合時(shí),P1.0--P1.3與P1.4--P1.7之間開路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O口線之間短路。</p><p>  判斷有無按鍵按下的方法是:</p><p>  第一步,置列線P1.0 --P1.3為輸入狀態(tài),從行線P1.4--P1.7輸出低電平

32、,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。</p><p>  第二步,行線輪流輸出低電平,從列線P1.0--P1.3讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線上有鍵按下。</p><p>  綜合一二兩步的結(jié)果,可確定按鍵編號(hào)。</p><p>  但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)

33、多次進(jìn)行同樣的鍵操作。</p><p>  由于本顯示電路功能簡(jiǎn)單,為使編程簡(jiǎn)單,采用直接輸出模式,即把P2.0-P2.6端口用8芯排線連接到數(shù)碼顯示模塊區(qū)域中的a-g端口上,要求:P2.0對(duì)應(yīng)著a,P2.1對(duì)應(yīng)著b,……,P2.6對(duì)應(yīng)著g。將行列分別送到兩個(gè)數(shù)碼管,顯示按鍵的坐標(biāo)。</p><p>  第四節(jié) 系統(tǒng)的軟件設(shè)計(jì)</p><p><b>  

34、4.1 軟件流程圖</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y </b></p><p>

35、  圖3-1 軟件設(shè)計(jì)流程圖</p><p>  4.2 系統(tǒng)程序設(shè)計(jì)</p><p>  #include <reg51.h></p><p>  #define uchar unsigned char //宏的定義變量類型 uchar 代替 unsigned char</p><p>  #define uint un

36、signed int //宏的定義變量類型 uint 代替 unsigned int</p><p>  uchar dis_buf,dis_buf1; //顯示緩存</p><p>  uchar temp;</p><p>  uchar l,h; //鍵順序嗎</p><p>

37、;  void delay0(uchar x); //x*0.14MS</p><p>  // 此表為 LED 的字模 </p><p>  0 12 3 4 56 78 9 a b cd e f</p><p>  unsigned char code LED7Code[

38、] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};</p><p>  /*************************************************************</p><p>  *

39、 *</p><p>  * 延時(shí)子程序 *</p><p>  * *</p

40、><p>  *************************************************************/</p><p>  void delay(uchar x)</p><p>  { uchar j;</p><p>  while((x--)!=0) //CPU執(zhí)行x*12次,x=10</p&g

41、t;<p>  { for(j=0;j<125;j++)</p><p><b>  {;}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /***************************

42、**********************************</p><p>  * *</p><p>  * 鍵掃描子程序 (4*3 的矩陣) P1.4 P1.5 P1.6 P1.7為行 *</p><p>  *

43、 P1.1 P1.2 P1.3為列 *</p><p>  * *</p><p>  *************************************************************/</p><p>  void keyscan(

44、void)</p><p>  { temp = 0;</p><p>  P1=0xF0; //高四位輸入 行為高電平 列為低電</p><p>  delay(1); //延時(shí)</p><p>  temp=P1; //讀P1口 </p><

45、p>  temp=temp&0xF0;</p><p><b>  //屏蔽低四位</b></p><p>  temp=~((temp>>4)|0xF0); </p><p>  if(temp==1) // p1.4 被拉低</p><p><b>  h=1;</

46、b></p><p>  else if(temp==2) // p1.5 被拉低</p><p><b>  h=2;</b></p><p>  else if(temp==4) // p1.6 被拉低</p><p><b>  h=3;</b></p><p

47、>  else if(temp==8) // p1.7 被拉低</p><p><b>  h=4;</b></p><p>  dis_buf = h;</p><p>  dis_buf = dis_buf & 0x0f;</p><p><b>  // else</b>&l

48、t;/p><p>  // key=16;</p><p>  P1=0x0F; //低四位輸入 列為高電平 行為低電平</p><p>  delay(1); //延時(shí)</p><p>  temp=P1; //讀P1口 </p><p>  temp

49、=temp&0x0F;</p><p>  temp=~(temp|0xF0);</p><p>  if(temp==1) //p1.0 被拉低</p><p><b>  l=1;</b></p><p>  else if(temp==2) //p1.1 被拉低</p>

50、;<p><b>  l=2;</b></p><p>  else if(temp==4) //p1.2 被拉低</p><p><b>  l=3;</b></p><p>  else if(temp==8)//p1.3 被拉低</p><p><b>  l

51、=4;</b></p><p><b>  //else</b></p><p>  // key=16; </p><p>  dis_buf1= l; //鍵值入顯示緩存</p><p>  dis_buf1= dis_buf1 & 0x0f;</p><p><

52、b>  }</b></p><p>  /*************************************************************</p><p>  * *</p><p>  *判斷鍵是否按下

53、 *</p><p>  * *</p><p>  *************************************************************/</p&

54、gt;<p>  void keydown(void)</p><p><b>  { </b></p><p><b>  P2=0xF0; </b></p><p><b>  P3=0xf0;</b></p><p>  //將高4位全部置1 低四位全部

55、置0</p><p>  if(P1!=0xF0) //判斷按鍵是否按下 如果按鈕按下 會(huì)拉低P1其中的一個(gè)端口</p><p><b>  {</b></p><p>  keyscan(); //調(diào)用按鍵掃描程序</p><p><b>  }</b></p><p>

56、;<b>  }</b></p><p>  /*************************************************************</p><p>  * *</p><p>  * 主程

57、序 *</p><p>  * *</p><p>  *********************************************************

58、****/ </p><p><b>  main()</b></p><p><b>  {</b></p><p>  P1=0xFF; //置P0口</p><p><b>  P2=0xFF; </b></p><

59、;p><b>  P3=0xff;</b></p><p><b>  //置P1口 </b></p><p>  delay(10); //延時(shí)</p><p><b>  while(1)</b></p><p><b>

60、  { </b></p><p>  keydown(); //調(diào)用按鍵判斷檢測(cè)程序</p><p>  P2 = LED7Code[dis_buf%16]&0x7f; </p><p>  P3= LED7Code[dis_buf1%16]&0x7f; //LED7 0x7f為小數(shù)點(diǎn) 共陰和共陽(yáng)此處也是不一樣; %16表

61、示輸出16進(jìn)制</p><p>  delay(150);</p><p><b>  }</b></p><p><b>  } </b></p><p>  第五節(jié) 課程設(shè)計(jì)心得體會(huì)</p><p>  通過此次的單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,深刻懂

62、得了要不斷地時(shí)間才能掌握知識(shí),而且還學(xué)會(huì)了如何去加強(qiáng)鍛煉創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。</p><p>  創(chuàng)新,是要我們將理論很好地聯(lián)系實(shí)際,并不斷地去開動(dòng)自己的腦子,從為先到并做到別人沒想到?jīng)]做到的事,不斷地超越別人,超越自己;同時(shí),更重要的是,在這一設(shè)計(jì)過程中,我懂得了堅(jiān)持不懈,不輕易言棄是每個(gè)理工科學(xué)子應(yīng)具備的良好素質(zhì)。設(shè)計(jì)過程,也好比是我們的成長(zhǎng)的歷程,常有一些不如意的事情發(fā)生,這就對(duì)我們提出

63、了挑戰(zhàn)。只要自己堅(jiān)持,堅(jiān)持,再堅(jiān)持,再苦再累也值得。 機(jī)遇青睞有準(zhǔn)備的人。這個(gè)設(shè)計(jì)過程中,我遇到過許多的考驗(yàn),給整個(gè)設(shè)計(jì)帶來的困擾,真想要就此放棄,然而,我還是挺了過來,</p><p>  回頭想想這個(gè)設(shè)計(jì)的過程,我明白了,原來結(jié)果并不是那么得重要,我們更應(yīng)該注重的是過程。</p><p>  系統(tǒng)以單片機(jī)AT89C51為核心部件,單片機(jī)系統(tǒng)完成對(duì)按鍵信號(hào)識(shí)別、檢測(cè)、處理、顯示等

64、功能,用Protel軟件繪制電路原理圖,利用MCS-51匯編語(yǔ)言編制程序。</p><p>  這個(gè)系統(tǒng)設(shè)計(jì)能讓我們更好地去認(rèn)識(shí)和使用單片機(jī),矩陣式鍵盤,節(jié)約I/O口資源,引腳分配,實(shí)時(shí)顯示,芯片應(yīng)用,編程實(shí)踐,還有諸如此類的優(yōu)點(diǎn)。</p><p>  然而由于時(shí)間有點(diǎn)緊張,本來想設(shè)計(jì)一個(gè)數(shù)碼管動(dòng)態(tài)掃描電路,或者用液晶屏顯示的電路來顯示按鍵信息,這樣更加清晰,而且還可以顯示其他的東西,比如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論