教 材 及 参 考 书
1,张志良主编,单片机原理与控制技术 (第 2版) —机械工业出版社
2,李群芳编著,单片微型计算机与接口技术 —电子工业出片社
3,张俊谟编著,单片机教程习题与解答 —北京航空航天大学出版社
4,李朝青编著,单片机原理及接口技术 --北京航空航天大学出版社参 考 网 址
1,www.mcu51.com
2,www.mcustudy.com
3,www.zlgmcu.com 周立功单片机
4,www.chnsoft.net 单片机学习网站有关本课程学习的几点建议本课程是一门实践性、应用性很强的学科仅仅听懂还不够,重在培养动手能力硬件 /软件同样重要、不可偏废硬件是骨架,软件是皮肉器脏及思想本课程的前期基础课程是数字电路与微机原理这方面知识掌握得不够好的请自己补上预习、听课、复习、作业、实验环环都重要用科学的方法学习第 1章 微型计算机系统基本知识本章要点:
微型计算机和单片机的发展概况单片机系统组成概述 (CPU、总线、存储器和 I/O
口等 )
二进制、十进制和十六进制数 (数制转换和运算 )
计算机中数的表示 (原码、反码和补码 )
单片机常用编码 (BCD码,ASCII码 )
第 1章 微型计算机系统基本知识微型计算机具有体积小,
功耗低重量轻,价格低,可靠性高,开发使用简便等一系列优点,自问世以来得到了非常广泛的应用。
§ 1-1 概述
1.1.1 微型计算机微处理器加上同样采用大规模集成电路制成的用于存储程序和数据的存储器,以及与输 入输出设备相衔接的输入输出接口电路就构成了 微型计算机 (Microcomputer)
什么是单片机?
如果将微处理器、存储器和输入输出接口电路集成在一块集成电路芯片上,称为单片微 型计算机,简称 单片机 。
1.1.2 微型计算机的发展概况
1,PC机,PC机系统全力实现海量高速数据处理,兼顾控制功能 。
2,单片机,单片机系统全力满足测控对象的测控功能,兼顾数据处理能力。
形成两大分支:
组成,
CPU(进行运算、控制 ) RAM(数据存储器 )
I/O口 (串口、并口等 ) ROM(程序存储器 )
PC机,上述部件以芯片形式安装在主板上。
单片机:上述部件被集成到单芯片中。
通用 PC包括:键盘、显示器、鼠标、硬 /软 /
光驱、音箱、打印机、扫描仪 … 等外设。
单片机则只是一片集成电路。( …… 100,48、
40,32,28,20,16,8条引脚)。
单片机与 PC机之异同( 1)
功能,
PC机,数据运算、采集、处理、存储、传输;
单片机:控制(或受控于)外设。
通用计算机擅长于数据运算、采集、处理、
存储和传输;
单片机的专长则是测控,往往嵌入某个仪器 /
设备 /系统中,使其达到智能化的效果。
单片机与 PC机之异同( 2)
应用特点,
个人计算机(微机):
体积大,功耗大,价格高,用途较固定,属通用计算机。易于学习掌握和使用,但用于控制时必须制作或购买专用的接口卡,并编制专门的应用软件。
单片机:
体积小,功耗小,价格低,用途灵活,无处不在,
属 专用计算机。 是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专业的硬件和软件。
单片机与 PC机之异同( 3)
1.1.3 单片机的发展概况可分为四个阶段,
目前,应用广泛的主流机型是 80C51系列 8位 单片机。
第一阶段,单片机探索阶段。
第二阶段,单片机完善阶段。
第三阶段,8位机和 16位机争艳阶段,也是单片机向微控制器发展的阶段。
第四阶段,微控制器全面发展阶段。
80C51优点:
① 性能价格比高;
② 开发装置多;
③ 国内技术人员熟悉;
④ 芯片功能够用适用;
⑤ 有众多芯片制造厂商加盟,可广泛选择。
1.1.4 80C51系列单片机
1.1.5 单片机的特点和应用
⑴ 有优异的性能价格比 。
⑵ 集成度高,体积小,可靠性好 。
⑶ 控制能力强 。
⑷ 低功耗,低电压,便于生产便携式产品 。
⑸ 易扩展 。
1、单片机特点
2、单片机的应用
⑴ 智能化家用电器。 ⑵ 办公自动化设备。
⑶ 商业营销设备。 ⑷ 工业自动化控制。
⑹ 智能化通信产品。⑸ 智能化仪表。
⑺ 汽车电子产品。
⑻ 航空航天系统和国防军事、尖端武器等。
1.1.6 单片机技术的发展趋势
⑴ 8位单片机仍然是主流机型;
⑵ 全盘 CMOS化趋势;
⑶ OTP ROM(PROM)/Flash ROM成为 ROM供应主流状态;
⑷ 推行串行扩展总线 ;
⑸ RISC体系结构大发展;
⑹ 实现全面低功耗管理 ;
⑺ 根据不同需求发展个性化单片机 ;
⑻ 大力发展专用型单片机;
⑼ 在单片机中嵌入驻机软件;
§ 1-2 单片机系统的组成组成单片机系统的物理实体;
有两大部分组成,
对硬件使用和管理的程序。
⑴ 硬件,
⑵ 软件,
CPU 外部设备时钟图 1-2 单片机系统的硬件结构框图
ROM RAM 定时计数器 中断系统
I/O
接口复位
(DB)
(CB)
(AB)
硬件 结构框图
1.2.1 微处理器
⑴ 寄存器阵列,通用寄存器,专用寄存器;
⑵ 运算器,累加器 A,暂存寄存器 TMP,标志寄存器 F,算术逻辑单元 ALU;
⑶ 控制器,程序计数器 PC,指令寄存器 IR,
指令译码器 ID,定时和控制逻辑电路 。
1.2.2 总线,
用于传送信息的公共途径。
总线分为:
⑴ 数据 总线 DB (Data Bus)
⑵ 地址 总线 AB (Address Bus)
⑶ 控制 总线 CB (Control Bus)
1.2.3 存储器,
作用:存放程序和数据
1,存储器分类
RAM
特点,读写速度快,可随机写入或读出,读写方便;
电源断电后,存储信息丢失。
作用,存放各种数据。
ROM
特点,信息写入后,能长期保存,不会因断电而丢失。
作用,存放固定程序和数据。
ROM分类:
① MaskROM(掩膜 ROM)
② OTPROM( One Time Programmable ROM)
③ EPROM( Ultra-Violet Erasable Programmable ROM)
④ E2PROM( Electrically EPROM)
⑤ Flash ROM
2,存储器结构
① 存储体;
② 地址译码器 ;
③ 控制电路:片选控制、读 /写控制和带三态门的输入 /输出缓冲电路。
3.存储器的读操作例如,若要将存储器 40H中的内容 50H读出,其简化过程如下:
1) CPU将地址码 40H送到地址总线上,经存储器地址译码器选通地址为 40H的存储单元;
2) CPU发出“读”信号,存储器读 /写控制开关将数据传输方向拨向“读”;
3) 存储器将地址为 40H的存储单元中的数据 50H送到数据总线上;
4) CPU将数据总线上的数据 50H读入指定的某一寄存器。
对存储单元的读操作,不会破坏其原来的内容,相当于复制 。
4.存储器的写操作例如,若要将数据 ABH写入存储器地址为 CDH的存储单元中,
其简化过程如下:
1) CPU将地址码 CDH送到地址总线上,经存储器地址译码器选通地址为 CDH的存储单元;
2) CPU将数据 ABH送到数据总线上;
3) CPU发出“写”信号,存储器读/写控制开关将数据传送方向拨向“写”;
4) 存储器将数据总线上的数据 ABH送人已被选中的地址为
CDH的存储单元中。
对存储单元的写操作,改变或刷新了其原来的内容,俗称
,冲,掉了原来的内容。
5.堆栈:
暂时存放子程序断口地址、中断断口地址和其他需要保存的数据。
栈底地址可在 CPU复位后的初始化程序中设置。图中设为 60H,需要存入的数据依次存人。
堆栈指针 SP指出栈顶存储单元的地址。堆栈操作无论是存入或取出数据,均只能依次存入或依次取出,不能越位,必须遵循,,先进后出、后进先出,的原则。
34H
8AH
99H
F3H
64H栈顶
63H
62H
61H
60H 栈底
SP
1.2.4 输入 /输出设备及其接口电路
⑴ 输入设备 ;
⑵ 输出设备 ;
⑶ I/O接口电路 。
输入输出设备一般不能与 CPU直接相连,而是通过某种电路完成寻址、数据缓冲、输入输出控制、
功率驱动,A/D,D/A等功能,这种电路称为 I/O接口电路。例如,8255,0809,0832等等。
1.2.5 软件单片机程序设计语言可分为三类:
⑴ 机器语言
⑵ 汇编语言
⑶ 高级语言本书介绍的 MCS-51型单片机使用 汇编语言 。
§ 1-3 计算机中数的表示方法及运算引言,
● 十进制数 是人们习惯使用的进制。
● 计算机只能“识别” 二进制数 。
● 为了书写和识读方便,计算机程序需要用 十六进制数 表示。
● 十进制数、二进制数、十六进制数之间的 关系,相互转换 和运算方法,是学习计算机必备的基础知识。
一、二进制、十进制和十六进制数
⒈ 十进制数主要特点:
① 基数是 10。 有 10个数码 ( 数符 ) 构成:
0,1,2,3,4,5,6,7,8,9。
② 进位规则是,逢十进一,。
【 例 】
1234.56
= 1× 103+2× 102+3× 101+4× 100+5× 10-1+6× 10-2
= 1000+200+30+4+0.5+0.06
上述,103,102,101,100,10-1,10-2
称为十进制数各数位的,权,。
⒉ 二进制数主要特点:
① 基数是 2。 只有两个数码,0 和 1。
② 进位规则是,逢二进一,。
每 左 移一位,数值 增大 一倍; 右 移一位,数值 减小 一半。
二进制数用尾缀 B作为标识符。
【 例 】
111.11B
= 1× 22 +1× 21 +1× 20 +1× 2-1+1× 2-2
= 7.75
其中,22,21,20,2-1,2-2 称为二进制数各数位的,权,
⒊ 十六进制数主要 特点,
① 基数是 16。 共有 16个数符构成:
0,1,?,9,A,B,C,D,E,F。 其中,
A,B,C,D,E,F 代表的数值分别为
10,11,12,13,14,15。
② 进位规则是,逢十六进一,。
十六进制数用尾缀 H表示。
【 例 】 A3.4H
= 10× 161+3× 160+4× 16-1
= 160+3+0.25
= 163.25
其中,163,162,161,160,16-1,16-2
称为十六进制数各数位的,权,。
十六进制数、二进制数和十进制数对应关系表十进制数 十六进制数 二进制数 十进制数 十六进制数 二进制数
0 00H 0000B 11 0BH 1011B
1 01H 0001B 12 0CH 1100B
2 02H 0010B 13 0DH 1101B
3 03H 0011B 14 0EH 1110B
4 04H 0100B 15 0FH 1111B
5 05H 0101B 16 10H 0001 0000B
6 06H 0110B 17 11H 0001 0001B
7 07H 0111B 18 12H 0001 0010B
8 08H 1000B 19 13H 0001 0011B
9 09H 1001B 20 14H 0001 0100B
10 0AH 1010B 21 15H 0001 0101B
二、数制转换
⒈ 二进制数与十六进制数相互转换
⑴ 二进制数转换成十六进制数
① 整数部分,
自右向左,四位一组,不足四位,向左填零,各部分用相应的十六进制数替代;
② 小数部分,
自左向右,四位一组,不足四位,向右填零,各部分用相应的十六进制数替代;
二进制 十六进制 二进制 十六进制
0000 0 1000 8
0001 1 1001 9
0010 2 1010 10
0011 3 1011 11
0100 4 1100 12
0101 5 1101 13
0110 6 1110 14
0111 7 1111 15
⑵ 十六进制数转换成二进制数每位十六进制数分别用相应 4位二进制数替代。
② 十进制数整数转换成十六进制数的方法:
除 16取余法
⒊ 十进制数转换成二进制数、十六进制数
① 十进制小数转换成二进制小数的方法:
乘 2取整法
⑴ 整数部分的转换
① 十进制整数转换成二进制整数的方法:
除 2取余法
⑵ 小数部分的转换
② 十进制小数转换成十六进制小数的方法:
乘 16取整法三,二进制数和十六进制数运算
【 例 】 00110101B
+ 10011100B
⒈ 二进制数加法运算规则,0 + 0 = 0,0 + 1 = 1 + 0 = 1,
1 + 1 = 0(向高位进 1)。
11010001B
【 例 】 10110101B
- 10011100B
规则,0 – 0 = 0,1 – 0 = 0,1 – 1 = 0,
0 – 1 = 1(向高位借 1)。
⒉ 二进制数减法运算
00011001B
1101
⒊ 二进制数乘法运算规则,0× 0=0,1× 0=0× 1=0,1× 1=1。
【 例 】 1101B
× 1001B
1110101B
+ 1101
⒋ 二进制数除法运算规则,0÷ 0=0,0÷ 1=0,1÷ 1=1。
1
1110
【 例 】
1101√ 1110110
1001
- 1101
- 1101
⒌ 二进制数,与,运算规则,0 ∧ 0 = 0,1 ∧ 0 = 0,
1 ∧ 0 = 0,1 ∧ 1 = 1。
【 例 】 10110101B
∧ 10011100B
10010100B
规则,0 ∨ 0 = 0,1 ∨ 0 = 0,
1 ∨ 1 = 0,0 ∨ 1 = 1。
⒍ 二进制数“或”运算
【 例 】 10110101B
∨ 10011100B
10111101B
⒎ 二进制数“异或”运算规则,0⊕ 0 = 0,0⊕ 1 = 1,
1⊕ 0 = 1,1⊕ 1 = 0。
【 例 】 10110101B
⊕ 10011100B
00101001B
8,十六进制数运算先将十六进制数转换成二进制数,
然后根据二进制运算法则进行运算,
再转换成十六进制数。
四,原码、反码和补码数的正负表示形式:
D7=1 表示 负数,D7=0 表示 正数 。
D7 D6 D5 D4 D3 D2 D1 D0
符号位 数值位
[X]反 =[X]原数值位取反,符号位不变。
在计算机中,机器数有三种表示方法:
即原码、反码和补码。
采取补码运算,可以将减法转换成加法运算。
① 对于正数,[X]原 =[X]反 =[X]补
② 对于负数:
[X]补 =[X]反 + 1
原码、反码和补码对应关系表无符号二进制数 无符号十进制数 原码 反码 补码
00000000 0 +0 +0 0
00000001 1 +1 +1 +1
00000010 2 +2 +2 +2
… … … … …
01111101 125 +125 +125 +125
01111110 126 +126 +126 +126
01111111 127 +127 +127 +127
10000000 128 -0 -127 -128
10000001 129 -1 -126 -127
10000010 130 -2 -125 -126
… … … … …
11111101 253 -125 -2 -3
11111110 254 -126 -1 -2
11111111 255 -127 -0 -1
§ 1-4 常用编码
8421 BCD码 称为 二 -十进制数 或简称
BCD码 (Binary Coded Decimal Code),
用标识符 [ ]BCD表示 。
特点,保留了十进制的权,每一位十进制数字则用二进制码表示。
一,8421 BCD码
⒈ 编码方法二 -十进制数 是十进制数,逢十进一,只是数符
0~ 9用 4位二进制码 0000 ~ 1001 表示而已;
每 4位以内 按二进制进位 ;
4位与 4位之间 按十进制进位 。
⒉ 转换关系
⑴ BCD码与十进制数相互转换关系
⑵ BCD码与二进制数相互转换关系
BCD码与二进制数之间不能直接相互转换,通常要先转换成十进制数。
【 例 】 将二进制数 01000011B转换成 BCD码。
解,01000011B= 67= [0110 0111]BCD
需要指出的是,
决不能把 [01100111]BCD误认为二进制码
01100111B,二进制码 01100111B的值为 103,
而 [01100111]BCD 的值为 67,显然两者是不一样的。
⒊ BCD码运算
BCD码用 4位二进制数表示,但 4位二进制数最多可表示 16种状态,余下 6种状态,1010~
1111在 BCD编码中称为 非法码 或 冗余码 。 在 BCD码的运算中将会出现冗余码,需要作某些修正,才能得到正确 的结果 。
若相加后的低 4位(或高 4位)二进制数大于 9,
或大于 15(即低 4位或高 4位的最高位有进位),
则应对低 4位(或高 4位)加 6修正 。
修正方法,
二,ASCII码用二进制编码表示各种字母和符号 ASCII码
( American Standed Code for Information
Interchange,美国信息交换标准代码 ) 。
作用,
ASCII编码表
b7b6b5
b4b3b2b1 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
ASCII码用 7位二进制数表示:
高 3位组 低 4位组
b7 b6 b5 b4 b3 b2 b1