觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)_第1頁
觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)_第2頁
觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)_第3頁
觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)_第4頁
觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、通信與信息工程學(xué)院2014/2015 學(xué)年 第 1 學(xué)期課程設(shè)計 II 實(shí)驗(yàn)報告模 塊 名 稱 單片機(jī)串行口通信 專 業(yè) 電子信息工程 學(xué) 生 班 級 學(xué) 生 學(xué) 號 學(xué) 生 姓 名 指 導(dǎo) 教 師 設(shè)計題目觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)任務(wù)要求 基本要求:基本要求:AMSP430F5529 單片機(jī)上電后,LCD 液晶顯示“Slide fingers on touch pads” 。B設(shè)計一個在 LCD 上顯示的迷宮圖。用一個符號表示老鼠。 C觸摸 PAD 電容按鍵,控制老鼠移動。帶老鼠走出迷宮。 發(fā)揮部分:發(fā)揮部分:A設(shè)計和之間的串行口通信程序(參考通信實(shí)驗(yàn))和

2、通信協(xié)議,將對應(yīng)的按鍵信息通過 USB 串行口輸出到 PC 機(jī)。 實(shí)驗(yàn)設(shè)備及軟件 計算機(jī);MSP-EXP430F5529 開發(fā)板;IAR 開發(fā)軟件同組人員學(xué)號及姓名參考文獻(xiàn)1 MSP-EXP430F5529開發(fā)板實(shí)驗(yàn)指導(dǎo)書.合肥工業(yè)大學(xué)電氣與自動化工程學(xué)院DSP及MSP430實(shí)驗(yàn)室, 2012年10月.2 MSP430F551x,MSP430F552x Technical Overview. Texas Instruments, 2012.3 王建校,危建國,孫宏濱.MSP430 5xx/6xx 系列單片機(jī)應(yīng)用基礎(chǔ)與實(shí)踐.北京:高等教育出版社,2012.4 彭偉.單片機(jī) C 語言程序設(shè)計實(shí)訓(xùn)

3、100 例基于 8051+Proteus 仿真(第 2 版).北京:電子工業(yè)出版社,2012.目目 錄錄一設(shè)計要求和原理說明1.1 設(shè)計要求1.2 原理說明二系統(tǒng)硬件設(shè)計2.1 2.2 三流程圖設(shè)計3.1 3.2 四程序設(shè)計4.1 4.2 五設(shè)計小結(jié) 單片機(jī)串行口通信單片機(jī)串行口通信一設(shè)計要求和原理說明一設(shè)計要求和原理說明1.11.1 設(shè)計要求設(shè)計要求觸摸按鍵控制老鼠走迷宮應(yīng)用實(shí)驗(yàn)基本要求:AMSP430F5529 單片機(jī)上電后,LCD 液晶顯示“Slide fingers on touch pads” 。B設(shè)計一個在 LCD 上顯示的迷宮圖。用一個符號表示老鼠。C觸摸 PAD 電容按鍵,控制

4、老鼠移動。帶老鼠走出迷宮。 發(fā)揮部分:A設(shè)計和之間的串行口通信程序(參考通信實(shí)驗(yàn))和通信協(xié)議,將對應(yīng)的按鍵信息通過 USB 串行口輸出到 PC 機(jī)。 正文小四號宋體1.21.2 原理說明原理說明二系統(tǒng)硬件設(shè)計二系統(tǒng)硬件設(shè)計2.12.1 2.22.2 三流程圖設(shè)計三流程圖設(shè)計3.13.1 3.23.2 四程序設(shè)計四程序設(shè)計4.14.1 主程序#include #include msp430.h#include HAL_PMM.h#include HAL_UCS.h#include HAL_Board.h#include HAL_Buttons.h#include HAL_Cma3000.h#in

5、clude HAL_Dogs102x6.h#include HAL_Menu.h#include HAL_Wheel.h#include LPM.h#include PMM.h#include lab2.huint16_t timeoutCounter;void migong()Dogs102x6_horizontalLineDraw(16, 86, 1, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(23, 30, 8, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(37, 7

