找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2093|回复: 9
收起左侧

单片机数码管原理图设计出错,导致硬件电路的段选和位选单片机I/O口位置错乱

[复制链接]
ID:982127 发表于 2021-11-18 11:08 | 显示全部楼层 |阅读模式
51单片机与数码管相连时原理图设计出错,导致硬件电路的段选和位选I/O口位置错乱
硬件的段选:(a~dp)P2.5,P0.6,P0.3,P0.1,P0.0,P2.6,P0.4,P0.2
位选:P2.4,P2.7,P0.7,P0.5
正确设计:

正确的连法

正确的连法

我的错误设计:

我的错误连法

我的错误连法


硬件已来不及更改,可不可在软件编程时解决这个问题。

急急急急!
回复

使用道具 举报

ID:277550 发表于 2021-11-18 13:24 | 显示全部楼层

把电阻调换,可以在程序可以随需要而更换不同的IO的。
回复

使用道具 举报

ID:123289 发表于 2021-11-18 13:41 | 显示全部楼层
当然可以了。
回复

使用道具 举报

ID:161164 发表于 2021-11-18 14:06 | 显示全部楼层
void Re_IO(char dat)
{
P25 = dat & 0x01;
P06 = dat & 0x02;
P03 = dat & 0x04;
P01 = dat & 0x08;
P00 = dat & 0x10;
P26 = dat & 0x20;
P04 = dat & 0x40;
P02 = dat & 0x80;
}
回复

使用道具 举报

ID:584814 发表于 2021-11-18 14:47 | 显示全部楼层
如果原先的软硬件都没问题,直接调整软件就好,无需动硬件的。
回复

使用道具 举报

ID:624769 发表于 2021-11-18 14:59 | 显示全部楼层
你们是组团拼多多打板的么? 感觉这礼拜,这问题答了4~5次了。

sbit        duana        = P2^5;
sbit        duanb        = P0^6;
sbit        duanc        = P0^3;
sbit        duand        = P0^1;
sbit        duane        = P0^0;
sbit        duanf        = P2^6;
sbit        duang        = P0^4;
sbit        duandp        = P0^2;

sbit        wei0        = P2^4;
sbit        wei1        = P2^7;
sbit        wei2        = P0^7;
sbit        wei3        = P0^5;

u8        LED_Buff[4];

void        Show_Led(u8 LED_Num)
{
        u8        Temp;
        wei0        = 1;
        wei1        = 1;
        wei2        = 1;
        wei3        = 1;        //如果是共阳极的话全 = 0;

        Temp        = LED_Buff[LED_Num];
        Temp <<= 1;
        duandp        = CY;
        Temp <<= 1;
        duang        = CY;
        Temp <<= 1;
        duanf        = CY;
        Temp <<= 1;
        duane        = CY;
        Temp <<= 1;
        duand        = CY;
        Temp <<= 1;
        duanc        = CY;
        Temp <<= 1;
        duanb        = CY;
        Temp <<= 1;
        duana        = CY;

        switch(LED_Num)
        {
                case 0:        wei0 = 0;        break;
                case 1:        wei1 = 0;        break;
                case 2:        wei2 = 0;        break;
                case 3:        wei3 = 0;        break;        //共阳的话,这里 = 1;
                default:        break;
        }
}


回复

使用道具 举报

ID:884147 发表于 2021-11-18 15:13 | 显示全部楼层
不动硬件是无法实现的,不能重做PCB就只能动手改PCB,把R6R8电阻去掉短接,P2.5P2.6串接电阻,其他的就交给软件了。当然还要看你选的什么单片机
回复

使用道具 举报

ID:824490 发表于 2021-11-18 15:33 | 显示全部楼层
电路不改,真的很难。。
原因是,有的段码接电阻了,有的没接,有的位码接电阻了,有的也没接,只是调IO的话:
当串电阻的段码遇上串了电阻的位码,数码管亮度明显不够。
当没串电阻的段码遇上同样没串电阻的位码,可能会把LED烧焦!
难,不改板真的难。
回复

使用道具 举报

ID:982258 发表于 2021-11-18 17:01 | 显示全部楼层
必须得改电路了,测试还是可以的,就是不能用来做产品,这样的产品是次品
回复

使用道具 举报

ID:96682 发表于 2021-11-19 06:29 来自触屏版 | 显示全部楼层
硬件要求和给出的电路图也没完全对上,这个不能只改程序还得改电路用飞线方法最好
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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