一般8位PIC单片机使用C语言还是汇编语言编程,好像编译器不是支持所有类型的单片机

如题所述

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里面是没有的,不管你乐不乐意,用了这东西就必须用到汇编指令。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-13
一般是简单的程序用汇编,复杂的程序用C,
PIC编译器分PICC ,C18,C30
PICC 10F,12F,16F PICC 也有18F
c18 18f
c30 30f 24f 33f
根据个人情况选择。
相似回答