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

[复制链接]
2648|2
 楼主| 华罗聪 发表于 2023-1-4 11:55 | 显示全部楼层 |阅读模式
本帖最后由 华罗聪 于 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站上小蜜蜂老师写的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部