当前位置:首页 > 单片机 > 单片机
[导读]#include //1s25000 个脉冲,频率输出方式(行走1 米)#define SYSCLK 2000000#define Motol_Run PCA0CN=0x40 // :允许PCA0 计数器/定时器#define Motol_stop PCA0CN=0x00//sbit Motol_dir=P3^0;void PORT_Init(vo

#include //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;
}
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