单片机原理及应用电子课件电气测控.ppt

上传人:小飞机 文档编号:6449653 上传时间:2023-11-01 格式:PPT 页数:464 大小:6.03MB
返回 下载 相关 举报
单片机原理及应用电子课件电气测控.ppt_第1页
第1页 / 共464页
单片机原理及应用电子课件电气测控.ppt_第2页
第2页 / 共464页
单片机原理及应用电子课件电气测控.ppt_第3页
第3页 / 共464页
单片机原理及应用电子课件电气测控.ppt_第4页
第4页 / 共464页
单片机原理及应用电子课件电气测控.ppt_第5页
第5页 / 共464页
点击查看更多>>
资源描述

《单片机原理及应用电子课件电气测控.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用电子课件电气测控.ppt(464页珍藏版)》请在三一办公上搜索。

1、单片机原理及应用,主讲人:赵 虎,电 话:E-mail:,第1章 单片机概述,本章重点:1、什么是单片机 2、单片机的分类及特点 3、什么是嵌入式系统,1.1 单片机概况,1.1.1 什么是单片机,单片机 是单片微型计算机的简称。将计算机的CPU、RAM、ROM、定时/计数器和多种IO接口集成在一片芯片上,形成了芯片级的计算机。单片机早期的含义称为单片微型计算机(single chip microcomputer),直译为单片机。,准确反映单片机本质的叫法应该是微控制器MicroController Unit(MCU)或MicroProcesser Unit(MPU),单片机也称为嵌入式微处理

2、器(Embedded MicroProcesser)或嵌入式微控制器(Embedded MicroController),1.1.2 单片机的发展简史及未来,初级阶段:1974-1978年。代表芯片Intel公司的MCS-48系列,Motorola公司的6801系列和Zilog公司的Z8系列。高性能阶段:1978-1983年。代表芯片Intel公司的MCS51系列。8位单片机巩固提高阶段:1983年-现今。这一阶段一方面不断完善8位单片机,另一方面发展16位、32位机。,单片机的发展趋势:8位机是主流,未来是8位机与32位机共同发展的时代。,单片机从结构功能上的发展趋势:1、大容量高性能化2、

3、小容量低价格化3、外围电路内装化4、RISC结构取代CISC结构,1.1.3 单片机的分类及特点,1、分类,(1)按指令集分类 复杂指令集(CISC)结构普林斯顿结构 精简指令集(RISC)结构哈佛结构,(2)按半导体工艺分 高密度短沟道MOS工艺HMOS 互补金属氧化物HMOS工艺CHMOS,(3)按片内程序存储器类型分 无ROM型、QTP型、EPROM型、OTP型和Flash型,(4)按字长分 1位、4位、8位、16位、32位、64位,2、单片机的特点,(1)优异的性价比,(2)集成度高、体积小、可靠性高,(3)控制功能强,(4)低电压、低功耗,1.1.4 单片机的应用,1、在智能仪器仪表

4、中的应用,2、在工业方面的应用,3、在电信中的应用,4、在军用导航方面的应用,5、在日常生活中的应用,6、在其它方面的应用,1.2 常用8位系列单片机简介,1.2.1 Intel公司8位系列单片机,89系列单片机,1、AT89系列(美国Atmel公司),2、P89系列(Philiips公司),特点:126时钟模式,支持ISP,1.2.3 W78E51系列(台湾华邦公司),1.2.4 M68HC08系列(Motorola公司),Motorola公司单片机命名方法,指令系统与MCS-51不同,1.2.5 PIC系列(美国Microchip公司),1.3 单片机与嵌入式系统简介,1.3.1 什么是嵌

5、入式系统,嵌入式系统就是将计算机系统按特定的要求嵌入到实际应用系统中。,嵌入式系统一般是指非PC机系统,它由硬件和软件两大部分组成。硬件包括微处理器MCU、存储器、I/O端口及外设、图形控制器等;软件包括操作系统(OS或实时多任务操作系统)、应用程序系统、或称监控程序系统等。,1.3.2 嵌入式计算机系统与通用型计算机的特点,1.嵌入式系统是面向特定的应用,2.嵌入式系统是知识集成系统,3.嵌入式系统的硬、软件必须具有高效率,4.嵌入式系统和实际应用有机地结合在一起,5.嵌入式系统的软件固化于内部存储器中,6.嵌入式系统本身无自举开发能力,1.3.3 嵌入式系统的发展趋势,1.嵌入式系统应用软

