新闻  |   论坛  |   博客  |   在线研讨会
步进电动机程序
mayer | 2009-08-04 19:12:33    阅读:1986   发布文章

步进电动机程序

#include <c8051F020.h>//1s25000 个脉冲,频率输出方式(行走1 米)
#define SYSCLK 2000000
#define Motol_Run PCA0CN=0x40 // :允许PCA0 计数器/定时器
#define Motol_stop PCA0CN=0x00
//sbit Motol_dir=P3^0;
void PORT_Init(void)
{
//P0MDOUT&=0xfe;
P0MDOUT=0x00; // 端口引脚的输出方式为漏极开路
XBR0=0x08; // CEX0 连到端口引脚。
XBR2|=0x40;
}
void SYSCLK_Init(void)
{
// unsigned char i;
WDTCN=0xde;
WDTCN=0xad; //关看门狗,默认使能默认内部时钟2M
/* OSCXCN="0x67"; //
for(i=0;i<255;i++);
while(!(OSCXCN&0x80));
OSCICN=0x88; //22.1184Mhz */
}
void PCA_Init(unsigned char fre)
{
PCA0CN=0x00;
PCA0MD=0x82; //系统时钟的4 分频,空闲方式时,PCA0 停止工作
PCA0CPM0&=0xc7; //16 位PWM 11000111
PCA0CPM0|=0x4e; //频率输出方式01001110 x100111x
PCA0CPL0=fre;
PCA0CPH0=fre;
PCA0L=0x00;
//PCA0CN|=0x40;
}
main()
{
unsigned int i="0";
SYSCLK_Init();
PORT_Init();
PCA_Init(SYSCLK/4/2/2000);
Motol_Run;
while(1)
{
// Motol_dir=0;
if(CCF0==1)
{i++;
CCF0=0;
}
if(i==200)
Motol_stop;
}
}

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客