李朝青单片机原理及接口技术 (第3版) 李朝青 1-10 课件_第1页
李朝青单片机原理及接口技术 (第3版) 李朝青 1-10 课件_第2页
李朝青单片机原理及接口技术 (第3版) 李朝青 1-10 课件_第3页
李朝青单片机原理及接口技术 (第3版) 李朝青 1-10 课件_第4页
李朝青单片机原理及接口技术 (第3版) 李朝青 1-10 课件_第5页
已阅读5页,还剩1101页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及接口技术

单击此处添加标题目录

第1章微机基础知识

第2章89C51单片机硬件结构和原理

第3章指令系统

第4章汇编语言程序设计知识

第5章中断系统

第6章定时器及应用

第7章89C51串行口及串行通信技术

第8章单片机小系统及扩展

第9章应用系统配置及接口技术

第10章系统实用程序第一章微机基础知识§1.1微处理器、微机和单片机的概念§1.2常用数制和编码§1.3数据在计算机中的表示§1.489C51单片机§1.5思考题与习题§1.1微处理器、微机和单片机的概念Back§1.1.2存储器和输入输出接口§1.1.1微处理器(机)的组成概念1、微处理器3、单片机2、微型计算机微处理器(Microprocessor)是小型计算机或微型计算机的控制和处理部分。

又称中央处理单元CPU(CentralProcessingUnit)。微型计算机(Microcomputer,简称微机MC)

是具有完整运算及控制功能的计算机。包括微处理器(CPU)

如图1-1所示。存储器接口适配器(输入输出接口电路)输入/输出(I/O)设备。图1-1微机的组成微处理器由控制器、运算器和若干个寄存器组成;I/O设备与微处理器的连接需要通过接口适配器(即I/O接口);存储器是指微机内部的存储器(RAM、ROM和EPROM等芯片)。

单片机(Single-ChipMicrocomputer)

是将微处理器、一定容量RAM和ROM以及I/O口、定时器等电路集成在一块芯片上,构成单片微型计算机。

微处理器RAMROMI/O口定时器单片微型计算机Back§1.1.1微处理器(机)的组成Back

1、运算器

2、控制器

3、CPU中的主要寄存器计算机的模型微处理单元与存储器及I/O接口组成的计算机模型如图1-2所示。图中只画出CPU主要的寄存器和控制电路,并且假设所有的计数器、寄存器和总线都是8位宽度。ALU、计数器、寄存器和控制部分除在微处理器内通过内部总线相互联系以外,还通过外部总线和外部的存储器和输入/输出接口电路联系。外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线。存储器包括RAM和ROM。微计算机通过输入/输出接口电路可与各种外围设备联接。

图1-2一个计算机模型1、运算器

Back1)、组成2)、作用3)、ALU的两个主要的输入来源4)、运算器的两个主要功能1)运算器的组成算术逻辑单元(简称ALU)

Back运算器累加器

寄存器2)运算器的作用是把传送到微处理器的数据进行运算或逻辑运算。举例ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。Back例如: 两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。Back3)ALU的两个主要的输入来源输入来源数据寄存器累加器Back4)运算器的两个主要功能(1)执行各种算术运算。(2)执行各种逻辑运算,并进行逻辑测试。 如零值测试或两个值的比较。Back2、控制器1)、控制器的组成2)、控制器的作用3)、控制器的主要功能BackBack控制器的组成程序计数器指令寄存器指令译码器时序产生器操作控制器1)控制器的组成

2)作用它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作。Back3)控制器的主要功能对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。从内存中取出一条指令,并指出下一条指令在内存中的位置。Back3、CPU中的主要寄存器1)累加器(A)2)数据寄存器(DR)3)指令寄存器(IR)4)指令译码器(ID)6)地址寄存器(AR)5)程序计数器(PC)Back

1)累加器(A)Back在算术和逻辑运算时,它具有双重功能:

运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。累加器是微处理器中最繁忙的寄存器。2)数据寄存器(DR)数据(缓冲)寄存器(DR)是通过数据总线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元。Back3)指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到数据寄存器中,然后再传送到指令译码器中。Back4)指令译码器(ID)指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向控制器发出具体操作的特定信号。Back5)程序计数器(PC)

通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常是简单的加1操作。Back6)地址寄存器(AR)地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,直到内存(I/O设备)读/写操作完成为止。Back§1.1.2存储器和输入输出接口1、存储器2、I/O接口及外设Back1、存储器如图1-4所示。地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。数据总线用来传送存储器到CPU或CPU到存储器的数据信息。Back图1-4随机存取存储器2、I/O接口及外设每个外设与微处理器的连接必须经过接口适配器(I/O接口)。每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。Back§1.2常用数制和编码Back§1.2.1数制及数制间转换

§1.2.2计算机中常用编码

§1.2.1数制及数制间转换Back1.数制——计数的进位制2、不同数制之间的转换1.数制——计数的进位制Back1.二进制:是“0”和“1”这样的数、逢2进位。按权展开时权的基数为2。用后缀字母“B”表示。如:1001=1×23+0×22+0×21+1×20

=9(十进制数)2.十进制:是“0”—“9”之间的数、逢10进位。按权展开时权的基数为10。用后缀字母“D”表示。如:1135=1×103+1×102+3×101+5×1003.十六进制:是“0”—“9”,“A,B,C,D,E,F”之间的数、逢16进位。按权展开时权的基数为16。用后缀字母“H”表示。如:1C5H=1×162+12×161+5×160=453D2、不同数制之间的转换Back1、二进制、十六进制转化成十进制:将二、十六进制数按权展开相加即为相应的十进制数。如:1101=1×23+1×22+0×21+1×20

=13D如:1FH=1×161+15×160

=31D2、十进制转换成二进制数:将十进制数除2取余,商为0止余数倒置。如:11D=1011B

3、十进制转换成十六进制数:将十进制数除16取余,商为0止余数倒置。如:100D=64H4、二进制转换成十六进制数:将二进制数以小数点为界四位一分,不足补0,用一位十六进制数代替四位二进制数。如:1

00111100B=00010011