6、件的开发需要强大的开发工具和操作系统的支持,2.联网成为发展的必然趋势,3.支持小型电子设备实现小尺寸、微功耗和低成本,4.应能提供精巧的多媒体人机界面,1.4 常用单片机开发工具,1.4.1 Keil51 集成开发环境,目前常用版本Vision3 V3.31。特点:1、集成开发环境,源程序编辑、编译、链接、调试均在集成环境下2、支持多种处理器(包括ARM)3、支持C语言和汇编语言4、支持源程序调试5、支持硬件仿真器6、支持软件仿真器,Keil 软件的启动画面,利用Keil 集成开发环境调试程序,1.4.2 Proteus仿真软件,目前版本 V7.7SP2,用的较多的版本是V6.7SP3和V7

7、.12 特点:1、可以实现单片机、接口芯片的电路仿真,非常适用于教学和产品开发的前期阶段。2、与MutsimEWB功能相当,但比其小巧,V6.7SP3压缩包仅18.5M。并且可以实现多种单片机(MCS-51、PIC系列、ARM系列)的仿真和程序调试。3、对计算机的硬件要求非常低(赛扬2.0 256M内存),利用Proteus软件在进行数字电压表的调试和仿真,1.4.3 有关网站和参考书,电子开发网:单片机开发工具网:力源信息:http:/成都力源单片机技术有限公司:http:/周立功单片机:http:/Proteus仿真社区:http:/,参考书:单片机原理及应用 万文略主编 重庆大学出版社单

8、片机原理及接口技术 李朝青编著 北京航空航天大学出版社Proteus入门实用教程 周润景 张丽娜 刘印群 编著 机械工业出版社,小 结,单片机,是单片微型计算机的简称。将计算机的CPU、RAM、ROM、定时/计数器和多种IO接口集成在一片芯片上,形成了芯片级的计算机。,嵌入式系统就是将计算机系统按特定的要求嵌入到实际应用系统中。嵌入式系统一般是指非PC机系统,它由硬件和软件两大部分组成。,作 业,教材:P17 1-1,1-4,1-61-1、什么叫单片机?它有哪些特点?1-4、单片机主要应用在哪些方面?1-6、什么叫嵌入式系统?它与单片机的关系如何?,第二章单片机内部结构及原理,本章要点MCS5

9、152系列CPU内部结构特点MCS5152系列单片机存储器的结构MCS-5152系列单片机I/O端口结构及驱动能力,使用时的注意事项MCS5152系列单片机存储器空间结构及位寻址空间,2.1 Intel公司的MCS-51/52系列单片机内部结构原理,2.1.1 MCS-51/52系列单片机CPU的结构,MCS-51/52系列单片机内部由一个8位CPU、128256B数据存储器、程序存储器、23个16位定时器、4个8位的可编程I/O端口和可编程全双工UART串行口等组成。,1 控制器,控制器由程序计数器(PC,16位)、指令寄存器(IR,8位)、指令译码器(ID)、定时控制与条件转移逻辑电路等组

10、成。它的功能是对来自存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。,2 运算器,运算器由算术逻辑单元ALU、累加器ACC、暂存器、程序状态字寄存器PSW、BCD码运算调整电路等组成。,(1)累加器ACC ACC是一个8位的寄存器,简称为A,它通过暂存器与ALU相连。它是CPU执行指令时使用最频繁的寄存器,用来存一个操作数或中间结果。,(2)算术逻辑单元ALU ALU是由加法器和其它逻辑电路等组成的,它用于对数据进行算术四则运算和逻辑运算、移位操作、位操作等功能。ALU的两个操作数,一个由A通过暂存器2输

11、入,另一个由暂存器1输入,运算结果的状态送PSW。,(3)程序状态字寄存器PSW PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。它可以进行位寻址。PSW各位的定义如下:,PSW位地址字节地址D0H,CY(PSW.7):进位标志,在进行加或减运算时,如果操作结果最高位有进位或借时,CY由硬件置“1”,否则清“0”。在进行位操作时,CY又可以被认为是位累加器,它的作用相当于CPU中的累加器A。AC(PSW.6):辅助进位标志(又称半进位),在进行加或减运算时,低四位数向高四位产生的进位或借位,将由硬件置“1”,否则清“0”。AC位可用于BCD码调整时的判断位。F0(PSW.5):用

