嵌入式系统原理与接口技术(1-9章全)_第1页
嵌入式系统原理与接口技术(1-9章全)_第2页
嵌入式系统原理与接口技术(1-9章全)_第3页
嵌入式系统原理与接口技术(1-9章全)_第4页
嵌入式系统原理与接口技术(1-9章全)_第5页
已阅读5页,还剩556页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统与接口技术北京理工大学光电学院2020.9122第1章 单片机概述33第1章 单片机概述单片机简介单片机的发展历史单片机的特点单片机的应用单片机的发展趋势MCS-51系列与AT89S5x系列单片机各种衍生品种的8051单片机PIC系列单片机与AVR系列单片机单片机开发过程与调试工具回顾1:计算机系统基本概念与常用术语回顾2:二进制编码(代码)44什么是单片机我们生活中处处都会遇到单片机 冯诺依曼计算机的基本组成输入设备 存储器 运算器 控制器输出设备 CPU冯诺伊曼(19031957)1945年提出了“程序内存式”计算机的设计思想。5冯诺依曼存储程序工作原理数据和程序以二进制代码的形

2、式不加区别地存放在存储器中,存放位置由地址指定,地址码也是二进制形式控制器根据存放在存储器中的指令序列(即程序)工作,并由一个程序计数器(PC)控制指令的执行。控制器具有判断能力,能够根据计算结果选择不同的动作流程6微型计算机系统通常由多块印刷电路板制成 主板显卡声卡存储器接口网卡输入输出接口内存条CPU7CPUCPU芯片内存条存储器接口存储器芯片输入输出接口输入输出接口芯片定时计数器芯片A/D、D/A芯片单板机 印 刷 电 路 板8 单 硅 晶 片 CPU存储器控制电路定时器时钟电路I / O口单片机 在一片半导体硅片集成了中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O、串行I

3、/O、定时器/计数器、中断系统、系统时钟电路及系统总线。 用于测控领域的单片微型计算机,简称单片机。91010单片机使用时通常处于测控系统的核心地位并嵌入其中,所以国际上通常把单片机称为嵌入式控制器(EMCU,Embedded MicroController Unit),或微控制器(MCU,MicroController Unit)。单片机的问世标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。按照用途,单片机可以分为:通用型单片机(本课研究的对象):其内部可开发的资源(如存储器、I/O等各种外围功能部件等)可以全部提供给用户。用户可以根据需要设计一个以通用单片机为核心,再配以外

4、围接口电路及其它外围设备,并编写相应的软件来满足各种不同需要的测控系统。11例:各种家用电器中的控制器等。由于用于特定用途,单片机芯片制造商常与产品厂家合作,设计和生产“专用”的单片机芯片。11专用型单片机是专门针对某些产品的特定用途而制作的单片机。SurplusSPCA533A12单片机的发展历史 单片机按其处理的数据位宽主要分为:4位单片机、8位单片机、16位单片机和32位单片机。发展大致分为4个阶段:第一阶段(1974年1976年):单片机初级阶段。因工艺限制,单片机采用双片的形式而且功能比较简单。1974年12月,仙童公司推出了8位的F8单片机,实际上只包括了8位CPU、64B RAM