1100B=13CH5、十六进制转换成二进制数:将十六进制数以小数点为界,用四位二进制数代替一位十六进制数。如:D4EH=1101

0100

1110B211余数2512212100116100余数166406§1.2.2计算机中常用编码BackBCD(BinaryCodedDecimal)码——二十进制码ASCII(AmericanStandardCodeforInformationInterchange)码1.BCD(BinaryCodedDecimal)码——二十进制码BackBCD码是一种二进制形式的十进制码,也称二十进制码。它用4位二进制数表示1位十进制数,最常用的是8421BCD码,见表1-2。8421BCD码用0000H~1001H代表十进制数0~9,运算法则是逢十进一。8421BCD码每位的权分别是8,4,2,1,故得此名。例如,1649的BCD码为0001011001001001。表1-28421BCD码表Back十进制数8421BCD码二进制数十进制数8421BCD码二进制数0000000008100010001000100019100110012001000101000010000101030011001111000100011011401000100120001001011005010101011300010011110160110011014000101001110701110111150001010111112.ASCII(AmericanStandardCodeforInformationInterchange)码BackASCII码是一种字符编码,是美国信息交换标准代码的简称,见表1-3。它由7位二进制数码构成,共有128个字符。ASCII码主要用于微机与外设通信。当微机与ASCII码制的键盘、打印机及CRT等连用时,均以ASCII码形式进行数据传输。例如,当按微机的某一键时,键盘中的单片机便将所按的键码转换成ASCII码传入微机进行相应处理。Back表1-3ASCII码字符表

高位低位0123456789ABCDEF00000001001000110100010101100111100010011010101111001101111011110000NULSOHSTXETXEOTENQACKDELBSHTLFVTFFCRSOSI1001DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS2010SP!“#$%&‘()*+,-。、30110123456789:;<=>?4100@ABCDEFGHIJKLMNO5101PQRSTUVWXYZ[\]↑←6110、abcdefghijklmno7111pqrstuvwxyz{|}~DEL§1.3数据在计算机中的表示Back§1.3.1有符号数§1.3.2无符号数§1.3.1有符号数有符号的8位二进制数用最高位D7表示数的正或负,0代表“+”,1代表“-”,D7称为符号位,D6~D0为数值位。BackD7D6—————D0符号位数值位上述的8位带符号二进制数又有3种不同表达形式,即原码、反码和补码。在计算机中,所有有符号数都是以补码形式存放的。Back1.原码

一个二进制数,用最高位表示数的符号,其后各位表示数值本身,这种表示方法称为原码。原码的表示范围是-127~+127例如:X=+1011010B[X]原=01011010B;X=-1011010B[X]原=11011010B2.反码

正数的反码与原码相同。符号位一定为0,其余位为数值位。负数的反码符号位为1,数值位将其原码的数值位逐位求反。反码的表示范围是-127~+127例如:X=-1011010B[X]原=11011010B[X]反=10100101B3.补码正数的补码与原码相同。负数的补码符号位为1,数值位将其原码的数值位逐位求反后加1,即负数的反码加1。补码的表示范围是-128~+127例如:X=-1011010B[X]补=10100110B通常计算机中的数用补码表示,用补码进行运算。一个很明显的优点是减法可以用补码的加法来运算。这里还要特别提示“溢出”的概念。溢出与进位不同,溢出是指有符号数的运算结果超出了数-128~+127的表示范围,破坏了符号位。

Back4机器数与真值机器数:计算机中以二进制形式表示的数。真值:机器数所代表的数值。例如,机器数10001010B,它的真值为

138(无符号数) -10(原码) -117(反码) -118(补码)【例15】怎样根据真值求补码,或根据补码求真值?答:只有两种求补码的方法:一是求负数的补码,用绝对值“取反加1”来求补码;二是求负数(补码)的真值,可先将该补码数用“取反加1”的方法得到其绝对值,再在绝对值前添加一负号。Back无符号的8位二进制数没有符号位,从D7~D0皆为数值位,所以8位无符号二进制数的表示范围是0~+255。8位二进制数码的不同表达含义见表1-4。Back§1.3.2无符号数Back表1-4数的表示方法Back8位二十进制数无符号数原码反码补码000000000+0+0+0000000011+1+1+1000000102+2+2+201111100124+124+124+12401111101125+125+125+12501111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-12611111100252-124-3-411111101253-125-2-311111110254-126-1-211111111255-127-0-1Back§1.489C51单片机

