单片机课件全_第1页
单片机课件全_第2页
单片机课件全_第3页
单片机课件全_第4页
单片机课件全_第5页
已阅读5页,还剩294页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCS-51单片机

原理及应用

第一章微型计算机系统基本知识§1-1概述

§1-2微型计算机基础进入§1-3计算机中的数和编码进入

第一章微型计算机系统基本知识§1-1概述一、电子计算机以存储程序的方式、自动地进行算术和逻辑运算的数字电子装置称电子计算机。

1、历史

1946年2月15日,世界上第一台数字式电子计算机是在美国费城宾夕法尼亚大学莫尔学院研制成功并运行,名为(ENIAC)。1955年10月切断电源。从公元10世纪中国古代的算盘到现代计算机的问世经历了一个漫长的阶段。2、发展

ENIAC:5千次/秒,18000个电子管

电子管式→晶体管式→中小规模集成电路→↑1946↑1958↑1965→大、超大规模集成电路(微机时代)四代。

↑1971Intel4004:6万次/秒,2300只/3×4㎜23、基本结构

引例:

(1)硬件:基本组成:运算器、控制器、存储器、输入/输出设备及接口。

—冯·诺依曼结构中心思想是存储程序原则:

指令和数据一起以二进制的形式存放在存储器中。

由计算机之父美籍匈牙利数学家冯·诺依曼1945年3月提出,标志着电子计算机时代的真正开始。结构如图1-1所示:(2)软件

是计算机上运行的程序,是计算机系统中的逻辑部件而不是物理部件,是人的思维结果,它总是要通过某种物理介质来存储和表示的。其分类如下:二、微机1、微处理器、微型计算机、微型计算机系统(1)中央处理器Central

Processing

Unit-CPU

负责取指,执指,实现操作的核心部件,包括运算器和控制器两大组成部分。如果中央处理器的电路集成在一片或少数几片大规模集成电路芯片上,就成为微处理器(MPU)。(2)微型计算机、微型计算机系统以微处理器为核心,加配存储部件和输入输出部件而成为微型计算机。

以微型计算机为基础,加上外围设备、电源、系统软件等就构成微型计算机系统微机系统的组成可小结如下:2、微型计算机的分类

*独立使用式微机:PC机

*嵌入式微机:

(1)单片机:CPU、存储器、I/O接口等集成在一块硅片上

(2)单板机:CPU、存储器、I/O接口等装配在一块电路板

(3)多板机:CPU、存储器、I/O接口等分做在多块电路板上3、微型计算机的发展

1971年,美国Intel公司研制出了Intel4004微处理器芯片,以它为核心的MCS-4计算机,由该公司年轻工程师马西安·霍夫研制,标志了世界上第一台微机的诞生,至今,已经历了五代:第一代:1971~1973,4位和低档8位机,典型代表

Intel4004,Intel8008。第二代:1974~1978,中档8位机,典型代表

Intel8080,MC6800,ZILOGZ80APPLE6502等。第三代:1978~1981,16位机,1981年,IBM公司推出了以Intel8088为CPU的PC个人电脑。第四代:1981~1992,32位微机,如

Intel80386,MotorolaMC68020第五代:1993~至今,64位微机,奔腾微处理器芯片三、单片机概述

单片微型计算机:Single-ChipMicrocomputerOne-ChipMicrocomputer

在一片芯片上集成CPU、存储器、I/O接口等组成一台完整的微型计算机。

单片机作为工业控制和数据处理的计算机,也被称为“微控制器”、“微处理器”(Micro-controller,Micro-processor)。主要有:4位、8位、16位、32位等1、单片机发展情况:从1974年12月,仙童(Fairchild)公司首先推出8位单片机F8,采用:

双片形式F8(8位CPU+64RAM+2个并行I/O口)+3851(1KROM+定时器/计数器+2个并行I/O)。

至今经历四代:

第一代:1974~78,典型代表如Intel公司的MCS-48型

8位单片机,采用8位CPU、2个I/O口、8位定时器/计数器、64RAM/1KROM、简单中断,寻址小于4K,且无串行口。

第二代:1978~83,高档8位单片机,如MCS-51,

MC6801,Zilog公司的Z8等。增加功能:串行I/O、多级中断、16定时/计数器、片内RAM/ROM增大,寻址64K,片内带A/D转换器接口。第三代:1983~90年代初,16位单片机出现,如MCS-96系列的8096、8098芯片。增加性能:16位

CPU,RAM/ROM增大,中断能力增强、A/D、

HSIO等第四代:90年代至今,高档16位产品和32位产品的出现,如80196,MC8300等,性能、速度大大提高。2、MCS-51单片机属于高档单片机,是Intel公司的8位系列单片机,包括51和52两个子系列。两者的区别在于52子系列片内ROM、RAM的容量翻倍,定时计数器增加到3个。单片机的供货状态:片内无ROM型:单片机片内无ROM,价格便宜,使用时必须另外配置程序存储器EPROM,实际上已成为8751。如8031、8032、80C31片内ROM型:单片机片内带有掩膜ROM,用户无法更改其程序。如8051、8052,用于大规模专用产品。片内EPROM型:单片机片内带有EPROM,用户通过高压脉冲可写入程序,但价格昂贵,使用较少。如8751、87523、单片机特点和应用(略)§1-2微型计算机基础返回一、微机的三总线结构

