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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1808|回復: 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)實際測試不能使用。∫驗槿魏螘r候都不可能為真。只有改成(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
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线激情视频 | aaa级片| 国产成人综合在线 | 精品久久久久久久久久久 | 亚洲a视频| 国产精品精品 | 成人免费毛片在线观看 | 91精品国产色综合久久 | 欧美一区二区三区精品免费 | 97国产超碰| 中文字幕一区二区三区乱码在线 | 中文精品视频 | 欧美精品一区二区三区四区 在线 | 日韩乱码在线 | 日韩欧美一区二区三区四区 | 91免费在线看 | 国产成人精品福利 | 97国产精品视频 | 伊久在线 | 日韩一区在线观看视频 | 盗摄精品av一区二区三区 | 午夜视频一区 | 国产精品久久久久久久一区探花 | 黄色欧美视频 | 手机在线观看av | 污污的网站在线观看 | 国产午夜精品久久久 | 国产精品欧美一区二区 | 99这里只有精品视频 | 日韩二区 | 欧美成人免费在线 | 91一区二区| www日韩 | 精品欧美一区二区三区久久久 | 看亚洲a级一级毛片 | 久久久久国产精品 | 中文字幕一区二区三区四区五区 | 日本免费一区二区三区视频 | 污污的网站在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美理伦片在线播放 |