C语言与单片机C语言的区别 急求

发布网友 发布时间:2022-04-20 06:05

我来回答

15个回答

热心网友 时间:2022-04-21 16:28

单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。具体体现在:

1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法 如C51扩展的 data xdata bit sbit 一类的,还有一些中断程序写法 void int() interrput 1 一类的。

2、C是一门语言,由对应平台的编译器编译成对应平台汇编的程序,各平台的汇编不一样,当然编译器也不一样 DOS上的TC2 TC3   WINDOWS上的VC 8051的C51都有自已的编译器 。具体区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。

3、单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。

C51本质就是C,是为在单片机上使用C而出来的,如果C不牢固,还是多掌握一点C再学C51,不过新增的知识也不少,而且基本上跟C无关。

4、C只是一种高级语言。它除具有一般高级语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使之方便于在 写语句的时候,直接直观的编写。这样就差不多是单片机C语言。

C语言的特性差不多都可以用于单片机C语言,因为它们的编译机理都是一样的。

扩展资料:

C语言:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

单片机的C语言:

单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构,设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。

51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。

单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用

参考资料:

C语言-百度百科

单片机C语言-百度百科

热心网友 时间:2022-04-21 17:46

C语言与单片机C语言的区别:

1、编译器的区别

C语言的编译器有GCC(GNU组织开发的开源免费的编译器)、MinGW(Windows操作系统下的GCC)、Clang(开源的BSD协议的基于LLVM的编译器)、Visual C++ :: cl.exe(Microsoft VC++自带的编译器)。

单片机C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。

2、内容的区别

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

单片机C语言基于C语言的单片机编程语言,是以C语言为基础加以调整的。

3、语言特性的区别

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

单片机C语言基于单片机进行的程序开发,在有周围外设支持的情况下,用软件来控制的部分通过单片机编程来实现。单片机能识别的语言是硬件语言即汇编,因此编程就是围绕汇编来实现。

4、语言优点的区别

C语言简洁紧凑、灵活方便、运算符丰富、数据类型丰富、表达方式灵活实用、允许直接访问物理地址,对硬件进行操作、生成目标代码质量高,程序执行效率高、可移植性好、表达力强。

单片机C语言目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用。

参考资料来源:百度百科——C语言

百度百科——单片机C语言编程

热心网友 时间:2022-04-21 19:21

由于针对的目标不同,在使用时的方法会有小的差别。

例如:PC有显示系统,单片机没有。单片机的显示需要针对外接显示器件编写函数来实现。

单片机最终是通过对寄存器和I/O管脚操作实现输出控制,因此增加了一些关键字,例如对I/O管脚的定义关键字sbit、bit;对于不同寄存器的定义关键字:bdata、xdata、pdata idata等;对于中断函数标志的关键字:interrupt等;

不同类型/型号的单片机有不同的头文件,这和PC的头文件名称有区别。

从传统c语言转入单片机c语言,可以从以下四个方面入手:

从单片机编译软件的使用入手,掌握编译软件的使用方法和注意事项。

需要学习单片机数据手册,掌握单片机的内部结构和控制方式。

参考一些成熟的例程。

实践。

当然,看一些好的书籍和教程也是快速入门单片机的好方法。

热心网友 时间:2022-04-21 21:12

除了C51外,其它单片机基本上用的都是标准C语言,只是操作的库函数和你学的C语言不太一样,
而C51就是在C语言的基础上,增加了一些便于直接操作单片机的指令,例如srf可以声明寄存器,sbit可以声明寄存器中的 interrupt声明中断入口 ,code xdata idata 等声明存储的位置等,其余还是库函数不同的问题。
至于编程思想,这个和语言关系不大,主要和你要做的事情有关,你用一种语言,不同的框架,编写不同的事情时,编程思想都太一样。
C也可以写成 面向对象风格 的代码。
java,C#等也可以编写 面向过程风格 的代码。

热心网友 时间:2022-04-21 23:20

准确讲不是C语言与单片机C语言的区别,单片机c语言只是用到了c语言的一丢丢,主要有循环语句,条件语句,宏定义,指针,结构体等,用到的库都是单片机的,至于你说的指令那都是单片机的事,跟c语言没有关系,单片机的指令跟单片机的构架、定义有关系。c语言编程可以不用掌握汇编指令,但是必须掌握各个寄存器的操作以及相关的命令字,因为只有你掌握了寄存器的操作才能用c语言编程指挥单片机。个人建议开始用汇编编程,编写简单的控制程序。这样可以加深对单片机的了解,熟悉各个寄存器;后面就可以用c语言编写规模较大的程序,毕竟c语言容易上手,用起来相对简单!

热心网友 时间:2022-04-22 01:45

单片机所用的C语言属于C语言,学单片机初学者不需要把C语言搞得多么好,会用几个关键字if什么的等等就够用了。单片机比纯C语言多了一个东西叫寄存器,其实就是单片机“内部变量”,在头文件中(每个单片机有属于自己的头文件,编译器会自带,你只要知道文件名字就行,比如#include<reg51.h>)帮你定义好了,寄存器的作用就是配置参数,比如51有个寄存器叫P1,当你代码执行完P1=0XFF;时候单片机的8个名字叫P1(P1有8个引脚 P1^0~P1^7)的引脚就会输出高电平,P1=0XF0;那么就是前四个引脚(P1^4~P1^7)是高电平,后四个是低电平。
单片机就是通过C语言的语言方式向单片机寄存器写数据,单片机自己会根据这些数据去控制它的模块比如引脚状态。

热心网友 时间:2022-04-22 04:26

基本上都是一样的,但有时候会用到一些汇编的指令,比如空指令:nop,这个指令就是汇编指令。
至于单片机的C语言的基本编程思想,没那么复杂,就是用C语言去控制单片机的外设,那怎么控制外设?就需要通过程序配置寄存器。51单片机需要自己配置寄存器,例如TMOD。
一般现在16位和32位的单片机都是有官方驱动库的,官方会把这些寄存器的配置封装成函数,使用的时候直接调用函数就行了,这样就大大减少了开发人员的工作量。不用关心硬件的部分。例如STM32系列的单片机,GPIO配置都可以用官方库函数来配置。
C语言学完了,可以学习面向对象的语言,以后学学Linux,单片机没搞头,以后的工资收入也低。

热心网友 时间:2022-04-22 07:24

基本语法是一样的,但会结合一些单片机的特性,比如位变量,数据段赋值之类的
不过单片机C主要基于单片机的,所以还是需要对C有一定的了解,单片机C是为了让你使用单片机编程的时候不需要直接汇编,可以使用C而已,他里面有好多特性都是想用单片机的东西用起来,所以会有些不一样,建议还是等了解了单片机后再去了解单片机C
如果只是想了解下,网上可以搜索下KEIL C ,这方面的资料还是很多的

热心网友 时间:2022-04-22 10:39

你学习到的C语言是标准C语言,也是行业标准,通用性强;而单片机C语言是构建在标准C的基础上的,你先学习了单片机,之后用C语言编程时,根据不同的单片机,还是有差异的,指令的形式会不同,但是实质都是对寄存器的操作;而相同点我认为就是语句的形式不变,基本格式不变,即语法不变;编程的思路也都一样,但是实现某种操作的算法则可以变化多端。
你别急,先学习单片机的硬件知识,并开始边学边编程练习,多看视频,多看书上的实例,自己尝试练习很容易就上手了啊!我只是学习过51单片机,凌阳61单片机和Atmel 的mega128单片机,也是跟你一样的初学者啊!!

热心网友 时间:2022-04-22 14:10

标准C语言和单片机C语言略有不同,大体上都是一样的。
单片机的C语言针对单片机的工作原理和特性,增加了一些语句、数据类型和关键字,比如sfr(特殊功能寄存器声明)、interrupt(中断服务函数关键字)、bit(位变量数据类型,支持位操作的单片机的C语言编译器一般支持这个类型的数据)等等。

热心网友 时间:2022-04-22 17:58

“单片机的C语言”
视单片机的类型不同、编译器厂商不同,编译器对标准C的扩展/变更也是有所不同的。你需要根据自己用到的编译器的类型、版本,查阅它相关的说明文档,里面都会有专门章节讲述自己在标准C基础上有什么变动的。

热心网友 时间:2022-04-22 22:03

最好网上买个51实验板练习一下,其实单片机就是一个平台,单片机内部寄存器你必须知道,寄存器单片机手册里面都有的,当你配置完成寄存器,剩下就是程序的逻辑架构都是通过C语言编写的,给你举个简单的例子,比如让单片机P2端口控制8个LED灯左右移动,你直接调用被人写好的库接口或者自己定义,怎么移动就看你用C语言怎么实现了,定时器也是一样的,按照寄存器配置完成,接下来就是你程序逻辑架构,定时时间到你想执行什么,单片机的配置是死的,你的程序是活的明白吗,单片机其实就是用来学习C语言的,通过实验能提供学习兴趣。

热心网友 时间:2022-04-23 02:24

语法、运算符和变量规则都一样,由于CPU不同,所以库函数都不一样。在普通C中常用的头文件是stdio.h,在单片机(51为例)常用的头文件是reg51.h或reg52.h。单片机面向的是硬件环境更多一些。常用函数printf,普通C中输出到屏幕,单片机中输出到串口。等等,具体的需要自己去挖掘。

热心网友 时间:2022-04-23 07:02

区别不太大,基本语法都一样,就是每个型号的单片机都有自己的头文件,还有sbit 位定义,sfr寄存器定义,C语言里好多操作都是用不到的,例如文件操作啊什么的。按我的感觉单片机编程就是控制单片机按照你的需要来输出引脚的高低电平,找找教程练练基础挺简单的。

热心网友 时间:2022-04-23 11:57

主要是IO口、中断及寄存器,不太一样。
单片机c语言增加了一些基本的指令 变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。
但是在单片机上的C语言多了一些特定的指令,如SFR定义寄存器指令,在标准C上是没有的; 在标准C上的有些库,在单片机上是不支持的, 可以这么说,单片机C是标准C的子集,在这基础上,加上了一些单片机特定的指令构成。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com