重要的内容写在前面:

  1. 该系列是以up主江协科技的51单片机视频教程为基础写下去的,大部分内容都参考了老师的课件,对于一些个人认为比较难懂且重要而课件写得并不是很清晰的地方,笔者都在正文尽量用文字详细地描述了一遍(正文没有的话就是在代码的注释里)。
  2. 文中的图片基本都来源于老师的课件以及开发板和芯片的手册,粘贴过来是为了方便阅读。
  3. 个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程再来看51单片机的教程,学起来会更加轻松(零基础开始直接学51单片机也可以,老师讲得很清晰),相关课程有数字电路(强烈推荐先学数电,不然可能会有很多地方理解起来很困难)、模拟电路、计算机组成原理(像寄存器、存储器、中断等在这门课里有很详细的介绍)、计算机网络、微机原理等。
  4. 文章的原创部分很多都是笔者个人的理解,如有错漏欢迎指出。

视频链接:

[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)有了代码文件后可以进行编译(点击下图橙框的按钮即可进行编译)。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