c51单片机怎么用两个按键控制两个数码管的加减,加到99就好,求程序

c51单片机怎么用两个按键控制两个数码管的加减,加到99就好,求程序,第1张

1、首先先在proteus画出仿真图,方便仿真程序

2、接着来编写程序,先来写入头函数

2、根据自己在proteus画的图,定义一下管脚根据你的原理图进行编写。

3、然后写一个延时函数,来调节流水灯的时间间隔延时时间自己定义。

4、下图就是主函数,包括流水灯的反复循环和j流水灯的方向。

5、检查没有错误,编译一下,就可以进行仿真了。

假设P0 P1口各接一个数码管,p2.0接按键,程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit key=P2^0

uchar num=0

//共阴数码管七段码

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77}

void Delay1ms(uint i) //1ms延时程序

{

uint j

for(i>0i--)

{

for(j=0j<164j++)

{}

}

}

void main(void )//主程序

{

while(1)

{

if(key==0)//判断按键是否按下

{

Delay1ms(10)//延时消抖

if(key==0)

{

while(key==0)//等待按键抬起

num++

if(num==20)num=0

}

}

P0=table[num%10]

P1=table[num/10]

}

}

汇编很久没用过了,提供一下思路,供参考!

可采用计时的方式,检测按键按下状态超过2秒后,数据开始增大递加递减的步距(之前是每次加减1,增大后,每次加减10),松开按键后,计时器清零!

采用计次的方式也可以实现,按键后,数据递加或递减一次,延时300毫秒,再次检测按键,未松开,继续递加,加满5次后,开始增发递加或递减步距,松开按键后,计次清零!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11074595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存