第1页:单片机原理及应用课程封面
本课程系统讲解MCS-51单片机的原理与应用,内容涵盖微型计算机基础知识、汇编语言与汇编程序、汇编程序设计、内部接口电路、最小系统与外部扩展、半导体存储器等部分。
第2页:微型计算机发展的方向
微型计算机发展的方向通用型计算机系统1嵌入式计算机系统2用于科学计算,信息处理个人计算机---PC工作站---WS用于系统内的控制
第3页:嵌入式系统定义
嵌入式系统定义以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。基本特征:“嵌入”、“专用”、“计算机系统”理解:嵌入到应用系统的专用计算机。应用面为特定用户群系统微型计算机系统中的系统
第4页:嵌入式系统的基本组成
- 嵌入式系统的基本组成微处理器电源时钟复位FLASHRAMROM外围电路USBETHERKEY……
- 嵌入式系统的核心是为微处理器
- 嵌入式系统既需要硬件又需要软件支持
- 嵌入式系统的软件需要固化
第5页:嵌入式系统应用领域
嵌入式系统应用领域嵌入式应用军事电子军事领域网络设备电子商务网络工控设备智能仪表汽车电子工业消费电子信息家电智能玩具通信设备移动存贮
第6页:嵌入式系统的发展
嵌入式系统的发展
第7页:一些软件
一些软件Keil CProteus
第8页:单片机的发展历史(四个阶段)
- 单片机的发展历史
- 阶段一(1976~1978年):低性能单片机的探索阶段,4位、8位。
- 阶段二(1978~1982年):单片机的完善阶段,8位高性能单片机阶段。
- 阶段三(1982~1990年):8位单片机的巩固发展及16位单片机的推出阶段。
- 阶段四(1990年~):微控制器的全面发展阶段,向高速、强运算力、寻址范围大、强运算能力的8位/16位/32位通用型单片机以及小型廉价方面发展。
第9页:单片机的发展历史
单片机的发展历史
第10页:微型计算机基本知识
一.微型计算机的基本知识计算机中的数和编码1逻辑单元与逻辑部件2微型计算机的结构和工作原理351单片机的基本组成和存储器配置451单片机引脚介绍551单片机最小系统651单片机系列7
第11页:1.1 计算机中的数和编码
- 1.1计算机中的数和编码
- 1.1.1计算机中的数制
- 1.1.2符号数的表示法
- 1.1.3二进制数的加减运算
- 1.1.4二进制数的逻辑运算与逻辑电路
- 1.1.5二进制编码
- 1.1.6 BCD数的加减运算
第12页:1.1.1 计算机中的数制
- 1.1.1计算机中的数制
- 2进制(B)优点:简单,便于物理实现,节省设备,计算机中的数全部采用二进制。缺点:太长,不便于书写、记忆和阅读。
- 10进制(D),16进制(H)便于书写和记忆,在编写代码时通常采用这两种数制
第13页:1.1.1 计算机中的数制(相互转换)
- 1.1.1计算机中的数制
- 相互转换BINHEX从最低位到最高位4位一组,每组2进制数转换为一位16进制数。BINHEX按顺序将每位16进制数转换为4位2进制数。11110111110100110100110110111111 0111 1101 0011 0100 1101 1011F 7 D 3 4 D B1E8C95A1 E 8 C 9 5 A0001 1110 1000 1010 1001 0110 1010
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第14页:1.1.1 计算机中的数制
- 1.1.1计算机中的数制
- 相互转换HEXDEC将16进制数按权展开相加,结果即为10进制数。HEXDEC对10进制数进行除16取余,将所得的余数按产生的顺序从右向左排列即可。A83CH = 10×163+8×162+3×16+12= 43068123456161616077164248216E3016110123456 = 1E240H
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第15页:1.1.1 计算机中的数制(相互转换)
- 1.1.1计算机中的数制
- 相互转换HEXDEC将16进制数按权展开相加,结果即为10进制数。HEXDEC对10进制数进行除16取余,将所得的余数按产生的顺序从右向左排列即可。A83CH = 10×163+8×162+3×16+12= 43068123456161616077164248216E3016110123456 = 1E240HBINDEC将2进制数按权展开相加,结果即为10进制数。BINDEC对10进制数进行除2取余,将所得的余数按产生的顺序从右向左排列即可。101101010101B= 1×211+1×29+1×28+1×26+1×24+1×22+1= 2901123222161103021152173123 = 1111011B211210
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第16页:1.1.2 符号数的表示法
- 1.1.2符号数的表示法
- 机器数与真值机器数:数值在计算机中的表示形式。数值有正负,计算机采用二进制代码0和1来表示正、负号,这种采用二进制表示形式,连同正负符号一起代码化的数据,称为机器数。一般有三种表示方法,原码,反码和补码。真值:在现实中的实际数值。用正、负符号加绝对值来表示的实际数值称为真值。
第17页:1.1.2 符号数的表示法(原码)
- 1.1.2符号数的表示法
- 原码设X为n位二进制整数
- 0≤X<2n-1时,它的原码等于真值X;
- -2n-1<X≤0时,它的原码等于2n-1+|X|。原码规定机器数的最高位为符号位,0表示正、1表示负,数值部分在符号位后面,并以绝对值的形式给出。例:已知X,求X的原码。X=+86=+1010110;[X]原=01010110;X=-86=-1010110;[X]原=11010110;
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第18页:1.1.2 符号数的表示法
- 1.1.2符号数的表示法优点:简单易懂,与真值之间的转换方便。缺点:0的表现形式不唯一;原码表示不便于实现加减运算。造成实现原码加减法的硬件比较复杂。
- 原码8位原码数值范围FFH~7FH,即(-127~127),原码数00H和80H的数值分别为+0和-0。16位原码数值范围FFFFH~7FFFH,即(-32767~32767),原码数0000H和8000H的数值分别为+0和-0。
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第19页:1.1.2 符号数的表示法(反码)
- 1.1.2符号数的表示法
- 反码设X为n位二进制整数
- 0≤X<2n-1,X的反码是其自身;
- -2n-1<X≤0时,X的反码为2n-1+X。正数的反码是其自身,即为原码;负数的反码是其绝对值按位取反后,在加上符号位即可。例:已知X,求X的反码。X=+86=+1010110;[X]反=01010110=[X]原;X=-86=-1010110;[X]反=10101001;
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第20页:1.1.2 符号数的表示法
- 1.1.2符号数的表示法
- 反码反码的表示范围与原码的表示范围相同。8位+0和-0的表示分别为00H和FFH。16位+0和-0的表示分别为0000H和FFFFH。
第21页:1.1.2 符号数的表示法(补码)
- 1.1.2符号数的表示法
- 补码设X为n位二进制整数
- 0≤X<2n-1,X的补码是其自身;
- -2n-1≤X<0时,X的补码为2n+X。正数的补码是其自身,即为原码;负数的补码是其反码加1。8位补码数值范围80H~7FH,即(-128~127);16位补码数值范围8000H~7FFFH,即(-32768~32767)。
第22页:1.1.2 符号数的表示法
- 1.1.2符号数的表示法
- 补码例:求几个特殊数的补码。X=0=+0=-0;[X]补=00000000;X=-1=-0000001;[X]补=11111111;X=-128;[X]补=10000000;例:已知X,求X的补码。X=+86=+1010110;[X]补=01010110;X=-86=-1010110;[X]补=10101010;
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第23页:1.1.2 符号数的表示法(补码运算)
- 1.1.2符号数的表示法
- 补码采用补码表示数,可以将减法转换为加法计算。例如:计算109-34 =?[109]补= 6DH = 01101101B[34]补= 22H = 00100010B0110110100100010-0100101101001011B = 4BH = 75109-34 = 109+(-34)[109]补= 6DH = 01101101B[-34]补= DEH = 11011110B0110110111011110+10100101101001011B = 4BH = 75
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第24页:1.1.2 符号数的表示法
- 1.1.2符号数的表示法
- 补码例如:计算34-109 =?[34]补= 22H = 00100010B[109]补= 6DH = 01101101B0010001001101101-10110101B = B5H =-7534-109 = 34+(-109)[34]补= 22H = 00100010B[-109]补= 93H = 10010011B1101101010010001010010011+1011010110110101B = B5H =-75
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第25页:1.1.3 二进制数加减运算
- 1.1.3二进制数的加减运算
- 无符号数的运算n位无符号二进制数的范围(0~2n-1)。
- 无符号数相加,都是非负数,因此和也是非负数;1010001011101101+10001111B = 8FH =143110001111
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第26页:1.1.3 二进制数加减运算(无符号数)
- 1.1.3二进制数的加减运算
- 无符号数相减,有借位,结果为负,无借位,结果为正;1011111000001010-10110100B = B4H =18010110100如:计算190-10 =?190= BEH = 10111110B10= 0AH = 00001010B01101110-10011100B = 9CH =-100110011100如:计算10-110 =?00001010
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第27页:1.1.3 二进制数加减运算
- 1.1.3二进制数的加减运算
- 有符号数的运算n位无符号二进制数的范围(-2n-1~2n-1-1),超过范围就会溢出(OV)。
- 对两个同符号的数进行加运算时可能会出现溢出0110111001000110+10110100B = B4H =-7610110100如:计算110+70=?110+70= 6EH+46H溢出B4H看做无符号数:180>127
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第28页:1.1.3 二进制数加减运算(有符号数)
- 1.1.3二进制数的加减运算
- 有符号数的运算1001001010111010+01001100B = 4CH =76>127101001100如:计算-110-70=?110+70= 92H+BAH溢出将进位看做是符号,形成9位二进制14CH=-180<-127
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第29页:1.1.3 二进制数加减运算
- 1.1.3二进制数的加减运算
- 如何判断是否有溢出CSCSCYOV=CY^CS;异或OVCYCSRSNSMS000000101100011010000110011001000101110011011111Ms和Ns分别表示两个加数的符号;Rs为结果的符号。
第30页:1.1.4 二进制数的逻辑运算与电路
- 1.1.4二进制数的逻辑运算与电路
- 逻辑非A =01001011A =10110100
- 逻辑与(乘)A =01001011B =11110110A·B =01000010
- 逻辑或(加)A =01001011B =11110110A+B= 11111111
- 逻辑异或A =01001011B =11110110A^B= 101111011&≥1=1
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第31页:BCD码与十六进制对照表
BCD码:用4位二进制数表示1位十进制数。下表列出十进制数0~9对应的非压缩BCD、压缩BCD与十六进制表示。
十进制数与BCD码、十六进制对照表| 十进制数 | 非压缩BCD | 压缩BCD | 16进制 |
|---|
| 0 | 00H | 0H | 0H |
|---|
| 1 | 01H | 1H | 1H |
|---|
| 2 | 02H | 2H | 2H |
|---|
| 3 | 03H | 3H | 3H |
|---|
| 4 | 04H | 4H | 4H |
|---|
| 5 | 05H | 5H | 5H |
|---|
| 6 | 06H | 6H | 6H |
|---|
| 7 | 07H | 7H | 7H |
|---|
| 8 | 08H | 8H | 8H |
|---|
| 9 | 09H | 9H | 9H |
|---|
注:原课件文本为线性化提取结果,压缩BCD与16进制两列数值相同,已按原文如实呈现,请对照原图核对。
第32页:1.1.5 二进制编码
- 1.1.5二进制编码
- BCD码BCDHEX按10进制将BCD转换为2进制(16进制)。BCDHEX将16进制数转换为10进制后转换为BCD码。2009H2009FDCHBCD转换为10进制10进制转换为16进制AECH27962796H16进制转换为10进制10进制转换为BCD码
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第33页:1.1.5 二进制编码(ASCII)
1.1.5二进制编码ASCII码略
第34页:1.1.6 二进制编码
1.1.6二进制编码BCD码加法BCD码减法
第35页:1.2 逻辑单元与逻辑部件
- 1.2逻辑单元与逻辑部件
- 1.2.1触发器
- 1.2.2寄存器
- 1.2.3移位寄存器
- 1.2.4计数器
- 1.2.5三态输出门与缓冲放大器
- 1.2.6译码器
第36页:1.2.1 触发器
- 1.2.1触发器
- 基本RS触发器&&QQSRS=0,R=1 Q=1S=1,R=0 Q=0S=1,R=1 Q保持不变S=0,R=0不允许
第37页:1.2.1 触发器(同步)
- 1.2.1触发器
- 同步RS触发器&&QQSR&&CLK实际应用中,希望触发器受时钟控制,在CLK节拍下翻转,这样可以使多个触发器同受一个CLK控制,在一个时刻翻转。CLK = 0,Q维持不变CLK = 1时S=1, R=0 Q=1S=0, R=1 Q=0S=0, R=0 Q保持不变S=1, R=1不允许
第38页:1.2.1 触发器
- 1.2.1触发器
- D触发器&&QQD&&CP同步RS触发器不允许输入同时为1,D触发器对同步RS触发器进行改进,限制输入同时为1的情况出现,不会出现不允许的输入状态。CLK = 0,Q维持不变CLK = 1时D=1,Q=1D=0,Q=0
第39页:1.2.1 触发器(JK)
- 1.2.1触发器
- JK触发器&&QQK&&CPJ将触发器的输出Q和Q反馈到输入端,由于Q和Q是相反的,因此,两个控制与非门不会同时开启,这样对于输入就没有了限制。CLK = 0,Q维持不变CLK = 1时J=0, K=0 Q保持不变J=1, K=1 Q状态取反J=1, K=0 Q=1J=0, K=1 Q=0
第40页:1.2.2 寄存器
- 1.2.2寄存器
- 寄存器用来存放二进制信息,由触发器构成。单个触发器有两个稳态,可以用来保存1位二进制数据。DCLKRQDCLKRQDCLKRQDCLKRQD3D2D1D0Q3Q2Q1Q0CLKR
第41页:1.2.3 移位寄存器
1.2.3移位寄存器移位寄存器DCQDCQDCQDCQ时钟信号输入信号Q4Q3Q2Q1
第42页:1.2.4 计数器
1.2.4计数器计数器JCQKJCQKJCQKQ1Q2Q3JCQKJCQKJCQK&Q1Q2Q3
第43页:1.2.5 三态输出门与缓冲放大器
- 1.2.5三态输出门与缓冲放大器
- 三态门逻辑电路中,逻辑值除了有0和1(对应于低电平和高电平),还有第三种状态“高阻态”。高阻态是一种将输入和输出进行隔离的一种状态。通常由有一个控制线来决定是否进入“高阻态”,一般用于总线驱动。ENDjDi
第44页:2-4译码器真值表
译码器:把输入代码翻译成对应输出线上的控制信号。下面以2-4译码器为例,给出E=1时的真值表。
2-4译码器真值表(E=1)| A1 | A0 | 输出(低电平有效) |
|---|
| 0 | 0 | 1110 |
|---|
| 0 | 1 | 1101 |
|---|
| 1 | 0 | 1011 |
|---|
| 1 | 1 | 0111 |
|---|
注:原课件文本流中输入与输出的排列顺序被打乱,此处按2-4译码器低电平有效输出的标准真值表还原,请对照原图核对。
第45页:1.3 微型机的结构和工作原理
- 1.3微型机的结构和工作原理
- 1.3.1常用术语
- 1.3.2基本结构
- 1.3.3计算机的工作原理
第46页:1.3.1 常用术语
- 1.3.1常用术语
- 位:计算机中能表示的最小单元;
- 字:计算机内部进行数据处理的基本单位;
- 字节:一小组相邻的二进制数码,通常是8位作为一个字节;
- 指令:指示计算机执行某种操作的命令,它由一串二进制数码组成;
- 程序:实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合;
- 指令系统:一台计算机所能执行的各种不同类型指令的总和。
第47页:1.3.2 基本结构
- 1.3.2基本结构
- 微型计算机主要由中央处理器(CPU)、存储器(RAM,ROM)、I/O接口及设备以及总线组成中央处理单元(CPU)存储器(RAM,ROM)I/O接口I/O接口辅助存储器I/O设备
第48页:1.3.2 基本结构(微型计算机组成)
- 1.3.2基本结构
- 微型计算机主要由中央处理器(CPU)
- 存储器(RAM,ROM)
- 总线
- I/O接口
- I/O设备
第49页:1.4 MCS-51基本组成和存储器
- 1.4 MCS-51基本组成和存储器
- 1.4.1 8051单片机的基本组成
- 1.4.2 MCS-51单片机的存储器
- 1.4.3特殊功能寄存器
第50页:1.4.1 8051基本组成
1.4.1 8051单片机的基本组成振荡与定时电路21字节特殊功能寄存器128字节数据寄存器2个16位定时器/计数器CPU存贮器扩展控制并行端口串行端口外部中断信号控制信号地址/数据总线端口I/O线串行输入串行输出时钟源计数信号内部总线内部程序存储器
第51页:1.4.1 8051基本组成(CPU)
- 1.4.1 8051单片机的基本组成
- CPU:单片机的核心,完成运算和控制功能;
- 内部数据存储器:256个RAM单元,存储数据;
- 特殊功能寄存器(SFR):用来对片内各个部件进行管理、控制、监视的控制寄存器和状态寄存器,是特殊的RAM区:80H~FFH;
- 内部程序存储器:用于存储程序、原始数据或表格。
- 并行I/O口:4个8位口(P0~P3),实现数据的输入、输出;
- 串口:一个全双工的串口,实现与其他设备的通信,如PC机;
- 定时器:2个16位定时器(51);3个16位定时器(52);
- 中断:外部中断2个,定时/计数中断2个,串行中断1个(51);外部中断2个,定时/计数中断3个,串行中断1个(52);
- 振荡电路:时钟源。
第52页:1.4.1 8051基本组成
1.4.1 8051单片机的基本组成8031/5189c2051
第53页:1.4.1 8051基本组成(三总线)
1.4.1 8051单片机的基本组成控制总线(CB)地址总线(AB)数据总线(DB)
第54页:1.4.2 MCS-51单片机的存储器
- 1.4.2 MCS-51单片机的存储器
- 内部数据存贮器
- 特殊功能寄存器
- 程序存贮器
- 外部数据存贮器
- 存贮器的数据操作片外片内
第55页:1.4.2 内部数据存贮器
- 1.4.2内部数据存贮器
- 内部数据RAM
- 128/256字节
- 地址范围00H~7FH
- 前32个单元为寄存器区,每8个为一个寄存器组
- 位地址区20H~2FH,可位寻址,位地址范围00H~7FH
第56页:片内数据存储器地址分配
8051片内数据RAM为128/256字节,按用途划分为寄存器区、位地址区与通用RAM数据区。
片内数据存储器区域划分| 区域 | 地址范围 | 说明 |
|---|
| 寄存器区 | 00H~1FH | 前32个单元,每8个单元为一个寄存器组,共4组 |
|---|
| 位地址区 | 20H~2FH | 可位寻址,位地址范围00H~7FH |
|---|
| 通用RAM数据区 | 30H~7FH | 用户数据区,字节寻址 |
|---|
4个工作寄存器组的地址分配如下:
工作寄存器组地址分配| 寄存器组 | 地址范围 |
|---|
| 寄存器0组 | 00H~07H |
|---|
| 寄存器1组 | 08H~0FH |
|---|
| 寄存器2组 | 10H~17H |
|---|
| 寄存器3组 | 18H~1FH |
|---|
第57页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- 21个字节的特殊功能寄存器
- 不连续分布在128字节的SFR空间(80H~FFH)
- SFR空间包含128个位地址空间(80H~FFH)有效位83个,可以用来对11个特殊功能寄存器的某些位作位寻址操作
第58页:特殊功能寄存器功能分类
MCS-51共有21个字节的特殊功能寄存器,不连续分布在128字节的SFR空间(80H~FFH)中;SFR空间包含128个位地址空间,其中有效位83个。
SFR主要功能、分类与名称| 分类 | 寄存器 |
|---|
| 算术运算寄存器 | A、B、PSW |
|---|
| 指针寄存器 | SP、DPTR |
|---|
| 并行I/O口(对应PIO) | P0、P1、P2、P3 |
|---|
| 串行I/O口(对应SIO) | SCON、SBUF、PCON |
|---|
| 定时器/计数器 | TMOD、TCON、TH0、TL0、TH1、TL1 |
|---|
| 中断系统(对应中断控制逻辑) | IE、IP |
|---|
第59页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- [A]:累加器
- 累加器为一个8位寄存器,是最常用的寄存器,功能较多,地位重要。它既可以存放操作数,也可以存放中间结果。
- 大部分的单操作数和许多双操作指令中的一个操作数都是取自累加器A。
- 累加器自身带有零标志Z。累加器的值为零,零标志Z=1;累加器的值不为0,零标志Z=0。
第60页:累加器A与ACC的区别
- 累加器A和特殊功能寄存器ACC的区别与联系
- A和ACC虽然是同一个寄存器,但它们在指令中是有区别的。
- ACC在汇编后的机器指令中有一个操作数是ACC的字节地址E0H,而A则隐含在指令操作码中。
- 所以,在符号指令中,A不可用ACC代替;特殊功能寄存器直接寻址和位名称寻址要用ACC,而不能用A代替。1.4.3特殊功能寄存器
第61页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- [B]:寄存器一般用于乘、除法指令,它与累加器A配合使用。运算前,寄存器B中存放乘数或除数;运算后,B中保存了乘积的高位字节或商的余数部分。此外,B可作为存放中间结果的暂存寄存器使用。
第62页:PSW程序状态字各位定义
PSW:程序状态字寄存器(字节地址D0H),是一个8位标志寄存器,保存指令执行结果的特征信息,供程序查询和判别。
PSW各位定义(字节地址D0H)| 位 | 标志 | 名称 | 含义 |
|---|
| PSW.7 | C | 进位标志位 | 运算结果最高位有进位(加法)或有借位(减法)时C=1,否则C=0 |
|---|
| PSW.6 | AC | 辅助进位(半进位)标志位 | 低4位向高4位有进/借位时AC=1,用于BCD码十进制调整 |
|---|
| PSW.5 | F0 | 用户自定义标志位 | 由用户通过软件置位或清零,反映系统工作状态 |
|---|
| PSW.4 | RS1 | 工作寄存器组选择位(高位) | 与RS0配合选定当前使用的4个工作寄存器组之一 |
|---|
| PSW.3 | RS0 | 工作寄存器组选择位(低位) | 与RS1配合选定当前工作寄存器组 |
|---|
| PSW.2 | OV | 溢出标志位 | OV=C7⊕C6,指示有符号数运算结果是否超出-128~+127范围 |
|---|
| PSW.1 | — | 未定义 | 保留位 |
|---|
| PSW.0 | P | 奇偶标志位 | 累加器A中1的个数为奇数时P=1,否则P=0,用于串行通信奇偶校验 |
|---|
注:原课件文本中PSW.5、PSW.6的标注顺序错位,此处按MCS-51标准PSW位定义还原。
第63页:PSW标志位:AC与F0
辅助进位(或称半进位)标志位AC(PSW.6):它表示两个8位数运算,低4位有无进(借)位的状况。当低4位相加(或相减)时,若D3位向D4位有进位(或借位),则AC=1,否则AC=0。在BCD码运算的十进制调整中要用到该标志。用户自定义标志位F0(PSW.5):用户可根据自己的需要对F0赋予一定的含义,通过软件置位或清零,并根据F0=1或0来决定程序的执行方式,或反映系统某一种工作状态。1.4.3特殊功能寄存器
第64页:1.4.3 特殊功能寄存器
1.4.3特殊功能寄存器工作寄存器组选择位RS1、RS0(PSW.4、PSW.3):可用软件置位或清零,用于选定当前使用的4个工作寄存器组中的某一组。溢出标志位OV(PSW.2):做加法或减法时,由硬件置位或清零,以指示运算结果是否溢出。OV=1反映运算结果超出了累加器的数值范围,以补码形式表示一个有符号数的范围为-128~+127)。进行有符号数的加法时,如最高位、次高位之一有进位,或做减法时,如最高位、次高位之一有借位,OV被置位,即OV的值为最高位和次高位的异或(C7⊕C6)。
第65页:OV标志位与乘除指令
执行乘法指令MUL AB也会影响OV标志,积>255时OV =1,否则OV=0。执行除法指令DIV AB也会影响OV标志,如B中所放除数为0,OV=1,否则OV=0。奇偶标志位P(PSW.0):在执行指令后,单片机根据累加器A中1的个数的奇偶自动给该标志置位或清零。若A中1的个数为奇数,则P=1,否则P=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。1.4.3特殊功能寄存器
第66页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- [PC]:程序计数器
- PC是一个16位的计数器,其内容是将要执行的指令的地址,其寻址范围可达64K。
- 计算机能自动的,一条一条的取出并执行指令,是因为CPU中有一个跟踪地址的电路,该电路就是程序计数器PC。
- 在开始执行时,给PC赋以第一条指令的地址,然后每取一条指令,PC值就自动指向下一条指令的地址,从而实现程序的顺序执行。
- PC本身没有地址,不可寻址,无法对它进行直接读写操作,但可以通过转移,调用和返回等指令改变其内容,实现程序的转移。
- 单片机复位后,从程序存储器的0000H单元开始运行。
第67页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- [SP]:堆栈指针堆栈的概念
- 堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定(栈底),另一端活动(栈顶),只允许数据从活动端进出。
- 类似于堆放货物的方式,堆栈中数据的存取遵循“先进后出”的原则。
- 除只读存储器外,存储器的任何部分都可以作为栈底。而因为栈顶是活动的,所以需要一指示栈顶的位置的指示器,这就是SP(StatePointer)。
第68页:堆栈指针SP与堆栈操作
- MCS-51的堆栈设置在内部的RAM中,所以SP是一个8位的寄存器
- 与80x86不同,MCS-51的栈的伸展方向是从低地址向高地址。
- 堆栈操作时字节操作。
- 将一个字节压入堆栈称为进栈,进栈时SP自动加1,进栈的字节就存放在新增加的那个单元内。
- 将一个字节从栈顶弹出称为出栈,出栈时SP自动减1,弹出的字节是SP让出的那个单元的内容。
- 系统复位后SP的内容为07H1.4.3特殊功能寄存器
第69页:1.4.3 特殊功能寄存器
- 1.4.3特殊功能寄存器
- [DPTR]:寄存器
- DTPR(Data Pointer)是MCS-51中惟一出现在符号指令中的一个16位寄存器。
- DPTR即可按16位寄存器使用,又可分成两个8位的寄存器使用,即:DPH(DPTR的高位字节)和DPL(DPTR)的低位字节。
- DPTR通常做访问外部数据存储器或扩展I/O的间址寄存器,还可以和累加器A一起用作程序存储器的变址寄存器。
第70页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 主电源引脚Vcc和VssVCC(40脚):接+5V电源正端;VSS(20脚):接+5V电源地端。
- 外接晶体引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接。
第71页:1.5 51单片机引脚(振荡方式)
1.5 51单片机引脚说明内部振荡方式外部振荡方式电容C01,C02起稳定振荡频率,快速起振的作用,一般为5~30pF。这种方式所得的时钟信号稳定,实用较多。把外部已有的时钟信号引入单片机,适用于使单片机的时钟与外部信号同步。
第72页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 输入/输出引脚(1) P0口(39~32脚):P0.0~P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
第73页:1.5 51单片机引脚(P0口)
1.5 51单片机引脚说明输入/输出引脚(1) P0口
第74页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 输入/输出引脚(2) P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX
第75页:1.5 51单片机引脚(P1口)
1.5 51单片机引脚说明输入/输出引脚(2) P1口
第76页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 输入/输出引脚(3) P2口(21~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。
第77页:1.5 51单片机引脚(P2口)
1.5 51单片机引脚说明输入/输出引脚(3) P2口
第78页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 输入/输出引脚(4) P3口(10~17脚):P3.0~P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能,P3口的第二功能如下表。
第79页:P3口第二功能表
P3口第二功能表| 引脚 | 第二功能 | 功能说明 |
|---|
| P3.0 | RXD | 串行口接收端 |
|---|
| P3.1 | TXD | 串行口发送端 |
|---|
| P3.2 | INT0 | 外部中断0请求输入端,低电平有效 |
|---|
| P3.3 | INT1 | 外部中断1请求输入端,低电平有效 |
|---|
| P3.4 | T0 | 定时器/计数器0计数脉冲输入端 |
|---|
| P3.5 | T1 | 定时器/计数器1计数脉冲输入端 |
|---|
| P3.6 | WR | 外部数据存储器写选通信号输出端,低电平有效 |
|---|
| P3.7 | RD | 外部数据存储器读选通信号输出端,低电平有效 |
|---|
第80页:1.5 51单片机引脚(P3口)
1.5 51单片机引脚说明输入/输出引脚(4) P3口
第81页:1.5 51单片机引脚
- 1.5 51单片机引脚说明
- 控制线(1) ALE/PROG(30脚):地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;在不访问片外数据存储器期间,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,ALE脉冲会跳空一个,此时作为时钟输出就不妥了。对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。(2) PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不出现。
第82页:1.5 51单片机引脚(控制线)
- 1.5 51单片机引脚说明
- 控制线(3) RST/VPD(9脚):RST即为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10 ms以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
第83页:1.5 51单片机引脚
1.5 51单片机引脚说明经验值C1=10~30uFR1=1kΩ经验值C3=1uFR3=1kΩR4=10kΩ
第84页:1.5 51单片机引脚(控制线)
- 1.5 51单片机引脚说明
- 控制线(4) EA/VPP(31脚):EA为片外程序存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。对于片内含有EPROM的机型,在编程期间,此引脚用作21V编程电源VPP的输入端。综上,MCS-51系列单片机的引脚可归纳为以下两点:(1)单片机功能多,引脚数少,因而许多引脚都具有第二功能。(2)单片机对外呈现3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用为数据总线;由ALE、PSEN、RST、EA与P3口中的INT0、INT1、T0、T1、WR、RD共10个引脚组成控制总线。由于是16位地址线,因此,可使片外存储器的寻址范围达到64 KB。
第85页:1.6 51单片机最小系统
- 1.6 51单片机最小系统
- 单片机最小系统所谓单片机的最小系统,就是指在尽可能少的外部电路的条件下,形成一个可以独立工作的单片机系统。如8051在加上相应的复位和振荡电路后就构成了一个最小系统,而对于8031还需要扩展外部程序存储器才能构成最小系统。
第86页:1.6 51单片机最小系统
1.6 51单片机最小系统
第87页:1.7.1 MCS-51与80C51系列
- 1.7 MCS-51系列单片机
- 1.7.1 MCS-51系列和80C51系列
- 1.7.2 80C51系列单片机命名规则
- 1.7.3 80C51系列选择特性
- 1.7.4常用51单片机兼容机
- 1.7.4其他单片机
第88页:MCS-51系列单片机性能对照表
MCS是Intel公司单片机系列的符号,包含MCS-48/51/96系列,其中MCS-51系列单片机包括51和52两个子系列。
MCS-51系列单片机性能对照表| 子系列 | 型号 | 片内ROM容量 | 片内ROM形式 | 片内RAM | SFR | 定时器 | 中断源 | 并口 | 片外RAM寻址 | 片外ROM寻址 |
|---|
| 51子系列 | 80C31 / 8031 | 0 | 无 | 128B | 21B | 2×16位 | 5 | 4×8位 | 64K | 64K |
|---|
| 51子系列 | 80C51 / 8051 | 4KB | MaskROM | 128B | 21B | 2×16位 | 5 | 4×8位 | 64K | 64K |
|---|
| 51子系列 | 87C51 / 8751 | 4KB | EPROM | 128B | 21B | 2×16位 | 5 | 4×8位 | 64K | 64K |
|---|
| 52子系列 | 80C32 / 8032 | 0 | 无 | 256B | 26B | 3×16位 | 6 | 4×8位 | 64K | 64K |
|---|
| 52子系列 | 80C52 / 8052 | 8KB | MaskROM | 256B | 26B | 3×16位 | 6 | 4×8位 | 64K | 64K |
|---|
| 52子系列 | 87C52 / 8752 | 8KB | EPROM | 256B | 26B | 3×16位 | 6 | 4×8位 | 64K | 64K |
|---|
注:原课件为线性化文本,各字段数值按MCS-51标准配置整理还原,请对照原图核对。
第89页:1.7.2 80C51命名规则
- 1.7.2 80C51系列单片机的命名规则
- Intel80C51系列产品命名规则i80C51程序存储器选择31-无ROM 51-4KROM 52-8KROM54-16KROM 58-32KROMCHMOS工艺程序存储器形式选择0-Mask,程序代码由芯片厂商一次性写入7-EPROM,紫外线可擦除ROM8(不变)Intel公司
第90页:1.7.2 80C51命名规则
- 1.7.2 80C51系列单片机的命名规则
- Atmel80C51系列产品命名规则AT89LV52程序存储器选择51-4KROM52-8KROMC-CHMOS工艺LV-低工作电压2.7V~6VS-含有串行下载Flash存储器程序存储器形式选择9-Flash EEPROM8(不变)Atmel公司
第91页:1.7.2 80C51命名规则
- 1.7.2 80C51系列单片机的命名规则
- Philips 80C51系列产品命名规则P87C51程序存储器选择51-4KROM52-8KROMCHMOS程序存储器形式选择7-EPROM/OTP ROM8(不变)Philips公司
第92页:1.7.3 80C51系列选择特性
- 1.7.3 80C51系列选择特性
- 程序存储器
- 数据存储器
- 功耗:很多公司的系列产品中都有低电压产品,如Atmel的AT89LV52的工作电压范围为2.7~6V。
- 体积:在应用系统的应用空间有限时,可选择相应的PLCC和QFP封装的单片机
- 其他:新一代高性能的80C51增加了A/D,脉宽调制输出(PWM),第二串口,串行扩展总线(I2C),现场总线(CAN)等等新功能。
第93页:1.7.4 51兼容机简介
- 1.7.4常用51单片机兼容机简介目前,在国内市场上,Intel公司生产的MCS-51系列单片机已经比较少见,取而代之的是其他公司生产的MCS-51系列兼容单片机。这些公司主要有美国的Dallas、AMD、Atmel、ADI公司,荷兰的Philips公司,德国的Siemens公司,日本的NEC公司,韩国的LG公司以及我国台湾省的华邦(Winbond)公司等。
- Intel公司MCS-51系列单片机
- Atmel公司MCS-51系列兼容单片机
- Philips公司MCS-51系列兼容单片机
- Cygnal集成产品公司的MCS-51系列兼容单片机
第94页:1.7.4 Dallas与Winbond
- 1.7.4常用51单片机兼容机简介
- Dallas公司MCS-51系列兼容单片机1.高速单片机2.安全单片机
- Winbond公司MCS-51系列兼容单片机台湾省Winbond(华邦)公司是亚洲半导体公司的杰出代表,在国际上也享有较高的声誉。其生产的MCS-51系列兼容单片机独具特色。其MCS-51系列兼容单片机分为:标准系列,宽电压系列,Turbo-51系列,工业温度范围系列,监控专用单片机。
第95页:1.7.5 其他单片机
- 1.7.5其他单片机
- Microchip公司的PIC系列单片机具有实用、低价、易学、省电、高速和体积小等特点。该系列单片机不是单纯的功能堆积,而是以多型号来满足不同层次的需要,并可提供低价的OTP芯片。另外,该系列单片机还具有低功耗睡眠功能、掉电复位锁定、上电复位电路、看门狗电路等功能,而且外围器件少、占用空间小;成本低,保密技术也十分可靠,可最大限度地保护开发者的利益。因此,在工业控制、仪器仪表、计算机、家电等诸多领域具有极其广阔的发展前景。
第96页:1.7.5 PIC系列单片机
- 1.7.5其他单片机例
- Microchip公司的PIC16C73微控制器所具有的优越性能主要归功于它的精简指令集(RISC)和所采用的哈佛(Harvard)结构,它具有分离的程序储器空间(12位宽指令)和数据存储器空间(8位宽数据)。同时可运用两级流水线指令进行取数和执行,除了跳转指令需要两个周期外,其余所有的指令都可在单周期内执行。
第97页:课程结束致谢页
本章内容到此结束。封面与结束页之间的各页依次讲解微型计算机基础知识、MCS-51基本组成与引脚功能。