数码管有四位一体的,只用一个就行了,你这用两个二位一体的数码管,电路就显得有些乱。
还有,你那数码管的段控端少接一条导线,就是数码管的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单片机程序。一个计数按键次数点亮灯的程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)