找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-12-5 17:19 | 只看该作者
你要测P3输出,就要 P3 = 0xff 之后 用万用表电压档,黑表笔接GND 红表笔测量 P3 每个IO的电压, 单片机IO正常输出只有几十uA  你用LED测量能量出啥?
回复

使用道具 举报

板凳
ID:342822 发表于 2021-12-5 18:56 | 只看该作者
P3_5接口瓦特了
回复

使用道具 举报

地板
ID:908826 发表于 2021-12-5 19:00 | 只看该作者
单说你这句话:P3都拉高的前提下,还是有个口是低电平的话,那就是你硬件有问题了。剩下的话没仔细看。
回复

使用道具 举报

5#
ID:988270 发表于 2021-12-5 20:11 | 只看该作者
188610329 发表于 2021-12-5 17:19
你要测P3输出,就要 P3 = 0xff 之后 用万用表电压档,黑表笔接GND 红表笔测量 P3 每个IO的电压, 单片机IO ...

不是直接接的LED,是通过74HC573接的,其他IO口能正常输出驱动LED灯的,就这个接口有问题。
回复

使用道具 举报

6#
ID:988270 发表于 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);       
        }
}
回复

使用道具 举报

7#
ID:624769 发表于 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 了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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