本帖最后由 标记重捕 于 2024-6-29 07:47 编辑
一 实验目标

自从知道STC8H8K64U核心板可以代替DIP40的89C52插在51开发板上,我就买了一块核心板。 收到核心板后,打算练练手。 如文章题目所示,这次的实验是要控制LED的闪烁。
二 硬件连接

这块核心板并不是所有IO口都有LED,根据原理图,我选择使用P20口的LED作为操作对象。 从电路图中可见,LED的阴极连接了P20口。
三 代码步骤及实现
3.1 包含芯片头文件

使用官方提供的STC8H头文件。
3.2 数据类型重定义

这是官方的数据类型重定义文件,但是我很不喜欢u8 u16这样的命名方式,所以做了更改,改成了uint8_t的形式。
3.3 定义时钟频率

这是官方的数据类型配置文件,这里定义的系统时钟是24MHz。这个频率可以在STCISP软件中更改。

3.4 实现延时函数

调用时钟参数设置延时函数,最小延时单位为1ms。
3.5 LED功能的封装
 GPIO初始化
 根据数据手册,配置M0 M1,实现配置P20为准双向口。
LED亮

LED灭

LED闪烁

3.6 程序一直运行LED的闪烁

其中SYS_Ready为结构体StartUpInit的成员; Run为结构体System的成员在Run中每隔300ms变更一次P20端口的电平。
四 实验现象4.1 程序烧录

官方提供的烧录步骤说明。
4.2 现象
LED闪烁演示
|