找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4630|回复: 12
收起左侧

用面包板搭建51单片机遇到一个问题,想请教一下大家!

  [复制链接]
ID:404479 发表于 2018-10-14 21:02 来自手机 | 显示全部楼层 |阅读模式
如图,我用面包板搭建了一个89c52单片机,单片机运行正常,烧录资料也是正常的,我在P2口弄了8颗发光二极管,经测试,P2^0—P2^7口,全部正常,都可以输出低电平让8个发光二极管全发光,也可以闪烁,用亮,延迟,灭,延迟亮,延迟,灭,延迟,反复循环的方法也可以实现流水灯,但是,当我用_crol_左移函数实现流水灯时,为什么P2口灯全部都不亮,全是熄灭状态,插上电,就P2^0的灯亮了一下,就没反应了,我想请教一下各位,这是哪里出了问题,是因为缺少什么元器件吗?我实在是不解,为什么这个程序在开发板上面能够正常执行,到了面包板就执行不了了,求解!
程序(复制过程中可能有缺漏,但原程序已经在开发板运行ok过了)
#include "reg52.h"                       
#include<intrins.h>       
typedef unsigned int u16;         
typedef unsigned char u8;
#define led P2          
void delay(u16 i)
{
        while(i--);       
}

void main()
{
        u8 i;
        led=0xfe;
        delay(50000); //大约延时450ms       
        while(1)
        {       
                for(i=0;i<8;i++)
                {
                        P2=~(0x01<<i);         
                        delay(50000);
                }

                for(i=0;i<7;i++)         //将led左移一位
                {
                        led=_crol_(led,1);
                        delay(50000); //大约延时450ms       
                }
                for(i=0;i<7;i++)        //将led右移一位
                {
                        led=_cror_(led,1);
                        delay(50000);
                }       
        }               
}
IMG_20181014_203632.jpg
回复

使用道具 举报

ID:74187 发表于 2018-10-15 06:40 | 显示全部楼层
  1. temp = 0XFE;

  2.         while(1)
  3.         {

  4.            for(i = 0; i < 7;i++)
  5.                 {
  6.                     P2 = temp;
  7.                         temp = _crol_(temp,1);         
  8.                         Delay500ms();//500ms延时 11.0592MHZ
  9.                 }

  10.                 for(i = 0; i < 7;i++)
  11.                 {                              
  12.                     P2 = temp;
  13.                         temp = _cror_(temp,1);
  14.                         Delay500ms();//500ms延时 11.0592MHZ
  15.                 }
  16. }
复制代码


参考这个,把TEMP的值赋给PO口
回复

使用道具 举报

ID:224003 发表于 2018-10-15 09:24 | 显示全部楼层
面包板就是这样的,已经遇到多次了
估计是拉出来的引线太长,干扰太多了
回复

使用道具 举报

ID:213173 发表于 2018-10-15 09:59 | 显示全部楼层
调整一下循环顺序就好了
#include "reg52.h"                        
#include<intrins.h>        
typedef unsigned int u16;         
typedef unsigned char u8;
#define led P2         
void delay(u16 i)
{
        while(i--);        
}

void main()
{
        u8 i;
        led=0xfe;
        delay(50000); //大约延时450ms        
        while(1)
        {        
                for(i=0;i<8;i++)
                {
                        led=~(0x01<<i);         
                        delay(50000);
                }
                for(i=0;i<7;i++)        //将led右移一位
                {
                        led=_cror_(led,1);
                        delay(50000);
                }        
                for(i=0;i<7;i++)         //将led左移一位
                {
                        led=_crol_(led,1);
                        delay(50000); //大约延时450ms        
                }
        }               
}

回复

使用道具 举报

ID:404479 发表于 2018-10-15 11:30 来自手机 | 显示全部楼层
我在想是不是引线太长,导致电阻太大了!
回复

使用道具 举报

ID:351739 发表于 2018-10-15 11:35 | 显示全部楼层
检验面包板电路与开发板是否相同,如果没问题,就换到面包板的其他地方试试
回复

使用道具 举报

ID:409939 发表于 2018-10-15 14:33 | 显示全部楼层
这个问题,比对一下面包板和开发板的LED输出的不同。
回复

使用道具 举报

ID:410016 发表于 2018-10-15 15:59 来自手机 | 显示全部楼层
tanghao8887 发表于 2018-10-15 11:30
我在想是不是引线太长,导致电阻太大了!

我看应该,是的
回复

使用道具 举报

ID:409724 发表于 2018-10-15 16:55 | 显示全部楼层
换另外一个阻值相对较小的开发板  如果调试OK的话 就是阻值问题 有什么不懂的就回我 我给你解答
回复

使用道具 举报

ID:410125 发表于 2018-10-15 19:19 | 显示全部楼层
面包板的电路(如:晶振、单片机)与开发板一样吗?
回复

使用道具 举报

ID:404479 发表于 2018-10-16 00:24 来自手机 | 显示全部楼层
wulin 发表于 2018-10-15 09:59
调整一下循环顺序就好了
#include "reg52.h"                        
#include        

谢谢你,大神啊,你这种方法流水灯果然会走,但是为什么,它只往右循环,不往左循环啊,这是什么情况啊!
回复

使用道具 举报

ID:404479 发表于 2018-10-16 00:27 来自手机 | 显示全部楼层
赵杰 发表于 2018-10-15 16:55
换另外一个阻值相对较小的开发板  如果调试OK的话 就是阻值问题 有什么不懂的就回我 我给你解答

我把发光二极管全部移到了P2口旁边,距离很近,但还是不行
回复

使用道具 举报

ID:409682 发表于 2018-10-16 00:38 | 显示全部楼层
for(i=0;i<8;i++)
                {
                        led=~(0x01<<i);  
这段有问题,删除后直接用_cror_或者_crol_移动
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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