江西理工大學ARM創新實驗報告——劉迎春_第1頁
江西理工大學ARM創新實驗報告——劉迎春_第2頁
江西理工大學ARM創新實驗報告——劉迎春_第3頁
江西理工大學ARM創新實驗報告——劉迎春_第4頁
江西理工大學ARM創新實驗報告——劉迎春_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、江 西 理 工 大 學ARM創新實驗設計報告題 目:基于ARM2103的鍵盤數碼管顯示數值控制學 院:機電工程學院專 業:自動化班 級: 081學 生:劉迎春學 號:13指導教師:王祖麟 職稱:教授指導教師:溫如春 職稱:副教授目 錄第一章 設計目的第二章 LED擴展電路、鍵盤顯示板原理及原理圖2.1 LED擴展電路概述2.2 鍵盤顯示板2.3 鍵盤顯示板原理圖 第三章 示例程序 3.2 按鍵控制數碼管顯示3.2 定時精確定時數碼顯示管流水燈 第四章 實驗效果 第五章 實驗總結第六章 致謝附錄:段碼數值表參考文獻- 15 - / 17文檔可自由編輯打印第一章 設計目的本設計是有關數碼顯示管的顯

2、示,通過定時器來給定時間長生中斷,將數據傳送到鍵盤顯示板上顯示。微控制器是NXP公司推出的基于ARM7TDMI核的ARM2103,以ZLG(周立功)的EasyARM2103為開發板,選擇容易操作的八段共陰極數碼管顯示組成一個簡易的電子時鐘系統。介紹了ARM的變異平臺ADSV1.2及其操作以及ARM的C語言編程。本次課題實驗,其目的在于進一步鞏固同學們所學的知識,增強在硬件和軟件方面的動手能力,達到理論與時間的相結合,為以后的學習打下一個良好的基礎。 第二章 鍵盤顯示板原理及原理圖2.1 LED擴展電路概述2.11LED擴展電路電路 EasyARM2103 開發板提供了 3 個獨立的按鍵、4 個

3、發光二極管,按鍵與顯示電路如圖2.7所示。當P0 口作為輸入時,內部沒有上拉電阻,需要外接上拉電阻R17、R18、R19。顯示電路中采用灌電流的驅動方式來驅動發光二極管,由于LPC2103 芯片I/O口提供的灌電流大于其拉電流,可以保證了發光二極管的亮度。2.12LED的硬件原理除了鍵盤顯示板之外,LED數碼顯示管與LED液晶顯示器也在人機溝通方面發揮著重要的角色,LED是發光二極管的縮寫,LED里邊有8只二極管,與實驗板ARM2131上邊所接的二級掛管是相同的,分別幾座a, b, c, d, e, f, g, h,dp,其中dp為小數點,每一只發光二極管都有一根電極引到外部引腳上,而另外一只

4、引腳就連接在一起同樣也引到外部引腳上,記作公共端(COM),如圖5-8所示 圖2-1 數碼管引腳圖 圖2-2 數碼管實物圖市面上的常用LED數碼管有兩種,分為共陽極和共陰極。共陽極:當數碼管里面的發光二極管的陽極接在一起作為公共引腳,在正常情況下此引腳接電源正極。當發光二極管的陰極接低電平的時候,發光二極管被點亮,從而相應得數碼管顯示,如圖5-10所示共陰極:當數碼管里面的發光二極管的陰極接在一起作為公共引腳,在正常情況下此引腳接電源正極。當發光二極管的陽極接低電平的時候,發光二極管被點亮,從而相應得數碼管顯示,如圖5-11所示 圖2-3 LED的數碼顯示原理圖5-10 圖5-112.2鍵盤顯

