基于MSP430的多路搶答器設計_第1頁
基于MSP430的多路搶答器設計_第2頁
基于MSP430的多路搶答器設計_第3頁
基于MSP430的多路搶答器設計_第4頁
基于MSP430的多路搶答器設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設計報告多路搶答器的設計November, 2011 學號: 姓名: 組員 目錄1 概述 1.1 簡介.3 1.2 硬件簡介.32 MSP部分模塊原理圖 2.1 主芯片電路.4 2.2 4*4矩陣鍵盤.4 2.3 復位電路.5 2.4 數(shù)碼管電路.5 2.5 液晶顯示控制電路.6 2.6 蜂鳴器.73 軟件設計 3.1 實驗程序.74 調(diào)試 4.1 程序設計.13 4.2 調(diào)試中出現(xiàn)的問題.135 實驗總結(jié)與展望.13概述簡介本作品以MSP430為主要模塊、數(shù)碼管和液晶作為顯示模塊。本搶答器主要是通過16個按鍵開關來十六路選手的搶答,開始鍵按下,則進入到十六個按鍵的掃描中,同時顯示倒計時時

2、間.同時該搶答器還有時間的遞減、清零、超時報警功能;通過液晶來顯示搶答選手的號數(shù)。本作品造價便宜,硬件比較簡單。關鍵字:MSP430,搶答器,顯示1.2 硬件簡介MSP430系列單片機是一種16位超低 功耗、具有)的混合信號處理器(Mixed Signal Processor)。稱之為混合信號處理器,是由于其針對實際應用需求,將多個不同功能的模塊和集成在一個芯片上,以提供“單片”解決方案。MSP430單片機的特點:1、 運算速度快2、 超低功耗3、 片內(nèi)資源豐富4、 方便高效的開發(fā)環(huán)境2 MSP430部分模塊原理圖2.1 主芯片電路2.2 4*4矩陣鍵盤2.3 復位電路2.4 數(shù)碼管電路2.5

3、 液晶顯示控制電路2.6 蜂鳴器3 軟件設計/數(shù)碼管7位段碼:0-funsigned char scandata16 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/顯示緩存unsigned char Dispbuf2;/引用外部變量的聲明extern unsigned char key_Pressed; extern unsigned char key_val; extern unsigned char key_Flag;#include <msp430x14x.h&

4、gt;typedef unsigned char uchar;typedef unsigned int uint;/*全局變量*/uchar key_Pressed; /按鍵是否被按下:1-是,0-否uchar key_val; /存放鍵值uchar key_Flag; /按鍵是否已放開:1-是,0-否/設置鍵盤邏輯鍵值與程序計算鍵值的映射uchar key_Map = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;/*函數(shù)名稱:Init_Keypad功 能:初始化掃描鍵盤的IO端口參 數(shù):無返回值 :無*/void Init_Keypad(void) P1DI

5、R = 0xf0; /P1.0P1.3設置為輸入狀態(tài), P1.4P1.7設置為輸出狀態(tài) P1OUT |= 0xf0; / P1.4P1.7輸出高電平 key_Flag = 0; key_Pressed = 0; key_val = 0;/* Check_Key(),檢查按鍵,確認鍵值*/*函數(shù)名稱:Check_Key功 能:掃描鍵盤的IO端口,獲得鍵值參 數(shù):無返回值 :無*/void Check_Key(void) uchar row ,col,tmp1,tmp2; tmp1 = 0x80; for(row = 0;row < 4;row+) /行掃描 P1OUT = 0xf0; /P

6、1.4P1.7輸出全1 P1OUT -= tmp1; /P1.4p1.7輸出四位中有一個為0 tmp1 >>=1; if (P1IN & 0x0f) < 0x0f) /是否P1IN的P1.0P1.3中有一位為0 tmp2 = 0x01; / tmp2用于檢測出那一位為0 for(col = 0;col < 4;col+) / 列檢測 if(P1IN & tmp2) = 0x00) / 是否是該列,等于0為是 key_val = key_Maprow * 4 + col; / 獲取鍵值 return; / 退出循環(huán) tmp2 <<= 1; /

7、tmp2右移1位 /*函數(shù)名稱:delay功 能:延時約15ms,完成消抖功能參 數(shù):無返回值 :無*/void delay() uint tmp; for(tmp = 12000;tmp > 0;tmp-);void DELAY() double tmp; for(tmp=2800;tmp>0;tmp-);/*函數(shù)名稱:Key_Event功 能:檢測按鍵,并獲取鍵值參 數(shù):無返回值 :無*/void Key_Event(void) uchar tmp; P1OUT &= 0x00; / 設置P1OUT全為0,等待按鍵輸入 tmp = P1IN; / 獲取 p1IN if

