首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请高手帮我看看这个串行输出数据控制锁相环程序,似乎不停的复位,但我解决不

[求助]请高手帮我看看这个串行输出数据控制锁相环程序,似乎不停的复位,但我解决不

请高手帮我看看这个程序,我的单片机用的是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();

}

楼上的不好意思 没看明白

返回列表