重要的内容写在前面:
- 该系列是以up主江协科技的51单片机视频教程为基础写下去的,大部分内容都参考了老师的课件,对于一些个人认为比较难懂且重要而课件写得并不是很清晰的地方,笔者都在正文尽量用文字详细地描述了一遍(正文没有的话就是在代码的注释里)。
- 文中的图片基本都来源于老师的课件以及开发板和芯片的手册,粘贴过来是为了方便阅读。
- 个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程再来看51单片机的教程,学起来会更加轻松(零基础开始直接学51单片机也可以,老师讲得很清晰),相关课程有数字电路(强烈推荐先学数电,不然可能会有很多地方理解起来很困难)、模拟电路、计算机组成原理(像寄存器、存储器、中断等在这门课里有很详细的介绍)、计算机网络、微机原理等。
- 文章的原创部分很多都是笔者个人的理解,如有错漏欢迎指出。
视频链接:
[1-1] 课程简介
一、单片机基本知识
1、单片机的概念
(1)单片机,英文全称Micro Controller Unit,简称MCU。
(2)单片机内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能。
(3)单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机、LED等)的控制。
(4)跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统,但在性能上,与计算机相差甚远,不过但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用。
2、单片机的命名规则
本篇教程使用的是STC89C52系列的单片机,其命名规则如下图所示

二、计算机编程相关基础知识
1、进制转换表

2、Keil(C51)中的常见数据类型

3、Keil(C51)中的数据运算

4、Keil(C51)中的基本语句

5、C51的两个数据类型
(1)sfr和sbit是C51中特有的两个数据类型,在其它环境中是没有的。
①sfr(special function register):特殊功能寄存器声明。
②sbit(special bit):特殊位声明。
(2)特殊数据类型的声明:
例:sfr P0 = 0x80; //声明P0寄存器,物理地址为0x80
例:sbit P0_1 = 0x81; //或 sbit P0_1 = P0^1; 声明P0寄存器的第1位
(3)特殊数据类型的访问:
例:P2 = 0xFE; //将P2寄存器配置为0b11111110
例:P2_0 = 1; //单独对P2寄存器的第0位进行置1操作
6、寻址方式
(1)在单片机系统中,操作任意寄存器或者某一位的数据时,必须给出其物理地址,而51单片机的一个寄存器有8位数据,所以位的数量是寄存器数量的8倍,但单片机是以字节为单位进行地址编码的,无法对所有位进行编码。
(2)对不可位寻址的8位寄存器,若需要只操作其中一位而不影响其它位时,可用“&=”、“|=”、“^=”的方法进行位操作(位操作不仅适用于操作寄存器,任何只需要改变一个位而不影响其它位的情形,都可以使用位操作)。
①操作8位数据,控制某一位(如第3位)数据置0,其它位不变。
操作语句:<操作数> &= ~(1 << <置0的位>); //如“<操作数> &= ~(1 << 3)”

②操作8位数据,控制某一位(如第3位)数据置1,其它位不变。
操作语句:<操作数> |= (1 << <置1的位>); //如“<操作数> |= (1 << 3)”

③操作8位数据,控制某一位(如第3位)数据翻转,其它位不变。
操作语句:<操作数>^= (1 << <翻转的位>); //如“<操作数> ^= (1 << 3)”

三、新建一个项目的流程
(1)打开Keil5后,在“Project”一栏找到“New μVision Project”,点击它。

(2)建议在桌面单独为51单片机建一个新文件夹,在该文件夹中存放不同的51单片机项目,每个项目再独自命名一个文件夹,生成的项目文件放在这个文件夹中(项目文件命名建议命为“project”)。

(3)单击“保存”后,会弹出如下对话框供我们选择型号。

(4)单击“OK”后,会弹出另一个对话框,建议选择否(选择是也没关系),然后就完成了工程的创建。

(5)右键选择“Source Group 1”文件夹,在这里创建编写代码的源文件(头文件也是在这里创建)。

①在Keil(C51)中可以使用c语言、C++和汇编语言,一般都是选择c语言,也就是创建.c文件,第一个.c文件通常命名为main。

②下图所示选项则是将文件夹中已有的代码文件导入项目中。

(4)有了代码文件后可以进行编译(点击下图橙框的按钮即可进行编译)。


本文围绕51单片机的基础知识展开,包括单片机概念、KeilC51编程工具的数据类型、运算及基本语句,还介绍了新建51单片机项目和编译的步骤。建议先学习相关课程如数电、模拟电路和微机原理以更好地理解内容。


5万+

被折叠的 条评论
为什么被折叠?