5、和2个并行口。第二阶段(1976年1978年):低性能单片机阶段。1976年 Intel的MCS-48单片机(8位)和1977年GI公司的PIC1650等,极大促进了单片机的变革和发展。12PIC165013第三阶段(1978年1983年):高性能单片机阶段。1978年,Zilog公司推出Z8单片机,1980年,Intel公司在MCS-48系列基础上推出MCS-51系列,Mortorola推出6801单片机。使单片机的性能及应用跃上新的台阶。13Z86801第四阶段(1983年现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段。89S528098MC68HC16MSP43014单片

6、机的特点单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。14151.4 单片机的应用 软硬件结合、体积小,容易嵌入到各种应用系统中。15工业检测与控制 工业过程控制、智能控制、设备控制、数据采集和传输、测试、测量、监控等。

7、仪器仪表 单片机的使用有助于提高仪器仪表的精度和准确度,简化结构,减小体积而易于携带和使用。消费类电子产品 单片机会大大提高产品功能和性能,实现智能最优化控制。通讯 信息网络及各种通讯设备中。武器装备 在现代化的武器装备中,都有单片机嵌入其中。16各种终端及计算机外部设备 计算机网络终端(如银行终端)以及计算机外部设备(如打印机、硬盘驱动器、绘图机、传真机、复印机等)汽车电子设备 如:汽车安全系统、汽车信息系统、智能自动驾驶系统、卫星汽车导航系统、汽车紧急请求服务系统、汽车防撞监控系统、汽车自动诊断系统以及汽车黑匣子等。分布式多机系统 在较复杂多节点的测控系统中,常采用分布式多机系统。1617

8、1.5 单片机的发展趋势 单片机的发展趋势将是向大容量、高性能化,外围电路内装化等方面发展。CPU的改进增加CPU数据总线宽度。(如:各种16位单片机和32位单片机,数据处理能力要优于8位单片机)采用双CPU结构,以提高数据处理能力。存储器的发展片内程序存储器普遍采用闪烁(Flash)存储器,可不用外扩展程序存储器,简化系统结构。加大存储容量。目前有的单片机片内程序存储器容量可达128KB甚至更多。1718片内I/O的改进增加并行口驱动能力,以减少外部驱动芯片。有的单片机可以直接输出大电流和高电压,以便能直接驱动LED和VFD(荧光显示器)。有些单片机设置了一些特殊的串行I/O功能,为构成分布

9、式、网络化系统提供方便条件。引入了数字交叉开关,改变了以往片内外设与外部I/O引脚的固定对应关系。 低功耗 CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式。消耗电流仅在A或nA量级,适于电池供电的便携式、手持式的仪器仪表以及其它消费类电子产品。外围电路内装化 系统的单片化,一片芯片就是一个“测控”系统。1819编程及仿真的简单化 目前大多数的单片机都支持程序在系统编程ISP(In System Program),只需一条与PC机USB口(或串行口)相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去编程器与仿真器。某些机型还支持在线

10、应用编程IAP,即可在线升级或销毁单片机的应用程序。实时操作系统的使用 单片机可配置实时操作系统RTX51,简化了对实时事件反应速度要求较高的复杂系统设计、编程和调试,已完全集成到C51编译器中,使用简单方便。20MCS-51系列与AT89C5x系列单片机MCS是Intel公司单片机的系列符号。MCS-51系列是在MCS-48系列基础上于20世纪80年代初发展起来的,在我国得到广泛应用的单片机主流品种基本型产品主要包括8031、8051、8751(对应的CMOS工艺的低功耗型为80C31、80C51、87C51)和增强型产品8032、8052、8752 2021基本型典型产品:8031/805

11、1/87518031内部包括1个8位CPU、128B RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口,2个16位定时器/计数器,5个中断源,但片内无程序存储器,需外扩程序存储器芯片。8051是在8031的基础上,片内又集成有4KB ROM作为程序存储器。是一个程序不超过4KB的小系统。ROM内的程序是制作芯片时,代为用户烧制的。主要用在程序已定且批量大的产品中。8751与8051相比,片内的4KB EPROM取代了8051的4KB ROM来作为程序存储器。2122增强型 典型产品:8032/8052/8752。内部RAM增到256B,8052、片内程序存储器扩展

12、到8KB,16位定时器/计数器增至3个,6个中断源,串行口通信速率提高5倍。222323MCS-51系列设计上的成功,以及较高的市场占有率,已成为许多厂家、电气公司竞相选用的对象。Intel公司以专利形式把8051内核技术转让给ATMEL、Philips、Cygnal、ANALOG、LG、ADI、Maxim、DALLAS等公司。生产的兼容机与8051兼容,采用CMOS工艺,因而常用80C51系列单片机来称呼所有这些具有8051指令系统的单片机,这些兼容机的各种衍生品种统称为51系列单片机或简称为51单片机,是在8051的基础上又增加一些功能模块(称其为增强型、扩展型子系列单片机)。24AT89

13、S5x系列单片机在众多的衍生机型中,ATMEL公司的AT89C5x/AT89S5x系列,尤其是AT89C51/AT89S51和AT89C52/AT89S52在8位单片机市场中占有较大的市场份额。ATMEL公司1994年以E2PROM技术与Intel公司的80C51内核的使用权进行交换。ATMEL公司的技术优势是闪烁(Flash)存储器技术,将Flash技术与80C51内核相结合,形成了片内带有Flash存储器的AT89C5x/AT89S5x系列单片机。AT89C5x/AT89S5x系列与MCS-51系列在原有功能、引脚以及指令系统方面完全兼容。此外,某些品种又增加了一些新的功能,如看门狗定时器

14、WDT、ISP(在系统编程也称在线编程)及SPI串行接口技术等。片内Flash存储器允许在线(+5V)电擦除、电写入或使用编程器对其重复编程。AT89C5x/AT89S5x单片机还支持由软件选择的两种节电工作方式,非常适于低功耗的场合。2425AT89S5x系列的时钟频率以及运算速度有了较大的提高。例如,AT89C51工作频率的上限为24MHz,而AT89S51则为33MHz。AT89S51片内集成有双数据指针DPTR,看门狗定时器,具有低功耗的空闲工作方式和掉电工作方式,还增加了5个特殊功能寄存器。AT89S51与AT89S52差别在于AT89S51片内有4KB Flash存储器、128B的

15、RAM、5个中断源以及2个定时器/计数器;而AT89S52片内有8KB的Flash程序存储器、256B的RAM、6个中断源、3个定时器(比AT89S51多出1个定时器,且具有捕捉功能)。26AT89xxxx系列单片机的型号说明 AT89xxxx系列单片机的型号编码由三部分组成:前缀、型号和后缀。前缀 “AT”表示ATMEL公司型号 由“89Cxxxx”或“89LVxxxx”或“89Sxxxx”等表示。8表示单片,9表示内部含有Flash存储器,C表示CMOS,LV表示低电压(2.5V)产品,S表示含有串行下载的Flash存储器,“xxxx”表示器件型号,如51、52等。后缀 由最后的4个“xx

16、xx”参数组成,后缀中第1个“x”表示时钟频率后缀中第2个“x”表示封装后缀中第3个“x”表示芯片的使用温度范围如:某一单片机型号为“AT89S52-24PU”,则表示该单片机是ATMEL公司的Flash单片机,CMOS产品,速度为24MHz,封装塑料双列直插DIP封装,是工业级无铅产品。27各种衍生的8051单片机STC系列单片机 STC系列单片机是国产功能与抗干扰性强的增强型8051单片机。STC12C5410/STC12C2052系列机型主要性能及特点:高速:速度比普通的8051快812倍宽工作电压:5.53.8V,2.43.8V片内Flash程序存储器:12KB/10KB/8KB/6K

17、B/4KB,擦写次数10万次以上片内的RAM数据存储器: 512B 可在线编程(ISP)/在应用可编程(IAP),无需编程器8通道的10位ADC,4路PWM输出4通道捕捉/比较单元,也可用来再实现4个定时器 或4个外部中断(支持上升沿/下降沿中断)2个硬件16位定时器,4路可编程计数/定时器阵列 (PCA)还可再实现4个定时器硬件看门狗(WDT)高速SPI串口全双工异步串行口(UART),兼容普通8051的串口通用I/O口(27/23/15个)中的每个I/O口驱动能力均可达到20mA超强抗干扰能力与高可靠性超低功耗设计2728C8051Fxxx单片机美国Cygnal公司产品,集成度高,8051

18、内核。代表性产品为C8051F020。内部采用流水线结构,大部分指令的完成时间为1或2个时钟周期,峰值处理能力为25MIPS。C8051F020内部采用流水线结构,大部分指令的执行时间为1或2个时钟周期,峰值处理能力为25MIPS,与经典的8051单片机相比,可靠性和速度有很大提高。 28片内资源:1个8位ADC、1个12位ADC、1个双12位DAC;64kB片内Flash程序存储器,256B RAM,128B SFR;8个IO端口共64根IO口线;5个16位通用定时器;5个捕捉比较模块的可编程计数定时器阵列(PCA),1个UART串行口、1个SMBus/ I2C串口、1个SPI串行口;2路电

19、压比较器,VDD监视器(电源监测),内置温度传感器。C8051Fxxx单片机最突出的改进是引入了数字交叉开关。改变以往内部功能与外部引脚的固定对应关系。它是一个大的数字开关网络,允许将内部数字系统资源分配给端口I/O引脚。29ADC812单片机美国ADI(Analog Devicelnc)公司生产的高性能单片机,内部包含高精度的自校准8通道12位模数转换器,2通道12位数模转换器以及可编程的8位的与8051单片机兼容的MCU内核,指令系统与MCS-51系列兼容。片内有8KB Flash程序存储器、640B Flash数据存储器、256B数据SRAM(支持可编程)。片内集成看门狗定时器、电源监视

20、器以及ADCDMA功能。为多处理器接口和I/O扩展提供了32条可编程的I/O线、包含有与I2C兼容的串行接口、SPI串行接口和标准UART串行接口I/O。30华邦W77系列、W78系列单片机台湾华邦公司(Winbond) W78系列单片机与AT89C5x系列完全兼容,W77系列为增强型。W77系列对8051的时序作了改进:每个指令周期只需要4个时钟周期,速度提高了三倍,工作频率最高可达40MHz。W77系列增加看门狗WatchDog、两组UART、两组DPTR数据指针(编写程序非常便利)、ISP(在系统可编程)等功能。片内集成了USB接口,语音处理等功能,具有6组外部中断源。31PIC系列单片

21、机 美国Microchip公司的产品。特性如下:性能价格比高 如:6脚单片机 PIC10F322被认为是世界上最小的单片机。而40只引脚的PIC16C74,其内部有4KB 的ROM、192字节RAM、8路A/D、3个8位定时器、2个CCP模块、3个串行口、1个并行口、11个中断源、33个I/O脚,可以与其他品牌的高档型号媲美。31精简指令集(RISC)。PIC系列8位单片机数据总线和指令总线分离的哈佛总线(Harvard)结构,指令单字长,且允许指令代码的位数可多于8位的数据位数,这与传统的采用复杂指令结构(CISC)结构的8位单片机相比,可以达到2:1的代码压缩,速度提高4倍。优越的开发环境

22、。PIC推出一款新型号单片机的同时推出相应的仿真芯片,所有的开发系统由 专用的仿真芯片支持,实 时性非常好。引脚通过限流电阻可以接 至220V交流电源,可直接 与继电器控制电路相连, 无须光电耦合器隔离。32AVR系列单片机 1997年ATMEL公司研发出RISC高速8位单片机。特点如下:废除了机器周期,抛弃复杂指令(CISC)计算机追求指令完备的做法。采用精简指令集,以字作为指令长度单位,将操作数与操作码安排在一字之中,指令长度固定、指令格式与种类相对较少、寻址方式也相对较少,绝大部分指令都为单周期指令。取指周期短,又可预取指令,实现流水作业,故可高速执行指令。片内Flash程序存储器擦写可

23、达10000次以上。片内集成有大容量RAM,更有效地支持高级语言开发。丰富的片内外设:定时器/计数器、看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了单片机应用系统的可靠性。I/O口功能强、驱动能力大。工业级产品,具有大电流(最大可达40mA),驱动能力强,可省去功率驱动器件,直接驱动可控硅SSR或继电器。32低功耗。具有省电功能(Power Down)及休眠功能(Idle)的低功耗的工作方式。一般耗电在12.5 mA,适用于电池供电。支持程序的ISP编程,开发容易。其中MEGA系列还支持在线应用编程(IAP,

24、可在线升级或销毁应用程序)。如何利用单片机开发控制系统阶段一:需求分析33需求分析是分析功能、确定参数要求的过程。如:一个简单的单片机控制发光二极管的例子,功能确定为单片机控制一个发光二极管点亮500ms,熄灭500ms,再点亮500ms,再熄灭500ms如此反复。阶段二:电路设计34左边阴影框里就是单片机,右边的是LED。35单片机程序用汇编语言或C51语言编写。用汇编或C51语言设计好的单片机程序,将通过一个连接计算机USB口和单片机下载接口的ISP下载器,下载到单片机中。下载完成后,单片机启动时运行下载的程序就可以实现相应的控制功能了。阶段三:程序设计阶段四:系统调试36 调试阶段,也就

25、是“磨合”软件和硬件以便它们共同实现系统功能。当程序下载到单片机系统后,启动单片机运行程序,观察系统的“反应”和预期设计是不是相符。如:发光二极管以500ms为间隔进行闪烁。当程序设计完成并下载到单片机之后,可能出现的问题是LED不闪烁或闪烁的时间间隔不对。如果出现这些与设计不符的实验效果,首先在保证硬件电路是正确的前提下,回到程序中找错误,修改后再下载到单片机系统中。如此反复,直到系统运转正常为止。常用MCS-51单片机开发工具Keil 51 集成开发环境集成开发环境,源程序编辑、编译、链接、调试均在IDE环境下支持多种处理器支持C和汇编语言支持源程序调试支持硬件仿真器支持软件仿真器37Pr

26、oteus仿真软件特点:可以实现单片机、接口芯片的电路仿真比MutsimEWB小巧且功能一致,可以实现多种单片机(MCS-51、PIC系列、ARM系列)的仿真和程序调试对计算机硬件要求低38回顾1:计算机系统基本概念与常用术语位(Bit) :位是计算中构成信息的最小单位,表示二进制数中的某个数位“0”或“1”字节(Byte) :1字节为8位(bit), 1K=210=1024,1KB=1024Byte字(Word) : 1字为16位(bit)指令(Instruction): 指规定计算机完成某种操作的命令。目前计算机只能直接识别由二进制编码的指令,即机器码指令系统(Instnction Set

27、):指一台计算机所能识别的全部指令的集合程序(Progrom):为完成特定任务而设计的一组指令有序的集合地址(Address):地址指存贮单元的编号时序:就是计算机在工作过程中,CPU控制器所发出的一系列控制信号在时间上的相互关系39回顾2: 二进制编码(代码)一、二进制编码的十进制(二十进制或BCD码) 8421 BCD码有10个不同的数字符号,由于它是逢“十”进位的,所以,它是十进制;同时,它的每一位是用4位二进制编码来表示的。BCD 码具有二进制和十进制两种数制的某些特征。 BCD码分为压缩BCD码和非压缩BCD码压缩BCD码的每一位用4位二进制表示,00001001表示09,一个字节表

28、示两位十进制数 非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09 要用BCD码表示十进制数,只要把每个十进制数用适当的二进制4位码代替即可。例如,十进制整数256用BCD码表示,则为(0010 0101 0110)BCD40例:将二进制数1011.01转换成相应的BCD码。首先将二进制数转换成十进制数: 1011.01B(123)(022)(121) (120)(02-1)(12-2) 802100.25 11.25D然后,将十进制结果转换成BCD码11.25D(0001 0001.0010 0101)BCD41BCD码十六进制书写形式十进制数84

29、21码BCD码十六进制书写形式十进制数8421码0H00000B10H100001 0000B1H10001B11H110001 0001B2H20010B12H120001 0002B3H30011B13H130001 0003B4H40100B14H140001 0004B5H50101B15H150001 0005B6H60110B7H70111B8H81000B9H91001B二、字母与字符的编码 字母和各种字符在计算机内是按特定的规则用二进制编码表示的。这些编码有各种不同的方式。 目前在微机、通讯设备和仪器仪表中广泛使用的是ASCII(American Standard Code f

30、or Information Interchange)码-美国标准信息交换码。 7位ASCII代码能表示27128种不同的字符,其中包括数码(09),英文大、小写字母,标点和控制的附加字符。 7位ASCII码是由左3位一组和右4位一组组成的。左表表 示这两组的安排和号码的顺序,位6 是最高位,而位0是最低位。要注意 这些组在码表的行、列中的排列情 况。4位一组表示行,3位一组表示列。4243 ASCII码(美国标准信息交换代码)44数字09的编码是01100000111001,它们的高3位均是011,后4位正好与其对应的二进制代码(BCD码)相符英文字母AZ的ASCII码从1000001(41

31、H)开始顺序递增,字母az的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利 ASCII码45汉字编码 汉字编码包括输入编码、内码和字模编码,分别用于输入、内部处理和输出。汉字的输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、拼音码和字形编码三类。汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,它采用两个字节的二进制形式表示一个汉字。为与英文字符区别,汉字机内代码中两个字节的最高位均规定为l1980年,我国颁布了信息交换用汉字编码字符集(GB 2312-1980)标准,1995年又颁布了汉字编码扩展规范(GBK),扩充了G

32、B2312-1980的内容,同时在字汇一级支持ISO/IEC10646-1和GB 13000-1的全部中、日、韩(CJK)汉字例:汉(BABA)字(D6D7)编(E0B1)码(EBC2)46 汉字字型编码是用来描述汉字字形的代码,它是汉字的输出形式。汉字库有点阵字库、TrueType字库、矢量字库等类型。汉字编码带符号数的表示法 一、机器数与真值 在计算机中,为了区别正数或负数,是将数学上的“”“”符号数字化,规定1个字节中的D7位为符号位,D0D6位为数字位。在符号位中,用“0”表示正,“1”表示负,而数字位表示该数的数值部分。例如: 0101101191D 1101101191D 1个数的

33、数值和符号全都数码化了。我们把1个数(包括符号位)在机器中的一组二进制数表示形式,称为“机器数”,而把它所表示的值称为机器数的“真值”。 47二、机器数的种类和表示方法 在机器中表示带符号的数有3种表示方法:原码、反码和补码。48(一)原码所谓数的原码表示,即符号位用0表示正数,而用1表示负数,其余数字位表示数值本身。对于0,可以认为它是(0),也可以认为它是(0)。 0原0 0 0 0 0 0 0 0 0原1 0 0 0 0 0 0 0对于负数 105 原 1 1 1 0 1 0 0 1符号位 数值本身 对于正数 105 原 0 1 1 0 1 0 0 1符号位 数值本身 (二)反码 正数的

34、反码表示与其原码相同,即符号位用“0”表示正,数字位为数值本身。49 负数的反码是将它的正数按位(包括符号位在内)取反而形成的。 0 反 0 0 0 0 0 0 0 0 4 反 0 0 0 0 0 1 0 0 31反 0 0 0 1 1 1 1 1 127反= 0 1 1 1 1 1 1 1 符号位 数值本身 0反 1 1 1 1 1 1 1 1 4反 1 1 1 1 1 0 1 1 31反 1 1 1 0 0 0 0 0 127反 1 0 0 0 0 0 0 0 符号位 数字位50行数二进制数码(机器数)对应的十进制数(真值)无符号数带符号数(原码)反码补码122.1261271280000

35、00000000000100000010.011111010111111001111111012.125126127012.125126127012.1251261270,012.125126127129130131.253254255256100000001000000110000010.11111100111111011111111011111111128129130.252253254255012.124125126127127126125.3210128127126.43218位二进制数的反码特点:(1)“0”的反码有两种表示法:00000000表示0, 11111111表示0。(2)

36、8位二进制反码能表示的数值范围为127D127D。(3)当一个带符号数用反码表示时,最高位为符号位。若 符号位为0(即正数)时,后面的7位为数值部分;若 符号位为1(即负数)时,一定要注意后面7位表示的 并不是此负数的数值,而必须把它们按位取反以后, 才得到表示这7位的二进制数值。 例:一个8位二进制反码表示的数10010100B。它是一个负数;但它并不等于20D,而应先将其数字位按位取反,然后才能得出此二进制数反码所表示的真值: 1101011(1261251231211) (643283) 107D51521. 正数的补码正数的补码与其原码相同,即符号位用“0”表正,其余数字位表示数值本身

37、。 4补 0 0000100 31补 0 0011111 +127补 0 1111111 符号位 数值本身2. 负数的补码负数的补码表示为它的反码加1(即在其低位加1)。 4补 1 1111100 31补 1 1100001 127补 1 0000001 符号位 数字位(三)补码微机中都是采用补码表示法,因为用补码法以后,同一加法电路既可以用于有符号数相加,也可以用于无符号数相加,而且减法可用加法来代替。8位二进制数补码有如下特点:(1)0补0补00000000(2)8位二进制补码所能表示的数值为127128。(3)当1个带符号数用8位二进制补码表示时,最高位为符 号位。若符号位为“0 ”(即

38、正数)时,其余位即为 此数的数值本身;但当符号位为“1”(即负数)时,一 定要注意其余位不是此数的数值,而必须将它们按 位取反,且在最低位加1,才得到它的数值。例:一个补码表示的数 补10011011B 是一个负数,但并不等于27D,它的数值为:将数字位0011011按位取反得到1100100,然后再加1,即为1100101。53=1100101 (126125122120 (643241) 101D故54 假设只有4位二进制数来表示整数,二进制从0000到1111共能表示24=16个整数,把它们放到一个有16个刻度的表盘上只表示正整数时原码表示正负数时反码表示正负数时补码表示正负数时同模求余

39、从位模式 1100 走到位模式 1001, 可以走两条路,逆时针走3格, 或者顺时针走13格一图读懂原码/反码/补码三、补码的加减法运算 补码的加减运算是带符号数加减法运算的一种。其运算特点是:符号位与数字位一起参加运算,并且自动获得结果(包括符号位与数字位)。55加法时,两数补码的和等于两数和的补码。减法时,两数补码的差等于两数差的补码。例:已知1000000,0001000,求两数的补码之和。根据补码加法:补01000000,补00001000 和数为正,其补码等于该数原码,即 补原 = 01001000其真值为72;又因64(8)72,两者一致则 补01000000 64 )补00001

40、000 ) 8 补补01001000 72所以 补01001000 (mod 28) 四、溢出及其判断方法(一)什么叫溢出 所谓溢出是指带符号数的补码运算溢出。例如:字长为n位的带符号数,用最高位表示符号,其余n-1位用来表示数值。它能表示的补码运算的范围为-2n-1+2n-1-1。如果运算结果超出此范围,就叫补码溢出,简称溢出。在溢出时,将造成运算错误。(二)判断溢出的方法 判断溢出的方法较多,例如以上两例根据参加运算的两个数的符号及运算结果的符号可以判断溢出;此外,利用双进位的状态也是常用的一种判断方法。这种方法是利用符号位相加和数值部分的最高位相加的进位状态来判断。即利用 V= D7C

