会c语言学单片机_用单片机编程学c语言还是学python - CSDN
  • 单片机c语言编程是基于C语言单片机编程。单片机C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言...
    展开全文
  • 《从零开始学单片机C语言》定位于让初学者从零起步,轻松学会单片机高级编程C语言以及实战技术。书中首先简要介绍了8051单片机的主要构成,然后重点介绍了单片机Cx51高级编程语言开发与仿真环境的使用方法,透彻地...
  • 答案是:C语言是最适合单片机编程的高级语言。 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不...

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。

    这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。

                                      

    一、单片机编程的特点

    对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。

    第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。

    第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。

                                      

    二、高级语言编写单片机程序的缺陷

    高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

    高级语言无法实现精确的时序控制。

                                     

    三、C语言是一个折中选择

    其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。

    而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位

    作者丨悟空问答:老马识途单片机

    “我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线和工具。如果感觉自学C/C++编程有困难的话可以湫湫扫下方二维码。这里是编程爱好者的聚集地,欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。

     

    展开全文
  • 单片机C语言的关系1.单片机一般使用C语言来编程2.学习单片机C语言的学习占比很大3.C语言不止用于单片机 1.单片机一般使用C语言来编程 2.学习单片机C语言的学习占比很大 3.C语言不止用于单片机 ...

    以用促学

    1.单片机一般使用C语言来编程

    2.学习单片机C语言的学习占比很大

    3.C语言不止用于单片机

    展开全文
  • 单片机c语言考试题及答案,这是最新的,希望对学习单片机的同学有帮助!
  • C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高等,因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发,同样可以用C 语言实现。...

    1.为什么也是C语言?

    用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高等,因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发,同样可以用C 语言实现。
    Microchip 公司没有自行开发PIC单片机的C 语言编译器,但其他公司有开发众多支持PIC 单片机的C 语言编译器,常见的有Hitech、CCS、IAR、Bytecraft 等公司。其中最常用的是Hitech 公司的PICC 编译器,它稳定可靠,编译生成的代码效率高,在用PIC 单片机开发者中得到广泛认可。
    Hitech-PICC 编译器基本上符合ANSI C标准,但是不支持函数的递归调用。其主要原因是因为PIC 单片机特殊的堆栈结构。PIC 单片机的堆栈是硬件实现的,其深度已随芯片固定,无法实现需要大量堆栈操作的递归算法。  成的代码效率高,在用PIC 单片机开发者中得到广泛认可。

    2.MpLab中配置PIC C编译环境,并进行项目开发

    为便于PICC编译器的编译环境设置,应先在MPLAB IDE集成开发环境下创建一个PICC  C编译器的项目。
    1.启动MPLAB IDE7.00集成开发环境窗口。选择集成开发环境中的Project->New菜单项,打开如下所示的新项目对话框,在此对话框中设置项目名和项目路径。

    在项目名文本框中输入项目名led,在项目路径文本框中输入项目路径D:\led,也可以通过单击Browse按钮选择项目名的保存路径。
    2.器件选择,其操作过程如下所示。首先在MPLAB集成开发环境中打开Configure菜单,然后单击Select Device菜单项,弹出如下所示的器件选择对话框。此处可以选择PICl6F877A作为开发芯片。

    3.设置项目
    在创建项目和选定器件后,接下来就可以设置工程的编译环境。首先进行语言组件的设置。
    在Active Toolsuite下拉列表框中选择HI-TECH PICC Toolsuite作为开发工具组件,然后在Toolsuite Contents列表框中选择PICCCompiler项,如下图所示。  

    3.PICC基本编程

    3.1 PICC 中的基本变量类型

    PICC 支持的基本变量类型见下表:

    3.2 PICC 中的高级变量

    基于上表的基本变量,除了bit 型位变量外,PICC 完全支持数组、结构和联合等复合型高级变量,这和标准的C 语言所支持的高级变量类型没有什么区别。例如:
    数组:
    unsigned int data[10];
    
    结构体:
    struct commInData {
    unsigned char inBuff[8];
    unsigned char getPtr, putPtr;
    };
    
    联合体:
    union int_Byte {
    unsigned char c[2];
    unsigned int i;
    };
    

    3.3 PICC 对数据寄存器bank 的管理

    在PIC单片机编程时,单片机数据寄存器的bank是由编程员管理的,因此在定义变量时必须决定这些变量具体放在哪一个bank 中缺省时,所定义的变量将被定位在bank0中,例如下面所定义的这些变量:
    unsigned char buffer[32];
    bit flag1,flag2;
    float val[8];
    
    以上变量都是分布在bank0 中。定义在其它bank 内的变量前面必须加上相应的bank 序号,例如:
    bank1 unsigned char buffer[32];  //变量定位在bank1 中
    bank2 bit flag1,flag2;  //变量定位在bank2 中
    bank3 float val[8];  //变量定位在bank3 中
    

    3.4 volatile 修饰词 

    PICC 中还有一个特殊的变量修饰词“volatile”,用来说明一个变量的值是会随机变化的,即使程序没有刻意对它进行任何赋值操作。
    在单片机中,作为输入的IO 端口其内容将是随意变化的;很多特殊功能寄存器的值也将随着指令的运行而动态改变。所有这种类型的变量必须将它们明确定义成“volatile”类型,例如:
    volatile unsigned char STATUS @ 0x03;
    volatile bit commFlag;
    

    3.5 标准库函数

    PICC 提供了较完整的C 标准库函数支持,其中包括数学运算函数和字符串操作函数。在程序中使用这些现成的库函数时需要注意的是入口参数必须在bank0 中。
    如果需要用到数学函数,则用 “#include <math.h>” 包含头文件;如果要使用字符串操作函数,就需要包含“#include <string.h>”头文件。在这些头文件中提供了函数类型的声明。直接查看这些头文件就可以知道PICC 提供了哪些标准库函数。
    C 语言中的格式化输出函数“printf/sprintf”用在单片机的程序中时要特别谨慎。printf/sprintf 是一个非常大的函数,一旦使用,你的程序代码长度就会增加很多。 

    4.C和汇编混合编程

    用C 语言进行单片机应用程序开发时经常要使用汇编语句。比如,单片机的一些特殊指令操作在标准的C 语言语法中没有直接对应的描述,例如PIC 单片机的清看门狗指令“clrwdt”和休眠指令“sleep”。这样,一个项目中就会出现C 和汇编混合编程的情形,我们在此讨论一些混合编程的基本方法和技巧。
    在C 原程序中直接嵌入汇编指令是最直接最容易的方法。如果只需要嵌入少量几条的汇编指令,PICC 提供了一个类似于函数的语句:
    asm(“clrwdt”)  ;
    双引号中可以编写任何一条PIC 的标准汇编指令。例如:
    for (;;) {
    asm("clrwdt"); //清看门狗
    asm("sleep"); //休眠
    asm(“nop”); //空操作延时 
     }
    如果需要编写一段连续的汇编指令,PICC 支持另一种语法描述:用“#asm”开始指令段,用“#endasm”结束。
    例如下面的一段嵌入汇编指令实现了将0x20~0x7F 间的RAM 全部清零:
    #asm
          movlw 0x20
          movwf  _FSR
          clrf  _INDF
          incf _FSR, f
          btfss _FSR,7
          goto  $-3
    #endasm
    展开全文
  • 阿婆主近期在疫情学校上网课期间里开始汇编语言的51单片机学习,由于博客与论坛上的单片机教程几乎都是基于C语言的,阿婆主打算将自己的学习记录连载在博客上。 该系列文章基于80C51单片机,Keil2(这个版本是比较...
  • 单片机又称单片微控制器,它是把一个计算机...单片机的编程语言很多,大致分成三类:机器语言、汇编语言、高级语言。机器语言由于繁琐容易出错,一般用户已经不再使用。下面分别对汇编语言和最常用的高级语言进行分析。
  • C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如:   ·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间;   ·片上...
  • 手把手教你学单片机--51单片机C语言开发   PDF版本的和原理图已经放在附件里, 帮忙转载哦,谢谢。 金沙滩工作室与清华大学出版社联合出品
  • 如何学单片机编程呢?单片机的应用非常广泛,不仅如此,编程语言也有很多种,大致可以分为三大类:机器语言、汇编语言、高级语言。那么哪种编程语言更适合初学者学呢?就跟着粤嵌单片机培训来看看。 单片机汇编语言...
  • 电子-手把手教你51单片机C语言版.pdf,单片机/嵌入式STM32-F0/F1/F2
  • 本书遵照单片机设计的要求,讲述了单片机的基本结构和工作原理,单片机的主要开发语言——汇编语言和C51语言,以及单片机项目开发中常用的工具——仿真器和编程器的原理和使用说明。另外,本书还简述了单片机开发中...
  • 肯定要学C啊!有哪种语言可以抗衡C的强大地位?没有!哪种语言市场占有率都没C高,C虽然不是面向对象的高级语言,但是不妨碍它的强大。语言的发展史,是机器语言0/1,汇编,C,高级语言(C++/JAVA/PYTHON),承上接...
  • 答案是:C语言是最适合单片机编程的高级语言。 这个问题的意思应该是:现在有很多很好用的高级语言,如VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。 一、...
  • 首先学习单片机,那就得先要知道单片机具体是做什么的,不要一抹黑,什么也不知道,就去无头无尾的开始学习单片机,那样学单片机是没有效果的,所以我们先简单了解一下单片机。单片机是一种集成电路芯片,我们就用...
  • 然而单片机作为嵌入式的入门课,如何以一种正确的方法学习单片机将关系到是否能学习好嵌入式。 纵所周知,学习嵌入式先玩ptotel,再做单片机。Protel简单的来说就是一个做PCB板的纯英文的软件。学习ptotel前...
  • 然而单片机作为嵌入式的入门课,如何以一种正确的方法学习单片机将关系到是否能学习好嵌入式。纵所周知,学习嵌入式先玩ptotel,再做单片机。Protel简单的来说就是一个做PCB板的纯英文的软件。学习ptotel前必需具备...
  • 答案是:C语言是最适合单片机编程的高级语言。 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不...
  • 1.1 采用C语言提高编制单片机应用程序的效率 1.2 C语言具有突出的优点 1.3 AvR单片机简介 1.4 AvR单片机C编译器简介 第2章 学习AVR单片机C程序设计所用的软件及实验器材介绍 2.1 IAR Enlbedded Workbench IDE...
1 2 3 4 5 ... 20
收藏数 15,550
精华内容 6,220
关键字:

会c语言学单片机