導航:首頁 > 編程語言 > msp430觸摸按鍵程序

msp430觸摸按鍵程序

發布時間:2023-07-12 10:29:53

1. 寫的MSP430的4×4按鍵輸入8個數碼管顯示的程序,調試時發現當改變行掃描順序,結果就不對,詳情如下,求解

會不會是P1.6(也就是第三行)下拉電阻使能的問題,在for循環之前加一句P1REN|=BIT6;
P1OUT|=BIT6;(上拉電阻使能)試試。

2. 求MSP430單片機4X4矩陣鍵盤的中斷掃描程序

//msp430F149 4*4矩陣鍵盤P1口中斷掃描
#include<msp430x14x.h>

#define KEY_DIR P1DIR
#define KEY_OUT P1OUT
#define KEY_IN P1IN
#define KEY_IE P1IE
#define KEY_IES P1IES
#define KEY_IFG P1IFG

/***************全局變數***************/
unsigned char Key_Val; //存放鍵值

void CtrlKey(unsigned char sw); //控制鍵盤開關//sw=0關 sw=1開

/*******************************************
函數名稱:Init_Keypad
功 能:初始化掃描鍵盤的IO埠
參 數:無
返回值 :無
********************************************/
void Init_Keypad(void)
{
KEY_DIR = 0x0f; //P1.0~P1.3設置為輸出狀態,P1.4~P1.7輸入 狀態(上拉H)
KEY_OUT=0;

KEY_IES =0xf0; //P1.4~P1.7允許中斷
KEY_IE =0xf0; //P1.4~P1.7下降沿觸發中斷
KEY_IFG=0; //中斷標志清0

Key_Val = 0;
}

/*******************************************
函數名稱:Check_Key
功 能:掃描鍵盤的IO埠,獲得鍵值
參 數:無
返回值 :無
********************************************/
//p14\5\6\7 接上拉電阻
/***************************************
key_Val 對應鍵值
列:[p14] [p15] [p16] [p17]
↓ ↓ ↓ ↓
行:
[p13]→ 1 2 3 4
[p12]→ 5 6 7 8
[p11]→ 9 10 11 12
[p10]→ 13 14 15 16
***************************************/
void Check_Key(void)
{
unsigned char row ,col,tmp1,tmp2;
unsigned char keymap[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};//設置鍵盤邏輯鍵值

與程序計算鍵值的映射

tmp1 = 0x08;
for(row = 0;row < 4;row++) //行掃描
{
KEY_OUT = 0x0f; //P1.4~P1.7輸出全1
KEY_OUT -= tmp1; //P1.4~p1.7輸出四位中有一個為0
tmp1 >>=1;
if((KEY_IN & 0xf0)<0xf0) //是否P1IN的P1.0~P1.3中有一位為0
{
tmp2 = 0x10; // tmp2用於檢測出哪一位為0
for(col = 0;col < 4;col++) // 列檢測
{
if((KEY_IN & tmp2) == 0x00) // 是否是該列,等於0為是
{
Key_Val = keymap[row*4 + col]; // 獲取鍵值
return; // 退出循環
}
tmp2 <<= 1; // tmp2右移1位
}
}
}
}

/*******************************************
函數名稱:delay
功 能:延時約15ms,完成消抖功能
參 數:無
返回值 :t= tmp*5*clk 根據使用時鍾調整tmp值
********************************************/
void delay(void)
{
unsigned int tmp;

for(tmp = 12000;tmp > 0;tmp--);
}
/*******************************************
函數名稱:Key_Event
功 能:檢測按鍵,並獲取鍵值
參 數:無
返回值 :無
********************************************/
void Key_Event(void)
{
unsigned char tmp;

KEY_OUT =0; // 設置P1OUT全為0,等待按鍵輸入
tmp = KEY_IN; // 獲取 p1IN
if((tmp & 0xf0) < 0xf0) //如果有鍵按下
{
delay(); //消除抖動
Check_Key(); // 調用check_Key(),獲取鍵值
}
}

/*********************************************************************
控制打開或者關閉鍵盤中斷
SW= 0:關閉; ELSE:打開
*********************************************************************/
void CtrlKey(unsigned char sw)
{
if(sw==0)
KEY_IE =0; //關閉埠中斷
else
KEY_IE =0xf0; //打開埠中斷
}

/*埠1按鍵中斷*/
#pragma vector=PORT1_VECTOR
__interrupt void Port(void)
{
if((KEY_IFG&0xf0)!=0)
{
Key_Event();
if(Key_Val!=0) //鍵值!=0有鍵按下
{
CtrlKey(0); //關鍵盤中斷
}
}

KEY_IFG=0;KEY_OUT=0; //清中斷標志
}

3. 跪求msp430f5529的ds18b20的程序

可以應用於能量收集、無線感測以及自動抄表等場合,是最低工作功耗的單片機之一版。MSP430F5529開發板MSP-EXP430F5529是權MSP430F5529單片機的開發平台,由電源選擇開關、RF射頻介面、 microSD card插槽、MSP430F5529晶元及引出引腳、USB介面、JTAG模擬介面、齒輪電位計、電容觸摸按鍵、LED、按鈕、 EZ-FET內置模擬器、102x64點陣LCD和三坐標軸加速度計組成。該開發板將I/O引腳接出來,方便用戶進行實驗操作,既可用於科研開發,又適合實驗教學、課程設計、畢業設計等,為廣大高校師生提供了良好的實驗開發環境,同時也是廣大電子愛好者學習、開發MSP430系列單片機的良好平台。

4. msp430f6638單片機怎麼使一個按鍵按下去三個燈全亮,再按下去全滅

這個和哪種型號的單片機無關,任何單片機都可以完成。
1、先設置一個IO(RD1)口用來版接收你的按鍵信號。
2、再通過權一個IO(RD2)口來控制你的信號燈。
3、從程序中控制,當IO(RD1)口收到第一個按鍵信號(高、低電平時),將IO(RD2)置位,通過電平的變化來控制燈的亮和滅。在程序中記得置標示位啊。

閱讀全文

與msp430觸摸按鍵程序相關的資料

熱點內容
如何從數控編程小白到大師 瀏覽:183
更改微信共享實時位置信息 瀏覽:13
js姓名正則 瀏覽:843
如何利用串口傳輸文件夾 瀏覽:346
jca文件怎麼用word打開 瀏覽:965
U盤文件木馬隱藏exe工具 瀏覽:152
下載優酷app視頻播放器安裝 瀏覽:38
兩個excel文件不同 瀏覽:585
如何更新網站內容 瀏覽:953
什麼網站下載廣場舞是免費的 瀏覽:307
西門子編程軟體怎麼變成中文 瀏覽:984
居客來wifi密碼 瀏覽:604
文件為何為空linux 瀏覽:630
美劇鳥app安裝包在手機哪裡 瀏覽:985
蘋果5s16g升級ios103 瀏覽:850
word紅頭文件中怎麼加雙線 瀏覽:825
切割機用什麼編程 瀏覽:787
文件修訂題目 瀏覽:572
魅族pro5自帶瀏覽器怎麼升級 瀏覽:342
為什麼用數據還是載入慢 瀏覽:171

友情鏈接