5、示板與數碼管的工作原理 鍵盤顯示板工作原理:鍵盤是由按鍵構成,是單片機系統里最常用的輸入設備。我們可以通過鍵盤輸入數據或命令來實現簡單的人-機通信。 數碼顯示管原理:每個數碼管都有a、b、c、d、e、f、g七個筆劃和一個小數點DP,這八個聯對應二極管陽極,陰極都聯在一起(稱共陰極)。以四位數碼管矩陣為例,四個數碼管的a、b、c、d、e、f、g七個筆劃和一個小數點DP電極分別并聯在一起。當c行高電平,3列低電平,其他行列都為高阻態時,第三個數碼管的c筆劃亮,通過掃描方式在1/20秒內四個數碼管的筆劃該亮的都亮一次,由于視覺暫留,就會看到結果。2.3鍵盤顯示板原理圖 鍵盤顯示板原理圖如圖所示: 圖

6、2-4 鍵盤顯示板原理圖第三章 示例程序3.1 按鍵控制數碼管顯示/* 描述:p0.4為SCK ,p0.5為MISO, p0.6為MOSI*/#include "config.h"uint32 data9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;/*定義段碼*/uint32 ssh8=1,2,3,4,5,6,7,8;uint32 selectable8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;char i=2; /*位碼循環變量*/void delay(uint32 dly)uint3

7、2 i; for(;dly>0;dly-) for(i=0;i<500;i+);/*主函數*/int main(void)int i=0;int whichkey=8;PINSEL0=PINSEL0&(0x03<<8)|(1<<8) &(0x03<<12)|(1<<12);/*設置P0.4和P0.6為SPI*/PINSEL0=PINSEL0&(0x03<<10)|(0x01<<10); /*設置P0.5為MISO */ PINSEL1&=(0X03<<6);IO1DI

8、R|=1<<20;SPI_SPCCR=8;/*設置SPI分頻*/SPI_SPCR=SPI_SPCR&(0<<2) /*每次傳送數據位數由811位設置*/ |(1<<3)/*SCK在第二個時鐘沿采樣*/ |(1<<4) /*SCK為低有效*/ |(1<<5)/*主模式*/ |(0<<6)/*數據傳送高位在先*/ |(0<<7);/*SPI中斷禁止*/ while(1)if(IOPIN&(1<<5)=0) delay(10);whichkey=i; IO1CLR|=1<<20

9、; SPI_SPDR=datawhichkey;/*傳送A(段碼)的內容*/ while(SPI_SPSR&(1<<7)=0);/*等待傳送借結束*/ SPI_SPDR= selectablei;/*傳送B(位碼)的內容*/ while(SPI_SPSR&(1<<7)=0);/*等待傳送結束*/ IO1SET|=1<<20; i=(i+1)%8; delay(30); return 0;/* End Of File*/3.2 定時器精確定時數碼顯示管流水燈 /*Copyright(c)*/* Modified by: 劉迎春* Modifie

10、d date: 2010.11.20* Version: SPI數據傳送* Descriptions:*/#include "config.h"uint32 data9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;/*定義段碼*/uint32 ssh8=1,2,3,4,5,6,7,8;uint32 selectable8=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;int i=0;/定義循環變量void delay(uint32 t) uint32 m; for(;t>0;t-) for

11、(m=0;m>5000;m+);/* 功能:SPI初始化 函數:SPI*/void SPI_Init(void) SPI_SPCCR= 8; SPI_SPCR=SPI_SPCR&(0<<2)/每次傳送8位數據 |(1<<3)/CPHA=0,數據在SCK的第一個跳變沿采樣 |(1<<4)/時鐘為低有效 |(1<<5)/設置為主機 |(0<<6)/數據從高位傳送 |(0<<7);/中斷使能禁止/* 函數:main*/int main (void) int whichkey=8;PINSEL0=PINSEL0&am

