完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
汇编语言和C语言哪个更好呢?哪个更适合作为单片机程序语言呢?对于这个问题,单片机初学者都会感到很疑惑。 现在普遍用C的比较多,因为C有很好的结构性与模块化,,C比汇编更容易阅读与维护,而C功能化的代码有更好的移植性,方便从一个工程移植到另一个工程,而且C更符合人们的思考习惯。既然你汇编与C都学过,那你一定知道汇编在编程时往往要考虑细节问题,长的程序如几百行甚至上千行的代码你在调试时由于汇编的可读性较差,会花费大量的时间来调试。往往是一个小细节问题会让你搞半天,而结构化的C往往只需要考虑算法而无需过多考虑细节问题,同时可读性好,调试时间也大大减少。特别是在编写较大工程时,C用起来比较顺。 每种单片机基本有其自身一套机器语言,有些相差不大,有些相差比较大,所以你在使用不同单片机时要先了解其汇编语言,与单片机的内部硬件结构,但C就不存在这个问题,只要了解单片机的相应功能的寄存器,就可以编程。基于上述C的优点,现在市场C的需求多些。 我的意见是:两种语言都应该能较熟的掌握。因为汇编的优点在于语句执行时序的精确性,执行效率高,对一些时钟要求很高的系统,汇编比较容易实现。如果能做到C与汇编联合编程。市场需求会更大。 对于单片机开发,C语言又扩充了一部分数据类型: sfr:特殊功能寄存器声明; sfr16:sfr的16位数据; ***it:特殊功能位声明; bit:位变量声明; 例:sfr SCON = 0X98;(SCON是串行口控制寄存器名称,这里只是举个例子,大家不明白也没关系) sfr16 T2 = 0xCC;(以0x开头的数据是十六进制的数A代表10,B代表11,以下类推,直至F代表15,字母大小写无所谓) ***it OV = PSW^2; C语言开发单片机时需要在开头写上有关头文件,对于头文件,学过C语言的同学都知道,相当于把一些函数或者变量已经声明好,可以直接使用,经常使用的头文件有: 通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h intrins.h(这里不要求全记住,只要用到reg.51或者reg.52即可) 常用有:reg51.h reg52.h (定义特殊功能寄存器和位寄存器); math.h (定义常用数学运算); |
|
相关推荐
|
|
无所谓哪个好!正如楼上所说,各有各的用处。不过本人认为,想做好单片机,汇编是必须要会的。
|
|
|
|
|
|
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 09:10 , Processed in 0.697758 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号