版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用第1章
单片机概述本章主要介绍单片机的发展,基本的结构和特点,单片机的应用模式和领域,单片机的供应状态等。单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此,一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。课程目的 本课程为电子类专业的主干课程,必修课,从理论和实践两方面解决计算机应用中的多种问题。本课程是在学生学完电子技术类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术、计算机技术综合应用的综合性课程。 本课程的任务是使学生获得单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统各主要环节的设计、调试方法,并了解单片机在测量、控制等电子技术应用领域的应用。初步具备应用单片机进行设备技术改造、产品开发的能力。课程的先修课程数字电路、模拟电子技术。后期训练单片机课程设计、电子系统设计。深入应用电子设计竞赛、毕业设计。工程应用企业电子产品开发。
1.1单片微机的发展
1.1.1单片微机的概念
单片微机是单片微型计算机SCMC(SingleChipMicroComputer)的译名简称,在国内也常简称为“单片微机”或“单片机”。它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器、串行口和I/O等等。 除了工业控制领域,单片微机在家用电器、电子玩具、通信、高级音响、图形处理、语言设备、机器人、计算机等各个领域迅速发展。目前单片微机的世界年产量已达100亿片,而在中国大陆地区单片微机的年应用量已达6亿片左右,截止2001年4月,由中国大陆地区自行设计和生产的单片微机也已达到2000万片。 我们可以把单片机的发展历史划分为四阶段:第一阶段(1976~1978年):低性能单片机的探索阶段。以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。主要用于工业领域。第二阶段(1978~1982年):高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。这类单片机的应用范围较广,并在不断的改进和发展。第三阶段(1982~1990年):16位单片机阶段。16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征。例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等。第四阶段(1990年~):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。
1970年微型计算机研制成功之后,随着大规模集成电路的发展又出现了单片微机。美国Intel公司1971年生产的4位单片微机4004和1972年生产的8位单片微机8008,特别是1976年MCS-48单片微机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二三年要更新一代、集成度增加一倍、功能翻一番。发展速度之快、应用范围之广,已达到了惊人的地步。它已渗透到生产和生活的诸领域,可谓“无孔不入”。 1976年Intel公司首先推出MCS-48系列单片微型计算机。它包括计算机的三个基本单元,已成为真正意义的单片微机,为单片微机的发展奠定了基础,成为单片微机发展进程中的一个重要阶段。
许多半导体公司和计算机公司争相研制和发展自己的单片微机系列,有Motorola公司的6801、6802,Zilog公司的Z-8系列,Rockwell公司的6501、6502等,此外,日本的NEC公司、日立公司及EPSON公司等,也都相继推出了各具特色的单片微机品种。 最具典型性的属Intel公司的MCS-51系列单片微机,它具有品种全、兼容性强、软硬件资料丰富等特点。直到现在MCS-51仍不失为单片微机中的主流机型。由于8位单片微机的高性能价格比,已成为单片微机中的主流机型。
在8位单片微机之后,16位单片微机也有很大发展。1983年Intel公司推出的MCS-96系列单片微机。与MCS-51相比,MCS-96不但字长增加一倍,而且还具有4路或8路的10位A/D转换功能,此外,在其它性能方面也有一定的提高。飞利浦公司推出了与80C51在源码级兼容性的16位单片微机,即80C51XA(每一条80C51指令可以1∶1地被翻译成一条XA指令,仅XCHD指令除外),用户不需投入很大的软件开销和人员就能较大的提高产品性能。80C51XA具有的高性能包括:执行速度快、支持高级语言(比如C语言)、支持实时多任务执行、易于形成派生系列产品、地址宽度可变(用户可以方便地将外部地址线宽度选定为12位、16位、20位、24位等等。在工业控制产品、高档智能仪表、彩色复印机、录像机等应用领域,
单片微机正朝多功能、多选择、高速度、低功耗、低价格、扩大存储容量和加强I/O功能及结构兼容方向发展。 ⑴多功能 在单片微机中尽可能多的把应用系统中所需要的存储器、各种功能的I/O口都集成在一块芯片内,即外围器件内装化,如把LED、LCD显示驱动器集成在8位单片微机中,如把A/D、D/A、乃至多路模拟开关和采样/保持器也集成在单片微机芯片中,从而成为名副其实的单片微机。 ⑵高性能 为了提高速度和执行效率,在单片微机中开始使用RISC体系结构、并行流水线操作和DSP等的设计技术,使单片微机的指令运行速度得到大大提高,其电磁兼容等性能明显地优于同类型的微处理器。 ⑶全盘CMOS化趋势 单片微机采用二种半导体工艺生产,HMOS工艺即高密度短沟道MOS工艺,具有高速度和高密度;CHMOS工艺即互补金属氧化物的HMOS工艺,除具有HMOS的优点外,还具有CMOS工艺的低功耗特点。如8051的功耗为630mw,而80C51的功耗仅120mw。 从第三代单片微机起开始淘汰非CMOS工艺。 ⑷推行串行扩展总线 推行串行扩展总线可以显著减少引脚数量,简化系统结构。随着外围器件串行接口的发展,单片微机的串行接口的普遍化、高速化,使得并行扩展接口技术日渐衰退。
推出了删去了并行总线的非总线单片微机,需要外扩器件(存储器、I/O等)时,采用串行扩展总线,甚至用软件虚拟串行总线来实现。 由于集成度的进一步提高,有的单片微机的寻址能力已突破64KB的限制,8位、16位的单片微机有的寻址能力已达到1MB和16MB。片内ROM的容量可达62KB,RAM的容量可达2KB。1.280C51系列单片微机
8051是美国INTEL公司在1980年推出的MCS-51系列的第一个成员,MCS是INTEL公司的注册商标。其它公司生产的以8051为核心单元的其它派生单片微机却不能称为MCS-51系列,只能称为8051系列。8051系列泛指所有公司(也包括INTEL公司)生产的以8051为核心单元的所有单片微机。 80C51系列包括Intel公司的MCS-51,又包括了以8051为核心单元的世界许多公司生产的单片微机,比如PHILIPS(飞利浦公司)的83C552及51LPC系列等、SIEMENS(西门子公司)的SAB80512等、AMD(先进微器件公司)的8053等、OKI(日本冲电气公司)的MSM80C154等、ATMEL公司的Flash单片微机89C51等、DALLAS公司的DS5000/DS5001等、华邦公司的W78C51及W77C51等。
从MCS-48单片微机发展到如今的新一代单片微机,大致经历了三代。如以Intel8位单片微机为例, 第一代:以MCS-48系列单片微机为代表。属于低性能单片微机阶段。 第二代:以MCS-5l系列的8051、8052单片微机为代表。 主要的技术特征是为单片微机配置了完善的外部并行总线(AB、DB、CB)和具有多机识别功能的串行通信接口(UART),规范了功能单元的特殊功能寄存器(SFR)控制模式及适应控制器特点的布尔处理系统和指令系统,为发展具有良好兼容性的新一代单片微机奠定了良好的基础。
第三代:以80C51系列单片微机为代表。 它包括了Intel公司发展MCS-51系列的新一代产品,如8XC152、80C51FA/FB、80C5lGA/GB,还包括了Phlips、Siemens、ADM、OKI、ATMEL等公司以80C51为核心推出的大量各具特色、与MCS-51兼容的单片微机。 部分厂家所生产的80C51系列或与之相兼容的单片微机的特点列于表1-l、表1一2及表1一3中。 80C51系列单片微机保留了MCS-51的所有特性,内部组成基本相同。80C51系列增设了两种可以用软件进行选择的低功耗工作方式:空闲方式和掉电方式。 87C51是80C51含EPROM的产品,89C51是80C51含EEPROM的产品。新一代的80C51系列除了上述的结构特性外,还向外部电路扩展,有的公司型号配备了串行扩展线,比如芯片间的总线(飞利浦公司的I2C总线)、设备间网络系统总线(CAN总线)等,为外部提供了完善的总线结构。采用总线方式的应用系统多属较复杂的工控系统、智能仪表、监测系统,或满足这些应用而构成的多机与网络系统。总线方式的单片微机在不使用外部并行总线时,外部并行总线引脚可作为I/O口用。在掩膜用户程序时,还可要求将这些I/O口改造成具有各种驱动能力的I/O口。根据应用的需要,部分产品对总线结构作了重大改进,推出了非总线型单片微机,其对外部不存在并行三总线(AB、DB、CB),必要时可以通过串行总线进行扩展。
1.3单片微机的应用
单片机最主要的应用就是构成智能系统,智能系统应具备数据采集、处理、判断、分析和控制、输出能力。在智能化程度较高的电子系统中,还应具备预测、自诊断、自适应、自组织和自学习功能。智能系统的组成:软件和硬件;硬件:模拟电路、数字电路、微处理器单片机系统DSP系统嵌入式系统PC机系统
按照所使用单片微机的类型不同,单片微机应用系统结构可分成总线方式和非总线方式。 在总线方式的应用系统中,单片微机具有完善的外部扩展总线,如并行总线(AB、DB、CB)、串行通信总线(如UART),通过这些总线可方便地扩展外围单元、外设接口等。总线方式的单片微机在不使用外部并行总线时,外部并行总线引脚可作为I/O口用。 非总线方式的应用系统(如80C51系列中的83C751、87C751,83C752、WC752,Motorola的MC68HC05系列中的许多产品)省去了外部并行总线,可构成各种小封装芯片,有限的引脚可提供更多的用户I/O口。
l.家用电器领域国内各种家用电器已普遍采用单片微机控制取代传统的控制电路,做成单片微机控制系统,如洗衣机、电冰箱、空调机、微波炉、电饭堡、电视机、录像机及其它视频音像设备的控制器。2.办公自动化领域 比如一台PC机可能嵌入了10个单片微机,如控制键盘、鼠标、显示器、CD-ROM、声卡、打印机、软/硬盘驱动器、调制解调器等。 现代办公室中所使用的大量通信、信息产品,如绘图仪、复印机、电话、传真机等,多数都采用了单片微机。
3.工业自动化领域的在线应用 如工业过程控制、过程监测、工业控制器及机电一体化控制系统等,许多都是以单片微机为核心的单机或多机网络系统。如工业机器人的控制系统是由中央控制器、感觉系统、行走系统、擒拿系统等节点构成的多机网络系统。而其中每一个小系统都是由单片微机进行控制的。4.智能仪器仪表与集成智能传感器领域 应用单片微机来对传统的仪器仪表行业的产品进行“更新换代”,提供了非常理想的的条件。目前各种变送器、电气测量仪表普遍采用单片微机应用系统替代传统的测量系统,使测量系统具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音功能等。5.汽车电子与航空航天电子系统
通常在这些电子系统中的集中显示系统、动力监测控制系统、自动驾驭系统、通信系统以及运行监视器(黑匣子)等,都要构成冗余的网络系统。比如一台RMW-7系列宝马轿车就用了63个单片微机。 单片微机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片微机通过软件方法实现了。这种以软件取代硬件,并能提高系统性能的控制技术,称之为微控制技术。这标志着一种全新概念的建立。03级单片机实践题目列表:专题一:液体点滴速度监控装置
专题二:电子秤的设计与制作
专题三:智能电梯控制系统
专题四:水温控制系统
专题五:数字式液量测量系统
专题六:脉搏测量仪的制作
专题七:直流数控稳压源
专题八:转速控制测量仪
专题九:数据采集系统
1.4单片机系统的开发实例介绍题目名称:三路数据采集系统的设计。1、输入要求:第一路信号为单次阻尼振荡信号,持续时间为0.4~1S,阻尼振荡频率为500HZ,输出振幅峰峰值小于0.5V;第二路为热电偶输出,温度范围0~400。C,相应输出数值0~25mv,温度最小区分度为0.2。C,工作环境下有0.2V共模噪声.第三路为0~5V可调直流电源的输出.
输出要求:对第一路信号,从示波器上显示出振荡波形,显示精度达到5%;对第二路信号,用十进制数码管显示实测温度值;对第三路信号,用十进制数码管显示实测电压值;对三个通道,通过发光管指示通道。系统组成以51系列单片机作为微处理器;三路A/D,或采用多路开关;需要外部数据存储器10K;不需要外部程序存储器;需要采样保持器;需要键盘,用于设置功能;需要4位LED;需要三路开关量输出;一路D/A。系统结构框图放大S/H放大程控放大多路开关A/D51单片机D/A数码显示键盘RAM电源第一路信号第二路信号第三路信号示波器发光管驱动逻辑电路1.5教学安排
80C51硬件结构简洁明了、特殊功能寄存器功能规范、软件指令系统易于掌握,是一种既便于讲授又便于学习、理解和掌握的单片微机。以80C51系列为典型,来介绍单片微机硬件结构和软件知识。硬件知识则是指80C51的硬件资源,如I/O口、定时器/计数器、中断系统等。软件知识是指80C51的寻址方式、指令系统以及程序设计等。 总的教学时数为72学时,其中上课时间为54学时,实验上机时间为18学时。表1–1Philips公司80C51系列的部分单片微机
表1–2ATMEL公司89C51系列的部分单片微机
表1–3华邦公司W78C51和W77C51系列的部分单片微机
第2章单片机的硬件结构和原理2.1MCS-51单片机硬件结构2.1.1MCS-51系列单片机的分类MCS-51系列单片机配置一览表2.1.2MCS-51单片机的内部结构MCS-51单片机结构框图2.1.3中央处理器CPU一、运算器算术逻辑单元ALU2.累加器ACC(Accumulator)3.寄存器B4.程序状态字PSW(ProgrameStateWord)CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0PSW
程序状态字PSW
D7D6D5D4D3D2D1D0CyACF0RS1RS0OV_PCy(Carry):进位AC(AuxiliaryCarry):辅助进位F0(Flag):用户标志RS1、RS0:寄存器组选择控制位OV(Overflow):溢出P(Parity):奇偶标志RS1、RS0与片内工作寄存器组的对应关系RS1RS0寄存器组片内PAM地址通用寄存器名称000组00H~07HR0~R7011组08H~0FHR0~R7102组10H~17HR0~R7013组18H~1FHR0~R7二、控制器控制电路完成指挥控制工作,协调单片机各部分正常工作。控制器电路包括:程序计数器PC;PC加1寄存器;指令寄存器;指令译码器;数据指针DPTR;堆栈指针SP;缓冲器以及定时与控制电路等。1、指令寄存器和指令译码器指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器译码后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。2.程序计数器PC(ProgramCounter)
PC用于存放CPU下一条要执行的指令地址,是一个16位的专用寄存器,可寻址范围是0000H~0FFFFH共64KB。程序中的每条指令存放在ROM区的某一单元,并都有自己的存放地址。CPU要执行哪条指令时,就把该条指令所在的单元的地址送上地址总线。在顺序执行程序中,当PC的内容被送到地址总线后,会自动加1,即(PC)←(PC)+1,又指向CPU下一条要执行的指令地址。3.堆栈指针SP(StackPointer)堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护及返回,它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回,进入栈区的“断点”数据应遵循“先进后出”的原则。SP用来指示堆栈所处的位置,在进行操作之前,先用指令给SP赋值,以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后,SP的值也自动随之变化。MCS-51系统复位后,SP初始化为07H。4.数据指针寄存器DPTR
数据指针DPTR是一个16位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个16位寄存器DPTR来处理,也可作为两个独立的8位寄存器DPH和DPL来处理。
DPTR主要用来存放16位地址,当对64KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。2.1.4定时器/计数器
MCS-51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。2.1.5存储器
MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。2.1.6并行I/O口
MCS-51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。
2.1.7.串行I/O口
MCS-51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。2.1.8中断控制系统
8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。2.1.9时钟电路
MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为6MHz。2.1.10总线以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。MCS-51单片机芯片内部结构框图2.2单片机的引脚及其功能MCS-51单片机引脚及总线结构(a)管脚图;(b)8031引脚功能分类
电源引脚Vcc和VssVcc:电源端,接+5V。
Vss:接地端。时钟电路引脚XTAL1和XTAL2XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。
XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。地址锁存允许ALE
系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
外部程序存储器读选通信号PSEN
是读外部程序存储器的选通信号,低电平有效。程序存储器地址允许输入端EA/VPP
当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当为低电平时,CPU只执行片外程序存储器指令。复位信号RST
该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。1.
输入/输出口引脚P0、P1、P2和P3P0口(P0.0~P0.7):该端口为漏极开路的8位准双向口,负载能力为8高LSTTL负载,它为8位地址线和8位数据线的复用端口。
P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。
P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。
P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有特殊功能。2.3存储器的结构MCS-51单片机的存储器结构2.4并行输入/输出接口1.P0口P0口地址为80H,各位口线具有完全相同但又相互独立的逻辑电路。2.P1、P2和P3口P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。
P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。
P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031而言,P2口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。P1口P1口的口线逻辑电路图P2口P2口的口线逻辑电路图P3口P3口的口线逻辑电路图8051单片机I/0口的应用A+5VBCP10P1400电机转01故障10维持11电机停2.5单片机的时钟与定时2.5.1时钟电路
1、根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式80C51的外部时钟输入是不同的。2、分频电路2.5.2定时单位
——振荡周期、时钟周期、机器周期和指令周期P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2(1)振荡周期——振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。(2)时钟周期——时钟周期又称作状态周期或状态时间S,它是振荡周期的两倍,它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存器之间的传送操作。(3)机器周期——一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。(4).指令周期——指CPU执行一条指令所需要的时间。一个指令周期通常含有1~4个机器周期。若MCS-51单片机外接晶振为12MHz时,则单片机的四个周期的具体值为:振荡周期=1/12MHz=1/12μs=0.0833μs时钟周期=1/6μs=0.167μs机器周期=1μs指令周期=1~4μs2.6单片机的系统复位
1.复位方式及复位电路
MCS-51单片机通常采用上电自动复位和按键手动复位两种方式。
22μFC1
RSTR11KΩ+5V22μFC1
RST+5VR2200Ω
RSTR1
+5V
C222μF
803180518751803180518751803180518751(a)上电复位电路(c)按键脉冲复位电路(b)按键电平复位电路R11KΩ22μFC11KΩR21KΩ特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0~P3FFHSBUF××××××××BIP×××00000BSCON00HIE0×000000BPCON0×××××××B单片机复位后特殊功能寄存器的状态2.7低功耗工作方式2.7.1低功耗的意义便携式的实现(使用电池供电);微型化(发热量小,使集成化提高);可靠性(温度低)。低功耗的措施:改进电路和工艺(8051功耗630MW,80C51功耗为120MW);配备高低速时钟;低电压供电;低功耗方式。2.7.3两种低功耗工作模式80C51有两种低功耗方式,即待机方式和掉电保护方式。待机方式和掉电保护方式都是由电源控制寄存器(PCON)的有关位来控制的。2.7.2单片机的两种工作模式常规运行模式:所有部件均处于加电正常工作状态。低功耗模式:暂时不使用的部件停止供电,系统处于等待状态。
其中:
SMOD:波特率倍增位,在串行通讯时使用。
GF1、GF0:通信标志位1、0。
PD:掉电方位式,PD=1,则进入掉电方式。
IDL:待机方式位,IDL=1,则进入待机方式。若PD和IDL同时为1,则先激活掉电方式。SMOD
---GF1GF0PDIDL电源控制寄存器(PCON)格式如下:⒈待机方式
⑴使用指令使PCON寄存器IDL位置1,则80C51进入待机方式这时振荡器仍然运行,并向中断逻辑、串行口和定时器/计数器电路提供时钟,中断功能继续存在
。
向CPU提供时钟的电路被阻断,因此CPU不能工作,与CPU有关的如SP、PC、PSW、ACC以及全部通用寄存器都被冻结在原状态。⑵可以采用中断方式或硬件复位来退出待机方式。 在待机方式下,若产生一个外部中断请求信号,在单片微机响应中断的同时,PCON.0位(IDL位)被硬件自动清‘0’,单片微机就退出待机方式而进入正常工作方式。在中断服务程序中安排一条RETI指令,就可以使单片微机恢复正常工作,从设置待机方式指令的下一条指令开始继续执行程序。⒉掉
电保护方式
⑴PCON寄存器的PD位控制单片微机进入掉电保护方式。 当80C51检测到电源故障时,除进行信息保护外,还应把PCON.1位置‘1’,使之进入掉电保护方式。此时单片微机一切工作都停止,只有内部RAM单元的内容被保护。
⑵只能依靠复位退出掉电保护方式。
80C51备用电源由Vcc端引入。当Vcc恢复正常后,只要硬件复位信号维持10ms,就能使单片微机退出掉电保护方式,CPU则从进入待机方式的下一条指令开始重新执行程序。实例介绍题目名称:三路数据采集系统的设计。1、输入要求:第一路信号为单次阻尼振荡信号,持续时间为0.4~1S,阻尼振荡频率为500HZ,输出振幅峰峰值小于0.5V;第二路为热电偶输出,温度范围0~400。C,相应输出数值0~25mv,温度最小区分度为0.2。C,工作环境下有0.2V共模噪声.第三路为0~5V可调直流电源的输出.
输出要求:对第一路信号,从示波器上显示出振荡波形,显示精度达到5%;对第二路信号,用十进制数码管显示实测温度值;对第三路信号,用十进制数码管显示实测电压值;对三个通道,通过发光管指示通道。
系统组成以51系列单片机作为微处理器;三路A/D,或采用多路开关;需要外部数据存储器10K;不需要外部程序存储器;需要采样保持器;需要键盘,用于设置功能;需要4位LED;需要三路开关量输出;一路D/A。系统结构框图放大S/H放大程控放大多路开关A/D51单片机D/A数码显示键盘RAM电源第一路信号第二路信号第三路信号示波器发光管驱动逻辑电路第3章MCS-51单片机指令系统3.1单片机指令系统概述3.2寻址方式3.3分类指令MCS-51单片机指令系统的特点:(1)指令执行快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操作。3.1单片机指令系统概述在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址。指令格式1.单字节指令单字节指令格式由8位二进制编码表示,例如:CLRA→E4H
2.双字节指令
双字节指令格式由两个字节组成,操作码和操作数,例如: MOVA,#10H→74H10H3.三字节指令
三字节指令格式中,第一个字节为操作码,后两个字节为操作数,例如: MOV40H,#30H→75H40H30H
一条汇编语言指令中最多包含4个区段,如下所示:
[标号:]操作码[操作数][;注释]
4个区段之间要用分隔符分开:标号与操作码之间用“:”隔开,操作码与操作数之间用空格隔开,操作数与注释之间用“;”隔开,如果操作数有两个以上,则在操作数之间要用逗号“,”隔开(乘法指令和除法指令除外)。
指令描述符号介绍Rn——当前选中的寄存器区中的8个工作寄存器R0~R7(n=0~7)。Ri——当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct—8位的内部数据存储器单元中的地址。#data——包含在指令中的8位常数。#data16——包含在指令中的16位常数。addr16——16位目的地址。addr11——11位目的地址。rel——8位带符号的偏移字节,简称偏移量。DPTR——数据指针,可用作16位地址寄存器。bit——内部RAM或专用寄存器中的直接寻址位。A——累加器。B——专用寄存器,用于乘法和除法指令中。C——进位标志或进位位,或布尔处理机中的累加器。@——间址寄存器或基址寄存器的前缀,如@Ri,@DPTR。/——位操作数的前缀,表示对该位操作数取反,如/bit。×——片内RAM的直接地址或寄存器。(×)——由×寻址的单元中的内容。
——箭头左边的内容被箭头右边的内容所代替。3.2寻址方式
所谓寻址方式,就是寻找操作数地址的方式,在用汇编语言编程时,数据的存放、传送、运算都要通过指令来完成。编程者必须自始至终都要十分清楚操作数的位置,以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优劣的主要指标之一。
在MCS-51单片机指令系统中,有以下7种寻址方式:
(1)立即寻址;
(2)直接寻址;
(3)寄存器寻址;
(4)寄存器间接寻址;
(5)基址寄存器加变址寄存器间接寻址;
(6)相对寻址;
(7)位寻址。1.立即寻址立即寻址方式是指操作数包含在指令字节中。跟在指令操作码后面的数就是参加运算的数,该操作数称为立即数。立即数有一字节和二字节两种可能,例如指令:MOVA,#3AHMOVDPTR,#0DFFFH
2.直接寻址在指令中直接给出操作数的地址,这种寻址方式就属于直接寻址方式。在这种方式中,指令的操作数部分直接是操作数的地址。在MCS-51单片机指令系统中,直接寻址方式中可以访问3种存储器空间:(1)内部数据存储器的低128个字节单元(00H~7FH)。(2)特殊功能寄存器。特殊功能寄存器只能用直接寻址方式进行访问。
(3)位地址空间。MOVA,52H;把片内RAM字节地址52H单元的内 容送累加器A中。
MOV52H,A;把A的内容传送给片内RAM的52H 单元中。
MOV50H,60H;把片内RAM字节地址60H单元的内 容送到50H单元中。
MOVIE,#40H;把立即数40H送到中断允许寄存器 IE。IE为专用功能寄存器,其字节 地址为0A8H。该指令等价于
MOV 0A8H,#40H。
INC60H;将地址60H单元中的内容自加1。
3.寄存器寻址
在该寻址方式中,参加操作的数存放在寄存器里。寄存器包括8个工作寄存器R0~R7,累加器A,寄存器B、数据指针DPTR和布尔处理器的位累加器C。MOVA,Rn;A
(Rn)其中n为0~7之一, Rn是工作寄存器。MOVRn,A;Rn
(A)MOVB,A;B
(A)
4.寄存器间接寻址
在这种寻址方式中,寄存器的内容为操作数的地址。寄存器间接寻址只能使用寄存器R0、R1作为地址指针,寻址内部RAM区的数据;当访问外部RAM时,可使用R0、R1及DPTR作为地址指针。寄存器间接寻址符号为“@”,例如:例如:
MOVR0,#60H;R0
60HMOVA,@R0;A
((R0))MOVA,@R1;A
((R1))
例如:MOVDPTR,#3456H;DPTR
3456HMOVXA,@DPTR;A
((DPTR))是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。5.基址寄存器加变址寄存器间接寻址这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器DPTR或PC的内容为基本地址,加上变址寄存器A的内容作为操作数的地址,例如:MOVCA,@DPTR+AJMP@A+DPTRMOVCA,@PC+A6.相对寻址
在MCS-51指令系统中设有转移指令,分为直接转移和相对转移指令,在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址,加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个8位带符号的常数,可正可负,其范围为-128~+127。SJMP08H;PC←转移指令地址+2+08H
7.位寻址
该种寻址方式中,操作数是内部RAM单元中某一位的信息。
SETBTR0;TR0
1 CLR00H;(00H)
0 MOVC,57H;将57H位地址的内容传送到 位累加器C中
ANLC,5FH;将5FH位状态与进位位C相与, 结果在C中3.3指令系统3.3.1指令分类
MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。 按指令的功能,MCS-51指令系统可分为下列5类: (1)数据传送类指令(29条) (2)算术运算类指令(24条) (3)逻辑运算及移位类指令(24条) (4)位操作类指令(17条) (5)控制转移类指令(17条)
3.3.2数据传送类指令
数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 格式:MOV[目的操作数],[源操作数]
功能:目的操作数
(源操作数中的数据) 源操作数可以是:A、Rn、direct、@Ri、#data
目的操作数可以是:A、Rn、direct、@Ri
1.以累加器为目的操作数的内部数据传送指令MOVA,Rn;A
(Rn)MOVA,direct;A
(direct)MOVA,@Ri;A
((Ri))MOVA,#data;A
data2.数据传送到工作寄存器Rn的指令MOVRn,A;Rn
(A)MOVRn,direct;Rn
(direct)MOVRn,#data;Rn
data3.数据传送到内部RAM单元或特殊功能寄存器SFR的指令MOVdirect,A;direct
(A)MOVdirect,Rn ;direct
(Rn)MOVdirect1,direct2 ;direct1
(direct2)MOVdirect,@Ri;direct
((Ri))MOVdirect,#data ;direct
#dataMOV@Ri,A ;(Ri
(A)MOV@Ri,direct ;(Ri)
(direct)MOV@Ri,#data ;(Ri)
dataMOVDPTR,#data16 ;DPTR
data16
片内数据RAM及寄存器的数据传送指令MOV、PUSH和POP共18条。4.累加器A与外部数据存储器之间的传送指令片外数据存储器数据传送指令MOVX共4条。MOVXA,@DPTR;A
(DPTR)MOVXA,@Ri ;A
((Ri))MOVX@DPTR,A;(DPTR)
AMOVX@Ri,A;(Ri)
A5.程序存储器内容送累加器
MOVCA,@A+PC MOVCA,@A+DPTR
程序存储器查表指令MOVC共2条6.堆栈操作所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令:
PUSHdirect;SP←(SP+1),(SP)←(direct)
POP direct ;(direct)←(SP),SP←SP-1PUSH是进栈(或称为压入操作)指令。POP是出栈(或称为弹出操作)指令。7.字节交换指令数据交换主要是在内部RAM单元与累加器A之间进行,有整字节和半字节两种交换。 (1)整字节交换指令XCHA,Rn;A<=>RnXCHA,direct ;A<=>(direct)XCHA,@Ri ;A<=>(Ri)XCHDA,@Ri ;A0~3<=>(Ri)0~3SWAPA ;A0~3<=>A4~7(2)半字节交换指令【例】将片内RAM30H单元与40H单元中的内容互换。方法1(直接地址传送法):
MOV 31H,30HMOV 30H,40HMOV 40H,31HSJMP $方法2(间接地址传送法):
MOV R0,#40HMOV R1,#30HMOV A,@R0MOV B,@R1MOV @R1,AMOV @R0,BSJMP $方法3(字节交换传送法):
MOV A,30HXCH A,40HMOV 30H,ASJMP $方法4(堆栈传送法):
PUSH 30HPUSH 40HPOP 30HPOP 40HSJMP $3.3.3算术运算类指令算术运算指令算术运算指令影响标志位的指令
影响标志位的指令一、加法指令1.普通加法指令
ADDA,RnADDA,directADDA,@RiADDA,#data例写出以下一段程序各条指令执行的结果
MOVA,#0B3H;
MOV20H,#10H;
MOVR0,#20H;
ADDA,@R0;
ADDA,R0;
ADDA,#10H;例如:120和100之和为220,显然大于127,相加时011110001200110010010011011100220+符号位(最高位)由0变1,两个正数相加结果变负,实际上它是和数的最高位,符号位移入了进位标志,此时位6有进位而位7无进位,置位溢出标志OV,结果溢出。
程序状态字PSW
D7D6D5D4D3D2D1D0CyACF0RS1RS0OV_PCy(Carry):进位AC(AuxiliaryCarry):辅助进位F0(Flag):用户标志RS1、RS0:寄存器组选择控制位OV(Overflow):溢出P(Parity):奇偶标志
同样,-120和-100相加,结果应为-220,显然小于-128,相加时10001000-12010011100-100+100100100-220
符号位由1变为0,两个负数相加结果变为正数,这是因为符号位移入进位标志,位6无进位而位7有进位,置位溢出标志OV,由此可判断结果溢出。2.带进位加法指令
ADDCA,RnADDCA,directADDCA,@RiADDCA,#data
这组指令的功能与普通加法指令类似,唯一的不同之处是,在执行加法时,还要将上一次进位标志Cy的内容也一起加进去,对于标志位的影响也与普通加法指令相同。例有两个16位数。低8位分别存于20H和30H之中。高八位分别存于21H和31H中。求他们的和,和的低八位送40H,高8位送41H。
MOVA,20HADDA,30H;低8位相加
MOV40HA;有和的低8位
MOVA,21HADDCA,31H;高8位相加,带低八位相加的进位
MOV41H,A;存和的高8位
3.增量指令
INCAINCRnINCdirectINC@RiINCDPTR
这组指令的功能是:将指令中所指出操作数的内容加1。若原来的内容为0FFH,则加1后将产生溢出,使操作数的内容变成00H,但不影响任何标志。最后一条指令是对16位的数据指针寄存器DPTR执行加1操作,指令执行时,先对低8位指针DPL的内容加1,当产生溢出时就对高8位指针DPH加1,但不影响任何标志。4.十进制调整指令
DAA
这条指令对累加器A参与的BCD码加法运算所获得的8位结果进行十进制调整,使累加器A中的内容调整为二位压缩型BCD码的数。使用时必须注意,它只能跟在加法指令之后,不能对减法指令的结果进行调整,且其结果不影响溢出标志位。执行该指令时,判断A中的低4位是否大于9和辅助进位标志AC是否为“1”,若两者有一个条件满足,则低4位加6操作;同样,A中的高4位大于9或进位标志Cy为“1”两者有一个条件满足时,高4位加6操作。例如:有两个BCD数36与45相加,结果应为BCD码81,程序如下:MOVA,#36HADDA,#45HDAA
这段程序中,第一条指令将立即数36H(BCD码36)送入累加器A;第二条指令进行如下加法:00110110360100010145011110117B0000011006++1000000181得结果7BH;第三条指令对累加器A进行十进制调整,低4位(为0BH)大于9,因此要加6,得调整的BCD码81。
例:二个多字节无符号数相加设有两个四位BCD码分别存在内部RAM的50H、51H和60H、61H单元中,试编写程序,求两个BCD码数之和,结果存入内部40H、41H单元。
MOVR0,#50H ;被加数首址
MOVR1,#60H ;加数首址
MOVA,@R0 ;取被加数
ADDA,@R1 ;与加数相加
DAA ;二-十进制调整
MOV40H,A ;存和
二、减法指令
1.带进位减法指令
SUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#data
功能:将累加器A的内容与第二操作数及进位标志相减,结果送回到累加器A中。在执行减法过程中,如果位7(D7)有借位,则进位标志Cy置“1”,否则清“0”;如果位3(D3)有借位,则辅助进位标志AC置“1”,否则清“0”;如位6有借位而位7没有借位,或位7有借位而位6没有借位,则溢出标志OV置“1”,否则清“0”。若要进行不带借位的减法操作,则必须先将Cy清“0”。
2.减1指令
DECADECRnDECdirectDEC@Ri
这组指令的功能是:将指出的操作数内容减1。如果原来的操作数为00H,则减1后将产生下溢出,使操作数变成0FFH,但不影响任何标志。
三、乘法指令乘法指令完成单字节的乘法,只有一条指令:MULAB
这条指令的功能是:将累加器A的内容与寄存器B的内容相乘,乘积的低8位存放在累加器A中,高8位存放于寄存器B中。如果乘积超过0FFH,则溢出标志OV置“1”,否则清“0”。进位标志Cy总是被清“0”。
四、除法指令
除法指令完成单字节的除法,只有一条指令:DIVAB
这条指令的功能是:将累加器A中的内容除以寄存器B中的8位无符号整数,所得商的整数部分存放在累加器A中,余数部分存放在寄存器B中,清“0”进位标志Cy和溢出标志OV。若原来B中的内容为0,则执行该指令后A与B中的内容不定,并将溢出标志OV置“1”,在任何情况下,进位标志Cy总是被清“0”。例:数的码制转换。把累加器A中无符号二进制整数(00-FFH)转换为三位压缩BCD码(0~255),并存入内存30H和31H单元。BINBCD:MOVB,#100 DIVAB;A÷100 百位数在A,余数在B MOV30H,A ;百位数送30HMOVA,B MOVB,#0AH DIVAB ;余数÷10,十位数在A低四位, ;个位数在B SWAPA ;十位数放A的高四位
ADDA,B ;十位数和个位数组合后送31H MOV31H,A RET3.3.4逻辑运算类指令
逻辑运算指令
一、简单逻辑操作指令
CLRA;对累加器A清“0”
CPLA;对累加器A按位取反
RLA;累加器A的内容向左环移1位
RLCA;累加器A的内容带进位标志位向左环移1位
RRA;累加器A的内容向右环移1位
RRCA;累加器A的内容带进位标志位向右环移1位这组指令的功能是:对累加器A的内容进行简单的逻辑操作。除了带进位标志位的移位指令外,其它都不影响Cy,AC,OV等标志。
二、逻辑与指令
ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data
这组指令的功能是:将两个操作数的内容按位进行逻辑与操作,并将结果送回目的操作数的单元中。
三、逻辑或指令ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data
这组指令的功能是:将两个操作数的内容按位进行逻辑或操作,并将结果送回目的操作数的单元中。
四、逻辑异或指令
XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data
这组指令的功能是:将两个操作数的内容按位进行逻辑异或操作,并将结果送回到目的操作数的单元中。3.3.5控制转移指令控制转移指令共有17条,不包括按布尔变量控制程序转移指令。其中有64KB范围内的长调用、长转移指令;有2KB范围内的绝对调用和绝对转移指令;有全空间的长相对转移及一页范围内的短相对转移指令;还有多种条件转移指令。由于MCS-51提供了较丰富的控制转移指令,因此在编程上相当灵活方便。这类指令用到的助记符共有10种:AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、JNZ、CJNE、DJNZ。
控制转移指令一、无条件转移指令1.绝对转移指令
AJMPaddr11
这是2KB范围内的无条件跳转指令,执行该指令时,先将PC+2,然后将addr11送入PC10~PC0,而PC15~PC11保持不变。这样得到跳转的目的地址。需要注意的是,目标地址与AJMP后面一条指令的第一个字节必须在同一个2KB区域的存储器区内。
2.(短)相对转移指令
SJMPrel
执行该指令时,先将PC+2,再把指令中带符号的偏移量加到PC上,得到跳转的目标地址送入PC。rel为有符号8位二进制数。
3.长跳转指令
LJMPaddr16
执行该指令时,将16位目标地址addr16
装入PC,程序无条件转向指定的目标地址。转移的目标地址可以在64KB程序存储器地址空间的任何地方,不影响任何标志。4.散转指令
JMP@A+DPTR
执行该指令时,把累加器A中的8位无符号数与数据指针中的16位数相加,结果作为下条指令的地址送入PC,不改变累加器A和数据指针DPTR的内容,也不影响标志。利用这条指令能实现程序的散转。
例:散转程序设计,根据A中的数值实现程序散转
MOV R1,A;(A)×3 RL A ADD A,R1 MOVDPTR,#TABLE;散转表首地址送DPTR JMP @A+DPTRTABLE:LJMPPM0 ;转程序PM0TABLE+3:LJMPPM1 ;转程序PM1 ------PM0:-----LJMP是一个三字节指令,因此转移指令入口地址相隔3个字节,A中内容需是3的倍数。
二、条件转移指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 利用社区资源丰富班级活动计划
- 会计人员的职业成就与反思计划
- 信阳师范大学《大学物理》2022-2023学年第一学期期末试卷
- 地震应急避险技能培训
- 《机械零件加工》立项改革课程结题申报表
- 新余学院《英语语音》2021-2022学年第一学期期末试卷
- 西华大学《外国美术史》2021-2022学年第一学期期末试卷
- 六年级校园安全我知道
- 西北大学《光电子学》2022-2023学年第一学期期末试卷
- 西安邮电大学《信息系统分析与设计》2021-2022学年第一学期期末试卷
- 岩体力学与工程智慧树知到答案2024年合肥工业大学
- 2025届高考数学复习 函数导数 备考策略分析课件
- 2024年秋季学期新Join In剑桥版(三年级起)英语三年级上册课件 Unit 6 第2课时(Parts 4~6)
- 放弃配偶监护权协议书范本
- (高清版)DB23∕T 3703-2024 重大活动网络安全保障指南
- 2024年公务员300道公务员面试试题及答案
- 山东省烟台市2024年中考英语真题【附真题答案】
- 《2023-2024中国区块链发展年度报告》
- 六年级上册美术说课稿 -第7课《 变化多样的脸谱》桂美版(广西版)
- 人教版七年级数学上册3.4 第3课时《 球赛积分表问题》说课稿1
- DL∕T 5210.2-2018 电力建设施工质量验收规程 第2部分:锅炉机组
评论
0/150
提交评论