8、(key_Pressed = 0x00)&&(tmp & 0x0f) < 0x0f) /如果有鍵按下 key_Pressed = 1; / 如果有按鍵按下,設置key_Pressed標識 delay(); /消除抖動 Check_Key(); / 調(diào)用check_Key(),獲取鍵值 else if (key_Pressed = 1)&&(tmp & 0x0f) = 0x0f) /如果按鍵已經(jīng)釋放 key_Pressed = 0; / 清除key_Pressed標識 key_Flag = 1; / 設置key_Flag標識 else _NO

9、P(); #include <msp430x14x.h>#include "cry1602.h"typedef unsigned char uchar;typedef unsigned int uint;/*宏定義*/#define DataDir P4DIR#define DataPort P4OUT#define Busy 0x80#define CtrlDir P3DIR#define CLR_RS P3OUT&=BIT0; /RS = P3.0#define SET_RS P3OUT|=BIT0;#define CLR_RW P3OUT&

10、=BIT1;/RW = P3.1#define SET_RW P3OUT|=BIT1;#define CLR_EN P3OUT&=BIT2;/EN = P3.2#define SET_EN P3OUT|=BIT2;/*函數(shù)名稱:DispStr功 能:讓液晶從某個位置起連續(xù)顯示一個字符串參 數(shù):x-位置的列坐標 y-位置的行坐標 ptr-指向字符串存放位置的指針返回值 :無*/void DispStr(uchar x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != '0'

11、) n+; /計算字符串有效字符的個數(shù) for (i=0;i<n;i+) Disp1Char(x+,y,tempi); if (x = 0x0f) x = 0; y = 1; /*函數(shù)名稱:DispNchar功 能:讓液晶從某個位置起連續(xù)顯示N個字符參 數(shù):x-位置的列坐標 y-位置的行坐標 n-字符個數(shù) ptr-指向字符存放位置的指針返回值 :無*/void DispNChar(uchar x,uchar y, uchar n,uchar *ptr) uchar i; 4 調(diào)試4.1 程序設計 對于MSP430我們并不是很熟悉,在編程時對于MSP430的各功能模塊、寄存器的使用不了解,

12、要先查找相應資料,在編程中遇到了很多問題。4.2 調(diào)試中出現(xiàn)的問題(1) 數(shù)碼管不能正常倒計時 在程序調(diào)試時發(fā)現(xiàn),數(shù)碼管倒計時不正常,數(shù)字顯示的位置也經(jīng)常移位,對于這個問題我們再次檢查了數(shù)據(jù)線的連接,后發(fā)現(xiàn)是數(shù)據(jù)線的輸入端、輸出端的連接錯誤。(2) 搶答者號碼顯示不穩(wěn)定 開始選用中斷方式,當兩個選手按鍵時間間隔很短時,不能正常顯示,后選用查詢方式,可避免此類問題。5 實驗總結(jié)與展望 本次課程設計將理論與實踐有機地結(jié)合,鍛煉了我們對知識的綜合運用以及創(chuàng)新設計思維能力。對于課程題目多路搶答器,一開始還沒有頭緒,我們這組都沒參加過電子設計大賽的培訓,不會運用所學知識進行有效設計,但通過上網(wǎng)查閱各種類

13、似的設計,查閱芯片的功能模塊,確定基本設計方案,又通過仿真驗證試驗方案的可實行性。通過這次實驗讓我們認識到:1、 設計思路是整個設計的靈魂 拿到每個課題能有一個非常清晰的設計思路是至關重要的。只有對課題的充分理解,各芯片的熟練掌握,才能為后續(xù)的設計工作提供扎實的基礎。翻閱各種資料,上網(wǎng)查詢填補知識的空缺是必要的。2、 調(diào)試 調(diào)試是個精細的工作,在調(diào)試過程中,線路連接錯誤、芯片本身損壞、程序的缺陷等問題的排查需要耐心。3、 不足 我們的作品只是大概的展示了一下?lián)尨鹌鞯墓ぷ餍问剑瑢τ诩毠?jié)方面并沒有做得很完善,例如如何為主持人單獨設置一個控制鍵,數(shù)碼管上顯示倒計時的位置要更精確等。有時對于不算很復雜的程序,我們要研究很久,有時三節(jié)課下來也沒有頭緒,實驗效率不是很高。4、

溫馨提示

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

評論

0/150

提交評論