单片机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的用法,这在后面的课程中会用到。
因此对于单片机的开发的主要流程是:
后面的课程中我们选用的是基于51内核的宏晶的STC15系列单片,和Keil V4软件来进行讲解,在讲解过程中也有可能会涉及到STM8(ISA软件)的开发。
最后我们利用C语言中最经典的Hello World来实现我们的第一个程序。在这里我们直接使用printf函数向串口输出“Welcome To MCU World!”(其函数的意义和用法将会在串口中讲解),其代码如下:
<font size="3">#include <REG51.H> //包含51单片机的寄存器头文件
#include <stdio.h> //包含C库的标准IO文件
void main (void) {//主函数
SCON = 0x50; //单片机的串口方式选择
TMOD |= 0x20; //波特率时钟发生器
TH1 = 221; //波特率
TR1 = 1; //开启时钟
TI = 1; // TI:调用putchar()的时候判断发送是否完成,有点类似于非
//中断内发送数据的格式
while (1) { //死循环
printf ("Welcome To MCU World\n"); // 向串口发送 "Welcome To MCU World!"
}
}
</font>
这是运行的结果,欢迎来到单片机世界,希望我的讲解能够该大家带来一定的帮助。
下次我们的主要内容是讲解单片机的内部资源和Keil开发软件的使用,如何搭建单片机的开发环境,并进行实践,将前面的开发流程和实际联系起来,从实践上有个了解,谢谢大家!
一步一步,全程揭开单片机的原理,让做电子变得轻松自如!
学习单片机必要的硬件
学习单片机都需要什么?首先要掌握必要的电子基础知识;再次选择大众化、性价比高的单片机,熟悉它的引脚功能定义;另外还需要电脑与下载程序的下载器。
一、单片机
建议选择型号为STC89C52RC单片机,如图3-1-1所示,性价比高,价格在5元左右,并且关于它的资料也相当丰富,便于学习
STC89C52RC单片机
单片机名字中字母、数字各代表什么意义?
不同的生产厂家,不同的型号,单片机的命名方法都不一样,型号中的字母与数字含义也不同。咱们一起了解STC89C52RC名字的具体含义。
1.STC89C52RC字母以及数字含义
图中单片机型号为STC89C52RC40C,作为初学者只需了解部分数字及字母的含义。
STC——表示是宏晶公司的产品。
8——表示51内核的单片机。
5——在型号中固定不变。
2——表示内部程序存储空间(ROM)是8KB。这是关键参数,如果编写的程序超过了单片机存储的空间,就没有办法下载到单片机,需要选择存储空间更大的单片机或者将程序进行优化缩减代码。
RC——表示单片机的内存(RAM)的大小是512B,犹如手机、电脑中的内存,大小直接影响运行的速度。
40——表示单片机外部晶振的最高频率是40M。
2.STC89C52RC40C单片机一共40个引脚,都是什么功能?
单片机STC89C52图形符号
如何判断单片机引脚的序号,见图中,芯片正面有半圆缺口的地方,下排引脚开始是第1个引脚,逆时针方向数,一共40个引脚。
(1)I/O口引脚,一共有32个引脚,既能输入信号也能输出信号。一共分为四组,分别是P0、P1、P2、P3,每组有8个引脚,这里需要注意,P0口在使用时需要接上拉电阻(也就是P0口的引脚需要接电阻到电源正极)。P0对应32~39引脚、P1对应1~8引脚、P2对应21~28引脚、P3对应10~17引脚。
(2)供电引脚:40脚、20脚分别是单片机的正极与负极,STC89C52RC40C工作电压典型值是5V。
(3)晶振引脚:19脚、18脚外接晶振与振荡(起振)电容,振荡电容一般选取30pF。
其余引脚对于初学者用不到,暂子:图中,单片机P3.0与P3.1两个引脚,小括号内标注的字母代表什么意思?
父亲:P3每个引脚都有两个功能,其一是普通的I/O口,其二是特殊功能,图3-1-2中P3只标注了P3.0与P3.1两个引脚的特殊功能,RXD与TXD是串口输入与输出,可用于程序的下载与串口通信。
后面我们说说下载器
相关问答
单片机 程序讲解?单片机程序是由中央处理器、存储器、输入输出端口(包括并行I/O、串行I/O、模数转换器)、计时器和计数器等组成,具有完整数字处理功能的大规模集成电路。单片...
单片机 晶振电路 原理电容大小没有固定值.一般二三十p.晶振是给单片机提供工作信号脉冲的.这个脉冲就是单片机的工作速度.比如12M晶振.单片机工作速度就是每秒12M.和电...
单片机 串口通信 原理我有一个8255的0-99的计时的,不知道对你有没有帮助;164串并转换程序,00~99循环显示;DCLK----PC0,DIN----PC1;FUNCTIONCODEMY_STACKSEGMEN...
单片机 和 c语言 哪个难学?这两个都不难学。我当时在大学大一上学期拿了全班第二。C语言课本是在上课前就自学完了。老师不教的file章节,我也是自学完了。单片机也很简单,我大一的时候...
单片机 编程器 原理 ?单片机编程器(MicrocontrollerProgrammer)是一种用于将程序代码或数据加载到单片机(Microcontroller)中的设备。它的原理基于单片机内部的编程接口和通信协...
单片机 信号输出 原理 ?单片机信号输出的原理主要涉及数字信号转换为模拟信号的过程。单片机产生的数字信号首先经过DAC(数字模拟转换器,如DAC0832)转换为模拟信号。这个模拟信号接着...
单片机 控制电路 原理 ?你好,单片机控制电路原理是指利用单片机作为控制核心,通过输入输出接口与外部电路相连接,实现对外部电路的控制和监测。其原理如下:1.单片机选择:根据实际...
单片机 通信 原理 基础知识?想要学习单片机通信原理,必须对如下基础知识有比较清晰认识。单片机:在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成单芯片微型计算机,即...
741 单片机原理 ?741单片机是一种常见的微控制器,它基于哈佛结构,具有高性能和低功耗的特点。它包含CPU、存储器、输入输出接口等功能模块,能够完成各种控制任务。741单片机采...
单片机 ttl 原理 ?ttl电路的工作原理ttl电路的工作原理比较复杂,需要结合工作图加以了解。ttl电路采用反相器,通常和非门组成电路结构:输入级,输出级,中间级。输入级是一个与...