总线:微机系统中各部件和模块之间用于传送信息的一组公用导线。一般包括,数据总线、地址总线和控制总线。地址:内存由许多存储单元组成,每个存储单元(字节)有一个用于区分的编号,称为地址,一般用十六进制数表示。

微机的总线结构1、数据总线(DB):

传送数据,双向,CPU的位数和外部数据总线的位数一致。而数据可能是指令代码、状态量或控制量,也可能是真正的数据。2、地址总线(AB):

传送CPU发出的地址信息,单向,宽度(线数目)决定了CPU的可寻址范围。例如:2根地址线,可寻址22=4个字节单元;

16根地址线,可寻址216=64K字节单元;3、控制总线(CB):

传送使微机协调工作的定时、控制信号,双向,但对于每一条具体的控制线,都有固定的功能。控制线数目受芯片引脚数量的限制。8位微机的DB总是8位,AB总是16位,而CB的数目则随机型不同而不同。

二、微处理器的基本结构微处理器(CPU)是微型计算机的核心,内部采用单总线结构,由运算器和控制器两大部分组成。微处理器典型结构如下图所示。

1、运算器(1)算术逻辑单元ALU(arithmeticlogicunit)

是运算器的主要组成部分,是一个纯粹的运算部件,没有寄存功能。

(2)累加器A(Accumulator)

是CPU中使用最忙的关键寄存器。ALU进行运算时一个操作数必需来自累加器,同时也是运算结果的寄存场所。(3)标志寄存器F(Flag)存放微机执行一条指令后所处状态的信息。不同的计算机,标志有所不同。常用的标志有:C、AC、OV、P等。(4)暂存寄存器TR(tempregister)

用来存放参加ALU运算的另一个操作数,该操作数必须先暂存在TR中,以免数据发生冲突。(5)地址和数据缓冲器(ABuffer、DBuffer)协调CPU与存储器、I/O接口电路之间在运行速度、工作周期等方面必然存在的差异。(6)寄存器阵列(RA)(registerarray)

包括通用寄存器和专用寄存器两种。通用寄存器组:作为CPU内部的小容量高速存储器,用来存放一些中间数据,以减少CPU

对存储器的频繁访问

专用寄存器组:PC、SP、F、AB、DB等。2、控制器完成指令译码,并发出各个操作的控制信号,主要包括如下部件:(1)程序计数器PC(programcounter)

存放要读取的指令所在地址的专用寄存器。具有计数(加1)和接受转移地址的二种功能。(2)指令寄存器IR(instructionregister)

存放CPU从ROM中取出的正要被执行的指令,使整个分析执行的过程,一直在该指令的控制下,而指令的操作码送ID,指令中的操作数,一般为参加运算的地址,被送到地址缓冲寄存器。(3)指令译码器ID(instructiondecoded)

接收IR送来的操作码并译码,生成与指令相应的特定操作的启动信息。(4)定时控制逻辑PLA(programmablelogicarray)

又称可编程逻辑阵列。ID送出的电平信号与外部时钟脉冲在该电路中组合,形成各种内部CON信号和外部控制信号。它完成指令的执行有两种实现方式:(a)微程序控制:微存储元中保持微码,每一个微码对应于一个最基本的微操作,又称微指令。指令译码以后,通过执行由这些微码确定的若干个微操作,即可完成某条指令的执行。(b)逻辑硬布线控制:指令译码后,控制器通过不同的逻辑门的组合,发出不同序列的控制时序信号,直接去执行一条指令中的各个操作。3、CPU执行指令的过程一条指令的执行过程包括取指和执指两个阶段。指令执行前,首先要一条指令的地址送到程序计数器PC中,然后开始执行指令。具体过程如下:例如:执行指令MOVA,#05H

机器码为:第一单元74H(指令码);第二单元05H(数据码)

三、

存储器及其读写原理1、有关常用术语(1)位(bit)、字节(Byte)、字(Word)、双字(DW)。

1B=8bit;1KB=1024B;1MB=1024KB;1GB=1024MB(2)字长:计算机每个字所包含的二进制数码的位数。通常国际上以微处理器芯片外部数据总线的位数来确定计算机的字长。(3)内存:存放当前运算所需的程序和数据,容量较小、存取速度快,设在微机内部。多数为MOS电路组成的半导体存储器,如RAM、ROM、EPROM、EEPROM。(4)外存:存放大量暂时不直接参与运算的程序和数据,可成批转入内存。在微机中,一般为磁盘、光盘等。2、存储器结构计算机有两种存储结构:哈佛结构:程序存储器和数据存储器分开。普林斯顿结构:程序存储器和数据存储器合并。单片机为哈佛结构

RAM存储器由三部分:存储体、地址译码器和控制电路。ROM结构类似,区别在于只能作读选通。

注意:(1)对于8位地址,可表示256个单元;(2)每个单元可存放8位二进制数;(3)注意单元内容与地址的区别;3、存储器读写原理

存储器工作过程如下:CPU→地址→地址译码器→选中单元→由CPU发出的“读”或“写”命令。例如:读操作:读02H单元内容

1)02H由AB→地址译码

→找到02号单元;

2)CPU发出“读”信号;

3)(02H)=A3H(读出的数据)

→D-BUS。

4)A3H→指定寄存器

写操作:数据#F7H→03H单元中;

1)03H由AB→地址译码

→找到03号单元;

2)CPU将F7H送到D-BUS上

3)CPU发出“写”信号;

4)#F7H→(03H)

