爱问知识人 爱问教育 医院库

单片机delay的用法

首页

单片机delay的用法


        

提交回答
好评回答
  • 2023-11-09 04:00:07
      例如在按键检测中,线delay一会儿来完成去抖动,检测按下后再delay一会儿来完成等待弹起。再比如在数码管显示中,控制第一个数码管显示,delay一会再控制第二个,否则就会导致整个数码管都被刷亮,一直显示8。再比如步进电机控制,先发110000再发011000之间用delay来控制转速,delay的久转的慢。
      但是如果需要程序通过按键来控制步进电机的速度,同时将控制参数显示在数码管上。这时问题就出现了:在检测按键的时候电机不转了,数码管也不现实了,因为CPU在delay,在做没有用的空运算。同样的,控制电机转的时候数码管也不亮了,按键也不能检测了。
      控制数码管也是同理。可见历程中每个模块的代码都是不可复用的,不可扩展的。 单片机delay的用法 单片机中的delay()的单位时间不是系统提供的,而是用户自己编制的。如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。
      如果想精确延时,一般需要用到定时器,延时时间与晶振有关系,单片机系统一般常选用11。059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz的晶振。
      最长的延时时间可达216=65 536 μs。若定时器工作在方式2,则可实现极短时间的精确延时如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。 单片机delay的用法 delay一般用于延时函数。如:void delay(unsigned int X){unsigned char i,jfor(i=0i<jj++)for(j=0j<121j++)}主函数直接调用delay函数,更改形参数就可以啦。
      如:delay(100)。

    青***

    2023-11-09 04:00:07

  • 生活 相关知识

  • 生活
  • 日常生活

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):