223

帖子

0

TA的资源

一粒金砂(高级)

41
 

回复34楼 老阮的帖子

忙了一天,刚回来看到你的留言。谢谢!
我说的是一种教材上比较常见的写法。 就是DS1302的读写程序,当然不会是楼主说的那种低级错误。
写一个字节的时候: - - - -- - - -  - - -
                       T_CLK=0;
                     ---- -- -- - - - -
            for(i=8;i>0;i--)
          {       
               T_IO=ACC0;
                            T_CLK=1;
             T_CLK=0;
              ACC>>=1;
        }
此种方法可以。
若换成  for(i=0;i<8;i++)  就不行了, 用的是STC89C52的片子,楼主可以试试。呵呵,  这也是好多年前的程序了,当时调的非常费力,所以这一块儿我记得还是很清楚的!
你可以试一试,说不定会发现更有趣的问题!呵呵
此帖出自51单片机论坛
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

42
 

回复 41楼 风亦路 的帖子

我试了一下,没有问题啊。。。真的没发现问题。。。
这是什么情况?芯片也是STC89C52
此帖出自51单片机论坛
 
 
 

回复

223

帖子

0

TA的资源

一粒金砂(高级)

43
 

回复42楼

呵呵,不知道楼主是不是完全按照那个构架写的子程序?  

这样的程序有很多种写法,写一个字节,比如中间用 if()判断;或者可以直接用bdata定义一个变量,然后在进行位操作。 这样的话那样的话,for怎么写,基本上也都可以的。
其它的就不多说了,有机会大家再研究研究吧! 最终的目的是我们要知道这两种写法的效率是大大不同的,所以产生的效果也会反差很大····
此帖出自51单片机论坛
 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

44
 
