STC8
Posted jieruishu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC8相关的知识,希望对你有一定的参考价值。
一 时钟:
IRC:24MHZ;LSI:32.768KHZ;HSE:4~33MHZ,外设可分频
二 2种低功耗模式:
IDLE:1.3MA@6MHZ,外设可唤醒。
STOP:
三:ISP下载更新模式:无需专用仿真器
四:C51开发模式:
众多的寄存器:IO设置/中断设置/外设,引脚分时复用功能选择的功能切换寄存器。
五:串口的4个模式:
- 模式0:同步移位模式,TXD:为同步时钟;RXD为DATA_IO
- 模式1:8为可变波特率,常用模式,需要定时器提供波特率
- 模式2:9位固定波特率
- 模式3:9位可变波特率,主要用于多机控制SM2=1,多机控制下的地址匹配提供类似RS485的硬件地址自动匹配(地址寄存器和地址屏蔽寄存器(符合屏蔽要求的响应))
六:自动代码:
利用STC-ISP可以进行波特率计算,定时器计算,软件延时计算。
七:RTOS:
- Small RTOS/
- TINIUX :https://github.com/SenseRate/TINIUX.git具体可以参考《蹄牛操作系统TINIUX 简明教程》,参考http://www.51hei.com/bbs/dpj-108281-1.html 以codeblocks位IDE,移植后要修改:
在 OSPreset.h 文件中,把#include <mcs51/8052.h>调整为#include "stc8.h"
关于时间漂移: 使用了传统 51 定时器Timer0 的模式 1,具有 16 位宽,但无法自动重载,系统会自动 根据 ticks 频率设置 timer0 重载起点。此种定时器模式的优点是适用于大多数 51/52 等系列 的单片机,但是会导致系统时间漂移,可以用其它定时器或模式,有的增强型51可以自动加载;
关于裁剪:TINIUX 系统在启动时,处于挂起及休眠状态的任务或分配到 XRAM 空间,只有当前运行的任 务会分配到 RAM 空间。同时为了减少对 XRAM 空间的占用,推荐裁剪掉信号量、互斥锁、 timer、消息队列等功能模块,只启用系统内轻量级的同步信号与同步消息功能。
- keil自带的只有RTX51Tiny 和RTX51Full操作系统:
- Easy51RTOS:根据任务的重要程度排序,根据执行的频度周期调度http://www.51hei.com/bbs/dpj-113567-1.html
- https://www.freertos.org/portcygn.html 用在
Cygnal (Silicon Labs) 8051 Port
关于主频和系统心跳:SETOS_CPU_CLOCK_HZ/SETOS_TICK_RATE_HZ(默认=1000hz,对于主频不高的51单片机可以减小ticks)
以上是关于STC8的主要内容,如果未能解决你的问题,请参考以下文章