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

標(biāo)題: 單片機(jī)按鍵點(diǎn)動(dòng)與自鎖的proteus仿真及源程序 [打印本頁]

作者: 51黑ff    時(shí)間: 2016-10-10 13:29
標(biāo)題: 單片機(jī)按鍵點(diǎn)動(dòng)與自鎖的proteus仿真及源程序
單片機(jī)按鍵點(diǎn)動(dòng)與自鎖,按下后三秒自鎖,再按一下斷開,下面是原理圖:



仿真工程文件及所有完整程序等資料下載地址(壓縮包一共有45個(gè)單片機(jī)仿真,全部下載后找到這個(gè)項(xiàng)目即可):
http://www.zg4o1577.cn/bbs/dpj-56298-1.html


單片機(jī)源碼:
  1. /********************************************************************
  2.                             天馬電子
  3. *********************************************************************/

  4. #include<reg52.h>   
  5. /*****************************************************************
  6.                  宏定義字符型和整型
  7. *****************************************************************/
  8. #define uchar unsigned char
  9. #define uint  unsigned int
  10. /*****************************************************************
  11.                 鍵值定義
  12. *****************************************************************/
  13. sbit IN0=P2^0;         //         按鍵輸入0
  14. sbit OUT0=P1^0;         //         按鍵輸出0

  15. sbit IN1=P2^1;         //         按鍵輸入1
  16. sbit OUT1=P1^1;         //         按鍵輸出1

  17. uchar sec; //定義計(jì)數(shù)值,每過1/10 秒,sec 加一
  18. uchar keycnt=2;//按下次數(shù)值
  19. uint tcnt; //鍵值判斷
  20. uchar t=0;
  21. //uchar s=0;
  22. //uchar s1=0;
  23. /********************************************************************
  24.                             延時(shí)消抖函數(shù)
  25. *********************************************************************/
  26. void delay(uchar t)
  27. {
  28.   uchar i,j;
  29.    for(i=0;i<t;i++)
  30.    {
  31.             for(j=13;j>0;j--);
  32.          { ;
  33.          }
  34.    }
  35. }
  36. /********************************************************************
  37.                             按鍵掃描函數(shù)
  38. *********************************************************************/
  39. void KEY() //按鍵掃描程序
  40. {

  41. if(IN0==0)           //當(dāng)按鍵按下執(zhí)行
  42.         {
  43.         delay(20); //消抖
  44.         keycnt=0;  //解鎖
  45.         if(IN0==0) //確定按鍵按下
  46.                 {
  47.                 TR0=1; //開始定時(shí)
  48.                 OUT0=0;//指示燈亮
  49.                 while(!IN0);//等待輸入0置位
  50.                 OUT0=1;//指示燈滅
  51.                 if(t==1) //如果定時(shí)時(shí)間到
  52.                 {
  53.                 keycnt=1;
  54.             t=0;
  55.                 TR0=0; //定時(shí)結(jié)束
  56.                 tcnt=0;
  57.                 sec=0;
  58.                 }
  59.                 TR0=0; //定時(shí)結(jié)束
  60.                 tcnt=0;
  61.                 sec=0;
  62.                 }
  63.         }
  64. if(IN1==0)
  65.         {
  66.         delay(20);
  67.         keycnt=2;  //解鎖
  68.         if(IN1==0)
  69.                 {
  70.                 TR0=1; //開始定時(shí)
  71.                 OUT1=0;
  72.                 while(!IN1);
  73.                 OUT1=1;
  74.                 if(t==1)
  75.                 {
  76.                 keycnt=3;
  77.             t=0;
  78.                 TR0=0; //定時(shí)結(jié)束
  79.                 tcnt=0;
  80.                 sec=0;
  81.                 }
  82.                 TR0=0; //開始定時(shí)
  83.                 tcnt=0;
  84.                 sec=0;
  85.                 }
  86.         }

  87. }        
  88. /********************************************************************
  89.                             按下次數(shù)判斷函數(shù)
  90. *********************************************************************/
  91. void jianzhi()
  92. {
  93. switch(keycnt) //按下次數(shù)判斷
  94.                         {
  95.                         case 0: OUT0=1;break; //輸出解鎖
  96.                         case 1: OUT0=0;break; //輸出自鎖
  97.                         case 2: OUT1=1;break; //輸出解鎖
  98.                         case 3: OUT1=0;break; //輸出自鎖
  99.                         }
  100. }
  101. /********************************************************************
  102.                             定時(shí)中斷服務(wù)函數(shù)
  103. *********************************************************************/
  104. void t0(void) interrupt 1 using 0 //定時(shí)中斷服務(wù)函數(shù)
  105. {
  106.         TH0=0x06; //對TH0 TL0 賦值
  107.         TL0=0x06;
  108.         tcnt++; //每過250ust tcnt 加一
  109.         if(tcnt==400) //計(jì)滿400 次(1/10 秒)時(shí)
  110.         {
  111.                 tcnt=0; //重新再計(jì)
  112.                 sec++;
  113.                 if(sec==20) //定時(shí)2 秒,在從零開始計(jì)時(shí)
  114.                 {
  115.                 t=1;
  116.                 //sec=0;         
  117.                 //t++;
  118.             //keycnt=t%2;
  119.             //if(t==100)t=0;
  120.                 }
  121.         }
  122. }
  123. /**********************************************************************
  124.                                            初始化I/O                                   
  125. **********************************************************************/
  126. void Init_IO(void)             //初始化I/O口
  127. {

  128.         OUT0=1;//輸出燈熄滅
  129.         OUT1=1;//輸出燈熄滅

  130. }
  131. /********************************************************************
  132.                             主函數(shù)
  133. *********************************************************************/
  134. void main()

  135. {
  136.         TMOD=0x02; //定時(shí)器工作在方式2
  137.         ET0=1;
  138.         EA=1;
  139.         TH0=0x06; //對TH0 TL0 賦值
  140.         TL0=0x06;
  141.         //TR0=1; //開始定時(shí)
  142.         Init_IO();

  143.         while(1)/*永遠(yuǎn)為真,一直執(zhí)行下去*/
  144.         {
  145.         KEY();           //取鍵函數(shù)
  146.         jianzhi(); //執(zhí)行函數(shù)
  147.         }
  148. }
  149. /********************************************************************
  150.                               結(jié)束
  151. *********************************************************************/