12、户标志位,由用户置位或复位。它可作为用户自行定义的一个状态标记。RS1 RS0(PSW.4 PSW.3):工作寄存器组指针,用以选择CPU当前工作的寄存器组。,RS1 RS0与工作寄存器组的对应关系,OV(PSW.2):溢出标志,当进行算术运算时,如果产生溢出,则由硬件将OV位置1,否则清“0”。当执行有符号数的加法指令ADD或减法指令SUBB时,当D6位有向D7位的进位或借位时 D6CY=1时,而D7位没有向CY位的进位或借位D7CY=0时,则OV=1或D6CY=0,D7CY=1则OV=1所以溢出的逻辑表达式为:OV=D6CY D7CY F1(PSW.1):用户标志位,同F0。P(PSW.0

13、):奇偶标志位,该位始终跟踪累加器A内容中“1”的奇偶性。当累加器A内容中有奇数个“1”时,P置1;否则,P置“0”。改变累加器A中内容的指令均会影响P标志位。,2.1.2 MCS-51/52单片机存储器结构,1 MCS-51/52单片机存储器划分方法,2 程序存储器 MCS-51/52单片机的程序存储器一般用于存放编好的程序、表格和常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器,8052片内有8KB的ROM,8752片内有8KB的EPROM,8032片内无程序存储器。当EA=1时,PC在00FFFH范围内执行片内ROM中的程序;PC在1000H

14、0FFFFH范围内执行片外ROM中的程序。当EA0时,PC在00FFFFH,64k范围内执行片外ROM中的程序。,MCS-51/52单片机的程序存储器中有7个特殊地址单元。0000H:MCS-5152单片机复位后PC=0000H,即程序从0000H开始执行指令。0003H:外部中断0入口地址 000BH:定时器0溢出中断入口地址 0013H:外部中断1入口地址 001BH:定时器1溢出中断入口地址 0023H:串行口中断入口地址 002BH:定时器2溢出,T2EX(P1.1)端负跳变时的入口地址(仅对52子系列单片机所具有)。,3 数据存储器 数据存储器用于存放运算中间结果、数据暂存和缓冲、标

15、志位、待调试的程序等。数据存储器在物理上和逻辑上都分为两个地址空间:一个是片内128/256字节的RAM,另一个是片外最大可扩充64K字节的RAM。访问片内RAM使用MOV指令,访问片外RAM使用MOVX指令。对片外RAM只能采用间接寻址方式,用R0、R1和DPTR作为间址寄存器;前两者是低8位地址指针,寻址范围为256B,而DPTR是16位地址指针,故寻址范围可达64K字节。片内数据存储器在物理上又可分为二个不同的区:,(1)00H7FH(0127)单元组成低128字节的片内RAM区,对其访问可采用直接寻址或间接寻址的方式。其中:01FH共32个单元分为4组,每组8个单元组成工作寄存器R0R

16、7;20H2FH共16个字节、128个位的地址为007FH;30H7FH共80个单元,为用户RAM区,做为堆栈或数据缓冲。,(2)80HFFH(128256)单元组成高128字节的专用寄存器(SFR)区,只能采用直接寻址方式来访问。(3)MCS-52子系列中的片内RAM增大了128字节,其地址范围也是从80HFFH;为了与SFR区分,对此段的范围只能采用间接寻址方式来访问。,4 专用寄存器SFR MCS-51/52中共有23个专用寄存器SFR(又称特殊功能寄存器),其中3个仅52子系列单片机所拥有,5个是双字节寄存器,11个具有位寻址能力(特点:字节地址可以被8整除),这些专用寄存器离散地分布

17、在片内RAM的高128字节地址中。专用寄存器并未占满80HFFH整个地址空间,对空闲地址的操作是无意义的。若访问到空闲地址,则读入的是随机数。,单片机特殊功能寄存器SFR,注意:系统复位后,(SP)07H,P0P3为0FFH,SBUF内容不定,IP、IE、PCON部分位的值不确定外,其余寄存器内容均为0.,2.1.3 MCS-51/52系列单片机引脚及功能,下面分别说明各主要引脚的功能:1.主电源引脚Vss和Vcc Vss(20脚):接地 Vcc(40脚):主电源+5V,正常操作和对EPROM编程及验证时均接+5V电源。2.外接晶振引脚XTAL1和XTAL2 XTAL1(19脚)和XTAL2(

18、18脚):接外部晶振的两个引脚。,3.控制信号引脚 RSTVPD(9脚):单片机复位备用电源引脚。ALEPROG(30脚):当访问片外存储器时,ALE(地址锁存允许)的输出用于锁存低字节地址信号。当CPU不访问外部RAM时,该引脚输出晶振频率1/6频率的正脉冲信号。对于EPROM型单片机,该引脚在编程期间用于输入编程脉冲。PSEN(29脚):输出访问片外程序存储器的读选通信号。EAVpp(31脚):当该输入端输入高电平时,CPU可访问片内程序存储器4KB或8KB的地址范围。若PC值超出4KB/8KB地址时,将自动转向访问片外程序存储器。当EA输入低电平时,则只能访问片外程序存储器,不论片内是否

