文章中所用的芯片选型为STC8H3K64S4,后续STC8案例均以该芯片展开
内核
? 超高速 8051 内核(1T),比传统 8051 约快 12 倍以上,指令代码完全兼容传统8051
? 21个中断源,4 级中断优先级
? 支持在线仿真
工作电压
? 1.9V~5.5V
工作温度
? -40℃~85℃
Flash 存储器
? 最大64K 字节FLASH 程序存储器(ROM),用于存储用户代码
? 支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达10万次以上
? 支持在系统编程方式(ISP)更新用户应用程序,无需专用编程器
? 支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
? 128 字节内部直接访问 RAM(DATA)
? 128 字节内部间接访问 RAM(IDATA)
? 3072 字节内部扩展 RAM(内部 XDATA)
时钟控制
? 内部高精度IRC(4MHz~45MHz,ISP 编程时选择或手动输入,还可以用户软件分频到较低的频率工作, 如100KHz)
– 误差±0.3%(常温下 25℃)
– -1.35%~+1.30%温漂(全温度范围,-40℃~85℃))
– -0.76%~+0.98%温漂(温度范围,-20℃~65℃)
? 内部 32KHz 低速 IRC(误差较大)
? 外部晶振(4MHz~45MHz)和外部时钟
? 用户可自由选择上面的3种时钟源
复位
? 硬件复位
– 上电复位(在芯片未使能低压复位功能时有效)
– 复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
– 看门狗溢出复位
– 低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
? 软件复位
– 软件方式写复位触发寄存器
中断
? 提供21 个中断源:INT0(支持上升沿和下降沿中断)、INT1(支持上升沿和下降沿中断)、INT2(只支 持下降沿中断)、INT3(只支持下降沿中断)、INT4(只支持下降沿中断)、定时器0、定时器1、定时 器2、定时器3、定时器4、串口1、串口2、串口3、串口4、ADC 模数转换、LVD 低压检测、SPI、I2C、 比较器、PWMA、PWMB
? 提供 4 级中断优先级
? 时钟停振模式下可以唤醒的中断:INT0(P3.2)、INT1(P3.3)、INT2(P3.6)、INT3(P3.7)、INT4(P3.0)、T0(P3.4)、 T1(P3.5)、T2(P1.2)、T3(P0.4)、T4(P0.6)、RXD(P3.0/P3.6/P1.6/P4.3)、RXD2(P1.0/P4.6)、RXD3(P0.0/P5.0)、 RXD4(P0.2/P5.2)、I2C_SDA(P1.4/P2.4/P3.3)以及比较器中断、低压检测中断、掉电唤醒定时器唤醒。
数字外设
? 5 个16 位定时器:定时器0、定时器1、定时器2、定时器3、定时器4,其中定时器0 的模式3 具有NMI (不可屏蔽中断)功能,定时器0 和定时器1 的模式0 为16 位自动重载模式
? 4个高速串口:串口1、串口2、串口3、串口4,波特率时钟源最快可为FOSC/4
? 8 路/2 组高级PWM,可实现带死区的控制信号,并支持外部异常检测功能,另外还支持16 位定时器、8 个外部中断、8 路外部捕获测量脉宽等功能
? SPI:支持主机模式和从机模式以及主机/从机自动切换
? I2C:支持主机模式和从机模式
? MDU16:硬件16 位乘除法器(支持32 位除以16 位、16 位除以16 位、16 位乘16 位、数据移位以及数 据规格化等运算)
? I/O 口中断:所有的I/O 均支持中断,每组I/O 中断有独立的中断入口地址,所有的I/O 中断可支持4 种 中断模式:高电平中断、低电平中断、上升沿中断、下降沿中断
模拟外设
? 超高速ADC,支持12 位高精度12 通道(通道0~通道2、通道6~通道14,无P1.3/P1.4/P1.5 端口, 所以少了通道3~5)的模数转换,速度最快能达到800K(每秒进行80 万次ADC 转换)
? ADC 的通道15 用于测试内部1.19V 参考信号源(芯片在出厂时,内部参考信号源已调整为1.19V)
? 比较器,一组比较器(比较器的正端可选择CMP+端口和所有的ADC 输入端口,所以比较器可当作多路 比较器进行分时复用)
? DAC:8 路高级PWM 定时器可当8 路DAC 使用
GPIO
? 最多可达43 个GPIO:P0.0P0.7、P1.0 P1.2、P1.6~ P1.7、P2.0P2.7、P3.0P3.7、P4.0P4.7、P5.0P5.5
? 所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
? 除P3.0和P3.1外,其余所有I/O口上电后的状态均为高阻输入状态,用户在使用I/O口时必须先设置I/O口模式
? 另外每个I/O均可独立使能内部4K上拉电阻
封装
? LQFP48 (9mm9mm)、QFN48 (6mm6mm)、LQFP32 (9mm9mm)、QFN32 (4mm4mm)、TSSOP20 (6.5mm*6.5mm)
STC8H3K系列芯片选型表如下,Data Sheet可从官网下载:Data Sheet 下载
Keil C51是由美国Keil Software公司出品的专门用于51系列兼容单片机的C语言软件开发系统。它继承于C语言,主要运行于51内核的单片机平台,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因此易学易用。此外,Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的全套开发工具。特别是其生成的目标代码效率非常高,多数语句生成的汇编代码紧凑且容易理解,这在开发大型软件时更能体现高级语言的优势。
Keil C51安装包可官网下载,目前最新版本9.61:Keil C51 下载
这里以9.60版本安装为例,小版本区别不大,不一定需要下载最新版本,可按个人需求进行版本安装,双击运行安装程序
Next
同意许可协议,Next
选择安装路径,可自定义路径,路径不要带中文,Next
填写用户信息,Next
等待安装
安装完成,Finish
管理员权限运行软件,工具激活 dddd
傻瓜式安装51啥群欧协工具(STC-ISP),可官网直接下载 STC-ISP下载链接
依次选择 keil仿真 👉 单片机型号 👉 添加型号和头文件 👉 选择keil安装路径 👉 确定
添加芯片包后重启Keil
新建一个用于存放工程的文件夹(因为Keil不会给你的工程新建文件夹),如图新建工程
选择存放的路径(文件夹),工程命名,保存
选择STC芯片包,在下拉芯片列表中找到芯片 STC8H3K64S4,OK
提示是否复制STARTUP.A51到工程目录中,否
右键选择工程,选择 Add New Item to Group…
选择需要添加C File(.c),命名,Add
main.c写上代码框架,点魔术棒配置工程,勾选创建hex文件
工程编译生成hex文件
USB连接各自的51开发板和电脑,打开STC-ISP软件,选择芯片 👉 连接串口 👉 修改运行频率 👉 取消复位脚作为I/O 👉 选择烧写文件
打开工程生成的hex文件
点击下载/编程,STC-ISP工具开始往开发板中下载文件。状态提示窗口会显示正在检测目标单片机
单片机进行复位或断电重启。让STC-ISP工具可以检测到单片机并对其进行程序下载,等待程序烧写成功,配置都正确的话会出现如图的烧写成功提示