您现在所在的是:

三菱Mitsubishi

回帖:14个,阅读:1524 [上一页] [1] [2] [下一页]
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/25 13:25:14
#0楼
目前订做了一个2位的动态8421数字显示屏,程序搞了一周也没有成功,求教高手指导一下,程序到底怎么写。(之前做过静态的,程序简单一些)

做屏的厂家只给了这个文字内容(y0-y3先放数据。再选通y4,再断开y4,再放另一数据。再选通y5,再断开y5,)
附件 1111.jpg


附件 微信图片_20190925131313.jpg
附件 微信图片_20190925131321.jpg
1092
tanglihao
文章数:27
年度积分:50
历史总积分:1092
注册时间:2010/9/18
发站内信
发表于:2019/9/25 15:14:46
#1楼
你这个接法是不是有问题。数码管动态显示时所有数码管的段码接到一个公用的I/O上, 在每个瞬间, 各个位数码管上的段码都是一样的, 要想在不同的位显示不同的信息, 必须用扫描显示的方式, 在一段时间内, 只点亮一个数码管, 其余的都处于关闭状态;下一个时间段内点亮下一个数码管, 其余的都处于关闭状态。如此循环, 造成一个视觉暂留的效果, 当闪烁的频率大于50Hz的时候, 人眼就分辨不出来了, 即各个位上显示的信息就“ 区分”开了。扫描频率过高, 每个位显示的时间太短, 数码管的亮度不够;扫描频率过低, 会有明显的闪烁感。这个时间需要根据不同的硬件电路, 做不同的调整, 而且跟数码管的个数有关, 一般的经验值延时10ms左右。也就是先选通y4,再断开y4,再放另一数据。再选通y5,再断开y5。选择不同的数码管通断
1092
tanglihao
文章数:27
年度积分:50
历史总积分:1092
注册时间:2010/9/18
发站内信
发表于:2019/9/25 15:20:53
#2楼
从程序上可以这样实现,传一个BCD码到Y3Y2Y1Y0,同时Y4通,Y5段,延时10ms,在传另一个BCD码到Y3Y2Y1Y0,同时Y5通,Y4断。
2191
chengfeil123
文章数:142
年度积分:310
历史总积分:2191
注册时间:2010/7/16
发站内信
发表于:2019/9/25 16:20:25
#3楼
要BCD指令转换后在输出给Y
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/25 17:13:16
#4楼
以下是引用tanglihao2019/9/25 15:14:46的发言:
你这个接法是不是有问题。数码管动态显示时所有数码管的段码接到一个公用的I/O上, 在每个瞬间, 各个位数码管上的段码都是一样的, 要想在不同的位显示不同的信息, 必须用扫描显示的方式, 在一段时间内, 只点亮一个数码管, 其余的都处于关闭状态;下一个时间段内点亮下一个数码管, 其余的都处于关闭状态。如此循环, 造成一个视觉暂留的效果, 当闪烁的频率大于50Hz的时候, 人眼就分辨不出来了, 即各个位上显示的信息就“ 区分”开了。扫描频率过高, 每个位显示的时间太短, 数码管的亮度不够;扫描频率过低, 会有明显的闪烁感。这个时间需要根据不同的硬件电路, 做不同的调整, 而且跟数码管的个数有关, 一般的经验值延时10ms左右。也就是先选通y4,再断开y4,再放另一数据。再选通y5,再断开y5。选择不同的数码管通断

具体接法是订做的地方给的接线图,他们专业作这个的应该不会错的吧,主要还是程序不会写。
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/25 17:16:33
#5楼
以下是引用tanglihao2019/9/25 15:20:53的发言:
从程序上可以这样实现,传一个BCD码到Y3Y2Y1Y0,同时Y4通,Y5段,延时10ms,在传另一个BCD码到Y3Y2Y1Y0,同时Y5通,Y4断。

只能是再试试了,我传送二位数,但2个数码管都是显示个位数,如15,显示55.19,显示99,就是这样。
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/25 17:17:05
#6楼
以下是引用chengfeil1232019/9/25 16:20:25的发言:
要BCD指令转换后在输出给Y

你这个说的是静态的数码管吧。
7968
蜀中之首
文章数:5230
年度积分:50
历史总积分:7968
注册时间:2018/5/27
发站内信
发表于:2019/9/25 23:05:34
#7楼
程序上有时序错误
因为懒得找手册了,你能备注一下,每个指令的含义吗,或发个手册
你现在用的这类数码显示,是带数据锁存,带译码的二位数字显示,不属于动态显示,属于静态显示。
首先你要确认此数码接收的数据范围,BCD还是BIN,
选通是高电平有效,还是低电平有效,还是前沿有效,还是后沿有效
时序

附件 untitled1.jpg

用欧姆龙的做了一个最笨(不是最简,但直观)的程序,假设数据放在H0,H0.0~H0.3是个位数,H0.4~H0.7是十位数的1248

附件 untitled2.jpg
制造一个循环脉冲
附件 untitled3.jpg
十位显示控
附件 untitled4.jpg
个位显示控
附件 untitled5.jpg
复位数据
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/26 0:57:17
#8楼
以下是引用chengfeil1232019/9/25 16:20:25的发言:
要BCD指令转换后在输出给Y
按你说的已经可以显示了,但是出现了另一个问题,数据为23时,数据跳动,23,24,25,不能保持在23是怎么回事?
此帖发自手机工控论坛
1732
tfqkkkk
文章数:195
年度积分:53
历史总积分:1732
注册时间:2008/7/3
发站内信
发表于:2019/9/26 1:01:15
#9楼
回复 #7楼 蜀中之首
感谢这么详细的回复,还带程序,目前已经基本能显示了,但是个位数据会跳动,如23会一直跳动23,24,25,不知道是什么原因

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004