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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1853|回復: 6
收起左側

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

  [復制鏈接]
ID:492633 發表于 2024-5-3 18:59 | 顯示全部樓層 |閱讀模式
壇友的不占用中斷 不使用延時  沒有死循環!!!不占用任何資源。親測可用

1.png

單片機源程序如下:
  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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:465279 發表于 2024-5-3 22:54 來自觸屏版 | 顯示全部樓層
有時間試試
回復

使用道具 舉報

ID:513213 發表于 2024-5-3 23:02 | 顯示全部樓層
P13接地看不懂!
回復

使用道具 舉報

ID:1065749 發表于 2024-5-4 08:06 | 顯示全部樓層
lsh04 發表于 2024-5-3 23:02
P13接地看不懂!

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

使用道具 舉報

ID:688460 發表于 2024-5-4 09:58 | 顯示全部樓層
lsh04 發表于 2024-5-3 23:02
P13接地看不懂!

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

使用道具 舉報

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
回復

使用道具 舉報

ID:76027 發表于 2024-6-2 17:12 | 顯示全部樓層
請教一下,如果分長按和短按,怎么操作。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区高清 | 一级片免费观看 | 亚洲精品乱码久久久久久蜜桃91 | 国产美女福利 | 不卡av网站 | 黄色小视频免费观看 | 国产精品tv| 久久不雅视频 | 欧美日韩精品一区二区在线播放 | 一级理论片| 久久久三级 | 国产一区福利 | 国产51自产区| 亚色在线 | 日韩网站在线观看 | 国产91清纯白嫩初高中在线观看 | 欧美一级黄色片 | 国产毛片一级 | 一区二区三区四区精品 | 国产一区二区影院 | 欧美a在线 | 成人少妇影院yyyy | 免费久久 | 久久久久久久综合 | 成人深夜福利视频 | 精品国产一区二 | www.三级 | 国产精品毛片va一区二区三区 | 综合一区二区三区 | 欧美精品成人 | 国产精品福利一区 | 成人激情视频网 | 亚洲五月婷婷 | 久视频在线 | 国产精品99久久久久久久久 | 日本一级黄色 | 日本福利视频 | 日本特级淫片 | 久久精品视频一区二区 | 久久精品一区二区三区四区五区 | 欧美精产国品一二三区 |