1
控制/MCU
STC15W408AS单片机有两个时钟源:内部高精度R/C时钟和外部时钟(外部输入时钟或外部晶体振荡器产生的时钟)。内部高精度R/C时钟(±0.3%),±1%温漂,常温下温漂±0.6%(-20℃~+65℃)。
内部时钟配置是通过STC提供的下载软件stc-isp实现的。用户可根据自己的需要选择。
如果希望降低系统功耗,可对时钟进行分频。利用时钟分频控制寄存器CLK_DIV(PCON2)
可进行时钟分频,从而使单片机在较低频率下工作。
时钟分频寄存器CLK_DIV (PCON2)各位的定义如下:
相关控制位说明:
主时钟既可以是内部R/C时钟,也可以是外部输入的时钟或外部晶体振荡产生的时钟。但对于无外部时钟源的单片机(STC15F100W系列、STC15W201S系列、STC15W404S系列、STC15W1K16S系列)以及现供货的STC15F2K60S2系列C版单片机,其主时钟只能是内部R/C时钟。
主时钟可在管脚MCLKO或MCLKO_2对外输出。其中,STC15系列8-pin单片机(如STC15F100W系列)在MCLKO/P3.4口对外输出时钟;STC15F2K60S2系列、STC15W201S系列及STC15F408AD系列单片机在
MCLKO/P5.4口对外输出时钟;而STC15W404S系列及STC15W1K16S系列单片机除可在MCLKO/P5.4口对外输出时钟外,还可在MCLKO_2/P1.6口对外输出时钟。
系统时钟是指对主时钟进行分频后供给CPU、定时器、串行口、SPI、CCP/PWM/PCA、A/D转换的实际工作时钟。
MCLK是指主时钟频率,MCLKO是指系统时钟输出。SysClk是指系统时钟频率,SysClkO是指系统时钟输出。
MCLKO_2:主时钟对外输出位置的选择位
0:在MCLKO/P5.4口对外输出主时钟;
1:在MCLKO_2/P1.6口对外输出主时钟;
#include "stc15.h"
// 对外输出分频控制
#define MCKO_0 0x00 // 主时钟不对外输出时钟
#define MCKO_1 0x40 // 主时钟对外输出时钟,但时钟频率不被分频,输出时钟频率 = MCLK / 1
#define MCKO_2 0x80 // 主时钟对外输出时钟,但时钟频率被2分频,输出时钟频率 = MCLK / 2
#define MCKO_4 0xC0 // 主时钟对外输出时钟,但时钟频率被4分频,输出时钟频率 = MCLK / 4
// 主频时钟分频控制
#define CLKS_1 0x00 // 主时钟频率/1,不分频
#define CLKS_2 0x01 // 主时钟频率/2
#define CLKS_4 0x02 // 主时钟频率/4
#define CLKS_8 0x03 // 主时钟频率/8
#define CLKS_16 0x04 // 主时钟频率/16
#define CLKS_32 0x05 // 主时钟频率/32
#define CLKS_64 0x06 // 主时钟频率/64
#define CLKS_128 0x07 // 主时钟频率/128
// 对外输出管脚控制
#define MCLKO_2 0x00; // 在MCLKO/P5.4口对外输出主时钟;
void main()
{
CLK_DIV = MCKO_1 | CLKS_2; // 主频时钟对外输出2分频 在P5.4对外输出
while (1);
}
五、实际效果图
可以看见输入的频率是5.54MHz基本是STC-ISP下载软件设置的11.0592MHz的一半。
全部0条评论
快来发表一下你的评论吧 !