四、输入/输出设备及其接口I/O设备:简称外设,功能是为微机提供具体的输入输出手段。标准的I/O设备系指键盘和显示器。I/O接口:

由于各种外设的工作速度、驱动方式差别很大,无法与CPU直接匹配,而需要一个接口电路来充当它们与CPU间的桥梁,起转换、协调作用。§1-3计算机中数和编码返回一、数制及其转换1、进位计数制的概念使用有限个基本数码来表示数据,按进位的方法进行计数称为进位计数制。包含两大要素:基数和位权

基数:用来表示数据基本数码的个数J,≧此数后必须进位。

位权:数码在表示数据时所处的数位所具有的固定值Ji。简称“权”。特点:1)基数为J,用0,1,…,J-1来表示数据,逢J进一

2)各位的权为Ji

任意一个J进制数的表示方法为:其中ki=0,1,…,J-1m---小数部分位数,n---整数部分位数,i---正整数2、计算机中常用进制(1)十进制(Decimal)表示法特点:①基数为10,用0,1,…,9来表示数据,逢十进一;

②各位的权为10i。任意一个十进制数的表示方法为:其中ki=0,1,2,3,4,5,6,7,8,9

例如(273.45)D=2×102+7×101+3×100+4×10-1+5×10-2(2)二进制(Binary)表示法特点:①基数为2,用0,1两个数码来表示数据,逢二进一

②各位的权为2i。任意一个二进制数的表示方法为:其中ki=0,1

例如(1011.101)B=1×23+0×22+1×101+1×20+1×2-1+0×2-2+1×2-3(3)十六进制(Hexadecimal)表示法

特点:①基数为16,用0~9和字母A,B,C,D,E,F

(对应十进制10~15)来表示数据,逢十六进一;

②各位的权为16i。任意一个十六进制数的表示方法为其中ki=0~F例如:(55)H=5×161+5×160(A87.E79)H=A×162+8×161+7×160+E×16-1+7×16-2+9×16-3

3、进制间的转换(1)J进制转换为十进制按定义:只需按权展开即可。(2)十进制转换为J进制

①整数部分的转换把十进制的整数不断除以所需要的基数J,直至商为零,取其余数,就能转换成以J为基数的数,称为除基取余法。

②小数部分的转换要将一个十进制小数转换成J进制小数时,可不断将十进制小数部分乘以J,并取整,直至小数部分为零为止。称为乘基取整法。

例如:(25.3125)D=(11001.0101)B

(116.84375)D=(74.DB)H

过程如下:4、二进制与十六进制数的相互转换由于二进制的基数是2,而十六进制的基数为16=24,即4位二进制数正好对应一位十六进制数,因此二者之间的转换十分方便。使用8421权例如:(B6.8)H=1011

0110.1000=(10110110.1)B

(11011.011)B=0001

1011.0110=(1B.6)H注意:(1)以小数点为界,朝左右划分,整数部分不足4位高位加0,小数部分不足4位低位加0。(2)二进制与八进制之间也有类似的情况(23=8)。二、二进制数的运算1、算术运算(1)运算规则加法:0+0=0,0+1=1,1+1=0进位1,1+1+1=1进位1;减法:0-0=0,1-0=1,0-1=1借位1,1-1=0;乘法:0×0=0,0×1=0,1×0=0, 1×1=1;(2)无符号数的运算

①加法:按照加法运算规则,从最低位开始逐位相加。两个

4位的二进制数相加,其“和”可能超过4位,从而产生进位。

②减法:按照减法运算规则,从最低位开始逐位相减,与十进制数相减类似,不够减时,应向高位借位。记住,二进制的10相当于十进制的2。③乘法:乘法运算可看作是被乘数自身多次移位相加,相加的次数由乘数的数值决定。④除法:除法是乘法的逆运算,它是确定一个数可以从另一个数中减去多少次的过程。例如:2、基本逻辑运算常用有“与”、“或”、“非”、“异或”等逻辑运算。(1)“与”:AND,“有0出0,全1出1”,C=A·B,运算规则:0·0=0,0·1=0,1·0=0,1·1=1(2)“或”:OR,“有1出1,全0出0”,C=A+B,运算规则:0+0=0,0+1=1,1+0=1,1+1=1(3)“非”:NOT,“求反”,C=运算规则:(4)“异或”:XOR,“异则1,同则0”,C=A⊕B,运算规则:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0

例如:DAH、99H两个数的四种运算方法如下:

与:DAH·99H=98H;或:DAH+99H=DBH;异或:DAH+99H=43H; 如图:三、符号数的表示法

计算机只能识别0、1两种信息,那么“符号数”在计算机中如何表示呢?(8位二进制数)

比如RAM中某单元的内容是EFH→11101111B,代表十进制数多少呢?又如,+17,-17计算机是如何识别的呢?试问:+17又是如何表示呢?(→00010001B)

1、机器数与真值符号的数码化:将符号用“0正1负”表示,并以二进制数的最高位(D7位)作为符号位。例如:(原码)+91=01011011=5BH;

-91=11011011=-5BH;机器数:数据在计算机中连同数码化的符号位一起表示的编码数。真值:把机器数实际代表的数称为机器数的真值。

2、原码表示法

D7位作为符号位(0正1负),D6~D0为原来的二进制数值位。例如: (+55)原=00110111

(-55)原=10110111

特点:

1)8位二进制数表示的范围:-127~+127;

2)(+0)原=00000000B,(—0)原=10000000B不相;

