登录
首页 单片机论坛
回帖 发帖
正文

主题:51单片机动态数码管显示

点击:826 回复:7

仿真没有问题,现在到单片机就会一直闪
附件 微信图片_20210615212421.jpg
附件 微信图片_20210615212432.jpg
附件 微信图片_20210626204920.jpg
21-12-28 20:53
可能你的电路板p2不是对应数码管的.
21-12-28 21:18
动态扫描OK?
21-12-28 21:50
试一下这个看看。
duan=seg_dat[1];//显示1
dil=0;
delay(2);
dil=1;
duan=seg_dat[3];//显示3
di2=0;
delay(2);
di2=1;
duan=seg_dat[1];//显示1
di3=0;
delay(2);
di3=1;
duan=seg_dat[4];//显示4
di4=0;
delay(2);
di4=1;
21-12-29 10:01
再试试下面这种:
void Write_LED(unsigned char b,unsigned char dat)//写位,写数字
{
duan=0x00;
       switch(b)
{
case 1://显示第1位
di2=1;di3=1;di4=1;dil=0;
break;
case 2://显示第2位
di1=1;di3=1;di4=1;di2=0;
break;
case 3://显示第3位
di1=1;di2=1;di4=1;di3=0;
break;
case 4://显示第4位
di1=1;di2=1;di3=1;di4=0;
break;
default://错误位
di1=1;di2=1;di3=1;di4=1;
break;
}
duan=seg_dat[dat];//显示数字
}
Write_LED(1,1);
delay(2);
Write_LED(2,3);
delay(2);
Write_LED(3,1);
delay(2);
Write_LED(4,4);
delay(2);
最后修改:2021/12/29 14:14:56
21-12-29 10:20
普中板!表情表情表情
我的应还能用。
话说,最近这么多学单片机的?
被PLC疯涨的价格跟无限的货期搞怕了?
问题有2个:
1,硬件问题,我依稀记忆中,数码管段,位都不是直驱,通过138等驱动的。
2,软件,用你仿真电路,消影也要加时间,防止暂留视觉残影。显示,消影2个时间配合,可正常显示。
特别提醒下,
普中板例程,为教学而写以后不要照搬。
象显示程序,占时巨大。用锁存芯片或开个定时器按时刷新,占时更少,更合理。
最后修改:2021/12/31 9:04:46
21-12-30 08:10
应该用数码管专用驱动芯片,SPI接口,只需要三根驱动信号线就搞定,直接把数据丢进驱动芯片,让它自己扫描驱动,这种方式才是最终的王道,例如:TM1620,才一块多钱,一个芯片可以驱动6位数码管,爽的不要不要的。
21-12-30 09:38

引用 微鑫科技 在 2021/12/30 9:38:13 发言【内容省略】

要节省IO口,那就用驱动芯片吧
22-01-03 21:10

工控新闻

更多新闻资讯