[STC单片机] stc15f104w不能正常输出高低电平?!!求助!

[复制链接]
5817|25
 楼主| 夜之星 发表于 2017-3-26 15:32 | 显示全部楼层 |阅读模式
用这款单片机之前做过项目,能正常使用,但过了一段时间再来用的时候就出现问题了!连正常的IO口操作都不行!为此我从以下这些方面来找问题:
1:防止是程序问题,写了个最简单的让P3口在死循环里一直取反(和一个让P3=0x00),用示波器观察输出波形,发现没有出现方波,出现的是杂波,用万用表测量一直是高电平;
2:怀疑是头文件和keil里的芯片型号选择问题,查看该芯片手册说“开发环境:在  Keil C 开发环境中,选择 Intel 8052 编译,头文件包含<reg51.h>即可”,按此进行配置烧录进去还是一直是高电平;
3:怀疑是芯片本身损坏,从宏晶原厂买了10片该型号芯片重复试验还是IO口一直是呈现高电平(无论程序对IO是怎样操作的);
4:怀疑是keil配置或stc-isp下载软件配置有问题,按照stc官网下载的工程建立教程和ISP下载教程一步一步进行,烧录进去问题还是依旧,软件用的是最近版的V6.86;
5:怀疑是晶振频率设置有问题,把每一个晶振频率都试了一遍,还是没有解决;
6:怀疑是自己电脑问题,用别人的电脑进行相同的试验还是相同的问题;
经过以上分析排除之后还是没有解决,感觉已经没有办法了,说前来求助各位前辈,我大致知道应该是keil或下载软件这一块的配置问题导致芯片没有工作的问题,但是具体问题出在哪查了块一个月了还是没查出来。。。。。。。
 楼主| 夜之星 发表于 2017-3-26 15:42 | 显示全部楼层
这是截屏

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 夜之星 发表于 2017-3-26 16:57 | 显示全部楼层
有人吗?没人我自己顶
 楼主| 夜之星 发表于 2017-3-26 19:59 | 显示全部楼层
xbyu520 发表于 2017-3-26 20:31 来自手机 | 显示全部楼层
我来帮你顶,这个单片机我以前用过。
xbyu520 发表于 2017-3-26 20:32 来自手机 | 显示全部楼层
建议用手册里的程序先试一下。
 楼主| 夜之星 发表于 2017-3-26 20:51 | 显示全部楼层
xbyu520 发表于 2017-3-26 20:32
建议用手册里的程序先试一下。

感觉应该不是程序的问题,之前用过的程序没有改过。。。。
tanm 发表于 2017-3-26 22:09 | 显示全部楼层
chunyang 发表于 2017-3-26 23:06 | 显示全部楼层
应该是程序或烧录的问题,注意本振源,别搞错了内置、外置。
zhangxiyi5277 发表于 2017-3-27 00:23 来自手机 | 显示全部楼层
为毛用他的isp添加到keil里面,这款记得某个所谓串口继电器带的就是,我之前玩的时候也是不行,然后老老实实的选他的mcu然后老老实实的复制粘贴例子
@若水 发表于 2017-3-27 08:50 | 显示全部楼层
直接用ISP软件自带的例程试一下
Ketose 发表于 2017-3-27 12:46 | 显示全部楼层
原理图发现来看看。
lihui567 发表于 2017-3-27 12:55 | 显示全部楼层
硬件电路有问题吧
yangxf1217 发表于 2017-3-27 13:33 | 显示全部楼层
示波器有问题
山东电子小菜鸟 发表于 2017-3-27 23:32 | 显示全部楼层
小十哦 发表于 2017-4-1 14:56 | 显示全部楼层
你可以用范例程序测试下啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
令界剑 发表于 2017-4-1 16:14 | 显示全部楼层
P3.0和P3.1是不是特殊口来的,你试试看用P35,P34,P33,测试一遍看看。
coody 发表于 2017-4-1 21:39 | 显示全部楼层
多试几个IC看看
Lbsonggz 发表于 2017-4-2 07:02 | 显示全部楼层
1)延时程序可能有毛病
2)  硬件电路或电源问题,反复复位
3)特殊引脚是否开漏输出
liubeihua 发表于 2017-4-6 12:35 | 显示全部楼层
端口未初始化

#include <reg51.h>
sbit led1=P3^0;  
sbit led3=P3^1;
sbit led5=P3^2;
sbit led7=P3^3;
sbit led7=P3^4;

void port_init(void)
{
        P3M1=0x00;
        P3M0=0x1F;
        P3 = 0x1F;
}

void Delay10ms(unsigned int c)                //@11.0592MHz
{
        unsigned char a,j;

        for(c;c>0;c--)
        {
                for(b=38;b>0;b--)
                {
                        for(a=130;a>0;a--)
                }
        }
}

void main()
{
        port_init();
led1=0;   
led3=0;
led5=0;
led7=0;
P3=0;
        while(1)
        {
                led1=0; Delay10ms(100);
                led1=1; Delay10ms(100);
        }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部