NY8LP10A*长按短按效果

[复制链接]
530|0
 楼主| 34af9uc 发表于 2024-8-19 21:16 | 显示全部楼层 |阅读模式
本帖最后由 34af9uc 于 2024-8-19 21:18 编辑

NY8LP10A*长按短按效果
  1. /*****************NY8LP10A**************************/
  2. /*****************按键长按短按效果*******************/
  3. /*****************ID:共同学习stm8*******************/
  4. /*****************20240818*************************/
  5. #include <ny8l.h>
  6. /**************************************************/
  7. #define                yi_l                PA&=~(1<<2)
  8. #define                yi_h                PA|=(1<<2)

  9. #define                er_l                PA&=~(1<<3)
  10. #define                er_h                PA|=(1<<3)

  11. #define                san_l                PA&=~(1<<4)
  12. #define                san_h                PA|=(1<<4)

  13. #define                si_l                PA&=~(1<<5)
  14. #define                si_h                PA|=(1<<5)

  15. #define                anjian                PA&(1<<6)
  16. /**************************************************/
  17. void                yanshi();                //延时
  18. void                xianshi();                //显示
  19. void                anjian_jiance();                //按键检测
  20. unsigned char                xian_a1;
  21. /**************************************************/
  22. void main(void)
  23. {
  24. //unsigned char                a1;
  25. /**************************************************/
  26. PAIO                &=~((1<<2)+(1<<3)+(1<<4)+(1<<5));                //1输入,0输出
  27. PAC                        |=((1<<2)+(1<<3)+(1<<4)+(1<<5));                //1输出,0开漏
  28. /**************************************************/
  29. PAIO                |=(1<<6);                //1输入,0输出
  30. PAC                        |=(1<<6);                //1.100K,0.1M
  31. /**************************************************/
  32. xian_a1                =1;
  33. while(1)
  34. {
  35. //CLRWDT();
  36. anjian_jiance();                //按键检测
  37. xianshi();                                //显示
  38. yanshi();                                //延时

  39. }


  40. }
  41. /**************************************************/


  42. /**************************************************/
  43. void                yanshi()                //延时
  44. {
  45. unsigned char z1,z2;
  46. for(z1=50;z1>0;z1--)
  47.         for(z2=120;z2>0;z2--);
  48. }
  49. /**************************************************/
  50. void                xianshi()                //显示
  51. {
  52. if(xian_a1&(1<<0))                {yi_h;}                else{yi_l;}
  53. if(xian_a1&(1<<1))                {er_h;}                else{er_l;}
  54. if(xian_a1&(1<<2))                {san_h;}        else{san_l;}
  55. if(xian_a1&(1<<3))                {si_h;}                else{si_l;}
  56. }
  57. /**************************************************/
  58. void                anjian_jiance()                //按键检测
  59. {
  60. static unsigned char anjian_a1;
  61. static unsigned char anjian_a2;

  62. if(anjian)                                //按下了
  63. {
  64. anjian_a1                =1;                //模式1已按
  65. anjian_a2                ++;
  66. if(anjian_a2 >15)                //长按
  67.         {
  68.         anjian_a2                =0;
  69.         xian_a1                        <<=1;
  70.                 if(xian_a1&(1<<4))
  71.                 {
  72.                 xian_a1 =1;
  73.                 }
  74.         }
  75. }

  76. if(~(anjian))                        //没按着
  77.         {
  78.         if(anjian_a1==1)
  79.                 {
  80.                 anjian_a1                =0;
  81.                 anjian_a2                =0;
  82.                 xian_a1                        <<=1;
  83.                 if(xian_a1&(1<<4))
  84.                         {
  85.                         xian_a1 =1;
  86.                         }
  87.                 }
  88.        
  89.         }
  90. }
  91. /**************************************************/


















长短按键.zip

829 Bytes, 下载次数: 2

NY8LP10A*长按短按效果

319

主题

487

帖子

64

粉丝
快速回复 在线客服 返回列表 返回顶部