您现在所在的是:

单片机论坛

回帖:16个,阅读:3064 [上一页] [1] [2] [下一页]
980
leilei9098
文章数:20
年度积分:50
历史总积分:980
注册时间:2005/4/23
发站内信
发表于:2005/4/23 15:39:00
#10楼
什么语言都能自学,我也大三了,C,C++,汇编都是自学的
为了自己和自己心爱的女孩,我不得不努力。
十年离乱后,长大一相逢。
问姓惊初见,称名忆旧容。
别来沧海事,语罢幕天钟。
明日巴陵道,秋山又几重。
2459
sgx
文章数:474
年度积分:50
历史总积分:2459
注册时间:2001/11/22
发站内信
发表于:2005/4/23 21:25:00
#11楼
为何要使用C而不是汇编?

Torda / 2004-10-05 / www.21icbbs.com

  好些年之前,我为自己写了几万行汇编代码而骄傲。然而在工作后从事软件开发,公司要求采用C和C++,当时很是郁闷,觉得自己软件什么都不会,怎么做软件啦,还用C和C++。当然在学校虽然学过,但是我当时就打算做硬件,应此觉得汇编就够用了,也就没有仔细学过C。

  然而,做过多年软件开发的我,看到以前写的汇编代码也是很多不懂的,这可是自己亲手写的呀。汇编代码由于其可读性比较差,给后期的维护造成很大的困难。因此建议单片机的学习者们一定要学习C。

  这句话要是我在读书的时候听到,只是会嗤之以鼻。“用汇编就足够了,为什么用C呢?如果您用汇编做不了,说明水平还不够”,这是我的典型想法,当时我的汇编水平甚至成为我的骄傲。然而几年之后的今天,我要劝说后来学习者一定要舍弃汇编而学习C语言,是否很好笑。


  首先说说C的优点。


1、直观,可读性强:这点很重要。对于一个产品,周期是很长的,即使出第一台产品之后,还有很长的维护时间。这中间维护人员可能经常变动,如果可读性强,将给维护工作省下很大的成本。即使是在开发,可读性强的程序也便于查错。

2、模块化可以做的很好:这点也是很重要的。模块化做得好,当然程序得重用性就高。对于公司来说,这一点是关系到公司长远发展的。程序可以重用,说明下一次开发的投入就可以减少,时间也可以加快,多好的事呀。


  还有很多有点,当然也就是高级语言相对于汇编语言的优点,这里就不一一列举了。


  再来看看汇编的优点:应该来说,汇编语言操作硬件直观,对于硬件非常熟悉的人来说,直接操作很方便。另外可能就是很多人说的效率要高了。

  针对以上两点我来说说,首先“汇编语言操作硬件直观”,这是在代码编写阶段,对于整个产品周期来说,应该是要避免使用汇编语言的,这个在C语言的优点中已经说明。对于第二点,效率问题,目前C语言的编译器优化也做的很好,对于一个汇编不是很熟练的来说,C编出来的程序应该不会效率比汇编低。当然这样就对开发人员的要求降低了很多,人员的限制也就没有那么严格。另外是否真的是效率问题呢。我觉得应该是一个整体效率和局部效率的均衡问题。需要提高的是整体的效率。一个好的软件架构,远远比一个好的函数效率要高的多。因此主要的精力应该放在软件的架构上。另外现在CPU的速度不停的往上提,CPU越来越快,这点应该也可以弥补程序的效率吧。

  当然,我的意思不是不学习汇编。汇编对于熟悉硬件有很大的好处,应此汇编语言在学习初期一定是要学习的。在基本的硬件熟悉之后,就可以转向C了。

  原文出处:http://www.e-midas.cn/Article_Show.asp?ArticleID=23

