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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1642|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)程序 按鍵不占用中斷 不使用延時(shí) 沒(méi)有死循環(huán) 不占用任何資源

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:492633 發(fā)表于 2024-5-3 18:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
壇友的不占用中斷 不使用延時(shí)  沒(méi)有死循環(huán)!!!不占用任何資源。親測(cè)可用



單片機(jī)源程序如下:
  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. /*不占用中斷 不使用延時(shí)  沒(méi)有死循環(huán)!!!不占用任何資源
  12. 這個(gè)按鍵檢測(cè)程序我在20年前網(wǎng)上看到過(guò)。當(dāng)時(shí)沒(méi)有試用。今又看到這個(gè)單片機(jī)代碼。于是決定測(cè)試一下*/
  13. unsigned char num,trg1=0, trg2=0,cont1=0,cont2=0;//一定是全局變量
  14. //unsigned char


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

  26. }


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

  38. }

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

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

  52. }

  53. }
復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:465279 發(fā)表于 2024-5-3 22:54 來(lái)自手機(jī) | 只看該作者
有時(shí)間試試
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

地板
ID:1065749 發(fā)表于 2024-5-4 08:06 | 只看該作者

P13接地,K14  K15按鍵開關(guān)就接地了。
回復(fù)

使用道具 舉報(bào)

5#
ID:688460 發(fā)表于 2024-5-4 09:58 | 只看該作者

P14.P15.P6.P17這4個(gè)按鍵做獨(dú)立按鍵使用
回復(fù)

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

7#
ID:76027 發(fā)表于 2024-6-2 17:12 | 只看該作者
請(qǐng)教一下,如果分長(zhǎng)按和短按,怎么操作。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 青青青伊人 | 午夜久久久久 | 国产精品久久av | 亚洲成a| 国产yw851.c免费观看网站 | 在线观看av网站 | 亚洲精品一区二区三区蜜桃久 | 日韩图区 | 黑人巨大精品欧美一区二区免费 | 国产亚洲精品a | 欧美性一区二区三区 | 日韩一区中文字幕 | 国产精品69久久久久水密桃 | 日韩一区二区三区视频 | 99精品99 | 日日摸日日添日日躁av | 天天射色综合 | 久久专区 | 成人精品鲁一区一区二区 | 欧美不卡在线 | 91 视频网站 | 毛片区| 国产精品毛片一区二区三区 | 国产色 | www.欧美视频| 蜜臀网 | 国产毛片久久久 | 国产中文字幕在线 | 欧美日韩在线一区二区 | 亚洲视频免费播放 | 一区二区三区福利视频 | 91精品久久久久久久久 | 久久久久久国 | 91在线电影 | 天天夜夜操 | 极情综合网 | 亚洲精品免费观看 | 精品视频久久久久久 | 福利久久 | av网站观看 | 国产小u女发育末成年 |