41、D6C 判别式来判断。当D7C与D6C“异或”结果为1,即V1,表示有溢出,当“异或”结果为0,即0,表示无溢出.56(三)溢出与进位 进位是指运算结果的最高位向更高位的进位。如有进位,则Cy=1;无进位,则Cy=0 。当Cy=1 ,即D7C=1时,若D6C=1,则V=D7C D6C=0, 表示无溢出;若D6C=0,则V=D7C D6C=1,表示有溢出。当Cy= 0,即D7C=0时,若D6C1,则V=D7C D6C= 1,表示有溢出;若D6C=0,则V=D7C D6C=0,表示无溢出。可见,进位与溢出是两个不同性质的概念,不能混淆。 57注两个有符号数+/-运算时可能会溢出的情况:运算情况可能

42、溢出否运算情况可能溢出否正数+正数(如7FH+7FH)正数-正数正数+负数正数-负数(如7FH-81H)负数+正数负数-正数(如81H-7FH)负数+负数(如81H+81H)负数-负数58第2章 AT89S52单片机 硬件结构59第2章 AT89S52单片机的片内硬件结构 单片机的结构特点AT89S52单片机的硬件组成AT89S52的引脚功能AT89S52的CPUAT89S52的存储器结构AT89S52的并行I/O端口时钟电路与时序复位操作和复位电路AT89S52单片机的最小应用系统看门狗定时器(WDT)功能简介低功耗节电模式59普林斯顿结构 哈佛结构单片机的结构特点普林斯顿结构 一种是在通用

