看看这本书《单片机原理及接口技术》 |
单片机原理及接口技术 李全利 |
结论:应用于单片机的c51比较好学好用,但只会c不懂汇编的人不会成为单片机用用大家!!!因此,需同时学好两种编程语言。推荐一本双解c和汇编的教材书:《80C51单片机实用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学。 |
结论:应用于单片机的c比较好学好用,但只会c不懂汇编的人不会成为单片机应用大家!!!因此,需下功夫同时学好两种编程语言。推荐一本双解c和汇编的单片机教材书:《80C51单片机实用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学。 |
C语言属于高级语言。一条C51语句,会编译为多条甚至许多条汇编指令(例如数学运算和循环程序等),相对来说,C51程序简洁而清晰,可读性较好。但c实时性较差,汇编语言指令每一条对应1~3字节机器码,每一步的执行动作都很清楚,程序大小和堆栈调用情况都容易控制,响应及时,实时性较好。而C51程序并不能被单片机直接执行,需编译转换为汇编语言指令。一条C51语句编译后,会转换成很多机器码,占用单片机片内较多资源,可能出现ROM、RAM空间不够,堆栈溢出等问题;且执行步骤不很明确,有时还会兜圈子,因而实时性较差,甚至会因时序配合不好而出错。然而,随着单片机芯片技术的发展,其运行速度和内存容量有了较大提高,这些都为C51的应用创造了有利条件。。 |
c可方便地调用各已有程序模块。已有程序模块包括C51编译器中丰富的库函数、用户自编的常用接口芯片功能函数和以前已开发项目中的功能函数。读者可能会说,汇编程序不也一样可以调用吗?不一样。汇编程序调用时,涉及到模块中具体的存储单元,这些存储单元很可能与主调用程序有重复,会引起冲突而出错。而C51程序函数中的变量一般为局部变量,主函数调用前不占用存储单元,仅在调用时由C51编译器根据存储区域空余情况临时分配,使用完毕即行释放,一般不会发生冲突而出错。因此,C51程序可方便地调用各已有程序模块,减少重复劳动,利于团队合作开发,大大提高编程效率。 |
C语言具有丰富且功能强大的运算符,能以简单的语句方便地实现各种复杂的运算和程序。相比之下,汇编语言要实现较复杂的运算和程序,就比较困难。例如,双字节的乘除法,汇编语言要用许多条指令操作才能完成;而C51只需一条语句便能方便实现。又例如,循环、查表和散转等程序,C51语句实现起来也相对简单方便(当然C51语句编译转换为汇编语言指令后仍然复杂,只是不用程序员操心,由编译器自动完成罢了)。 |
用汇编语言编程,几乎每一条指令操作都与具体的存储单元有关,80C51单片机的片内存储空间容量有限,编程之初即需安排好片内存储单元的用途,且一般不宜重复使用。当一些应用项目程序量较大时,片内存储单元有可能捉襟见肘,稍有不慎就将出错,编程相对复杂。而C51编译系统能自动完成对变量存储单元的分配和使用,且对函数内局部变量占用的存储单元,仅在调用时临时分配,使用完毕即行释放,大大提高了80C51片内有限存储空间的使用效率。因此,使用者只需专注于软件编程,不需过多关注涉及的具体存储单元及其操作指令,编程相对方便。 |
最主要还是兴趣,还有 是否要用 |
貌似把C学好就很不错了,汇编用的地方很少,推荐C指针这本书 |
其实:汇编比C简单,C有很多条条框,且不易理解。汇编就那么几句,比C少多了。 由于汇编的句子少,所以实现“大的”目标就困难了,需要智商构思出解决方案。 只要楼主有足够的智商,学汇编一定很快,且比C方便。 要点:读懂单片机原理,细看单片机的指令系统。 |
多看范例程序,结合自己的想法,模仿做一些简单实验,然后做个大实验,把全部功能都用上 |
C语言还好 感觉汇编语言不太懂 |