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

共7条 1/1 1 跳转至

基础知识每日一题——第四十七题

高工
2014-08-13 10:25:41     打赏
活动简介:

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

 

活动宗旨:

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


        今日题目:类似“P1=0xaa;dula=1;dula=0;”与“dula=1;P1=0xaa;dula=0;”语句,哪种数据传输效果更好?为什么?






基础知识每日一题

菜鸟
2014-08-13 11:14:27     打赏
2楼
这题目太过简单,不知所云.

高工
2014-08-13 11:21:56     打赏
3楼
两种 写法dula=1这句都有可能被编译器优化掉。

高工
2014-08-13 12:27:15     打赏
4楼
我一直选用后者,简单的理解是充分利用语句自身作为延迟,使模拟SCLK的占空比平均化,增强可靠性。

高工
2014-08-14 10:32:13     打赏
5楼

  解答:

  第一种数据传输效果更好。向锁存器传送数据的两种语句:

  ①:

  P1=0xaa; //传送数据

  dula=1; //打开锁存器锁存端

  dula=0; //关闭锁存器锁存端

  ②:

  dula=1; //打开锁存器锁存端

  P1=0xaa;//传送数据

  dula=0; //关闭锁存器锁存端

  锁存器锁存端打开后,随即开始接收数据,此时若 P1 口没有赋值我们

  想要传送的数据,则锁存器锁存端有可能接收到 P1 口原有错误的数据,直

  到 P1 口数据更新为预传送数据,这样便可能使得数据传输不稳定,尤其是

  在高速单片机中。这也是第②种写法不好的地方。如果我们用第①种写法,

  事先为 P1 赋值预传送数据,再打开锁存器锁存端,就保证了锁存器接收正

  确的数据,使数据传送更加稳定。此外在打开锁存端与关闭锁存端之间可适

  当延时,以保证数据接收完整。


高工
2014-08-15 17:02:26     打赏
6楼
正确答案岂不是与我的回答背道而驰了么。所说的背景和情况完全不一样。

助工
2014-08-15 17:48:12     打赏
7楼

要看时序图啦,看情况来定啦,如果数据先准备好,再使能就用前者,如果使能触发在在数据前沿,就用后者啦


共7条 1/1 1 跳转至

回复

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