找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5365|回復(fù): 2
收起左側(cè)

MSP430單片機(jī)按鍵測試KEY函數(shù)

[復(fù)制鏈接]
ID:380613 發(fā)表于 2018-7-29 20:25 | 顯示全部樓層 |閱讀模式
MSP430單片機(jī)KEY函數(shù)

單片機(jī)源程序如下:
  1. /********************************************************************
  2. //DM430-L型最小系統(tǒng)板4位獨(dú)立按鍵測試程序,采用查詢模式
  3. //按不同的按鍵,顯示不同的LED燈,具體請看程序
  4. //調(diào)試環(huán)境:EW430 V5.30
  5. //時間:2014.03.01
  6. ********************************************************************/

  7. #include <msp430x14x.h>
  8. #include "Config.h"

  9. uchar key;

  10. //*************************************************************************
  11. //        初始化IO口子程序
  12. //*************************************************************************
  13. void Port_init()
  14. {

  15.   P1SEL = 0x00;                   //P1普通IO功能
  16.   P1DIR = 0xF0;                   //P10~P13輸入模式,外部電路已接上拉電阻
  17.   P6SEL = 0x00;                   //P6口普通IO功能
  18.   P6DIR = 0xFF;                   //P6口輸出模式
  19. }

  20. //**********************************************************************
  21. //        鍵盤掃描子程序,采用逐鍵掃描的方式
  22. //**********************************************************************

  23. uchar Key_Scan(void)
  24. {
  25.   uchar key_check;
  26.   uchar key_checkin;
  27.   key_checkin=KeyPort;                  //讀取IO口狀態(tài),判斷是否有鍵按下
  28.   key_checkin&= 0x0F;                          //讀取IO口狀態(tài),判斷是否有鍵按下
  29.   if(key_checkin!=0x0F)                    //IO口值發(fā)生變化則表示有鍵按下
  30.     {
  31.       delay_ms(20);                          //鍵盤消抖,延時20MS
  32.       key_checkin=KeyPort;
  33.       if(key_checkin!=0x1F)
  34.         {  
  35.           key_check=KeyPort;
  36.           switch (key_check & 0x0F)
  37.             {
  38.               case 0x0E:key=1;break;
  39.               case 0x0D:key=2;break;
  40.               case 0x0B:key=3;break;
  41.               case 0x07:key=4;break;
  42.             }
  43.          
  44.         }
  45.       
  46.    }
  47.   else
  48.    {
  49.      key=0xFF;        
  50.    }
  51.   return key;
  52. }
  53. //*************************************************************************
  54. //                主程序
  55. //*************************************************************************

  56. void main(void)
  57. {     
  58.   WDT_Init();                            //看門狗設(shè)置
  59.   Clock_Init();                          //系統(tǒng)時鐘設(shè)置
  60.   Port_init();                           //系統(tǒng)初始化,設(shè)置IO口屬性
  61.   delay_ms(100);                         //延時100ms
  62.   while(1)
  63.     {
  64.       Key_Scan();                       //鍵盤掃描,看是否有按鍵按下
  65.       if(key!=0xff)                     //如果有按鍵按下,則顯示該按鍵鍵值1~4
  66.         {
  67.           {
  68.             switch(key)
  69.               {
  70.                 case 1: LED8 = 0xFC;break;        //給不同的鍵賦鍵值,鍵值1,亮2個LED燈
  71.                 case 2: LED8 = 0xF3;break;        //給不同的鍵賦鍵值,鍵值2,亮2個LED燈
  72.                 case 3: LED8 = 0xCF;break;         //給不同的鍵賦鍵值,鍵值3,亮2個LED燈
  73.                 case 4: LED8 = 0x3F;break;         //給不同的鍵賦鍵值,鍵值4,亮2個LED燈
  74.               }

  75.           }
  76.        
  77.        }
  78.      else
  79.       {
  80.         //LED=key;                      //沒有按鍵的時候顯示上次的鍵值
  81.       }
  82.     }

  83. }

復(fù)制代碼

所有資料51hei提供下載:
4KEY.rar (21.72 KB, 下載次數(shù): 16)


回復(fù)

使用道具 舉報

ID:195950 發(fā)表于 2018-9-29 15:35 來自手機(jī) | 顯示全部樓層
好資料好好看看
回復(fù)

使用道具 舉報

ID:396470 發(fā)表于 2018-10-13 11:29 | 顯示全部樓層
沒有見過這種
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表