• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      發(fā)揮 Proteus 和 Keil 軟件在單片機(jī)教學(xué)中的作用

      2019-09-07 07:13:32張正明王麗娟石建國(guó)電子科技大學(xué)中山學(xué)院
      數(shù)碼世界 2019年9期
      關(guān)鍵詞:相連接管腳數(shù)碼管

      張正明 王麗娟 石建國(guó) 電子科技大學(xué)中山學(xué)院

      1 引言

      單片機(jī)課程是電子信息類專業(yè)必修的專業(yè)課程,是一門綜合性和實(shí)踐性都很強(qiáng)的課程,通過(guò)該課程的學(xué)習(xí),使學(xué)生了解單片機(jī)的基本原理及其應(yīng)用,了解匯編指令功能、編程方法,掌握單片機(jī)應(yīng)用系統(tǒng)的硬件組成,能夠使用C51 語(yǔ)言進(jìn)行軟件開發(fā),培養(yǎng)學(xué)生分析、解決實(shí)際問題的能力。

      在進(jìn)行傳統(tǒng)的理論教學(xué)時(shí),要想課堂教學(xué)安排生動(dòng)、有趣,難度比較大,難以讓學(xué)生看到電路變化、程序變化對(duì)實(shí)驗(yàn)結(jié)果的影響,難有切身感受;在進(jìn)行實(shí)踐教學(xué)時(shí),受教學(xué)場(chǎng)地、設(shè)備數(shù)量和實(shí)驗(yàn)箱產(chǎn)品更新慢等因素的影響,操作靈活性有限。鑒于此,我們?cè)诮虒W(xué)過(guò)程中引入 Proteus 軟件和Keil 軟件,可以方便地在 Proteus 平臺(tái)上中繪制和修改硬件電路圖,加深學(xué)生對(duì)單片機(jī)應(yīng)用系統(tǒng)硬件電路的理解;在 Keil 軟件中編寫和修改相應(yīng)指令,然后在 Proteus 平臺(tái)上進(jìn)行聯(lián)合仿真。

      在虛擬的硬件平臺(tái)上看到程序運(yùn)行的結(jié)果,可以加深學(xué)生對(duì)電路連接和指令功能的理解。這樣,課堂上方便老師演示和講解,實(shí)驗(yàn)課上和課下方便學(xué)生進(jìn)行各種應(yīng)用的設(shè)計(jì),激發(fā)學(xué)生學(xué)習(xí)的興趣和積極性,增強(qiáng)學(xué)習(xí)效果。

      發(fā)揮Proteus 軟件和 Keil 軟件的聯(lián)合應(yīng)用,可以節(jié)約耗材,縮短開發(fā)周期,具有逼真效果。下面以矩陣鍵盤的輸入和數(shù)值顯示為例說(shuō)明該方法的優(yōu)勢(shì)。

      2 4*4 矩陣鍵盤及顯示

      4*4 矩陣鍵盤,共16 個(gè)按鍵,如果連接成獨(dú)立按鍵就需要16 個(gè)IO 管腳,而連接成矩陣鍵盤只需要8 個(gè)IO 管腳,節(jié)省了8 個(gè)管腳,按鍵越多節(jié)省的管腳越多,這就是矩陣鍵盤的優(yōu)點(diǎn),當(dāng)然其缺點(diǎn)就是判斷具體按鍵的過(guò)程要復(fù)雜一下,這是以軟件的復(fù)雜性來(lái)?yè)Q取硬件資源的節(jié)省的。

      在Keil 平臺(tái)上建立工程文件并編輯程序,匯編鏈接產(chǎn)生HEX文件,在Proteus 平臺(tái)上連接電路圖,并在單片機(jī)芯片的屬性中鏈接對(duì)應(yīng)的HEX 文件,即可以運(yùn)行單片機(jī)應(yīng)用系統(tǒng)。

      圖1 4*4 矩陣鍵盤及顯示

      在圖1 中,第0、1、 2、 3 列分別與P1.0、P1.1、 P1.2、 P1.3 相連接,第0、1、 2、 3 行分別與P1.4、 P1.5、P1.6、P1.7 相連接。在程序中可以先對(duì)管腳做適當(dāng)定義,后面的程序就可以只考慮行列位置,而忽略具體管腳。由于采用逐行掃描方式,我們這里只定義列管腳,不定義行管腳。逐行掃描時(shí),只有加到檢查行的信號(hào)為0,而其他行和所有列信號(hào)為1,4 次掃描的輸出信號(hào)我們用4 個(gè)元素的一維數(shù)組output 來(lái)表示。

      sbit COL0=P1^0;

      sbit COL1=P1^1;

      sbit COL2=P1^2;

      sbit COL3=P1^3;

      uchar code output[4]={0xEF,0xDF,0xBF,0x7F};

      我們用一個(gè)函數(shù)getkey( )來(lái)實(shí)現(xiàn)按鍵的讀入和判斷,當(dāng)K0~K15 按下時(shí),函數(shù)返回0-F,如果沒有按鍵按下,函數(shù)返回0xFF。下面就是函數(shù)中的關(guān)鍵程序段。每個(gè)for 循環(huán)都執(zhí)行4 次循環(huán),相應(yīng)地對(duì)4 行按鍵進(jìn)行行掃描判別,i 對(duì)應(yīng)第i 行,然后根據(jù)COL0~3的值判別按鍵列的位置,從而得到按鍵值。

      if(P1= =0x0F)

      result=0xFF;

      else

      {

      for(i=0;i<4;i++)

      {

      P1=output[i];

      if(!COL0) {result=0+4*i;break;}

      else if(!COL1) {result=1+4*i;break;}

      else if(!COL2) {result=2+4*i;break;}

      else if(!COL3) {result=3+4*i;break;}

      }

      }

      有了getkey( )函數(shù),就可以在需要的時(shí)候調(diào)用該函數(shù),讀取按鍵值,并進(jìn)行顯示,下面展示了本程序的主函數(shù)。void main()

      {

      uchar x=0;

      ledtube(x);

      while(1)

      {

      x=getkey();

      if(x!=0xff)

      ledtube(x);

      }

      }

      其中,ledtube(x)函數(shù)把x 值以數(shù)碼管形式顯示出來(lái),這里的數(shù)碼管與P2 口相連接,數(shù)碼管采用共陰極數(shù)碼管。圖1 中顯示的是當(dāng)按鍵K9 按下時(shí)的運(yùn)行情況。

      上例中還可以通過(guò)改變R2 的值,觀察限流電阻的作用,當(dāng)電阻值由51 歐姆變小時(shí)數(shù)碼管亮度增強(qiáng),而當(dāng)電阻值由51 歐姆增大時(shí)數(shù)碼管亮度減弱,電阻增大到120 歐姆時(shí),數(shù)碼管不亮。

      如果以上矩陣鍵盤接線有變化,只需要在定義相應(yīng)的管腳和output 初始化時(shí)做相應(yīng)的修改即可。也可以按列掃描的方法讀取按鍵值。

      3 6*6 矩陣鍵盤及顯示

      圖2 6*6 矩陣鍵盤及顯示

      如果增加按鍵數(shù)量,也可以由以上的程序稍作修改,就可以完成相應(yīng)的任務(wù)。同時(shí)也可以增加獨(dú)立數(shù)碼管的數(shù)量顯示更多的信息。

      圖2 是6*6 矩陣鍵盤的連接圖,為簡(jiǎn)單起見,將列信號(hào)與P1 口相連接,將行信號(hào)與P3 口相連接,再增加一個(gè)數(shù)碼管,通過(guò)修改程序可以實(shí)現(xiàn)36 個(gè)按鍵的讀入和值的顯示。

      兩個(gè)數(shù)碼管分別連接到P0 口和P2 口,但是這時(shí)必須采用共陽(yáng)極數(shù)碼管,同時(shí)在P0 口的管腳處增加了上拉電阻,上拉電阻值為10K歐姆。這是P0 端口在使用時(shí)和其它三個(gè)端口的區(qū)別。所有這些設(shè)置和現(xiàn)象在仿真環(huán)境下可以輕易做到,圖2 是按下K26 時(shí)的運(yùn)行情況。

      4 結(jié)束語(yǔ)

      本文以矩陣鍵盤的讀取和值的顯示為例,介紹了Proteus 軟件和Keil 軟件在單片機(jī)學(xué)習(xí)中的作用,有效利用好這兩個(gè)軟件可以方便介紹電路和指令的作用,提高教學(xué)效果。

      猜你喜歡
      相連接管腳數(shù)碼管
      一種藍(lán)牙轉(zhuǎn)ISM頻段的無(wú)線收發(fā)設(shè)備設(shè)計(jì)
      填數(shù)游戲
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      填數(shù)游戲
      基于圖像處理的異型電子元器件管腳偏移誤差檢測(cè)方法研究
      智能戒指
      CMOS數(shù)字IC管腳電容的估算與測(cè)量
      苍山县| 晋江市| 含山县| 英山县| 海林市| 辛集市| 习水县| 贵州省| 东乌| 庆城县| 雷波县| 宜川县| 周口市| 江源县| 靖宇县| 吉水县| 巴塘县| 天柱县| 兴安县| 廉江市| 吴江市| 会昌县| 区。| 榕江县| 开封市| 宜川县| 陇西县| 射阳县| 饶阳县| 若尔盖县| 三门县| 阳春市| 保定市| 湖口县| 什邡市| 增城市| 精河县| 肇州县| 吉安县| 巴林左旗| 扶沟县|