19、有程序存储器。对于EPROM型单片机(8751),在对EPROM 编程期间,此引脚用于施加+21V的编程电压Vpp。注意:ALE和PSEN引脚的驱动能力均为8个LSTTL负载。,4.输入输出引脚P0、P1、P2、P3 P0.0P0.7(3932脚):P0口是一个8位漏极开路型准双向IO端口。在访问片外存储器时,它分时做低8位地址总线和8位双向数据总线(AD0 AD7)。在EPROM编程时,由P0口输入指令字节;而在验证程序时,则输出指令字节。验证程序时和做为双向I/O端口一样,要求外接上拉电阻。P0口能以吸收电流的方式驱动8个LSTTL负载。P1.0P1.7(18脚):P1口是一个带内部弱上拉

20、电阻的8位准双向IO口。在EPROM编程和验证程序时,由它输入低8位地址。P1能驱动4个LSTTL负载。在52子系列单片机中,P1.0还相当于专用功能端T2,即定时器的计数输入/时钟输出端;P1.1还相当于专用功能端T2EX,即定时器T2的重装载/捕捉/方向等外部控制端。P2.0P2.7(2128脚):P2口是一个带内部弱上拉电阻的8位准双向IO口。在访问外部存储器时,由它输出高8位地址(A8 A15)。在对EPROM编程和程序验证时,由它输入高8位地址。P2可以驱动4个LSTTL负载。P3.0P3.7(1017脚):P3口是一个带内部弱上拉电阻的准双向IO口。在MCS-51/52中,这8个引

21、脚还用于专门的第二功能,见下表。P3口能驱动4个LSTTL负载。,P3口的第二功能表,小 结,1、51系列单片机是8位机。52系列与51系列的差别。2、51系列单片机的存储器在物理上分为4个存储空间,在逻辑上分为3个存储空间。3、程序存储器中7个特殊的单元。4、内部RAM 07FH根据用途不同分为3个空间。5、SFR的地址范围在内部RAM 80H0FFH空间内,其中部分寄存器可以位寻址。6、系统复位后各个寄存器的值。7、单片机各引脚的功能及其驱动能力。,2-2、MCS5152系列单片机内部包含哪些主要逻辑功能部件?2-4、MCS5152单片机的存储器从物理上和逻辑上分别可划分几个空间?2-6、

22、MCS51单片机片内256B的数据存储器可分为几个区?分别做什么用?2-10、程序状态寄存器PSW的作用是什么?常用状态有哪些位?作用是什么?,作 业,教材P41 2-2,2-4,2-6,2-10,2.1.4 单片机IO端口结构,1 P0口的结构及功能,(1)P0口结构 它由1个输出锁存器、2个三态输入缓冲器、1个输出驱动电路和1个输出控制电路组成。输出驱动电路由一对FET(场效应管)组成,其工作状态受输出控制电路的控制;输出控制电路由一个与门电路,1个反相器和1个路多路开关MUX组成,(2)P0口的功能 P0口做一般IO口使用时 多路开关MUX的位置由CPU发出的控制信号决定。当P0口做IO

23、端口使用时,CPU内部发出控制电平0信号封锁与门,使输出上拉场效管T1截止,同时多路开关把输出锁存器Q端与输出场效应管T2的栅极接通。此时P0即做通用的IO口使用。当P0口做输出口时:内部数据总线上的信息由写脉冲锁存至输出锁存器,输入D=0时,Q0而Q1,T2导通,P0口引脚输出“0”;当D=1时,Q1而Q0,T2截止,P0口引脚输出1。输出驱动级是漏极开路电路,若要驱动NMOS或其他拉电流负载时,需外接上拉电阻。P0口中的输出可以驱动8个LSTTL负载。,P0口做输入口时:端口中有2个三态输入缓冲器用于读操作。其中输入缓冲器2的输入与端口引脚相连,故当执行一条读端口输入指令时,产生读引脚的选

24、通将该三态门打开,端口引脚上的数据经缓冲器2读入内部数据总线。输入缓冲器1并不能直接读取端口引脚上的数据,而是读取输出锁存器Q端的数据。Q端与引脚处的数据是一致的。结构上这样的安排是为了适应“读-修改-写”一类指令的需要。端口进行输入操作前,应先向端口输出锁存器写入“1”,使Q=0则输出级的两个FET管均截止,引脚处于悬空状态,变为高阻抗输入。这就是所谓的准双向I/O口。单片机的P0P3都是准双向IO口。,P0口做地址数据总线复用时 在扩展系统中,P0端口做为地址数据总线使用,此时可分为两种情况:一种是以P0口引脚输出地址数据信息。另一种情况由P0口输入数据,此时输入的数据是从引脚通过输入缓冲

