東南大學MCU第五六次實驗_第1頁
東南大學MCU第五六次實驗_第2頁
東南大學MCU第五六次實驗_第3頁
東南大學MCU第五六次實驗_第4頁
東南大學MCU第五六次實驗_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、東南大學自動化學院實 驗 報 告課程名稱: MCU技術(shù)及課程設(shè)計 第 三 次實驗實驗五:鍵盤掃描實驗實驗六:ADC 模數(shù)轉(zhuǎn)換院 (系): 自動化 專 業(yè): 自動化 姓 名: 學 號: 實 驗 室: 實驗組別: 同組人員: 實驗時間: 2015年 5 月 14日評定成績: 審閱教師: 實驗五 鍵盤掃描實驗一 實驗目的和要求1. 實驗目的不論在任何機器上,輸入永遠是一個永恒的問題,有了輸入才能讓控制器按要求發(fā)出相應的控制指令,達到相應的控制效果,本次實驗將會介紹實驗箱上自帶鍵盤的輸入內(nèi)容。2. 實驗要求 按下目標板KeyBoard上的按鍵,最右邊的LED數(shù)碼管顯示對應數(shù)字。二 實驗原理(1) 矩陣

2、鍵盤的讀取如圖 5-1 所示,該鍵盤為 8*3bit。圖 5-1 矩陣鍵盤讀取示意圖一旦有按鍵按下,TM1638 中相關(guān)的寄存器的值就會改變(按鍵按下時相應字節(jié)由 0 變1),具體對應關(guān)系如圖 5-2 所示。(鍵盤不全,沒有加、減、等于、AC 等幾個鍵)圖 5-2 按鍵對應關(guān)系圖MSP430f6638 試驗箱按鍵對應關(guān)系為圖 5-3 所示。圖 5-3 MSP430f6638 試驗箱按鍵對應關(guān)系圖圖 5-3 MSP430f6638 試驗箱按鍵對應關(guān)系圖 注意: 1) 鍵盤用坐標形式表示,空白位表示本開發(fā)板暫未用到。2) TM1638 最多可以讀 4 個字節(jié),不允許多讀。讀數(shù)據(jù)字節(jié)只能按順序從BY

3、TE1-BYTE4 讀取,不可跨字節(jié)讀。例如:硬件上的 K2 與 KS8 對應按鍵按下時,此時想要讀到此按鍵數(shù)據(jù),必須需要讀到第 4 個字節(jié)的第 5BIT 位,才可讀出數(shù)據(jù)。 3) 當 K1 與 KS8,K2 與 KS8,K3 與 KS8 三個按鍵同時按下時,此時 BYTE4所讀數(shù)據(jù)的 B4,B5,B6 位均為 1。 4) 組合鍵只能是同一個KS,不同的K引腳才能做組合鍵;同一個K與不同的KS引腳不可以做成組合鍵使用。5) 例如:如果 Keyboard 的按鍵1按下,根據(jù)圖 5-3,我們可以從讀取按鍵值,程序?qū)崿F(xiàn)參考:unsigned char c4; /對應BYTE1-BYTE4 unsig

4、ned int key_value=0x00; /暫存TM1638讀取的按鍵值 unsigned int i; STB_high; STB_low; TM1638_Write(0x42); /寫地址 _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); /讀取按鍵值 STB_high; if(c0&BIT2) /根據(jù)圖5-3判斷讀取的按鍵 key_value |= BIT1; /如果是,則判斷為按鍵1按下 下面給出 TM1638.c 中 read_key 主體函數(shù),編寫自己的 main 函數(shù)調(diào)用read_key 來實現(xiàn)所需功能。 unsigned cha

5、r Read_key(void) unsigned char c4; unsigned int key_value=0x00; unsigned int i; STB_high; STB_low; TM1638_Write(0x42); _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); STB_high; if(c0&BIT2) key_value |= BIT1; else if(c0&BIT6) key_value |= BIT4; else if /此處編寫對應按鍵關(guān)系判斷 for(i=0;i16;i+) if(0x01i)=key_value

6、) break; return i; 三 實驗方案與實驗步驟1. 實驗流程圖2. 實驗步驟(1) 將PC與開發(fā)板相連;(2) 建立CCS工程;(3) 選擇對該工程進行編譯鏈接,生成.out 文件。然后選擇 ,將程序下載到實驗板中。程序下載完畢之后,可以選擇全速運行程序,也可以選擇單步調(diào)試程序,選擇 F3 查看具體函數(shù)。也可以程序下載之后,按下,軟件界面恢復到原編輯程序的畫面。再按下實驗板的復位鍵,運行程序。四 實驗設(shè)備與器材配置德研電科 MSP430F6638 單片機 上海德研電子科技有限公司 Code Composer Studio (CCStudio)集成開發(fā)環(huán)境 上海德研電子科技有限公司