3)加、减运算困难。3、反码表示法

正数的反码=正数的原码负数的反码=相应正数的原码按位取反例如:(+0)反

=00000000;(+127)反=01111111

(-0)反=11111111;(-127)反=10000000特点:1)范围-127~+127;

2)+0、-0不相等;

3)求真值时,若D7=1,则按位取反。4、计算机内符号数的补码表示法(1)引例一:钟表调时如图:10点→6点,可以逆时针拨,也可顺时针拨:逆拨:10–4=6(减)

顺拨:10+8=18=12+6=6(加)在顺拨中,12可自然丢失,称为模;而8被称为是–4的补码。

显然钟表采用十二进制,系统所能表示的最大量程为12,称之为模(基)。

∵8=12–4=12+(–4)

∴(–4)补=12–4=12+(–4)=8

即:(X)补=模+X(2)二进制补码的计算方法

正数的补码=正数的原码负数的补码=反码加1(相应正数的原码按位取反,再加1)例如:(-127)补

=10000001(-1)补

=11111111

特点:

1)补码的符号位作为数值的一部分,可以参加运算;

2)0只有一种表示,即+0=-0=00000000;3)表示范围:-128~+127(80H~7FH);

4)比原码多一种组合,即10000000(-128)其最高位“1” 既表示符号,又表示数值;

5)求真值时,若D7=1,则通过对补码再求补,添“-”而得;作用:将减法运算转换为加法运算。

练习:

1)十进制数±8,±18,±113的补码(负数F8;EEH;8FH),

2)补码数1BH,C9H的真值 (+27;-55)

3)5–8=00000101–00001000=00000101+11111000=FDH 4)8位二进制数的模?(256=10000,0000=11111111+1)

补码的进一步解释:引例二:十进制数(以二位十进制数举例)70-40=30引例三:二进制数(以8位二进制数举例)

40H+(-32H)补=40H+CEH=10EH=256+0EH=0EH5、符号数的加、减运算(P21补码形式)(1)加法正数+正数、负数+负数:可能产生溢出(超出-128~+127)。无溢出时结果为正确。正数+负数:不会溢出,结果总是正确。(2)减法 减去一个数,等与加上一个负数,补码形式下成为加法,因此,相当于正数+负数,结果总是正确,也不会有溢出。(3)进位与溢出数的进位:指运算结果最高位D7向更高位有进位或借位,称为进位(CY)。数的溢出:运算结果超出了数的表示范围(+127~- 128)时,称为溢出(OV)。溢出的判断方法:看有没有破坏符号位,即观察CY⊕CS,异或结果为“1”时,OV位置1,即溢出。四、常用编码计算机中表示的数、字母、符号等都以二进制数表示的。常用编码有以下几种:1、BCD码(BinaryCodeDecimal)表示法二—十进制数(BCD):用4位二进制数表示一个十进制数。因共有24=16种组合状态,故可选其中十种编码来表示0~9十个数字,不同的选法不同相应编码方案。分有权码和无权码两种:

BCD码:有权码:8421、2421、5211、4311等无权码:余3码、格雷码等(1)8421BCD码

4位二进制码的权分别为8、4、2、1码,是一种最常用的编码。特点:

①0~9,由四位二进制数(0000~1001)表示;

②逢“十”进一;

③需DA调整,即加法运算和数(结果)大于9时,需加6修整。是否调整有DAA判别。例如:(1001000101110010)BCD=9172;

35=(00110101)BCD例如:求BCD码48+69=?117 01001000 +01101001 10110001 + 01100110加6修正

100010111

低4位向高4位进位,表明低位和大于9,需加6修正,而高位由于获得进位而出现非法码,因此也需要加6修正,修正后,结果为117,正确。思考:BCD码减法,如何修正?(求减数对9A的补码)(2)余3码在8421码的基础上,将每个代码加0011而形成。特点:每个十进制数等于它减3,而且运算规则简单。是:0011,0100,0101,0111,1000,1001,1010,1011,1100

2、ASCII码AmericanStandardCodeforInformationInterchange(美国标准信息交换码)在计算机中,除要处理大量的数据信息外,还需处理一些字母、符号,它们也要用二进制编码来表示。目前,普遍采用的ASCII码用7位二进制编码来表示数符。共有27=128种组合状态。它们是

52大小写英文字母;

10个十进制数;

7个标点符号;

9个运算符号;

50个其他符号。

§2-1MCS-51单片机结构及组成一、系统资源及主要性能特点

1、系统资源

MCS-51单片机是Intel公司1980推出的高档8位单片机,采用40脚双列直插封装或44脚方形封装,51、52系列功能兼容。

8031内包括:

1个8位CPU;

128个字节RAM;

21个特殊功能寄存器;

4个8位并行I/O口;

1个全双工串行口(二根线);

2个16位定时计数器器;

1个片内振荡器和时钟电路;

5个中断源2个中断优先级;

8051/8751:带有4KBROM/EPROM 52子系列的RAM/ROM容量为:256B/8KB2、性能特点单片机为哈佛结构的计算机,除上述基本资源外,还具有如下特点: 外部程序存储器:可扩展到64KB; 外部数据存储器:可扩展到64KB; 堆栈:最深128B/256B; 输入/输出口线:32根; 寄存器区:划出RAM中32B作为通用寄存器; 具有位寻址功能; 单一“+5V”电源; 系统时钟1~12MHz,常用12MHz、11.0592MHz和6MHz。二、MCS-51单片机基本结构1、内部结构框图结构简图如图2-1所示包括:CPU、存储器(ROM、RAM)、I/O接口等计算机的基本组成。2、外部引脚共40个引脚,大致可分为四类,其逻辑符号如图2-2所示。

1)电源引脚VCC和VSS VCC:40脚,电源端,+5V VSS:20脚,接地端(GND)

2)时钟电路引脚

XTAL1:19脚,外接晶振输入引脚。

XTAL2:18脚,外接晶振输出引脚。

3)控制线引脚 共4根,其中3根为双功能

①RST/VPD:9脚,复位/备用电源。

RST---通过外接复位电路实现上电复位或按键复位。

VPD---可外接备用电源,在VCC掉电时向RAM供电。 ②/VPP

:31脚,内外ROM的选择/EPROM编程电源。

=0:访问外部ROM;

=1:访问内部ROM;

PC值超过0FFFH(4KB)时,自动转向外ROM。

VPP---在8751片内EPROM编程期间,为21V编程电源输入端。

③ALE/

:30脚,地址锁存允许/编程脉冲。ALE---访问外ROM或RAM时,用来驱动地址锁存器锁存P0口分时送出的低8位地址(下降沿有效)。

不访问外存储器时,该端以1/6时钟频率输出正脉冲,可用作为外部时钟。带8个LS型TTL门电路。

---8751片内EPROM编程期间,此引脚输入编程脉冲。

④:29脚,读外部ROM选通信号,即该脚有效时(上升沿),外ROM允许输出。每个机器周期2次有效。从内部ROM取指时不产生。可带8个LS型TTL门电路。4)I/O引脚

P0口:P0.0~P0.7,39~32脚,外接存储器时作地址/数据分时使用口线;不接外部存储器时,可用作为8位准双向

I/O口。

P1口:P1.0~P1.7,1~8脚,8位准双向I/O口。

P2口:P2.0~P2.7,21~28脚,8位准双向I/O口。外接存储器时 作为高8位地址总线。

P3口:P3.0~P3.7,10~17脚,8位准双向I/O口,出于芯片引脚数的限制,P3口具有第二输出、输入功能。三、微处理器(CPU)(一)运算器组成:ALU、TMP1、TMP2、A、B、PSW、DAA和布尔处理机等。

DAA:BCD码十进制修正,由专用电路实现。

布尔处理机:进位位CY,被称作“位累加器”,可在任何可寻址的位与CY间进行逻辑运算操作。与通用CPU相比,增加了暂存寄存器和B寄存器

(二)控制器组成:PC、SP、DPTR、IR、ID、PLA等

1、时钟电路 (1)振荡源(oscillation)

MCS-51的HMOS芯片内部时钟电路的振荡源有两种方式提供,即内部自激振荡方式、外部振荡脉冲源方式。(1)振荡源(oscillation)内部方式在XTAL1、XTAL2跨接定时元件和两个电容就构成了自激振荡器。如图2-3.1所示。

C1、C2取5~30PF,起微调和稳定作用。 晶振频率:fosc=1.2~12MHZ

常用频率为6、12、11.0592MHz。外部方式外部振荡脉冲信号直接由XTAL2端输入, 此时,XTAL1应接地,而片内振荡电路不 起作用,如图2-3.2所示。 常用于多块8051同时工作,以便同步,要 求信号频率低于12MHz。(2)时序振荡脉冲并不直接使用,由XTAL2端送往内部时钟电路: 经过2分频,向CPU提供2相时钟信号P1和P2; 再经3分频,产生ALE时序; 经过12分频,成为机器周期信号,如图2-3.3所示。需要指出的是,CPU的运算操作在P1期间,数据传送在P2期间。时钟周期:振荡器输出的时钟脉冲频率的倒数。为单 片机中最小、最基本的时间单位。状态周期:振荡信号经2分频后获得的信号周期,称S, 显然,S为时钟周期的2倍。机器周期:12个时钟周期为一个机器周期,对应计算 机执行一个基本操作所需的时间。指令周期:执行一条指令所需的时间,至少包含一个 机器周期。指令字节:指令占用存储空间的字节数,有单字节、 双字节、三字节三类。当时钟频率为12MHz和6MHz时,时钟周期分别为1/12us和1/6us,机器周期分别为1us和2us。ALE时序:地址锁存信号,每个机器周期2次有效,分别在S1、

S4状态。每次出现,CPU进行一次取指操作。

2、复位电路

MCS-51单片机的复位信号,高电平有效。电路结构如图2-4,RST/VPD引脚至少保持2个机器周期的高电平,才能复位。(1)复位工作状态 复位时,各SFR寄存器的状态为: (PC)=0000H; (SP)=07H; (P0~P3)=FFH; 其余SFR寄存器内容均为0;

RAM的内容保持不变; 外部引脚,ALE=0,=1。(2)复位电路复位方式有上电自动复位、按键手动复位两种。如图2-4所示。在按键手动电平复位电路中,具有上电和按键双重功能。3、指针程序计数器PC 16位计数器,指向程序存储器中被执行的指令所在的地址。本身没有地址,在物理上独立。寻址范围0000~FFFFH的64KB空间。数据指针DPTR

16位地址指针,可寻址范围0000~FFFFH的64KB空间,可指向程序、数据存储器。堆栈指针SP 8位地址寄存器,SP用来管理堆栈。它指向内部RAM的一个存储单元,且总是指向栈顶单元。

