找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3443|回复: 13
收起左侧

stc15f101w单片机烧录成功,但是通电所有灯全亮,求教

[复制链接]
ID:883301 发表于 2021-2-9 14:11 | 显示全部楼层 |阅读模式
本帖最后由 msgd6688 于 2021-2-9 23:00 编辑

新手,用的stc15f101w(其实是买错了),使用了这位兄弟的代码http://www.51hei.com/bbs/dpj-106461-1.html ,在proteus里面用51仿真正常。
程序烧录也成功,但是通电以后所有灯全亮,没有闪烁效果,求解

增加之前的电路图,之前是用高电瓶驱动的,因为没有stc就用c51代替画的图
无标题.png
回复

使用道具 举报

ID:483456 发表于 2021-2-9 17:13 | 显示全部楼层
建议使用示波器看一下控制灯的IO口是否输出高低变化的电平。
回复

使用道具 举报

ID:483456 发表于 2021-2-9 17:14 | 显示全部楼层
建议使用示波器查看灯的IO口是否输出高低电平
回复

使用道具 举报

ID:213173 发表于 2021-2-9 17:18 | 显示全部楼层
虽然楼主链接的这个程序不咋地,甚至有错误,但还是可以勉强运行。程序烧录成功,但是通电以后所有灯全亮可能是楼主硬件电路有问题。
回复

使用道具 举报

ID:261025 发表于 2021-2-9 18:53 | 显示全部楼层
我用15F104W实验了 程序没问题   你在好好检查一下接线是否接错了
回复

使用道具 举报

ID:702386 发表于 2021-2-9 20:43 | 显示全部楼层
那位兄弟用的是四脚的三色LED灯吧。

1.jpg
回复

使用道具 举报

ID:883301 发表于 2021-2-9 22:36 | 显示全部楼层
418854190 发表于 2021-2-9 18:53
我用15F104W实验了 程序没问题   你在好好检查一下接线是否接错了

跟我是高电平驱动有关吗,刚刚学到这
回复

使用道具 举报

ID:213173 发表于 2021-2-10 07:18 | 显示全部楼层
原程序作者是采用低电平驱动,楼主改高电平驱动要把LED驱动码通通取反,采用stc15f101w还要修改IO口输出模式。
void main()
{
    int t=0;
    char f=0;//亮暗标志,0为亮
        P3M0 = 0xff;//推挽输出模式
        P3M1 = 0x00;//推挽输出模式

    Init();
    while(1) //主循环。
    {
        ......
回复

使用道具 举报

ID:811405 发表于 2021-2-10 11:35 | 显示全部楼层
程序设置后硬件电路不对应,导致与输出结果不一致
回复

使用道具 举报

ID:883301 发表于 2021-2-10 11:57 | 显示全部楼层
wulin 发表于 2021-2-10 07:18
原程序作者是采用低电平驱动,楼主改高电平驱动要把LED驱动码通通取反,采用stc15f101w还要修改IO口输出模 ...

按照你说的,我改了模式,然后改成低电平驱动还是6个IO口接的灯都全亮,会是这个单片机坏了吗?烧录都一直成功
回复

使用道具 举报

ID:213173 发表于 2021-2-10 14:16 | 显示全部楼层
msgd6688 发表于 2021-2-10 11:57
按照你说的,我改了模式,然后改成低电平驱动还是6个IO口接的灯都全亮,会是这个单片机坏了吗?烧录都一直 ...

楼主先按下面闪烁灯程序验证你的硬件是否正常,免得搞不清是驴不走还是磨不转。
#include <reg51.H>

/**1ms延时子程序(11.0592MHz 1T)****/
void delay(unsigned int k)
{
        unsigned int i,j;
        for(i=k;i>0;i--)
                for(j=829;j>0;j--);
}

void main()
{
        while(1)
        {
                P3=~P3;
                delay(500);//0.5秒
        }
}
回复

使用道具 举报

ID:748788 发表于 2021-2-10 15:02 | 显示全部楼层
建议检查一下101w的io口是否正常,没有仪器用万用表也行,用led逐个检查也行
回复

使用道具 举报

ID:883857 发表于 2021-2-10 15:05 | 显示全部楼层
为什么我第一反应是用的晶振频率过大,延时效果看不出来
回复

使用道具 举报

ID:883860 发表于 2021-2-10 15:16 | 显示全部楼层
很大概率是硬件连接问题, 我debug时一般会写个简单程式来逐个点亮熄灭每个灯,如果硬件没有问题,再来分析代码问题, 把功能减到最少比如1个灯再来确认,确认好再逐步添加功能,希望这个思路能帮到你!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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