找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6138|回复: 9
打印 上一主题 下一主题
收起左侧

STC8F2K08S2单片机可否有外部晶体振荡?

[复制链接]
跳转到指定楼层
楼主
这款单片机非常便宜,而且有两个uart,乘新年大假玩一下用跳线焊一个后,下载程序和UART实验都还行(虽然内部定是器与STC12有些不同,有待调整),但有个疑惑,究竟这款单片机是否能用外部振荡呢?根据说明书上提供的STC8F2K64S2接脚图,是有XTAL1和XTAL0脚的,但STC-ISP下载程序里并没有选择外部晶振的选项,猜想可能焊上晶体后ISP会自动发现而出现选项,但焊好后没有什么变化,究竟这款单片机可否用外部晶体振荡器,请各位前辈解惑。









分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2019-2-6 09:29 | 只看该作者
如果下载软件不能选外部晶振,估计就无法用外部晶振,至于图上有管脚估计是复制粘贴结果。
回复

使用道具 举报

板凳
ID:170318 发表于 2019-2-6 10:03 | 只看该作者
请看STC8手册第93-95页,有个主时钟源的标志位
回复

使用道具 举报

地板
ID:94031 发表于 2019-2-6 11:30 | 只看该作者
jhczy 发表于 2019-2-6 10:03
请看STC8手册第93-95页,有个主时钟源的标志位

我考虑,下载程序总得用他们的软件吧,如果软件不让选外部晶振,你也无法用吧,至于有主时钟源的标志位,那也就是以不变应万变,实际产品并无此硬件功能。
回复

使用道具 举报

5#
ID:94031 发表于 2019-2-6 11:40 | 只看该作者
看到这样一个帖子,有stc8的可以试试。
STC技术支持给的,一次成功!
void Sys_clk()
{
        P_SW2 |=  0x80;        // MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR)
        XOSCCR = 0xC0;                        //启动外部晶振
        while((XOSCCR & 1)==0);        //等待振荡稳定
        CKSEL = (CKSEL & ~0x03) | 0x01; /* 选择外部晶振或时钟 */
        CLKDIV = 1;                                //分频
        P_SW2 &= ~0x80;                // MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM)
}
回复

使用道具 举报

6#
ID:155507 发表于 2019-2-6 13:00 | 只看该作者
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. #define CKSEL           (*(unsigned char volatile xdata *)0xfe00)
  4. #define CKDIV           (*(unsigned char volatile xdata *)0xfe01)
  5. #define IRC24MCR        (*(unsigned char volatile xdata *)0xfe02)
  6. #define XOSCCR          (*(unsigned char volatile xdata *)0xfe03)
  7. #define IRC32KCR        (*(unsigned char volatile xdata *)0xfe04)

  8. sfr     P_SW2       =   0xba;

  9. void main()
  10. {
  11.     P_SW2 = 0x80;
  12.     CKSEL = 0x00;                               //选择内部IRC ( 默认 )
  13.     P_SW2 = 0x00;

  14.     /*
  15.     P_SW2 = 0x80;
  16.     XOSCCR = 0xc0;                              //启动外部晶振
  17.     while (!(XOSCCR & 1));                      //等待时钟稳定
  18.     CKDIV = 0x00;                               //时钟不分频
  19.     CKSEL = 0x01;                               //选择外部晶振
  20.     P_SW2 = 0x00;
  21.     */

  22.     /*
  23.     P_SW2 = 0x80;
  24.     IRC32KCR = 0x80;                            //启动内部32K IRC
  25.     while (!(IRC32KCR & 1));                    //等待时钟稳定
  26.     CKDIV = 0x00;                               //时钟不分频
  27.     CKSEL = 0x03;                               //选择内部32K
  28.     P_SW2 = 0x00;
  29.     */
  30.     while (1);
  31. }

复制代码


STC8ClockSelect.png (112.79 KB, 下载次数: 33)

STC8ClockSelect.png
回复

使用道具 举报

7#
ID:283954 发表于 2019-2-7 00:48 | 只看该作者
谢谢各位指导,如此说来,STC12是只能用外部晶振的,STC15是能使用内部振荡器和外部晶振的,但在下载烧录时必须选择好,运行时不能切换,STC8可以使用外部晶振,内部精密振荡器,内部低频振荡器,下载烧录时只能用内部精密振荡器,但运行时能自由切换,使用起来灵活许多,因此底板必须预留晶振位置备用,是这样吧。
回复

使用道具 举报

8#
ID:123289 发表于 2019-2-7 01:49 | 只看该作者
记住:遇到问题首先要看手册。
这样最靠谱。
回复

使用道具 举报

9#
ID:213173 发表于 2019-2-7 09:07 | 只看该作者
楼主的晶振接错脚了。
回复

使用道具 举报

10#
ID:94031 发表于 2019-2-7 09:34 | 只看该作者
dalaoshi 发表于 2019-2-7 00:48
谢谢各位指导,如此说来,STC12是只能用外部晶振的,STC15是能使用内部振荡器和外部晶振的,但在下载烧录时 ...

stc12可以使用内部时钟。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表