199

帖子

0

TA的资源

纯净的硅(初级)

21
 
刚入门的时候,看看他的视频挺好的。关键是看自己想不想学,真的想学,那些习惯都不是问题。
我就是看他的程序入门的。但是我现在比较习惯直接用unsigned char。因为还没有怎么要移植到32位机上面。但是至于typdef 和#define,也算懂一点,当然不敢说一定全部都懂。这个东西,个人觉得有时候还是需要亲身体会一下比较好。
此帖出自51单片机论坛
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

22
 

回复 18楼 klyz12ss 的帖子

额.....貌似这跟单片机本身倒是关系不大,跟C有关系。
此帖出自51单片机论坛
 
个人签名

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

 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

23
 

回复 19楼 51学习者 的帖子

主要是工作后,内容直接转向ARM。
51没再碰过,所以渐渐疏远了。对于51,我是基本算是混个入门,仅此而已。
此帖出自51单片机论坛
 
个人签名

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

 
 

回复

192

帖子

0

TA的资源

纯净的硅(初级)

24
 

回复 23楼 辛昕 的帖子

我现在大四了 想通过学习单片机找个和相关的工作,主要还是对这个有兴趣,我学习2个月51的时候问过同学说看完了51 再看啥 同学的建议是深入学习,可是越来越久的找工作中 觉得51好像用的少了,是不是工作以后也用处少??
还是应该像你一样,直接看看ARM?起码对找工作有点好处?
我最近要考试了 单片机也只能先放下几天了 (还是想我那个没完成的程序啊......)
斑竹推荐个 有关ARM的 入门学习方法 或者视频 或者资料吧 我现在一点都不了解ARM.....
此帖出自51单片机论坛
 
 
 

回复

535

帖子

0

TA的资源

五彩晶圆(初级)

25
 

回复 24楼 51学习者 的帖子

我首先说一下啊,我现在大二啊,一些观点有点不符合实际,之前我对51的所谓的学习,就是看看视频教程,然后照着写写程序,也就这样过了。但是群里的一个牛人,跟我说学习51的目的要理解他是怎么工作的,他建议我深入到51里面去,让我真正了解单片机。我现在正在学习,他和我说他51玩了5年。。。。
我们再说说辛昕吧(俺们原来的版主大大),我感觉他之所以能够玩ARM,在于他对51的理解,有他的教程为证,还有就是他的电子的基础,这个看他发过的帖子就知道了。。。
辛哥说说你的想法啊
此帖出自51单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

223

帖子

0

TA的资源

一粒金砂(高级)

26
 
LZ剖析的很好。但话说回来,郭天祥老师确实挺棒的,试想一下:有多少人能当着学生的面一个字符一个字符的敲程序,还能保证程序结构合理,变量名定义美观,程序运行基本上都能正确!!!而我们大多数人只会静静地自己在那研究程序,或者花很多的时间去自己去一点一点的修改,没什么压力和时间限制!  
  所以,将心比心,郭天祥确实很棒!  
  不过,要想把C学好,还得自己一步一步去努力积累和完善!不能完全依靠那个基础视频。
此帖出自51单片机论坛
 
 
 

回复

192

帖子

0

TA的资源

纯净的硅(初级)

27
 

回复 25楼 小小白 的帖子


大二的学弟,单片机的学长。
但是现在面临找工作的问题了.....
还是想听听辛昕斑竹的建议
此帖出自51单片机论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

28
 

回复 25楼 小小白 的帖子

我赞同 51 是所有单片机/嵌入式,甚至是计算机(我说的是X86系统)的基础。

因为我自己未曾真正学过任何 计算机基础课程,但是,在我学51前后,两次看 这类的书籍,感觉完全不一样。
51的基础让我基本理解了一些非常基础的诸如 取指译码 等概念,尽管只是概念,但是却让我看懂了曾经的天书。

但与此同时,我自己上班,不好说是 机遇 还是 倒霉,总之,ARM LINUX,所有这些我曾经回避的东西,是躲一个来一个.......

这个过程是相当痛苦的事情。

所以我形成另一种观点:
如果你要学ARM,那你就学吧,不要想着什么,先51,再AVR,再ARM......没用。
真正学的进去的人,你让他直接ARM,他也能学出来。
而学不进去的人,你让他把所有单片机都学一遍,估计也费劲。

