找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5079|回复: 9
收起左侧

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

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


stc8-2.jpg

stc-8-1.jpg

stc8-3.jpg


回复

使用道具 举报

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页,有个主时钟源的标志位

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

使用道具 举报

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)
}
回复

使用道具 举报

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
回复

使用道具 举报

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

使用道具 举报

ID:123289 发表于 2019-2-7 01:49 | 显示全部楼层
记住:遇到问题首先要看手册。
这样最靠谱。
回复

使用道具 举报

ID:213173 发表于 2019-2-7 09:07 | 显示全部楼层
楼主的晶振接错脚了。
回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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