这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 基础知识每日一题——第十三题

共2条 1/1 1 跳转至

基础知识每日一题——第十三题

高工
2014-06-20 09:36:50     打赏
       活动简介:

“每日一题”是EEPW参考西电XDLab社推出的旨向初学者普及基础知识的一项活动,每天在此帖内公布“每日一题”的题目。大家可以根据自己的理解对题目进行回答和相互讨论,我们鼓励大家积极发言。第二天会给出参考答案。每天一帖,所有的题目都将汇集至此,以期方便大家查找。

 

活动宗旨:

活动目的在于通过“每日一题”让大家每天进步一点点,增强大家的基础知识,提高大家对电子制作的兴趣。我们鼓励大家积极发言,如果不懂、是菜鸟,请积极发问;如果懂、是大神,请慷慨解囊。


        今日题目:【单片机中的延时】

       1. 51系列单片机中延时的方式有哪些,分别怎么实现

       2. 影响软件延时和定时器延时的因素有哪些

       3. 软件延时和定时器延时各有哪些优劣


       参考答案:7L





基础知识每日一题



关键词: 单片机延时     51单片机     基础知识    

高工
2014-06-23 09:25:12     打赏
2楼

1. 在8051系列单片机中,延时有两种方式:定时器延时和软件延时(执行的方式产生延时)定时器延时,是通过定时器计数而产生定时器中断,一个机器周期记一个数。而通过执行空语句来延时,则是在函数的某个需要延时的地方,不断的执行空语句,来达到延时的效果。

2. 两种延时方式都与外部晶振的频率和单片机的运行速度(即一个机器周期对应多少个时钟周期)有关。例如,对于STC89C52单片机而言,一个机器周期=12个时钟周期,那么如果外部晶振选择12.000M,则一个机器周期=12/12M=1us;而STC12系列单片机,一个机器周期=1个时钟周期,也就是说,一个机器周期=1/12M=0.0833us。

3. 定时器延时,相对来说比较准确。但是也会有误差,因为每次响应中断都是需要时间的。(但是每次相应中断的时间相差不大,所以相对来说还是比较精确的)。补充:定时器的工作方式中,8位自动重装要比在中断中手动重装精确。

软件延时:软件延时中的nop是精确的一个机器周期,因为它对应汇编指令的NOP。之所以暂时不精确,是因为c语言转化为汇编时,在循环语句上翻译成汇编占的机器周期不好确定,如果看汇编代码可以把软件延时做的很精确。

关于CPU占用率:如果在主函数中使用软件延时,那么在函数执行过程中,如果遇到需要延时的时候,CPU始终被延时函数占用,无法执行其他操作,大大降低了MCU的利用率;如果用定时器延时,则不存在这个问题。



由于水平有限,如果您发现参考答案中有错误或者有需要补充的,请将您的答案或者建议发送至:master@eepw.com.cn 


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]