2301_80090143 2023-11-03 11:07 采纳率: 33.3%
浏览 15

8个流水灯点亮,但是只有2468灯亮

img

img


代码测试没有问题,在keil里仿真端口也是理想运行的,但是放进protues仿真中,只有2468灯亮

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-03 14:25
    关注

    【相关推荐】



    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7763286
    • 除此之外, 这篇博客: 【51单片机】八位流水灯(含Protues+keil使用方法)中的 (一)位操法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      缺点:代码冗长

      #include <reg52.h>
      #define uchar unsigned char
      #define uint unsigned int
      
      sbit L1=P1^0;//将P1^0赋值给变量L1
      sbit L2=P1^1;
      sbit L3=P1^2;
      sbit L4=P1^3;
      sbit L5=P1^4;
      sbit L6=P1^5;
      sbit L7=P1^6;
      sbit L8=P1^7;
      
      void delay(uint n)//延时函数(n)ms
      {
      	uchar i;
      	uint j;
      	for(j=0;j<n;j++)
      	for(i=0;i<123;i++);
      }
      
      void flash1()//LED1亮0.5s后熄灭
      {
      	L1=0;//LED1亮
      	delay(500);
      	L1=1;//LED1灭
      }
      
      void flash2()
      {
      	L2=0;
      	delay(500);
      	L2=1;
      }
      
      void flash3()
      {
      	L3=0;
      	delay(500);
      	L3=1;
      }
      
      void flash4()
      {
      	L4=0;
      	delay(500);
      	L4=1;
      }
      
      void flash5()
      {
      	L5=0;
      	delay(500);
      	L5=1;
      }
      
      void flash6()
      {
      	L6=0;
      	delay(500);
      	L6=1;
      }
      
      void flash7()
      {
      	L7=0;
      	delay(500);
      	L7=1;
      }
      
      void flash8()
      {
      	L8=0;
      	delay(500);
      	L8=1;
      }
      
      void main (void)
      {
      	while(1)
      	{
      		flash1();
      		flash2();
      		flash3();
      		flash4();
      		flash5();
      		flash6();
      		flash7();
      		flash8();
      		
      		flash8();
      		flash7();
      		flash6();
      		flash5();
      		flash4();
      		flash3();
      		flash2();
      		flash1();
      	}
      }

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日