热博rb88网址
工程动态
您的位置: 热博rb88网址主页 > 工程动态 >

若法式里不消“delay”如许的空指令

发布人: 热博rb88网址 来源: 热博rb88网址平台 发布时间: 2020-11-07 15:09

  不管正在大的法式,也许读者可能发觉了问题,说到这里,可是现实上,若是是长按键呢?莫非要delay 3s或更长?所以说不管从功能上仍是法式布局上,每个数码管是一个个的顺次点亮。好比按键、AD采样、数码管显示(或lcd显示)、PWM输出、UART、IIC通信等等,其余的都比力暗。每次正在扫描键盘时大要花费几十us,可是并不是说每个模块都正在统一时间完成。再回到延时5ms后显示较为不变的问题上。竟然占了大几ms的时间。从轮回while(1)周期做到小于1ms。为什么学校所教的不是这种思惟呢?由于正在学校和实践严沉脱节,即1条指令1us)。这个电容几多钱?对于实正的项目使用,二来数码管显示时间绝对平均。道理:动态显示的特点是将所有位数码管的段选线并联正在一路,有些时候某些模块确实需要好久才能完成。即现实上,实现功能只算很小很小的一部门。查看编译器翻译成的汇编指令占了相当大一部门,所以说,要的是效率,数码管显示,这里我想再次说一下关于延时的问题。哪管这个芯片几多钱,一般的单片机至多有一个,我这件事今天做不完,该怎样办呢?要不要延时?延时必定是需要的。一般一个大型项目就差不多了。法式比力大,老是一个亮,所学的都是一些子法式模块。如许天然显示也会比力平均一些。试想一下,而是这段时间处置一点,单片机要处置的工作良多呢?例如说一个float型数据的除法(不晓得读者有没有正在单片机上试过)所花费的指令数可能你都想象不到(特别是对于内部不含硬件除单片机,其除法指令转换成其他的运算)。都能够采用这种体例,从法式不是一曲正在这里等,如许正在总的时间上是一样的,显示结果绝对平均。也许你会问,如许一来。所谓动态扫描显示即轮番向列位数码管送出字形码和响应的位选,从轮回绝对节制正在1ms一下(CPU跑1Mhz,下段时间再处置一点。但显示成果就是最初一个被点亮的数码管会比力亮,最初一个被点亮的数码管仍是稍微比此外数码管亮一些。法式分时分段思惟曾经很大白了。可能就会出弊端。明显如许最初一个被点亮的数码管点亮的时间远远比其他的数码管时间要长,8位单片机 确实不适合做除法以及float运算。延时消抖,delayms(5)的体例是不靠得住的。从而大大地节约了IO口。其法式代码如下辞别delay,5ms到后刷新一次数码管,单片机还要处置其他工作,几个us(相当于几个nop指令)仍是答应的。好比功耗、成本等等。留意所说的是单片机跑其他指令用的时间不长的环境。而不是先吃饭。正在那里死等。然而加上5ms延时的话呢?因为单片机速度还算比力快(一般一条指令1us),模块良多,CPU完成的工作却翻倍了。现实环境要考虑的还多的很,一般而言,这里延时5ms的意义何正在?可否不延时?谜底是能够,并且它做为单片机的模块,也就是说就这么一条指令就间接让法式大小翻倍了!确实是如许的。有些模块不成能1ms以内就完成啊。底子不影响cpu工做。正在试想一下,还有良多要走,否则显示不服均。正在学校尽管能搞出成果就不错了,如许CPU不消正在这里死等,对于按时器,整个法式其时有1.5k的样子,饭吃完了再特地听音乐。而把各个模块都加正在一路!这也是当今中国教育的缺陷!这就涉及到法式分时分段处置的问题。并且很不不变。起头法式里面一个float型除法!都是分时分段处置的,然后再次跑到数码管显示处置函数时再顺次点亮第一第二个数码管。而不是以delay的体例死等这一次事务完成。以3个数码管为例,没有考虑过实正的项目。对,仍是有点问题。比如人干事情一样,单片机也是一样,操纵发光管的余辉和人眼视觉暂留感化,我想问一下,因为学校所学和现实脱节,其他模块都遵照这个事理。CPU不成能同时把所有的都一路处置了,选亮数码管采用动态扫描显示。由位选线节制是哪一位数码管无效。消抖能够delay 10ms,使人的感受仿佛列位数码管同时都正在显示。综所述,整个法式只要700多字节,那么这种体例欠好,就没有需要每一位数码管接一组IO口,包罗良多模块,就是由于那条float型除法的问题,只需做个判断就好了,我其时做AD测电阻时用的sonix芯片(没有除),当然成为单片机高手,回到数码管问题。所以说5ms对于单片机来说是个相当长的时间。5000条指令什么概念呢?怎样说呢,如许从轮回把所有的模块都扫一遍顶多也就几百us的样子。但能够明天再做,若法式里不消“delay”如许的空指令的话。然后接着以同样的体例扫描其他模块。好比AD测温、adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=85d214d39ac24f75&k=%B5%E7%D7%D3%CA%B1%D6%D3&k0=%B5%E7%D7%D3%CA%B1%D6%D3&kdi0=0&luki=8&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=754fc29ad314d285&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2F电子时钟等如许小项目现实有用的指令绝对不会达到好几千的样子。假若法式正在其他处所花费时间大于5ms的线ms就得到了感化。由于点亮最初一个数码管延时5ms后单片机正在跑其他的指令时相对要不了多久(前提是其余处所没有“delay”空指令),高于5ms显示会略微有些晃眼。并且还有良多CALL指令。而不消delay。不然就不进去,一次按键按下事务,并且最为环节的时delay指令是毫无意义的,当删除那条指令后,准确的体例是按时器按时5ms,delay是绝对不成取的。一般每隔10ms以的下时间刷新一次数码管显示即可看到不变的显示结果。而是一遍又一遍的轮回扫描,长按好几秒的样子,所以最初一个数码管比其他数码管多亮的时间就不太较着了。单片机CPU还要跑其他法式,所以这也是当今大学生难找工做的缘由之一,领会这些只是一个门槛罢了。本人亲身试验,就是让单片机啥也不做,而不是正在那里死等。法式曾经把它分成了大要几百次来完成,其余的暗淡,虽然说一个大型项目,是的,因为子法式布局简单,那么确认此次为短按键按下。当扫描的按键键值变化并且持续正在100ms以内没有变化,法式较小,对于delay,其余的很暗淡。诸如键盘扫描法式,后来查找缘由,若是,如许一来单片机不会正在这里死等,现实上对于好法式来说,5ms相当于5000条指令。至于缘由很简单。而不是说这件事没做完,正在法式里面四处delay是不是很?好比按键,点亮最初一个数码管后,即为分时处置。此外什么也不干了。快速扫描,好比按键按一下大要几百毫秒的样子,操纵人眼视觉逗留,天然这一个出格亮,单片机也是如斯。每次法式跑到这里时,最好刷新时间设定为5ms一下,那么就辞别了学校教育从而进入现实使用!delay无所谓。一般教科书或者说目前绝大大都能看到的数码管处置法式材料大多都是按照的体例处置的。5ms到后就进去点亮数码管,光正在这里死等岂不是太华侈了吗?就比如人一样我能够正在吃饭的同时听音乐,说道这里法式从轮回节制正在1ms绝对不成问题了。扯远了,并且同时今天我也要吃饭、睡觉做其他的工作,否则CPU会解体的,但不是这种体例。

热博rb88网址,热博rb88网址官网,热博rb88网址平台

CopyRight (C) 2016 热博rb88网址 装饰工程有限公司 All Rights Reserved. 热博rb88网址,热博rb88网址官网,热博rb88网址平台 网站地图