二、51单片机简介

发布时间 2023-12-31 23:17:47作者: 7七柒

单片机介绍

单片机简介

  • 将CPU、RAM(内存)、ROM(硬盘)、输入/输出设备做到一块集成电路芯片中,这就被称为单片机,也称微控制器(MCU)
  • 51单片机是对所有兼容Intel 8031指令系统单片机的统称

芯片介绍

STC89C52RC

40I-PDIP40

名称介绍

  • STC:厂商名称

  • 8:是一个8051内核的芯片

  • 9:封装了一个存储器,用于断电数据不丢失的(7是封装了一个紫外线功能)

  • C:cmos的产品(LV、LE说明是一个低电压芯片3.3v,S表示有一个可串行下载功能)

  • 5:固定不变,表示51单片机

  • 2:存储大小,8kb(1是4kb,3是16kb,以此类推)

  • RC:内存大小,512字节(RD是1024字节)

  • 40:外部的晶振最大可以接入40M

  • I:工业级,可接受的温度为 -40度到85度(C:商业级,0度到75度;M:军用级, -55度到150度)

  • PDIP40:封装类型,双面直插,40个针脚

STC单片机脚位判断

找到芯片上的凹槽,凹槽左边第一个脚就是第1脚,然后逆时针向下数,直到凹槽右边的第40脚

管脚说明

通常分为四类

  • 电源引脚。如VCC、GND
  • 时钟引脚。如XTAL1、XTAL2
  • 编程控制引脚。如RST、PSEN、ALE/PROG、EA/Vpp(了解即可)
  • I/O口引脚。如P0、P1、P2、P3、P4,四组8位I/O口

VCC(40脚)、GND(20脚):电源引脚,不同型号的单片机接入对应的电压,常压为5v,低压位3.3v,使用是注意芯片要求的电压

XTAL1(19脚)、XTAL2(18脚):外接时钟引脚。XTAL1为片内震荡电路的输入端,XTAL2为片内震荡电路的输出端

RST(9脚):复位引脚。单片机从头开始工作

PSEN(29脚):程序存储器允许输出控制器,了解即可

P0 口(39 脚~32 脚):双向 8 位三态 I/O 口,每个口可独立控制。51 单片 机 P0 口内部没有上拉电阻,若输出高时为高阻态,不能正常输出高电平,因此 该组 I/O 口,每个口可独立控制。51 单片机 P0 口内部没有上拉电阻,若输出高 时为高阻态,不能正常输出高电平,因此该组 I/O 口在使用时务必要外接上拉电 阻,一般我们选择接入 10K 欧上拉电阻。

