打印
[51单片机]

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

[复制链接]
1902|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 华罗聪 于 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

帖子

5

粉丝