单片机C语言编程学习简介与第一个C语言程序

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++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容