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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22277|回復: 5
收起左側

51單片機和PIC 按鍵按一次燈亮,再按一次燈滅 程序源碼

[復制鏈接]
ID:103513 發表于 2016-1-17 02:35 | 顯示全部樓層 |閱讀模式

這個是我自己diy的單片機開發板:http://m.zg4o1577.cn/bbs/dpj-42590-1.html

  1. //--------------------------------下面為板上運行通過的,更為簡潔--------------------------------------------------------------

  2. //這個程序適用于天祥、淘寶上面買的開發板,我自已做的板子也是和它們的腳位一樣,好處是立馬可以20181031    18:05

  3. /*按一下燈亮再一下燈滅+松手檢測*/
  4. #include<reg52.h>
  5. #define uchar unsigned char
  6. sbit P10=P1^0;
  7. void delay(int x)
  8. {
  9. int a,b;
  10. for(a=x;a>0;a--)
  11. for(b=110;b>0;b--);
  12. }
  13. void main()
  14. {
  15. uchar temp=0;
  16. P10=0;
  17. while(1)
  18. {
  19. if(T0==0)
  20.   {
  21.   delay(5);   //延時去抖
  22.   if(T0==0)     //確實被按下了
  23.    {
  24.    temp=!temp;
  25.    P10=temp;    //燈的狀態取反了
  26.    while(!T0);    //松手檢測,燈取反后就停在這里了直到松手T0=0后退出循環
  27.    delay(500);    //燈持續亮500ms以便我們肉眼觀察
  28.    }
  29.   }
  30. }
  31. }


復制代碼


  1. /*此為自已寫的,
  2. 功能:實現按一次按鍵燈亮,再按一次燈滅
  3. 歡迎仿問我的空間里頭有好多單片機C語言代碼
  4. 2018年10月24于廈門軟件園二期
  5. */
  6. #include <pic.h>  //此為pic的代碼
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. void delay(uint x)  //延時函數
  10. {
  11. uint a,b;
  12. for(a=x;a>0;a--)
  13.   for(b=110;b>0;b--);
  14. }

  15. void main()   //主函數
  16. {
  17. static bit temp; //定義一個靜態的位變量,注意得放在第一行,否則會提示一堆的錯誤
  18. TRISB=0;PORTB=0xff;
  19. TRISD=0;PORTD=0x00;
  20. temp=RD0;   //把RD0 LED燈的當前狀態賦給變量temp
  21. while(1)
  22. {
  23. if(RB0==0)  //判斷按鍵是否有被按下,有則為0
  24.   {
  25.   delay(10); //去抖
  26.   if(RB0==0) //去抖完得再判斷一次
  27.    {
  28.    temp=!temp;  //每按一次,位變量temp取反一次
  29.    while(!RB0)  //松手檢測,按下時為0取反為1,一直循環直至松手為1取反后為0退出循環
  30.    RD0=temp;  //把取反后的temp值賦給RD0即LED燈
  31.    }
  32.   }
  33. }
  34. }



  35. //-----------------------下面為51的代碼----------------------------------------------------
  36. /*
  37. #include <reg52.h>  //此為51單片機的代碼
  38. #define uint unsigned int
  39. #define uchar unsigned char
  40. void delay(uint x)  //延時函數
  41. {
  42. uint a,b;
  43. for(a=x;a>0;a--)
  44.   for(b=110;b>0;b--);
  45. }

  46. void main()   //主函數
  47. {
  48. static bit temp; //定義一個靜態的位變量,注意得放在第一行,否則會提示一堆的錯誤
  49. sbit RD0=P1^1;  //定義LED燈為RD0
  50. sbit RB0=p3^2;  //定義INT0為RB0(按鍵)
  51. temp=RD0;   //把RD0 LED燈的當前狀態賦給變量temp
  52. while(1)
  53. {
  54. if(RB0==0)  //判斷按鍵是否有被按下,有則為0
  55.   {
  56.   delay(10); //去抖
  57.   if(RB0==0) //去抖完得再判斷一次
  58.    {
  59.    temp=!temp;  //每按一次,位變量temp取反一次
  60.    while(!RB0)  //松手檢測,按下時為0取反為1,一直循環直至松手為1取反后為0退出循環
  61.    RD0=temp;  //把取反后的temp值賦給RD0即LED燈
  62.    }
  63.   }
  64. }
  65. }
  66. */
復制代碼





回復

使用道具 舉報

ID:160143 發表于 2017-1-5 15:39 來自觸屏版 | 顯示全部樓層
感謝樓主,能不能把開發版的制作給我發一個,謝謝,56155909@qq.com.樓主辛苦了…
回復

使用道具 舉報

ID:160143 發表于 2017-1-5 15:40 來自觸屏版 | 顯示全部樓層
能不能把開發區分制作給我發一個?56155909@qq.com
回復

使用道具 舉報

ID:183120 發表于 2017-4-15 21:02 | 顯示全部樓層
請問T0指的是按鍵嗎?
回復

使用道具 舉報

ID:113894 發表于 2017-4-22 13:26 | 顯示全部樓層
彬Lsl 發表于 2017-4-15 21:02
請問T0指的是按鍵嗎?

你看下手冊上的P3^4端口
回復

使用道具 舉報

ID:183120 發表于 2017-4-22 13:46 | 顯示全部樓層
蘭亭序 發表于 2017-4-22 13:26
你看下手冊上的P3^4端口

原來如此
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人a∨高清免费观看 欧美日韩中 | 国产精品成人品 | 国产有码 | 欧美午夜一区 | 精品国产乱码久久久久久蜜臀 | 在线视频91 | 国产一区二区久久 | 天天爽网站 | 成人性视频免费网站 | 九九热视频这里只有精品 | 国产精品久久久久无码av | 精品综合久久 | 青青久草 | 中文字幕一区二区不卡 | 国产小视频在线看 | 久久久久久成人 | 国产一区二区在线看 | 少妇无套高潮一二三区 | 日本网站免费观看 | 久久久久久久久久久久亚洲 | 欧美又大粗又爽又黄大片视频 | 欧美二区乱c黑人 | caoporn国产| 日日夜夜91 | 新疆少妇videos高潮 | 黄色大片视频 | 成人不卡 | 女同久久 | 国产免费av在线 | 国产精品成人一区二区三区夜夜夜 | 日本不卡一区二区三区 | 亚洲精品视频观看 | 欧美久久一区二区三区 | 国产小视频在线观看 | 国产成人亚洲精品 | 成人高清在线视频 | 成人美女免费网站视频 | 欧美日韩一区精品 | 久久精品国产亚洲 | 久久久久国产精品午夜一区 | 久久精品91久久久久久再现 |