Back51系列单片机有多种型号的产品,如普通型(51子系列)80C51、80C31、87C51和89C51等,增强型(52子系列)80C32、80C52、87C52和89C52等。它们的结构基本相同,其主要差别反映在存储器的配置上。80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器。87C51是将80C51片内的ROM换成EPROM,89C51则换成4KB的闪速E2PROM。51增强型的程序存储器容量为普通型的2倍。通常以8×C51代表这一系列的单片机,其中×=0——掩膜ROM×=7——EPROM/OTPROM×=9——FlashROMBack§1.489C51单片机Back89系列单片机已经在片内增加4KB或8KB的FlashROM,而且整个89C51/89C52芯片比87C51便宜得多。所以现在已经没有人使用80C31或87C51开发产品了。单片机是典型的嵌入式系统,从体系结构到指令系统都是按照嵌入式应用特点专门设计的,能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行以及非凡的控制品质要求。因此,单片机是发展最快、品种最多、数量最大的嵌入式系统。嵌入式系统与单片机已深入到国民经济众多技术领域,从天上到地下,从军事、工业到家庭日常生活。在人类进入信息时代的今天,难以想像,没有单片机的世界将会怎样!本教程以ATMEL、PHILIPS和SST等公司的89系列单片机中的AT89C51/P89C51/SST89E554(以下简称为89C51)为典型机,讲述单片机的硬件结构、原理、接口技术、编程及其应用技术。舍弃80C31扩展EPROM的传统模式,而依据目标任务选择所需不同档次(片内不同存储器容量)的89系列单片机。Back§1.5思考题与习题Back1.什么是微处理器、CPU、微机和单片机?2.单片机有哪些特点?3.微型计算机怎样执行一个程序?4.将下列各二进制数转换为十进制数及十六进制数。 ①11010B ②110100B ③10101011B ④11111B5.将下列各数转换为十六进制数及ASCII码。 129D253D01000011BCD00101001BCD6.将下列十六进制数转换成二进制数和十进制数。 ①5AH ②0AE7.D2H ③12BEH ④0A85.6EH7.将下列十进制数转换成8421BCD码。 ①22 ②986.71 ③1234 ④678.95Back§1.5思考题与习题Back8.什么叫原码、反码及补码?9.已知原码如下,写出其补码和反码(其最高位为符号位)。 ①[X]原=01011001 ②[X]原=00111110③[X]原=11011011 ④[X]原=1111110010.当微机把下列数看成无符号数时,它们相应的十进制数为多少?若把它们看成是补码,最高位为符号位,那么相应的十进制数是多少? ①10001110 ②10110000 ③00010001 ④011101011.李朝青.单片机原理及接口技术(简明修订版).北京:北京航空航天大学出版社,19992.李朝青.单片机学习辅导测验及解答讲义.北京:北京航空航天大学出版社,20033.李朝青.单片机&DSP外围数字IC技术手册.北京:北京航空航天大学出版社,20024.何立民.单片机高级教程.北京:北京航空航天大学出版社,19995.何立民.I2C总线应用系统设计.北京:北京航空航天大学出版社,20046.张俊谟.单片机中级教程.北京:北京航空航天大学出版社,19997.张迎新,等.单片机初级教程.北京:北京航空航天大学出版社,19998.余永权.Flash单片机原理及应用.北京:电子工业出版社,19979.潘琢金,等.C8051F×××高速SOC单片机原理及应用.北京:北京航空航天大学出版社,200210.李刚.ADμC8××系列单片机原理与应用技术.北京:北京航空航天大学出版社,200211.李群芳,等.单片微型计算机与接口技术.北京:电子工业出版社,200112.朱定华,等.单片微机原理与应用.北京:清华大学出版社,北京:北方交通大学出版社,200313.李维祥.单片机原理与应用.天津:天津大学出版社,200114.肖洪兵,等.跟我学用单片机.北京:北京航空航天大学出版社,200215.钱逸秋.单片机原理与应用.北京:电子工业出版社,2002参考资料§2.1 89C51单片机芯片内部结构及特点§2.2 89C51单片机引脚及其功能§2.3 89C51单片机存储器配置§2.4 时钟电路及89C51CPU时序§2.5 复位操作§2.6 89C51单片机的低功耗工作方式返回第2章 89C51单片机的结构和原理§2.7 输出/输入端口结构§2.1 89C51单片机芯片内部结构及特点§2.1.189C51单片机的基本组成§2.1.289C51单片机芯片内部结构返回§2.1.189C51单片机的基本组成一、组成二、89C51系列单片机的性能返回一、组成89C51单片机结构框图如图2-1所示返回89C51单片机结构框图89C51CPU振荡器和时序OSC64KB总线扩展控制器数据存储器256BRAM/SFR2×16位定时器/计数器可编程I/O程序存储器4KBFLASHROM可编程全双工串行口外中断内中断控制并行口串行通信外部时钟源外部事件计数返回一、组成1、一个8位的微处理器CPU。返回用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。2、片内数据存储器(RAM128B/256B):用以存放程序、一些原始数据和表格。3、片内4kB程序存储器FlashROM(4KB):4、四个8位并行I/O(输入/输出)接口P0~P3:每个口可以用作输入,也可以用作输出。一、组成返回每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。5、两个或三个定时/计数器:

可实现单片机与单片机或其它微机之间串行通信。6、一个全双工UART的串行I/O口:但需外接晶振和电容。7、片内振荡器和时钟产生电路:8、五个中断源的中断控制系统。9、具有节电工作方式:休闲方式及掉电方式。二、89C51系列单片机的性能

89C51单片机与8051相比,具有节电工作方式,即休闲方式及掉电方式。以上各个部分通过片内8位数据总线(DBUS)相连接。另外89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式——空闲方式(IdleMode)和掉电方式(PowerDownMode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15μA以下,最小可降到06μA。89C51单片机还有一种低电压的型号,即89LV51,除了电压范围有区别之外,其余特性与89C51完全一致。89C51/LV51是一种低功耗/低电压、高性能的8位单片机。它采用了CMOS工艺和高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MCS51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此89C51/LV51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。返回§2.1.289C51单片机芯片内部结构一、结构图二、结构组成返回一、结构图由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图2-2所示。返回P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARESET89C51单片机内部结构图返回运算器控制器存储器I/O接口P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARESET89C51单片机内部结构图返回运算器控制器存储器I/O接口二、结构组成(一)、中央处理单元(CPU)(二)、存储器(三)、I/O接口返回1、中央处理单元(89C51CPU)1)运算器返回2)控制器1)运算器(1)8位的ALU:返回(2)8位累加器ACC(A):(3)8位程序状态寄存器PSW:(4)8位寄存器B:(5)布尔处理器:(6)2个8位暂存器:1)运算器可对4位、8位、16位数据进行操作。返回(1)8位的ALU:1)运算器(2)8位累加器ACC(A):它经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。返回1)运算器指示指令执行后的状态信息供程序查询和判别用。(3)8位程序状态寄存器PSW:返回1)运算器(4)8位寄存器B:

在乘除运算时,用来存放一个操作数也用来存放运算后的一部分结果;如不能做乘除运算时,作为通用寄存器。返回1)运算器(5)布尔处理器:专门用于处理位操作的,以PSW中的C为其累加器。返回1)运算器(6)2个8位暂存器:ALU的两个入口处。返回2)控制器(1)程序计数器PC(16位)(2)指令寄存器IR及指令译码器ID(3)振荡器和定时电路返回(1)程序计数器PC(16位)由两个8位计数器PCH、PCL组成。PC是程序的字节地址计数器,PC内容为将要执行的指令地址。改变PC内容,改变执行的流向。PC可对64KB的ROM直接寻址,也可对89C51片内RAM寻址。返回(2)指令寄存器IR及指令译码器ID由PC中的内容指定ROM地址取出来的指令经IR送至ID由ID对指令译码产生一定序列的控制信号,以执行指令所规定的操作。返回(3)振荡器和定时电路89C51单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz~12MHz。该信号作为89C51工作的基本节拍即时间的最小单位。返回2、存储器1)程序存储器(ROM)2)数据存储器(RAM)返回1)程序存储器(ROM)89C51片内为4KBFlashROM。地址从0000H开始。用于存放程序和表格常数。返回2)数据存储器(RAM)89C51RAM均为128B,地址为00H~7FH。用于存放运算的中间结果、数据暂存以及数据缓冲等。这128B的RAM中有32个字节单元可指定为工作寄存器。片内还有21个特殊功能寄存器(SFR),它们同128字节RAM统一编址,地址为80H~FFH。后面详细介绍。返回3、I/O接口89C51有四个8位并行I/O接口P0~P3。它们都是双向端口,每个端口各有8条I/O线。P0-P3口四个锁存器同RAM统一编址,可作为SFR来寻址。返回2.2 89C51单片机引脚及其功能§2.2.189C51单片机引脚§2.2.289C51单片机引脚功能返回§2.2.1 89C51单片机引脚图2-3是89C51/LV51的引脚结构图,有双列直插封装(DIP)方式和方形封装方式。返回图2-389C51/LV51的引脚结构

§2.2.289C51单片机引脚功能一、电源引脚:Vcc和Vss二、时钟电路引脚:XTAL1和XTAL2三、控制信号引脚RST、ALE、PSEN和EA四、I/O端口P0、P1、P2和P3返回一、电源引脚:Vcc和Vss1.Vcc(40脚):电源端,为+5V。2.Vss(20脚):接地端。返回二、时钟电路引脚:XTAL1和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端;在89C51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。89C51正常工作时,该引脚应有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚接地。二、时钟电路引脚:XTAL1和XTAL2返回三、控制信号引脚:

RST、ALE、PSEN和EARST/VPD(9脚):RST:复位信号输入端,高电平有效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。RST/VPD(9脚):VPD:RST引脚的第二功能,备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM提供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。三、控制信号引脚:

RST、ALE、PSEN和EAALE/PROG(30脚):ALE:地址锁存允许信号端。正常工作时,该引脚以振荡频率的1/6固定输出正脉冲。CPU访问片外存储器时,该引脚输出信号作为锁存低8位地址的控制信号。它的负载能力为8个LS型TTL负载。三、控制信号引脚:

RST、ALE、PSEN和EAALE/PROG(30脚):PROG:是对片内带有4KBFlashROM的89C51编程写入时的编程脉冲输入端。三、控制信号引脚:

RST、ALE、PSEN和EAPSEN(29脚):程序存储器允许信号输出端。在访问片外ROM时,定时输出负脉冲作为读片外ROM的选通信号,接片外ROM的OE端。它的负载能力为8个LS型TTL负载。三、控制信号引脚:

RST、ALE、PSEN和EAEA/Vpp(31脚):EA:

外部程序存储器地址允许输入端。当该引脚接高电平时,CPU访问片内ROM并执行片内程序存储器中的指令,但当PC值超过0FFFH(片内ROM为4KB)时,将自动转向执行片外ROM中的程序。当该引脚接低电平时,CPU只访问片外ROM并执行外部程序存储器中的程序。三、控制信号引脚:

RST、ALE、PSEN和EAEA/Vpp(31脚):Vpp:对89C51片内FlashROM固化编程时,编程电压输入端(12-21V)。三、控制信号引脚:

RST、ALE、PSEN和EA返回四、I/O端口P0、P1、P2和P31、准双向2、P0口3、P1口4、P2口5、P3口返回1、准双向当I/O口作为输入时,应先向此口锁存器写入全1,此时该口引脚浮空,可作高阻抗输入。返回2、P0口:漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。P0口可作为一个数据输入/输出口;在CPU访问片外存储器时,P0口为分时复用的低8位地址总线和8位数据总线。返回3、P1口:带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。返回4、P2口:P2口:带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。在CPU访问片外存储器时,它输出高8位地址。返回5、P3口:带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。P3口除作为一般I/O口外,每个引脚都有第二功能。返回表2-1P3端口引脚与复用功能表§2.3 89C51存储器配置§2.3.1 89C51存储器分类§2.3.2 程序存储器地址空间§2.3.3 数据存储器地址空间返回§2.3.1 89C51存储器分类一、物理结构(哈佛结构)二、用户角度返回片内程序存储器片外程序存储器片内数据存储器片外数据存储器一、物理结构(哈佛结构)89C51存储器程序存储器ROM数据存储器RAM返回二、用户角度返回如图2-4所示二、用户角度1、片内、外统一编址的64K程序存储器地址空间。CPU访问片内、片外ROM指令用MOVC。返回二、用户角度2、64K的片外数据存储器地址空间。访问片外RAM指令用MOVX。返回二、用户角度3、256字节的片内数据存储器地址空间。访问片内RAM指令用MOV。返回上述三个存储空间地址是重叠的,89C51的指令系统采用不同的数据传送指令符号。§2.3.2程序存储器地址空间一、用途:二、编址:三、寻址方式:返回一、用途:用于存放编好的程序和表格常数。返回二、编址:89C51片内FlashROM的容量为4KB。地址为0000H~0FFFH。片外最多可扩至64KBROM/EPROM,地址为1000H~FFFFH。片内外统一编址。返回三、寻址方式:1、当EA=“1”时:89C51的PC在0000~0FFFH范围内执行片内ROM中的程序,当指令地址超过0FFFH后就自动转向片外ROM中取指令。三、寻址方式:2、当EA=”0”时:89C51片内ROM不起作用,CPU只能从片ROM/EPROM中取指令。可以从0000H开始寻址。由于8031片内不带ROM,所以使用时必须EA=”0”。三、寻址方式:3、89C51从片内ROM和片外ROM取指的速度相同。三、寻址方式:4、程序存储器的保留存储单元。

