单片机是用什么编程的?

Alien丨ET

单片机编程用到的编程语言:

C语言和汇编语言

开发环境

MDK

IAR

入门书籍

学好单片机,下一步的学习方向直接就可以切入到嵌入式,相比单片机嵌入式更加注重带有操作系统的编程,要求更高一些,有空闲时间可以补充下linux的学习。


大学生编程指南

这个问题要从两方面来说:第一是单片机是用什么编程环境(开发平台)编程?第二是单片机是用什么编程语言编程?

我们分别来看看:

一、单片机的编程环境

单片机的编程环境说起来就太多了,基本上每个单片机生产厂家的单片机都有自己的编程环境,并且不同厂家的单片机编程环境都有各自的特色,说到各自的特色,我们应该就会明白,正是因为这些各自的特色,使得不同厂家的编程环境的操作有很大差异,这给我们在用不同单片机开发时增加了很大麻烦。

大多数的编程环境都支持汇编和C语言,但是也有个别的编程环境只支持汇编语言,这是我们选择单片机开发环境时需要注意的。

还有一些编程环境需要再安装一些插件才能完全使用,这也是我们需要注意的。

目前比较通用的单片机开换环境有两种:MDK和IAR。

随着这些年基于ARM技术得CORTEX系列芯片的大规模推广,MDK也应用也是越来越多,MDK的前身是KEIL C,对于从事单片机开发比较长时间的人来说keil c应该不陌生,它最初是51单片机最好的编程环境,后来ARM收购了它,并在此基础上加以增强,现在基本支持ARM全系列芯片的开发。

还有就是IAR,据我所知IAR是目前支持单片机和ARM种类最多的编程环境,从51,AVR,PIC,MSP430到ARM,基本上支持所有的通用单片机。


但是需要说明的是,虽然IAR支持非常多的单片机,但是只是说IAR这个软件,具体到某一种单片机,它是有不同的安装包的,比如要开发AVR单片机,就需要安装基于AVR单片机的安装包。所以IAR实际上对每一种的那片集都是一个单独的开发环境,只是他们的界面和功能选项都是基于IAR这个平台的,仅此而已。

二、单片机的编程语言

相对于单片机的编程环境,单片机的编程语言就没有那么多选择了。目前单片机的编程语言主要是汇编语言和C语言。其中C语言占据了绝大部分的编程选择。

关于汇编语言的优缺点、C语言的优缺点网上讲的已经太多了,我在这里就不在重复了。

只说明一点,相比较而言,C语言可能是最好的单片机编程语言。


老马识途单片机

首先回答一下单片机是用什么编程的?后边详细会举例子!

单片机编程的语言即可以用C,也可以用汇编

用汇编的优势主要是程序可以被编程者优化,这样就可以绝对可控,程序的安全性和执行速度受编程者水平限制,不过总的执行速度较c语言快,代码占程序存储器的容量较C语言小。这样汇编程序更适合程序存储器和数据存储器较小的老式单片机。但是汇编程序毕竟是机器语言的汇编助记符。所以存在指令难记,指令功能弱的缺点,造成学习困难。

C语言优势与缺点正好与汇编语言相反,C语言虽然毕竟是一种高级语言,具有较好的学习性,几乎不必记忆指令,学习容易,而且编译时的优化由编译器管理,一般不受编程者水平限制。由于机器优化的局限性,C语言总的执行速度较

汇编语言慢,代码占程序存储器的容量较汇编语言大。这样,C程序更适合程序存储器和数据存储器较大的新式单片机。

初学者建议先使用C语言快速入门,再去研究汇编,优化程序设计。

下边给大家分别用汇编和C编写~LED灯的循环移动

汇编

org 00h

start:mov r0,#8;

mov a,#1111110b;

loop:mov p1,a

rla

call delay

djnz r0,loop

jmp start

DELAY:MOV R5,#20;延时子程序,延时0.2秒

D1:MOV R6,#20

D2:MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

end

C

#include

void main()

{

int i;

i=0xfe;

while(1)

{P1=i;

i--;

delay100ms();

if(i==0)

i=0xfe;

}

}

void delay100ms(void)//

{

unsigned char a,b,c;

for(c=19;c>0;c--)

for(b=20;b>0;b--)

for(a=230;a>0;a--)

}

2018.3.12

电气电子视界


电气电子视界

研究生期间做了一个机床设计的项目,其中电机控制用的是单片机系统,因此从头学习了单片机。单片机编程用汇编和C语言的比较多。其中C语言属于比较常用比较基础的语言,很多人大学期间都学,也相对比较容易学。而汇编语言属于底层语言,没有C语言直观,指令语言简单,表述起来比C语言要绕一些。所以,目前很多人都直接选择C语言。

但是当年,尽管我已经有比较好的C语言基础,我的导师仍然坚持让我用汇编来做。所以,我又花时间学习了汇编语言,也因此体会到了导师的苦衷。

第一,汇编并不难学,语句非常简单,也不多,没有任何封装,你想实现任何功能都必须一句一句写出来,这样会让你对程序语言有很深的理解。

第二,汇编直接对应到单片机的内部组成,可以通过自己的语言直接控制某个针的输入输出,可以管理堆栈,可以真正把对计算机的理解抽象化到0和1,而编程就是控制这些0和1。

所以,如果想学单片机,不妨花一点时间学习一下汇编语言。不需要真正编多长,能理解能看懂就行。


高校人才真经

单片机

编程的语言

既可以用C,也可以用汇编。
用汇编的优势主要是程序可以被编程者优化,而不是由编译器优化,这样就可以绝对可控,程序的安全性和执行速度受编程者水平限制,不过总的执行速度较

C语言

快,代码占程序存储器的容量较

C语言

小。这样,汇编程序更适合程序存储器和

数据存储

器较小的老式单片机。但是,汇编程序毕竟是机器语言的汇编助记符,所以存在指令难记,指令功能弱的缺点,造成

学习困难


C语言

的优势与缺点正好与汇编相反。C语言毕竟是一种高级语言,具有较好的学习性,几乎不必记忆指令,学习容易,而且编译时的优化由编译器管理,一般不受编程者水平限制。由于机器优化的局限性,C语言总的执行速度较

汇编语言

慢,代码占程序存储器的容量较

汇编语言

大。这样,C程序更适合程序存储器和

数据存储

器较大的新式单片机。
建议

初学

者先使用C语言

快速入门

,然后再研究

汇编语言

,优化

程序设计


互联网达人李先生

单片机编程可以用汇编也可以用C语言。汇编速度快、占空间小、但不好维护、可读性不强、重利用率不高等特点。C语言则相反。 还有一点就是C语言可开发所有单片机类型,但不同类型单片机汇编是不一样的。还有一点,在工作中用什么语言开发不是你定的,是由公司定的。公司要考虑成本问题,能用最便宜的单片机实现所需要的功能这是老板最喜欢的。所以单片机资源较少,又要实现较多功能时,有时用C语言生成的代码大小超了,单片机都装不了,那只能用汇编了。


分享到:


相關文章: