您的位置 首页 电源

C8051F(330)准确延时程序(24.5M)

**********************************************功能:C8051F(330)精确延时245M********************************

//**********************************************

// 功用:C8051F(330)准确延时 24.5M

//**********************************************
#include
#include
//———————————————-
void Reset_Sources_Init()
{
RSTSRC = 0x04;
}

void PCA_Init()
{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
}

void Port_IO_Init()
{
P2MDOUT = 0x01;
XBR1 = 0x40;
}

void Oscillator_Init()
{
OSCICN = 0x83;
}

void Init_Device(void)
{
Reset_Sources_Init();
PCA_Init();
Port_IO_Init();
Oscillator_Init();
}

//—————————-
// 微秒级准确延时
// 仿真:(24.5M)
// delay_us(1); //1.72us
// delay_us(10); //10.89us
// delay_us(100); //102.74us
//—————————-
void delay_us(unsigned char k)
{
while(k–)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
}
//———————————————-
// 毫秒级准确延时
// 仿真:(24.5M)
// delay_ms(1); //1001.75us
// delay_ms(10); //10.008ms
// delay_ms(100); //老机太慢出不来鸟~自己测吧:)
//———————————————-
void delay_1ms()
{
unsigned int j ;
for(j=3060;j>0;j–);
}
void delay_ms(unsigned int i)
{
for(;i>0;i–)delay_1ms();
}
//——————————————
void main()
{
Init_Device();
while(1)
{
delay_us(1);
delay_us(10);
delay_us(100);
delay_ms(1);
delay_ms(10);
delay_ms(100);
P2^=0x01;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/319582.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部