本帖最后由 华罗聪 于 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();
}
}
|