C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
单片机有些人也称为是MCU(Micro-ControllerUnit)微控制单元是一种集成电路芯片。它是将中央处理器(对于单片机来讲是内核更贴切)单元,数据存储器RAM,程序存储器ROM,输入输出端I/O,中断系统,以及外设单元(定时器、脉宽调制PWM发生器、AD转换器等)全部集成到一块芯片内部,使之成为具有运算和控制功能的微小计算机系统。
目前随着微电子技术的不断发展,能够设计单片机的公司越来越多,因此市场上的单片机型号也各种各样,但是内核单元基本相同,只是不同公司的单片机在外设和功耗上有所区别。因此对于不同类型单片机的开发程序流程的原理基本还是一致的。目前,常见的单片机内核有51的,代表的单片机有:宏晶的STC系列比如:STC89、STC12、STC15等等;Atmel(已经被microchip收购)的AT89系列;还有Philips(飞利浦)、华邦、Dallas(拉达斯)、Siemens(西门子)等公司的许多产品。另外还有一些其他内核的单片机,比如AVR系列、PIC系列、STM8系列等。再就是基于ARM内核的单片机常见的比如ST公司的STM32系列(16位)。根据单片机处理字长的大小可以分为8位、16位以及32位单片机。在初学者中最常用的是8位的单片机。
单片机在工作中通过运行存储在ROM里面的指令(二进制码)来实现运算和控制的。而存储在ROM内的指令是我们人为的设计的流程(称为是程序)。因此要实现对单片机各个资源(端口,定时器,计数器等)的控制就需要通过编写程序烧写到单片机的ROM内,从而实现对单片机的控制。实际在编写单片机程序的时候,很多有经验的都采用汇编语言来实现对程序的编写,但是由于不同内核单片机的汇编指令有所不同,因此汇编语言的通用性比较差。由于目前编译器的不断完善,使得C语言越来越成为了开发单片机程序的机器语言,由于C语言的标准化,使得其具有通用性,使用不同的编译软件可以实现C编写的程序在不同单片机之间进行移植。
单片机的C语言的标准的C语言区别不是特别明显,只是由于单片机资源的限制(RAM和ROM一般都比较小),使得单片机C语言中的数据类型的长度会有所不同(实际是编译器来决定的)。同时也由于单片机自身的特点也使得C语言有了扩展,比如单片机中位定义sbit的用法,这在后面的课程中会用到。
因此对于单片机的开发的主要流程是:
小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
后面的课程中我们选用的是基于51内核的宏晶的STC15系列单片,和Keil V4软件来进行讲解,在讲解过程中也有可能会涉及到STM8(ISA软件)的开发。
最后我们利用C语言中最经典的Hello World来实现我们的第一个程序。在这里我们直接使用printf函数向串口输出“Welcome To MCU World!”(其函数的意义和用法将会在串口中讲解),其代码如下:
#include //包含51单片机的寄存器头文件
#include //包含C库的标准IO文件
void main (void) {//主函数
SCON = 0x50; //单片机的串口方式选择
TMOD |= 0x20; //波特率时钟发生器
TH1 = 221; //波特率
TR1 = 1; //开启时钟
TI = 1; // TI:调用putchar()的时候判断发送是否完成,有点类似于非
//中断内发送数据的格式
while (1) { //死循环
printf ("Welcome To MCU World "); // 向串口发送 "Welcome To MCU World!"
}
}
小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
这是运行的结果,欢迎来到单片机世界,希望我的讲解能够该大家带来一定的帮助。
下次我们的主要内容是讲解单片机的内部资源和Keil开发软件的使用,如何搭建单片机的开发环境,并进行实践,将前面的开发流程和实际联系起来,从实践上有个了解,谢谢大家!
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等