单片机delay的用法
例如在按键检测中,线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)。
答:详情>>
问:我为什么总是不满足??郁闷!我有个幸福的家,爸爸妈妈对我非常疼爱,我的工作也和父...
答:人的一生,应该是快乐的一生。人活在世上,大概没有几个人愿意在忧愁苦闷中辗转。视快乐为首要的精神享受是天经地义的,同时也是无可非议的。快乐即健康,快乐即幸福,悲观...详情>>
问:金属铅对人体到底有什么危害都说铅中毒是如何如何伤害人体健康,可在日常生活中,并没...
答:上面几楼说的太书本化。 我是在一个铅锌矿长大的,这个我亲眼所见,亲耳所闻。 在铅锌矿工作30年以上的工人,干部也难免。一般都有铅中毒。 症状较轻的就是长期肚痛,...详情>>