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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2527|回復: 0
收起左側

一個按鍵控制LED開關和延時進行模式切換 Proteus仿真程序

[復制鏈接]
ID:853104 發表于 2020-12-22 11:58 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit s1=P3^4;
  5. sbit led=P3^3;//


  6. /*****************按鍵掃描用的**********************/
  7. #define  short_key 5     
  8. #define  short_small_key  4   
  9. #define  long_key  100

  10. bit button1_shortflag=0;
  11. bit button1_longflag=0;
  12.   uchar flag=2;



  13.   void time_init()
  14.   {
  15.   TMOD=0x01;//方式1
  16.   TH0=-10000/256;
  17.   TL0=-10000%256;//10ms
  18.   ET0=1;//開定時器0中斷
  19.   TR0=1;//開定時器
  20.   EA=1;//開總中斷
  21.   }

  22. /****************************************/


  23. void getkey_number()
  24. {
  25. static uchar button1_time=0;
  26. static uchar button1_time1=0;
  27.         if(s1==0)
  28.         {
  29.            button1_time>=short_key?(button1_time=short_key):button1_time++;//
  30.                  button1_time1>=long_key?(button1_time1=long_key):button1_time1++;//
  31.         }
  32.     else
  33.                 {
  34.                         if(button1_time1==long_key)
  35.                         {   button1_time1=0;
  36.                             button1_time=0;
  37.                                  button1_longflag=1;        
  38.                         }
  39.                  if(button1_time==short_key)
  40.                  {
  41.                           button1_time=0;
  42.                          button1_time1=0;
  43.                          button1_shortflag=1;
  44.                  }
  45.                 }

  46. }



  47. void main()
  48. {
  49.         static uchar k;
  50. time_init();//定時器開啟
  51.    while(1)
  52.    {           
  53.          
  54. if(button1_shortflag==1)
  55. {
  56.         button1_shortflag=0;
  57.         flag=2;
  58.         if(led==0) led=1;
  59.         else led=0;
  60. }

  61. if(button1_longflag==1)
  62. {
  63. button1_longflag=0;
  64.         if(++k>=2) k=0;
  65.    if(k==0) {flag=1;}
  66.                  else  {flag=0;}
  67. }
  68.    }
  69. }


  70. /****************************************/
  71. void time0() interrupt 1
  72. {
  73. static uchar time=0;
  74.         static uchar m;
  75. TR0=0;

  76. /*************用于按鍵掃描******************/
  77. if(++time>=2)                          
  78. {  time=0;
  79.   getkey_number();
  80. }        
  81. if(flag!=2)
  82. {
  83. if(flag==0)
  84. {
  85.         if(++m>=40)
  86.         {
  87.         m=0; led=!led;
  88.         }
  89. }
  90.         if(flag==1)
  91.         {
  92.         led=0;
  93.         }
  94. }


  95.   TH0=-10000/256;
  96.   TL0=-10000%256;
  97.   TR0=1;



  98. }
復制代碼

仿真程序51hei提供下載:
一個按鍵控制LED開關和延時切換模式.rar (96.23 KB, 下載次數: 13)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产免费一区 | 99久久婷婷国产亚洲终合精品 | 欧美黄色性生活视频 | 欧美在线一区二区三区四区 | av天空| 青草青草久热精品视频在线观看 | 欧洲精品一区 | 国产精品资源在线观看 | 国产日韩一区 | 涩涩99| 国产 欧美 日韩 一区 | 少妇一级淫片免费放播放 | 亚洲福利在线观看 | 高清一区二区三区 | 国产精品精品视频一区二区三区 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产成人精品一区二区三 | 超碰在线人人 | 麻豆成人在线视频 | 久久久久国产一区二区三区四区 | 中文字幕av在线播放 | 亚洲午夜视频在线观看 | 国产精品亚洲精品久久 | 一区二区三区高清 | 宅男伊人 | 欧美成人二区 | 亚洲精品久久久一区二区三区 | 韩日有码 | 亚洲一区中文字幕在线观看 | 超级乱淫av片免费播放 | 91精品久久久久久久久久入口 | 2018天天干天天操 | 激情国产在线 | 久久av网 | 国产精品一区二区三区在线 | 美女在线观看av | 欧美成年人 | 91久久精品国产 | 国产一区二区三区免费 | 国产精品嫩草影院精东 | 九九av |