25、器2进入内部总线。当P0口做地址/数据总线复用时,它就不能再做通用I/O口使用了。,2 P1口的结构及功能(1)P1口结构 P1口也是一个准双向IO口,其结构见图所示。P1口在结构上与P0口的区别是:没有多路开关MUX和控制电路部分;输出驱动电路部分与P0也不相同,只有一个FET场效应管,同时内部带上拉电阻,此电阻与电源相连。,(2)P1口的功能 P1口可做通用双向IO口使用,当P1口输出高电平时,能向外部提供拉电流负载,因此不必再外接上拉电阻。当端口用做输入时,和P0口一样,为了避免误读,必须先向对应的输出锁存器写入“1”,使FET截止。然后再读端口引脚。在52子系列单片机和89系列单片机中

26、,P1.0和P1.1是多功能位。除做一般双向IO口外,P1.0还可以做为定时器计数器2的外部输入端,这时此引脚以T2来表示;P1.1还可做为定时器计数器2的外部控制输入,以T2EX来表示。,3P2口的结构及功能(1)P2口的结构 P2口的位结构中上拉电阻的结构与P1相同,但比P1口多了一个输出转换多路控制部分。(2)P2口的功能 当多路开关MUX倒向锁存器输出Q端时,构成了一个准双向IO口此时P2做通用的IO口用。P2引脚的数据与内部总线相同。当系统扩展有大于256字节64K字节的外部存储器时,在CPU的控制下,转换开关MUX倒向内部地址线一端,此时P2口可用于输出高8位的地址。因为访问外部存

27、储器的操作是连续不断的,P2口要不断输出高8位地址,故此时P2口不可能再做通用IO口使用。,4P3口的结构及功能(1)P3口的结构 同样P3口与P1口的输出驱动部分及内部上拉电阻相同,比P1口多了一个第二功控制部分的逻辑电路(由一个与非门和一个输入缓冲器组成)。(2)P3口的功能 P3口是一个多功能的端口。当第二输出功能保持高电平时,打开与非门,锁存器输出可以通过与非门送FET管输出到引脚端,这是做通用IO口的输出使用情况。输入时,引脚数据通过三态缓冲器2和3在读引脚选通控制下进入内部总线。,P3口除了做通用IO使用外,它的各位还具有第二功能。当P3口某一位用于第二功能做输出时,该位的锁存器应

28、置“1”,打开与非门,第二功能端内容通过“与非门”和FET送至端口引脚。当做第二功能输入时,端口引脚的第二功能信号通过缓冲器3送到第二输入功能端。总之,无论P3口做通用输入口还是做第二输入功能口用,相应位的输出锁存器和第二输出功能端都应置“1”,使FET截止。P3口的引脚信号输入通道中有2个缓冲器,当做第二输入功能时,引脚输入信号取自缓冲器3的输出;做通用输入口时输入信号取自三态缓冲器2。,5.端口负载能力和接口要求 P0口的输出级与P1P3口的输出级在结构上是不相同的,因此他们的负载能力和接口要求也各不相同。(1)P0口的每一位输出可驱动8个LSTTL负载。P0口在驱动拉电流和MOS负载时必

29、须要接上拉电阻。(2)P1P3口的输出级均接有内部上拉电阻,他们的每一位输出可以驱动4个LSTTL负载。(3)P0P3口都是准双向IO口,做输入时,必须先向相应端口的锁存器写入“1”,使驱动管FET截止。P0口输入时呈高阻态,而P1P3口内部有上拉负载电阻,当系统复位时,P0P3端口锁存器全为“1”。,2.3 单片机的振荡器及时序电路,几个概念:,指令周期:单片机执行一条指令所需的时间。一般由几个机器周期组成。机器周期:CPU访问存储器一次所需要的时间。机器周期由若干个时钟周期组成。时钟周期(状态周期):由2个节拍构成。节拍振荡周期1fosc单片机的一个机器周期包含6个状态周期,即12个振荡周

30、期。依次用S1P1、S1P2、S2P1、S2P2、S6P1、S6P2表示。,振荡器和时钟电路,1.单片机内部时钟电路 图为HMOS型单片机的振荡电路,当外接晶振时,C1和C2值通常选择30pF;外接陶瓷谐振器时,C1和C2的典型值约为47pF。在设计印刷电路板时,晶体或陶瓷谐振器和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。为了提高温度稳定性,应采用NPO电容。C1、C2对频率有微调作用,振荡频率范围是1.2MHz12MHz。,2.HMOS型单片机外部时钟源的接法 对HMOS型单片机,外部振荡器的信号接至XTAL2端,而内部反相放大器的输入端XTAL1端应接地,