7、五 實驗記錄顯示數(shù)字: 顯示字母: 按下”AC”+”-”=”時點亮LED燈:六 實驗總結(jié)實驗最初版代碼并不能保持數(shù)字的顯示,即按下鍵盤上的數(shù)字時,數(shù)碼管顯示,手松開時,數(shù)碼管顯示”0”,后在代碼中加入延遲后解決該問題,程序能夠順利運行。七 附上源代碼#include #include TM1638.hconst uint8_t Num16=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;/段碼const uint8_t Addr8=0x08,0X0a,0X0c,0X0e,0X00,0

8、X02,0X04,0X06;/地址const uint8_t Key20=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13;/0-9,a-f,+,-,=,ACint read_key(void);/只顯示一個數(shù)碼管void main(void) WDTCTL = WDTPW + WDTHOLD;/ Stop watchdog timer P4DIR |= BIT4+BIT5+BIT6;/+,-,=,ac P4OUT &= 0X87; P3DIR

9、|= BIT2+BIT4+BIT5; init_TM1638(); int key_value=0; int key_value_p=0; int i=0; while(1) key_value=read_key(); for(i=0;i20;i+) if(key_value=Keyi) key_value=i; if(key_value=0) Write_DATA(Addr7,Numkey_value); if(key_value=0x20) Write_DATA(Addr7,Numkey_value_p); switch (key_value) case 16:P4OUT &= 0X87;

10、P4OUT |= BIT4;break;/+ case 17:P4OUT &= 0X87;P4OUT |= BIT5;break;/- case 18:P4OUT &= 0X87;P4OUT |= BIT6;break;/= case 19:P4OUT &= 0X87;P4OUT |= BIT6+BIT5+BIT4;break;/AC default:P4OUT &= 0X87;break; if(key_value!=0x20) key_value_p=key_value; 實驗六 ADC 模數(shù)轉(zhuǎn)換一 實驗目的和要求1. 實驗目的在 MSP430 的實時控制和智能儀表等應用系統(tǒng)中,控制或測量

11、對象的有關(guān)變量,往往是一些連續(xù)變化的模擬量,如溫度、壓力、流量、速度等物理量。利用傳感器把各種物理信號測量出來,轉(zhuǎn)換為電信號,經(jīng)過模數(shù)轉(zhuǎn)換(ADC)變成數(shù)字量,這樣才能被MSP430處理和控制。本實驗通過ADC將電位器的變化實時顯示在 LED 上。 (1) 掌握ADC的基本原理和編程方式。 (2) 熟練應用MSP430F6638的ADC12模塊及其4種工作模式。 (3) 了解單片機如何進行數(shù)據(jù)采集。2. 實驗要求 (1) 調(diào)節(jié)電位器,觀察實驗板上的 LED 數(shù)碼管顯示。隨著電位器的轉(zhuǎn)動,LED 數(shù)碼管實時顯示電位器電壓的轉(zhuǎn)換值。采用ADC中斷方式實現(xiàn)。 (2) 輸入模擬電壓的轉(zhuǎn)換結(jié)果滿足公式:

12、 NADC=4095(Vin VR-)/(VR+ - VR-)。 (3) 本實驗推薦使用萬用表,觀察電位計中間引腳對地電壓。 (4) 為了增強轉(zhuǎn)換結(jié)果的穩(wěn)定性,采用均值濾波的方法,即某一時刻的電壓值采用該時刻位置前推n個采樣值的均值來表示,而不是直接用當前的采樣值。本實驗中推薦n=8.二 實驗原理(1) 實驗板主控芯片MSP430F6638的ADC12模數(shù)轉(zhuǎn)換模塊支持12位精度模數(shù)轉(zhuǎn)換,主要由具有采樣與保持功能的12位轉(zhuǎn)換器內(nèi)核、采樣選擇控制、參考電壓發(fā)生器以及16個字轉(zhuǎn)換控制緩沖區(qū)組成。(2) ADC12提供4種轉(zhuǎn)換模式,分別是單通道單次轉(zhuǎn)換、序列通道多次轉(zhuǎn)換、單通道多次轉(zhuǎn)換、序列通道多次轉(zhuǎn)