如表2-2所示。

返回表2-2保留的存储单元返回三、寻址方式:1、0000H~0002H三个单元:用作89C51上电复位后引导程序的存放单元。因为复位后PC的内容为0000H,CPU总是从0000H开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存储器空间去执行。返回三、寻址方式:(2)0003H~002AH单元:均分为五段,用作五个中断服务程序的入口。中断矢量地址表如表2-3所示。返回表2-3中断矢量表返回§2.3.3数据存储器地址空间一、用途:二、片外RAM:

三、片内RAM:

返回一、用途:用于存放运算的中间结果、数据暂存和缓冲、标志位等。返回二、片外RAM:地址:0000H~FFFFH寻址:用MOVX指令返回三、片内RAM:(一)片内RAM地址空间(二)低128字节RAM(00H~7FH)(三)高128字节RAM(80H~FFH):

——特殊功能寄存器SFR区返回(一)片内RAM地址空间寻址:用指令MOV最大可寻址256个单元。返回低128B(00H-7FH):真正RAM区高128B(80H-FFH):特殊功能寄存器(SFR)区地址:00H-FFH如图2-5所示。(二)低128字节RAM(00H~7FH)1、工作寄存器区(00H~1FH)2、位寻址区(20H~2FH)

3、用户RAM区(30H~7FH)返回1、工作寄存器区(00H~1FH)由四组(32个)工作寄存器组成,每组8个寄存器(R0-R7),共占32个单元。见表2-4。通过程序状态寄存器PSW中RS1、RS0两位设定来选择CPU的当前工作寄存器组。复位时,第0组为当前的工作寄存器。若不需要四组,则其余可作为一般RAM单元。返回表2-4工作寄存器地址表返回2、位寻址区(20H~2FH)位寻址区有16个单元,每个单元8位,共128位。位地址为00H-7FH。可用位寻址方式访问其各位。RAM位寻址区位地址表如表2-5所示。

这些可寻址位,通过执行指令可直接对某一位操作,如置1、清0、判断转移等。位寻址是89C51的一个重要特点。返回表2-5RAM位寻址区位地址表返回3、用户RAM区(30H~7FH)用于堆栈和数据缓冲。返回(三)高128字节RAM(80H~FFH)返回有21个特殊功能功能寄存器。见表2-6地址分布在80H~FFH的RAM空间。只能用直接寻址方式。有11个具有位寻址能力。11个SFR的字节地址正好能被8整除。特殊功能寄存器的地址见表2-7。部分特殊功能寄存器介绍表2-7特殊功能寄存器地址表返回表2-689C51系列单片机的特殊功能寄存器表返回部分特殊功能寄存器介绍累加器ACC(E0H):用A作为ACC的助记符。用于存放第一个操作数及运算结果。返回部分特殊功能寄存器介绍寄存器B(F0H):在乘法指令中,B用于存放乘数和乘积的高8位。在除法指令中用于存放除数和余数。在其它指令中用作一般的寄存器或RAM单元。返回部分特殊功能寄存器介绍PSW程序状态寄存器(D0H):PSW包含了程序执行后的状态信息,供程序查询或判断用。PSW的格式PSW各位的含义返回返回PSW的格式如下:ACCYP—OVRS0RS1F0PSW(D0H)D7D6D5D4D3D2D1D0PSW各位的含义(1)CY位(PSW.7):进(借)位标志位。执行加法(减法)运算指令时,如运算结果最高位(D7)向前有进位(借位),CY=1;否则,CY=0。在位操作指令中,CY位是布尔累加器,用C表示。返回PSW各位的含义(2)AC位(PSW.6):半进位标志位(辅助进位标志)。执行加法(减法)运算指令时,如运算结果的低半字节(D3)向高半字节有进位(借位),AC=1;否则,AC=0。返回PSW各位的含义(3)FO位(PSW.5):用户标志。由用户自己定义、置位、复位,以作为软件标志。返回PSW各位的含义(4)RS0、RS1位(PSW.3和PSW.4):工作寄存器组选择控制位。由用户用软件改变RS0和RS1的值,以切换当前选用的工作寄存器组。RS0,RS1的组合关系如表2-8所示。上电复位时,(RS0)=(RS1)=0,CPU自然选择第0组为当前工作寄存器组。返回RS1 RS0 寄存器组 片内RAM地址0 0 第0组 00H~07H 0 1 第1组 08H~0FH 1 0 第2组 10H~17H 1 1 第3组 18H~1FH 表2-8RS0,RS1的组合关系返回PSW各位的含义(5)OV位(PSW.2):溢出标志位。如有溢出,即运算结果超出-128~+127的范围时,OV=1;无溢出时,OV=0。返回PSW各位的含义(6)P位(PSW.0):奇偶检验位。每条指令执行后,A中“1”的个数为奇数,则P=1;否则,P=0。返回PSW各位的含义(7)PSW.1:为保留位。返回部分特殊功能寄存器介绍堆栈指针SP(81H):堆栈:在片内RAM中,开辟的一个按“先进后出”的结构方式处理数据的区域。SP的内容可指向片内RAM00H—7FH的任何单元。系统复位时,SP初始化为07H。堆栈的操作:如图2-6所示。返回部分特殊功能寄存器介绍返回数据指针DPTR(83H,82H):DPTR是一个16位的特殊功能寄存器。由DPH(83H),DPL(82H)组成。DPH,DPL可以单独使用。部分特殊功能寄存器介绍返回I/O端口P0、P1、P2、P3(80H、90H、A0H、B0H):分别为四个并行端口的锁存器,每一个口锁存器还有位地址,所以每一条I/O线可独立输入或输出。输出时,可以锁存;输入时,可以缓冲。§2.4 时钟电路及89C51CPU时序§2.4.1片内时钟信号的产生返回§2.4.2 CPU取指、执指时序§2.4.1 片内时钟信号的产生返回89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器C1和C2通常取30pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fOSC=0~24MHz。晶体振荡器的频率为fOSC,振荡信号从XTAL2端输入到片内的时钟发生器上,如图2-12所示。图2-1289C51的片内振荡器及时钟发生器§2.4.1 片内时钟信号的产生1、节拍与状态周期

