单片机是用什么编程的?

spider 全部 1017

单片机是用什么编程的?

回复

共6条回复 我来回复
  • 老马识途单片机
    老马识途单片机
    这个人很懒,什么都没有留下~
    评论

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

    我们分别来看看:

    一、单片机的编程环境

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

    大多数的编程环境都支持汇编和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语言可能是最好的单片机编程语言。

    2018-04-19 12:19:56 0条评论
  • 电气电子视界
    电气电子视界
    这个人很懒,什么都没有留下~
    评论

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

    单片机编程的语言即可以用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 delay100ms();//如果函数是在主函数后面定义,那么一定要在主函数前面声明

    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

    电气电子视界

    欢迎您的关注点赞评论

    2018-03-12 16:13:03 0条评论
  • 大学生编程指南
    大学生编程指南
    这个人很懒,什么都没有留下~
    评论

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

    C语言和汇编语言

    开发环境

    MDK

    IAR

    入门书籍

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

    觉得有道理就点个赞

    2018-04-20 15:04:02 0条评论
  • 搞电子技术
    搞电子技术
    这个人很懒,什么都没有留下~
    评论

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

    2018-04-08 23:42:30 0条评论
  • 高校人才真经
    高校人才真经
    这个人很懒,什么都没有留下~
    评论

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

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

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

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

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

    2018-05-24 16:28:21 0条评论
  • 高校人才真经
    高校人才真经
    这个人很懒,什么都没有留下~
    评论

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

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

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

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

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

    2018-05-24 16:28:21 0条评论