P1 口(1 脚~8 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上拉 电阻,这种接口输出没有高阻态,输入也不能锁存,故不是真正的双向 I/O 口。 之所以称它为“准双向”是因为该口在作为输入使用前,要先向该口进行写 1 操作,然后单片机内部才可正确读出外部信号,也就是要使其先有个“准”备的 过程,所以才称为准双向口。对 52 单片机 P1.0 引脚的第二功能未 T2 定时器/ 计数器的外部输入,P1.1 引脚的第二功能为 T2EX 捕捉、重装触发,即 T2 的外 部控制端。

P2 口(21 脚~28 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上 拉电阻,与 P1 口相似。

P3 口(10 脚~17 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上 拉电阻。作为第一功能使用时就当做普通 I/O 口,与 P1 口相似。 作为第二功能 使用时,各引脚的定义如下

image

数字电路与C

电平特性

单片机是一种数字集成芯片,只有两种电平,高电平和低电平

高电平 +5v,等价于逻辑1;低电平0v,等价于逻辑0

TTL电路和CMOS电路逻辑电平关系

  • VOH:逻辑电平 1 的输出电压,5v

  • VOL:逻辑电平 0 的输出电压,0v

  • VIH:逻辑电平 1 的输入电压

  • VIL:逻辑电平 0 的输入电压

TTL电平临界值:

VOHmin=2.4V(输出高电平的最小值2.4V),VOLmax=0.4V(输出低电平的最大值0.4V)。

VIHmin=2.0V(输入高电平最小值要到2.0V),VILmax=0.8(输入低电平最大值不超过0.8V)

CMOS电平临界值(假设电源电压为+5V):

VOHmain=4.99V,VOLmax=0.01V

VIHmin=3.5V,VILmax=1.5V

二进制与十六进制

二进制:逢二进一,借一当二;如果一个数是二进制数,可以在后面加上 B

常用的十进制转二进制:

十进制 二进制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

十六进制

逢十六进一,借一当十六。十六进制的015表示成十六进制为:09、A、B、C、D、E、F

在代码中写十六进制要加上前缀:0x或0X

十进制 二进制
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

二进制的逻辑运算

与运算

都为真才为真,只要有一个为假就是假

0&0=0

1&0=0

1&1=1

或运算

都为假才为假,只要有一个为真就是真

0|0=0

0|1=1

1|1=1

非运算

对结果取反

!0=1

!1=0

同或运算

必须相同才为真,否则为假

0和0为1

0和1为0

1和1为1

1和0为0

异或运算符

必须不同才为真,否则为假

1^1=0

1^0=1

0^0=0

0^1=1

C51基础

C51扩充数据类型

这些是在c语言中没有的类型,是单片机自带的

类型 长度 值域 说明
bit 1位 0或1 位变量声明
sbit 1位 0或1 特殊功能位声明(例如定义管脚)
sfr 1字节 0~255 特殊功能寄存器声明
Sfr16 2字节 0~65535 Srf的16位数据声明
* 1~3字节 对象的地址

存储器类型

数据存放的位置

存储器类型 描述
data 直接寻址的片内RAM低128B,访问速度快
bdata 片内RAM的可为寻址区(20H~2FH),允许字节和位混合访问
idata 间接寻址访问的片内RAM,运行访问全部片内RAM
pdata 用Ri间接访问的片外RAM的低256B
xdata 用DFTR间接访问的片外RAM,允许访问全部64k片外RAM
code 程序存储器ROM64k空间

位运算

注意:只能对整型数据进行操作,不能对浮点型进行操作

&按位与

| 按位或

^ 按位异或
按位取反

<< 左移

>> 右移

左移:

假设有二进制 a=1001 1010,左移两位,a<<2

第一次左移:001 1010,空出来的一位自动补0:0011 0100

第二次左移:011 0100,空出来的一位自动补0: 0110 1000

所以 a<<2=0110 1000

右移与左移基本相同,只不过方向换一下

复合赋值

a+=1;a-=1;a>>=1;等等

逗号运算符

表达式1,表达式2,表达式3,...,表达式n

最终结果是表达式n计算出来的值

例如:

x=(a=3, 6*3)

x的结果为18,也就是最后这个表达式6*3计算的值

三目运算符

逻辑表达式?表达式1:表达式2

当逻辑表达式的值为真,则返回表达式1的值,否则返回表达式2的值

指针

* :指针运算符

& :取址运算符

定义一个int类型的指针变量:int * p;

定义指针时最好对指针进行初始化,令他指向空:int *p = NULL;

再定义一个int类型的数据并初始化:int a = 100;

利用取址运算符把变量a的地址赋值给指针变量p:p = &a;

可以用*解引用查看指针变量指向的地址中的值:printf("%d", *p);

我们修改指针p指向的值时,变量a指向的值也会跟着修改,因为两个变量指向的是同一个地址

51单片机最小系统

构成

晶振电路

复位电路

电源电路

下载电路(不用这个电路单片机也可以正常运行,但是无法给系统下载我们写的程序)

晶振电路

就想人的心脏,无时无刻为单片机提供运行的时钟周期

image

复位电路

使单片机重新开始运行

image

电源电路

为单片机提供5v的电压进行供电

image

下载电路

USB转TTL的芯片,利用电脑连接开发板,进行下载

image

51单片机工程模板创建

在电脑上创建一个文件夹,取任意名称,例如:51单片机工程模板

image

打开Keil软件,点击Project,在点New Vision Project

image

找到之前创建的文件夹,在输入文件名,点击确定

image

选择芯片类型,选择Atmel下面的类型,89c51和89c52都可以

image

image

选好或会询问是否添加启动文件到项目中,选择否

image

创建好后如图

image

右键Source Group 1,选择Add New Item to Group ‘Source Group1’...

image

选择文件类型为c,输入文件名为main,最后点击Add

image

源文件创建好后如图

image

点一下魔术棒,选择Output,把Create HEX File勾选上,这样我们编译源码后会生成hex文件,有了这个文件我们才可以下载到单片机中实现效果

image

51单片机GPIO介绍

GPIO概念

GPIO(general purpose inptput optput)是通用输入输出端口的简称,可以通过软件来控制其输入和输出

image

Px.x的就是GPIO引脚,例如P1.0、P1.1

image

管脚说明如下

image