《单片机微机原理与接口技术》.ppt_第1页
《单片机微机原理与接口技术》.ppt_第2页
《单片机微机原理与接口技术》.ppt_第3页
《单片机微机原理与接口技术》.ppt_第4页
《单片机微机原理与接口技术》.ppt_第5页
免费预览已结束,剩余271页可下载查看

下载本文档

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

文档简介

微机原理与接口技术,主讲:朱洪涛2020年5月12日,课程地位:1、微机,特别是单片机应用技术,是机电一体化六大关键技术之一;2、机械学院机电学院的转变中所扮演的角色;3、对本课程对机类学生电类学生的影响。,课程说明:微机原理与接口技术课程,是全国高校工科,特别是电类与机电类专业的必修课程,许多学校同时将该课程列为研究生入学考试课程。实践中,本课程教学安排上有二种不同方案,二者有诸多相通之处,但偏重点完全不同,希望学习过程及将来参加其它考试时特别予以关注:a)主要讲授8088/8086微型计算机系统原理及其接口技术;b)主要讲授单片微型计算机原理及其接口技术。,适用教材:单片机初级教程-单片机基础(2)参考书目:单片微型计算机原理与接口技术陈光东编华中理工大学出版社单片机中级教程-原理与应用何立民主编、张俊谟著北京航空航天大学出版社单片机原理与应用李晓荃主编、魏立东等著电子工业出版社,计划学时:55学时(其中讲课46学时,实验6学时,习题学时)前导课程:数学、电工电子学、计算机语言类等课程后续教学环节:1、微机原理与接口技术课程设计2、机电一体化相关方向的毕业设计,学习网站,学习软件:,实验工具:DVCC系列单片机实验装置,第一章绪论,1.1计算机的发展历程1.1.1按构成计算机的逻辑元件的类型来分类:第一代电子计算机1946年,电子管计算机ENIAC问世,主要用于科学计算,包含18800个电子管,功耗150KW,30吨重,占地150M2第二代电子计算机1958年,晶体管计算机问世,开始用于工业控制第三代电子计算机1960s年代中期,集成电路计算机问世第四代电子计算机1970s年代初期,大规模集成电路计算机问世50年来,计算机的性价比提高:速度提高千万倍、存储容量提高千万倍、体积缩小千万倍、软件性能提高百万倍、价格降低为万分之几,1.1.2按计算机的规模、性能、用途和价格分类:巨型机、大型机、中型机、小型机、微型机1.1.3计算机技术的二个重要发展方向:巨功能:功能不断强大,以增强运算能力(位宽、运算次数)、主频、存储容量及数据通讯能力、显示能力、接口能力等为主。微型化:体积不断缩小,以增强控制能力、嵌入式应用、超低功耗、低成本、高可靠等为主。,1.1.4微型机家族:微处理器(CPU)CentrePorcessUnit,是小型或微型计算机的核心,负责数据的运算与控制。微型计算机除微处理器外,还需有存储器、输入输出接口(如键盘、显示器、打印机)等外围电路与之协同工作的一个完整的系统。微型计算机系统统称系统机,以功能的通用性与完整性,及应用的开放性为突出特征。PC机:典型的系统机。(PersonalComputer)单片微型计算机简称单片机,以满足一定要求的基本功能或少量的特殊功能部件,包括CPU、RAM、ROM、定时/计数器、及各种I/O接口电路集成于一片芯片上为突出特征。片上系统(SOC)正在发展之中的片上完整系统。,1.1.5微型机的发展历程1971年,Intel公司推出4004微处理器。(4位机)1974年,Intel公司推出8080微处理器。(8位机)同时期产品:Motorola公司的M6800、Zilog公司的Z80、Intel公司的8080A、8085A1978年,Intel公司推出8086微处理器。(16位机)同时期产品:Motorola的M68000、Zilog的Z8000、Intel的8088(8位版的8086)1979年,IBM公司进入微型计算机市场。1983年,Intel公司的802861985年以来,Intel公司的80386、80486、Pentium、PentiumII、PentiumIII、PentiumIV,1.2单片机1.2.1单片机的不同称谓单片机(SCM)SingleChipMicrocomputer,常用,但不够准确MCUMicrocontrollerUnit,比单片机更准确一些,但不够流行嵌入式微处理器EnbeddedMicroprocesser嵌入式微控制器EnbeddedMicrocontroller,时髦,准确,正在流行,1.2.2单片机的发展1976年,Intel公司推出MCS-48系列单片机。特点:8位CPU、并行I/O口、8位定时器、片内小容量的RAM、ROM、寻址空间小于4KB、简单的中断处理机制、无串行口1980年,Intel公司推出MCS-51系列单片机。特点:外部总线规范化(16位地址总线,寻址空间64KB;8位数据总线;增加串行总线;控制总线),8位CPU、并行I/O口、16位定时器、片内RAM、ROM容量增大、多级中断处理机制、位操作功能、片内特殊功能寄存器SFR(建立了外围功能电路的SFR集中管理模式)1982年,Intel公司推出MCS-96系列单片机。特点:16位CPU、增加8路10位A/D、PWM型D/A等同期间,不同厂家同步推出了相应的单片机机型:Motorola公司的M6800系列Zilog公司的Z8系列Rockwell公司的6500系列,1990年,Intel公司公开了8051内核。特点:8051兼容型单片机,形成了百花齐放的局面,成为单片机的发展方向。,1、增加片内功能(如存储容量与方式、WDT、程序保密系统、A/D、D/A、电压比较器、LED/LCD/VFD显示器驱动、I2C/CAN/USB总线)2、提升性能(CMOS化、提高运行频率、RISC结构运行、低功耗、宽电压、程序串行下载ISP、增大寻址空间)3、降低成本(紧凑型)、低价格代表:ATMEL公司的89c51、89c2051Philips公司的8Xc51WENBOND公司的W78c51,1.2.3单片机的主要应用领域由于单片机有许多优点,因此其应用领域之广,几乎到了无孔不入的地步。单片机应用的主要领域有:1)智能化家用电器:各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制,升级换代,提高档次。如洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲以及各种视听设备等。2)办公自动化设备:现代办公室使用的大量通信和办公设备多数嵌入了单片机。如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。3)汽车电子产品:现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视器(黑匣子)等都离不开单片机。,4)商业营销设备:在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC卡刷卡机、出租车计价器以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机控制。5)工业自动化控制:工业自动化控制是最早采用单片机控制的领域之一。如各种测控系统、过程控制、机电一体化、PLC等。在化工、建筑、冶金等各种工业领域都要用到单片机控制。6)智能化仪表:采用单片机的智能化仪表大大提升了仪表的档次,强化了功能。如数据处理和存储、故障诊断、联网集控等。7)智能化通信产品:最突出的是手机,当然手机内的芯片属专用型单片机。,8)航空航天系统:飞机、飞船、空间站,及其跟踪、监测、生命保障系统等,无一不是人类科技高度集中的产品,大量采用的智能传感器、控制装置中,单片机扮演着重要的角色。9)国防军事、尖端武器等领域:单片机的应用更是不言而喻。,单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。随着单片机应用的推广,微控制技术将不断发展完善。,1.3本教程的特点取典型机型,学习单片机基本理论硬件与软件学习并举理论教学与实验教学相结合以培养获得从事系统开发的能力为目标,习题:一、为什么说计算机技术的发展是人类20世纪最伟大的发明?二、什么是单片机?它在计算机家族中的地位如何?三、计算机的发展趋势是什么?四、单片机的发展趋势是什么?五、在你身边的什么地方能找到单片机的身影?,第二章计算机基础知识,2.1数制与编码2.1.1数制成语:半斤八两-时:分:秒1、数制的基与权基:数制使用的数码的个数权:数制每一位所具有的值1)十进制(Decimal)有0,1,2,3,4,5,6,7,8,9共10个基数码权:1000,100,10,1例:435D=4102+3101+5100,2)二进制(Binary)有0,1共二个基数码权:8,4,2,1例:1011B=123+022+121+120=11D3)十六进制(Hexa-decimal)有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共十六个基数码权:4096,256,,16,1例:3eH=3161+14160=62D=0011,1110B,在计算机内部计算/存储/逻辑运算中,实际上采用的是二进制。具体地:在电路结构中,高电平为1,低电平为0在计算机编程过程中,常采用十六进制数,便于记忆二进制数。,2、数制的转换1)二、十六进制数转换为十进制数按权展开后计算2)十进制数转换为二、十六进制数除二取余法:以待转换的十进制数连续地以2去除,直至商为0,再逆序取余数。,2.1.2编码计算机能识别的数是二进制数(或十六进制数)问题:1)数字的符号(正数与负数);2)加减法;3)字符的表示方法0、无符号数的编码8位无符号数,可表示0255,共256个数值。1、有符号数的编码原码:数码的最高位表示符号,0:正数;1:负数8位有符号数原码,可表示-127+127,共255个数反码:由原码求得。正数的反码与原码相同;负数的反码除符号位不变外,其余各位均由1变0,或由0变1(取反)。8位有符号数反码,可表示-127+127,共255个数补码:由反码求得。正数的补码与反码相同;负数的补码为反码加18位有符号数补码,可表示-128+127,共256个数,例1:X1=+1010101BX1原=01010101BX1反=01010101BX1补=01010101B例2:X2=-1010101BX2原=11010101BX2反=10101010BX2补=10101011B注意:X2补补=11010101B=X2原,2、有符号数的运算1)日常现象:当前时间为3点。设某表当前指示为10点,该如何拨动?方法1:逆时针方向拨动7格算式:10-7=3方法2:顺时针方向拨动5格算式:10515(12)+32)一组概念模(mod)系统量程即能表示的最大的数。上例中,模为12。同余Z=nK+Y(n为自然数),则称Z与Y对模K同余。溢出系统超程,最高位自然丢失。,3)有符号数的加减法:符号带在数码中,可将减法转换成(补码的)加法进行计算。例:,二进制运算过程:0001,1000B+1111,0101B=1,0000,1101B,此例中,模为28=25611=0000,1011B,与245=1111,0101同余。补码的理解:负数以有符号数补码表示时,实际上取的是其同余数的无符号数码。,3、二-十进制数编码BCD码(BinaryCodedDecimal),作用:便于记忆与阅读,又适于计算机处理特点:1)不能直接在二进制数与BCD码之间进行转换,而必须先经过十进制,再间接进行转换。例:0011,0101BCD=35=0010,0011B2)计算机运算时将其视作为二进制数,程序员必须非常清醒!,4、字母与字符的编码常用的为ASCII码(AmericanStandardCodeforInformationInterchange)ASCII(美国标准信息交换码),2.2计算机基本组成电路2.2.1常用逻辑电路,1、与门表达式:Y=AB图形符号:真值表:,2、或门Y=AB,3、非门表达式:图形符号:真值表:,4、异或门Y=AB,5、与非门表达式:图形符号:真值表:,6、或非门,2.2.2触发器触发器是计算机记忆装置中的基本单元,一个触发器能存储一位二进制代码。1、RS触发器,2、D触发器,例:74LS74双D触发器(DualPositive-Edge-TriggeredDFlip-Flops),例:74LS113双JK触发器(DualJ-KEdge-triggeredFlip-Flop),3、JK触发器,2.2.3寄存器计算机中的数据是以字节为基本单位来组织的,寄存器就是存放这些数据的物理单元。一个触发器构成寄存器的一个位。根据寄存器在计算机中的作用的不同,可以分为:1)缓冲寄存器2)锁存器3)移位寄存器4)计数器,1、缓冲器(Buffer)/锁存器(Latch),用于暂存数据,以便在适当的时机(节拍,或称时序)进行数据的传递(输入缓冲,或输出锁存)。,图例四位缓冲寄存器,2、移位寄存器(ShiftingRegister),并行的概念:多位多线同时输入(或输出)。串行的概念:多位单线(另地线)分时输入(或输出)。移位寄存器包括:串入串出、串入并出、并入串出等形式。,图例四位串入并出寄存器,3、计数器(Counter),计数的概念:计算脉冲个数,结果以二进制数形式输出。加1计数与减1计数的概念:二进制结果是递增/递减计数的。,图例四位减1计数器,图例四位加1计数器,4、三态门(Tri-stateBuffer),总线的概念:计算机内部或内部与外部的公共通道。总线的分类:数据总线、地址总线、控制总线。三态门:高电平状态、低电平状态、高阻状态使能端:相当于一个开关,控制三态门输出的允许/禁止。,2.2.4常用数据存储器/缓冲器/驱动器单片机的外部总线上,经常连接着多个数据源设备和多个数据负载设备,此时,会遇到这样的问题:1、总线隔离问题多个数据源数据干扰对策:输入缓冲即:在某一时刻,只允许一个数据源与总线连接,而其它数据源与总线隔离(呈现高阻状态)。CPU能通过控制总线,控制这些数据源与总线之间的连接关系与时序。2、总线驱动问题多个数据负载驱动能力对策:总线驱动即:通过使用驱动能力更大的门电路(输出电流更大)来弥补单片机引脚输出功率不足的问题。注:51单片机吐出电流能力很小,但有一定的吸入电流的能力。,3、数据保持问题多个数据负载数据保持对策:输出锁存即:通过使用数据锁存器,记忆总线输出的状态信息。,4、常用芯片1)742448同相三态数据缓冲器、驱动器2)742458总线接收器/发送器3)743738D锁存器,2.3存储器2.3.1名词解释,存储器是由大量缓冲寄存器组成,可以存放程序和数据。1)存储器中每个寄存器称为一个存储单元。存储单元地址:每个存储单元的编号,一个地址码唯一确定一个存储单元。存储单元内容:存储单元中存放的二进制数2)存储单元个数与地址线根数关系,N地址线根数W存储单元个数,2.3.2存储器指标1)存储器速度:读或写一个信息所需的时间,一般为几十ns几百ns2)存储器容量:指一片存储器最多能存储二进制信息量,一般用字节(Byte)表示1kB1024B1024KB1MB1024MB1GB其中:1B8bit,2.3.3存储器的分类1)RAM(RandomAccessMemory):随机存取存储器,主要用来存放各种现场的输入、输出数据、中间计算结果,以及与外存交换信息和作堆栈用。RAM又常称为数据存储器。特点:可随时读写、但掉电后信息丢失。分类:静态SRAM:电源加于存储器,信息可长期保留动态DRAM:每隔一段时间需重新写入一次(动态刷新)可现场改写的非易失存储器:FLASH、NVSRAM、FRAM,2)ROM(ReadOnlyMemory)只读存储器,通常用于存放程序。ROM通常又称为程序存储器。应用:一般用来存放固定程序以及各种表格特点:使用时只读不能写,掉电后信息不丢失分类:掩膜ROM(ROM)可编程的ROM(PROM)可擦除的PROM(EPROM)电可擦除的EPROM(EEPROM),2.3.4存储器的寻址原理1)ROM中的信息:实际上是以二极管阵列的存在(表示1)或熔断(表示0)来实现的。2)存储器的寻址:地址代表着一个唯一的存储单元。,习题:P29第1、2、3、4、5、6、8、9、11,第三章单片机的结构及原理,3.189S51单片机的结构3.1.1单片机的组成及结构1、80C51功能方框图,89S51新增功能双DPTRWDTISPFlashMemory89S52新增功能T2定时器,2、89s51单片机内部结构图,3.1.289s51单片机的引脚定义及功能1、89s51引脚图2、89s51逻辑符号,3、89s51的外形与封装1)DIP封装有40脚(最常用)42脚二种。,2)TQFP封装3)PLCC封装,4、89S51单片机的引脚定义及功能,1)输入输出引脚P0.0P0.7(3932脚):第一功能:8位漏极开路型双向I/O口。第二功能:在访问片外存储器时,它分时提供低8位地址和8位双向数据。P1.0P1.7(2128脚):第一功能:带内部上拉的8位双向I/O口。第二功能:P1.0(T2)P1.1(T2EX)P1.5(MOSI)P1.6(MISO)P1.7(SCK)P2.0P2.7(2128脚):第一功能:带内部上拉的8位双向I/O口。第二功能:在访问片外存储器时输出高8位地址P3.0P3.7(1017脚):多功能口。主功能:带内部上拉的8位双向I/O口。复用功能:,2)控制引脚RST(9脚)复位输入端,高电平有效。ALE(30脚):地址锁存允许,当单片机访问外部存储器时,该引脚控制是否锁存P0口输出的低8位地址。对87C51片内EPROM编程(固化)时,此引脚用于输入编程脉冲。,(29脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。,VPP(31脚):当端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出4KB(对80C51而言,视片内ROM的容量而定)时,将自动执行片外程序存储器的程序。当端输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。,3)主电源引脚Vss(20脚):接地。Vcc(40脚):主电源+5VDC。4)时钟电路引脚XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反向放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL2(18脚):接外部晶体的另一端。在片内它是一个振荡电路反向放大电路的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。,3.2单片机的工作原理,3.2.1基本概念,1、指令:规定计算机执行特定操作的命令,一般由二进制表示。指令可分为操作码和操作数两部分。2、指令系统:计算机全部指令的集合。3、程序:根据任务要求有序编排指令的集合。4、软件:为了运行和管理计算机所编制的各种程序的总和。,3.2.2CPU工作原理,CPU主要是由运算器和控制器这两大部分组成。,1、控制器,1)功能:用来统一指挥和控制计算机工作的部件。取指指令译码发出控制信号,2)组成:指令部件时序部件微操作控制部件,3)程序计数器:又称为PC指针,是一个16位专用寄存器,作用:用于存放和指示下一条要执行指令的地址。,自动加1的功能:每次取指后,PC就会自动加1。,2、运算器,1)功能:用于对数据进行算术运算和逻辑操作的执行部件2)组成:算术逻辑部件ALU累加器ACC(Accumulator)暂存寄存器程序状态字寄存器PSW(ProgramStatusWord)通用寄存器BCD码运算调整电路等,PSW,3.2.3单片机执行程序的过程,3.3单片机的存储器组织,3.3.1基本概念,1、存储器结构分类:哈佛结构普林斯顿结构2、89S51采用哈佛结构,3.3.2程序存储器,1、分片内程序存储器与片外程序存储器二种,片内、片外程序存储器空间重叠片内或片外的指定,由脚状态决定。64K空间,16位寻址,2、程序存储器低端关键单元的特殊作用,0000H单元:80C51单片机复位后的程序入口0003H单元:外部中断0的中断服务程序入口000BH单元:T0的中断服务程序入口0013H单元:外部中断1的中断服务程序入口001BH单元:T1的中断服务程序入口0023H单元:串行口的中断服务程序入口002BH单元:T2的中断服务程序入口,3、用MOVC指令,采用PC或DPTR变址寻址访问程序存储器,3.3.3数据存储器,1、分“片内数据存储器”与“片外数据存储器”二种,片内、片外数据存储器空间独立片内128B(256B)空间,8位地址寻址片外64K空间,16位寻址,2、片外数据存储器映象,64K片外数据存储器空间,无特殊规定片外I/O端口,与RAM统一编址片外数据存储器与片外I/O访问,均使用或控制片外数据存储器或I/O的访问,均采用MOVX指令片外数据存储器或I/O的访问,均通过累加器A进行,3、片内数据存储器映象,1)片内数据存储器的低128B为RAM区最低32B(00H1FH)为工作寄存器区分为4个工作寄存器组:0组00H07HRS1=0RS0=01组08H0FHRS1=0RS0=12组10H17HRS1=1RS0=03组18H1FHRS1=1RS0=1每个工作寄存器组包含8个工作寄存器:R7R6R5R4R3R2R1R0(参见P33表32)次低16B(20H2FH)为可位寻址RAM位地址编排:00H7FH共128位(参见P34表33)其余(30H7FH)为普通的数据存储器,(89S52还有80H0FFH,为只能间接寻址的普通数据存储器),2)片内数据存储器的高128B为SFR区专用寄存器区SFR(称为“特殊功能寄存器”)分布图谱,可位寻址的单元特征:地址的低3位为0(或者说,低4位地址为0或8)位地址80HFFH,T2CON00000000B,T2MODXXXXXX00B,TL200000000B,TH200000000B,RCAP2L00000000B,RCAP2H00000000B,与89S52对应的T2定时器,89S51新增的WDT、双DPTR等,80C51有21个特殊功能寄存器:Acc累加器BB寄存器PSW程序状态字SP堆栈指针DPTR数据指针(DPH、DPL)P0P3端口P0P3的印象寄存器IP中断优先级寄存器IE中断允许寄存器TMOD定时器/计数器方式字TCON定时器/计数器控制字TH0T0计数值高8位TL0T0计数值低8位TH1T1计数值高8位TL1T1计数值低8位SCON串行控制字SBUF串行数据缓冲器PCON电源控制字,89S51新增:AUXR1AUXRWDTRSTDP1HDP1L89S52新增:TH2TL2RCAP2HRCAP2LT2CONT2MOD,CY:进借位标志在进行加法(或减法)运算时,如果操作结果最高位(位7)有进位,CY置“l”,否则清“0”。在进行位操作时,CY又作为位操作累加器C。移位指令时,左移D7Cy右移D0CyAC:半进位标志加法(或减法)运算时,低半字节(位3)向高半字节进位(或借位),AC置“1”,否则清“0”。AC亦可用于BCD码调整时的判别位。RS0、RS1:工作寄存器区选择位工作寄存器组选择位,用以选择指令当前工作的寄存器组。OV:溢出标志有符号数运算时,如运算结果超出了数值范围会发生溢出,使OV1,否则OV0。在乘法运算中,OV1表示乘积超过255在除法运算中,OV1表示除数为0。P:奇偶标志运算结果中如果有奇数个“1”,则置P为“1”,否则置“0”。在80C51的指令系统中,凡是改变累加器A中内容的指令均影响奇偶标志位P。F1、F0:用户标志由用户置位或复位。,PSW,堆栈的作用,SP初始值为07H用户可修改SP的值SP指向栈顶,SP,SP1,堆栈操作,先入后出原则SP自动加1(压栈时)或自动减1(退栈时)显式操作与隐式操作覆盖的危险性!,SP堆栈指针,暂存数据保护现场,双DPTR,DPTR的作用89S51新增双DPTR,双DPTR的使用,DPTR0与DPTR1的切换AUXR11)不可位寻址2)仅最低位有定义DPS1选用DPTR1DPS0选用DPTR0DPTR的赋值方法1)双DPTR共用一个名称:DPTR取决于选中哪个2)MOVDPTR,#34D3H或MOVDPH,#34HMOVDPL,#0D3H,书中有错:D0D7不是位地址!,3.4输入输出端口结构,1、P0口(80H)的位结构IO切换读引脚/读锁存器上拉电阻第二功能数据复现问题,2、P1口(90H)的结构IO切换读引脚/读锁存器内部上拉ISP功能T2T2EX,3、P2口(0A0H)的结构IO切换读引脚/读锁存器内部上拉第二功能数据复现问题,4、P3口(0B0H)的结构IO切换读引脚/读锁存器内部上拉第二功能数据复现问题,5、P3口(0B0H)的第二功能,6、I/O口的负载能力,1)P0口的输出级与PlP3口的输出级在结构上是不同的,没有内部上拉电阻。因此,它们的负载能力和接口要求也各不相同,P1P3口也被称做准双向口。2)P0口的每一位可驱动8个LSTTL负载。P0既可作IO端口使用,也可作地址总线数据总线使用。当把它作通用口输出时,输出级是开漏电路,在驱动NMOS或其他拉电流负载时,只有外接上拉电阻,才有高电平输出;作地址总线数据总线时,无需外接电阻,但此时不能再作IO口使用。3)P1P3口输出级接有内部上拉负载电阻,每位可驱动4个LSTTL负载。4)P0P3口都是双向IO口,作输入时,必须先在相应端口锁存器上写“1”,使驱动管FET截止。系统复位时,端口锁存器全为“1”,3.580C51的时序与时钟电路,3.5.1基本概念1)时钟周期T也称振荡周期,为时钟脉冲频率的倒数。2)机器周期完成一个基本操作所需时间。MC12T3)指令周期执行一条指令所需的时间,一般包括14个机器周期。,3.5.2时钟电路提供单片机片内各种微操作的时间基准。1、内部时钟方式利用芯片内部的振荡器外接晶体或陶瓷谐振器晶振,典型值是12MHzC1、C2:取值在20pF100pF,89S51的晶振可达33MHz,2、外部时钟方式利用外部振荡脉冲接入XTAL1或XTAL2。HMOS和CHMOS单片机的外时钟信号接入方式不同。,3.680C51的复位电路,复位电路完成单片机的初始化操作。3.6.1复位信号的产生外部复位信号引入RST引脚。内部复位电路每个机器周期采样一次该状态,因此,RST上保持2个机器周期(24个时钟周期)以上的高电平信号,将使CPU进入复位状态。3.6.2复位后的状态复位时,ALE和成输入状态,ALE1片内RAM不受复位影响。P0P30FFH,SP07HPC0000H其余SFR为0,3.780C51低功耗方式,作用:节能,PCON(87H)电源控制寄存器,波特率倍增位,掉电操作,待机操作,3.7.1待机方式1、进入:使IDL位为12、结果:1)振荡信号不供给CPU,但其它功能部件正常工作2)内部状态(PSWPCSPACCRAM等)不变3)耗电量降为3mA3、退出:将唤醒CPU1)响应中断或带电硬件复位SFR不变(仅IDL被清0),RAM不变,程序从断点继续执行2)上电硬件复位,全部初始化,置待机方式后的第一条指令不要为写指令(有误操作的可能性),3.7.2掉电方式1、进入:使PD位为12、结果:1)振荡器停振,CPU及其它功能部件停止工作2)内部状态(PSWPCSPACCRAM等)不变3)耗电量降为50A,电源电压可低至2V3、退出:将唤醒CPU1)带电硬件复位,RAM不变,SFR全部初始化2)上电硬件复位,全部初始化,习题:P68:1、2、3、4、5、6、7、12,第四章80C51指令系统,一组数据:7种寻址方式111条指令二个概念:单字节双字节三字节指令单周期双周期四周期指令,64条,45条,2条,49条,45条,17条,4.180C51指令系统简介,机器码:,单字节指令,双字节指令,三字节指令,程序地址地址偏差,寄存器别名字节地址,寻址方式:指在指令代码中用以表示操作数地址的各种规定。寻址方式与计算机的存储器空间结构是密切联系的,寻址方式越多则计算机的功能越强,灵活性亦越大,能更有效地处理各种数据。80C51共有7种寻址方式,4.2寻址方式,RnRi#data#data16directaddr11(addr16)relbit/X(X),4.2.1符号注释,Rn:当前选中的工作寄存器R0R7(n07),Ri:当前选中的工作寄存器组中可作为地址指针的两个工作寄存器R0和R1(i0或1),#data:8位立即数,即包含在指令中的8位常数,#data16:16位立即数,即包含在指令中的16位常数,direct:8位片内低128字节RAM单元及SFR的直接地址,addr11(addr16):11位或16位目的地址,rel:8位地址偏移量用于相对转移指令中补码表示,其范围为-128+127,bit:片内RAM或SFR的直接寻址位地址,:间接寻址方式中,表示间址寄存器的符号,/:位操作指令中,表示对该位先取反再参与操作,但不影响该位原值,X:注释时,表示片内RAM的直接地址或寄存器,(X):注释时,在直接寻址方式中,表示直接地址X中的内容,:注释时,指示指令操作流程,将箭头左边的内容送入箭头右边的单元内,4.2.2寻址方式,1、立即寻址在指令中给出了操作数立即数就是存放在程序存储器中的常数。立即数前用“#”号表示,MOVA,3AHMOVDPTR,#3FA6H,2、直接寻址指令中给出了操作数的地址。在80C51单片机中,直接寻址能用来访问1)特殊功能寄存器(也只有这一种寻址方式)2)低128字节内部RAM3)位地址空间,MOVA,3AHMOVPSW,50H,3、寄存器寻址以通用寄存器的内容为操作数通用寄存器包括:1)累加器A2)通用寄存器B(与A连用)3)地址寄存器DPTR4)R0R7(工作寄存器组的选择由PSW中的RS1和RS0来确定。),MOVA,R2INCDPTR,4、寄存器间接寻址寄存器中存放操作数的地址能用寄存器间接寻址的寄存器:R0、R1、DPTR、SP寻址空间1)用R0、R1间接寻址,访问片内RAM2)用SP,进行堆栈操作(其中,高128字节只能用这二种寻址方式)3)用DPTR、R0、R1间接寻址,访问片外数据存储器,MOVA,R0MOVXA,DPTR,5、变址寻址(基址寄存器变址寄存器间接寻址)以DPTR或PC为基址寄存器,累加器A为变址寄存器。变址寻址时,把两内容相加,所得到的结果作为操作数的地址。A中的数据为无符号数寻址空间:程序存储器,MOVCA,ADPTR,93H,下一条指令,ALU,2040H,2041H,20EOH,操作码,目标地址(PC)=20E0H,0H,20H,00H,DPL,DPH,47H,47H,例:MOVCA,ADPTR,6、相对寻址将程序计数器PC中的当前内容与指令第二个字节所给出的数相加,其结果作为跳转指令的转移地址只用于修改PC值偏移量为补码数,范围:128127,JC03H,80H,下一条指令,ALU,54H,rel=54H,2000H,2001H,2002H,2056H,操作码,PC当前值,2002H,修正后转移,目标地址(PC)=2056H,例:SJMP2056H,7、位寻址对片内RAM或SFR的位寻址区进行位操作时的寻址方式。,SETB20HCLRC,是最常用、最基本的一类指令。一般传送类指令是把源操作数传送到目的操作数,指令执行后,源操作数不变,目的操作数修改为源操作数。交换型传送指令不丢失目的操作数,它只是将源操作数和目的操作数交换了存放单元。传送类指令一般不影响标志位只有堆栈操作可以直接修改程序状态字PSW传送目的操作数为ACC的指令将影响奇偶标志P,4.3数据传送类指令,4.3.1内部RAM数据传送指令,1累加器A为目的操作数的指令MOVA,data;dataAMOVA,direct;(direct)AMOVA,Rn;RnAMOVA,Ri;(Ri)A,4.3.1内部RAM数据传送指令,2、以寄存器Rn为目的操作数的指令MOVRn,#data;dataRnMOVRn,direct;(direct)RnMOVRn,A;ARn,例1A5BH,R110HR220H,R330H,(30H)4FH执行指令:MOVR1,A;AR1MOVR2,30H;(30H)R2MOVR3,#83H;83HR3执行后:R15BH,R24FH,R383H。,4.3.1内部RAM数据传送指令,3、16位数据传送指令MOVDPTR,#DATA16该指令在译成机器码时,是高字节在前,低字节在后。如“MOVDPTR,#1234H”其机器码是90、12、34。,4.3.1内部RAM数据传送指令,4、以直接地址为目的操作数的指令MOVdirect,#data;data(direct)MOVdirect,direct;(direct)(direct)MOVdirect,A;A(direct)MOVdirect,Rn;Rn(direct)MOVdirect,Ri;(Ri)(direct),4.3.1内部RAM数据传送指令,5、以间接地址为目的操作数的指令MOVRi,A;A(Ri)MOVRi,direct;(direct)(Ri),MOVRi,#data;data(Ri),例2已知R0=60H,(60H)=50H执行如下指令:MOV40H,R0;(R0)(40H)该指令执行过程如图1-10所示。执行结果是40H单元中为50H,4.3.2外部RAM数据传送指令,只有这四条:MOVXA、DPTR;(DPTR)AMOVXDPTR,A;A(DPTR)MOVXA,Ri;(Ri)AMOVXRi,A;A(Ri),例3把外部数据存储器2040H单元中的数取出,传送到2230H单元中去。根据题意可编程序如下:MOVDPTR,#2040H;2040HDPTRMOVXA,DPTR;(DPTR)AMOVDPTR,2230H;2230HDPTRMOVXDPTR,A;A(DPTR),4.3.3查表指令,在80C51指令系统中,有两条极有用的查表指令,其数据表格放在程序存储器中。MOVCA,A十PC;PC十1PC,(A十PC)AMOVCA,A十DPTR;(A十DPTR)A,PUSHdirect;SP十1SP,(direct)(SP)POPdirect;(SP)(direct),SP1SP,4.3.4堆栈操作指令,使用堆栈时。一般需重新设定SP的初始值。由于压入堆栈的第一个数必须存放在SP十1存储单元,故实际栈顶是在SP十1所指出的单元。另外,要注意留出足够的存储单元作栈区,因为栈顶是随数据的弹入和弹出而变化的,如栈区设置不当,则可能发生数据重叠,这样会引起程序混乱,以至无法运行。一般情况,执行此指令不影响标志,但若目标操作数为PSW,则有可能使一些标志改变。这也是通过指令强行修改标志的一种方法。,?,4.3.5交换指令,XCHA,Rn;ARnXCHA,direct;A(direct)XCHA,Ri;A(Ri)XCHDA,Ri;A.3A.0(Ri.3Ri.0)SWAPA;A.3A.0A.7A.4,4.4算术运算类指令,包括:1、加法类、减法类、乘法类、除法类2、自加1、自减1类3、BCD码调整类关键点:1、影响标志位2、加、减、乘、除法均通过A来完成,功能:把源操作数所指出的内容加到累加器A,其结果存在A中。,4.4.1加法指令,ADDA,Rn;A十RnAADDA,direct;A十(direct)AADDA,Ri;A十(Ri)AADDA,#data;A十dataA,如果位7有进位:CY位置“1”,否则清“0”;如果位3有进位:AC位置“1”,否则清“0”。有符号数相加,还要判断OV位:若OV为“1”,表示和数溢出。,功能:把源操作数所指出的内容及进位位内容,加到累加器A,其结果存在A中。,4.4.2带进位加法指令,ADDCA,Rn;A十Rn+CyAADDCA,direct;A十(direct)+CyAADDCA,Ri;A十(Ri)+CyAADDCA,#data;A十data+CyA,1、对标志位的影响与加法指令相同2、常用于多字节加法运算例:MOVA,R1ADDA,R0MOVR1,AINCR0INCR1MOVA,R1ADDCA,R0,先清Cy位?,功能:将累加器A中的数,减去源操作数所指出的内容及进位位,其结果存在A中。,4.4.3带进位减法指令,SUBBA,Rn;ARnCASUBBA,direct;A(direct)CASUBBA,Ri;A(Ri)CASUBBA,#data;AdataCA,如果位7有借位:CY位置“1”,否则清“0”;如果位3有借位:AC位置“1”,否则清“0”。有符号数相减,还要判断OV位:若OV为“1”,表示差数溢出。,先清Cy位?,4.4.4乘法指令,MULAB,ABBA对PSW的影响:Cy0若乘积大于FFH,则OV置“1”,否则清“0”。也影响奇偶标志位。,4.4.5除法指令,DIVAB;AB的商A,余数B对PSW的影响:执行本指令后,标志CY和OV均复位,B0时,A和B中的内容为不变,OV标志置“1”,说明除法溢出。此指令影响奇偶标志位P。,不影响除奇偶校验位外的其它标志位,INCA;A1AINCRn;Rn1RnINCdirect;(direct)1(direct)INCRi;(Ri)1(Ri)INCDPTR;DPTR1DPTR,4.4.6加1指令,4.4.7减1指令,不影响除奇偶校验位外的其它标志位,DECA;A-1ADECRn;Rn-1RnDECdirect;(diret)-1(direct)DECR1;(Ri)-1(Ri),没有:DECDPTR指令!,4.4.8十进制加法调整指令DAABCD码加法运算时使用跟在ADD和ADDC指令之后用于对BCD码加法运算结果自动进行修正。对BCD码调整过程:A039或AC1时,低4位加6调整A479或Cy1时,高4位加6调整,1、清除标志位2、只能跟在加法指令之后,4.5逻辑运算与移位类指令,执行这些指令时一般不影响程序状态字寄存器PSW,仅当目的操作数为ACC时对奇偶标志位P有影响。逻辑运算:与、或、异或、取反、清零等移位:A中内容逐位左移、右移等,4.5.1逻辑“与”指令ANLA,Rn;ARnAANLA,direct;A(direct)AANLA,Ri;A(Ri)AANLA,#data;AdataAANLdirect,A;(direct)A(direct)ANLdirect,#data;(direct)data(direct),常用于屏蔽某些位。(使某些位为0)例1已知A8FH,(40H)96H执行指令“ANLA,40H”,结果:A86H,(40H)96H,P1,4.5.2逻辑“或”指令ORLA,Rn;ARnAORLA,rect;A(direct)AORLA,Ri;A(Ri)AORLA,#data;AdataAORLdirect,A;(direct)A(direct)ORLdirect,#data;(direct)data(direct),常用于置位某些位。(使某些位为1)例2:已知A1AH,R045H(45H)39H执行指令ORLA,R0结果:A3BH,R045H(45H)39H,P1,4.5.3逻辑“异或”指令XRLA,Rn;ARnAXRLA,direct;A(direct)AXRLA,Ri;A(Ri)AXRLA,#data;AdataAXRLdirect,A;(direct)A(direct)XRLdirect,#data;(direct)data(direct),作用:使某些位取反。例3已知A87H,(32H)77H执行指令XRL32H,A结果:A87H(32H)F0H,P0。,4.5.4取反和清“0”指令取反指令CPLA;A清“0”指令CLRA;0A例4:已知A01011010B执行CPLA后,A10100101B执行CLRA后,A00H,4.5.5循环移位指令左移RLARLCA右移RRARRCA,4.6控制转移类指令,有条件或无条件地控制程序从原顺序执行的地址,转移到其它指令地址上。原顺序执行的地址:PC指向下一条指令首址转移:向前、向后转移局部、区域、全局转移条件转移无条件转移调用,4.6.1无条件转移指令长转移指令LJMPADDR16短转移指令AJMPADDR11(又称绝对转移指令)相对转移指令SJMPrel,相对转移指令(2字节)可以转移到ROM中以PC指向的下一条指令的首址为起点,128127的范围。,长转移指令(3字节)可以转移到ROM中64K的任意位置,短转移指令(2字节)可以转移到ROM中同一页(2K)的任意位置(注:PC指向下一条指令的首址),例:当前PC1245H则下一条指令首址1247HPC0001,0010,0100,0111B执行后,程序转移到PC0001,0XXX,XXXX,XXXXB,4.6.2条件转移指令判零转移(2字节)JZrel;A=0,pc+2+relpc;A0,pc+2pcJNZrel;A0,pc+2+relpc;A=0,pc+2pc,4.6.2条件转移指令比较转移(3字节),CJNEA,direct,rel;A(direct):PC+3PC,0C;A(direct):PC+3+relPC,0C;A(direct):PC+3+relPC,1CCJNEA,#data,rel;Adata:PC+3PC,0C;Adata:PC+3+relPC,0C;Adata:PC+3+relPC,1CCJNERn,data,rel;Rndata:PC+3P,0C;Rndata:PC+3+relPC,0C;Rndata:PC+3+relPC,1CCJNERi,data,rel;

温馨提示

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

评论

0/150

提交评论