復(fù)制代碼




作者: caoxuexin    時(shí)間: 2018-5-21 10:51
感謝分享!!!!!!!
作者: 15942379927    時(shí)間: 2018-5-22 21:37
簡單實(shí)用 謝謝
作者: bhjyqjs    時(shí)間: 2018-7-25 15:27
已驗(yàn)證通過,感謝分享!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99国产精品视频免费观看一公开 | 精品国产一区二区三区观看不卡 | 九九久久这里只有精品 | 亚洲国产精品成人综合久久久 | 亚欧性视频 | 亚洲精品久久久一区二区三区 | 99久久99| 国产精品999 | 欧美日韩久久久 | 91麻豆精品国产91久久久久久 | 亚洲免费在线视频 | 欧美一区二区免费视频 | 亚洲欧美激情精品一区二区 | 91观看| 麻豆久久久久 | 亚洲精品www| 国产精品久久久久一区二区 | a级大片| 国产香蕉视频在线播放 | 国产精品国产a级 | 成人在线a | 久草免费视 | av影音在线| 91xxx在线观看 | 国产精品999 | 99久久婷婷国产综合精品 | 精品一区二区三区四区 | 久久99精品久久久久 | 国产精品69毛片高清亚洲 | 国产精品久久久久久久久婷婷 | 日韩有码一区 | 一区二区三区四区五区在线视频 | 一区中文| 国产一区二区三区在线 | 国产精品精品久久久久久 | 中文在线а√在线8 | 99精品免费 | a看片 | 天天看天天爽 | 欧美极品在线播放 | 天堂在线中文字幕 |