找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC8H单片机关于外部时钟选择的疑惑(已解决)

[复制链接]
ID:159419 发表于 2022-10-12 14:39 | 显示全部楼层 |阅读模式
各位大佬,小弟最近跳转过来研究STC8H这款芯片,根据手册说明配置了外部晶振,但是下载后发现运行始终还是使用的内部晶振,请帮忙看下是哪里出了问题,谢谢。

  P_SW2 |= 0x80;

        CLKSEL |= 0x01;
        CLKDIV = 0x01;
        //HIRCCR &= 0x7f;   关闭内部IRC
        
        XOSCCR = 0xc0;   
        while(!(XOSCCR & 0x01));  
        P_SW2 &=0x7f;


根据手册上写的时钟源选择应该是CKSEL,但是写这个会报错,看了下头文件里CLKSEL的地址和CKSEL是一样的,就直接用的这个。

我板子用的是24M无源晶振,代码如上,但是只要关闭内部IRC设置的定时就无法运行,请赐教。
回复

使用道具 举报

ID:59202 发表于 2022-10-12 16:00 | 显示全部楼层
我是先启动外部晶振,待外部时钟稳定后再选择外部时钟,程序如下请参考:
    P_SW2 |= 0x80;
    XOSCCR = 0xC0;                     //启动外部晶振
    while(!(XOSCCR&1));                //等待时钟稳定
    CLKDIV = 0X00;                     //时钟不分频
    CLKSEL = 0X01;                     //选择外部晶振
回复

使用道具 举报

ID:123289 发表于 2022-10-12 17:04 | 显示全部楼层
设置成先用外部晶振就可以了。
如果设置报错,可以直接对它的地址进行操作,而不用寄存器符号(怀疑寄存器符号未被定义)。
回复

使用道具 举报

ID:879348 发表于 2022-10-12 17:21 | 显示全部楼层
直接官方代码不可能有问题
回复

使用道具 举报

ID:283954 发表于 2022-10-12 17:50 | 显示全部楼层
我用过了,可以的:

OSC:
MOV P_SW2, #80H
MOV A, #11000000B  ;使能外时钟,无源晶振
MOV DPTR, #0FE03H  ;XOSCCR
MOVX @DPTR, A
OSC1:              ;等待稳定
MOVX A, @DPTR
ANL A, #00000001B
JZ OSC1

CLR P2.0

MOV A, #01H        ;切换到外部晶振
MOV DPTR, #0FE00H  ;CLSEL
MOVX @DPTR, A
MOV P_SW2, #00H
RET
回复

使用道具 举报

ID:491577 发表于 2022-10-12 21:01 | 显示全部楼层
我好奇的是楼主为什么要使用外部晶振?嫌弃内部晶振不准吗?
回复

使用道具 举报

ID:159419 发表于 2022-10-13 09:51 | 显示全部楼层
感谢各位大佬回答,xxxevery的方法是可行的,看来确实要等待时钟稳定后才能操作。

我用外部晶振是因为最近尝试画了块开发板,预留有外部晶振借口方便以后测试用,在调试的时候发现这个问题所以来请教一下。
回复

使用道具 举报

ID:159419 发表于 2022-10-13 09:53 | 显示全部楼层
感谢各位大佬解答, xxxevery提供的方法经过测试可行
回复

使用道具 举报

ID:159419 发表于 2022-10-13 09:54 | 显示全部楼层
dalaoshi 发表于 2022-10-12 17:50
我用过了,可以的:

OSC:

感谢大佬回复,可惜小弟我还没有能力掌控汇编语言
回复

使用道具 举报

ID:159419 发表于 2022-10-13 09:58 | 显示全部楼层
wufa1986 发表于 2022-10-12 17:21
直接官方代码不可能有问题

我实机测试过,使用STC-ISP生成STC8H的头文件里确实调用不了 CKSEL寄存器,官方生成的头文件里使用的是CLKSEL,映射的地址也是 CKSEL的地址,之前翻查过的资料又都是使用的 CKSEL,所以我也搞不清楚到底是哪里的问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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