31、如图所示。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。,3.CHMOS型单片机的外部时钟源的接法 对CHMOS型的单片机,接线方法与HMOS型的单片机有所不同:外部振荡器的信号接至XTAL1,而XTAL2不用。左图是CHMOS型单片机的振荡电路,右图是CHMOS型单片机的外部时钟源的接法图。,4.对外部时钟信号的要求 最小的高电平和低电平持续时间应符合产品技术的要求(皆为20ns),一般为频率低于12MHz的方波。这种方式适用于多块芯片同时工作时,便于同步。,2.3.2 单片机的复位电路,1.复位结构 HMOS型单片机的复位结构见左图。复位引脚RSTVPD通过一个施密特触发

32、器与单片机复位电路相连。CHMOS型的复位结构见右图,此处的复位引脚只是单纯地称为RST,而不是RSTVPD。振荡器正在运行的情况下,复位是靠在RSTVPD或RST引脚加持续二个机器周期的高电平来实现的。复位时,ALE=1和PSEN=1,复位后PC指向0000H。,2.复位电路 单片机的复位有上电自动复位和按钮手动复位两种。上电复位是利用电容充电来实现的。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RSTVPD端的电平应维持高于施密特触发器的下阈值。,手动复位分为按钮脉冲复位和按钮电平复位。按钮脉冲复位电路如下图所示。由外部提供一个复位脉冲宽度大于2个机器周期。复

33、位脉冲过后,由内部下拉电阻保证RSTVPD端变为低电平。,按钮电平复位电路如下图所示。当按下复位按钮时,电源直接加到RSTVPD端使其为高电平,同时电容通过复位按钮放电。复位按钮松开后,随着电容充电电流的减小,逐渐使RSTVPD端恢复低电平。,小 结,1、P0P3口均为准双向口,读取引脚状态时必须先向该引脚写入“1”。2、P0口做为I/O口使用时,必须接上拉电阻。3、P0、P2口做为地址数据总线使用后,一般不再做为I/O口使用。4、P0P3口的驱动能力。5、机器周期、状态周期、节拍、振荡周期的概念。6、机器周期的构成。7、单片机复位的条件。8、单片机使用内部时钟电路时晶振、电容的接法和数值选择

34、。9、单片机的复位结构。10、常用的复位电路及其元器件数值。,作 业,教材:P41 2-8、2-9、2-12、2-162-8、开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?2-9、单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突?2-12、位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中什么位置?2-16、单片机有几种复位方法?应注意什么事项?,第3章 单片机指令系统及编程举例,本章要点,1、熟练掌握单片机的寻址方式2、记忆指令并掌握指令应用的方法和技巧3、了解单片机汇编语言的编程方法和技巧4、了解伪指

35、令的使用5、掌握常用程序的编制方法,3.1 指令系统简介,指令系统概述,指令是计算机根据人的意图所执行的操作命令,是与计算机内部结构、硬件资源密切联系的,某种计算机所有指令的集合称为指令系统。MCS-51/52系列单片机的指令系统共有111条指令,其中49条是单字节指令,45条是双字节指令,17条是三字节指令。111条指令中共有33个功能,用汇编编程时,只需要42个助记符就能指明这33个功能操作。其中有64条指令的执行时间为单机器周期,45条指令的执行时间为双机器周期,乘法和除法指令只需4个机器周期。AT89及P89的指令系统与MCS-51/52系列单片机的指令系统完全相同。,3.1.2 指令

36、格式,单片机的汇编语言指令格式与其他微机的指令格式一样。均由以下几个部分组成:标号:操作码操作数;注释 标号又称为指令地址符号,一般由16个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。表示为可选项。操作码 是由助记符表示的字符串,他规定了指令的操作功能。操作数 是指参加操作的数据或数据的地址。注释是为该条指令作的说明,以便于阅读。,指令系统中,操作数可以为1、2、3个,也可以没有。不同功能的指令,操作数作用不同。例如,传送类指令多数有两个操作数,写在左面的称为目的操作数(表示操作结果存放的单元地址),写在右面的称为源操作数(指出操作数的来源)。操作码与操作数之间必须用空格分隔,操

37、作数与操作数之间必须用逗号“,”分隔。带方括号项可有可无,称可选择项。操作码是指令的核心,不可缺少。,3.1.3 指令分类及符号说明,1.指令分类 单片机指令系统的111条指令分为下面五类:(1)数据传送类指令29条,分为:片内RAM、片外RAM、程序存储器的传送指令,交换及堆栈操作指令。(2)算术运算类24条分为:加、带进位加、减、乘、除、加1、减1指令。(3)逻辑运算类24条分为:逻辑与、或、异或、移位指令。(4)控制程序转移类17条分为:无条件转移与调用、条件转移与调用、返回与空操作指令。(5)布尔变量操作类17条分为:位数据传送、位与、位或、位转移指令。,2.符号说明 A:累加器Acc

