用51帮忙写个c语言程序,按键计数,按一下键显示数字加一,两个按键控制分别控制两个数码管的计数显示

用51帮忙写个c语言程序,按键计数,按一下键显示数字加一,两个按键控制分别控制两个数码管的计数显示,第1张

#include <reg51.h>

sbit k1=P3^0

sbit k2=P3^1

unsigned char shi,ge

unsigned char code 敬做tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //共阳极数码管亮春衡

void 森脊delay(unsigned int z)

{

unsigned int x,y

for(x=zx>0x--)

for(y=110y>0y--)

}

void display()

{

P2=0x01

P0=tab[shi]

delay(10)

P2=0x02

P0=tab[ge]

delay(10)

}

void keyscan()

{

if(k1==0)

{

delay(2)

if(k1==0)

{

while(!k1)

shi++

if(shi==10)

shi=0

}

}

if(k2==0)

{

delay(2)

if(k2==0)

{

while(!k2)

ge++

if(ge==10)

{

ge=0

shi++

if(shi==10)

shi=0

}

}

}

}

void main()

{

while(1)

{

display()

keyscan()

}

}

1、在主程序绝握中一直扫描显示程序

2、通过按键触发中断 在中好行断里面进行计数

3、每有一次中断触发 计数指针加一

4、并袜庆加够10次后指针恢复初始状态 即清零

这个实现有好几中方法,你可以用定时器的计数功能,枯银扮比如说用定时器0方式2,设置初值为TH0=#0F5H,TL0=#0F5H.还可以用外部中断实现:在主程序中对按键次数计数,到了10软件触发外部中断(CLR P3.2),在中断搏告服务子程序中将没灶p3.2置1,返回后再跳去统计按键次数。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存