回复34楼 老阮的帖子
忙了一天,刚回来看到你的留言。谢谢!
我说的是一种教材上比较常见的写法。 就是DS1302的读写程序,当然不会是楼主说的那种低级错误。
写一个字节的时候: - - - -- - - - - - -
T_CLK=0;
---- -- -- - - - -
for(i=8;i>0;i--)
{
T_IO=ACC0;
T_CLK=1;
T_CLK=0;
ACC>>=1;
}
此种方法可以。
若换成 for(i=0;i<8;i++) 就不行了, 用的是STC89C52的片子,楼主可以试试。呵呵, 这也是好多年前的程序了,当时调的非常费力,所以这一块儿我记得还是很清楚的!
你可以试一试,说不定会发现更有趣的问题!呵呵
------------------------------------------
我去看了下,其实完全是自己的问题,ACC拿过来用出错了,不是很能理解要把ACC拿过来使用
跟for(...一点关系都没
只不过是用到增量碰到ACC了而已。没啥可以说的,就好比没有保存寄存器就使用汇编函数一样,基本的错误
此帖出自51单片机论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

45
 
原帖由 老阮 于 2011-11-16 12:33 发表
楼主的这个问题好啊。我用keil来查看了一下,得出了结果。汇编还是得好好学。编译器还是得好好了解啊。谢谢!
    11:         for(i=8; i>0; i--);
C:0x0095    751608   MOV      i(0x16),#time(0x08)
C:0x009 ...


我之所以,这个问题我也没想明白。
意思就是说,这种问题,想是想不懂的。只有看,才能看得懂。

所有的秘密都在 汇编里。

汇编不欺吾。

版块里,前不久,有个很邪门的 中断误入程序。

最后我就是在 反汇编 里找出答案的。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

46
 

回复 40楼 lrz123 的帖子

前阵子,我犯了一个很脑残的问题。

镭影 让我去看 C专家编程。
这书网上很容易找到中文版。
你有时间去下载来,就在目录里, 它专门提到了一个章节论述了这个问题。

你可以看看去。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

47
 

回复 39楼 biansf2001 的帖子

说句不客气,我不用学就懂51了——靠的就是 大二打下的一点 数字电路 基础。

这些玩意我早就想明白了。

我写这些,从头到尾 只有一个考虑;

对于懂C的人,我这个帖子通篇是废话。
可是你去看看多少 入门靠视频教程学51的人,有多少是真正懂,就是这些基础的C的人.......

[ 本帖最后由 辛昕 于 2011-11-17 01:57 编辑 ]
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

48
 

回复 39楼 biansf2001 的帖子

谭浩强的书我没看过,不过,听过不少人喷他。

前阵子查证 运算符 的优先级 时,看了一下目录,内容也是乱的可以。

看了 运算符 那一部分的 章节,有好些模糊的内容都没有怎么说明。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

49
 

回复 41楼 风亦路 的帖子

我这里说明一下

我说的这两个for,运行上一点问题都没有,效果没有差别。

唯一的区别在于 实际运行的 效率, 老阮 的 帖子在第四页,你们可以看看去。

前边有个哥们说,以前他试过这样写不行,那样写却可以,我也有点奇怪,不过原因可能是他的那个东西时序要求严格,碰巧,这点效率给影响上了。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

50
 

回复 42楼 老阮 的帖子

STC的片子,我用过2051和5A60S2.

关于这一点,了解得不深,只有一个体验:

就是同一家STC,不同系列的片子它的指令似乎也不完全一致,我说的是指令的执行时间。

因为我毕业的时候,做一个DS18B20的程序。
STC和真正标准的AT系列指令时间长度不一致也就算了,我后来在2051上,用STC官方提供的DS18B20例程调通了。

后来帮隔壁宿舍一个哥们,做他的毕业设计,是超声波测距,同样需要DS18B20测温度来进行温度补偿,就试过,换上他买的STC89C51,结果又测不到了。

当然了,你会想到,STC12C2051是12T模式的片子,STC89C51是1T模式的片子。
我脑残地用一个12T模式下的例程去跑1T模式的片子,不跑出问题才怪。

可是,换一个角度想一个问题:
STC自己一家的片子都分什么1T,12T,6T模式,这样的玩意,玩起来谁心里不犯嘀咕?
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

51
 

回复 43楼 风亦路 的帖子

使用位变量。。。。。。
这个真没试过。

唔,其实这个东西我自己也没有看过 反汇编 代码。
当时提问的人随后就说出了答案。

所以我也没留神。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

210

帖子

0

TA的资源

一粒金砂(中级)

52
 

回复 楼主 辛昕 的帖子

感觉楼主的口水话太多,看了一点点就不想看下去了!
个人觉得C语言是一门灵活的艺术,解决问题与实现问题的方法有很多种,编程风格也是因人而异!当然,规则是必不可少的,养成一种良好的编程风格也不是一天两天能练成的,需要长期抗战!
此帖出自51单片机论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(高级)

53
 

回复 41楼 风亦路 的帖子

啊~~我也遇到同样的问题过,当时还在这里提问来的,不过没多久就找到答案了
因为用for(i=0;i<8;i++)的时候,给I赋0值,在汇编里并不是直接mov r7(r7=i),0x00这样的,而是先clr a,然后mov r7 a,所以把之前存在a里的数据清除了,就不行,这个我也是看汇编发现的问题。不知道是不是只要是赋0值都是这样。
此帖出自51单片机论坛
 
 
 

回复

90

帖子

3

TA的资源

一粒金砂(中级)

54
 


楼主经典!!

关于#define 和typedef我也纠结了好久好久。。。。
此帖出自51单片机论坛
 
 
 

回复

368

帖子

0

TA的资源

纯净的硅(初级)

55
 
还没搞懂为何用#define不行,我知道它和typedef的区别,但很多时候是常用#define,哪位跟我解析下
此帖出自51单片机论坛
 
个人签名zhouyuannian#126.com(#换成@)有问题交流
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

56
 
学习了,自己也要注意了!!
此帖出自51单片机论坛
 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

57
 
杜洋口碑不是很好
此帖出自51单片机论坛
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(高级)

58
 
这个必须要顶,良好的编程习惯一定要有! 记得我初学单片机编程的时候看的都是些学校里的原版书,《C: The Complete Reference》是本不错的参考书。可能我不太喜欢速成吧~~~成天看着英文的书和官方的PDF。
此帖出自51单片机论坛
 
 
 

回复

1634

帖子

0

TA的资源

裸片初长成(高级)

59
 
郭天祥也好,杜洋也好,平凡也罢,人家只是希望帮助到更多的人,本没有恶意的,相信他们也花了不少的精力,也没有从中获利,即使出一两套开发板,也没要求我们一定掏腰包购买,我们如果有更好的见解,完全可以另外再出本书,出一部视频教程,整一个超好的PDF,以便帮助到比他们帮助到的更多的人。
此帖出自51单片机论坛
 
 
 

回复

1634

帖子

0

TA的资源

裸片初长成(高级)

60
 
自古以来言多必失
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/3 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表