35
第第第第第第第 §1-1 单单单单单 §1-2 单单单单单 第第第第 :

第一章 单片机基础知识

Embed Size (px)

DESCRIPTION

第一章 单片机基础知识. §1-1 单片机概述 §1-2 数制及数码. 内容提要:. §1-1 单片机概述. 一、什么是单片机 单片机就是单片微型计算机( Single-Chip Microcomputer)。 微型计算机系统的硬件部分通常由五部分组成:. 输入设备. 运算器. 输出设备. 控制器. 存储器. 这种计算机系统通常由多块印刷电路板制成:. 显卡. 声卡. 网卡. 存储器接口. 主板. 输入输出接口. 内存条. CPU. 多板机. 单板机. 印 - PowerPoint PPT Presentation

Citation preview

Page 1: 第一章  单片机基础知识

第一章 单片机基础知识

§1-1 单片机概述

§1-2 数制及数码

内容提要 :

Page 2: 第一章  单片机基础知识

§1-1 单片机概述一、什么是单片机

单片机就是单片微型计算机 (Single-Chip Microcomputer) 。

微型计算机系统的硬件部分通常由五部分组成 :

输入设备 运算器 输出设备

控制器 存储器

Page 3: 第一章  单片机基础知识

这种计算机系统通常由多块印刷电路板制成:

多板机 主板

显卡声卡

存储器接口网卡

输入输出接口

内存条内存条 CPU

Page 4: 第一章  单片机基础知识

CPUCPU 芯片CPU 芯片内存条内存条存储器接口

存储器芯片存储器芯片输入输出接口输入输出接口

芯片输入输出接口

芯片

定时计数器芯片

定时计数器芯片

A/D 、 D/A芯片

A/D 、 D/A芯片

单板机

Page 5: 第一章  单片机基础知识

CPU存储器

控制电路 定时器时钟电路

I / O 口

单片机

Page 6: 第一章  单片机基础知识
Page 7: 第一章  单片机基础知识
Page 8: 第一章  单片机基础知识

( 1 )体积小,重量轻;

( 2 )可靠性高,运行速度快,抗干扰能力强;

( 3 )控制功能强,使用灵活,性价比高;

( 4 )易扩展,易于开发;

( 5 )受集成度限制,片内存储器容量较小,一般

内 ROM 在 8KB 以下,内 RAM 在 256B 以内。

单片机是应工业测控的需要而诞生的 , 它的结构与指令功能都是按照工业控制要求设计的 , 故又称单片微控制器(Single Chip Microcontroller) 。

单片机特点:

Page 9: 第一章  单片机基础知识

以单片机为核心的应用系统广泛应用于:家用电器;

工业过程控制;

仪器仪表;

智能武器;

航空、汽车等领域。

Page 10: 第一章  单片机基础知识

二、单片机系统的组成

CPU

AB

DB

CB

存储器 接口部件

键盘 显示器 数码管 打印机

定时计数器

Page 11: 第一章  单片机基础知识

单片机系统

硬件部分

软件部分

单片机芯

外围器件

CPU

内存中断控制逻辑

通用接口

运算器

寄存器组

控制器

并行 I / O 口串行 UART

定时 / 计数器

ADC0809 、 DAC0832

8253

8251

8255A 、 8155

2764 、 6264指令系统

应用程序

Page 12: 第一章  单片机基础知识

§1-2 数制及数码计算机只识别和处理数字信息,数字是以二进制数的形式表示的。它易于物理实现,同时,资料存储、传送和处理简单可靠;运算规则简单,使逻辑电路的设计、分析、综合方便,使计算器具有逻辑性。

一、数制1 、常用数制

( 1. )十进制数:

1985 = 1000+900+80+5

= 1×103+9×102+8×101+5×100

特点:有 0 ~ 9 十个不同的符号。

逢十进一。

一般用下脚标 D 表示,如 1985D , 或无下脚标。

Page 13: 第一章  单片机基础知识

( 2. )二进制数:

特点:有 0 , 1 两个不同的符号。

逢二进一。二进制数的下脚标为 B

例如:对于整数,

1001B=1×23+0×22+0×21+1×20 = 9D

对于小数,

0.101B = 1×2-1 + 0×2-2 + 1×2-3 = 0.625D

二进制数每一位的权是:以小数点分界,

…..24 , 23 , 22 , 2 1, 2 0 . 2 -1, 2 -2, 2 - 3, ……

Page 14: 第一章  单片机基础知识

( 3. )十六进制数:

有 0~ 9 , A,B,C,D,E,F 共十六个不同的符号。

逢十六进位。用下脚标 “ H” 表示十六进制数。

例: 327 H = 3×162+2×161+7×160

= 807D

3AB . 11H = 3×162+A×161+B×160+1×161+1×16-2

=939 . 0664 D

Page 15: 第一章  单片机基础知识

2 、数制的转换

( 1. )二进制转换为十进制数

方法 : 按权展开。

111.101B =1×22+1×2 1+1×2 0 +1× 2 -1 +0× 2 -2

+1× 2 –3

=4+2+1+0.5+0.125

=7.625D

( 2. )十进制数转换为二进制数

方法: 整数部分除二取余,小数部分乘二取整

Page 16: 第一章  单片机基础知识

45 余数 22 1

11 0

5 1

2 1

1 0

0 1

2

2

2

2

2

2

即 45 = ( 101101 ) 2

例 1 、将十进制数 45 转换成二进制数。

Page 17: 第一章  单片机基础知识

例 2 :十进制小数部分的转换 : 乘二取整0.6875

×    2

最高位 取 1 1.3750

0.375

× 2

取 0 0.750

× 2

取 1 1. 50

0.5

× 2

最低位 取 1 1. 0

从上至下写成从左至右 10110.6875D = 0.

B

Page 18: 第一章  单片机基础知识

二进制数转换成八进制数与上述类似。

( 3. )十六进制数与二进制数之间的转换 :

十六进制数转换为二进制:

9 A B . 7 C 5 H

1001 1010 1011 . 0111 1100 0101B

二进制数转换十六进制数 :

0001 1011 1110 0011 . 1001 0111 1000B

1 B E 3 . 9 7 8H

Page 19: 第一章  单片机基础知识

二、数码1 、机器数与真值

机器只认识二进制数: 0 、 1 。

这是因为,电路状态常常有两种情况,

如:电路的通、断; 高电平、低电平;可用 0 、 1 表示。

在机器中,这种 0 、 1 、 0 、 1 的表现形式称为机器数。

机器数分为无符号数、带符号数。

无符号数如: 00000001 、 10010011 、 01010010 、 …… 等等,范围: 00H ~ FFH 。

有符号数如: +1010110B 、 -1101001B 、等等

01010110B、

11101001B

Page 20: 第一章  单片机基础知识

2、机器数的编码及运算对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。

( 1 )原码

将数“数码化”,原数前“ +” 用 0 表示,原数前“ -” 用 1 表示,数值部分为该数本身,这样的机器数叫原码。

设 X——原数;则 [X] 原 = X ( X0 )

[X] 原 = 2n-1 – X ( X0 ), n 为字长的位数。

如, [+3] 原 = 00000011B

[-3] 原 = 27 - ( -3 ) = 10000011B

0 有两种表示方法: 00000000 —— +0

10000000 —— -0

原码最大、最小的表示: +127 、 -128

Page 21: 第一章  单片机基础知识

( 2 )反码

规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。

[X] 反 = X ( X0 )

[X] 反 = ( 2n –1 ) + X ( X0 )如,

[+4] 反 = [+4] 原 = 00000100 B

[-4] 反 =(28–1)+(-5)=11111111-00000101= 11111010 B

反码范围: -128 ~ +127

两个 0 : +0 —— 00000000 B

-0 —— 11111111 B

Page 22: 第一章  单片机基础知识

