打印

请高手帮我看看这个程序,似乎不停的复位

[复制链接]
1731|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhhushdu24|  楼主 | 2009-2-1 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请高手帮我看看这个串行输出数据控制锁相环程序,似乎不停的复位,但我解决不了,求助!
请高手帮我看看这个程序,我的单片机用的是C8051F330.我是用它来控制锁相环.
程序是单片机向锁相环输出3组数据,每组数据包含3个8位二进制数.其中用到单片机3个I/O口,一个做时钟信号,一个控制信号,一个数据信号.
程序编译下载没问题,在线仿真也没问题.但用示波器查看三个口都一直有信号输出,似乎程序在一直不停的执行.
曾经怀疑是单片机在不停的复位,检查程序发现初始化时没有禁止看门狗,现在是改进后的程序,但问题仍然存在.小弟真的是没办法了.
一个很简单的程序,实现很基本的功能.我已经被拖在这好几天了,现在程序没搞定,整个系统就没法调了.
请各位高手指点一下,或者帮忙改下这程序.在此多谢了?
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
                

#include <c8051f330.h> // SFR declarations
#include <stdio.h>


sbit Clk=P1^1;
sbit Dat=P1^0;
sbit Le=P1^2;
unsigned char code init[9]={0X84,0X00,0X15,0X00,0X0B,0X26,0X3F,0XE9,0X20};



void main()
    {
        unsigned char i,j,count;
        unsigned char k=0,sendata;
        
        OSCICN=0xC3;//内部H-F振荡控制寄存器,振荡器频率24.5MHz(1100,0011)
        P0MDOUT=0x00;//实际并没有使用p0口,配置为漏极开路输出
        P1MDOUT=0x07;//仅使用了p1.0,p1.1,p1.2.配置为推挽输出
        P0SKIP=0xFF;//所有位被卧交叉开关路跳过
        P1SKIP=0xFF;//
        XBR0=0x00;//00000010.SPI I/O连到端口引脚
        XBR1=0x40;//0100,0000    交叉开关使能
        IE=0x00;//禁止中断
        RSTSRC=0x00;
        //PCA0MD=0x00;//CLR WDTE,时钟源=系统时钟的12分频
        //PCA0CPL2=0xFF;//超时间隔=32.1mS for sysclk=24.5MHz
        //PCA0MD=0x40;//SETB WDTE
        //PCA0MD=0x00;
        //PCA0CPL2=0xFF;
        //PCA0MD=0x40;
        Le=1;
        Clk=0;
        Dat=0;
    
        
    for(i=0;i<3;i++)
        {    
            Le=0;
            
            for(j=0;j<3;j++)
            {
                 for (count=0;count<8;count++)
                 {
                    sendata=init[k];
                    sendata<<=1;
                    Dat=CY;
                    Clk=1;
                    
                    Clk=0;
                    
                  };
                k++;
                 
            };
        
        
            Le=1;
            
            
            
        };
    
            Le=0;    //SendPLL();

    }

相关帖子

沙发
hotpower| | 2009-2-1 22:00 | 只看该作者

while(1){}

使用特权

评论回复
板凳
ayb_ice| | 2009-2-2 20:18 | 只看该作者

查看复位源寄存器

使用特权

评论回复
地板
箫笑| | 2009-2-2 20:48 | 只看该作者

整个main函数都给出来了吗?

for(i=0;i<3;i++)这个循环完了之后程序没得跑了,当然复位了。

使用特权

评论回复
5
hotpower| | 2009-2-2 21:59 | 只看该作者

程序不是这样编的~~~

使用特权

评论回复
6
mxh0506| | 2009-2-3 00:02 | 只看该作者

基本的前后台系统该怎么写还没弄明白?

使用特权

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

本版积分规则

2

主题

2

帖子

0

粉丝