




已阅读5页,还剩271页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选,1,单片机原理及应用,精选,2,目录,单片机概述单片机芯片的硬件结构MCS51单片机指令系统MCS51汇编语言程序设计单片机存储器扩展单片机的中断与定时系统单片机I/O扩展与应用单片机串行数据通信MCS51单片机应用与开发技术,精选,3,第一章单片机概述,单片机的概念单片机的发展单片机的应用,精选,4,什么是单片机?单片机将计算机的五大部件集中在同一块集成电路硅片上的计算机。,第一节单片机的概念,单片机的名称:单片微型计算机(SCMC)微控制器(MCU)嵌入式控制器(EMCU),单片机与一般微机最根本的不同之处:单片机的五大部件集成在一块集成电路硅片上。,精选,5,什么是通用单片机和专用单片机?通用单片机是一种基本芯片。专用单片机是针对一种产品或一种控制应用专门设计的,单片机与单片机系统:单片机系统是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。,精选,6,单片机应用系统与单片机开发系统:单片机开发系统即是单片机系统开发调试的工具。仿真器、编程器等,机器语言:基本的的语言形式,多出现在应用系统中,汇编语言:单片机开发中最常用的程序设计语言,高级语言:很具发展潜力。,单片机的程序设计语言和软件常用单片机语言:汇编语言、高级语言c51。,精选,7,单片机的分类:4位单片机特点:一次处理4位二进制数代表产品:COP4XX系列(NS公司)TMP47XXX系列(Toshiba公司)用途:计算器、家用电器等,8位单片机特点:一次处理8位二进制数代表产品:MCS51系列(Intel公司)M6805系列(Motorola公司)用途:工业控制、智能仪表、家用电器和办公自动化系统,精选,8,16位单片机特点:一次处理16位二进制数代表产品:MCS96系列(Intel公司)M68HC16系列(Motorola公司)用途:过程控制、智能仪表、家用电器和计算机外设等,32位单片机特点:一次处理32位二进制数代表产品:M68300系列(Motorola公司)SH系列(日立公司)用途:多媒体、蜂窝电话、光驱等计算机外设,精选,9,第二节单片机的发展,单片机的发展历史第一阶段:4位单片机阶段。主要特点是:价格便宜,具有一定的控制功能。主要代表系列有:日本NEC公司的uMOS40系列、松下公司的MN1400系列,夏普公司的SM系列,富士通的MB88系列等等。,第二阶段:(19761978年)低、中档8位单片机阶段。以Intel公司的MCS48为代表。这个系列的单片机片内集成有8位CPU。并行I/O口,8位定时器/计数器,寻址范围不大于4K,无串行口。,精选,10,第三阶段:(1978至1982)高档8位单片机阶段。这阶段推出的普遍带有串行I/O口,有多种中断处理系统,多个16位定时器/计数器。片内RAM、ROM容量较大,寻址范围可达64K,有的片内还带有A/D转换接口。主要代表系列有Intel公司的MCS51,Motorola公司的6801,Zilog公司的Z8等。,第四阶段:(1982至今)8位单片机完善发展和16位、32位单片机推出阶段。这阶段的主要特征是一方面发展16位单片机及专用单片机,另一方面同时不断完善高栏8位单片机,改善其结构,以满足不同的用户需要。,精选,11,8位单片机的市场前景,8位单片机用途广泛(美国)每家226个办公室42个每汽车35个,注意:基于Internet、无线数字传输的嵌入式应用将会是32位机最广泛的市场。,精选,12,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面:CPU功能增强内部资源增多引脚的多功能化低电压和低功耗,精选,13,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面:CPU功能增强采用亚微米的CMOS工艺提高运算速度,计划把80C51设计成1/3时钟周期执行一条指令,并可在33MHZ时钟下运行。内部资源增多引脚的多功能化低电压和低功耗,精选,14,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面:CPU功能增强内部资源增多增加了A/D和D/A转换器、DMA通道、总线接口、晶振和LCD驱动电路。引脚的多功能化低电压和低功耗,精选,15,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面:CPU功能增强内部资源增多引脚的多功能化采用一脚多用设计方案,减少引脚数量,提高应用灵活性。低电压和低功耗,精选,16,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面:CPU功能增强内部资源增多引脚的多功能化低电压和低功耗制造成3V电源的单片机;采用CMOS工艺,设立掉电和空闲两种工作方式。,精选,17,几种8位单片机的性能概况(1)Intel公司的MCS51系列(2)Philips公司的80C51系列(3)Microchip公司的PIC系列(4)Atmel公司的AT89、AT90、AT91和智能IC卡四个系列(5)Motorola公司的M68HC05、M68HC11系列,精选,18,MCS-51系列单片机特性,精选,19,除了Intel公司外,Siemens、Philips和Fujitsu等公司都在80C51基础上推出与Intel公司的80C51兼容的新型单片机,统称为80C51系列。Philips公司的80C51系列单片机性能卓著,产品最齐全,最具有代表性。它以80C51为内核,新增功能电路有:A/D转换器捕捉输入/定时输出PWM(PulseWidthModulator)脉冲宽度调制器I2C总线接口视频显示控制器监视定时器E2PROM,精选,20,80C51系列单片机主要性能特点,精选,21,PIC系列单片机分低档、中档和高档三个层次。1、产品特点:价格低:率先采用RISC(精简指令系统计算机)技术速度高:两级指令流水线结构采用哈佛双总线结构可靠性好:采用OTP(一次性程序)技术,比熔丝式EPROM更为可靠2、主要应用:嵌入式单片机的主流产品之一。,精选,22,PIC系列中档单片机性能表,精选,23,Atmel公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。单片机产品分为AT89、AT90、AT91和智能IC卡等四个系列。1、产品特点:E2PROM存储器技术FLASH闪速存储器技术2、主要应用:计算机外部设备、通信设备、自动化工业控制航空航天仪表、雷达系统、导弹机器人、各类武器系统,精选,24,AT90系列单片机选型表,精选,25,Motorola公司是世界最具影响力的单片机厂商,其8位机约占8位机市场的30%份额。该公司共分为M6805、M68HC05、M68HC08、M68HC11等几个系列。,精选,26,M6805系列单片机主要性能表,精选,27,M68HC05系列单片机主要性能表,精选,28,M68HC11系列单片机主要性能表,精选,29,第三节单片机的应用,单片机应用的特点1、控制系统的在线应用,2、软硬件结合,(1)计算机在控制系统中的离线应用。由微型机或小型机实现(2)计算机在控制系统中的在线应用。由单片机实现,要求:设计人员既要掌握汇编语句编程技术,又要具备较扎实的硬件理论和实践知识。,精选,30,(1)广泛性:微电子时代的必然发展趋势,意义:有利于产品的小型化、多功能化和智能化;改变了的传统的控制系统设计思想,传统:,控制设计思想,现代:,控制设计思想,4、应用的广泛性及其重要意义,3、应用现场环境恶劣,注意:使用时,应根据环境的温度情况选择合适的芯片。,精选,31,单片机的应用领域1、工业自动化方面2、仪器仪表方面3、家用电器方面4、信息和通信产品方面5、军事装备方面,精选,32,参考书,单片机原理及实用技术张振荣北京人民邮电出版社MCS51系列单片机系统原理与设计苏凯冶金工业出版社单片机原理及其接口技术胡汉才清华大学出版社,精选,33,第二章单片机芯片的硬件结构,MCS51单片机的逻辑结构及信号引脚MCS51单片机的内部存储器MCS51单片机并行输入/输出口电路MCS51单片机时钟电路与时序MCS51单片机工作方式,精选,34,第一节逻辑结构及信号引脚,MCS51单片机结构框图,精选,35,MCS51单片机芯片内部逻辑结构,中央处理器内部数据存储器内部程序存储器定时器/计数器并行I/O口串行口中断控制系统时钟电路位处理器总线,精选,36,1.中央处理器,注意:控制器的时钟脉冲由振荡器OSC电路提供。,PC:存放将要执行的指令地址。IR:存放正在执行的指令地址。ID:存放指令码。定时与控制电路:产生时序输出信号和微操作控制信号,控制器:PC、PC加1寄存器、指令寄存器(IR)、指令译码器(ID)、定时与控制电路。,ALU:用于进行算术、逻辑运算。ACC:用于存放操作数或操作结果。B:用于存放操作数。PSW:用于存放指令执行后的状态信息。TMP:用于存放中间操作数(对用户不开放)。,运算器:ALU、ACC、B、PSW、TMP1、TMP2。,精选,37,2.内部数据存储器由RAM和RAM地址寄存器组成。用于存放可读写的数据。,根据片内ROM的结构,单片机可分为:无ROM型ROM型EPROM型E2PROM型FLASH型,3.内部程序存储器由ROM和ROM地址寄存器组成。用于存放程序和原始数据。,精选,38,4.定时器/计数器2个16位(80C51、8051)用于将其定时或计数的结果对单片机进行控制。,5.并行I/O口4个8位(P0、P1、P2、P3)用于使单片机和存储器或外设之间并行传送8位数据。,6.串行口1个全双工串行口用于单片机和其它数据设备之间的串行数据传送。,精选,39,7.中断控制系统5个中断源、2级中断,10.总线,9.位处理器即布尔处理器。特别适用于控制目的和解决逻辑问题,8.时钟电路典型的晶振频率为12MHZ,精选,40,MCS51单片机的信号引脚,1.信号引脚介绍,精选,41,(1)主电源及时钟引脚(2)控制引脚(3)输入/输出引脚,VCC(40脚)、VSS(20脚)XTAL1(19脚)、XTAL2(18脚),RST/VPD(9脚):复位信号/备用电源ALE/PROG(30脚):地址锁存控制信号/编程脉冲PSEN(29脚):外部程序存储器读选通信号EA/VPP(31脚):访问程序存储器控制信号/编程电源,P0:8位三态双向I/O口,可驱动8个LSTTL负载P1:8位准双向I/O口,可驱动4个LSTTL负载P2:8位准双向I/O口,可驱动4个LSTTL负载P3:8位准双向I/O口,可驱动4个LSTTL负载,精选,42,2.信号引脚的第二功能-引脚“复用”,可概况为:,“一组与三个”,一组:P3口,三个:9脚RST/VPD30脚-ALE/PROG31脚-EA/VPP,精选,43,第二节内部存储器,MCS-51单片机的存储器结构特点,(1)数据存储区与程序存储区完全分开,且各有自己的一套系统,(2)分为内外存储器,精选,44,存储器的配置情况:,物理上:片内程序存储器、片外程序存储器片内数据存储器、片外数据存储器,逻辑上:片内外统一的64KB的程序存储器片内数据存储器64KB片外数据存储器,精选,45,内部数据存储器物理上分为3块:00H7FH(0127)低128字节RAM;80HFFH(128255)高128字节RAM同上128字节专用寄存器(SFR)块,SFR,RAM,RAM,0FFH,80H,7FH,00H,0FFH,80H,精选,46,(1)寄存器区,内部数据存储器低128单元按用途可分为3个区域:,(2)位寻址区,(3)用户RAM区,精选,47,(1)寄存器区,内部数据存储器低128单元按用途可分为3个区域:,4组寄存器组(R0R7)由PSW中的RS1和RS0位确定当前工作寄存器组两种访问通用寄存器的形式:MOVR0,09HMOV08H,09H,精选,48,(3)用户RAM区,(2)位寻址区,16个RAM单元、128位既可进行字节操作,也可进行位操作两种访问位的形式:SETB0FHSETB21H.7,用于存放用户数据或作为堆栈区使用。,精选,49,内部数据存储器高128单元(SFR),1.专用寄存器简介,(1)程序计数器PC,16位程序地址寄存器存放下一条要执行的指令地址具有自动加1功能没有地址,不可寻址,(2)累加器A,8位寄存器存放操作数或结果数据传送中转站作为变址寄存器,精选,50,(3)B寄存器,(4)程序状态字PSW,8位寄存器主要用于乘除运算ABBAA/BAB,例如:MOVA,05HMOVB,03HMULABDIVAB,AC、OV、P的状态在指令执行过程中自动形成;CY的状态在执行算术和逻辑指令时,可以被硬件或软件置位或清除;F0、RS1、RS0由软件设置。,精选,51,CY进位标志位,AC辅助进位标志位,F0用户标志位由用户根据程序执行的需要通过传送指令确定。,在位操作中,充当累加器。,如:RLCA,在某些逻辑运算中也会影响到进位标志位。,如:ANLC,bit,精选,52,OV溢出标志位带符号数加减运算:超出(128-127)范围,置位乘法运算:乘积超过255,置位除法运算:除数为0,置位,RS1、RS0寄存器组选择位用于选择当前工作通用寄存器组有利于程序中保护现场。,例如:MOVPSW,08HMOVR0,43H,精选,53,例:设程序执行前F00,RS1RS000B,请问机器执行如下程序后MOVA,0FHADDA,F8HPSW中各位的状态是什么?,答:PSWC1H,P奇偶标志位表明累加器中1的个数的奇偶性。01的个数为偶数;11的个数为奇数;,精选,54,(5)数据指针DPTR,唯一供用户使用的16位寄存器由DPH、DPL拼成可用来存放片内ROM、片外ROM和片外RAM的地址访问外部数据存储器时作地址指针使用MOVXA,DPTR访问程序存储器时作为基址寄存器使用MOVCA,ADPTR,例如:将片外RAM2000H单元中的数据X,取入累加器。MOVDPTR,2000HMOVXA,DPTR,精选,55,2、专用寄存器的字节寻址,根据不同的型号,可字节寻址的专用寄存器个数不同。8051、80C51、8031等有21个;8052等有26个。分布不连续。PC不可寻址。只能使用直接寻址方式。,精选,56,3、专用寄存器的位寻址,80C51的位寻址空间:位寻址区(128位)+专用寄存器可位寻址区(83位)211位,精选,57,MCS51的堆栈操作,堆栈本身是数据结构范畴内的一种线性表结构在物理上表现为一个特定的存储区域采用LIFO(FILO)的存取规则,(1)堆栈的功用,现场保护和断点保护,数据的临时存放,常用在编程过程中,(2)堆栈的开辟,堆栈只能开辟在内部数据存储器中的低128字节中。最好设置在用户RAM区(30H7FH),注意:在编程中尽量少的运用多级子程序嵌套和多重中断,精选,58,(3)堆栈指示器(SP),功能:用于存放堆栈的栈顶地址。,(4)堆栈类型,(5)堆栈使用方式,自动方式指令方式,精选,59,内部程序存储器,80C51中含有4KB的ROM单元作为程序存储器。地址为0000H0FFFH,其中位于存储区前部的43个单元为系统保留区,分为6个特殊功能区。地址为0000H002AH,0000H0002H为系统启动单元0003H000AH为外部中断0中断地址区000BH0012H为定时器/计数器0中断地址区0013H001AH为外部中断1中断地址区001BH0022H为定时器/计数器1中断地址区0023H002AH为串行中断地址区,精选,60,第三节并行输入/输出口电路,MCS-51系列共有4个8位并行双向口。分别表示为P0、P1、P2、P3。每个I/O端口内部都有一个8位数据输出锁存器和一个8位数据输入缓冲器。其中四个数据输出锁存器和端口号同名,且为SFR中的一个。,精选,61,1、P0口,字节地址80H,位地址80H87H,可作为地址/数据线,也可作为通用I/O口。,A1,A2,精选,62,2、P1口,字节地址90H,位地址90H97H,只可作为通用I/O口。,精选,63,3、P2口,字节地址0A0H,位地址0A0H0A7H,既可作为高8位地址线使用,又可作为通用I/O口使用。一般不作数据传送工作。,精选,64,4、P3口,字节地址0B0H,位地址0B0H0B7H,只可作为通用I/O口。主要用于第二功能控制逻辑。,精选,65,第四节时钟电路与时序,(1)振荡脉冲信号的产生,什么是时钟电路?时钟电路就是用来产生单片机工作所需要的时钟信号的电路。,1、时钟信号的产生,精选,66,(2)MCS-51各时钟信号的产生,2、外部脉冲信号的引入,注意:振荡电路产生的振荡脉冲并不是直接拿来使用的,而是经分频后再为系统所用的!,原因:在多片单片机系统中,为了使单片机之间时钟信号同步。,注意:外时钟信号电平持续时间应大于20ns,且脉冲频率应低于12MHZ!,精选,67,4个:节拍(P)、状态(S)、机器周期、指令周期,MCS-51共有111条指令。按长度分为单字节指令、双字节指令和三字节指令。不同的指令可以在不同的机器周期内完成。,时序定时单位,典型指令时序,节拍(P)振荡脉冲的周期。状态(S)振荡周期的2倍。机器周期振荡周期的12倍。指令周期执行一条指令需要的时间。,时序关系:1个机器周期6个状态12个振荡周期(节拍),精选,68,精选,69,第五节工作方式,1、复位方式和复位电路,(1)复位操作,功能:,初始化单片机,使其进行工作状态,系统重新启动,程序计数器和特殊功能寄存器复位状态,注意:复位后,ALE变为低电平,PSEN变为高电平!,精选,70,(2)复位信号及其产生,片内复位电路在每个机器周期的S5P2时刻对施密特触发器进行采样,以确定是否有复位操作发生。,(3)复位方式,上电自动复位,手动复位,精选,71,2、程序执行方式,2个方式:单步执行工作方式连续执行工作方式,(1)单步执行工作方式单片机在控制面板上的单步执行键控制下一条一条地执行用户程序中的指令。,利用单片机外部中断功能实现主要用于用户程序调试,(2)连续执行工作方式所有单片机都需要的一种工作方式。,精选,72,3、低功耗方式,(1)待机方式,PCON.0-IDL标志位“1”有效,振荡器保持工作,保证中断逻辑、串行口和定时器/计数器电路时钟,中断方式退出,(2)掉电保护方式,PCON.1-PD标志位“1”有效,只保证内部RAM数据不丢失,数据转存-“掉电中断”接通备用电源-支持内部RAM数据,现实方法:,硬件复位方式退出,精选,73,4、EPROM的编程和校验方式,EPROM编程:利用特殊的手段将用户程序写入单片机内部的EPROM。校验:对写入的程序代码连续读出校验的过程。,8751H片内含有4KB的EPROM,具有编程、校验和保密编程等工作方式。,精选,74,(1)编程方式,(2)程序校验方式,(3)加密方式,8751一旦完成保密编程以后,用户可以让它自由执行EPROM中的程序,但不能以任何形式读出和对它进行局部修改。,精选,75,第三章MCS51单片机指令系统,MCS51单片机指令格式和寻址方式MCS51单片机指令分类介绍,精选,76,第一节指令格式和寻址方式,1、指令系统概述,指令计算机适用于控制各功能部件完成某一指定动作的指示和命令。,指令系统指令的集合,因机器而异。如:Z80有150条基本指令Intel8080有70条基本指令MCS51有111条基本指令,指令的三种表示形式:二进制形式直接为CPU执行16进制形式阅读和书写汇编形式编写程序,精选,77,2、MCS-51单片机指令格式,操作码,操作数或操作数地址,(1)一字节指令(49)(2)二字节指令(45)(3)三字节指令(17),如:INCDPTR和MOVA,Rn,如:MOVA,data,如:MOVDPTR,data16和MOVdirect,#data,标号:操作码操作数1,操作数2,操作数3;注释,精选,78,(1)寄存器寻址,特点:指令码中含有操作数所在的寄存器号。MCS51根据该寄存器可找到操作数。,范围:,通用寄存器R0R7,部分专用寄存器(A、B、DPTR等),(2)直接寻址,范围:只限于内部RAM和专用寄存器,3、MCS-51单片机寻址方式,寻址方式:如何指定操作数的所在单元,特点:指令码中含有操作数地址。机器通过该地址寻找操作数。,精选,79,(4)立即寻址,特点:指令码中含有操作数。,(3)寄存器间接寻址,特点:指令码中含有操作数地址所在的寄存器号。机器通过寄存器可找到操作数地址,再根据该地址可找到操作数。,范围:,内部RAM低128单元(只能使用R0和R1),外部RAM(使用DPTR、R0或R1),例:MOVA,R0,精选,80,(5)变址寻址,特点:操作数地址基地址地址偏移量;指令码中隐含存放基地址的寄存器号(PC/DPTR);DPTR/PC中的基地址常常是表格始地址,A中存放偏移量rel。,功能:主要用于访问程序存储器中的数据表格。,例:MOVA,ADPTR,精选,81,(6)位寻址,特点:操作数是可寻址位,指令码中含有位地址。,范围:,内部RAM中的20H2FH位寻址区,高128单元中的可位寻址专用寄存器,表示方法:直接使用位地址位名称表示方法单元地址加位数表示方法专用寄存器符号加位数的表示方法,(7)相对寻址,功能:主要用于解决程序中的转移问题,特点:目的地址=转移指令地址+转移指令字节数+REL,注意:在程序中,相对地址偏移量常用符号表示。,精选,82,4、MCS-51单片机寻址方式小结,对片内外程序存储器只能使用变址寻址方式,内部数据存储器寻址方式灵活,外部数据存储器只能使用寄存器间接寻址方式,精选,83,第二节指令分类介绍,指令格式中符号意义说明,通用格式:MOV,;,特点:源操作数和目的操作数都在内部RAM中。,1、内部RAM数据传送指令组(16条),(1)立即数传送指令(2)直接型数据传送指令(3)寄存器寻址型数据传送指令(4)寄存器间址型数据传送指令,数据传送类指令,精选,84,指令通式:MOVA,#dataMOVRn,#dataMOVRi,#dataMOVdirect,#dataMOVDPTR,#data16,例如:请编程完成将数据X送到20H单元的操作,1.MOVR0,#20HMOVR0,#X,2.MOV20H,#X,精选,85,指令通式:MOVA,directMOVdirect,AMOVRi,directMOVRn,directMOVdirect2,direct1,例如:已知(40H)=X,编程完成将X送到50H单元。,1.MOVR0,#50HMOVR0,40H,2.MOV50H,40H,精选,86,指令通式:MOVA,RnMOVRn,AMOVdirect,Rn特点:指令码中含有Rn的寄存器号,例如:已知R7=X,编程完成将X送到20H单元。,1.MOVA,R7MOV20H,A,2.MOV20H,R7,精选,87,指令通式:MOVA,RiMOVRi,AMOVdirect,Ri特点:指令码中含有Ri的寄存器号;Ri中应预先放有8位二进制地址。,例如:编程完成将20H单元中的数据与30H单元中的数据之间的交换。,MOVA,20HMOV20H,30HMOV30H,A,精选,88,2、外部RAM数据传送指令组(4条),特点:只能使用间接寻址。助记符为MOVX,且须以累加器A为中介。,说明:第1、2条指令可在外部RAM的64K范围内寻址;第3、4条指令能对外部RAM0000H00FFH范围寻址。,指令通式:MOVXA,DPTRMOVXDPTR,AMOVXA,RiMOVXRi,A,精选,89,例如:已知外部RAM的88H单元中有一数据X,试编写程序将X传送到外部RAM的1818H单元。,MOVR0,#88HMOVDPTR,#1818HMOVXA,R0MOVXDPTR,A,精选,90,3、程序存储器数据传送指令组(2条),特点:使用变址寻址。助记符MOVC,也须以累加器A为中介。单向传送。,指令通式:MOVCA,A+DPTRMOVCA,A+PC,说明:两条指令均为单字节查表指令;DPTR/PC中存放被查表的初始地址,A中存放被查表的项数。,精选,91,例3.1以查表方法把累加器中的十六进制数转换为ASCII码,并送回累加器中。其查表程序如下:2000HHBA:INCA2001HMOVCA,A+PC2002HRET2003HDB30H2004HDB31H2005HDB32H200CHDB39H200DHDB41H200EHDB42H2012HDB46H,精选,92,例:已知累加器A中有一个09范围内的数,试用查表指令编出能查找出该数平方值表的程序。,方法一以DPTR为基址寄存器查表。MOVDPTR,#2000HMOVCA,A+DPTRORG2000HDB0DB1DB4DB9DB81END,精选,93,方法二以PC为基址寄存器查表。单元地址指令码ORG1FFBH1FFBH2402HADDA,#data1FFDH83HMOVCA,A+PC1FFEH80FEHSJMP$2000H00HDB001HDB1DB4DB9DB81END,起始地址PC当前值data,精选,94,4、数据交换指令组(4条),指令通式:XCHA,RnXCHA,directXCHA,RiXCHDA,Ri,说明:只有累加器A可作目的操作数。这几条指令执行后会影响PSW中的P标志位。最后一条指令用作代码转换。,精选,95,例二:已知50H中有一个09的数,请编程把它变为相应的ASCII码程序。,MOVR0,50HMOVA,30HXCHDA,R0MOVR0,A,例一:已知外部RAM的20H单元中有一个数X,内部RAM20H单元中有一个数Y,试编写可以使它们互相交换的程序。,MOVR1,20HMOVXA,R1XCHA,R1MOVXR0,A,精选,96,5、堆栈操作指令组,指令通式:,说明:均为双字节指令;A和Rn不可直接出现在指令中,A必须用ACC或它的物理地址(E0H),Rn必须用它的物理地址(00H1FH)。,PUSHdirectPOPdirect,例:利用堆栈作为转存介质编写30H和40H单元中内容的互换。,MOVSP,50HPUSH30HPUSH40HPOP30HPOP40H,精选,97,算术运算类指令,1、加法指令组(不带CY位加法指令),ADDA,RnADDA,directADDA,RiADDA,#data,注意:(1)目的操作数只能是累加器A。(2)参加运算的两个操作数必须是8位二进制数;操作结果也是一个8位二进制数,且会对PSW中标志位产生影响。(3)若将两个操作数看作带符号数,则根据OV位判断结果是否溢出。,精选,98,例一:(A)=0C2H,(R0)=0A9H,执行ADDA,R0指令后,A和PSW中的值是多少?,例二:执行下列指令后,A和PSW中的值是多少?MOVA,#5AHADDA,#6BH,(A)=6BH,(PSW)=85H,(A)=C5H,(PSW)=44H,精选,99,2、带进位加法指令组,ADDCA,RnADDCA,directADDCA,RiADDCA,#data,注意:(1)目的操作数只能是累加器A。(2)主要用于多字节加法运算。(3)其中所加的CY中的值是指令执行前的CY值,不是执行中形成的CY值。,例一:(A)=85H,(R0)=30H,(31H)=FFH,CY=1,试问CPU执行如下指令后累加器A和CY中的值是多少?(1)ADDCA,R0(2)ADDCA,31H,精选,100,例二:两个三字节无符号数相加,被加数放在内部RAM20H-22H单元(低位在前),加数放在内部RAM2AH-2CH单元(低位在前)。编程序实现,将它们计算的结果放在被加数单元中。,MOVR0,#20HMOVR1,#2AHMOVR7,#03HCLRCLOOP:MOVA,R0ADDCA,R1MOVR0,AINCR0INCR1DJNZR7,LOOPCLRAADDCA,#00HMOVR0,A,精选,101,3、带借位减法指令组,SUBBA,RnSUBBA,directSUBBA,RiSUBBA,#data,注意:(1)在单片机内部,减法操作是在控制器控制下采用补码加法来实现的。在实际应用中,可按二进制减法法则进行。(2)MCS-51中没有不带借位的减法指令。(3)进行不带借位减法运算时,可结合“CLRC”指令应用。(4)若将两个操作数看作带符号数,则根据OV位判断结果是否溢出。,精选,102,例二:判断执行如下程序后累加器A和PSW中的值是多少?CLRCMOVA,#52HSUBBA,#0B4H,例一:(A)=0C9H,(R2)=54H,(CY)=1。试问CPU执行指令SUBBA,R2后累加器A和PSW中的值是多少?,(A)=74H,(PSW)=04H,(A)=9EH,(PSW)=C5H,精选,103,4、加1指令组,INCAINCRnINCdirectINCRiINCDPTR,例一:(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行下列指令后,各寄存器及单元中的结果是多少?是否改变了PSW的状态?INCAINCR3INC30HINCR0,注意:只有INCA指令可以影响PSW中的奇偶标志位P,其它指令不会影响标志位。,精选,104,5、减1指令组,DECADECRnDECdirectDECRi,注意:只有DECA指令可以影响PSW中的奇偶标志位P,其它指令不会影响标志位。,精选,105,6、乘除指令组,MULABDIVAB,注意:执行这两条指令,进位标志CY总是被清“0”,例一:已知两个8位无符号乘数分别放在30H和31H单元中,试编出令它们相乘并把积的低8位放入32H单元,高8位放入33H单元的程序。,MOVR0,#30HMOVA,R0INCR0MOVB,R0MULABINCR0MOVR0,AINCR0MOVR0,B,精选,106,7、十进制调整指令,DAA,功能:用于对BCD码十进制数加法运算的结果进行修正。,注意:(1)DA指令不影响溢出标志。(2)使用中通常紧跟在加法指令之后,不能跟在减法指令之后。(3)借助进位标志可实现多位BCD数加法结果的调整。,例一:试写出能完成85+59的BCD加法程序,并对其工作过程进行分析。,MOVA,#85HADDA,#59HDAAEND,精选,107,例二:已知R0和R1中分别存有BCD被减数91和BCD减数36,试编程求它们的BCD差,并存入R3中。,CLRCMOVA,#9AHSUBBA,R1ADDA,R0DAAMOVR3,ACLRCEND,步骤:(1)求BCD减数的补数;(2)BCD被减数加减数的补数;(3)对和进行十进制加法调整。,精选,108,例三:4位压缩BCD数的相加程序。设一个加数存放在30H、31H单元,另一个加数存放在32H、33H单元,试编程序将和存放到30H、31H单元。,MOVR0,#30HMOVR1,#32HMOVA,R0ADDA,R1DAAMOVR0,AINCR0INCR1MOVA,R0ADDCA,R1DAAMOVR0,A,精选,109,逻辑运算及移位类指令,1、逻辑与运算指令组,ANLA,RnANLA,directANLA,RiANLA,#dataANLdirect,AANLdirect,#data,功能:主要用于将某存储单元或累加器A中某几位清“0”。,例:已知R0中有一个ASCII码,试通过编程把它变为BCD码。,MOVA,R0ANLA,#0FHMOVR0,A,精选,110,2、逻辑或运算指令组,ORLA,RnORLA,directORLA,RiORLA,#dataORLdirect,AORLdirect,#data,功能:主要用于将某存储单元或累加器A中某几位置“1”。,例:设(A)=0AAH,P1=0FFH,试通过编程把累加器A中的低4位送入P1口低4位,而P1口高4位不变。,MOVR0,AANLA,#0FHANLP1,#0F0HORLP1,AMOVA,R0,精选,111,3、逻辑异或运算指令组,XRLA,RnXRLA,directXRLA,RiXRLA,#dataXRLdirect,AXRLdirect,#data,功能:主要用于将某存储单元或累加器A中某几位置取反。,例:已知外部RAM30H中有一数6EH,试编写程序令其高4位不变,低4位取反。,MOVR0,30HMOVXA,R0XRLA,#0FHMOVXP0,A,精选,112,4、累加器清零和取反指令组,CLRACPLA,注意:其中CPLA取反指令常用于对某个存储单元或某个存储区域中带符号数的求补。,例:已知30H单元中有一负数X,试写出求X的补码的程序。,MOVA,30HCPLAINCAMOV30H,A,精选,113,5、移位指令组,RLARRARLCARRCASWAPA,精选,114,例一:已知30H、31单元中有一个16位的二进制数(30H单元为低8位),请通过编程令其扩大二倍。,CPLCMOVR1,#30HMOVA,R1RLCAMOVR1,AINCR1MOVA,R1RLCAMOVR1,A,精选,115,例二:在43H、44H单元中有两个BCD数,请通过编程将它们紧缩成一个字节并放入43H单元中(其中43H单元中的BCD数做为紧缩BCD数的高位)。,MOVR1,#43HMOVA,R1SWAPAINCR1ORLA,R1MOV43H,A,精选,116,控制转移类指令,1、无条件转移指令组,2、条件转移指令组,3、子程序调用与返回指令组,4、空操作指令,精选,117,控制转移类指令,LJMPaddr16AJMPaddr11SJMPrelJMPA+DPTR,1、无条件转移指令组,特点:(1)不会影响PSW中的标志位。(2)指令的操作对象是PC的地址。(3)第2、3条指令是相对转移指令,在子程序中很有用。,精选,118,长转移指令,LJMPaddr16;(PC)addr16,例:已知某单片机监控程序起始地址为A080H,试问用什么办法可使单片机开机后自动执行监控程序。,答:为使开机后能自动转入A080H处执行,应在0000H处存放一条如下指令:LJMP0A080H,说明:(1)把指令码中的addr16送入PC,使机器执行下条指令时无条件转移到addr16处执行程序。(2)可以在64KB范围内转移。(3)一般情况,addr16可用符号地址表示。,精选,119,绝对转移指令,AJMPaddr11;(PC)(PC)+2,(PC10-0)addr11,例:已知指令KWR:AJMPaddr11中,KWR=3100H,addr11=10110100101B,则转移的目标地址是多少?,答:程序转移到35A5H处执行。,注意:AJMP指令的目标转移地址不是与AJMP指令地址在同一个2KB区域,而是应与AJMP指令取出后的PC地址在同一个2KB区域。,说明:(1)(PC)(PC)+2,确定程序转移的页面地址。(2)(PC10-0)addr11,确定程序转移的页内地址。,精选,120,短转移指令,SJMPrel;(PC)(PC)+2,(PC)(PC)+rel,1、根据偏移量计算转移的目标地址:例一:835AHSJMP35H例二:835AHSJMP0E7H,答:目标地址=835AH+02H+35H=8391H,答:目标地址=835AH+02H-19H=8343H,说明:(1)rel是一个8位的带符号偏移字节。(2)rel的取值范围是-128到+127。(3)目的地址=(PC)+2+rel。,精选,121,2、根据目标地址计算偏移量:(向高地址转移)rel=目标地址-源地址-2(向低地址转移)rel=(目标地址-源地址-2)补=FEH-(源地址-目标地址),1000H7401HSTAR:MOVA,#01H1002HF8HMOVR0,A1003H90CF01HLOOP:MOVDPTR,#0CF01H1017H80relSJMPSTARTEND,答:rel=E7H。目标地址的转移范围是F99H-1098H,例:有下列程序,请计算SJMPSTAR指令码中的rel,并分析目标地址的转移范围。,精选,122,变址转移指令,JMPA+DPTR;(PC)(A)+(DPTR),说明:(1)DPTR中存放目标转移地址的基地址,常常是一张转移指令表的起始地址。(2)A中存放表的偏移量。(3)主要用于程序的多分支转移。,精选,123,例:已知累加器A中放有待处理命令,编号0-4,程序存储器中放有起始地址为PMTB的三字节长转移指令表。试编一程序能使机器按照累加器A中的命令编号转去执行相应的命令程序。,CM:MOVR1,ARLAADDA,R1MOVDPTR,#PMTBJMPA+DPTRPMTB:LJMPPM0LJMPPM1LJMPPM2LJMPPM3LJMPPM4PM0:PM4:,精选,124,控制转移类指令,2、条件转移指令组,累加器判零转移指令数值比较转移指令减1条件转移指令,精选,125,应用:(1)对于无符号数的比较,可直接根据执行后CY位来判断。(2)对于带符号数的比较,先要确定符号,再判断。,指令操作情况:(1)若左操作数=右操作数,则程序顺序执行(即:(PC)(PC)+3);进位标志清“0”。(2)若左操作数右操作数,则程序转移(即:(PC)(PC)+3+rel);进位标志清“0”。(3)若左操作数0Y0X=01X0,方法二:MOVA,55HJZDONEMOVR0,#0FFHJBACC.7,NEGMOVR0,#01HNEG:MOVA,R0DONE:MOV56H,ASJMP$,精选,147,MOV20H,#00HMOV21H,#00HMOVR0,20HMOVR1,21HMOVR2,#0C8HMOVDPTR,#1000HLOOP:MOVXA,DPTRCJNEA,#5FH,LOOP1LOOP1:JNCNEXT1,例二:某系有200名学生参加外语统考,若成绩已存放在MCS51外部RAM起始地址为1000H的连续存储单元,现决定给成绩在95100分之间的学生颁发A级合格证书,并给成绩在9094分之间的学生颁发B级合格证书。试编写程序,统计获得A级和B级证书的学生人数,并把统计结果存入内部RAM的20H和21H单元。,CJNEA,#5AH,LOOP2LOOP2:JCNEXTINCR1SJMPNEXTNEXT1:INCR0NEXT:INCDPTRDJNZR2,LOOPSJMP$,精选,148,循环结构程序,MOVR0,#50HMOVR1,#60HMOVR2,#0AHLOOP:MOVR3,#03HCLRCLOOP1:MOVA,R0ADDCA,R1MOVR0,AINCR0INCR1DJNZR3,LOOP1DJNZR2,LOOPSJMP$,例:设有10组3字节被加数和加数,分别存放在以50H和60H为起始地址的两个数据块中。请编程求10组数的和(设和仍为3字节),并把和送回以50H为起始地址的数据块中。,精选,149,第四节伪指令,功能:用来对汇编过程进行某种控制,或者对符号、标号赋值。,注意:(1)伪指令是不能执行的指令,在汇编过程中不产生可执行的目标代码。(2)不同版本的汇编语言,伪指令的符号和含义可能不同。,精选,150,ORG(汇编起始地址命令)用于规定此命令后面的程序或数据块的起始地址。格式:ORG,END(汇编终止命令)用于终止程序的汇编工作。格式:END,注意:(1)一个源程序只能有一条END命令。(2)当源程序为主程序时,可带标号,且此标号为主程序第一条指令的符号地址。当源程序为子程序,则不应带标号。,注意:(1)一个源程序中可以多次使用ORG指令。(2)规定的地址应从小到大,且不允许重叠。,精选,151,EQU(赋值命令)用于给“字符名称”赋值。格式:EQU,注意:“字符名称”所赋的值可以是一个8位二进制数或地址,也可以是一个16位二进制数或地址。,例:下列程序中的语句都合法的。,AAEQUR1A10EQU10HDELAYEQU07E5HMOVR0,A10MOVA,AALCALLDELAY,精选,152,DB(定义字节命令)用于为汇编语言源程序在内存的某区域中定义一个或一串字节。格式:DB,例一:,START:MOVA,64HTAB:DB45H,73,01011010B,5,A,DB“howareyou?”DB-2,-4,10,17,例二:,注意:(1)“8位数表”可以是一个8位二进制数或用逗号分开的一串8位二进制数或用引号括起来的字符串。(2)8位二进制数可以采用多种表示形式。,精选,153,确定数据区的起始地址的方法:,(1)根据前一条指令的地址确定。,(2)利用ORG命令进行规定。,例:,8100HMOVA,49HTAB:DB0C0H,0F9H,例:,ORG8100HTAB:DB0C0H,0F9H,精选,154,DW(定义数据字命令)用于为源程序在内存某个区域定义一个或一串字。格式:DW,注意:主要用于定义16位地址(高8位在前,低8位在后)。,例:,START:MOVA,20HORG1520HHETAB:DW1234H,8AH,10END,结果:(1520H)=12H,(1521H)=34H(1522H)=00H,(1523H)=8AH(1524H)=00H,(1525H)=0AH,精选,155,DS(定义存储区命令)用于从指定地址开始,保留指定数目的字节单元作为存储区。格式:DS,例:,START:MOVA,#32HSPC:DS08HDB25HEND,注意:DB、DW、DS命令只能对程序存储器使用,不能对数据存储器使用。,精选,156,BIT(位定义命令)用于给以符号形式的位地址赋值。格式:BIT,例:,A1BIT00HA2BITP1.0MOVC,A1MOVA2,CEND,精选,157,第五章单片机存储器扩展,MCS-51单片机系统扩展及结构MCS-51单片机存储器扩展与编址技术MCS-51单片机程序存储器扩展MCS-51单片机数据存储器扩展存储器综合扩展MCS-51单片机存储器系统的特点和使用,精选,158,第一节系统扩展及结构,主要指单片机外部资源的引入。包括存储器的扩展和I/O的扩展。,1、系统扩展结构,系统扩展通过系统总线进行。,精选,159,2、系统总线及总线构造:,MC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绣品服饰纺织品行业深度研究分析报告(2024-2030版)
- 2025年镀锌市场调查报告
- 中国电子纸行业市场发展监测及投资战略规划研究报告
- 2022-2027年中国聚氨酯夹芯板行业发展监测及投资战略研究报告
- 2025年中国特种养殖市场深度分析及投资战略咨询报告
- 华法林钠笼型物项目投资可行性研究分析报告(2024-2030版)
- 2025年中国铂铑热电偶行业发展前景及投资战略咨询报告
- 2025年中国电影营销服务市场竞争格局及投资战略规划报告
- 中国红花梨行业市场全景评估及投资战略研究报告
- 2025年醋酐项目深度研究分析报告
- GA/T 1163-2014人类DNA荧光标记STR分型结果的分析及应用
- 钢栈桥施工监理细则
- 骨转移瘤课件
- 护士注册健康体检表下载【可直接打印版本】
- 核心素养视角下教师专业发展课件
- 污水处理培训课件
- 初中语文八年级下册第三单元综合性学习古诗苑漫步-综合性学习《古诗苑漫步》教案
- 中国十大阶层的划分课件
- 高中英语各种教材词组汇总大全(超级实用)
- 内燃机机油泵转子系列参数
- 远程视频会议系统建设方案课件
评论
0/150
提交评论