6、9, 8, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(16, 30, 15, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(58, 86, 15, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(23, 44, 22, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(51, 79, 22, DOGS102x6_DRAW_NORMAL);Dogs102x6_horiz

7、ontalLineDraw(16, 37, 29, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(44, 51, 29, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(65, 86, 29, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(23, 44, 36, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(51, 58, 36, DOGS102x6_DRAW_NOR

8、MAL);Dogs102x6_horizontalLineDraw(65, 79, 36, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(16, 23, 43, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(37, 86, 43, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(23, 79, 50, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(16, 65, 57

9、, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(79, 86, 57, DOGS102x6_DRAW_NORMAL);Dogs102x6_horizontalLineDraw(16, 86, 64, DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(1, 29, 16,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(36, 64, 16,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw

10、(29, 36, 23,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(1, 8, 30,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(36, 50, 30,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(15, 36, 44,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(8, 22, 51,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDr

11、aw(22, 36, 58,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(36, 43, 65,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(57, 64, 72,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(1, 8, 79,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLineDraw(1, 15, 86,DOGS102x6_DRAW_NORMAL);Dogs102x6_verticalLine

12、Draw(22, 64, 86,DOGS102x6_DRAW_NORMAL);void main(void) uint8_t contrast = *(unsigned char *)contrastSetpointAddress); /讀取 FLASH 中對比度值 uint8_t brightness = *(unsigned char *)brightnessSetpointAddress); /讀取 FLASH 中背光值 / Initialize accelerometer offset from flash Cma3000_setAccel_offset(*(unsigned char

13、 *)accelXcalibrationAddress), /初始化加速度偏移量 *(unsigned char *)accelYcalibrationAddress), *(unsigned char *)accelZcalibrationAddress); / Stop WDT WDTCTL = WDTPW + WDTHOLD; /關(guān)閉看門狗 / Basic GPIO initialization Board_init(); /初始化 GPIO / Set Vcore to accomodate for max. allowed system speed SetVCore(3); /設(shè) V

14、Core 為最大 / Use 32.768kHz XTAL as reference LFXT_Start(XT1DRIVE_0); /利用LFXT1(32.768kHZ)作為時鐘參考 / Set system clock to max (25MHz) Init_FLL_Settle(25000, 762); /利用 FLL(鎖頻環(huán))將系統(tǒng)時鐘設(shè)為最大25MHZ SFRIFG1 = 0; /清中斷標(biāo)志 SFRIE1 |= OFIE; /使能晶振失效中斷 / Globally enable interrupts _enable_interrupt(); /使能全局中斷 / Setup real

15、time clock /SetupRTC(); /設(shè)置實(shí)時時鐘 / Set up LCD Dogs102x6_init(); /初始化 LCD Dogs102x6_backlightInit(); /背光初始化 / Contrast not programed in Flash Yet if (contrast = 0 xFF) /若當(dāng)前 FLASH 中無對比度值,則將對比度值設(shè)為11(默認(rèn)) / Set Default Contrast contrast = 11; / Brightness not programed in Flash Yet if (brightness = 0 xFF)

16、 /若當(dāng)前 FLASH 中無背光值,則將背光值設(shè)為11(默認(rèn)) / Set Default Brightness brightness = 11; Dogs102x6_setBacklight(brightness); /設(shè)置初始背光值 Dogs102x6_setContrast(contrast); /設(shè)置初始對比度值 Dogs102x6_clearScreen(); /清屏 / Set up wheel Wheel_init(); /初始化齒輪電位計 Buttons_init(BUTTON_ALL); /初始化按鍵 Buttons_interruptEnable(BUTTON_ALL);

17、/使能所有按鍵中斷 buttonsPressed = 0; /鍵值清零 /顯示“Slide fingers on touch pads” Dogs102x6_stringDraw(1, 0, Slide Finger on , DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(2, 0, Touch Pads , DOGS102x6_DRAW_NORMAL); / Wait for button press while (!buttonsPressed) /等待按鍵被按下,或者超時退出等待 for (timeoutCounter = 0; timeout

18、Counter 0 xFFFF; timeoutCounter+) if (buttonsPressed) break; _delay_cycles(1000); /Timeout break break; /超時退出 Dogs102x6_clearScreen(); / 顯示迷宮 migong(); /字符 Dogs102x6_charDrawXY(87, 16, s,DOGS102x6_DRAW_NORMAL); / 主循環(huán) while (1) lab2(); /試驗(yàn)二程序 4.2 void lab2(void) uint8_t sliderPosition = 0; TI_CAPT_Init_Baseline(&slider); /觸摸按鍵初始化 sliderPosition = TI_CAPT_Slider(&slider); sliderPosition = (sliderPosition + 10) / 20; /得到觸摸按鍵位置 /根據(jù)按鍵執(zhí)行操作 switch (sliderPosition) case 1: Dogs102x6_clearScreen(); / 顯示迷宮 migong2(); /字符 Dogs102x6_charDrawXY(x-, y, s,DOGS102x6_DRAW_NORMAL); break;

溫馨提示

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

評論

0/150

提交評論