嵌入式学习小组
直播中

李贞

7年用户 149经验值
私信 关注

请问如何设定STC15系列单片机内部时钟频率?

如何设定STC15系列单片机内部时钟频率?时钟模式呢

回帖(5)

谢赛

2020-4-24 09:19:14
本帖最后由 MOP 于 2016-11-5 19:21 编辑

嗨,Datasheet描述很清楚
內部主時鐘的話,即8051 IC內部RC所構成的震盪器,使用ISP設定,而外部主時鐘的話,頻率即晶振頻率

選擇內部or外部主時鐘,選擇內部主時鐘時可設定頻率


內/外部主時鐘設置完成後,再根據CLK_DIV(97h)的設置,對外輸出SysCLK,即系統時鐘

以下是圖解


以下是設置的範例Code


#include "reg51.h" sfr CLK_DIV = 0x97; void main() { CLK_DIV = 0x00; //不分頻 //CLK_DIV = 0x01; //除2 //CLK_DIV = 0x02; //除4 //CLK_DIV = 0x03; //除8 //CLK_DIV = 0x04; //除16 //CLK_DIV = 0x05; //除32 //CLK_DIV = 0x06; //除64 //CLK_DIV = 0x07; //除128 while(1); } 以上希望對您有幫助:)
举报

许晓凌

2020-4-24 09:37:25
云汉达人
https://zhidao.baidu.com/question/177433523182066444.html

https://zhidao.baidu.com/question/314969128.html
举报

贾绰

2020-4-24 09:55:01
可以这样理解,必须先通过烧录软件选择振荡器频率,设置时钟分频寄存器确定系统时钟频率。在STC15系列当中都用库函数,不用寄存器,怎么写这个分频的代码呢,就如三楼的
举报

刘润生

2020-4-24 10:12:00
本帖最后由 MOP 于 2016-11-7 19:15 编辑


huihui163 发表于 2016-11-7 18:04
可以这样理解,必须先通过烧录软件选择振荡器频率,设置时钟分频寄存器确定系统时钟频率。在STC15系列当中 ...
我看了一下官方庫函數,沒有設置系統時鐘分頻唷.
自己寫的話,最快還是直接用Register,只要一行,如我上面寫的,差別只是在於不用再宣告CLK_DIV,庫函數標頭檔STC15Fxxxx.h內已經有define,但還是直接操作Register
#include "config.h" //包含STC15Fxxxx.h void main() { CLK_DIV = 0x00; //不分頻 //CLK_DIV = 0x01; //除2 //CLK_DIV = 0x02; //除4 //CLK_DIV = 0x03; //除8 //CLK_DIV = 0x04; //除16 //CLK_DIV = 0x05; //除32 //CLK_DIV = 0x06; //除64 //CLK_DIV = 0x07; //除128 while(1); }
#ifndef __CONFIG_H #define __CONFIG_H /*********************************************************/ #define MAIN_Fosc 22118400L //定义主时钟 //#define MAIN_Fosc 12000000L //定义主时钟 //#define MAIN_Fosc 11059200L //定义主时钟 //#define MAIN_Fosc 5529600L //定义主时钟 //#define MAIN_Fosc 24000000L //定义主时钟 /*********************************************************/ #include "STC15Fxxxx.H" #endif config.h的內容,也可以在這裡設定主時鐘

以上希望對您有用:)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分