




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用电子课件第1页,共463页,2023年,2月20日,星期一第1章单片机概述本章重点:1、什么是单片机
2、单片机的分类及特点
3、什么是嵌入式系统第2页,共463页,2023年,2月20日,星期一1.1单片机概况1.1.1什么是单片机
单片机
是单片微型计算机的简称。将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机。单片机早期的含义称为单片微型计算机(singlechipmicrocomputer),直译为单片机。
准确反映单片机本质的叫法应该是微控制器-MicroControllerUnit(MCU)或MicroProcesserUnit(MPU)
单片机也称为嵌入式微处理器(EmbeddedMicroProcesser)或嵌入式微控制器(EmbeddedMicroController)第3页,共463页,2023年,2月20日,星期一1.1.2单片机的发展简史及未来初级阶段:1974-1978年。代表芯片Intel公司的MCS-48系列,Motorola公司的6801系列和Zilog公司的Z8系列。高性能阶段:1978-1983年。代表芯片Intel公司的MCS-51系列。8位单片机巩固提高阶段:1983年-现今。这一阶段一方面不断完善8位单片机,另一方面发展16位、32位机。第4页,共463页,2023年,2月20日,星期一单片机的发展趋势:8位机是主流,未来是8位机与32位机共同发展的时代。单片机从结构功能上的发展趋势:1、大容量高性能化2、小容量低价格化3、外围电路内装化4、RISC结构取代CISC结构第5页,共463页,2023年,2月20日,星期一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位第6页,共463页,2023年,2月20日,星期一2、单片机的特点(1)优异的性价比(2)集成度高、体积小、可靠性高(3)控制功能强(4)低电压、低功耗第7页,共463页,2023年,2月20日,星期一1.1.4单片机的应用1、在智能仪器仪表中的应用2、在工业方面的应用3、在电信中的应用4、在军用导航方面的应用5、在日常生活中的应用6、在其它方面的应用第8页,共463页,2023年,2月20日,星期一1.2常用8位系列单片机简介1.2.1Intel公司8位系列单片机第9页,共463页,2023年,2月20日,星期一1.2.289系列单片机1、AT89系列(美国Atmel公司)第10页,共463页,2023年,2月20日,星期一2、P89系列(Philiips公司)特点:12/6时钟模式,支持ISP第11页,共463页,2023年,2月20日,星期一1.2.3W78E51系列(台湾华邦公司)第12页,共463页,2023年,2月20日,星期一1.2.4M68HC08系列(Motorola公司)Motorola公司单片机命名方法指令系统与MCS-51不同第13页,共463页,2023年,2月20日,星期一1.2.5PIC系列(美国Microchip公司)第14页,共463页,2023年,2月20日,星期一第15页,共463页,2023年,2月20日,星期一1.3单片机与嵌入式系统简介1.3.1什么是嵌入式系统
嵌入式系统就是将计算机系统按特定的要求嵌入到实际应用系统中。
嵌入式系统一般是指非PC机系统,它由硬件和软件两大部分组成。硬件包括微处理器MCU、存储器、I/O端口及外设、图形控制器等;软件包括操作系统(OS或实时多任务操作系统)、应用程序系统、或称监控程序系统等。第16页,共463页,2023年,2月20日,星期一1.3.2嵌入式计算机系统与通用型计算机的特点
1.嵌入式系统是面向特定的应用
2.嵌入式系统是知识集成系统
3.嵌入式系统的硬、软件必须具有高效率
4.嵌入式系统和实际应用有机地结合在一起5.嵌入式系统的软件固化于内部存储器中
6.嵌入式系统本身无自举开发能力
第17页,共463页,2023年,2月20日,星期一1.3.3
嵌入式系统的发展趋势
1.嵌入式系统应用软件的开发需要强大的开发工具和操作系统的支持
2.联网成为发展的必然趋势3.支持小型电子设备实现小尺寸、微功耗和低成本
4.应能提供精巧的多媒体人机界面
第18页,共463页,2023年,2月20日,星期一1.4常用单片机开发工具1.4.1Keil51集成开发环境目前常用版本μVision3V3.31。特点:1、集成开发环境,源程序编辑、编译、链接、调试均在集成环境下2、支持多种处理器(包括ARM)3、支持C语言和汇编语言4、支持源程序调试5、支持硬件仿真器6、支持软件仿真器第19页,共463页,2023年,2月20日,星期一Keil软件的启动画面第20页,共463页,2023年,2月20日,星期一利用Keil集成开发环境调试程序第21页,共463页,2023年,2月20日,星期一1.4.2Proteus仿真软件目前版本V7.2SP1,用的较多的版本是V6.7SP3和V7.12
特点:
1、可以实现单片机、接口芯片的电路仿真,非常适用于教学和产品开发的前期阶段。
2、与Mutsim/EWB功能相当,但比其小巧,V6.7SP3压缩包仅18.5M。并且可以实现多种单片机(MCS-51、PIC系列、ARM系列)的仿真和程序调试。
3、对计算机的硬件要求非常低(赛扬2.0256M内存)第22页,共463页,2023年,2月20日,星期一利用Proteus软件在进行数字电压表的调试和仿真第23页,共463页,2023年,2月20日,星期一1.4.3有关网站和参考书电子开发网:单片机开发工具网:力源信息:成都力源单片机技术有限公司:周立功单片机:Proteus仿真社区:/html/bbs.html参考书:《单片机原理及应用》万文略主编重庆大学出版社《单片机原理及接口技术》李朝青编著北京航空航天大学出版社《Proteus入门实用教程
》周润景张丽娜刘印群编著机械工业出版社第24页,共463页,2023年,2月20日,星期一小结
单片机,是单片微型计算机的简称。将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机。
嵌入式系统就是将计算机系统按特定的要求嵌入到实际应用系统中。嵌入式系统一般是指非PC机系统,它由硬件和软件两大部分组成。第25页,共463页,2023年,2月20日,星期一作业教材:P171-1,1-4,1-61-1、什么叫单片机?它有哪些特点?1-4、单片机主要应用在哪些方面?1-6、什么叫嵌入式系统?它与单片机的关系如何?
第26页,共463页,2023年,2月20日,星期一第二章单片机内部结构及原理本章要点MCS-51/52系列CPU内部结构特点MCS-51/52系列单片机存储器的结构MCS-51/52系列单片机I/O端口结构及驱动能力,使用时的注意事项MCS-51/52系列单片机存储器空间结构及位寻址空间
第27页,共463页,2023年,2月20日,星期一2.1Intel公司的MCS-51/52系列单片机内部结构原理2.1.1MCS-51/52系列单片机CPU的结构MCS-51/52系列单片机内部由一个8位CPU、128/256B数据存储器、程序存储器、2/3个16位定时器、4个8位的可编程I/O端口和可编程全双工UART串行口等组成。第28页,共463页,2023年,2月20日,星期一1.控制器
控制器由程序计数器(PC,16位)、指令寄存器(IR,8位)、指令译码器(ID)、定时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。第29页,共463页,2023年,2月20日,星期一2.运算器
运算器由算术逻辑单元ALU、累加器ACC、暂存器、程序状态字寄存器PSW、BCD码运算调整电路等组成。
(1)累加器ACCACC是一个8位的寄存器,简称为A,它通过暂存器与ALU相连。它是CPU执行指令时使用最频繁的寄存器,用来存一个操作数或中间结果。第30页,共463页,2023年,2月20日,星期一(2)算术逻辑单元ALUALU是由加法器和其它逻辑电路等组成的,它用于对数据进行算术四则运算和逻辑运算、移位操作、位操作等功能。ALU的两个操作数,一个由A通过暂存器2输入,另一个由暂存器1输入,运算结果的状态送PSW。
(3)程序状态字寄存器PSWPSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。它可以进行位寻址。PSW各位的定义如下:
D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVF1P
PSW位地址字节地址D0H第31页,共463页,2023年,2月20日,星期一•CY(PSW.7):进位标志,在进行加或减运算时,如果操作结果最高位有进位或借时,CY由硬件置“1”,否则清“0”。在进行位操作时,CY又可以被认为是位累加器,它的作用相当于CPU中的累加器A。
•AC(PSW.6):辅助进位标志(又称半进位),在进行加或减运算时,低四位数向高四位产生的进位或借位,将由硬件置“1”,否则清“0”。AC位可用于BCD码调整时的判断位。
•F0(PSW.5):用户标志位,由用户置位或复位。它可作为用户自行定义的一个状态标记。
•RS1RS0(PSW.4PSW.3):工作寄存器组指针,用以选择CPU当前工作的寄存器组。第32页,共463页,2023年,2月20日,星期一RS1RS0与工作寄存器组的对应关系第33页,共463页,2023年,2月20日,星期一
•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):奇偶标志位,该位始终跟踪累加器A内容中“1”的奇偶性。当累加器A内容中有奇数个“1”时,P置1;否则,P置“0”。改变累加器A中内容的指令均会影响P标志位。
第34页,共463页,2023年,2月20日,星期一2.1.2MCS-51/52单片机存储器结构1.MCS-51/52单片机存储器划分方法第35页,共463页,2023年,2月20日,星期一2.程序存储器
MCS-51/52单片机的程序存储器一般用于存放编好的程序、表格和常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器,8052片内有8KB的ROM,8752片内有8KB的EPROM,8032片内无程序存储器。当EA=1时,PC在0~0FFFH范围内执行片内ROM中的程序;PC在1000H~0FFFFH范围内执行片外ROM中的程序。当EA=0时,PC在0~0FFFFH,64k范围内执行片外ROM中的程序。MCS-51/52单片机的程序存储器中有7个特殊地址单元。
0000H:MCS-51/52单片机复位后PC=0000H,即程序从0000H开始执行指令。
0003H:外部中断0入口地址
000BH:定时器0溢出中断入口地址
0013H:外部中断1入口地址
001BH:定时器1溢出中断入口地址
0023H:串行口中断入口地址
002BH:定时器2溢出,T2EX(P1.1)端负跳变时的入口地址(仅对52子系列单片机所具有)。第36页,共463页,2023年,2月20日,星期一3.数据存储器数据存储器用于存放运算中间结果、数据暂存和缓冲、标志位、待调试的程序等。数据存储器在物理上和逻辑上都分为两个地址空间:一个是片内128/256字节的RAM,另一个是片外最大可扩充64K字节的RAM。访问片内RAM使用MOV指令,访问片外RAM使用MOVX指令。对片外RAM只能采用间接寻址方式,用R0、R1和DPTR作为间址寄存器;前两者是低8位地址指针,寻址范围为256B,而DPTR是16位地址指针,故寻址范围可达64K字节。片内数据存储器在物理上又可分为二个不同的区:第37页,共463页,2023年,2月20日,星期一
(1)00H~7FH(0~127)单元组成低128字节的片内RAM区,对其访问可采用直接寻址或间接寻址的方式。其中:0~1FH共32个单元分为4组,每组8个单元组成工作寄存器R0~R7;20H~2FH共16个字节、128个位的地址为00~7FH;30H~7FH共80个单元,为用户RAM区,做为堆栈或数据缓冲。
第38页,共463页,2023年,2月20日,星期一
(2)80H~FFH(128~256)单元组成高128字节的专用寄存器(SFR)区,只能采用直接寻址方式来访问。
(3)MCS-52子系列中的片内RAM增大了128字节,其地址范围也是从80H~FFH;为了与SFR区分,对此段的范围只能采用间接寻址方式来访问。第39页,共463页,2023年,2月20日,星期一4.专用寄存器SFRMCS-51/52中共有23个专用寄存器SFR(又称特殊功能寄存器),其中3个仅52子系列单片机所拥有,5个是双字节寄存器,11个具有位寻址能力(特点:字节地址可以被8整除),这些专用寄存器离散地分布在片内RAM的高128字节地址中。专用寄存器并未占满80H~FFH整个地址空间,对空闲地址的操作是无意义的。若访问到空闲地址,则读入的是随机数。第40页,共463页,2023年,2月20日,星期一单片机特殊功能寄存器SFR第41页,共463页,2023年,2月20日,星期一注意:系统复位后,(SP)=07H,P0~P3为0FFH,SBUF内容不定,IP、IE、PCON部分位的值不确定外,其余寄存器内容均为0.第42页,共463页,2023年,2月20日,星期一2.1.3MCS-51/52系列单片机引脚及功能
下面分别说明各主要引脚的功能:
1.主电源引脚Vss和VccVss(20脚):接地
Vcc(40脚):主电源+5V,正常操作和对EPROM编程及验证时均接+5V电源。
2.外接晶振引脚XTAL1和XTAL2XTAL1(19脚)和XTAL2(18脚):接外部晶振的两个引脚。
第43页,共463页,2023年,2月20日,星期一3.控制信号引脚
RST/VPD(9脚):单片机复位/备用电源引脚。
ALE/PROG(30脚):当访问片外存储器时,ALE(地址锁存允许)的输出用于锁存低字节地址信号。当CPU不访问外部RAM时,该引脚输出晶振频率1/6频率的正脉冲信号。对于EPROM型单片机,该引脚在编程期间用于输入编程脉冲。
PSEN(29脚):输出访问片外程序存储器的读选通信号。
EA/Vpp(31脚):当该输入端输入高电平时,CPU可访问片内程序存储器4KB或8KB的地址范围。若PC值超出4KB/8KB地址时,将自动转向访问片外程序存储器。当EA输入低电平时,则只能访问片外程序存储器,不论片内是否有程序存储器。对于EPROM型单片机(8751),在对EPROM编程期间,此引脚用于施加+21V的编程电压Vpp。
注意:ALE和PSEN引脚的驱动能力均为8个LSTTL负载。第44页,共463页,2023年,2月20日,星期一4.输入/输出引脚P0、P1、P2、P3P0.0~P0.7(39~32脚):P0口是一个8位漏极开路型准双向I/O端口。在访问片外存储器时,它分时做低8位地址总线和8位双向数据总线(AD0~
AD7)。在EPROM编程时,由P0口输入指令字节;而在验证程序时,则输出指令字节。验证程序时和做为双向I/O端口一样,要求外接上拉电阻。P0口能以吸收电流的方式驱动8个LSTTL负载。
P1.0~P1.7(1~8脚):P1口是一个带内部弱上拉电阻的8位准双向I/O口。在EPROM编程和验证程序时,由它输入低8位地址。P1能驱动4个LSTTL负载。在52子系列单片机中,P1.0还相当于专用功能端T2,即定时器的计数输入/时钟输出端;P1.1还相当于专用功能端T2EX,即定时器T2的重装载/捕捉/方向等外部控制端。
P2.0~P2.7(21~28脚):P2口是一个带内部弱上拉电阻的8位准双向I/O口。在访问外部存储器时,由它输出高8位地址(A8~
A15)。在对EPROM编程和程序验证时,由它输入高8位地址。P2可以驱动4个LSTTL负载。
P3.0~P3.7(10~17脚):P3口是一个带内部弱上拉电阻的准双向I/O口。在MCS-51/52中,这8个引脚还用于专门的第二功能,见下表。P3口能驱动4个LSTTL负载。
第45页,共463页,2023年,2月20日,星期一P3口的第二功能表第46页,共463页,2023年,2月20日,星期一小结1、51系列单片机是8位机。52系列与51系列的差别。2、51系列单片机得存储器在物理上分为4个存储空间,在逻辑上分为3个存储空间。3、程序存储器中7个特殊的单元。4、内部RAM0-7FH根据用途不同分为3个空间。5、SFR的地址范围在内部RAM80H-0FFH空间内,其中部分寄存器可以位寻址。6、系统复位后各个寄存器的值。7、单片机各引脚的功能及其驱动能力。第47页,共463页,2023年,2月20日,星期一2-2、MCS-51/52系列单片机内部包含哪些主要逻辑功能部件?2-4、MCS-51/52单片机的存储器从物理上和逻辑上分别可划分几个空间?2-6、MCS-51单片机片内256B的数据存储器可分为几个区?分别做什么用?2-10、程序状态寄存器PSW的作用是什么?常用状态有哪些位?作用是什么?
作业教材P412-2,2-4,2-6,2-10第48页,共463页,2023年,2月20日,星期一2.1.4单片机I/O端口结构1.P0口的结构及功能(1)P0口结构它由1个输出锁存器、2个三态输入缓冲器、1个输出驱动电路和1个输出控制电路组成。输出驱动电路由一对FET(场效应管)组成,其工作状态受输出控制电路的控制;输出控制电路由一个与门电路,1个反相器和1个路多路开关MUX组成第49页,共463页,2023年,2月20日,星期一(2)P0口的功能①P0口做一般I/O口使用时多路开关MUX的位置由CPU发出的控制信号决定。当P0口做I/O端口使用时,CPU内部发出控制电平"0"信号封锁与门,使输出上拉场效管T1截止,同时多路开关把输出锁存器Q端与输出场效应管T2的栅极接通。此时P0即做通用的I/O口使用。当P0口做输出口时:内部数据总线上的信息由写脉冲锁存至输出锁存器,输入D=0时,Q=0而Q=1,T2导通,P0口引脚输出“0”;当D=1时,Q=1而Q=0,T2截止,P0口引脚输出1。输出驱动级是漏极开路电路,若要驱动NMOS或其他拉电流负载时,需外接上拉电阻。P0口中的输出可以驱动8个LSTTL负载。
第50页,共463页,2023年,2月20日,星期一P0口做输入口时:端口中有2个三态输入缓冲器用于读操作。其中输入缓冲器2的输入与端口引脚相连,故当执行一条读端口输入指令时,产生读引脚的选通将该三态门打开,端口引脚上的数据经缓冲器2读入内部数据总线。输入缓冲器1并不能直接读取端口引脚上的数据,而是读取输出锁存器Q端的数据。Q端与引脚处的数据是一致的。结构上这样的安排是为了适应“读-修改-写”一类指令的需要。端口进行输入操作前,应先向端口输出锁存器写入“1”,使Q=0则输出级的两个FET管均截止,引脚处于悬空状态,变为高阻抗输入。这就是所谓的准双向I/O口。单片机的P0~P3都是准双向I/O口。第51页,共463页,2023年,2月20日,星期一②P0口做地址/数据总线复用时在扩展系统中,P0端口做为地址/数据总线使用,此时可分为两种情况:
一种是以P0口引脚输出地址数据信息。另一种情况由P0口输入数据,此时输入的数据是从引脚通过输入缓冲器2进入内部总线。当P0口做地址/数据总线复用时,它就不能再做通用I/O口使用了。第52页,共463页,2023年,2月20日,星期一2.P1口的结构及功能(1)P1口结构
P1口也是一个准双向I/O口,其结构见图所示。
P1口在结构上与P0口的区别是:没有多路开关MUX和控制电路部分;输出驱动电路部分与P0也不相同,只有一个FET场效应管,同时内部带上拉电阻,此电阻与电源相连。第53页,共463页,2023年,2月20日,星期一(2)P1口的功能
P1口可做通用双向I/O口使用,当P1口输出高电平时,能向外部提供拉电流负载,因此不必再外接上拉电阻。当端口用做输入时,和P0口一样,为了避免误读,必须先向对应的输出锁存器写入“1”,使FET截止。然后再读端口引脚。在52子系列单片机和89系列单片机中,P1.0和P1.1是多功能位。除做一般双向I/O口外,P1.0还可以做为定时器/计数器2的外部输入端,这时此引脚以T2来表示;P1.1还可做为定时器/计数器2的外部控制输入,以T2EX来表示。第54页,共463页,2023年,2月20日,星期一3.P2口的结构及功能(1)P2口的结构
P2口的位结构中上拉电阻的结构与P1相同,但比P1口多了一个输出转换多路控制部分。(2)P2口的功能当多路开关MUX倒向锁存器输出Q端时,构成了一个准双向I/O口此时P2做通用的I/O口用。P2引脚的数据与内部总线相同。当系统扩展有大于256字节~64K字节的外部存储器时,在CPU的控制下,转换开关MUX倒向内部地址线一端,此时P2口可用于输出高8位的地址。因为访问外部存储器的操作是连续不断的,P2口要不断输出高8位地址,故此时P2口不可能再做通用I/O口使用。第55页,共463页,2023年,2月20日,星期一4.P3口的结构及功能(1)P3口的结构同样P3口与P1口的输出驱动部分及内部上拉电阻相同,比P1口多了一个第二功控制部分的逻辑电路(由一个与非门和一个输入缓冲器组成)。(2)P3口的功能
P3口是一个多功能的端口。当第二输出功能保持高电平时,打开与非门,锁存器输出可以通过与非门送FET管输出到引脚端,这是做通用I/O口的输出使用情况。输入时,引脚数据通过三态缓冲器2和3在读引脚选通控制下进入内部总线。第56页,共463页,2023年,2月20日,星期一P3口除了做通用I/O使用外,它的各位还具有第二功能。当P3口某一位用于第二功能做输出时,该位的锁存器应置“1”,打开与非门,第二功能端内容通过“与非门”和FET送至端口引脚。当做第二功能输入时,端口引脚的第二功能信号通过缓冲器3送到第二输入功能端。总之,无论P3口做通用输入口还是做第二输入功能口用,相应位的输出锁存器和第二输出功能端都应置“1”,使FET截止。P3口的引脚信号输入通道中有2个缓冲器,当做第二输入功能时,引脚输入信号取自缓冲器3的输出;做通用输入口时输入信号取自三态缓冲器2。
第57页,共463页,2023年,2月20日,星期一5.端口负载能力和接口要求
P0口的输出级与P1~P3口的输出级在结构上是不相同的,因此他们的负载能力和接口要求也各不相同。(1)P0口的每一位输出可驱动8个LSTTL负载。P0口在驱动拉电流和MOS负载时必须要接上拉电阻。(2)P1~P3口的输出级均接有内部上拉电阻,他们的每一位输出可以驱动4个LSTTL负载。(3)P0~P3口都是准双向I/O口,做输入时,必须先向相应端口的锁存器写入“1”,使驱动管FET截止。P0口输入时呈高阻态,而P1~P3口内部有上拉负载电阻,当系统复位时,P0~P3端口锁存器全为“1”。第58页,共463页,2023年,2月20日,星期一2.3单片机的振荡器及时序电路几个概念:指令周期:单片机执行一条指令所需的时间。一般由几个机器周期组成。机器周期:CPU访问存储器一次所需要的时间。机器周期由若干个时钟周期组成。时钟周期(状态周期):由2个节拍构成。节拍=振荡周期=1/fosc单片机的一个机器周期包含6个状态周期,即12个振荡周期。依次用S1P1、S1P2、S2P1、S2P2、……S6P1、S6P2表示。第59页,共463页,2023年,2月20日,星期一2.3.1
振荡器和时钟电路
1.单片机内部时钟电路图为HMOS型单片机的振荡电路,当外接晶振时,C1和C2值通常选择30pF;外接陶瓷谐振器时,C1和C2的典型值约为47pF。在设计印刷电路板时,晶体或陶瓷谐振器和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。为了提高温度稳定性,应采用NPO电容。C1、C2对频率有微调作用,振荡频率范围是1.2MHz~12MHz。第60页,共463页,2023年,2月20日,星期一2.HMOS型单片机外部时钟源的接法对HMOS型单片机,外部振荡器的信号接至XTAL2端,而内部反相放大器的输入端XTAL1端应接地,如图所示。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。第61页,共463页,2023年,2月20日,星期一3.CHMOS型单片机的外部时钟源的接法对CHMOS型的单片机,接线方法与HMOS型的单片机有所不同:外部振荡器的信号接至XTAL1,而XTAL2不用。左图是CHMOS型单片机的振荡电路,右图是CHMOS型单片机的外部时钟源的接法图。
第62页,共463页,2023年,2月20日,星期一4.对外部时钟信号的要求最小的高电平和低电平持续时间应符合产品技术的要求(皆为20ns),一般为频率低于12MHz的方波。这种方式适用于多块芯片同时工作时,便于同步。第63页,共463页,2023年,2月20日,星期一2.3.2单片机的复位电路
1.复位结构
HMOS型单片机的复位结构见左图。复位引脚RST/VPD通过一个施密特触发器与单片机复位电路相连。
CHMOS型的复位结构见右图,此处的复位引脚只是单纯地称为RST,而不是RST/VPD。振荡器正在运行的情况下,复位是靠在RST/VPD或RST引脚加持续二个机器周期的高电平来实现的。复位时,ALE=1和PSEN=1,复位后PC指向0000H。第64页,共463页,2023年,2月20日,星期一2.复位电路单片机的复位有上电自动复位和按钮手动复位两种。
上电复位是利用电容充电来实现的。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST/VPD端的电平应维持高于施密特触发器的下阈值。
第65页,共463页,2023年,2月20日,星期一
手动复位分为按钮脉冲复位和按钮电平复位。
按钮脉冲复位电路如下图所示。由外部提供一个复位脉冲宽度大于2个机器周期。复位脉冲过后,由内部下拉电阻保证RST/VPD端变为低电平。第66页,共463页,2023年,2月20日,星期一
按钮电平复位电路如下图所示。当按下复位按钮时,电源直接加到RST/VPD端使其为高电平,同时电容通过复位按钮放电。复位按钮松开后,随着电容充电电流的减小,逐渐使RST/VPD端恢复低电平。第67页,共463页,2023年,2月20日,星期一小结1、P0~P3口均为准双向口,读取引脚状态时必须先向该引脚写入“1”。2、P0口做为I/O口使用时,必须接上拉电阻。3、P0、P2口做为地址/数据总线使用后,一般不再做为I/O口使用。4、P0~P3口的驱动能力。5、机器周期、状态周期、节拍、振荡周期的概念。6、机器周期的构成。7、单片机复位的条件。8、单片机使用内部时钟电路时晶振、电容的接法和数值选择。9、单片机的复位结构。10、常用的复位电路及其元器件数值。第68页,共463页,2023年,2月20日,星期一作业教材:P412-8、2-9、2-12、2-162-8、开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?2-9、单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突?2-12、位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中什么位置?2-16、单片机有几种复位方法?应注意什么事项?第69页,共463页,2023年,2月20日,星期一第3章单片机指令系统及编程举例
本章要点1、熟练掌握单片机的寻址方式2、记忆指令并掌握指令应用的方法和技巧3、了解单片机汇编语言的编程方法和技巧4、了解伪指令的使用5、掌握常用程序的编制方法第70页,共463页,2023年,2月20日,星期一3.1指令系统简介
3.1.1
指令系统概述
指令是计算机根据人的意图所执行的操作命令,是与计算机内部结构、硬件资源密切联系的,某种计算机所有指令的集合称为指令系统。
MCS-51/52系列单片机的指令系统共有111条指令,其中49条是单字节指令,45条是双字节指令,17条是三字节指令。111条指令中共有33个功能,用汇编编程时,只需要42个助记符就能指明这33个功能操作。其中有64条指令的执行时间为单机器周期,45条指令的执行时间为双机器周期,乘法和除法指令只需4个机器周期。
AT89及P89的指令系统与MCS-51/52系列单片机的指令系统完全相同。第71页,共463页,2023年,2月20日,星期一
3.1.2指令格式
单片机的汇编语言指令格式与其他微机的指令格式一样。均由以下几个部分组成:
[标号]:操作码[操作数];[注释]
标号又称为指令地址符号,一般由1~6个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。[]表示为可选项。
操作码
是由助记符表示的字符串,他规定了指令的操作功能。
操作数是指参加操作的数据或数据的地址。
注释是为该条指令作的说明,以便于阅读。
第72页,共463页,2023年,2月20日,星期一
指令系统中,操作数可以为1、2、3个,也可以没有。不同功能的指令,操作数作用不同。例如,传送类指令多数有两个操作数,写在左面的称为目的操作数(表示操作结果存放的单元地址),写在右面的称为源操作数(指出操作数的来源)。操作码与操作数之间必须用空格分隔,操作数与操作数之间必须用逗号“,”分隔。带方括号项可有可无,称可选择项。操作码是指令的核心,不可缺少。
第73页,共463页,2023年,2月20日,星期一3.1.3指令分类及符号说明
1.指令分类单片机指令系统的111条指令分为下面五类:
(1)数据传送类指令29条,分为:片内RAM、片外RAM、程序存储器的传送指令,交换及堆栈操作指令。(2)算术运算类24条分为:加、带进位加、减、乘、除、加1、减1指令。(3)逻辑运算类24条分为:逻辑与、或、异或、移位指令。(4)控制程序转移类17条分为:无条件转移与调用、条件转移与调用、返回与空操作指令。(5)布尔变量操作类17条分为:位数据传送、位与、位或、位转移指令。第74页,共463页,2023年,2月20日,星期一2.符号说明
A:累加器Acc。
B:专用寄存器,用于MUL和DIV指令中。
C:为进位标志或进位位,或布尔处理机中的累加器。
@:为间址寄存器或基址寄存器的前缀。如@Ri,@A+PC,@A+DPTR。
Rn:表示当前选中的寄存器区的8个工作寄存器R0~R7(n=0~7)。
Ri:表示当前选中的寄存器区中的2个寄存器R0、R1,可做地址指针即间址寄存器(i=0、1)。
direct:表示8位内部数据存储器单元的地址。它可以是内部RAM的单元地址0~127或专用寄存器的地址,如I/O端口、控制寄存器、状态寄存器等(128~255)。第75页,共463页,2023年,2月20日,星期一#data:表示包含在指令中的8位立即数。
#data16:表示包含在指令中的16位立即数。
addr16:表示16位的目的地址。用于LCALL和LJMP指令中,目的地址范围是64KB的程序存储器地址空间。
addr11:表示11位的目的地址。用于ACALL和AJMP的指令中,目的地址必须存放在与下一条指令第一个字节同一个2KB程序存储器地址空间之内。
rel:表示8位带符号的偏移量。用于SJMP和所有的条件转移指令中。偏移字节相对于下一条指令的第一个字节计算,在-128~+127范围内取值。
第76页,共463页,2023年,2月20日,星期一DPTR:为数据指针,可用做16位的地址寄存器。
bit:表示内部RAM或专用寄存器中的直接寻址位。
X:表示片内RAM的直接地址或寄存器。
(X):X中的内容。在直接寻址方式中,表示直接地址X中的内容。
((X)):在间接寻址方式中,表示由间址寄存器X指出的地址单元中的内容。←:表示将箭头右边的内容传送至箭头的左边。第77页,共463页,2023年,2月20日,星期一3.2单片机的寻址方式
指令执行中所需的操作数可以在内存、寄存器、I/O端口中,称它们为操作数的地址,访问这些操作数的方法称为寻址方式。单片机中采用了7种寻址方式。3.2.1
立即寻址方式
采用立即寻址的指令一般是双字节的。第一个字节是指令的操作码,第二个字节是立即数。因此,操作数就是放在程序存储器中的常数。立即数前面应加前缀“#”号。例如:MOVA,#2BH;A←#2BH,即将立即数2BH传送至A中。
第78页,共463页,2023年,2月20日,星期一3.2.2
直接寻址方式
采用直接寻址的指令一般是双字节或三字节指令,第一字节为操作码,第二,三字节为操作数的地址码。单片机中,直接地址只能用来表示片内低128字节单元、专用寄存器和片内RAM的位地址空间。其中专用寄存器和位地址空间只能用直接寻址方式来访问。例如:MOVA,30H;(30H)→A
MOVC,00H;(00H)→CyLJMP1000H;将1000H送入PC第79页,共463页,2023年,2月20日,星期一3.2.3
寄存器寻址方式
寄存器寻址方式用于访问选定的工作寄存器R0~R7、A、B、DPTR和进位CY中的数。其中R0~R7由操作码低三位的8种组合表示,A、B、DPTR、C则隐含在操作码之中。这种寻址方式中被寻址的寄存器中的内容就是操作数。例如:MOVA,R0;(R0)→AMOVB,A;(A)→B第80页,共463页,2023年,2月20日,星期一3.2.4
寄存器间接寻址方式
这种寻址方式中,指令指定寄存器中的内容为操作数的地址。寄存器间接寻址是用于访问片内数据存储器或片外数据存储器。当访问片内RAM或片外的低256字节空间时,可用R0或R1做为间址寄存器;当访问片外整个64KB的地址RAM空间时,用16位寄存器DPTR做间址寄存器。这类指令都为单字节的指令,操作码的最低位表示是采用R0还是R1做间址器。在执行PUSH和POP指令时,也采用寄存器间接寻址,此时用堆栈指针SP做间址寄存器。例如:MOVXA,@R0;((R0))→AMOVXA,@DPTR;((DPTR))→A
POPACC;((SP))→A,(SP)-1→SP第81页,共463页,2023年,2月20日,星期一3.2.5
基址加变址寻址方式
这种寻址方式用于访问程序存储器中的某个字节。以DPTR或PC作为基址寄存器,累加器A做为变址寄存器,两者的内容之和为操作数的地址。这种寻址方式常用于查表操作。
例如:MOVCA,@A+DPTR;指令代码为93H,单字节指令。设该指令放在1040H单元,A的原内容为A0H,DPTR中的值为
3000H,则操作数的地址等于:A0H+3000H=30A0H,即将30A0H单元中的内容传送至A中。该指令的执行过程如下图所示。
第82页,共463页,2023年,2月20日,星期一3.2.6
相对寻址方式
相对寻址是将程序计数器PC中的当前内容与指令第二字节所给出数相加,其和为跳转指令的转移地址,转移地址也称为转移目的地址。PC中的当前值称为基地址,指令第二字节的数据称为偏移量。偏移量为带符号的数,其值为-128~+127。故指令的跳转范围相对PC的当前值在-128~+127之间跳转。此种寻址方式一般用于相对跳转指令。例如:SJMP05H;指令代码是双字节的,即80,05H
现设PC=4000H为本指令的地址,转移目的地址=(4000+02)+05H=4007H
PC当前值
第83页,共463页,2023年,2月20日,星期一3.2.7
位寻址方式
位寻址是指对片内RAM的位寻址区(字节地址20H~2FH)和可以位寻址的专用寄存器进行位操作时的寻址方式。在进行位操作时,借助于进位C作为位操作累加器。操作数直接给出该位的地址,然后根据操作码的功能对其进行位操作。位寻址的位地址与直接寻址的字节地址形式完全一样,主要由对应的操作数的位数来区分,使用时应加以注意。
例如:MOV10H,C;10H是位寻址的位地址(C是位累加器)
MOVA,10H;10H是直接寻址的字节地址(A是字节累加器)
第84页,共463页,2023年,2月20日,星期一单片机的7种寻址方式中,每种寻址方式可涉及的存储器空间见下表第85页,共463页,2023年,2月20日,星期一3.3指令系统及应用举例
3.3.1
数据传送类指令(29条)
1.数据传送类指令特点数据传送指令一共29条,这类指令一般是把源操数传送到目的操作数,指令执行后,源操作数不变,目的操作数修改为源操作数。传送类指令一般不影响标志位,只有堆栈操作可以直接修改程序状态字PSW。另外,对目的操作数为A的指令将影响奇偶标志P位。
数据传送类指令用到的助记符有MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8种。源操作数可以采用寄存器、寄存器间接、直接、立即、变址加基址5种寻址方式;目的操作数可以采用前三种寻址方式。第86页,共463页,2023年,2月20日,星期一
2.用于片内数据存储器传送的指令使用说明及举例(1)以累加器A为目的操作数的指令(4条)MOVA,Rn;A←RnMOVA,#data;A←dataMOVA,@Ri;A←((Ri))MOVA,direct;A←(direct)
例:
MOVA,R3;(R3)→A,(A)=(R3)MOVR1,#80H;#80H→R1,(R1)=80H
MOVA,@R1;((R1))→A,(80H)→AMOVA,#20H;#20H→A,(A)=20H第87页,共463页,2023年,2月20日,星期一(2)以工作寄存器Rn为目的操作数的指令(3条)
MOVRn,A;Rn←AMOVRn,direct;Rn←(direct)MOVRn,#data;Rn←data
例
MOVR1,A;R1←A,(A)=(R1)MOVR3,30H;R3←(30H),(R3)=(30H)MOVR7,#80H;R7←#80H,(R7)=80H第88页,共463页,2023年,2月20日,星期一
(3)以直接地址为目的操作数的指令(5条)MOVdirect,AMOVdirect,RnMOVdirect,directMOVdirect,@RiMOVdirect,#data
例:
MOV30H,A;30H←(A),(30H)=(A)MOV20H,R7;20H←(R7),(20H)=(R7)MOV27H,#0FH;27H←#0FH,(27H)=0FH
MOV50H,40H;50H←(40H)
,(50H)=(40H)第89页,共463页,2023年,2月20日,星期一
(4)以间接地址为目的操作数的指令(3条)MOV@Ri,AMOV@Ri,directMOV@Ri,#data
这组指令的功能是把源操作数所指定的内容传送至以R0或R1为地址指针的片内RAM单元中。源操作数有寄存器寻址、直接寻址和立即寻址3种方式。目的操作数为寄存器间接寻址。例:MOVA,#00H;A←#00H,(A)=00HMOVR0,#30H;R0←#30H,(R0)=30HMOV@R0,A;(R0)←(A),(30H)=00H
第90页,共463页,2023年,2月20日,星期一
(5)16位数据传送指令(1条)MOVDPTR,#data16
这是唯一的16位立即数传送指令,其功能是把16位立即数传送至16位数据指针寄存器DPTR。例:MOVDPTR,#04FFH;DPTR←#04FFH,(DPTR)=04FFH
第91页,共463页,2023年,2月20日,星期一3.用于片外数据存储器传送指令及举例(4条)
MOVXA,@Ri;A←((Ri))MOVXA,@DPTR;A←((DPTR))MOVX@Ri,A;(Ri)←(A)
MOVX@DPTR,A;(DPTR)←(A)
在单片机中,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有4条指令。以DPTR间接寻址时,寻址的范围达64KB;以Ri间接寻址时,仅能寻址256B的范围。而且片外RAM的数据只能和累加器A之间进行传送,不能与其他寄存器和片内RAM单元直接进行传送。片外I/O端口的访问均可使用此4条指令。
第92页,共463页,2023年,2月20日,星期一
例
MOVDPTR,#A000H;DPTR←#A000H,(DPTR)=0A000HMOVA,40H;A←(40H),(A)=(40H)MOVX@DPTR,A;(DPTR)←(A),(A000H)=(A)
这几条指令实现了A000H←(40H)
例
MOVDPTR,#2000H;DPTR←#2000H,(DPTR)=2000HMOVXA,@DPTR;A←(2000H),(A)=(2000H)MOVDPTR,#5000H;DPTR←#5000H,(DPTR)=5000H
MOVX@DPTR,A;(DPTR)←(A),(5000H)=(A)
这几条指令实现了5000H←(2000H)第93页,共463页,2023年,2月20日,星期一
4.用于程序存储器数据传送的指令及举例(2条)
MOVCA,@A+PC;A←((A)+(PC))MOVCA,@A+DPTR;A←((A)+(DPTR))
单片机指令系统中,这2条一般用于查表,其数据表格放在程序存储器中。
例:在程序存储器中,存有LED显示器0~9的字形段码为:210AH:0C0H0字符的段码
210BH:0F9H1字符的段码
210CH:0A4H2字符的段码
210DH:0B0H3字符的段码
执行MOVA,#01HMOVDPTR,#210AHMOVCA,@A+DPTR后,(A)=0F9H第94页,共463页,2023年,2月20日,星期一5.交换指令及举例(5条)XCHA,Rn;(A)←→(Rn)XCHA,@Ri;(A)←→((Ri))XCHA,direct;(A)←→(direct)XCHDA,@Ri;(A)3-0←→((Ri))3-0SWAPA;(A)7-4←→(A)3-0
这组指令的前三条为全字节交换指令,其功能是将A的内容与源操作数所指出的数据互换。后两条指令为半字节交换指令,其中XCHDA,@Ri是将A内容的低4位与Ri所指片内RAM单元中的低4位数据互相交换,各自的高4位不变。SWAPA指令是将A中内容的高、低4位数据互相交换。
例:设(A)=12H,(20H)=34H,执行以下指令的结果如何?
XCHA,20H;A←→(20H),(A)=34H,(20H)=12HSWAPA;(A)7-4←→(A)3-0,(A)=43H第95页,共463页,2023年,2月20日,星期一6.堆栈操作指令及举例(2条)PUSHdirect;SP←(SP)+1,(SP)←(direct)POPdirect;direct←((SP)),SP←(SP)-1
PUSH指令是入栈(或称压栈或进栈)指令,其功能是先将栈指针SP的内容加1,然后将直接寻址单元中的数压入到SP所指示的单元中。POP是出栈(或称弹出)指令,其功能是先将栈指针SP所指示的单元内容弹出送到直接寻址单元中,然后将SP的内容减1,仍指向栈顶。使用堆栈时,一般需重新设定SP的初始值。系统复位或上电时SP的值为07H,而08H~1FH正好也是CPU的工作寄存器区,故为不占用寄存器区,程序中需使用堆栈时,先应给SP设置初值。但应注意不超出堆栈的深度。一般SP的值可以设置在1FH或更大一些的片内RAM单元。
第96页,共463页,2023年,2月20日,星期一利用堆栈操作指令可以实现数据的传送,例如:
PUSHDPHPOP30H可以实现30H←(DPH)注意:在对累加器进行堆栈操作时必须使用ACC,而不能用A。
PUSHACC和POPACC是正确的写法,而
PUSHA和POPA的写法是错误的。第97页,共463页,2023年,2月20日,星期一小结1、单片机的七种寻址方式
2、七种寻址方式的寻址空间3、29条数据传送类指令的使用第98页,共463页,2023年,2月20日,星期一作业教材P783-1、3-2、3-3、3-43-1、什么叫寻址方式?单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?3-2、要访问专用寄存器和片外数据存储器应采用什么寻址方式?3-3、用于外部数据传送的指令有哪几条?有何区别?3-4、指出下列指令的本质区别:
MOVA,DATAMOVA,#DATAMOVDATA1,DATA2MOV60H,#61H
第99页,共463页,2023年,2月20日,星期一3.3.2
算术运算类指令
1.算术运算类指令特点算术运算类指令共有24条,其中包括4种基本的算术运算指令,即加、减、乘、除。这4种指令能对8位无符号数进行直接的运算,借助溢出标志也能对有符号的二进制整数进行加减运算。同时借助进位标志,可以实现多精度的加减和循环移位,也可以对压缩的BCD数进行运算(压缩BCD数,是指在一个字节中存放二位BCD数)。
算术运算指令对程序状态字PSW中的Cy、AC、OV三个标志位都有影响,根据运算的结果可将他们置1或清除。但是加1和减1指令不影响这些标志。算术运算类指令用到的助记符有:ADD、ADDC、SUBB、INC、DEC、DA、MUL和DIV八种。
第100页,共463页,2023年,2月20日,星期一2.算术运算类指令使用说明及举例
(1)不带进位的加法指令(4条)ADDA,Rn;A←(A)+(Rn)ADDA,@Ri;A←(A)+((Ri))ADDA,direct;A←(A)+(direct)ADDA,#data;A←(A)+#data
这4条指令的功能是把A中的数与源操作数所指出的内容相加,其结果仍存在A中。相加过程中若位3和位7有进位,则将辅助进位标志AC和进位标志Cy置位,否则清0。
第101页,共463页,2023年,2月20日,星期一
(2)带进位加法指令(4条)ADDCA,Rn;A←(A)+(Rn)+(Cy)ADDCA,@Ri;A←(A)+((Ri))+(Cy)ADDCA,direct;A←(A)+(direct)+(Cy)ADDCA,#data
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理质量与安全:预防坠床与跌倒
- 工程部设备管理
- 陕西省县以下医疗卫生机构定向招聘真题2024
- 2025年03月绍兴市市场监督管理局公开选调下属事业单位工作人员1人笔试历年参考题库考点剖析附解题思路及答案详解
- 2024年盐城市事业单位统考招聘考试真题
- 湖南邵阳工业职业技术学院招聘真题2024
- 河北省石家庄市事业单位招聘真题2024
- 2024年安徽蒙城县城区初中教师选调考试真题
- 心跳骤停应急预案及流程
- 2025年企业委托代理合同范本
- 不锈钢栏杆安装施工方案
- 《莎士比亚研究》自考核心题库(带详解)
- 四川省自贡市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 大花红景天课件
- JJF 1109-2003 跳动检查仪校准规范-(高清现行)
- 水利水保监理过程中承包商、监理方用空表
- 军事地形学地形图基本知识
- 日产汽车QRQC运用手册
- 【高中地理校本课程】生活中的地理
- 【毕业论文】知识竞赛抢答器PLC设计
- 工商管理专业硕士
评论
0/150
提交评论