2、机器周期和指令周期3、基本时序定时单位返回1、节拍与状态周期

时钟发生器是一个2分频的触发器电路,它将振荡器的信号频率fOSC除以2,向CPU提供两相时钟信号P1和P2。时钟信号的周期称为机器状态周期S(STATE),是振荡周期的2倍。在每个时钟周期(即机器状态周期S)的前半周期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2,节拍2)信号有效。每个时钟周期(以后常称状态S)有两个节拍(相)P1和P2,CPU就以两相时钟P1和P2为基本节拍指挥89C51单片机各个部件协调地工作。返回2、机器周期和指令周期二、指令周期:一、机器周期:返回计算机的一计算机的一条指令由若干个字节组成。执行一条指令需要多长时间则以机器周期为单位。一个机器周期是指CPU访问存储器一次所需的时间。例如,取指令、读存储器、写存储器等等。一个机器周期包括12个振荡周期,分为6个S状态:S1~S6。每个状态又分为两拍,称为P1和P2。因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1,···,S6P1,S6P2。若采用6MHz晶体振荡器,则每个机器周期为多少?机器周期如图所示返回返回设:晶体振荡器频率fosc=6MHz,则:振荡周期=1/fosc=1/6μs(微秒)因为:一个机器周期包括12个振荡周期,所以:一个机器周期=12*(1/6)μs(微秒)=2μs(微秒)问:如果fosc=12MHz,一个机器周期为多少?答案1μs(微秒)机器周期每条指令都由一个或几个机器周期组成。指令周期:执行一条指令所需的时间。每条指令由一个或若干个字节组成。有单字节指令,双字节指令,…多字节指令等。字节数少则占存储器空间少。每条指令的指令周期都由一个或几个机器周期组成。有单周期指令、双周期指令、和四周期指令。机器周期数少则执行速度快。其指令周期各为多少?指令周期如图所示返回例如指令周期设振荡周期为6MHz,则一个机器周期为2μs(微秒)。单周期指令:指令周期为2μs(微秒)双周期指令:指令周期为4μs(微秒)四周期指令:指令周期为8μs(微秒)如果振荡周期为12MHz,则其指令周期分别为1μs、2μs和4μs。返回单字节指令:如,INCA;机器码格式:00000100B

双字节指令:如,MOVA,#data ; 机器码格式:01110100Bdata返回3、基本时序定时单位综上所述,89C51或其他80C51单片机的基本时序定时单位有如下4个。振荡周期:晶振的振荡周期,为最小的时序单位。状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。机器周期(MC):1个机器周期由6个状态周期即12个振荡周期组成,是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由1~4个机器周期组成,依据指令不同而不同,见附录A。返回4种时序单位中,振荡周期和机器周期是单片机内计算其他时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHz时的各种时序单位的大小。

振荡周期=1/fOSC=1/12MHz=0.0833μs 状态周期=2/fOSC=2/12MHz=0.167μs 机器周期=12/fOSC=12/12MHz=1μs 指令周期=(1~4)机器周期=1~4μs4个时序单位从小到大依次是节拍(振荡脉冲周期,1/fOSC)、状态周期(时钟周期)、机器周期和指令周期,如图2-13所示。返回图2-1389C51单片机各种周期的相互关系§2.4.2 CPU取指、执指时序每条指令的执行都可以包括取指和执指两个阶段。在取指阶段,CPU从内部或外部ROM中取出指令操作码及操作数,然后再执行这条指令。单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除指令占四周期。CPU取指、执指时序如

图2-14所示返回图2-1489C51单片机的取指/执行时序

§2.5 复位操作§2.5.1 复位操作的主要功能§2.5.2 复位信号及其产生§2.5.3 复位电路返回§2.5.1 复位操作的主要功能一、复位是单片机的初始化操作。二、主要功能:三、寄存器的复位状态:返回复位操作主要功能程序地址指针PC初始化为0000H,使单片机从0000H单元开始执行程序当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复位键重新启动。返回表2-8各特殊寄存器的复位值返回§2.5.2 复位信号及其产生一、复位信号:RST引脚为复位信号输入端。当RST引脚为高电平,且有效时间持续24个振荡周期以上,才能复位。二、产生复位信号的电路逻辑图:如图2-15所示。返回图2-15 复位电路逻辑图返回复位电路施密特触发器片内RAMRST/VPDVCCVSSD1D2§2.5.3 复位电路1、上电自动复位:是通过外部复位电路的电容充电实现。如图2-16(a)所示。2、手动复位:按键电平复位方式:如图2-16(b)所示。按键脉冲复位方式:如图2-12(c)所示。返回图2-16(a)上电复位电路只要Vcc的上升时间不超过1ms,就自动上电复位,即接通电源就完成了系统复位。返回VCCCRVCCRST/VPDVSS1KΩ22μF89C51图2-16(b)按键电平复位电路通过使复位端经电阻与VCC电源接通而实现。VCCCR2VCCRST/VPDVSS1KΩ22μF89C51R1200ΩRESET返回§2.6 89C51单片机的低功耗工作方式89C51属于CHMOS的单片机,运行时耗电少,而且还提供两种节电工作方式,即空闲(等待、待机)方式和掉电(停机)工作方式,以进一步降低功耗。图2-17所示为实现这两种方式的内部电路。由图2-17可见,若IDL=0,则89C51将进入空闲运作方式。在这种方式下,振荡器仍继续运行,但IDL封锁了去CPU的“与”门,故CPU此时得不到时钟信号。而中断、串行口和定时器等环节却仍在时钟控制下正常运行。掉电方式下(PD=0),振荡器冻结。返回§2.6 89C51单片机的低功耗工作方式返回图2-17

