找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1181|回复: 7
打印 上一主题 下一主题
收起左侧

请教一下这个数码管的位选段选的写法怎么写?

[复制链接]
跳转到指定楼层
楼主
我用查理复用写的数码管显示,结果亮度不够,请问如果用位选,段选写法怎么写?脚位太多了
//------------------------------------------扫描数码管-------------------------------------//
void LED_SCAN(void)
{
    SEG++;
    if(SEG>15){SEG=1;}
    PIN1=PIN2=PIN3=PIN4=PIN5=PIN6=PIN7=PIN8=PIN9=PIN10=0;
    //pin1=pa2,pin2=pa3,pin3=pb2,pin4=pb1,pin5=pb0,pin6=pb7,pin7=pb6,pin8=pb5,pin9=pb4,pin10=pa0
    //IOSTA   = 0XFD;1011 1101     IOSTB   = 0XFF;1101 11011
    //if(SEG==0){IOSTA=0XFD;IOSTB=0XFF;PIN10=1;PIN9=1;}
    //PIN1=PB1;PIN2=PB0;PIN3=PA4;PIN4=PA3;PIN5=PA2;PIN6=PA0;PIN7=PA1;PIN8=PA7;PIN9=PA6;PIN10=PB5
    if(SEG==1){IOSTA=0XBF;IOSTB=0XFD;if(data[0]&0x01)PIN1=1,PIN10=1;else PIN9=0;PIN1=0;}
   
    if(SEG==2){IOSTA=0XBF;IOSTB=0XFE;if(data[0]&0x02)PIN2=1,PIN10=1;else PIN9=0;PIN2=0;}
    if(SEG==3){IOSTA=0XAF;IOSTB=0XFF;if(data[0]&0x04)PIN3=1,PIN10=1;else PIN9=0;PIN3=0;}
    if(SEG==4){IOSTA=0XB7;IOSTB=0XFF;if(data[0]&0x08)PIN4=1,PIN10=1;else PIN9=0;PIN4=0;}
    if(SEG==5){IOSTA=0XBB;IOSTB=0XFF;if(data[0]&0x10)PIN5=1,PIN10=1;else PIN9=0;PIN5=0;}
    if(SEG==6){IOSTA=0XBE;IOSTB=0XFF;if(data[0]&0x20)PIN6=1,PIN10=1;else PIN9=0;PIN6=0;}
    if(SEG==7){IOSTA=0XBD;IOSTB=0XFF;if(data[0]&0x40)PIN7=1,PIN10=1;else PIN9=0;PIN7=0;}
   
    if(SEG==8){IOSTA=0XFF;IOSTB=0XDD;if(data[1]&0x01)PIN1=1,PIN9=1;else PIN10=0;PIN1=0;}
   
    if(SEG==9){IOSTA=0XFF;IOSTB=0XDE;if(data[1]&0x02)PIN2=1,PIN9=1;else PIN10=0;PIN2=0;}
    if(SEG==10){IOSTA=0XEF;IOSTB=0XDF;if(data[1]&0x04)PIN3=1,PIN9=1;else PIN10=0;PIN3=0;}
   
    if(SEG==11){IOSTA=0XF7;IOSTB=0XDF;if(data[1]&0x08)PIN4=1,PIN9=1;else PIN10=0;PIN4=0;}
   
    if(SEG==12){IOSTA=0XFB;IOSTB=0xDF;if(data[1]&0x10)PIN5=1,PIN9=1;else PIN10=0;PIN5=0;}
   
    if(SEG==13){IOSTA=0XFE;IOSTB=0xDF;if(data[1]&0x20)PIN6=1,PIN9=1;else PIN10=0;PIN6=0;}
   
    if(SEG==14){IOSTA=0XFD;IOSTB=0xDF;if(data[1]&0x40)PIN7=1,PIN9=1;else PIN10=0;PIN7=0;}
   
    if(SEG==15){IOSTA=0X7F;IOSTB=0xDF;if(data[1]&0x80)PIN8=1,PIN9=1;else PIN10=0;PIN8=0;}
}

51hei图片_20241118114636.jpg (52.64 KB, 下载次数: 0)

51hei图片_20241118114636.jpg

51hei图片_20241118114655.png (42.56 KB, 下载次数: 0)

51hei图片_20241118114655.png

51hei图片_20241216100549.png (14.48 KB, 下载次数: 0)

51hei图片_20241216100549.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2024-12-16 10:58 | 只看该作者
这是单纯的共阴数码管啊
不用什么查理复用
回复

使用道具 举报

板凳
ID:1109793 发表于 2024-12-16 13:04 | 只看该作者
对啊,就是两位共阴的动态
回复

使用道具 举报

地板
ID:1133081 发表于 2024-12-16 15:00 | 只看该作者
按两位共阴数码管接线,上面的8字段码就是常用的共阴数码管段码,下面电量图形对照段点显示要求自己编个共阴码,基本没有难度。出错不要怕,很容易修改。
回复

使用道具 举报

5#
ID:23640 发表于 2024-12-16 15:37 | 只看该作者
亮度不够是不是因为你刷新频率太快了
回复

使用道具 举报

6#
ID:1140002 发表于 2024-12-16 17:16 | 只看该作者
人眼视觉残留是50hz也就是20ms,增大亮度可以把数码管扫描时间加长,但总时间不能超过20ms。
回复

使用道具 举报

7#
ID:1140002 发表于 2024-12-16 17:18 | 只看该作者
1.增加扫描时间,但数码管所有段总时间要小于20ms
2.减小限流电阻,或者单片机IO口有大电流驱动
3.用三极管驱动,放大电流
回复

使用道具 举报

8#
ID:1109793 发表于 2024-12-17 07:23 | 只看该作者
亮度不够大概率是驱动时序问题。两位交替显示,和扫描速度关系不大
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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