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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機程序 按鍵不占用中斷 不使用延時 沒有死循環 不占用任何資源

  [復制鏈接]
跳轉到指定樓層
樓主
ID:492633 發表于 2024-5-3 18:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
壇友的不占用中斷 不使用延時  沒有死循環。!不占用任何資源。親測可用



單片機源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit LED1= P3^4;
  6. sbit LED2 = P3^5;
  7. sbit LED3= P3^6;
  8. sbit LED4  = P3^7;
  9. sbit key1 =P1^4;
  10. sbit key2 =P1^5;

  11. /*不占用中斷 不使用延時  沒有死循環!!!不占用任何資源
  12. 這個按鍵檢測程序我在20年前網上看到過。當時沒有試用。今又看到這個單片機代碼。于是決定測試一下*/
  13. unsigned char num,trg1=0, trg2=0,cont1=0,cont2=0;//一定是全局變量
  14. //unsigned char


  15. unsigned key1scan()
  16. {
  17. unsigned char a=!key1;//網上是異或運算a=key1^0x01,對于一位按鍵可以直接寫成取反
  18. trg1= a&(a^cont1);
  19. cont1=a;
  20. if(trg1&!key1) //網上是(trg1&key1)實際測試不能使用!!因為任何時候都不可能為真。只有改成(trg1&!key1)才可以完美執行。!
  21. //return 1;//返回等于1 表示按鍵按下。
  22. {
  23. //此處可以是自己需要執行的程序。(去掉前面的返回)
  24.         LED1=~LED1;//按一次亮按一次滅
  25. }

  26. }


  27. unsigned key2scan()
  28. {
  29. unsigned char a=!key2;//網上是異或運算a=key2^0x01,對于一位按鍵可以直接寫成取反
  30. trg2= a&(a^cont2);
  31. cont2=a;
  32. if(trg2&!key2)  
  33. //return 1;//返回等于1 表示按鍵按下。
  34. {
  35. //此處可以是自己需要執行的程序。(去掉前面的返回)
  36.         LED2=~LED2; //按一次亮按一次滅
  37. }

  38. }

  39. void main()
  40. {
  41.         P3=0XFF;
  42.         P1=0XFF;
  43. while(1)
  44. {
  45.   key1scan(); //每次按下按鍵只會執行一次,按鍵不放開絕對不會重復執行。
  46.   {
  47.     //自己的程序。
  48.   }

  49.   key2scan(); //每次按下按鍵只會執行一次,按鍵不放開絕對不會重復執行。
  50.   {
  51.   }

  52. }

  53. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:465279 發表于 2024-5-3 22:54 來自觸屏版 | 只看該作者
有時間試試
回復

使用道具 舉報

板凳
ID:513213 發表于 2024-5-3 23:02 | 只看該作者
P13接地看不懂!
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:1065749 發表于 2024-5-4 08:06 | 只看該作者
lsh04 發表于 2024-5-3 23:02
P13接地看不懂!

P13接地,K14  K15按鍵開關就接地了。
回復

使用道具 舉報

6#
ID:688460 發表于 2024-5-4 09:58 | 只看該作者
lsh04 發表于 2024-5-3 23:02
P13接地看不懂!

P14.P15.P6.P17這4個按鍵做獨立按鍵使用
回復

使用道具 舉報

7#
ID:492633 發表于 2024-5-4 10:22 | 只看該作者
18689719961 發表于 2024-5-4 08:06
P13接地,K14  K15按鍵開關就接地了。

是的,懶得放開關了直接放一個地線端子,這樣子1.4/1.5/1.6/1.7按鈕就是低電平有效,我只用了1.4/1.5
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
ID:76027 發表于 2024-6-2 17:12 | 只看該作者
請教一下,如果分長按和短按,怎么操作。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表