运用补码可使减法变成加法。

规定:正数的补码等于原码。

负数的补码求法: 1 )反码 + 1

2 )公式: [X] 补 = 2n + X ( X<0 )

如,设 X = - 0101110 B , 则 [X] 原 = 10101110 B

则 [X] 补 = [X] 反 + 1 = 11010001 + 00000001 = 11010010 B

如, [+6] 补 = [+6] 原 = 00000110 B

[-6] 补 = 28 + ( -6 ) = 10000000 – 00000110 = 11111010 B

8 位补码的范围 – 128 ~ +127 。

0 的个数:只一个,即 00000000

而 10000000 B 是 -128 的补码。

原码、反码、补码对照表:见下表

12

3

( 3 )补码补码的概念:现在是下午 3 点,手表停在 12 点,可正拨 3 点,也可倒拨 9 点。即是说 -9 的操作可用 +3来实现,在 12 点里: 3 、 -9互为补码。

Page 23: 第一章  单片机基础知识

八位二进制数所能表示的数据范围 机器数 无符号数 原码 反码 补码

00000000 0 +0 +0 +0

00000001 1 +1 +1 +1

. . . . .

01111111 127 +127 +127 +127

10000000 128 -0 -127 -128

10000001 129 -1 -126 -127

. . . . .

. . . . .

11111110 254 -126 -1 -2

11111111 255 -127 -0 -1

Page 24: 第一章  单片机基础知识

( 4 )补码的运算

当 X≥0 时, [X] 补 = [X] 反 =[X] 原

[ [X] 补 ] 补 = [X] 原

[X] 补 + [Y] 补 = [ X+Y ] 补

[ X-Y ] 补 = [ X+ ( -Y ) ] 补

例:已知 X=52 Y=38 求 X-Y

方法 1 : 减法:

X-Y = 52-38 =14

0 0 1 1 0 1 0 0

- ) 0 0 1 0 0 1 1 0

0 0 0 0 1 1 1 0

Page 25: 第一章  单片机基础知识

方法 2 : 加法

X-Y = [ [ X-Y] 补 ]补 = [ [X] 补 +[-Y] 补 ] 补

=[ [52] 补 +[ -38] 补 ] 补

=[ 14 ] 补 =14

[52] 补: 0 0 1 1 0 1 0 0

[-38] 补: + ) 1 1 0 1 1 0 1 0

1 0 0 0 0 1 1 1 0

自然丢失

计算机在做算术运算时,必需检查溢出,以防止发生错误

Page 26: 第一章  单片机基础知识

(5) 运算的溢出问题

由于计算机中表示数据的字长(位数)有一定限制,所以数据的表示应有一个范围。

如字长 8 位时; 补码范围 -128~+127

若运算结果超出这个范围,便溢出。

例:

[98] 补: 0 1 1 0 0 0 1 0

[25] 补: + ) 0 0 0 1 1 0 0 1

[123] 补 0 0 1 1 1 1 0 1 1

未溢出 0 0

Cs+1 Cs (未溢出)

Page 27: 第一章  单片机基础知识

[85] 补: 0 1 0 1 0 1 0 1

[47] 补: + ) 0 0 1 0 1 1 1 1

[132] 补: 1 0 0 0 0 1 0 0

溢出 0 1

Cs+1 Cs (溢出)

错:两个正数相加和为负数。

[- 85] 补: 1 0 1 0 1 0 1 1

[- 47] 补: + ) 1 1 0 1 0 0 0 1

[- 132] 补: 1 0 1 1 1 1 1 0 0

溢出 1 0

Cs+1 Cs

错:两个负数相加和为正数。

Page 28: 第一章  单片机基础知识

[- 19] 补: 0 1 0 1 0 1 0 1

[- 79] 补: + ) 1 0 1 1 0 0 0 1

[- 98] 补: 1 1 0 0 1 1 1 1

未溢出 1 1

Cs+1 Cs

错:两个负数相加和为正数。