13、換。(3) ADC12轉(zhuǎn)換器使用流程1.設(shè)置轉(zhuǎn)換模式。2.輸入模擬信號。3.選擇啟動信號。4.關(guān)注轉(zhuǎn)換結(jié)束信號。5.存放轉(zhuǎn)換數(shù)據(jù)以及采用查詢或者中斷方式讀取數(shù)據(jù)。(4) ADC的中斷向量和中斷機制ADC12是一個多源中斷:有18個中斷標志(ADC12IFG0ADC12IFG15與ADC12TOV,ADC12OV),但是只有一個中斷向量,這18個中斷標志的優(yōu)先級順序與對應的中斷向量值見表6-1。表 6-1 ADC12 個中斷標志位對應的 ADC12IV 值優(yōu)先級順序從高到低依次為:數(shù)據(jù)溢出標志ADC12OVIFG,時間溢出中斷標志ADC12TOVIFG,轉(zhuǎn)換存儲器的標志ADC12IFG0,ADC

14、12IFG1ADC12IFG15。各中斷標志將產(chǎn)生一個036的偶數(shù),0表示沒有中斷或沒有中斷標志位置位;其他數(shù)字(236)對應于相應中斷標志位。其中ADC12OVIFG和ADC12TOIFG會自動復位,ADC12IFGx需在用戶軟件中復位,或通過訪問對應轉(zhuǎn)換存儲器ADC12MEMx的標志位自動復位。(5) ADC12模塊的硬件電路結(jié)構(gòu)如圖6-1所示,開發(fā)板接口位置如圖6-2所示,其中P6.6為ADC采樣的輸入信號,該接口已經(jīng)連接到電位計輸出口,我們可以通過開發(fā)板上TP16進行觀察測試。圖 6-1 ADC12模塊硬件電路圖相關(guān)引腳定義:圖6-2 開發(fā)板上ADC模塊接口三 實驗方案與實驗步驟1.

15、實驗流程圖2. 實驗步驟(1) 將PC與開發(fā)板相連;(2) 建立CCS工程;(3) 選擇對該工程進行編譯鏈接,生成.out 文件。然后選擇 ,將程序下載到實驗板中。程序下載完畢之后,可以選擇全速運行程序,也可以選擇單步調(diào)試程序,選擇 F3 查看具體函數(shù)。也可以程序下載之后,按下,軟件界面恢復到原編輯程序的畫面。再按下實驗板的復位鍵,運行程序。四 實驗設(shè)備與器材配置德研電科 MSP430F6638 單片機 上海德研電子科技有限公司 Code Composer Studio (CCStudio)集成開發(fā)環(huán)境 上海德研電子科技有限公司五 實驗記錄轉(zhuǎn)動電位器,數(shù)碼管顯示不同數(shù)值(最小為0,最大為2.4

16、99): 六 實驗總結(jié)程序能夠順利運行。七 思考題或討論題(1) ADC的參考電壓如何進行選擇?(2) ADC的四種工作狀態(tài)有何異同? (3) ADC的中斷機制如何實現(xiàn)? (4) 本文的編程涉及到整數(shù)的顯示問題,如何在 LED 上一位位顯示? 提示:采用除 10 取余數(shù)的方法,例如 2048,則有 Num0 = 2048 % 10 = 8; Num1 = (2048 / 10) % 10 = 4; Num2 = (2048/ 100) % 10 = 0; Num2 = (2048/ 1000) % 10 = 2; 然后顯示 2,0,4,8 四個數(shù)字即可。 (5) 如何啟動轉(zhuǎn)換?如何判斷轉(zhuǎn)換是否

17、結(jié)束? (6) ADC 采樣時,采用此前時刻多個采樣值的平均值作為當前值,即均值濾波方法的意義何在?八 附上源代碼#include #include TM1638.hunsigned int result;unsigned int Val4;int i;int temp = 0;double tmp;int ind = 0;const uint8_t Num16 = 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71; /段碼const uint8_t Ad

18、dr8 = 0x08, 0x0a, 0x0c, 0x0e, 0x00, 0x02, 0x04, 0x06; /地址void main(void)WDTCTL = WDTPW+WDTHOLD; / Stop WDTP3DIR |= BIT2 + BIT4;init_TM1638();P6SEL |= BIT6;ADC12CTL0 = ADC12ON + ADC12SHT0_2 + REFON + ADC12REF2_5V;ADC12CTL1 = ADC12SHP;ADC12MCTL0 = ADC12SREF_0 + ADC12INCH_6;/ADC12IE = BIT6;for (i = 0;i 0x3600; +i);ADC12CTL0 |= ADC12ENC;ADC12IFG &= BIT6;/_BIS_SR(LPM0_bits + GIE);while (1)ADC12CTL0 |= ADC12SC;while (ADC12IFG) = 0);temp += ADC12MEM0;ind +=

溫馨提示

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

評論

0/150

提交評論