一般8位PIC单片机使用C语言还是汇编语言编程,好像编译器不是支持所有类型的单片机
2个回答
展开全部
PIC单片机的C语言编译器是分类支持各类PIC单片机的。
一般做工业产品的公司大多用汇编来编写程序,原因有:
1:pic的8位单片机一般ROM和RAM都相对较小,而现在的PIC的C编译器在优化方面做的不是很好,简单的一个C语句编译器能编出很多行汇编代码。所以有些开发人员认为用c还不如直接用汇编写。
2:因为PIC的C编译器不是免费的,破解版的又存在一些逻辑漏洞什么的。而用pic单片机应用的大多是一些需要稳定性极高的控制场合,所以很多开发公司都干脆直接使用汇编来写。
一般做工业产品的公司大多用汇编来编写程序,原因有:
1:pic的8位单片机一般ROM和RAM都相对较小,而现在的PIC的C编译器在优化方面做的不是很好,简单的一个C语句编译器能编出很多行汇编代码。所以有些开发人员认为用c还不如直接用汇编写。
2:因为PIC的C编译器不是免费的,破解版的又存在一些逻辑漏洞什么的。而用pic单片机应用的大多是一些需要稳定性极高的控制场合,所以很多开发公司都干脆直接使用汇编来写。
追问
谢谢您的回答,那如果是16位的单片机呢;还有一般什么样的应用场合会常用C语言编程的呢
追答
16位的PIC有PIC24和dsPIC30/33系列,ROM和RAM等资源相对8位多些。我一般是用C写16位的PIC单片机。
具体什么场合用我说不上,这都是开发者根据自己习惯和项目需要来做的。一般用C的都是那些安全性稳定性要求不是太严的场合用。我有个朋友是做电机执行器的,他们就完全用汇编来写。几万行的代码都是用汇编堆出来的。8位PIC没有乘除法的汇编指令,他自己用循环加减或循环移位等的方法来做各种四则运算。他51用的都是C但从没用过PIC的C编译器。
另外有些PIC芯片的某些功能你不得不用汇编来写,或者在C里嵌入汇编。比如一些用到内部振荡器的pic单片机,使用内部振荡器必须加载内部校准字,而加内部校准字的指令在C里面是没有的,不管你乐不乐意,用了这东西就必须用到汇编指令。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询