单片机原理与应用
Principles and Application
of Microcontroller
讲授:唐露新
广东工业大学
信息工程学院测控技术系
学习要求:
? 上课记笔记
? 独立完成作业
? 认真做好实验
学习方法:动手实践
Practice is a best way to learning.
第 1章 计算机基础知识
1.1 计算机发展与应用
1.2 计算机的应用概况
1.3 计算机的数制及转换
1.4 单片机应用概况
1.5 单片机结构及 指令执行过程
1.1 计算机发展与应用
一,发展概况
1946-1958,第一代电子管计算机。 磁鼓存储器,机器语言
汇编语言编程。世界上第一台数字计算机 ENIAC。
1958-1964,第二代晶体管计算机 。 磁芯作主存储器,磁盘
作外存储器,开始使用高级语言编程。
1964-1971,第三代集成电路计算机 。使用 半导体存储器,
出现多终端计算机和计算机网络。
1971-, 第四代大规模集成电路计算机 。 出现微型计算
机、单片微型计算机,外部设备多样化。
1981-, 第五代人工智能计算机 。 模拟人的智能和交流
方式。
二,计算机发展趋势
? 微型化 ─ 便携式、低功耗
? 巨型化 ─ 尖端科技领域的信息处理,需要超大容量、高
速度
? 智能化 ─ 模拟人类大脑思维和交流方式,多种处理能力
? 系列化、标准化 ─ 便于各种计算机硬、软件兼容和升级
? 网络化 ─ 网络计算机和信息高速公路
? 多机系统 ─ 大型设备、生产流水线集中管理 (独立控制、
故障分散、资源共享 )
1.2 计算机的应用概况
1,科学计算:人造卫星轨迹, 天气预报等
2,数据处理,企业管理, 情报检索等
3,自动控制,航天飞行, 火星探测等现场控制等
4,辅助设计和制造
5,系统仿真
6,智能模拟
7,计算机网络与信息高速公路
1.3 计算机的数制及转换
一,十进制 ND
有十个数码 0~ 9、逢十进一。十进制用于计算机输入输出,
人机交互。
二,二进制 NB
两个数码,0,1,逢二进一。二进制为机器中的数据形式。
三,十六进制 NH
十六个数码,0~ 9,A~ F,逢十六进一。十六进制用于表示
二进制数。
不同进位制数以下标或后缀区别,十进制数可不带下标。
如,101,101D,101B,101H,101H
1.3.1 进位计数制简介
表 1-2-1 不同进位记数制对照表
十进制 二进制 十六进制 十进制 二进制 十六进制
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 001 1 3 11 101 1 B
4 0100 4 12 1 100 C
5 0101 5 13 1 101 D
6 01 10 6 14 1 1 10 E
7 01 1 1 7 15 1111 F
一,十进制 ND
符号集,0~ 9 规则:逢十进一。
例,1234.5=1× 103 +2× 102 +3× 101 +4× 100 +5× 10-1
加权展开式以 10称为基数, 各位系数为 0~ 9。
一般表达式:
ND= dn-1× 10n-1+dn-2× 10n-2 +… +d0× 100 +d-1× 10-1+…
1.3.2 进位计数制
二,二进制 NB
符号集,0,1 规则:逢二进一 。
例,1101.101=1× 23+1× 22+0× 21+1× 20+1× 2-1+1× 2-3
加权展开式以 2为基数,各位系数为 0,1。
一般表达式:
NB = bn-1× 2n-1 + bn-2× 2n-2 +… +b0× 20 +b-1× 2-1+…
三,十六进制 NH
符号集,0~ 9,A~ F 规则:逢十六进一。
例,DFC.8=13× 162 +15× 161 +12× 160 +8× 16-1
展开式以十六为基数,各位系数为 0~ 9,A~ F。
一般表达式:
NH= hn-1× 16n-1+ hn-2× 16n-2+… + h0× 160+ h-1× 16-
1+…
1.3.3 不同进位计数制之间的转换
进位计数制的一般表达式:
Nr= an-1rn-1+an-2rn-2+ … +a1r1+ a0r0+ a-1r-1… + a-mr-m
一个 r1进制的数转换成 r2进制数的方法:先展开,然后
按 r2进制的运算法则求和计算。
一,二、十六进制数转换成十进制数
先展开, 然后按照十进制运算法则求和 。
举例,
1011.1010B=1× 23+1× 21+1× 20+1× 2-1+1× 2-3=11.625
DFC.8H =13× 162+15× 161+12× 160+8× 16-1 = 3580.5
二, 二进制与十六进制数之间的转换
24=16, 四位二进制数对应一位十六进制数 。
举例:
3AF.2H = 0011 1010 1111.0010 = 1110101111.001B
3 A F 2
1111101.11B = 0111 1101.1100 = 7D.CH
7 D C
三,十进制数转换成二、十六进制数
1,整数转换法
,除基取余,,十进制整数不断除以转换进制基数, 直
至商为 0。 每除一次取一个余数, 从低位排向高位 。
举例:
( 1) 39转换成二进制数
39 =100111B
2 39 1 ( b0)
2 19 1 ( b1)
2 9 1 ( b2)
2 4 0 ( b3)
2 2 0 ( b4)
2 1 1 ( b5)
0
( 2) 208转换成十六进制数
208 = D0H
16 208 余 0
16 13 余 13 = DH
0
2,小数转换法
,乘基取整,,用转换进制的基数乘以小数部分,
直至小数为 0或达到转换精度要求的位数 。 每乘一次取一
次整数, 从最高位排到最低位 。
举例:
( 1) 0.625转换成二进制数
1) 0.625 × 2
2) 1.250 1 (b-× 2
3) 0.5 0 0 (b-× 2
1.0 1 (b-
0.625 = 0.101B
( 2) 0.625转换成十六进制数
0.625 × 16 = 10.0
0.625 = 0.AH
( 3) 208.625 转换成十六进制

208.625 = D0.AH
1.3.4 带符号数的表示方法
机器中,数的符号用,0”、,1” 表示。最高位作
符号位,,0”表示,+”,,1”表示,-”。
一,机器数与真值
机器数:机器中数的表示形式,其位数通常为 8的倍数
真值,机器数所代表的实际数值。
举例,一个 8位机器数与它的真值对应关系如下:
真值,X1=+84=+1010100B X2=-84= -1010100B
机器数,[X1]机 = 01010100 [X2]机 = 11010100
二,原码 (True Form)
最高位为符号位,0表示, +”,1表示“-”。
数值位与真值数值位相同。
例 8位原码机器数:
真值,x1 = +1010100B x2 =- 1010100B
机器数,[x1]原 = 01010100 [x2]原 = 11010100
原码表示简单直观,但 0的表示不唯一, 加减运算复杂 。
三,补码( Two’s Complement)
正数的补码表示与原码相同。负数补码的符号位为 1,
数值位等于求反加 1。
例:求 8位补码机器数:
x=+4 [x]补 = 00000100
x=-4 10000100
x1111011
[x]补 = 11111100
补码表示的优点:
0的表示唯一,加减运算方便
数的补码与“模”有关, 模, 即计数系统的量程。
当 X<0,[X]补 = 模 -| X| 。
8位二进制数的模为,28 = 256
当 X<0,[X]补 = 28 -| X|
= 256 -| X| = 255 -| X| +1
= [X]反码 + 1
规则:求反加 1,符号位不变。
如,1000 1101B 其补码,1111 0010
规定,0000 0000B 为 0
1000 0000B 不是- 0,而是- 128
8位机器数表示的真值
8 位机器数 有符号数
十六进制 二进制
无符号

原码 补码
00
01
?
7F
80
?
FE
FF
00000000
00000001
?
01 1 1 1 1 1 1
10000000
?
1 1 1 1 1 1 10
1 1 1 1 1 1 1 1
0
1
?
127
128
?
254
255
+0
+1
?
+ 127
- 0
?
- 126
- 127
+0
+1
?
+ 127
- 128
?
- 2
- 1
四,机器数与真值之间的转换
1,真值 ?机器数
(1)X1=+127,X2=-127,求 [X]原, [X]补
[X1]原 =[X1]补 =01111111= 7FH
[X2]原 =11111111= FFH
[X2]补 =10000001= 81H
(2)X1=+255,X2=-255, 求 [X]原, [X]补
[X1]原 =[X1]补 =0000000011111111= 00FFH
[X2]原 =1000000011111111= 80FFH
[X2]补 =1111111100000001= FF01H
1.3.5 二 — 十进制编码 BCD码
BCD码 (Binary Coded Decimal)
二进制代码表示的十进制数。
一,8421 BCD码
例:求十进制数 876的 BCD码
[876]BCD = 1000 0111 0110
876 = 36CH = 11 0110 1100B
二,BCD码运算
十进制调整:计算机实际按二进制法则计算,加入十
进制调整操作,可计算 BCD码。
十进制调整方法:当计算结果有非 BCD码或产生进位
或借位,进行加 6或减 6调整。
例:计算 BCD码 38-29=?
0011 1000 [38]BCD
+ 1101 0111 - [29]BCD
1 0000 1111 产生非 BCD
+ 1111 1010 -06调整
1 0000 1001 结果无借位,9
1.3.6 字符编码
美国标准信息交换码 ASCII码,用于计算机与计算机及
外设之间传递信息。


000 001 010 0 1 1 100 101 1 1 0 111
0 0 0 0 NUL D L E SP 0 @ P, p
0 0 0 1 S O H DC1 ! 1 A Q a q
0 0 1 0 S T X DC2, 2 B R b r
0 0 1 1 ETX DC3 # 3 C S c s
0 1 0 0 E O T DC4 $ 4 D T d t
0 1 0 1 E N Q NAK % 5 E U e u
0 1 1 0 ACK S Y N & 6 F V f v
0 1 1 1 B E L ETB ’ 7 G W g w
1 0 0 0 BS CAN ( 8 H X h x
1 0 0 1 HT EM ) 9 I Y i y
1 0 1 0 LF S U B *, J Z j z
1 0 1 1 VT E S C + ; K [ k {
1 1 0 0 FF FS, < L \ l |
1 1 0 1 CR GS - = M ] m }
1 1 1 0 SO RS · > N ↑ n ~
1 1 1 1 SI US /? O _ o D E L
1.4 单片机应用概况
1976-1978 初级 8位单片机 Intel MCS-48 系列
1978- 高档 8位单片机 Intel MCS-51系列:
-51子系列,8031/8051/8751
-52子系列,8032/8052/8752
低功耗型 80C31高性能型 80C252廉价型 89C2051/1051
1983- 16位单片机 Intel MCS-96 系列
8098/8096,80C198/80C196,DSP
32位单片机 ARM
二,计算机主要技术指标
字长,CPU并行处理二进制的数据位数
8位机, 16位机, 32位机和 64位机 。
内存容量,内存存储单元数
容量单位,1K=210=1024,1M=220=1KK
8K,64K,16M,64M。
运算速度,CPU处理速度
时钟频率、主频、每秒运算次数
6MHz,12MHz,24MHz,100MHz,300MHz。
内存存取周期,内存读写速度
50nS, 70nS, 200nS 。
1.5 单片机结构及 指令执行过程
单片机即单片机微型计算机,是将计算机主机 (CPU、
内存和 I/O接口 )集成在一小块硅片上的微型机。
单片机为工业测控而设计,又称微控制器 。 具有三高优
势 (集成度高、可靠性高、性价比高 )。
主要应用于工业检测与控制、计算机外设、智能仪器仪
表、通讯设备、家用电器等。 特别适合于嵌入式微型机应
用系统。
单片机开发系统有单片单板机和仿真器。实现单片机应
用系统的硬、软件开发。
一,单片机结构
图 1-1 单片机组成框图
二,计算机指令执行过程
开始 取指令 PC+1 执行指令
图 1-2 取指令、执行指令序列