华罗聪 发表于 2023-1-4 11:55

蓝桥杯单片机学习感悟【01-LED的基本控制】

本帖最后由 华罗聪 于 2023-1-4 23:20 编辑

小蜜蜂课程
【蓝桥杯单片机02】LED的基本控制 - - 21ic电子技术开**坛

课程内容:(学习了138译码器和573锁存器)



写代码碰到的误区

定义时间那里误把int写成char结果导致LED常亮——Delay函数没有发挥作用

int是整型数据,如:int a 则a的值只能是整型;如a=3。

char是字符型,如:char a 则a的值只能是字符型;如a='a'。


因为字符的个数相对较少,因而char型变量的存储单元可以比int型变量的存储单元小。其实就是提出一种char型变量专门存储字符,方便程序员的数据选择。


最终代码:
#include "reg52.h"

sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;

void Delay(unsigned int t)
{
      while(t--);
      while(t--);
}

void LEDRunning()
{
      unsigned char i;
      HC138_C=1;
      HC138_B=0;
      HC138_A=0;
      
      for(i=0;i<3;i++)
      {
                P0=0x00;
                Delay(6000);
                Delay(6000);
                P0=0xff;
                Delay(6000);
                Delay(6000);
      }
      
      for(i=1;i<=8;i++)
      {
                P0=0xff<<i;
                Delay(6000);
                Delay(6000);
      }
      for(i=1;i<=8;i++)
      {
                P0=~(0xff<<i);
                Delay(6000);
                Delay(6000);
      }
}

void main()
{
      while(1)
      {
                LEDRunning();
      }
}



ayb_ice 发表于 2023-1-4 13:13

头一回见到这样的写法
void Delay(unsigned int t)
{
      while(t--);
      while(t--);
}

华罗聪 发表于 2023-1-4 22:49

ayb_ice 发表于 2023-1-4 13:13
头一回见到这样的写法
void Delay(unsigned int t)
{


我是照着B站上小蜜蜂老师写的
页: [1]
查看完整版本: 蓝桥杯单片机学习感悟【01-LED的基本控制】