找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5157|回復(fù): 14
收起左側(cè)

一鍵多功能按鍵識(shí)別技術(shù)

  [復(fù)制鏈接]
ID:64693 發(fā)表于 2014-8-5 21:39 | 顯示全部樓層 |閱讀模式
有那位大神能幫我解釋一下,一鍵多功能按鍵識(shí)別技術(shù)的程序代碼嗎?程序是我在論壇上下的,程序很簡單,但是我感覺我把自己看的鬧暈了
#include<AT89X51.H>
unsigned char ID;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}

void delay02s(void)
{
unsigned char i;
for(i=20;i>0;i--)
{delay10ms();
}
}

void main(void)
{ while(1)
{ if(P3_7==0)
{delay10ms();
if(P3_7==0)
{
ID++;
if(ID==4)
{
ID=0;
}
while(P3_7==0);
}
}
switch(ID)
{ case 0:
P1_0=~P1_0;       //p1_0作為輸出口,一開始case 為0時(shí),p1_0狀態(tài)為什么是“1”,當(dāng)再一次case為“0”時(shí),p1_0狀態(tài)為什么還是“1” ??????
delay02s();
break;
case 1:
P1_1=~P1_1;
delay02s();
break;
case 2:
P1_2=~P1_2;
delay02s();
break;
case 3:
P1_3=~P1_3;
delay02s();
break;
}
}
}

回復(fù)

使用道具 舉報(bào)

ID:47760 發(fā)表于 2014-9-13 08:03 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:51348 發(fā)表于 2014-9-14 02:10 | 顯示全部樓層
很好  學(xué)習(xí)  謝謝
回復(fù)

使用道具 舉報(bào)

ID:66338 發(fā)表于 2014-9-18 21:43 | 顯示全部樓層
很好  學(xué)習(xí)  謝謝
回復(fù)

使用道具 舉報(bào)

ID:69147 發(fā)表于 2014-11-20 23:18 來自手機(jī) | 顯示全部樓層
你厲害,訂
回復(fù)

使用道具 舉報(bào)

ID:69319 發(fā)表于 2014-11-23 21:12 | 顯示全部樓層
給力啊樓主樓主加油
回復(fù)

使用道具 舉報(bào)

ID:174969 發(fā)表于 2017-3-29 19:15 | 顯示全部樓層
樓主說的P1.0 取反以后就是反的啊,按照你的電路,開關(guān)燈對(duì)應(yīng)的是高電平還是低電平,是不是你自己想錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:183748 發(fā)表于 2017-3-29 19:57 | 顯示全部樓層
樓主說的P1.0 取反以后就是反的啊,按照你的電路,開關(guān)燈對(duì)應(yīng)的是高電平還是低電平,是不是你自己想錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:183748 發(fā)表于 2017-3-29 20:00 | 顯示全部樓層
P1_0=~P1_0第一次輸出,第二次自動(dòng)取反輸出
回復(fù)

使用道具 舉報(bào)

ID:117161 發(fā)表于 2017-6-14 20:41 | 顯示全部樓層
樓主  你的按鍵可以循環(huán)不  從第一狀態(tài)到最后一個(gè)  再到第一個(gè)
回復(fù)

使用道具 舉報(bào)

ID:211258 發(fā)表于 2017-6-14 22:49 | 顯示全部樓層
謝謝分享,太好了正好需要
回復(fù)

使用道具 舉報(bào)

ID:211388 發(fā)表于 2017-6-15 07:48 | 顯示全部樓層
多謝,
回復(fù)

使用道具 舉報(bào)

ID:68356 發(fā)表于 2017-6-15 19:21 | 顯示全部樓層
是不是延時(shí)時(shí)間太短,端口狀態(tài)發(fā)生多次翻轉(zhuǎn)
回復(fù)

使用道具 舉報(bào)

ID:208108 發(fā)表于 2017-6-15 21:22 | 顯示全部樓層
每按一次ID自加,case執(zhí)行的從P10到P13依次翻轉(zhuǎn),并沒有把之前那一位翻轉(zhuǎn)。
回復(fù)

使用道具 舉報(bào)

ID:68356 發(fā)表于 2017-6-16 21:53 | 顯示全部樓層
duranhuang 發(fā)表于 2017-6-15 21:22
每按一次ID自加,case執(zhí)行的從P10到P13依次翻轉(zhuǎn),并沒有把之前那一位翻轉(zhuǎn)。

可能是ID值在執(zhí)行端口翻轉(zhuǎn)之后沒有清零,每一次switch語句都執(zhí)行一次翻轉(zhuǎn),實(shí)際上端口是在不停的翻轉(zhuǎn),只是速度太快看起來是一直亮著
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表