# 8051-ELL
**Repository Path**: wx030510226/ELL-8051-LIB
## Basic Information
- **Project Name**: 8051-ELL
- **Description**: 这是一个专门为增强型1T8051内核MCU设计的ELL库。
- **Primary Language**: C
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/zeweni/ELL-8051-LIB
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 55
- **Created**: 2021-06-30
- **Last Updated**: 2021-06-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 8051-ELL 库简介
[**8051-ELL官网**](https://zewen-i.github.io/8051-ELL-WEB/) [**全新的API文档中心**](https://zewen-i.github.io/8051-ELL-API/)
[](https://github.com/zewen-i/8051-ELL-LIB) [](https://github.com/zewen-i/8051-ELL-LIB) [](https://github.com/zewen-i/8051-ELL-LIB) [](https://github.com/zewen-i/8051-ELL-LIB)
8051-ELL库,是根据新一代增强型8051为内核的MCU,基于keil开发的软件包。函数库采用了LL库的编程思想,充分考虑8051的特性,结合硬件条件,提供大量标准的API函数,供开发者访问底层硬件细节。并且函数库的大小可裁剪,在代码密度和执行效率上做了很好的平衡。
ELL是`efficient low-layer`的缩写,意思是`高效低封装`,结合了`HAL库`和`LL库`的编程思想,既保证了通用性又降低了flash的过度占用。可谓是一举两得,高效、简洁、好用!
8051-ELL库支持Keil4和Keil5,支持Vscode协同开发,推荐使用EIDE插件。目前ELL库主要适配了STC公司的单片机型号,以STC8系列为主。后续计划增加STC12、STC15、STC16系列。
函数库遵循 Apache 许可证 2.0 版本,可免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。
大家觉得好用的话,记得给个Star,我想上自荐!!!!
****
当前版本为:`1.1.6`
版本更新时间:`2021.04.23`
作者微信:ze_wenu
B站账号:泽文i
QQ技术支持群:` 1001220381`
****
## 下一个版本的特性预览
* 增startup.asm汇编文件,用于集中处理堆栈、可重入、**硬件仿真调试(完美支持)**、Keil中断号超出的问题
* 取消NVIC.c NVIC.h 文件,相关类型定义和中断号宏定义,转移至ELL_CORE.h文件
* 相应中断功能和引脚切换复用功能函数,移动至对应模块下,方便操作。
* 增加中英文注释,采用UTF-8编码。
* 修复若干个bug
* 配套新版开发者文档(陆续推出)
## 新手如何入门
如果你明白了ELL函数库的架构,那么对你学习本库会有非常大的帮助!函数库采用了一个裸机框架来组织库文件。框架包括两大部分:`工程文件`和`库文件`。
工程文件主要存放`Keil工程`、`Vscode文件`、`用户代码`。这里可以根据你的编程习惯进行安排,非常的自由!库文件才是我们的重头戏,它主要分为四个部分:`核心文件夹`、`片内外设库`、`组件库`、`设备驱动库`。
****
核心文件夹:
存放各种MCU的寄存器头文件、函数库重定义数据类型头文件、函数库常用数据结构头文件
片内外设库:
存放MCU的片内外设模块,是库的主要构成单元。
组件库:
配套8051内核开发的好用组件,具有一定的抽象性和封装性,能加速项目的开发,比如TMT时间片任务进程组件。
设备驱动库:
一些常用的外围芯片、模块,通过统一的驱动框架进行封装,方便开发。
****
下面是ELL库的框架图:

整个固件库,充分利用了keil的一些特性,比如使用LX51扩展链接器/定位器,优化了BL51的功能,可以生成更小的目标文件等
# 支持的型号及外设
> `√`代表已经支持、`空`代表MCU没有这个外设、 ` X`代表还没有适配
### STC8系列
部分型号可能有所差异,详情可查看官方数据手册。
| 型号 | 定时器 | IO | 中断 | 系统时钟 | PCA | PWM | MPWM | HPWM | EEPROM | ADC | MDU16 | 比较器 | USB | LED | RTC | TKEY |
| --------- | ----- | ---- | ---- | -------- | ---- | ---- | ---- | ------ | ---- | ----- | ------ | ---- | ---- | ---- | ---- | ---- |
| STC8A系列 | √ | √ | √ | √ | √ | √ | X | X | √ | √ | | √ | | | | |
| STC8C系列 | √ | √ | √ | √ | | | | | √ | | √ | √ | | | | |
| STC8F系列 | √ | √ | √ | √ | | | | | √ | | | √ | | | | |
| STC8G系列 | √ | √ | √ | √ | √ | | X | | √ | √ | √ | √ | X | X | | |
| STC8H系列 | √ | √ | √ | √ | | | | X | √ | √ | √ | √ | X | X | X | X |