基于51单片机的按键计数设计,4位,0到9999

基于51单片机的按键计数设计,4位,0到9999,第1张

数码管有四位一体的,只用一个就行了,你这用两个二位一体的数码管,电路就显得有些乱。

还有,你那数码管的段控端少接一条导线,就是数码管的G端也要连线哪。

更重要的是,共阳数码管位控端用三极管驱动,当写程序扫描时,数码管不亮。

你这个按键电路不行,你要加上一个上拉电阻才行,不然按键没按时,其IO口状态无法识别出是高电平还是低电平。

char j=0;//没空格

void jj(void)    //没参数就写个void

你这个代码有个很大的缺陷就是按键检测放在主循环里调用,你稍微按一下,程序都可以执行了几遍按键检测了,所以你无法可以正常按一次显示一次计数值,避免这个问题就是加一个标志位,按下后标志位置1,松开按键标志位清0,标志位为0时才开始按键检测,另外按键检测与数码管显示最好就分开来写,这样出问题也知道该修改哪里

本设计将按键接到P32上,利用外中断0实现按键次数的累加,最好是使用计数器,不过有点忘了就用了外中断呵呵

#include<reg52h>

sbit led=P1^0;//led共阴极接法

char i=1;定义次数计数器

void main()

{

led=0;//熄灭灯

TMOD=0X11;//计数器0设置为16计数器

EA=1;//外中断0边沿触发

IT0=1;

EX0=1;

while(1)

{

if(i%50==0)

led=~led;//是50的倍数灯状态改变

}

}

void ISR_INT0 interrupt 0

{

if(i<255)

i++;

else

i=0;

}

感觉还是我的简单呵呵,你自己看着选吧

以上就是关于基于51单片机的按键计数设计,4位,0到9999全部的内容,包括:基于51单片机的按键计数设计,4位,0到9999、51单片机按键式计数器 程序一直显示有错,在void(jj),请帮忙解答一下、哪位大师能帮我写一个51单片机程序。一个计数按键次数点亮灯的程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9330968.html

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

发表评论

登录后才能评论

评论列表(0条)

保存