原创 c8051f020延时

2010-6-26 16:38 2268 6 6 分类: MCU/ 嵌入式

最近着手C8051F020单片机,在此就不夸大他有多强了,用的人都知道,做了个小实验,蜂鸣器的鸣叫,程序很简单,写完之后下载到单片机里,蜂鸣器一个劲的叫,而且声音难听,第一感觉就是延时没处理好,接着单步运行,OK,全速运行,NO!很是郁闷。。。以前写程序从没有被延时搞过,可能是以前的速度比较慢,现在是11.0592*2M,也就是说是22.1184M,执行一条指令的时间就是1/22.1184M,速度太快,三极管反应不过来。。。没办法,从新计算:总延时:t={[4Y+(n+3)X*Y+4]*t+10}*T,T为时钟周期;当晶振为11.0592M时,T=1/11.0592MHz,延时50ms,则X=251 , Y="200" , n="8"。


因此:延时函数如下:


void Delay(uchar t)
{
 uchar  i,j;
 uchar Y="200";
 uchar X="251";
     do
  {
  j=Y; 
  do
   {
   i=X;
   do
    {
    _Nop();_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();//n个NOP
    }while(--i);
   }while(--j);    
    }while( --t ); 
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条