欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
MSP430F149單片機按鍵控制+1602lcd顯示程序
[打印本頁]
作者:
阿嚏嚏
時間:
2022-4-27 17:38
標(biāo)題:
MSP430F149單片機按鍵控制+1602lcd顯示程序
單片機源程序如下:
/********************************************************************
//DM430-L型最小系統(tǒng)板4位獨立按鍵測試程序,采用查詢模式,鍵值顯示到1602液晶
//按四個按鍵S1到S4,分別對應(yīng)1,2,3,4
//調(diào)試環(huán)境:EW430 V5.30
********************************************************************/
#include <msp430x14x.h>
#include "Config.h"
#include "1602.c"
uchar key;
//*************************************************************************
// 初始化按鍵IO口子程序
//*************************************************************************
void KeyPort_init()
{
P1SEL = 0x00; //P1普通IO功能
P1DIR = 0xF0; //P10~P13輸入模式,外部電路已接上拉電阻
P6SEL = 0x00; //P6口普通IO功能
P6DIR = 0xFF; //P6口輸出模式
}
//**********************************************************************
// 鍵盤掃描子程序,采用逐鍵掃描的方式
//**********************************************************************
uchar Key_Scan(void)
{
uchar key_check;
uchar key_checkin;
key_checkin=KeyPort; //讀取IO口狀態(tài),判斷是否有鍵按下
key_checkin&= 0x0F; //讀取IO口狀態(tài),判斷是否有鍵按下
if(key_checkin!=0x0F) //IO口值發(fā)生變化則表示有鍵按下
{
delay_ms(20); //鍵盤消抖,延時20MS
key_checkin=KeyPort;
if(key_checkin!=0x1F)
{
key_check=KeyPort;
switch (key_check & 0x0F)
{
case 0x0E:key=1;break;
case 0x0D:key=2;break;
case 0x0B:key=3;break;
case 0x07:key=4;break;
}
}
}
else
{
key=0xFF;
}
return key;
}
//***********************************************************************
// 鍵值顯示程序
//***********************************************************************
void LCD_DisplayKey(uchar keynum)
{
LCD_write_char(0x0e,1,0x30+keynum);
}
//*************************************************************************
// 主程序
//*************************************************************************
void main(void)
{
WDT_Init(); //看門狗設(shè)置
Clock_Init(); //系統(tǒng)時鐘設(shè)置
Port_init(); //系統(tǒng)初始化,設(shè)置IO口屬性
delay_ms(100); //延時100ms
LCD_init(); //液晶參數(shù)初始化設(shè)置
LCD_clear(); //清屏
LCD_Desk();
KeyPort_init(); //按鍵IO口初始化,設(shè)置IO口屬性
delay_ms(100); //延時100ms
while(1)
{
Key_Scan(); //鍵盤掃描,看是否有按鍵按下
if(key!=0xff) //如果有按鍵按下,則顯示該按鍵鍵值1~4
{
{
switch(key)
{
case 1: LED8 = 0xFC;LCD_DisplayKey(1);break; //給不同的鍵賦鍵值,鍵值1,亮2個LED燈
case 2: LED8 = 0xF3;LCD_DisplayKey(2);break; //給不同的鍵賦鍵值,鍵值2,亮2個LED燈
case 3: LED8 = 0xCF;LCD_DisplayKey(3);break; //給不同的鍵賦鍵值,鍵值3,亮2個LED燈
case 4: LED8 = 0x3F;LCD_DisplayKey(4);break; //給不同的鍵賦鍵值,鍵值4,亮2個LED燈
}
}
}
else
{
//LED=key; //沒有按鍵的時候顯示上次的鍵值
}
}
}
復(fù)制代碼
代碼下載:
4KEY_1602.7z
(21.75 KB, 下載次數(shù): 16)
2022-4-27 19:40 上傳
點擊文件名下載附件
按鍵
作者:
wsqr
時間:
2022-6-15 09:16
對我很有幫助
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1