因为道理是相通的,既然是相通的,那么,直接走和绕着走区别不大。
为啥我说 学不进去的人 学再多也白搭——我不是鄙视人更没有骂人的意思,只是我见过这样的人不在少数,在他看来,写程序就是找例程,修改参数,他甚至连这个程序是怎么一个结构都没看出来。
当然了不是他没看,是他看了也没看懂,你能想象一个连 带参宏都不懂的人能看懂什么?
要是让他遇上几个条件编译 和 内联函数,估计他就傻了。

我是对51比较熟悉,但是,这对我玩ARM有帮助么?
不能说没有,但至少没有直接帮助。
ARM和51压根是两回事。

而那些真正有帮助的东西,都是“独立于平台”的。
比如C语言。在嵌入式单片机的世界里,C一直是万国通用语言语言,它的应用范围超乎你的想象,惊喜着我,让我觉得我以它为终生语言的选择,无怨无悔。

我可以负责的告诉你们一个我的观点:
C51首先是C语言。
我在学51以前,花了几个月,先学了一遍标准的C语言语法。

后来我玩LINUX时,看过很多所谓的LINUX C,其实这本身就是外行人才说得出来的话。
因为天下没有LINUX C这个说法,天下只有一个C语言,当然你非要说C51,C430增加了几个新的关键字,就说它不是,那我也没办法。
更别说,LINUX本身就是在C的基础上构造出来的一个超级C程序。

所以,你要问我,要想吃这口饭,混这行当,要学什么?
那首先把C学好,别的都多余。
什么平台也罢,除去一些基本的底层设置,在写程序这个层面上,除了C,别无他物。
会51?会什么什么芯片.......也许有一天你上班遇到的是一个你压根听都没听说过的芯片,但是不要紧,只要你看到熟悉的C代码,然后你本身懂C语言,那么,一切无关紧要。
此帖出自51单片机论坛

点评

太对了  详情 回复 发表于 2015-7-2 09:36

赞赏

1

查看全部赞赏

 
个人签名

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

 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

29
 

回复 26楼 风亦路 的帖子

他的确很棒,但这不能作为理由。
何况有一些程序真的挺简单,对于熟悉的人来说,随手写出来并不是太夸张的事情。

而且很多时候 那是习惯问题。
一旦养成,至少形式上并不是太困难的事情。

但是要一下手就能够想到代码背后实际运行起来的效果,特别是深入到 反汇编 那种层次。
比如说可以分析出特定平台上特定语句的不同效果,那一种倒可以说是临时写不一样。

比如说,51里,写for(i = 0;i  < 8;i++)
和for(i = 0;i >= 0;i--)
这两句话,实际运行起来的效率差别在哪里?

这种问题能够在那一瞬间想好,那就的确是不该苛求的事情。

这个问题,不要小看,我自己就没想明白。
这个问题的提出者是本论坛的 richengfeng,他才是一个真正C和51方面的行家,跟他比,我什么都不是。

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

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

 
 

回复

223

帖子

0

TA的资源

一粒金砂(高级)

30
 

回复 29楼 辛昕 的帖子

嗯,LZ说的很有道理。 我们都是平心而论。
说来也巧,多年前我也遇到过这个问题:
51里,写for(i = 0;i < 8;i++)
和for(i = 8;i >= 0;i--)的差别。
用STC89C51写DS1302的读一个字节程序时,用前者不能,用后者却可以。 当时这个程序的错误我整整用了一天才查找出来(当时没仿真器)。所以这两者的效率也就是在那一天我才知道有那么大的差别!!!
其实,我也挺敬重楼主的,谦虚,实在!
此帖出自51单片机论坛
 
 
 

回复

535

帖子

0

TA的资源

五彩晶圆(初级)

31
 
学习51单片机到底我们在学什么?这是一个一直疑惑得问题,我们学习得最终目标是什么?我想要理解他,从硬件和软件上理解他,只有理解他,你才会用好他,正如现在三级管在电路中已经不常见了,但为什么我们还要学习三级管,不仅仅是在好多集成电路得内部有他得影子,更因为它代表着是一种学习的思路
此帖出自51单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

32
 
