找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机LED流水灯程序用crol函数的问题

[复制链接]
跳转到指定楼层
楼主
学习网上的教程做了一个流水灯,用到crol函数,用PROTUES仿真发现就一个灯闪其他都不亮,求大佬指导!!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:665391 发表于 2019-12-16 17:15 | 只看该作者
程序如下:
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>

sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
sbit P0_4 = P0^4;
sbit P0_5 = P0^5;
sbit P0_6 = P0^6;
sbit P0_7 = P0^7;

void delay(unsigned char a)
{
unsigned char i;
while(--a!=0)
{
        for(i=0;i<125;i++);
}
}

void main(void)
{
        unsigned char b;
        unsigned char i;
        while(1)
{
        b=0x7f;
        for(i=0;i<8;i++)
        {
        P0=_crol_(b,1);
        b=P0;
        delay(250);
        }
}
}


回复

使用道具 举报

板凳
ID:235200 发表于 2019-12-16 21:52 | 只看该作者
crol是循环左移,延时太短,程序中再加3个delay(250);试试
回复

使用道具 举报

地板
ID:213173 发表于 2019-12-16 22:12 | 只看该作者
本帖最后由 wulin 于 2019-12-17 10:16 编辑
新人求指导啊1 发表于 2019-12-16 17:15
程序如下:
#include
#include

程序基本可行,但写得有点啰嗦,甚至不合理。仿真异常是图画错,必须要在LED串接300Ω~1K左右限流电阻,否则实际电路IO口有烧毁的风险。程序可以简化为:
  1. #include <reg51.h>
  2. #include <intrins.h>

  3. void delay(unsigned int a)
  4. {
  5.         unsigned char i;
  6.         while(a--)
  7.         {
  8.                 for(i=0;i<125;i++);
  9.         }
  10. }

  11. void main(void)
  12. {
  13.         P0=0xfe;
  14.         while(1)
  15.         {
  16.                 delay(250);
  17.                 P0=_crol_(P0,1);
  18.         }
  19. }
复制代码
回复

使用道具 举报

5#
ID:510373 发表于 2019-12-17 00:27 | 只看该作者
烧的以前的程序??
回复

使用道具 举报

6#
ID:400014 发表于 2019-12-17 08:23 | 只看该作者
本帖最后由 dy212300 于 2019-12-17 16:09 编辑

是P0=b
回复

使用道具 举报

7#
ID:665331 发表于 2019-12-17 13:32 来自手机 | 只看该作者
P0口要接上拉电阻
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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