骐骥一跃,不能十步;
驽马十驾,功在不舍
902
鹰之翼
文章数:5
年度积分:50
历史总积分:902
注册时间:2005/4/5
发站内信
发表于:2005/4/25 10:39:00
#12楼
谢谢大家的指点!
其实我们已经学习了C语言,但是汇编语言也就只学了MOV,MOVX,DJNZ之类的单片机汇编语言!
现在我们正在学习接口技术!
但是总感觉学到的东西实在太浅,尤其是硬件方面!平时也在实验室里做一些实验,那里有仿真器,编程器,一些其他方面的东西!
上次实验做的是电子音响,觉得挺有意思!
但是听说51的能力是有限的,好象工作后就不怎么用51了,要KEIL,ARM什么的!
所以不知道现在应该学习些什么东西,才能跟社会的需求能更好的接轨呢?
望大家指教!感谢大家了!
902
鹰之翼
文章数:5
年度积分:50
历史总积分:902
注册时间:2005/4/5
发站内信
发表于:2005/4/25 10:45:00
#13楼
以下是引用tuxw在2005-4-19 14:31:00的发言:

首先要学会的是使用基本IO口,在此过程中,多熟悉一些常见的外围电路,在此基础上进一步了解IO口的输入输出特性,驱动能力等

然后中断,最常见的两个外部中断,学会中断程序的编译写方法

再就是单片机的内部资源了,包括定时器、计数器

接下来学习串口通讯


其实我们已经学习了这些,基本的编程也掌握了一些,可是现在不知道该向哪个方面学习(KELI?ARM?),硬件上应该了解到什么一个程度?
希望大家能再指教一下!
918
六月的雨
文章数:8
年度积分:50
历史总积分:918
注册时间:2005/4/6
发站内信
发表于:2005/5/16 17:05:00
#14楼
KEIL是软件,是用来编译你写的C程序或者汇编程序的以及产生目标代码等等的,不是单片机,还有就是你竟然把它和ARM放在一起讲
你说51能力有限,但是你连它有限的能力都不会用,这就是你的不对了。哈哈
我也是刚学的,觉得汇编用起来爽,直观,如果哪位高手只学C51,没学过汇编的话,我真会怀疑他是不是高手,呵呵。学完汇编再学C51,就深入浅出了。
不过话也说回来,C的可读性好,就是说,你写的东西别人好懂,不象汇编,你写的东西,过段时间自己就看不明白了,更别说别人了。所以刚学的人,比如我,看懂别人的汇编是比较困难的,最好作者就在我旁边,讲他的思路就好了, 哈哈
大家别拿鸡蛋砸我,虽然我水平很菜,但是我觉得论坛里的人的水平普遍不高
还有就是这个论坛没什么人气
看贴不回贴的人太多了
我看到上海芯源电子那人说要出单片机教程,结果有N多人就留信箱要,其他帖子就没什么人气了,哎,什么世道嘛。
别闲我废话多
上面这位同学,其他人给你的指点实在是太笼统了,呵呵,没什么实用价值的
如果你真要做单片机工程师的话,建议首先找找附近有没有电子市场,去买个编程器什么的,买个烂点的,一两百块。这是一定需要的。以后做板用的器件都可以去那买,买不到,就邮购吧,建议你买之前先列个元件清单,养成一个好习惯,哈哈。
你大几呀,C语言应该早学了吧,现在学的应该是C51吧
肚子饿了,吃饭去了,想交流的加QQ122629865,女的
对了,看贴要回贴哦,没注册的就注册一个,反正很方便的,对吧~
1162
xiahuilpc
文章数:104
年度积分:50
历史总积分:1162
注册时间:2005/5/16
发站内信
发表于:2005/5/16 18:52:00
#15楼
用过C后没人会愿意再用汇编去写程序,除非是速度实在满足不了要求,而且你又不想换一个高速处理器来重新设计,你的唯一选择就是汇编。
918
六月的雨
文章数:8
年度积分:50
历史总积分:918
注册时间:2005/4/6
发站内信
发表于:2005/5/17 10:27:00
#16楼
你说的用过C之后没人愿意用汇编,那请问他用C之前是不是用汇编呢
举个很简单的例子吧,玩过魔兽世界吧
猎人有个技能叫做“致死射击”(好比是C),厉害哦
但是前面非得学个技能“致命射击”(好比是汇编),就没这么厉害了
什么叫铺垫,你懂吗,我在前面说了这么多,怎么还有人不懂呢,真是郁闷

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005