MCS-51的堆栈是内部RAM中的一个部分,符合“先进后出、后进先出”原则。四、存储器

MCS-51的程序存储器与数据存储器是分开的,地址空间重迭,最大可扩展到64KB。1、程序存储器ROM(1)8031内部无程序存储器由于8031无片内程序存储器,需外接,因此,端必须外接低电平,如图2-6所示。(2)8051、8751内部有4KBROM/EPROM=0,使用外部程序存储器;

=1,使用内部程序存储器4KB空间,当PC的值超过4KB

范围时,自动转向外部程序存储器。2、数据存储器RAM(1)内部RAM中低128B,00~7FH;(2)外部RAM,可扩至64KB,0000~FFFFH五、并行输入/输出口

MCS-51单片机有4个8位并行I/O口,P0~P3,共32根口线。每个端口都包括:锁存器(即SFR:P0-P3)、输出驱动器、两个三态缓冲器以及控制电路。结构如下图所示。1、P1口(90H)特点:(1)准双向口:作为I/O输入时,口锁存器必须置“1”,使T截止,输入信号通过“读引脚”三态缓冲器进入内部总线。(2)内部有上拉电阻(20KΩ~40KΩ);(3)CPU读P1口的二种情况:

①读P1口的锁存器状态值:“读─改─写”指令。例ANLP1,#0FH;

②读P1口的引脚(外部输入)。例MOVA,P1;2、P3口(B0H)特点:(1)准双向口:条件为第二功能输出端常“1”,与门开锁;(2)第二功能口:作为第二功能口使用时,(P3)=FFH;某位作为第二功能输入时,第二功能输出也必须置“1”。

第二功能输出:

P3.0—TXD,串行输出口;

P3.6—,外部数据存储器写选通信号

P3.7—,外部数据存储器读选通信号 第二功能输入:

P3.1—RXD,串行输入口;

P3.2—,外部中断输入0;

P3.3—,外部中断输入1;

P3.4—T0,外部计数输入0 P3.5—T1,外部计数输入1;3、P2口(A0H)特点:(1)控制端高电平时,作为高8位地址输出口。(2)控制端低电平时,最小系统(8051、8751)作准双向口。P2口结构4、P0口(80H)特点:(1)控制端高电平时,作为低8位地址和8位数据分时使用口,供扩展时使用。(2)控制端低电平时,T1截止,使T2漏极开路,输出“1”时须外接上拉电阻,最小系统(8051、8751)作准双向。P0口结构注意:P0口作地址/数据总线输出时,通过反相器、与门工作。P0口作外部数据输入时,CPU使T1、T2均截止,引脚浮空, 第三态,数据经“读引脚”输入缓冲器进入内部总 线----是真正的双向口。端口小结:(1)系统总线:

地址总线(16位):P0(地址低8位)、P2口(地址高8位)数据总线(8位):P0口(地址/数据分时使用);

控制总线(6根):P3口的第二功能、和9、29、30、31脚;(2)供用户使用的端口:P1口、部分未作第二功能的P3口;(3)P0口作地址/数据时,是真正的双向口,三态,负载能力 为8个LSTTL电路;P1~P3是准双向口,负载能力 为4个LSTTL电路。(4)P0~P3在用作输入之前必须先写“1”,即: (P0)=FFH~(P3)=FFH。六、MCS-51单片机最小应用系统结构1、8751/8051最小应用系统 外接时钟电路和复位电路,即构成应用系统,如图2-6.1。特点:1)不扩展外ROM、外RAM,接高电平,P0~P3口都可用 作I/O口;2)128BRAM、4KBROM,容量有限;3)开发时、应用时P0、P2口的环境差异较大;4)8051系统应用软件需厂家置入,一般用作为大批量产品。2、8031最小应用系统 外接时钟电路和复位电路,需外扩一片程序存储器,一般为EPROM,构成应用系统,如图2-6.2。特点:1)P0、P2口只能作总线用,剩下P1、P3口作I/O口。2)接地,ALE、作为地址锁存和读ROM信号。§2-2MCS-51单片机存储器组织

MCS-51存储器可分为五类:程序存储器、内部数据存储器、特殊功能存储器、位寻址区、外部扩展的数据存储器和扩展I/O口。如图2-7所示。一、程序存储器

1、程序存储器作用及寻址范围

作用:存放指令(程序)的存储器,用PC作地址指针。 寻址范围:0000~FFFFH,共64KB;片内、片外统一编址。 片内:PC=0000~0FFFH; 片外:PC=1000~FFFFH;

2、ROM低端的几个特殊入口地址

0000H:CPU开始执行指令时的第一个取指单元,每次执行时 PC的内容总是0000H;

0003H~002B:中断专用固定入口地址(系统规定); 一般:我们总是从ROM的0030H单元开始存放用户指令。二、内部数据存储器

字节地址:00~7FH;有128个8位单元字节。按功能划分为三个部分:

1、工作寄存器区:00~1FH(1)共分4个区,00~07,08~0F,10~17,18~1F;(2)每区有8个工作寄存器:R0~R7;(3)当前工作寄存器区:由PSW中的第三、第四位选择,具有快速保护现场数据的作用,也可作为一般的数据缓冲器。PSW4(RS1)PSW3(RS0)当前区字节地址工作寄存器

0 0 0区00~07H (R0~R7)

0 1 1区08~0FH (R0~R7)

1 0 2区10~17H (R0~R7)

