/8051-ELL-LIB

051 ELL函数库,是我们针对其丰富的内部资源基于keil编写的软件包。函数库采用了LL库的编程**,充分贴合8051有限的芯片资源条件,以此提供了大量标准的API函数,供使用者访问底层硬件细节。并且,函数库的大小支持裁剪,同时在代码密度和执行效率上做了很好的平衡。

Primary LanguageCApache License 2.0Apache-2.0

8051 ELL函数库简介

Fork me on Gitee

starfork

8051 ELL函数库,是我针对其丰富的芯片资源,基于keil开发的软件包。函数库采用了LL库的编程**,充分考虑8051的特性,结合硬件条件,提供大量标准的API函数,供开发者访问底层硬件细节。并且函数库的大小可裁剪,在代码密度和执行效率上做了很好的平衡。

为考虑函数库的兼容性,我在编写规则及注释上面选择了全英文的方式,若开发者不习惯全英文,可以通过库函数提供的开发者文档了解API函数的具体使用方法,我们在文档里提供了详细丰富的中文注解和说明。

函数库遵循 Apache 许可证 2.0 版本,可免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。


下载连接(gitee仓库)

下载连接(github仓库)

开发指南视频链接

开发者文档(最下方有细则)

配套核心板购买连接(待上架)


当前版本为:1.1.5

版本更新时间:2021.03.14

作者微信:ze_wenu

B站账号:泽文i


ELL是efficient low-layer的缩写,意思是高效低封装,结合了HAL库LL库的编程**,既保证了通用性又降低了flash的过度占用。可谓是一举两得,高效、简洁、好用!

开发函数库,最初是为了满足我自己的生产需求,后来经过深思熟虑,我想做一个好用的通用库,所以把它开源出来,分享给广大工程师们。

函数库是基于Keil开发,支持Keil4和Keil5,支持Vscode协同开发,推荐使用EIDE插件。目前函数库主要适配了STC公司的单片机型号,以STC8系列为主。后续计划增加STC12、STC15、STC16系列。

新手如何入门

如果你明白了ELL函数库的架构,那么对你学习本库会有非常大的帮助!函数库采用了一个裸机框架来组织库文件。框架包括两大部分:工程文件库文件

工程文件主要存放Keil工程Vscode文件用户代码。这里可以根据你的编程习惯进行安排,非常的自由!库文件才是我们的重头戏,它主要分为四个部分:核心文件夹片内外设库组件库设备驱动库


核心文件夹: 存放各种MCU的寄存器头文件、函数库重定义数据类型头文件、函数库常用数据结构头文件

片内外设库: 存放MCU的片内外设模块,是库的主要构成单元。

组件库: 配套8051内核开发的好用组件,具有一定的抽象性和封装性,能加速项目的开发,比如TMT时间片任务进程组件。

设备驱动库: 一些常用的外围芯片、模块,通过统一的驱动框架进行封装,方便开发。


下面是ELL函数库的框架图:

img

整个固件库,充分利用了keil的一些特性,比如使用LX51扩展链接器/定位器,优化了BL51的功能,可以生成更小的目标文件等

开发者文档

ELL库概要介绍

ELL库工程创建

ELL库代码烧录

片内外设库

时钟管理

中断管理

电源管理

复位功能

看门狗

IO口

定时器

串口

12位ADC

比较器

可编程计数器

增强型PWM

SPI

I2C

MDU16

其他暂未更新

组件库

任务管理工具

其他暂未更新

设备驱动库

按键扫描

暂未更新

支持的型号及外设

代表已经支持、X代表硬件没有这个外设、 代表还没有适配

STC8系列

部分型号可能有所差异,详情可查看官方数据手册。

型号 定时器 IO 中断 系统时钟 PCA PWM HPWM EEPROM ADC MDU16 比较器 USB
STC8A系列 X X X
STC8C系列 X X X X X
STC8F系列 X X X X X X
STC8G系列 X
STC8H系列 X X

更新记录

2021.03.16 更新

  • 更新开发者文档
  • 修复比较器读取标志位的宏函数bug

2021.03.14 更新

  • 优化TMT组件,提高健壮性

  • 更新按键扫描驱动,支持高低电平触发,两种按键生效模式

  • 更新开发者文档,增加增强型PWM手册 KeyScan手册

2021.03.12 更新

  • 优化TMT组件,提高健壮性

  • 增加各种外设的中断开关宏函数,方便实时控制中断

  • 修复STC8A STC8F 串口bug

2021.03.09 更新

  • 增加对STC8C、STC8G、STC8H系列单片机的串口2、3、4中断优先级的适配

  • 增加对STC8C、STC8G、STC8H系列单片机的串口波特率发生器预分频的处理

2021.03.08 更新

  • 增加对STC8C系列单片机的适配

2021.03.06 更新

  • 修复STC8H、STC8G 时钟无法读取15M以下频率的bug

2021.03.03 更新

  • 修复STC8H 时钟管理的bug

  • 增加STC8G 对ADC的支持 COMP比较器的支持

  • 增加STC8G STC8H的硬件16位乘除法运算单元模块