❶ PIC MPLAB编译器到底用哪个
首先你说的这些都是PIC单片机的C语言编译器。PICC都是HITECH公司针对PIC系列的C语言编译器。CCS是另一个公司的。他们跟Microchip(PIC单片机的生产商)都没有关系,属于第三方软件。在MPLAB里出现只是他们公司间的合作,捆绑上这些编译器的试用版(试用三十天)。
如果你用PIC18、pic24或dsPIC30/33这些单片机的话。推荐使用Microchip自己出的C编译器MPLAB C18(对应PIC18),MPLAB C30(pic24和dsPIC30/33)。因为这些编译器的编译效率要优于其他第三方,并且有Microchip的官方应用文档支持。
而pic10、pic12、pic16等系列的8位单片机因为内部的程序区比较小,Microchip并没有推出针对他们的C语言编译器。而CCS和HITECH则有针对他们的c语言编译器。就编译效率来说。CCS是最好的,但它在中国的的技术支持却很少。大部分的软件使用文档都是英文的。在国内的应用也没有HITECH的picc那么好。如果这三种系列的单片机,推荐用PICC。
另外,上述的所有编译器除了MPLAB C30在ICD2附送的光盘里有学生版(只针对dsPIC30/33,免费版)外,其他的所有针对PIC单片机的C编译器都是收费的。最便宜的是PICC for pic12/16 ,好像才800多。
不过…… …………………… 网上有破解版本的。哈哈。
另外,如果是用pic10、pic12、pic16等系列的8位单片机,推荐不要先用C语言写程序。用MPLAB捆绑的汇编编译器(这是免费送的)。虽然学起来比较费劲,但能让你更好的了解PIC单片机。毕竟现在外头好多用PIC单片机的企业都要求用汇编写程序(就为了最大效率的使用程序存储器)。
❷ 单片机编程用什么软件(51单片机编程用什么软件)
keil最流行....我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机碧备含的汇编软件有早期的A51,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器悔笑等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
目滚芹前最新的版本是keiluv3,可下载破解版本,否则有容量限制。
❸ 是不是每种处理器都要开发自己的编译器,比如inter的cpu,arm,51单片机等
每个处理器厂家都会开发本身的编译器。这是硬体设计与系统工程师的工作。软件编辑员一般都不需染手此东西。是否每个牌子的处理器都须有自己的编译器呢?未必。
比如Intel,AMD,VIA 同是用x86平台都可享用Intel的编译器。
又如Siemens, SGI,NEC 同出产MIPS平台的处理器都可享用MIPS 的编译器。
但有些特别指令如INTEL的MMX,SSE1,2,3,4;AMD的3DNOW,AMD64 等就有劳个产家编写。
如没有特别指令编译器, 软件会出错吗?很多高档程序编辑软体都会翻译及处理,用标准指令来取代特别指令(应该说不用特别指令),当然执行速度会慢过特别指令。
❹ 编程器做什么用的,还有一些关于单片机烧写的问题
你问题还真多,下面一个一个给你回答:
1.编程器就是将你电脑上写好并生成可执行文件的程序代码写入到你的单片机程序储存器里边。这本身是一个实物大类。
2.编程器就会有与电脑的接口,而与电脑的接口常用的是串口,现在用的STC单片机编程器有一种是USB接口的,其实质是USB接口模拟的串口,所以USB转串口就是指用USB接口模拟串口。
3.ISP是一种通信协议,说简单点就是时序问题,只有时序正确,双方才能进行通信。
4.ISP3.8这个软件应该可以烧写支持ISP程序下载的单片机。但你用的是USB转串口的硬件,所以你所选单片机应该是STC51系列单片机,而不是AT51系列单片机,两者程序下载方式是不一样的。如果要烧写AT51系列单片机必须用专用的编程器。
5.51单片机的指令周期长,AVR的指令周期短,在同样的外部时钟下,AVR的运行速度比51的快很多。不过现在的STC51系列的单片机在指令周期方面也缩短了很多。在这儿一两句说不清楚。51单片机是一个系列,按各自的配置(比如程序存储器大小,A/D路数等)分有很多种型号,所以在51选型上,你要清楚自己会用到一些什么功能。
❺ 主流C51单片机编译器比对
int short 的大小是因机器而异嘛(准确点应该是编译器)。你都说了人家规定的是“最小”为16位,又不是只能是16位,也没有说两者应该相等(事实上是short不超过int就OK啦)。所以当然可以short类型为半个机器字长,而int类型则为一个机器字长的啦。
“C++标准规定了每个算术类型的最小存储空间,但他并不自知编译器使用更大的存储空间 ”
说简单点就是C++规定了个最小的值,但是将你的代码编译成机器码的编译器则确定了你这个长度值为多少。因为C++是一种语言,一个规范,或者说只是一种规定,然后要将你按这种规范写的代码编译成能在机器上运行的代码的是编译器。而在不同的机器上运行的程序的实际结构是不一样的,比如单片机与PC相差就很大。要将按相同规范写的程序在各种各样乱七八糟的机器上运行,就需要相应的编译器了。所以实际的大小是由你编译代码的编译器确定的。
PS:当然当前一般的PC上int都是32位,short16位的。因为现在32位的机子是主流嘛。如果你不写什么单片机的程序可以不用太在意这个问题。但是写单片机程序时就要注意了,因为一般一个单片机的编译器可以编译很多种型号芯片的代码,而这些型号有可能从8位到32位都有……