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

標題: 51單片機和PIC 按鍵按一次燈亮,再按一次燈滅 程序源碼 [打印本頁]

作者: 51黑芯片    時間: 2016-1-17 02:35
標題: 51單片機和PIC 按鍵按一次燈亮,再按一次燈滅 程序源碼

這個是我自己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. */
復制代碼






作者: z56155909    時間: 2017-1-5 15:39
感謝樓主,能不能把開發版的制作給我發一個,謝謝,56155909@qq.com.樓主辛苦了…
作者: z56155909    時間: 2017-1-5 15:40
能不能把開發區分制作給我發一個?56155909@qq.com
作者: 彬Lsl    時間: 2017-4-15 21:02
請問T0指的是按鍵嗎?
作者: 蘭亭序    時間: 2017-4-22 13:26
彬Lsl 發表于 2017-4-15 21:02
請問T0指的是按鍵嗎?

你看下手冊上的P3^4端口
作者: 彬Lsl    時間: 2017-4-22 13:46
蘭亭序 發表于 2017-4-22 13:26
你看下手冊上的P3^4端口

原來如此




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩免费| 在线看亚洲 | 免费看a级片| 欧美做受喷浆在线观看 | 亚洲特级片| 欧美日韩在线播放 | 国产一级黄色录像 | 亚洲另类色综合网站 | 中文字幕免费高清 | 欧美在线视频免费 | 亚洲免费精品视频 | 在线观看www | 狠狠干狠狠插 | 国产视频一区二区在线 | 欧美成人激情 | 美女黄色小说 | 欧美国产精品 | 一区二区三区在线看 | 三上悠亚激情av一区二区三区 | 久久久久九九九 | 一级黄色片视频 | 欧美久久久久久久久久 | 天天有av | 亚洲精品久久久久久久久 | 日韩欧美自拍 | 69福利视频 | 黄在线免费观看 | 狠狠综合网 | 午夜精品国产精品大乳美女 | 欧美精品一二区 | www.在线播放 | 伊人天堂网| 97视频在线观看免费 | 99re国产精品 | 人人草人人干 | 成人精品免费 | 国产精品久久久久久久免费看 | 久久久在线视频 | 久久人人爽人人爽人人片 | 999成人网| av影院在线|