欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: MSP430F149單片機按鍵控制+1602lcd顯示程序 [打印本頁]

作者: 阿嚏嚏    時間: 2022-4-27 17:38
標(biāo)題: MSP430F149單片機按鍵控制+1602lcd顯示程序
單片機源程序如下:
  1. /********************************************************************
  2. //DM430-L型最小系統(tǒng)板4位獨立按鍵測試程序,采用查詢模式,鍵值顯示到1602液晶
  3. //按四個按鍵S1到S4,分別對應(yīng)1,2,3,4
  4. //調(diào)試環(huán)境:EW430 V5.30
  5. ********************************************************************/
  6. #include <msp430x14x.h>
  7. #include "Config.h"
  8. #include "1602.c"

  9. uchar key;

  10. //*************************************************************************
  11. //        初始化按鍵IO口子程序
  12. //*************************************************************************
  13. void KeyPort_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 LCD_DisplayKey(uchar keynum)
  57. {   
  58.   LCD_write_char(0x0e,1,0x30+keynum);
  59. }

  60. //*************************************************************************
  61. //                主程序
  62. //*************************************************************************

  63. void main(void)
  64. {     
  65.   WDT_Init();                         //看門狗設(shè)置
  66.   Clock_Init();                       //系統(tǒng)時鐘設(shè)置
  67.   Port_init();                        //系統(tǒng)初始化,設(shè)置IO口屬性
  68.   delay_ms(100);                      //延時100ms
  69.   LCD_init();                         //液晶參數(shù)初始化設(shè)置
  70.   LCD_clear();                        //清屏
  71.   LCD_Desk();
  72.   KeyPort_init();                     //按鍵IO口初始化,設(shè)置IO口屬性
  73.   delay_ms(100);                      //延時100ms
  74.   while(1)
  75.     {
  76.       Key_Scan();                     //鍵盤掃描,看是否有按鍵按下
  77.       if(key!=0xff)                   //如果有按鍵按下,則顯示該按鍵鍵值1~4
  78.         {
  79.           {
  80.             switch(key)
  81.               {
  82.                 case 1: LED8 = 0xFC;LCD_DisplayKey(1);break;     //給不同的鍵賦鍵值,鍵值1,亮2個LED燈
  83.                 case 2: LED8 = 0xF3;LCD_DisplayKey(2);break;     //給不同的鍵賦鍵值,鍵值2,亮2個LED燈
  84.                 case 3: LED8 = 0xCF;LCD_DisplayKey(3);break;         //給不同的鍵賦鍵值,鍵值3,亮2個LED燈
  85.                 case 4: LED8 = 0x3F;LCD_DisplayKey(4);break;         //給不同的鍵賦鍵值,鍵值4,亮2個LED燈
  86.               }

  87.           }
  88.         
  89.        }
  90.      else
  91.       {
  92.         //LED=key;                      //沒有按鍵的時候顯示上次的鍵值
  93.       }
  94.     }

  95. }
復(fù)制代碼
代碼下載: 4KEY_1602.7z (21.75 KB, 下載次數(shù): 16)

作者: wsqr    時間: 2022-6-15 09:16
對我很有幫助




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1