单片机原理与应用课件 第8章 MCS-51单片机系统的扩展技术.ppt_第1页
单片机原理与应用课件 第8章 MCS-51单片机系统的扩展技术.ppt_第2页
单片机原理与应用课件 第8章 MCS-51单片机系统的扩展技术.ppt_第3页
单片机原理与应用课件 第8章 MCS-51单片机系统的扩展技术.ppt_第4页
单片机原理与应用课件 第8章 MCS-51单片机系统的扩展技术.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1,第4章 mcs-51单片机系统的扩展技术,4.1 mcs-51单片机系统扩展概述 4.2 存储器的扩展 4.3 并行i/o口的扩展 4.4 时钟芯片的扩展 4.5 系统监控芯片的扩展 4.6 总线接口扩展,2,mcs-51单片机的最小应用系统,维持单片机运行的最基本的配置系统,构成单片机最小应用系统。,对于8051、8751和8951等片内有ram、eprom或flash rom等的系统来讲,单片机与晶振电路及开关、电阻、电容等构成的复位电路组成单片机最小应用系统。,对于不带片内rom的单片机如8031,需要在片外扩展rom之后才能构成最小系统。,3,mcs-51单片机的最小应用系统,4,mcs-51单片机的最小应用系统,51系列单片机有很强的外部扩展能力。外部扩展可分为并行扩展和串行扩展两大形式。 早期的单片机应用系统以采用并行扩展为多,近期的单片机应用系统以采用串行扩展为多。 外部扩展的器件可以有rom、ram、i/o口和其他一些功能器件,扩展器件大多是一些常规芯片,有典型的扩展应用电路,可根据规范化电路来构成能满足要求的应用系统。,5,4.1 mcs-51单片机扩展概述,单片机并行扩展时外部引线分为三组总线:数据线、地址线、控制线。系统扩展就是将需要的外部资源挂接到这三组总线上,使其能够与cpu正确通信,完成数据交换。,6,4.1.1 mcs-51单片机外部扩展原理,7,4.1.2 mcs-51单片机系统地址分配,在单片微机应用系统中,为了唯一地选择片外某一存储单元或i/o端口,需要进行二次选择。 一是必须先找到该存储单元或i/o端口所在的芯片,称为“片选” ,二是通过对芯片本身所具有的地址线进行译码,然后确定唯一的存储单元或i/o端口,称为“字选”。,“片选” 保证每次读或写时,只选中某一片存储器芯片或i/o接口芯片。常用的方法有三种:“线选法” 、“部分译码法” 、“全译码法”。,8,4.1.2 mcs-51单片机系统地址分配,线选法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的一根或几根直接连接到各扩展芯片的片选线上。,9,4.1.2 mcs-51单片机系统地址分配,部分译码法和全译码法,10,4.2 存储器扩展,存储器是计算机系统中的记忆装置,用来存放要运行的程序和程序运行所需要的数据。单片机系统扩展的存储器通常使用半导体存储器,根据用途可以分为程序存储器(一般用rom)和数据存储器(一般用ram)两种类型。,11,4.2.1 程序存储器rom扩展,12,4.2.2 读写存储器ram扩展,13,4.2.3 mcs-51对外部存储器的扩展,14,4.3 并行i/o接口扩展,在单片机的i/o口线不够用的情况下,可以借助外部器件对i/o口进行扩展。可供选用的器件很多,方案也有多种。,单片机并行i/o口扩展方法: (1)并行总线扩展的方法 (2)串行口扩展方法 (3)i/o端口模拟串行方法,15,并行总线扩展i/o接口, 访问扩展i/o口的方法与访问数据存储器完全相同,使用相同的指令,所有扩展的i/o口与片外数据存储器统一编址。 利用并行总线扩展的方法扩展外部并行i/o口时,必须注意p0, p2口的负载问题,若负载能力不够,必须进行总线驱动能力扩展。 扩展外部并行i/o口对外设的硬件具有依赖性(驱动功率、电平匹配、干扰抑制、隔离等)。,16,4.3.2 普通并行i/o口扩展,利用ttl或cmos电路的缓冲驱动器(74244、74245)和锁存器(74273、74373、74377),通过p0口构成各种类型的输入/输出口。,这些类型的芯片具有数据缓冲或锁存功能,但没有地址线和读写控制线,仅有数据输入/输出线和选通控制端。因此这类芯片扩展并行i/o口的方法与扩展数据存储器不同。其选通端应由地址线和控制线的组合控制。,17,扩展并行输出口,带数据使能端正边沿触发的高速 d触发器 74377,18,扩展并行输出口,三态正边沿触发的高速 d触发器 74374,19,20,4.3.3 可编程并行i/o接口,21,8255a应用实例,22,8255a各端口的地址,a口:0111 1111 1111 1100b 7ffch b口:0111 1111 1111 1101b 7ffdh c口:0111 1111 1111 1110b 7ffeh 控制 :0111 1111 1111 1111b 7fffh,23,8255的应用,例:从8255a的a口读入数据,送到8255a的b口输出,解:mov dptr ,#7fffh mov a,#90h ; movx dptr,a mov dptr,#7ffch movx a , dptr mov dptr, #7ffdh movx dptr,a,24,4.6 串行扩展总线接口技术,一、串行扩展特点:, 最大程度发挥最小系统的资源功能。 简化连接线路,缩小印板面积。 扩展性好,可简化系统的设计。 串行扩展的缺点: 数据吞吐容量较小,信号传输速度较慢,但随着cpu芯片工作频率的提高,以及串行扩展芯片功能的增强,这些缺点将逐步淡化。,25,4.6 串行扩展总线接口技术,二、串行扩展方式分类:,1、一线制,一线制的典型代表为dallas公司推出的单总线(1-wire)。,26,4.6 串行扩展总线接口技术,2、二线制:,二线制的典型代表为philips公司推出的i2c总线(smbus)。,27,4.6 串行扩展总线接口技术, 由motorala公司推出的spi(serial peripheral interface); 由ns公司推出的micro wire/plus。,3、三线制,28,4.6 串行扩展总线接口技术,4、mcs-51移位寄存器串行扩展,mcs-51的uart(universal asynohronous receiver/transmitter)有4种工作方式,其中方式0为同步移位寄存器工作方式,通过移位寄存方式,可将串行数据并行输出,也可以将并行数据串行输入。,29,4.6 串行扩展总线接口技术,虚拟串行扩展概念:,用通用i/o口来模拟串行接口,构成虚拟的串行扩展接口。只要严格控制模拟同步信号,并满足串行同步数据传送的时序要求,就可满足串行数据传送的可靠性要求。,30,4.6.3 i2c总线,i2c总线是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输。 i2c总线只有两根信号线:数据线sda和时钟线scl。 各节点供电可以不同,但需共地,另外sda和scl需分别接上拉电阻。,i2c总线传输速率为100 kb/s(改进后的规范为400 kb/s),总线驱动能力为400 pf。,31,4.6.3 i2c总线,32,一、i2c总线的接口电路结构,i2c总线由数据线sda和时钟线scl构成。sda和scl都是双向传输线,平时均处于高电平备用状态,只有当需要关闭i2c总线时,scl线才会箝位在低电平。,33,二、i2c总线信号定义,34,三、 i2c总线的数据传送,35,三、i2c总线的数据传送,36,三、i2c总线的数据传送,当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个非应答信号(a),令被控器释放sda线,以便主控器可以发送停止信号来结束数据的传输。i2c总线上的应答信号是比较重要的,在编制程序时应该着重考虑。,37,四、i2c总线数据传输协议,总线节点的寻址字节:,主机产生起始信号后,发送的第一个字节为寻址字节。该字节的头7位(高7位)为从机地址,最后位(lsb)决定了报文的方向:0表示主机写信息到从机,1表示主机读从机中的信息。 当发送了一个地址后,系统中每个器件都将头7位与自己的地址比较,如果一样器件会应答主机的寻址,至于是接收还是发送由r/w位决定。,38,四、i2c总线数据传输协议,从机地址由一组固定位和一组可编程位部分构成。例如,某些器件有4个固定的位(高4位)和3个可编程的地址位(低3位),那么同一总线上共可以连接8个相同的器件。,从机地址和1位方向位构成了i2c总线器件的寻址字节sla。,39,i2c总线数据传输协议,40,i2c总线数据传输的格式,地址字节和数据字节都是高位在前,低位在后。,41,i2c总线数据传输的格式,(1) 主控器的写数据操作格式,(2)主控器的读数据操作格式,无论哪种工作方式,都是由主控器来启动总线,发送寻址字节和终止运行;在i2c总线接口的外围器件中,器件内部有多个地址空间时,其读写操作都有地址自动加 1功能 。,42,五、51单片机与i2c总线的接口,43,六、i2c总线数据传送软件包,mcs-51只能采用虚拟i2c总线方式,并且只能用于单主系统,虚拟i2c总线接口可用通用i/o口中任一端线充任,数据线定义为sda,时钟线定义为scl。,mcs-51单主系统虚拟i2c总线软件包由二大类共9个归一化子程序组成。二大类程序分别为典型信号模拟子程序和数据传送通用子程序。,44,1、典型信号模拟子程序,45,主程序,在主程序初始化中,应有如下的语句: sda bit p1.7 scl bit p1.6 mtd equ 30h ;mtd发送数据缓冲区首址 mrd equ 40h ;mrd接收数据缓冲区首址 sla equ 60h ;sla寻址字节slar/w的存放单元 numbyt equ 61h ;numbyt传送字节数存放单元,46,1) 启动i2c总线子程序sta:,sta: setb sda setb scl ;起始条件建立时间大于4.7 s nop nop clr sda nop ;起始条件锁定时间大于4 s nop clr scl ;箝住总线,准备发送数据 ret,47,2) 停止i2c总线子程序stop,stop: clr sda setb scl ;发送停止条件的时钟信号 nop ;停止总线时间大于4 s nop setb sda ;停止总线 nop nop clr sda clr scl ret,48,3) 发送应答位信号子程序mack,mack: clr sda setb scl nop ; 即scl为高,时间大于4.0 s nop clr scl setb sda ret,49,4) 发送非应答位信号子程序mnack,mnack: setb sda setb scl nop nop clr scl clr sda ret,50,2、i2c总线数据传送的模拟子程序,i2c总线的数据操作除了基本的启动(sta)、终止(stop)、发送应答位(mack)、发送非应答位(mnack)外,还应有应答位检查(cack)、发送一字节(wrbyt)、接收一字节(rbyt)、发送n字节(wrnbyt)和接收n字节(rdnbyt)这5个子程序。,51,(1) 应答位检查子程序cack,cack:setb sda ;置sda为输入方式 setb scl ;使sda上数据有效 clr f0 ;预设f0=0 mov c,sda ;输入sda引脚状态 jnc cend ;正常应答转cend,且f0=0 setb f0 ;无正常应答,f0=1 cend:clr scl ;子程序结束,使scl=0 ret,用f0作标志位,正常应答位后,f0=0;否则f0=1。,52,(2) 发送一字节数据子程序wrbyt,初始化,要发送的位送c,1 or 0?,送“1”,送“0”,8位送完?,ret,y,53,调用该子程序前,将要发送的数据送入a中。占用资源r0、c。 wrbyt:mov r0,#08h wlp :rlc a jc wr1 ajmp wr0 wlp1: djnz r0,wlp ret wr1: setb sda setb scl nop nop,clr scl clr sda ajmp wlp1 wr0:clr sda setb scl nop nop clr scl ajmp wlp1,54,(3)从sda上接收一字节数据子程序rdbyt,初始化,自sda接收1位送c,8位收完?,ret,n,y,送c中位to a,使scl=0,继续收,55,(3)从sda上接收一字节数据子程序rdbyt,从sda上读取的一字节存放在r2或a中。占用资源 r0、r2和c。 rdbyt:mov r0,#08h rlp: setb sda setb scl nop mov c,sda mov a,r2 rlc a mov r2,a clr scl nop djnz r0,rlp ret,56,(4) 向被控器发送n字节数据子程wrnbyt,在使用本子程序时,须调用sta、stop、wrbyt和cack子程序,而且应在片内ram中分配好这些地址。,57,(4) 向被控器发送n字节数据子程wrnbyt,初始化,启动i2c总线,应答位?,发送数据初始化,送地址字节,检查应答位,发送一字节,应答位?,发送完?,发送停止位,58,wrnbyt:mov r3,numbyt lcall sta mov a,sla lcall wrbyt lcall cack jb f0,wrnbyt mov r1,#mtd wrda: mov a,r1 lcall wrbyt lcall cack jb f0,wrnbyt inc r1 djnz r3,wrda lcall stop ret,59,(5)从外围器件读取n字节数据子程序rdnbyt,60,(5)从外围器件读取n字节数据子程序rdnbyt,初始化,启动i2c总线,应答位?,接收缓冲器初始化,送地址字节,检查应答位,接收一字节,接收完?,发送应答位,61,rdnbyt: mov r3,numbyt lcall sta mov a,slar lcall wrbyt lcall cack jb f0,rdnbyt rdn: mov r1,#mrd rdn1: lcall rdbyt mov r1,a djnz r3,ack lcall mnack lcall stop ret ack: lcall mack inc r1 sjmp rdn1,62,i2c总线接口的数码管驱动芯片saa1064,63,64,65,i2c总线接口的数码管驱动芯片saa1064,gnd(0v),66,i2c总线接口的数码管驱动芯片saa1064,67,i2c总线接口的数码管驱动芯片saa1064,sc位、sb位和sa位构成一个指针,用于装入控制字节和4个显示段码(字形码),且子地址自动增量(ai),主控器对其可快速初始化。,68,i2c总线接口的数码管驱动芯片saa1064,控制字节各位功能说明: c0=0,静态模式,即连续显示数字位1和数字位2。 c0=1,动态模式,即变换显示数字位1+3和数字位2+4。 c1=0/1,数字位1+3为空/不空。 c2=0/1,数字位2+4为空/不空。 c3=1,所有段输出打开以进行段测试。 c4=1,段输出电流加3ma。 c5=1,段输出电流加6ma。 c6=1,段输出电流加12ma。,69,i2c总线接口的数码管驱动芯片saa1064,saa1064的写数据操作格式为:,sla:saa1064写命令slaw; 00h:首地址; com:控制命令数据; led1-led4:4个显示位的共阳极段选码数据,70,4.6 总线接口扩展,总线种类繁多,可分为局部总线、系统总线和通信总线。通信总线是系统之间或cpu与外设之间进行通信的一组信号线。通信总线接口按电气标准及协议来分包括rs-232、rs-422、rs-485、modem、usb、ieee 1394、can、internet网络芯片等,它们在不同的领域得到了广泛的应用。这里主要介绍mcs-51单片机应用系统中常用的通信总线标准及接口。,71,4.6.1 rs-232c总线标准与接口电路,eia rs-232c是异步串行通信中应用最广泛的标准总线,是美国eia(electronic industries association,电子工业联合会)开发公布的通信协议。适合于数据传输速率在020kb/s范围内的通信,包括了按位串行传输的电气和机械方面的规定。在微机通信接口中被广泛采用。,72,4.6.1 rs-232c总线标准与接口电路,1. 电气特性 (1)采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的; (2)采用负逻辑。 (3)适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。,73,4.6.1 rs-232c总线标准与接口电路,dsr:数据装置准备好; dtr:数据终端准备好; rts:请求发送; cts:允许发送; dcd:接收线信号检出; ri:振铃指示; txd:发送数据; rxd:接收数据; sgnd、pgnd:地线,sgnd(信号地)、pgnd(保护地)。,74,4.6.1 rs-232c总线标准与接口电路,4电平转换 rs-232c采用负逻辑,为了能够同计算机接口或终端的ttl器件连接,必须在rs-232c与ttl电路之间进行电平和逻辑关系的变换。,max232芯片是maxim公司生产的低功耗、单电源、双rs-232发送/接收器,可实现ttl到eia的双

温馨提示

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

评论

0/150

提交评论