哪些单片机支持c语言编程?
不应该说单片机是否支持C语言,目前任何计算机都不直接支持C语言。
而应该说某个单片机的开发环境是否支持C语言。
就目前来说,几乎所有的单片都有支持C语言的开发环境。用的最多的应该是KEIL,既支持 51单片机,也支持ARM的C语言开发。另外TI的CCS支持430的C语言开发。其他的就不一一列举了
单片机C语言编写点亮两盏led灯,首先从中间两盏点亮,依次相邻两盏灯点亮,依次循环永不停息?
#include
sbit M=P1^0;void delayms(unsigned char ms)
{
unsigned int i;
while(ms--)
{
for (i=0 ;i
}
}
main ()
{ unsigned char LED;
LED =0xff;
P1=LED;
while(1)
{ LED=0xe7;
P1=LED;
delayms(1000);
LED=0xdb;
P1=LED;
delayms(1000);
LED=0xbd;
P1=LED;
delayms(1000);
LED=0x7e;
P1=LED;
delayms(1000);
}
}
单片机为什么还在用C语言编程?
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。
这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。
一、单片机编程的特点
对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。
第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。
第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。
二、高级语言编写单片机程序的缺陷
高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。
高级语言无法实现精确的时序控制。
三、C语言是一个折中选择
其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。
而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位
1.汇编太麻烦,移植性差;
2.C/C++为操纵硬件而生,它的编译器编译成的目标平台机器码可直接运行,并非生成字节码或者脚本;
3.JAVA,.NET语言编译出来的程序是字节码,需要庞大的运行环境将字节码实时翻译成机器码才能运行;
4.Python,Ruby等属于脚本语言,需要解释器逐条解释(pyo可以无视),比字节码性能更差;
5.单片机性能差,实时性要求高,而且没有强大的运行环境和解释器,故一般不能运行JAVA,.NET,Python,Ruby等程序,倒是可以执行Lua这样轻量级脚本。
C语言是最适合的,没有之一!
只有两种语言可选,汇编语言和C语言,汇编语言要对单片机内部的寄存器非常清楚,程序可读性差,可移植性也差。C语言编程只需了解一下单片机的寄存器即可,程序的可读性好稍做修改也便于移植到另外一款单片机。
还没有评论,来说两句吧...