打印

c8051f040晶振不起振~~郁闷

[复制链接]
3706|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunmax|  楼主 | 2012-3-7 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2012-3-7 22:03 | 只看该作者
c8051f芯片的晶振是要配置才能工作的,不要拿它当51用

使用特权

评论回复
板凳
xjycug| | 2012-3-7 23:02 | 只看该作者
C8051内部有振荡器24M的,可以用

使用特权

评论回复
地板
xjycug| | 2012-3-7 23:03 | 只看该作者
外接晶体分有源与无源,配置是不一样的

使用特权

评论回复
5
xinxi| | 2012-3-8 08:03 | 只看该作者
到这里下载一个 C8051的 配置向导,,按照向导生成的初始化代码  进行,,http://www.xhl.com.cn/upfile/Flash/2011/5/20110530164052.rar

使用特权

评论回复
6
ayb_ice| | 2012-3-8 08:32 | 只看该作者
IO需要配置正确,首先必须选择作为晶振IO,模拟IO,还要正确配置频率,还要选择作为CPU时钟。。。。

使用特权

评论回复
7
受不了了| | 2012-3-8 14:28 | 只看该作者
他家的狗默认是放出来的,估计是被狗咬到了,不用任何配置,进门就点个灯,如果灯闪就是被狗咬了

使用特权

评论回复
8
dzxc| | 2012-3-8 19:45 | 只看该作者
void SYSCLK_Init (void)
{
    unsigned char temppage;
        unsigned int n;                 //local variable used in delay FOR loop.
    temppage=SFRPAGE;
    SFRPAGE = CONFIG_PAGE;          //switch to config page to config oscillator
    OSCXCN  = 0x67;                 //16M
    for (n=0;n<255;n++);            //delay about 1ms
    while ((OSCXCN & 0x80) == 0);   //wait for oscillator to stabilize
    CLKSEL |= 0x01;                 //switch to external oscillator
    SFRPAGE=temppage;
}

使用特权

评论回复
9
zxx6176| | 2012-3-10 13:14 | 只看该作者
那么请问如何配置呢 我现在和这楼主一样,单步运行没问题,就是跑步起来,我也知道晶振需要设置,也设置过 还是不行, 能指点一下 需要怎么设置 或者设置成什么样的 就可以达到我以前用的 STC51一样的效果了么? 2# lyjian

使用特权

评论回复
10
lyjian| | 2012-3-10 14:28 | 只看该作者
那么请问如何配置呢 我现在和这楼主一样,单步运行没问题,就是跑步起来,我也知道晶振需要设置,也设置过 还是不行, 能指点一下 需要怎么设置 或者设置成什么样的 就可以达到我以前用的 STC51一样的效果了么?  2# ...
zxx6176 发表于 2012-3-10 13:14

你的问题在你发的帖子里已经有人回答:注意看门狗关了没有。

使用特权

评论回复
11
coody| | 2012-3-10 18:30 | 只看该作者
C8051F用起来是比较麻烦

使用特权

评论回复
12
dlllxm000| | 2012-3-10 20:42 | 只看该作者
一以前用过f020和f330,好像没这种问题哦,我一直都是按照官方的晶振配置的

使用特权

评论回复
13
zxx6176| | 2012-3-11 10:30 | 只看该作者
哦 谢谢啊 我看看WHACHDOG 10# lyjian

使用特权

评论回复
14
zxx6176| | 2012-3-12 15:42 | 只看该作者
您好 看门狗已经关了,而且灯也开始能够按照要求闪烁,或者规定时间内亮灭了
但现在新的问题又出现了, 把同样的语句放在子程序里跑起来,单片机 只进行第一个子程序,不会跑出来。 10# lyjian

使用特权

评论回复
15
lyjian| | 2012-3-12 21:53 | 只看该作者
您好 看门狗已经关了,而且灯也开始能够按照要求闪烁,或者规定时间内亮灭了
但现在新的问题又出现了, 把同样的语句放在子程序里跑起来,单片机 只进行第一个子程序,不会跑出来。 10# lyjian  ...
zxx6176 发表于 2012-3-12 15:42

那还要问吗,软件有问题呗
那你的程序贴出来让别人看是什么问题呗,靠别人的猜想是解决不了你的问题的

使用特权

评论回复
16
zxx6176| | 2012-3-13 08:08 | 只看该作者
void main()
{   
           
   uchar wakeup=0;
   uint i,j;
   PCA0MD &= ~0x40;                    // Disable Watchdog timer
   Oscillator_Init();                  // Initialize the system clock
   Port_Init ();                       // Initialize crossbar and GPIO
   Ext_Interrupt_Init();               // Initialize External Interrupts
   EA = 1;
  
while(1)
{  
  
  wakeup++;
  
  for(j=0;j<3;j++)
  {  
     RUN=0 ;                // 2灯亮                                       
     delay1s(1);     
  RUN=1 ;                  // 2灯灭                                    
     delay1s(1);            
  }
     RUN=1 ;
}

我看他们有的说 我子程序里的“看门狗”需要打开, 那主程序里关闭了,在延时程序里再打开一次?  我真不知道该怎么解决 以前在STC上面 没有遇到过类似的问题
请各位给小弟些许建议,往哪里去改动,有方向了 我才知道去哪里找资料 改程序

15# lyjian

使用特权

评论回复
17
lyjian| | 2012-3-13 08:31 | 只看该作者
不要看门狗的话,一开始直接关掉就行了,不用管哪里开哪里关那么麻烦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

205

帖子

3

粉丝