1 1 3区18~1FH (R0~R7)2、位寻址区:20H~2FH

共16个字节,16×8=128个位,位地址:00~7FH。

51系列整个位地址空间为:00~FFH,共211位。1)00~7FH为片内RAM中20~2FH的16个字节单元中的128个位。2)80~FFH中11个SFR的可寻址位,83位。它们是:

A、B、PSW、P0~P3、TCON、SCON、IE、IP52系列的SFR可寻址为93位,共221位。3、数据缓冲区:30H~7FH(1)作为通用的按字节操作的数据缓冲区。(2)常开辟为堆栈区。 堆栈主要为子程序和中断操作而设立,是一种数据结构,它只允许在其一端进行数据的插入和删除操作,又称为入栈和出栈,MCS-51的堆栈是向上生长型的。堆栈的特点:

①是一个符合“先进后出、后进先出”的RAM区域

②SP总是指向堆栈的顶部(保存有数据);

③堆栈可以设在内部RAM中的任意区域,一般开辟在30~7FH中。堆栈的功能:

保护断点----保护从主程序转向子程序、中断时的断点,发生转移时自动完成。

保护现场----对子程序、中断程序中要用到的、现场的某些寄存器的内容进行保护,以保证返回时确恢复。软件指令方式实现。

数据的临时存放。三、特殊功能寄存器区:80~FFH

即SFR,包括I/O锁存器、定时器、串行口、中断、状态、控制寄存器等共21个。 离散地分布在80~FFH中(不包括PC)。如下所示: 算术运算寄存器:A、B、PSW

指针寄存器:SP、DPTR(DPH,DPL) 并行口:P0、P1、P2、P3

串行口:SCON、SBUF、PCON

中断系统:IP、IE

定时/计数器:TMOD、TCON、TH0、TL0、TH1、TL1

特别需要指出的是,51系列内部RAM,80~FFH中未定义的单位为不可访问单元。四、外部扩展数据存储器和扩展I/O口

外部扩展数据存储器:最大可扩展到64KB,由P3口的第二功能、控制其读、写,并通过MOVX指令访问。

扩展I/O口:MCS-51单片机将其看作外RAM的一个单元,与外RAM统一编址,提供16位寻址能力,寻址范围也是64K,但需要注意的是,为区别于外RAM地址,扩展I/O口一般用高端地址。§3-1指令格式及其操作寻址方式一、基本概念

1、指令及其格式

什么是指令? 计算机认识什么样的指令? 指令能干什么?机器指令:用2进制数0、1表示的命令代码。常以16进制表示。机器语言:由机器指令描述的程序语言。助记符指令:用字母和16进制数代替机器指令形成的符号指令。助记符语言:由助记符指令形成的程序语言,又称汇编语言。

MCS-51单片机汇编语言指令格式:[标号:]操作码操作数(目的操作数,源操作数)[;注释]其中:标号:称符号地址,代表该指令第1字节所在的地址。操作码:规定了指令将要干什么,必不可少。 操作数:表示参与运算作的数或数的地址。 注释:可有可无,必须以“;”开始。2、指令中的符号标识Ri、Rn、#data、#data16、addr11、addr16、Direct、rel、bit A:寄存器寻址的累加器;

ACC:直接寻址的累加器;

@: 间接寻址符号 (X): X中的内容 ((X)): 由X的内容作为地址的单元中的内容

←: 箭头左边的内容被右边的内容代替 $: 本条指令的起始地址

/: 位操作数前缀,表示取反。3、汇编语言的数据形式 二进制(B):0,1

十进制(D):0,1,~9

十六进制(H):0,1,~9,A,B,C,D,E,F

二、寻址方式

寻址方式:指令给出参与运算的数据的方式,即确定操作数 地址的方法。

MCS-51指令寻址方式主要有5种:存器寻址、直接寻址、寄存器间接寻址、立即寻址和基址寄存器+变址寄存器间接寻址

1、寄存器寻址 由指令指出以某寄存器的内容为操作数。寄存器寻址方式使用范围: (1)内部RAM中的32个工作寄存器R0~R7; (2)A、B、C、DPTR;例如:INCR3;(R3)←(R3)+1↑操作码↑操作数指令中的R3即为寄存器寻址,其执行过程如下图:本例中:R3的“门牌号”高3位为0,决定了寻址内部RAM中

00H~1FH空间。对于Rn:具体寄存器由指令的低3位指定。对于A、B、C、DPTR:则为隐含在指令代码中。2、直接寻址在指令中含有操作数的直接地址,该地址指出了参与运算的数所在的字节单元地址或位地址(位寻址)。直接寻址的寻址范围:(1)内部数据存储器的低128字节,00H~7FH;(2)特殊功能寄存器,注意除A、B、DPTR外,其他

SFR只能采用直接寻址方式。(3)位寻址:所有可寻址位;例如:MOVA, 70H;(A)←(70H)

MOVC, 70H;(CY)←(70H)注意:对累加器直接寻址和位寻址时,要用符号“ACC”或直接地址“E0H”,以区别于寄存器寻址。3、寄存器间接寻址 指令中指出某一个寄存器的内容为操作数的地址,以符号“@”表示。其寻址范围:(1)以R0,R1为地址指针,寻址内部RAM00~7FH

和外RAM的低256B;(2)以堆栈SP为地址指针,寻址栈区单元;(3)以DPTR,或R0、R1(须用P2指定高8位地址) 为地址指针,寻址外部RAM的64KB空间和扩展