空闲和掉电方式控制电路图2-17中,PD和IDL均为PCON中PD和IDL触发器的输出端。§2.6.1 方式的设定返回图2-18电源控制寄存器PCON空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。图2-18所示为89C51电源控制寄存器PCON各位的分布情况。HMOS器件的PCON只包括一个SMOD位,其他4位是CHMOS器件独有的。3个保留位用户不得使用,因为硬件没有做出安排,可能在今后的MCS51新产品中代表某特定的功能。§2.6.1 方式的设定返回图2-18电源控制寄存器PCON图2-18中各符号的名称和功能如下。SMOD:波特率倍频位。若此位为1,则串行口方式1、方式2和方式3的波特率加倍。GF1和GF0:通用标志位。PD:掉电方式位。此位写1即启动掉电方式。由图217可见,此时时钟冻结。IDL:空闲方式位。此位写1即启动空闲方式。这时CPU因无时钟控制而停止运作。如果同时向PD和IDL两位写1,则PD优先。89C51中PCON的复位值为0×××0000B。§2.6.2 空闲(等待、待机)工作方式返回当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。§2.6.2 空闲(等待、待机)工作方式返回进入空闲方式后,有两种方法可以使系统退出空闲方式。一是任何的中断请求被响应都可以由硬件将PCON.0(IDL)清0而中止空闲工作方式。当执行完中断服务程序返回到主程序时,在主程序中,下一条要执行的指令将是原先使IDL置位指令后面的那条指令。PCON中的通用标志位GF1和GF0可以用来指明中断是在正常操作还是在待机方式期间发生的。在待机方式时,除用指令使IDL=1外,还可先用指令使GF1或GF0置1。当由于中断而停止待机方式时,在中断服务程序中可以检查这些标志位,说明是从待机方式进入中断的。§2.6.2 空闲(等待、待机)工作方式返回另一种退出空闲方式的方法是硬件复位,由于在空闲工作方式下振荡器仍然工作,因此硬件复位仅需2个机器周期便可完成。而RST端的复位信号直接将PCON.0(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。§2.6.3 掉电(停机)工作方式返回当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。退出掉电方式的惟一方法是由硬件复位,复位后将所有特殊功能寄存器的内容初始化,但不改变片内RAM区的数据。在掉电工作方式下,VCC可以降到2V,但在进入掉电方式之前,VCC不能降低。而在准备退出掉电方式之前,VCC必须恢复正常的工作电压值,并维持一段时间(约10ms),使振荡器重新启动并稳定后方可退出掉电方式。§2.7 输出/输入端口结构I/O端口概述§2.7.1P1口§2.7.2P2口§2.7.3P0口§2.7.4P3口§2.7.5端口的负载能力和接口要求返回 I/O端口概述返回1.89C51单片机有四个8位并行I/O端口:P0、P1、P2和P3。2.每个端口都是8位准双向口,共占32根引脚。3.每一条I/O线都能独立地用作输入或输出。4.每个端口都包括一个锁存器(即特殊功能寄存器P0~P3),一个输出驱动器和输入缓冲器,作输出是数据可以锁存,作输入时数据可以缓冲。§2.7.1P1口一、P1口结构二、P1口用作通用I/O返回§2.7.1 P1口一、P1口结构:其电路结构见图2-19,输出驱动部分与P0口不同,内部有上拉负载电阻与电源相连。实质上,电阻是两个场效应管FET并在一起:一个FET为负载管,其电阻固定。另一个FET可工作在导通或截止两种状态,使其总电阻值变化近似为0或阻值很大两种情况。当阻值近似为0时,可将引脚快速上拉至高电平;当阻值很大时,P1口为高阻输入状态。返回图2-19

P1口某位的结构返回§2.7.1 P1口二、P1口用作通用I/OP1口也是一个准双向口。在端口用作输入时,也必须先向对应的锁存器写入1,使FET截止。当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。返回§2.7.2P2口一、P2口结构二、P2口用作一般I/O口三、P2口用作高8位地址总线返回一、P2口结构如图2-20所示,P2口某位的结构与P0口类似,有MUX开关。驱动部分与P1口类似,但比P1口多了一个转换控制部分。返回图2-20

P2口某位的结构图返回二、P2口用作一般I/O口1、当CPU对片内存储器和I/O口进行读/写(执行MOV指令或EA=1时,执行MOVC指令)时,由内部硬件自动使开关MUX倒向锁存器的Q端,这时,P2口为一般I/O口。二、P2口用作一般I/O口2、在只需扩展256B片外RAM的系统中,使用“MOVXA,@Ri”类指令访问片外RAM时,寻址范围是256B,只需低8位地址线就可以实现。P2口不受该指令影响,仍可作通用I/O口。二、P2口用作一般I/O口3、若扩展的RAM容量超过256B,使用“MOVXA,@DPTR”类指令的寻址范围是64KB,此时,高8位地址总线用P2口输出。在片外RAM读/写周期内,P2口锁存器仍保持原来端口的数据;在访问片外RAM周期结束后,多路开关MUX自动切换倒锁存器Q端。由于CPU对RAM的访问不是经常的,在这种情况下,P2口在一定的限度内仍可用作通用I/O口。返回三、P2口用作高8位地址总线当CPU对片外存储器或I/O口进行读/写(执行MOVX指令或EA=0时执行MOVC指令)时,开关倒向地址线(右)端,这时,P2口只输出高8位地址。因为访问片外EPROM和RAM的操作往往接连不断,所以,P2口要不断送出高8位地址,此时P2口无法再用作通用I/O口。返回§2.7.3P0口一、结构二、P0口作为一般I/O口使用三、P0口作为地址/数据总线使用返回一、结构P0口某位的结构由一个输出锁存器、二个三态输入缓冲器和输出驱动电路及控制电路组成。如图2-21所示。当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。返回图2-21

P0口某位的结构图当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。返回二、P0口作为一般I/O口使用1、P0口用作输出口2、P0口作输入口返回1、P0口用作输出口当CPU执行输出指令时,写脉冲加在D锁存器的CP上,这样,与内部总线相连的D端的数据取反后就出现在Q端上,又经输出级FET(T2)反相,在P0端口上出现的数据正好是内部总线的数据。这是一般的数据输出情况。返回2、P0口作输入口当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,这样,端口上的数据经过缓冲器2读入到内部总线。在端口进行输入操作前,应先向端口锁存器写入1,也就是使锁存器Q=0。因为控制线C=0,因此T1和T2全截止,引脚处于悬浮状态,可作高阻抗输入。返回三、P0口作为地址/数据总线使用1.P0口用作输出地址/数据总线以P0口引脚输出低8位地址或数据信息,MUX开关把CPU内部地址/数据线经反向器3与驱动场效应管FET(T2)栅极接通。上下两个FET处于反相,构成推拉式的输出电路(T1导通时上拉,T2导通时下拉),提高了负载能力。当P0口被地址/数据总线占用时,就无法再作I/O口使用了。2.由P0口输入数据:在“读引脚”信号有效时,打开输入缓冲器2,使数据进入内部总线。三、P0口作为地址/数据总线使用返回§2.7.4 P3口一、结构二、P3口作为通用I/O口使用三、P3口用作第二功能使用返回一、结构1、P3口是一个多功能端口,其某一位的结构见图2-22。P3口与P1口的差别在于多了“与非”门3和缓冲器4。使得P3口除了具有P1口的准双向I/O功能外,还可以使用各引脚所具有的第二功能。2、“与非”门3的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能(W)的信号。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。编程时,可不必事先由软件设置P3口为第一功能(通用I/O口)还是第二功能。3、当CPU对P3口进行SFR寻址(位或字节)访问时,由内部硬件自动将第二功能输出线W置1,这时,P3口为通用I/O口。4、当CPU不对P3口进行SFR寻址(位或字节)访问时,即用作第二功能输出/输入线时,由内部硬件使锁存器Q=1。返回图2-22

P3口某位的结构图返回1、当把P3口作为通用I/O口进行SFR寻址时“第二输出功能端”W保持高电平,打开“与非”门3,D锁存器输出端Q的状态可通过“与非”门3送至FET场效应管输出。2、当P3口作为输入使用(即CPU读引脚状态)时,同P0—P2口一样应由软件向口锁存器写1。二、P3口作为通用I/O口使用返回三、P3口用作第二功能使用

当端口用于第二功能时,8个引脚可按位独立定义。见表2-10返回表2-10P3各口线与第2功能表返回§2.7.5端口的负载能力和接口要求1、P0口:

P0口与其他口不同,它的输出级无上拉电阻。当把它用作通用I/O口时,输出级是开漏电路,故用其输出去驱动NMOS输入时须外接上拉电阻。用作输入时,应先向口锁存器(80H)写1。把它当作地址/数据总线时(片外扩展ROM或RAM的情况),则无须外接上拉电阻。P0口的每一位输出可驱动8个LS型TTL负载。2、P1~P3口

P1~P3口的输出级接有内部上拉负载电阻,它们的每一位输出可驱动4个LS型TTL负载。作为输入口时,任何TTL或NMOS电路都能以正常的方式驱动89C51单片机(CHMOS)的P1~P3口。由于它们的输出级具有上拉电阻,所以也可以被集电极开路(OC门)或漏极开路所驱动,而无须外接上拉电阻。对于89C51单片机(CHMOS),端口只能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极(或TTL电路输入端)时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。P1~P3口也都是准双向口。作为输入时,必须先对相应端口锁存器写1。返回§2.7.5端口的负载能力和接口要求1.89C51单片机片内包含哪些主要逻辑功能部件?2.89C51的EA端有何用途?3.89C51的存储器分哪几个空间?如何区别不同空间的寻址?4.简述89C51片内RAM的空间分配。5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。6.如何简捷地判断89C51正在工作?7.89C51如何确定和改变当前工作寄存器组?8.89C51P0口用作通用I/O口输入时,若通过TTL“OC”门输入数据,应注意什么?为什么?9.读端口锁存器和“读引脚”有何不同?各使用哪种指令?返回§2.8思考题与习题

10.89C51P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么?11.89C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?12.89C51单片机有哪些信号需要芯片引脚以第2功能的方式提供?13.内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么?14.使单片机复位有几种方法?复位后机器的初始状态如何?15.开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?16.程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?返回§2.8思考题与习题

17.位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?18.89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?19.一个机器周期的时序如何划分?20.什么叫堆栈?堆栈指针SP的作用是什么?89C51单片机堆栈的容量不能超过多少字节?21.89C51有几种低功耗方式?如何实现?22.PC与DPTR各有哪些特点?有何异同?23.89C51端口锁存器的“读—修改—写”操作与“读引脚”操作有何区别?返回第二章结束§2.8思考题与习题

第3章指令系统Exit§3.389C51指令系统§3.1汇编语言§3.2寻址方式§3.4思考题与习题§3.1汇编语言§3.1.1指令和程序设计语言§3.1.2指令格式BACK§3.1.1指令和程序设计语言指令:是CPU根据人的意图来执行某种操作的命令。程序设计语言:是实现人机交换信息的基本工具,分为机器语言、汇编语言和高级语言。机器语言:用二进制编码表示每条指令,是计算机能直接识别和执行的语言。汇编语言:是用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。BACK§3.1.2指令格式89C51汇编语言指令格式操作码[目的操作数][,源操作数][;注释]汇编语言指令对应的二进制代码格式单字节指令双字节指令三字节指令BACK单字节指令1、指令码中隐含着对某一种寄存器的操作如:指令“INCDPTR”的指令代码格式为:A3H=101000112、由指令中的rrr三位的不同编码指定某一寄存器如:指令“MOVA,Rn”的指令代码格式为:11101rrrBACK双字节指令用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。格式为:操作码立即数或地址BACK三字节指令一个字节操作码,两个字节操作数。格式为:操作码立即数或地址立即数或地址BACK§3.2寻址方式什么是寻址方式:如何找到存放操作数的地址,把操作数提取出来的方法。1、7种寻址方式:2、寻址空间及符号注释:BACK1、7种寻址方式:

1)寄存器寻址2)直接寻址3)立即数寻址4)寄存器间接寻址5)变址寻址6)相对寻址7)位寻址BACK1)寄存器寻址寄存器寻址:由指令指出寄存器组R0~R7中的某一个或其他寄存器(A,

温馨提示

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

评论

0/150

提交评论