久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3832|回復: 0
打印 上一主題 下一主題
收起左側

lpc1768五項按鍵實驗例程

[復制鏈接]
跳轉到指定樓層
樓主
五向按鍵
lpc1768單片機源程序如下:
  1. /******************************Copyright (c)***********************************
  2. **    Nanjing University Jinling College
  3. **
  4. **-----------------------------------------------------------------------------
  5. ** Created by:          James Ho
  6. ** Created date:        2013-07-01
  7. ** Version:             V1.00
  8. **-----------------------------------------------------------------------------
  9. ******************************************************************************/


  10. #include "lpc17xx.h"
  11. #include "lpc1768_timer.h"
  12. #include "bmboard.h"
  13. #include "joystick.h"

  14. void (*oldcb)(void);

  15. /* define the Key scan state machine status */
  16. /* this is a Critical Area var !! */
  17. static KEY_FSM_STATUS status;

  18. /* define current key and previous key */
  19. static KEY_TypeDef Key;
  20. static uint8_t pressedkey;

  21. void Joystick_Config(void){
  22.         /*add your code */
  23.         LPC_PINCON->PINSEL3=0;
  24.         LPC_GPIO1->FIODIR=~(JOY_ENTER|JOY_LEFT|JOY_RIGHT|JOY_UP|JOY_DOWN);
  25.         oldcb=pTimer0Callback;
  26.         pTimer0Callback=KeyboardScan;
  27.         status=KEY_IDLE;
  28. }



  29. KEY_TypeDef GetKey(void)
  30. {
  31.         /*add your code */
  32.         KEY_TypeDef CurKey;
  33.         CurKey.KeyValue=Key.KeyValue;
  34.         CurKey.Pressed=Key.Pressed;
  35.         CurKey.Released=Key.Released;
  36.        
  37.         if(status==KEY_RELEASE_CONFIRMED){
  38.                 Key.KeyValue=KEY_VALUE_NOKEY;
  39.                 Key.Pressed=0;
  40.                 Key.Released=0;
  41.                 status=KEY_IDLE;
  42.         }
  43.         else if(status==KEY_PRESS_CONFIRMED||status==KEY_RELEASED){
  44.                 Key.Pressed=0;
  45.         }
  46.         return CurKey;
  47. }

  48. void KeyboardScan()
  49. {
  50.         /*add your code */
  51.         static uint8_t counter=0;
  52.         uint32_t key;
  53.        
  54.         if(counter++<15){
  55.                 oldcb();
  56.                 return;
  57.         }
  58.         else{
  59.                 counter=0;
  60.                 key=~(LPC_GPIO1->FIOPIN)&0x3E000000;
  61.                
  62.                 if(key&JOY_UP)key=KEY_VALUE_UP;
  63.                 else if(key&JOY_DOWN)key=KEY_VALUE_DOWN;
  64.                 else if(key&JOY_LEFT)key=KEY_VALUE_LEFT;
  65.                 else if(key&JOY_RIGHT)key=KEY_VALUE_RIGHT;
  66.                 else if(key&JOY_ENTER)key=KEY_VALUE_ENTER;
  67.                 else key=KEY_VALUE_NOKEY;
  68.         }
  69.         switch(status){
  70.                 case KEY_IDLE:
  71.                         if(key)
  72.                                 status=KEY_PRESSED;
  73.                         break;
  74.                 case KEY_PRESSED:
  75.                         if(key){
  76.                                 status=KEY_PRESS_CONFIRMED;
  77.                                 Key.KeyValue=key;
  78.                                 Key.Pressed=1;
  79.                         }
  80.                         else
  81.                                 status=KEY_IDLE;
  82.                         break;
  83.                 case KEY_PRESS_CONFIRMED:
  84.                         if(key)
  85.                                 status;
  86.                         else
  87.                                 status=KEY_RELEASED;
  88.                         break;
  89.                 case KEY_RELEASED:
  90.                         if(key)
  91.                                 status=KEY_PRESS_CONFIRMED;
  92.                         else{
  93. ……………………

  94. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
實驗8 五項按鍵.rar (617.88 KB, 下載次數: 15)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费激情视频 | 亚洲第一区久久 | 国产精品美女久久久久aⅴ国产馆 | 婷婷一级片 | 久久91精品国产一区二区三区 | 小草久久久久久久久爱六 | 色接久久 | 精品av | 国产精品美女www爽爽爽 | 亚洲国产欧美日韩 | 中国一级特黄真人毛片免费观看 | 国产精品久久久久久久午夜片 | 阿v视频在线观看 | 国产欧美日韩一区 | 精品一区二区在线观看 | 国产精品久久久久久吹潮 | 免费黄色的网站 | 精品中文字幕一区二区 | 久久蜜桃av一区二区天堂 | 狠狠的干狠狠的操 | 伊人一区 | 亚洲精品乱码久久久久久9色 | 亚洲电影免费 | 国产乱码精品一品二品 | 日韩av一区二区在线 | 中文字幕精品一区二区三区精品 | 超碰在线97国产 | 国产精品人人做人人爽 | 午夜久久久 | 午夜久久久久久久久久一区二区 | 午夜影院视频在线观看 | 亚洲欧美中文日韩在线v日本 | 伊人热久久| 色婷婷久久久亚洲一区二区三区 | 亚洲色图图片 | 欧美伦理一区 | 国产精品一区二区av | 一区二区国产精品 | 欧美一区免费 | 污视频在线免费观看 | 91精品久久久久久久久99蜜臂 |