38、。B:专用寄存器,用于MUL和DIV指令中。C:为进位标志或进位位,或布尔处理机中的累加器。:为间址寄存器或基址寄存器的前缀。如Ri,A+PC,A+DPTR。Rn:表示当前选中的寄存器区的8个工作寄存器R0R7(n=07)。Ri:表示当前选中的寄存器区中的2个寄存器R0、R1,可做地址指针即间址寄存器(i=0、1)。direct:表示8位内部数据存储器单元的地址。它可以是内部RAM的单元地址0127或专用寄存器的地址,如I O端口、控制寄存器、状态寄存器等(128255)。,#data:表示包含在指令中的8位立即数。#data16:表示包含在指令中的16位立即数。addr16:表示16位的目的

39、地址。用于 LCALL和LJMP指令中,目的地址范围是64KB的程序存储器地址空间。addr11:表示11位的目的地址。用于ACALL和 AJMP的指令中,目的地址必须存放在与下一条指令第一个字节同一个2KB程序存储器地址空间之内。rel:表示8位带符号的偏移量。用于SJMP和所有的条件转移指令中。偏移字节相对于下一条指令的第一个字节计算,在-128+127范围内取值。,DPTR:为数据指针,可用做16位的地址寄存器。bit:表示内部RAM或专用寄存器中的直接寻址位。X:表示片内RAM的直接地址或寄存器。(X):X中的内容。在直接寻址方式中,表示直接地址X中的内容。(X):在间接寻址方式中,表

40、示由间址寄存器X指出的地址单元中的内容。:表示将箭头右边的内容传送至箭头的左边。,3.2 单片机的寻址方式,指令执行中所需的操作数可以在内存、寄存器、I/O端口中,称它们为操作数的地址,访问这些操作数的方法称为寻址方式。单片机中采用了7种寻址方式。,立即寻址方式,采用立即寻址的指令一般是双字节的。第一个字节是指令的操作码,第二个字节是立即数。因此,操作数就是放在程序存储器中的常数。立即数前面应加前缀“#”号。例如:MOV A,#2BH;A2BH,即将立即数2BH传送至A中。,直接寻址方式,采用直接寻址的指令一般是双字节或三字节指令,第一字节为操作码,第二,三字节为操作数的地址码。单片机中,直接

41、地址只能用来表示片内低128字节单元、专用寄存器和片内RAM的位地址空间。其中专用寄存器和位地址空间只能用直接寻址方式来访问。例如:MOV A,30H;(30H)A MOV C,00H;(00H)Cy LJMP 1000H;将1000H送入PC,寄存器寻址方式,寄存器寻址方式用于访问选定的工作寄存器R0R7、A、B、DPTR和进位CY中的数。其中R0R7由操作码低三位的8种组合表示,A、B、DPTR、C则隐含在操作码之中。这种寻址方式中被寻址的寄存器中的内容就是操作数。例如:MOV A,R0;(R0)A MOV B,A;(A)B,寄存器间接寻址方式,这种寻址方式中,指令指定寄存器中的内容为操作

42、数的地址。寄存器间接寻址是用于访问片内数据存储器或片外数据存储器。当访问片内RAM 或片外的低256字节空间时,可用R0或R1做为间址寄存器;当访问片外整个64KB的地址RAM空间时,用16位寄存器DPTR做间址寄存器。这类指令都为单字节的指令,操作码的最低位表示是采用R0还是R1做间址器。在执行PUSH和POP指令时,也采用寄存器间接寻址,此时用堆栈指针SP做间址寄存器。例如:MOVX A,R0;(R0)A MOVX A,DPTR;(DPTR)A POP ACC;(SP)A,(SP)-1SP,基址加变址寻址方式,这种寻址方式用于访问程序存储器中的某个字节。以DPTR或PC作为基址寄存器,累加

43、器A做为变址寄存器,两者的内容之和为操作数的地址。这种寻址方式常用于查表操作。例如:MOVC A,A+DPTR;指令代码为93H,单字节指令。设该指令放在1040H单元,A的原内容为A0H,DPTR中的值为 3000H,则操作数的地址等于:A0H+3000H=30A0H,即将30A0H单元中的内容传送至A中。该指令的执行过程如下图所示。,3.2.6 相对寻址方式,相对寻址是将程序计数器PC中的当前内容与指令第二字节所给出数相加,其和为跳转指令的转移地址,转移地址也称为转移目的地址。PC中的当前值称为基地址,指令第二字节的数据称为偏移量。偏移量为带符号的数,其值为-128+127。故指令的跳转范

