标题: 51单片机IO口赋值后为什么某个IO口还是没改? [打印本页]

作者: 天赋异禀    时间: 2021-12-5 17:00
标题: 51单片机IO口赋值后为什么某个IO口还是没改?
      在做动态数码管显示程序的时候,发现显示的字符一直不对,开始测试P3的各个IO口,发现赋值P3=0xFF后,单独测试各个IO口的电平(通过跳线一段连LED灯,另一端连P3的各个IO口),发现P3_5接口输出的还是低点平,有人知道是什么原因吗?会不会是硬件问题。程序很简单就一个位选,用P2选择,一个段选用P3表示具体符号。

51hei图片_20211205165513.jpg (388.08 KB, 下载次数: 42)

51hei图片_20211205165513.jpg

作者: 188610329    时间: 2021-12-5 17:19
你要测P3输出,就要 P3 = 0xff 之后 用万用表电压档,黑表笔接GND 红表笔测量 P3 每个IO的电压, 单片机IO正常输出只有几十uA  你用LED测量能量出啥?
作者: taotie    时间: 2021-12-5 18:56
P3_5接口瓦特了
作者: 13205495918    时间: 2021-12-5 19:00
单说你这句话:P3都拉高的前提下,还是有个口是低电平的话,那就是你硬件有问题了。剩下的话没仔细看。
作者: 天赋异禀    时间: 2021-12-5 20:11
188610329 发表于 2021-12-5 17:19
你要测P3输出,就要 P3 = 0xff 之后 用万用表电压档,黑表笔接GND 红表笔测量 P3 每个IO的电压, 单片机IO ...

不是直接接的LED,是通过74HC573接的,其他IO口能正常输出驱动LED灯的,就这个接口有问题。
作者: 天赋异禀    时间: 2021-12-5 23:06
我刚又用串口工具测试了一下,下面的程序当我给出P3_5=1,串口接收到的数据是01 01 01 00 00 00这样一直循环,但如果是P3_0接口就没有问题,这是硬件出问题了吗?还是设置的问题?
[code]#include <REGX52.H>
                                                                                                 
void UartInit(void)                //4800bps@12.000MHz
{
        PCON |= 0x80;                //使能波特率倍速位SMOD
        SCON = 0x50;                //8位数据,可变波特率 0101 0000
        TMOD &= 0x0F;                //设置定时器模式
        TMOD |= 0x20;                //设置定时器模式
        TL1 = 0xF3;                //设置定时初始值
        TH1 = 0xF3;                //设置定时重载值
        ET1 = 0;                //禁止定时器%d中断
        TR1 = 1;                //定时器1开始计时
        EA = 1;     //允许中断
        ES = 1;     //允许串口中断
}

void Send_Byte(unsigned char Byte)
{
        SBUF=Byte;
        while(TI==0);
        TI=0;
}
                                                                                         
main()
{

        UartInit();
        while(1)
        {
                P3_5=1;
                Send_Byte(P3_5);       
        }
}

作者: 188610329    时间: 2021-12-6 02:10
本帖最后由 188610329 于 2021-12-6 02:17 编辑
天赋异禀 发表于 2021-12-5 23:06
我刚又用串口工具测试了一下,下面的程序当我给出P3_5=1,串口接收到的数据是01 01 01 00 00 00这样一直循 ...

有可能是哪里碰线,导致被拉低,也有可能是锁紧座接触不良,你有什锦锉刀的话,取出芯片后,用什锦锉刀在夹P35引脚槽里打磨以下,再测试,如果好了,就一直01 01 01 01 01 了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1