43、微型计算机中广泛采用的将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿(Princeton)结构或称冯诺依曼结构,如Intel的MCS-96、8086系列。哈佛结构 另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。Intel公司的MCS-51和80C51系列单片机采用的是哈佛结构。目前的单片机以采用程序存储器和数据存储器分开的结构较多。60单片机CPU的特点 单片机的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。例如:位处理、查表、多种跳转、乘除法运算、状态检测、中断处理功能等,增强了控制的实用性和灵活性。6

44、162AT89S52单片机的硬件组成基本结构依旧是CPU 加上外围芯片的传统冯 诺依曼微机结构,片内各功能部件通过片内单一总线连接而成。62CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。内各功能部件:(1)CPU(微处理器) 8位的CPU,与通用CPU基本相同,同样包括了运算器和控制器两大部分,还有面向控制的位处理功能。6363(2)数据存储器(RAM)片内256B,片外最多可扩64KB。(3)程序存储器(Flash ROM) 用来存储程序。AT89S52 片内有8KB的Flash存储器。如果不够,片外最多可外扩至6

45、4KB程序存储器(片内+片外)。 (4)定时器/计数器片内有3个16位的定时器/计数器,具有4种工作方式。 (5)中断系统具有6个中断源,2级中断优先权。(6)串行口 1个全双工的异步串行口,4种工作方式。(7)P0口、P1口、P2口和P3口 4个8位并行I/O口。(8)特殊功能寄存器(SFR)共32个SFR,位于片内RAM区80HFFH的地址区间内,用于CPU对片内各外设部件进行管理、控制和监视。(9)1个看门狗定时器WDT当单片机由于干扰而使程序陷入死循环或跑飞状态时,可引起单片机复位,使程序恢复正常运行。6464AT89S52的引脚功能 AT89S52单片机多采用40引脚的DIP封装(双

46、列直插),以及44引脚的PLCC和TQFP封装方式65引脚图DIP-40封装 PLCC44封装TQFP44封装65引脚按其功能可分为如下3类:(1)电源及时钟引脚VCC、VSS;XTAL1、XTAL2。(2)控制引脚 PSEN*、ALE/PROG*、EA* /VPP、RST(3)I/O口引脚P0、P1、P2、P3,为4个8位I/O口电源及时钟引脚1电源引脚(1)VCC(40脚):+5V电源。(2)VSS(20脚):数字地。2时钟引脚 (1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。(2)XTAL2(18脚):片内振荡器反相放大器的输出端。66控制引脚(1)RST (RE

47、SET,9脚) 复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚电平应 0.5V。当看门狗定时器溢出输出时,该脚将输出96个时钟振荡周期的高电平。(2) EA*/VPP (Enable Addr./Volt. Pulse of Prog.,31脚) EA*:引脚第一功能:外部程序存储器访问允许控制端。 EA*=1,在PC值不超出1FFFH(即不超出片内8KB Flash存储器的地址范围)时,单片机读片内程序存储器(8KB)中的程序,PC值超出1FFFH 时,将自动转向读取片外(2000H-FFFFH)程序存储器空间中的程序。67 EA*=0,只读取外部的

48、程序存储器中的内容,读取的地址范围为0000HFFFFH,片内Flash 程序存储器不起作用。 VPP:引脚第二功能,对片内Flash编程,接编程电压。67(3)ALE/PROG*(Addr. Latch Enable/PROGram.,30脚) ALE为地址锁存控制信号端,为第一功能。由于引脚数目有限,P0口是作为低8位地址总线与8位数据总线分时复用的。6868注锁存器是什么神器? 74HC373包含8个具有三态输出的D 型透明锁存器。当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变。当LE为低时,锁存器将存

49、储D输入上的信息一段就绪时间,直到LE的下降沿来临。74HC37369单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟频率fosc的1/6。可用作外部定时或触发信号。注 每当AT89S52访问外部RAM时(执行MOVX类指令),要丢失一个ALE脉冲。如不需要ALE端输出脉冲信号,可将特殊功能寄存器AUXR(地址为8EH)的第0位(ALE禁止位)置1,来禁止ALE操作,但执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效。即ALE禁止位不影响对外部存储器的访问。PROG*:引脚第二功能,对片内Flash编程,编程脉冲输入脚。70(4)PSEN*(P

50、rogram Strobe ENable,29脚) 片外程序存储器读选通信号,低电平有效。70并行I/O口引脚(1)P0口:P0.7P0.0引脚 为漏极开路的8位并行双向I/O口。作为输出口时,每个引脚可驱动8个LS型TTL负载。当AT89S52扩展外部存储器及I/O接口芯片时,P0口为分时复用的低8位地址/数据总线。在向P0口写入“1”后就成为高阻态的输入口。当P0口作为通用I/O口使用时,需外加上拉电阻成准双向口。在对Flash程序存储器编程时,P0口接收字节代码,程序校验时P0口输出字节代码,程序校验期间应外接上拉电阻。7171(2)P1口:P1.7P1.0引脚 准双向I/O口,具有内部

51、上拉电阻,可驱动4个LSTTL负载。在对片内Flash编程和校验时定义为低8位地址线。P1口某些引脚的第二功能如下:P1.0/T2:T2脚为定时器T2的外部计数信号输入端T2P1.1/T2EX:T2EX为T2的捕捉/重新装载触发及方向控制T2EXP1.5/MOSI:MOSI用于对片内Flash存储器串行编程和校验P1.6/MISO:MISO用于对片内Flash存储器串行编程和校验P1.7/SCK:SCK用于对片内Flash存储器的串行编程和校验的移位脉冲输入引脚72(3)P2口:P2.7P2.0引脚准双向I/O口,引脚内部接有上拉电阻,可驱动4个LSTTL负载。当AT89S52访问外部存储器及

52、I/O口时,P2口作为高8位地址总线使用,输出高8位地址。当P2口不作为高8位地址总线时,可作为通用的I/O口使用。73(4)P3口:P3.7P3.0 准双向I/O口,具有内部上拉电阻。P3口的第一功能是作为通用的I/O口使用,可驱动4个LS型TTL负载。P3口还可提供第二功能。74综上所述:P0口可作为总线口,为双向口。P0口作为通用的I/O口使用时,为准双向口,这时需加上拉电阻。P1口、P2口、P3口均为准双向口。74注准双向口与双向口的差别准双向口仅有两个状态(少了高阻的“悬浮” 状态)。而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态。(思考)为什么P0口要有高阻“悬浮”态?

53、另外,准双向口作通用I/O的输入口使用时,一定要向该口先写入“1”。7575AT89S52的CPUCPU由运算器和控制器构成。 运算器对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU累加器A位处理器程序状态字寄存器PSW两个暂存器等1算术逻辑运算单元ALU可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。76762累加器A使用最频繁的寄存器,也写为Acc。作用如下:ALU单元输入数据源之一和运算结果存放单元。数据传送大多都通过累加器A进行。

54、A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器77773程序状态字寄存器PSW(Program Status Word) PSW位于片内特殊功能寄存器区,字节地址为D0H。包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。PSW的格式PSW中各个位的功能(1)Cy(PSW.7)进位标志位,或写成C在算术和逻辑运算时,若有进位/借位,Cy1;否则,Cy0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位 在BCD码运算时,用作十进位调整。当D3位向D4位产生进位或借位时,Ac1;否则,Ac0。(3)F0(PSW.5)用户设定标志位 由用户

55、使用的一个状态标志位,可用指令来使它置1或清0,控制程序的流向。 (4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择7878(5)OV(PSW.2)溢出标志位 当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。(6)PSW.1位:保留位(7)P(PSW.0)奇偶标志位 指令执行完,累加器A中“1”的个数是奇数还是偶数。 P=1,表示A中“1”的个数为奇数。 P=0,表示A中“1”的个数为偶数。 此标志位对串行通信有重要的意义,常用奇偶检验的方法来检验数据串行传输的可靠性。797980控制器 任务识别指令,并根据指令的性质控制单片机各功能

56、部件,从而保证单片机各部分能自动协调地工作。 控制器功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制,具体包括:程序计数器指令寄存器指令译码器定时及控制逻辑电路等。程序计数器PC是一个独立的 16位计数器,不可访问。复位 时内容为0000H,从程序存储 器0000H单元取指令开始执行。PC工作过程:CPU读指令时, PC的内容作为所取指令地址, 程序存储器按此地址输出指令字节,同时PC自动加1。PC中内容变化决定程序流程。当顺序执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,自动更改成所要转移的目的地址。PC的计数宽度决定了程序存储器的地址范围( 64KB =2

57、16B )。80AT89S52存储器的结构存储器空间可分为4类。8181.程序存储器空间 分为片内和片外两部分。片内4KB Flash ,编程和擦除完全是电气实现。可用通用编程器对其编程,也可在线编程。当片内4KB Flash 存储器不够用时,可片外扩展,最多可扩展至64KB程序存储器。.数据存储器空间也分为片内与片外两部分。片内有256B RAM。片内RAM 不够用时,在片外可扩展至64KB RAM 。.特殊功能寄存器SFR (Special Function Register) 片内各功能部件的控制寄存器及状态寄存器。综合反映了整个单片机基本系统内部实际的工作状态及工作方式。.位地址空间

58、共有219个可寻址位,构成了位地址空间。位于片RAM区字节地址20H2FH(共128位)和特殊功能寄存器区(片内RAM区字节地址80HFFH区间内,共定义了91个可寻址位)。程序存储器空间 存放程序和表格之类的固定常数。片内为8KB的 Flash ,地址为0000H1FFFH。16位地址线,可外扩的程序存储器空间最大为64KB,地址为0000HFFFFH。8282(1)分为片内和片外两部分,访问片内的还是片外的程序存储器,由EA*引脚电平确定。(2)程序存储器有若干固定单元用于各中断源中断服务程序入口, 其中有6个分别对应于5个中断源的中断入口地址。数据存储器空间 片内与片外两部分。1. 片内

59、数据存储器 AT89S52的片内RAM共有256个单元,地址为00HFFH。地址为80HFFH为SFR区,与片内高128B RAM单元统一编址,但属于另一专用空间区域00H1FH 的32个单元是4组通用工作寄存器区,每区包含8B,为R7R0。可通过指令改变RS1、RS0两位来选择。20H2FH的16个单元的128位可位寻址,也可字节寻址。30HFFH的单元只能字节寻址,用作存数据以及作为堆栈区。对地址为80HFFH的RAM区,只能采用间接寻址方式访问,而对地址为80HFFH的特殊功能寄存器区访问只能采用直接寻址方式。对于低128B(地址00H7FH)RAM区,即可采用直接寻址方式也可采用间接寻

60、址方式来访问。8383片内数据存储器RAM的结构.片外数据存储器 当片内256B的RAM不够用时,最多可外扩64KB的RAM。片内RAM与片外RAM两个空间是相互独立的片内RAM与片外RAM的低256B的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。84特殊功能寄存器(SFR) SFR映射在片内RAM的 80HFFH 区域中,共32个。8585特殊功能寄存器(SFR) SFR寄存器有些可位寻址(字节地址末位只能是0H或8H)堆栈指针SP 堆栈只能设在片内RAM区,SP指示堆顶的位置。堆栈结构向上生长型。单片机复位后,SP为07H,使得堆栈实际上从08H单元开始。 堆栈是为子程序

温馨提示

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

评论

0/150

提交评论