12、p;(0x03<<8)|(0x01<<8); /設置P0.4、P0.6為SPI的SCK、MOSI功能 PINSEL0=PINSEL0&(0x03<<10)|(0x01<<10); /P0.5 PINSEL0=PINSEL0&(0x03<<12)|(0x01<<12); PINSEL1=0X00; IO0DIR=1<<16; SPI_Init(); while(1) IO0CLR=1<<16; SPI_SPDR=datasshi; /*傳送A(段碼)的內容*/ while(SPI_SP

13、SR&0x80)=0);/*等待傳送借結束*/ SPI_SPDR=selectablei; /*傳送B(位碼)的內容*/ while(SPI_SPSR&0x80)=0);/*等待傳送結束*/ IO0SET=1<<16; if(IO0PIN&(1<<5)=0) delay(30); whichkey=i; else if(whichkey=i) switch(whichkey) case 0: ssh0+; if(ssh0=9)ssh0=0; break; case 1: ssh1+; if(ssh1=9)ssh1=0; break; case 2

14、: ssh2+; if(ssh2=9)ssh2=0; break; case 3: ssh3+; if(ssh3=9)ssh3=0; break; case 4: ssh4+; if(ssh4=9)ssh4=0; break; case 5: ssh5+; if(ssh5=9)ssh5=0; break; case 6: ssh6+; if(ssh6=9)ssh6=0; break; case 7: ssh7+; if(ssh7=9)ssh7=0; break; whichkey=8; i=(i+1)%8; /*位碼循環*/ delay(500); return 0;第四章 實驗現象實驗現象4

15、.1 從8個8開始,按下一個鍵,數碼管變化一次,從8個0到8個7之間變化。 4.2 數碼顯示管左循環顯示數字09 一秒鐘顯示一個數字 循環6次LED燈亮下。 第五章 實驗總結ARM相對于單片機有相似之處,不過難度相對高一些,是單片機的一個升級,屬于32位處理器,做出的產品功能相對也是比較高端的。在上了大二之后,我在實驗室里開始接觸從流水燈、數碼管、按鍵、動態掃描、驅動繼電器、到活動字幕、液晶、溫度傳感器等這些東西我以前沒接觸過,所以覺得很新鮮,也逐喜歡上了這一專業。總算自己的汗水沒有白流在這次試驗中,我進一步學習了GPIO.定時器中斷.PWM以及SPI.通過這幾天的設計,讓我深刻認識到ARM操

16、作系統的重要性,作為當代的大學生,學會ARM操作真的是很有必要,對自己的未來發展也很有幫助。當然,ARM還可以體現很多其他的價值,例如,一位學習單片機的專業人士轉身學習ARM,他還可以將其利用到單片機中,進行開發研究。這時的軟件沒有操作系統和執行程序的劃分,操作系統就是執行程序,執行程序也就是操作系統。在信息時代,這類人的能力是很難完成手持式設備或其他類似產品的開發的。從這可以看出,ARM逐漸拉近了單片機和PC的距離,使得無論是硬件(單片機)出身的人還是軟件(PC出身的人)都可以搞出大致相似的產品 ,這或許是一場新的知識革命致 謝在這一次的實驗設計中,雖然我盡自己的最大的努力去學,不過由于本身

17、姿勢有限,不免遇到很多的困難和挑戰,但是當時自己并沒有放棄,因為我的同學和溫老師一直在我身邊,在我遇到難題的時候及時給我幫助,耐心的為我講解知識,認真細致為我講解程序,這是我堅持下來的最大動力。同學們不僅在生活上與我和睦相處,在學習上也給予我幫助,我們在一起共同經歷了很多歡樂和難忘的時光,一起在試驗室里埋頭學習,一起挑燈夜戰,是你們祛除了我內心的孤獨,讓我體會到大學的生活是如此的美好,在這里我想說:“有了你們的存在,我的生活更加豐富多彩”,。我知道,在這一次的實驗設計中所取得的成果,也離不開溫教授的耐心指導與鼓勵,溫教授有這相當豐富的教學經驗,為人也十分和藹,不但教會了我們ARM知識,也教會了我們如何做人。未來的道路,我會繼續努力,不斷前進。 附 錄段碼和位碼數值表如下: 表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論