向老斑竹学习~~~
老版主提的这个问题很关键,对于初学者来说,一开始就有一个比较规范的标准是比较好的。对于程序的规范性问题其实有很多,比较清晰的程序不仅利于别人看,对自己也有好处。以前体会不深,这多半年一直在看以前同事留下的程序,费死劲了。
老版主这次说的主要是C语言的基础,学单片机的大部分应该都学C语言,其实很多东西书上都有的,希望大家多看看书,别只要能用就行,要知其然并且知其所以然。
对于程序的规范性还有很对,老版主也提到了一个很重要的就是变量命名,对于变量命名,我开始也很少注意,wei1这样的用法也出现过,不过那时候还没有郭天翔的视频。变量的命名要本着大家都能看懂的原则,我并不主张一定用英文,英文基础不好的同学完全可以用拼音代替。wei1的写法我也不反感,我觉得只要做过数码管动态扫描的都能看懂这个意思。我看程序发现了一种变态写法,中英结合的写法,举个例子啊,变量HY,我不信你能猜出来,这个是高压(电压值)的变量,hight和ya(压),我以前的同事写的,我是通过显示函数猜出来的。
关于程序的规范性还有一个看起来不太重要的部分就是格式,包括文件注释,函数注释,语句注释以及对齐等。这些程序之外的东西对程序的执行没有任何帮助,但对于程序的阅读却帮助很大。
此帖出自51单片机论坛

赞赏

1

查看全部赞赏

 
 
 

回复

391

帖子

0

TA的资源

纯净的硅(高级)

33
 
顶起来吧,
此帖出自51单片机论坛
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

34
 

回复 30楼 风亦路 的帖子

是你的程序问题么?
我自己试了一下,用for(i=8; i>0; i--)不会有问题啊。。。当然你要是把i>0改成i>=0,那显然是必须有问题的。
此帖出自51单片机论坛
 
 
 

回复

116

帖子

0

TA的资源

一粒金砂(高级)

35
 

回复 29楼 辛昕 的帖子

你现在明白这两者的区别了吗,求指教,貌似是和变量变为0时处理的速度有关吧?我还是不知其所以然,求指点
此帖出自51单片机论坛
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

36
 

回复 29楼 辛昕 的帖子

楼主的这个问题好啊。我用keil来查看了一下,得出了结果。汇编还是得好好学。编译器还是得好好了解啊。谢谢!
    11:         for(i=8; i>0; i--);
C:0x0095    751608   MOV      i(0x16),#time(0x08)
C:0x0098    D516FD   DJNZ     i(0x16),C:0098
    12:         for(i=0; i<8; i++);
C:0x009B    E4       CLR      A
C:0x009C    F516     MOV      i(0x16),A
C:0x009E    0516     INC      i(0x16)
C:0x00A0    E516     MOV      A,i(0x16)
C:0x00A2    B408F9   CJNE     A,#time(0x08),C:009E

上面的是汇编代码。keil  C51的.
此帖出自51单片机论坛
 
 
 

回复

2734

帖子

0

TA的资源

裸片初长成(初级)

37
 
我感觉不是卖弄,楼主很给力,给楼主顶一个帖子,算是对于楼主给大家做贡献的一个鼓励吧,嗯嗯,值得值得,希望楼主继续努力啊!加油
此帖出自51单片机论坛
 
个人签名我爱电子!
 
 

回复

56

帖子

0

TA的资源

一粒金砂(高级)

38
 
见微知著~~~楼主有心了~
此帖出自51单片机论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

39
 

谈谈我的想法

呵呵,我是看谭浩强的C学的,你说的这几个人我一个都不熟悉。
汇编是在学校的教材,谁的也忘了。

看要看重点,人家是教给你学51的?还是教给你学C语言的?
你51没学会,倒是把他的C给学过来了。

人家给你的是渔,你却当成了鱼。

还是一句话:尽信书则不如无书。
为什么要博览群书呀,就是要对比啊,哪家对就信哪个。

命名法很多种,windows的好不好?但是如果让你点个灯的小程序,你去学windows?弄那么一长串的变量?

适合的就是最好的。
此帖出自51单片机论坛
 
 
 

回复

368

帖子

0

TA的资源

纯净的硅(初级)

40
 
#define 这个我也常这样写,难道错了,我并没有看过啥郭的书!就是为了少写几个字母而已,心里就没有想把它写成typedef,我的typedef一定用在结构体中,不知道楼主为何说#define错误
此帖出自51单片机论坛
 
个人签名zhouyuannian#126.com(#换成@)有问题交流
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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