STC8H8K64U 库函数学习笔记 —— 流水灯

本文详细介绍了如何在STC8H8K64U芯片上使用KeilC51编程,通过库函数实现流水灯的亮灭效果,包括GPIO配置、全灭和从左到右、从右到左的动态显示。
摘要由CSDN通过智能技术生成

STC8H8K64U 库函数学习笔记 —— 流水灯

环境说明:
芯片:STC8H8K64U
软件:

  1. KeilC51 μVersion V5.38.00
  2. STCAI-ISP (V6.94)

库文件说明:我将依赖的库文件统一放置到工程下的 lib 目录中,所以,代码中的包含指令会有 lib/ 的前缀

从左往右依次亮起,然后全灭,然后从右往左依次亮起,再次全灭,不断循环,代码如下:

#include "lib/Config.h"
#include "lib/STC8G_H_GPIO.h"
#include "lib/STC8G_H_Delay.h"

static int index = 0;
static const int INTERVAL = 200;
static const int SIZE = 8;

void GPIO_config() {
    P2M1 &= ~GPIO_Pin_7, P2M0 |=  GPIO_Pin_7; // 设置 P27 为 推挽
    P2M1 &= ~GPIO_Pin_6, P2M0 |=  GPIO_Pin_6; // 设置 P26 为 推挽
    P1M1 &= ~GPIO_Pin_5, P2M0 |=  GPIO_Pin_5; // 设置 P15 为 推挽
    P1M1 &= ~GPIO_Pin_4, P2M0 |=  GPIO_Pin_4; // 设置 P14 为 推挽
    P2M1 &= ~GPIO_Pin_3, P2M0 |=  GPIO_Pin_3; // 设置 P23 为 推挽
    P2M1 &= ~GPIO_Pin_2, P2M0 |=  GPIO_Pin_2; // 设置 P22 为 推挽
    P2M1 &= ~GPIO_Pin_1, P2M0 |=  GPIO_Pin_1; // 设置 P21 为 推挽
    P2M1 &= ~GPIO_Pin_0, P2M0 |=  GPIO_Pin_0; // 设置 P20 为 推挽
    P4M1 &= ~GPIO_Pin_5, P4M0 |=  GPIO_Pin_5; // 设置 P45 为 推挽
}

void turnOffAllLed() {
    P45 = 0;
    P27 = 1, P26 = 1, P15 = 1, P14 = 1;
    P23 = 1, P22 = 1, P21 = 1, P20 = 1;
}

void marquee(int start, int incr) {
    turnOffAllLed();
    delay_ms(INTERVAL);
    index = start;
    while(index < SIZE && index > -1) {
        switch(index) {
            case 0: P27 = 0; break; case 1: P26 = 0; break;
            case 2: P15 = 0; break; case 3: P14 = 0; break;
            case 4: P23 = 0; break; case 5: P22 = 0; break;
            case 6: P21 = 0; break; case 7: P20 = 0; break;
        }
        index += incr;
        delay_ms(INTERVAL);
    }
    turnOffAllLed();
}

void main() {
    GPIO_config();
    
    while(1) {
        marquee(0, 1);
        marquee(7, -1);
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值