44、围相对PC的当前值在-128+127之间跳转。此种寻址方式一般用于相对跳转指令。例如:SJMP 05H;指令代码是双字节的,即80,05H 现设PC=4000H为本指令的地址,转移目的地址=(4000+02)+05H=4007H PC当前值,位寻址方式,位寻址是指对片内RAM的位寻址区(字节地址20H2FH)和可以位寻址的专用寄存器进行位操作时的寻址方式。在进行位操作时,借助于进位C作为位操作累加器。操作数直接给出该位的地址,然后根据操作码的功能对其进行位操作。位寻址的位地址与直接寻址的字节地址形式完全一样,主要由对应的操作数的位数来区分,使用时应加以注意。例如:MOV 10H,C;10H是位

45、寻址的位地址(C是位累加器)MOV A,10H;10H是直接寻址的字节地址(A是字节累加器),单片机的7种寻址方式中,每种寻址方式可涉及的存储器空间见下表,3.3 指令系统及应用举例,数据传送类指令(29条),1 数据传送类指令特点 数据传送指令一共29条,这类指令一般是把源操数传送到目的操作数,指令执行后,源操作数不变,目的操作数修改为源操作数。传送类指令一般不影响标志位,只有堆栈操作可以直接修改程序状态字PSW。另外,对目的操作数为A的指令将影响奇偶标志P位。数据传送类指令用到的助记符有MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8种。源操作数可以采用寄存器、

46、寄存器间接、直接、立即、变址加基址5种寻址方式;目的操作数可以采用前三种寻址方式。,2 用于片内数据存储器传送的指令使用说明及举例(1)以累加器A为目的操作数的指令(4条)MOV A,Rn;A(Rn)MOV A,#data;A data MOV A,Ri;A(Ri)MOV A,direct;A(direct)例:MOV A,R3;(R3)A,(A)=(R3)MOV R1,#80H;#80HR1,(R1)=80H MOV A,R1;(R1)A,(80H)A MOV A,#20H;#20HA,(A)=20H,(2)以工作寄存器Rn为目的操作数的指令(3条)MOV Rn,A;Rn(A)MOV Rn,

47、direct;Rn(direct)MOV Rn,#data;Rn data 例 MOV R1,A;R1(A),(A)=(R1)MOV R3,30H;R3(30H),(R3)=(30H)MOV R7,#80H;R7#80H,(R7)=80H,(3)以直接地址为目的操作数的指令(5条)MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,Ri MOV direct,#data 例:MOV 30H,A;30H(A),(30H)=(A)MOV 20H,R7;20H(R7),(20H)=(R7)MOV 27H,#0FH;27H#0FH,(27H)

48、=0FH MOV 50H,40H;50H(40H),(50H)=(40H),(4)以间接地址为目的操作数的指令(3条)MOV Ri,A MOV Ri,direct MOV Ri,#data 这组指令的功能是把源操作数所指定的内容传送至以R0或R1为地址指针的片内RAM单元中。源操作数有寄存器寻址、直接寻址和立即寻址3种方式。目的操作数为寄存器间接寻址。例:MOV A,#00H;A#00H,(A)=00H MOV R0,#30H;R0#30H,(R0)=30H MOV R0,A;(R0)(A),(30H)=00H,(5)16位数据传送指令(1条)MOV DPTR,#data16 这是唯一的16位

49、立即数传送指令,其功能是把16位立即数传送至16位数据指针寄存器DPTR。例:MOV DPTR,#04FFH;DPTR#04FFH,(DPTR)=04FFH,3用于片外数据存储器传送指令及举例(4条)MOVX A,Ri;A(Ri)MOVX A,DPTR;A(DPTR)MOVX Ri,A;(Ri)(A)MOVX DPTR,A;(DPTR)(A)在单片机中,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有4条指令。以DPTR间接寻址时,寻址的范围达64KB;以Ri间接寻址时,仅能寻址256B的范围。而且片外RAM的数据只能和累加器A之间进行传送,不能与其他寄存器和片内RAM单元直接进行传

50、送。片外IO端口的访问均可使用此4条指令。,例 MOV DPTR,#A000H;DPTR#A000H,(DPTR)=0A000H MOV A,40H;A(40H),(A)=(40H)MOVX DPTR,A;(DPTR)(A),(A000H)=(A)这几条指令实现了 A000H(40H)例 MOV DPTR,#2000H;DPTR#2000H,(DPTR)=2000H MOVX A,DPTR;A(2000H),(A)=(2000H)MOV DPTR,#5000H;DPTR#5000H,(DPTR)=5000H MOVX DPTR,A;(DPTR)(A),(5000H)=(A)这几条指令实现了 5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号