找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机6个IO口扫描数码管驱动,我单灯可以点亮,0-9跳转不成麻烦大神指教思路

查看数: 2243 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-11-30 21:55

正文摘要:

各位大神,用IO口驱动数码管,单灯给值扫描正常,0~9数字跳转实现不了,是哪里逻辑错误了。。 单片机源程序如下: void LED_Init(void) {    PORTA = 0;    TRISA0 = 1;     ...

回复

ID:344646 发表于 2022-12-1 19:58
yzwzfyz 发表于 2022-12-1 17:22
不急:
弄懂显示的原理。
建议先画个显示0-9的真值表。按表写驱动程序就可以了。

好的,按照上面两位的思路整理了下程序,基本可以了
ID:344646 发表于 2022-12-1 19:57
zjjhtony 发表于 2022-12-1 11:39
这个灯需要一个定时器对他IO口进行定时循环扫描,在数据的处理上要化点时间。
处理过2个这样的LED程序。

好的,是这样的思路,谢谢~
ID:123289 发表于 2022-12-1 17:22
不急:
弄懂显示的原理。
建议先画个显示0-9的真值表。按表写驱动程序就可以了。
ID:213173 发表于 2022-12-1 12:28
declansang 发表于 2022-12-1 09:49
感谢指点,我目前是按查理复用设定的扫描方式去处理的,就是亮下一个灯的时候,上一个不论怎么配置不知道 ...

查理复用是需要软件、硬件配合。不能有效关闭LED多数是代码不对。
ID:18297 发表于 2022-12-1 11:39
这个灯需要一个定时器对他IO口进行定时循环扫描,在数据的处理上要化点时间。
处理过2个这样的LED程序。
ID:712493 发表于 2022-12-1 10:17
declansang 发表于 2022-12-1 09:49
感谢指点,我目前是按查理复用设定的扫描方式去处理的,就是亮下一个灯的时候,上一个不论怎么配置不知道 ...

这个复用模式,需要单片机的高阻模式不漏电,因为现在LED很小的驱动电流就会发亮1mA以下都可以,你要单独试个点,一IO高电平一次  低电平一次 另一IO一直高阻开漏模式  测试所处的点是否发亮,如发亮你怎么弄也不能有效关闭LED了
ID:161164 发表于 2022-12-1 09:49
本帖最后由 lkc8210 于 2022-12-1 10:57 编辑

代码不全

可以用Excel 算出段值用来比较,就可以简化代码



以下的Disp()函数放到1ms中断里运行
Dat1/Dat2/Dat3的值是共阴数码管的码,k1k2对应bit0,bit1
ID:344646 发表于 2022-12-1 09:49
wulin 发表于 2022-12-1 09:19
这类数码管的驱动码编写有点麻烦,首先要选择有高阻输出模式的MCU,采用查理复用的方法编写驱动码,共有25 ...

感谢指点,我目前是按查理复用设定的扫描方式去处理的,就是亮下一个灯的时候,上一个不论怎么配置不知道为什么灭不掉。
ID:213173 发表于 2022-12-1 09:19
这类数码管的驱动码编写有点麻烦,首先要选择有高阻输出模式的MCU,采用查理复用的方法编写驱动码,共有25个笔段。小数点DP1、DP2只需2选1就能满足运用。空出的码位让给k2。这就得到24个实际使用笔段。最简单的应用是单管逐一显示,由于每个笔段只能显示1/25时间,可能视觉亮度不够。要减小限流电阻阻值。 查理复用IO驱动数码管.docx (92.31 KB, 下载次数: 15)


小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表