总之:结果正确(无溢出)时, Cs+1 = Cs

结果错误(溢出)时, Cs+1 ≠ Cs

溢出判断:溢出 = Cs+1Cs (即结果是 0 为无溢出; 1 为有溢出)

Page 29: 第一章  单片机基础知识

1 、 ( 6 ) 十进制数的编码

对机器:二进制数方便,

对人 :二进制数不直观,习惯于十进制数。

在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。

怎么办?

可以将十进制的字符用二进制数进行编码:

     0     0000 5 0101 1010 1111

1 0001 6 0110 1011

2 0010 7 0111 1100

3 0011 8 1000 1101

4 0100 9 1001 1110

这叫做二进制数对十进制编码—— BCD 码。

上述每 4 位二进制数表示一个十进制字符,这 4 位中各位的权依次是:

8 、 4 、 2 、 1——8421 BCD 码。

Page 30: 第一章  单片机基础知识

BCD 码的运算:

例、 1 8

+ ) 3

2 1

0 0 0 1 1 0 0 0

+ ) 0 0 0 0 0 0 1 1

0 0 0 1 1 0 1 1

B 是非 BCD 码(错)需进行十进制调整:

0 0 0 1 1 0 0 0

+ ) 0 0 0 0 0 0 1 1

0 0 0 1 1 0 1 1 (个位大于 9 ,应进 1 )

+ ) 0 1 1 0 (加 6 使进 1 )

0 0 1 0 0 0 0 1 (结果形如 21 )

Page 31: 第一章  单片机基础知识

BCD 码加法规则:

两个 BCD 数相加时,“某位”的和小于 10 则保持不变;

两个 BCD 数相加时,“某位”的和大于 9 ,则和数应加 6修正。

BCD 码减法规则:

两个 BCD 数相减时,“某位”的差未发生借位,则差数保持不变;

两个 BCD 数相减时,“某位”发生了借位,其差应减 6修正。

这里“某位”指 BCD 数中的“个位”、“十位”、“百位”、……

Page 32: 第一章  单片机基础知识

加法举例:

0 1 1 0 0 1 0 1 ( 6 5 )

+ ) 1 0 0 1 0 1 1 1 ( 97 )

1 1 1 1 1 1 0 0

+ ) 0 1 1 0 0 1 1 0 (加 66调整)

1 0 1 1 0 0 0 1 0 ( 162 )

减法举例:

0 0 1 1 0 1 0 0 ( 3 4 )

- ) 0 0 0 1 0 1 0 1 ( 15 )

0 0 0 1 1 1 1 1

- ) 0 1 1 0 (减 6调整)

0 0 0 1 1 0 0 1 ( 29 )

Page 33: 第一章  单片机基础知识

( 7 )字符信息的表示

计算机能识别 0 、 1 、 0 、 1 、……;这些 0 、 1 、 0 、 1 、……有的

代表数值,有的仅代表要处理的信息(如字母、标点符号、

数字符号等文字符号),所以,计算机不仅要认识各种数字,

还要能识别各种文字符号。人们事先已对各种文字符号进行

二进制数编码。

如,美国信息交换标准码—— ASCII 码,用一个字节表示一个

字符。低 7 位是字符的 ASCII 码值;最高位是通信时的

校验位。

Page 34: 第一章  单片机基础知识

行 列 000 001 010 011 100 101 110 111

0000 NUL DLE SP 0 @ P 、 p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 ” 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB ’ 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l ¦ 1101 CR GS - = M ] m } 1110 SO RS · > N ↑ n ~ 1111 SI US / ? O _ o DEL

Page 35: 第一章  单片机基础知识

综上所述 ,

计算机中的数可以有各种不同的表示方法 ,

计算机中以一个字节为一个单元保存数据 ,

一个字节为 8位二进制数 ,可以有 256种组合 ,

也就是可以表示 256个数据 ,

我们称它为机器数 , 每一个机器数实际表示的是什么 ,

要看采用的是那种表示方法。