印度跟不丹的关系:对单片机熟悉的来。

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 08:44:14
现在我已经在学习单片机了,但是我把汇编语言和C语言一起在混学。
现在我想知道,到底是汇编好还是C还。一定要说出足够的理由让我 信服在能给分哦~~~
谢谢各位大侠

分两种情况:
一,时间充足:学习汇编(低级语言),因为它能更清楚的让你知道单片机的工作原理, 差错也容易纠正。而且学会了汇编再来C也很容易,不过指令比较多点,学习起来慢些。
二,时间紧迫:学习C语言(中级语言),因为它来的更快,也比较直观,但并不是以为着好学过汇编,而且出了差错就比较难搞些。现在应用的大部分都是C了,学了C也可以回来学汇编。

都要学,然后根据应用领域侧重某一项.
楼上某两位已经说得很好了,通常的任务用C来完成就可以,如果你以后的工作领域所涉及的一些东西用C不能轻易完成,(受C的速度极限制约,受硬件成本制约等等)就要靠汇编来辅助.比如一楼提到的实时采样,高速编码转换等等的任务就需要把机器性能发挥到极致来达到最好的效果.
建议精通C,粗通汇编,但要对汇编所擅长的部分多多了解,在遇到具体任务的时候分析如何解决最完美(或者最省力气),或者是"才能完成".遇到真需要汇编的时候就拿起来现场啃一阵就差不多,一般用它来辅助做的东西都是很小段的代码,取得结果后就可以把任务交还给C.
我不是专家,一楼的<<回答者:wqqq - 魔神 十七级 8-12 21:36>>回答很好,建议插旗.

很多初学者对这个问题感到困惑,谈一下我的感受。
工作一年半了,在学校里一直是用汇编写程序,包括参加电子设计竞赛的时候那么长的程序也是用汇编的写的。象AD采样,I2C,液晶屏菜单,PID算法等等。那时候我们的老师也够差劲的,都只会汇编,在他们的教导影响下,我和我的同学都感觉用汇编写程序好,最值得的炫耀的就是执行效率高,如果你的编程思路够高明,够清晰,那几乎就没有冗余的代码!那时候,谁要是用象C写程序就说人家不行,最经典的一句话就是“真正的高手都用汇编写程序!” 呵呵,不知道其他的学校有没有这样的情况。

但从参加工作以后,我几乎就没有用过汇编。因为公司的产品程序升级的太快了,而且版本很多,有好多中设备用的程序有很多相同的部分,我只需要改动一些头文件和一些顶层函数就可以用。C语言是模块化的,语法也很人性化,我的很多程序感觉好像就是在写作文似的,思路很清楚。如果是用汇编开发的话,修改,升级和维护都不如C语言方便明了。

C语言我是完全自学的,我感觉最好的一个方法还是学习人家的一些好的程序算法,我公司是一个小公司,刚成立3个月我就来了,没有高手和前辈带我,更没有同事相互讨论,好在公司以前花钱找人做过一些开发,所以我就看人家的程序,从他的每一条语句开始学C51。开始只能改人家的程序,再后来慢慢的就可以自己写一些程序了。当你完全掌握了C的算法思路和结构特点以后你就会感觉C真的很不错!当然真正的程序员要学一下编程方面的基础知识和算法才可以。不然你的思路永远都打不开,会局限在一个很小的范围内,无法突破自己,超越自己。

现在的编译器都很不错了,编译的结果跟汇编差不了多少,现在的单片机系统资源也都很丰富,很多的片上系统单片机都有扩展片内外部RAM,少的512字节,多的有8K字节,我们的程序一般都用不了这么多,ROM区也都足够用了,从2k-96K的都有,一般最常用的是32k和64k的单片机,所以根本不需要担心写大了系统资源不够用的。

当然了,事物都具有两面性的,C也并不是完美无缺的,对于一些实时性要求很高的系统,C语言的响应不如汇编那么及时,这一点上我们可以通过C和汇编的混合编程来弥补一下,当然种弥补也要具体情况具体分析的。有些是情况无法做到的。

现在用单片机开发的RTOS都是好像几乎都是C来开发的,这主要是因为嵌入式系统程序的维护和升级要求很高,所以汇编根本无法做到。

总结以上所说的,得到以下三点结论:

1。从产品开发的角度来看,为了便于产品的升级维护和移植,用C语言开发具有优势。

2。从产品的实时性考虑,如果所开发产品的实时性要求太高,最好还是用汇编写底层的程序。如果是C语言所能响应的,C语言还是有优势的。

3。初学者,从汇编开始入门还是很不错的,这样可以比较清楚单片机系统内部的结构和工作原理。对学习C语言也是有帮助的。

以上所写希望会对初学者有所帮助!由于我也是工作很短的时间,经验不是很多,如果有错误和不足之处希望高手们指出并指教。不要让我的想法误导初学者。望大家参与讨论!

对于现在的硬件发展水平来看,应该选择用C。

因为
首先 汇编的优势在于执行效率 而现在的芯片的速度足以胜任决大多数的应用与C相比大概能提高20%的效率。
而是用C做开发的话,开发周期要比汇编短非常多,节省很多时间。
如果你的程序对效率要求非常高的话,可以用C开发,然后用汇编改写其中的核心代码。

这样就能结合两者的优势了。

我用我的话来说吧
汇编主要写一些基础东西
就相当于积木的材料一样
C呢
就相当于了积木
而那些高级语言就是拼好的积木咯
你学习单片子^-^|||
这些语言最好都学
但是不要混在一起哦
有联系的话
要经过N多推敲才可以联系在一起
只要你会用
汇编的功能可以说...达到一种恐怖的地步
因为汇编都可以创造语言了咯

当然是C系列了啊
C语言是目前世界上流行、使用最广泛的高级程序设计语言。

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......

C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。

当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。

总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言