按键控制程序

该程序展示了三种不同的按键控制方法:自锁、点动和实现开关功能。使用了reg52.h头文件,通过P1口进行输入,P0口进行输出,通过检测P1口的四个位来改变P0和P2口的状态。每个按键操作都伴随着特定的延迟以避免抖动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

///////////////////////////////////自锁程序/////////////////////////////

#include<reg52.h>   /*P1口输入p0口输出*/

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3;

sbit P0_0=P0^0;

del()  /*延时0.2*/

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

main()

{

while(1)/*永远为真,一直执行下去*/

{

if(P10==0)

{P0=0xfe;P2=0xfe;}

else if(P11==0)

{P0=0xfd;P2=0xfd;}

else if(P12==0)

{P0=0xfb;P2=0xfb;}

else if(P13==0)

{P0=0xf7;P2=0xf7;}

/*

P0=0x00;

P3=0x00;

del();

P0=0xff;

P3=0xff;

del();

*/

}

}

///////////////////////////////点动程序//////////////////////////////

#include<reg52.h>   /*P1口输入p0口输出*/

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3;

sbit P0_0=P0^0;

del()  /*延时0.2*/

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

main()

{

while(1)/*永远为真,一直执行下去*/

{

if(P10==0)

{P0=0xfe;P2=0xfe;del();P0=0xff;P2=0xff;}

if(P11==0)

{P0=0xfd;P2=0xfd;del();P0=0xff;P2=0xff;}

if(P12==0)

{P0=0xfb;P2=0xfb;del();P0=0xff;P2=0xff;}

if(P13==0)

{P0=0xf7;P2=0xf7;del();P0=0xff;P2=0xff;}

}

}

 

//////////////////////////////////实现开关的程序////////////////////////////////

#include<reg52.h>   /*P1口输入p0口输出*/

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3;

sbit P0_0=P0^0;

del()  /*延时0.2*/

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=30;j>0;j--)

for(k=248;k>0;k--);

}

main()

{

while(1)/*永远为真,一直执行下去*/

{

if(P10==0)

{P0=0xfe;P2=0xfe;del();

if(P10==0){P0=0xff;P2=0xff;del();}}

 

if(P11==0)

{P0=0xfd;P2=0xfd;del();

if(P11==0){P0=0xff;P2=0xff;del();}}

 

if(P12==0)

{P0=0xfb;P2=0xfb;del();

if(P12==0){P0=0xff;P2=0xff;del();}}

 

if(P13==0)

{P0=0xf7;P2=0xf7;del();

if(P13==0){P0=0xff;P2=0xff;del();}}

}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值