欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機按鍵點動互鎖程序 proteus仿真及源程序
[打印本頁]
作者:
51黑ff
時間:
2016-10-10 13:36
標題:
單片機按鍵點動互鎖程序 proteus仿真及源程序
單片機實現按鍵點動互鎖的proteus仿真及程序,下面是電路原理圖:
主要實現按下后三秒自鎖,再按一下斷開
0.png
(22.33 KB, 下載次數: 79)
下載附件
2016-10-10 13:33 上傳
0.png
(53.65 KB, 下載次數: 76)
下載附件
2016-10-10 13:32 上傳
按鍵點動互鎖仿真工程文件及所有完整程序等資料下載地址(壓縮包一共有45個單片機仿真,全部下載后找到這個項目即可):
http://www.raoushi.com/bbs/dpj-56298-1.html
單片機源程序:
/********************************************************************
匯誠科技
*********************************************************************/
#include<reg52.h>
/*****************************************************************
宏定義字符型和整型
*****************************************************************/
#define uchar unsigned char
#define uint unsigned int
/*****************************************************************
按鍵定義
*****************************************************************/
uchar CNT1=0;//判斷按鍵次數
uchar CNT2=0;//判斷按鍵次數
uchar CNT3=0;//判斷按鍵次數
uchar CNT4=0;//判斷按鍵次數
uchar CNT5=0;//判斷按鍵次數
sbit KEY1=P2^0; //按鍵1
sbit KEY2=P2^1; //按鍵2
sbit KEY3=P2^2; //按鍵3
sbit KEY4=P2^3; //按鍵4
sbit KEY5=P2^4; //按鍵5
/********************************************************************
延時函數
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
按鍵掃描函數
*********************************************************************/
void KEY() //按鍵掃描程序
{
uchar i;
i=20;
if((CNT1==2)||(CNT2==2)||(CNT3==2)||(CNT4==2)||(CNT5==2)) {P1=0XFF;CNT1=0;CNT2=0;CNT3=0;CNT4=0;CNT5=0;}
if(KEY1==0){delay(i);if(KEY1==0){CNT2=0;CNT3=0;CNT4=0;CNT5=0;P1=0XFE;while(!KEY1);CNT1++;}}
if(KEY2==0){delay(i);if(KEY2==0){CNT1=0;CNT3=0;CNT4=0;CNT5=0;P1=0XFD;while(!KEY2);CNT2++;}}
if(KEY3==0){delay(i);if(KEY3==0){CNT1=0;CNT2=0;CNT4=0;CNT5=0;P1=0XFB;while(!KEY3);CNT3++;}}
if(KEY4==0){delay(i);if(KEY4==0){CNT1=0;CNT2=0;CNT3=0;CNT5=0;P1=0XF7;while(!KEY4);CNT4++;}}
if(KEY5==0){delay(i);if(KEY5==0){CNT1=0;CNT2=0;CNT3=0;CNT4=0;P1=0XEF;while(!KEY5);CNT5++;}}
}
/********************************************************************
按下次數判斷函數
*********************************************************************/
/*void jianzhi()
{
switch(keycnt) //按下次數判斷
{
case 0: OUT=1;break; //輸出解鎖
case 1: OUT=0;break; //輸出自鎖
case 2: OUT1=1;break; //輸出解鎖
case 3: OUT1=0;break; //輸出自鎖
}
}
/********************************************************************
定時中斷服務函數
*********************************************************************/
/*void t0(void) interrupt 1 using 0 //定時中斷服務函數
{
TH0=0x06; //對TH0 TL0 賦值
TL0=0x06;
tcnt++; //每過250ust tcnt 加一
if(tcnt==400) //計滿400 次(1/10 秒)時
{
tcnt=0; //重新再計
sec++;
if(sec==20) //定時2 秒,在從零開始計時
{
t=1;
//sec=0;
//t++;
//keycnt=t%2;
//if(t==100)t=0;
}
}
}
/********************************************************************
主函數
*********************************************************************/
void main()
{
while(1)
{
KEY();
}
}
/********************************************************************
結束
*********************************************************************/
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1