找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于stc8h8k64u单片机主时钟无法输出的问题

[复制链接]
跳转到指定楼层
楼主
楼主小白,最近正在学习stc的打狗棍,参考stc8h系列的技术手册199页中,有设置系统主时钟输出寄存器的选项,但参考手册中的范例程序,自己写的程序却无法输出时钟,(p1.6口一点反应也没有)不知道是哪里出了问题,恳请技术大佬们帮忙看一下是哪里出了问题。

单片机源程序如下:
  1. #include "STC8.h"
  2. #include<intrins.h>        
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit led=P3^4;
  6. sbit a=P1^6;
  7. void delay(uint i)
  8. {
  9.         
  10.         {while(i--);}
  11. }
  12. void delay_13us(uint t)
  13. {

  14. while(t--)
  15. {_nop_();}
  16. }

  17. void delay_1s()
  18. {
  19. unsigned char x,y;
  20.         for(x=0;x<100;x++)
  21.         {
  22.         for(y=0;y<100;y++)
  23.          {
  24.    delay_13us(100);
  25.          }
  26.          }
  27. }

  28. void gpio_int()
  29. {
  30. /*P5M1=0x00;   //设置P1所有IO口都为推挽输出   M1M0=01
  31. P5M0=0xff;   //设置P1所有IO口都为推挽输出
  32. P5PU=0x00;   //启用P1所有IO口4.1k上拉电阻(端口上拉电阻期存器PxPU)1-->使能 0-->关闭
  33. P5DR=0x01;   //设置P1所有IO口都为强驱动模式(端口驱动电流寄存器PxDR)1-->一般驱动模式 0-->强驱动模式
  34. */
  35. P1M0=0X00;
  36. P1M1=0X00;
  37. P3M0=0X00;
  38. P3M1=0X00;        
  39. P5M0 = 0x00;
  40. P5M1 = 0x00;
  41. }

  42. void main()
  43. {
  44.         gpio_int();
  45.         led=1;
  46.         
  47.         <span style="font-size: 14px;">CLKSEL = 0x00; // 选择内部 IRC ( 默认 )</span>
  48.         MCLKOCR = 0x84;    //系统时钟4分频输出到P1.6口
  49.         

  50.         while(1)
  51. {            
  52.         delay_1s();
  53.         led=~led;
  54.          }        
  55. }
复制代码


YQ@@R]3]L423Q~NKLU)}4.png (252.06 KB, 下载次数: 8)

范例程序

范例程序

PBZQ4QB0`MG(0KV20WMZ66M.png (284.96 KB, 下载次数: 64)

主时钟输出寄存器

主时钟输出寄存器
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:581305 发表于 2022-10-25 08:37 | 只看该作者
P_SW2|=0x80
回复

使用道具 举报

板凳
ID:45879 发表于 2022-10-25 09:27 | 只看该作者

回复

使用道具 举报

地板
ID:1034262 发表于 2022-10-25 11:27 | 只看该作者
本帖最后由 coody_sz 于 2022-10-26 11:52 编辑

你了解51吗?在保证兼容的前提下,你有更好的架构建议?请说出来。

51架构的问题,特殊功能寄存器空间(128字节)不够,所以更多的特殊功能寄存器只能放在xdata区,但为了与xdata访问不冲突,所以要设置 P_SW2 |= 0x80;才可以访问扩展在xdata区的特殊功能寄存器。
回复

使用道具 举报

5#
ID:577554 发表于 2022-10-25 20:39 | 只看该作者
收到,已成功输出主频时钟,感谢大佬指点
回复

使用道具 举报

6#
ID:123289 发表于 2022-10-26 10:26 | 只看该作者
地板讲的多么透彻啊!
但全是手册上的。
想想你为何就做不到呢?能从中找出问题的所在点,你就进步了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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