I/O口。例:MOVA,@R0 ;(A)←((R0))

PUSHACC ;((SP))←(A)

MOVXA,@DPTR ;(A)←((DPTR)4、立即寻址操作数以常数的形式出现,直接跟在操作码后面,以指令字节的形式存放在ROM中。例如:MOV A, #40H MOV DPTR,#TABLE ;TABLE为标号地址

MOV P1, #00000111BMOV R3, #185、基址寄存器+变址寄存器间接寻址(1)变址寻址 以基址寄存器(PC、DPTR)和变址寄存器(A)的内容作为无符号数相加,形成16位地址,访问程序存储器(表格)。MOVC A,@A+PC ;(A)←((A)+(PC))MOVC A,@A+DPTR;(A)←((A)+(DPTR))例如:设(A)=30H,(PC)=1000H, 执行MOVCA,@A+PC的情况如下图所示。 取数地址为:1001+30=1031H。 显然: 当(A)=00H时,新(PC)=1001H; 当(A)=FFH时,新(PC)=1100H;(2)相对寻址

指令中给定地址的相对偏移量rel,以PC当前值为基地址,加上rel所得结果为转移目标地址。

rel:符号数,单字节补码,-128~+127。 例如:1000H:JC80H;判C转移指令,2字节 分析:当CY=1时,转移,过程如下图所示:§3-2指令系统3.2.1程序状态字PSW即标志寄存器,字节地址为:D0H,可字节寻址、位寻址。 作用:存放指令执行时有关信息、状态,供程序查询和判别。

PSW字格式:

D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV — P PSW.7:CY,进位标志,布尔处理器的累加器C。

PSW.6:AC,半进位标志。

PSW.5:F0,用户标志,可置位和复位。

PSW.4-PSW.3:RS1、RS0,指出当前工作寄存器区Rn。

PSW.2:OV,溢出标志。CY⊕CS=1时溢出,OV=1。

PSW.1:保留位,可单独使用,表示方法为D1H、PSW.1。

PSW.0:P,奇偶标志,指A中“1”的个数,为奇时置1。3.2.2指令系统一、数据传送指令 最基本、最主要的指令,共有29条,包括数据传送、数据交换、栈操作三类。目的单元为A时影响P标志。1、内部RAM间的数据传送(16条)(1)指令格式指令格式: MOV[目的字节],[源字节]功能:把源字节指定的变量传送到目的字节指定 的存储单元中,源字节内容不变。(2)操作数操作数:A,Rn,direct,@Ri,DPTR,#data传送关系如下图所示:

(3)指令描述举例: 以A目的操作数

MOV A,Rn ;(A)←(Rn) 以Rn为目的操作数

MOV Rn,direct ;(Rn)←(direct)

以direct为目的操作数

MOV direct1,direct2 ;(direct1)←(direct2) MOV direct,@Ri;(direct)←((Ri)) 以@Ri为目的操作数

MOV @Ri,A;((Ri))←(A)

MOV @Ri,#data;((Ri))←data 16位数据传送指令

MOVDPTR,#data16;高8位送DPH,低8位送DPL例3-1:设(70H)=60H,(60H)=20H,P1为输入口,状态为0B7H,执行如下程序:

MOV R0, #70H ;(78H70H) MOV A, @R0 ;(E6H) MOV R1, A ;(F9H) MOV B, @R1 ;(87HF0H) MOV @R0, P1 ;(A690H)结果: (70H)=0B7H

(B)=20H

(R1)=60H

(R0)=70H要求:掌握指令功能、查表求机器码、寻址方式、结果例3-2:给出下列指令的执行结果,指出源操作数的寻址方式。

MOV 20H, #25H MOV 25H, #10H MOV P1, #0CAH MOV R0, #20H MOV A, @R0 MOV R1, A MOV B, @R1 MOV @R1,P1 MOV P3, R1结果: (20H)=25H, (25H)=10H, (P1)=0CAH, (R0)=20H, (A)=25H, (R1)=25H, (B)=10H, (25H)=0CAH,

(P3)=25H2、ACC与外部数据存储器(或扩展I/O口)传递数据MOVX MOVX A, @DPTR MOVX A, @Ri;均为单字节指令 MOVX @DPTR, A MOVX @Ri, A功能:A与外部RAM或扩展I/O口数据的相互传送。说明:(1)用Ri进行间接时只能寻址256个单元(0000H~00FF), 当访问超过256个字节的外RAM空间时,需利用P2口确定 高8位地址(也称页地址),而用DPTR进行间址可访问 整个64KB空间。(2)在执行上述读、写外RAM指令时,P3.7(RD)、P3.6

(WR)会相应自动有效。(3)可用作为扩展I/O口的输入/输出指令例3-3:将外RAM2010H中内容送 外RAM2020单元中。分析:读2010H中内容→A→写数据

→2020H中流程如右图:程序如下:MOVP2,#20H;输出高8位地址MOVR0,#10H;置读低8位间接地址MOVXA,@R0;读2010H中数据MOVR1,#20H;置写低8位间接地址MOVX@R1,A;将A中数据写入2020H中3、查表指令MOVC表格:程序存储器除存放程序外,还可存放一些常数,这种数据的结构称为表格。访问:通过两条程序存储器取数指令,即查表指令来访问, 完成从ROM中读数,并只能送累加器A。指令格式:MOVC A,@A+DPTR;(A)←((A)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论