单片机课件第九章.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机课件第九章.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课件 第九
- 资源描述:
-
1、【知识目标】【知识目标】1.理解单总线扩展技术。2.掌握SPI总线、I2C总线的原理3.掌握常用的串行总线芯片与单片机的接口设计【技能目标技能目标】1.学会使用AT89S51单片机的I/O口结合软件模拟I2C总线时序实现I2C接口的方法。2.学会使用AT89S51单片机的I/O口结合软件模拟SPI总线时序实现SPI接口的方法。9.1 9.1 单总线串行单总线串行扩展扩展9.2 SPI串行总线扩展9.3 I2C总线的串行扩展介绍9.4 9.4 键盘键盘/ /显示串行接口芯片显示串行接口芯片HD7279AHD7279A的的应用应用9.5 9.5 案例:基于案例:基于AT24C02AT24C02的具
2、有记忆功能的计数器的设计的具有记忆功能的计数器的设计9.1.1 单总线概述单总线(1- Wire)是美国Dallas公司的一项专利技术。与目前广泛应用的其他串行数据通信方式不同,它采用单根信号线完成数据的双向传输,并同时通过该信号线为单总线器件提供电源,具有节省I/O引脚资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,在电池供电设备、便携式仪器以及现场监控系统中有良好的应用前景。单总线标准为外设器件沿着一条数据线进行双向数据传输提供了一种简单的方案,任何单总线系统都包含一台主机和一个或多个从机,它们共用一条数据线。这条数据线被地址、控制和数据信息复用。由于主机和从机都是开漏输出,在主设
3、备的总线一侧必须加上拉电阻,系统才能正常工作。此外,单总线器件通常采用3引脚封装,在这三个引脚中有一个公共地端、一个数据输入/输出端和一个电源端。该电源端可为单总线器件提供外部电源,从而免除总线集中馈电。如图9-1所示为一个由单总线构成的分布式测温系统。带有单总线接口的温度计集成电路DS18B20都挂在DQ总线上。单片机对每个DS18820通过总线DQ寻址。DQ为漏极开路,加上拉电阻RP。单总线技术有3个显著的特点:1)单总线芯片通过一根信号线进行地址信息、控制信息和数据信息的传送,并通过该信号线为单总线芯片提供电源;2)每个单总线芯片都具有全球唯一的访问序列号,当多个单总线器件挂在同一单总线
4、上时,对所有单总线芯片的访问都通过该唯一序列号进行区分;3)单总线芯片在工作过程中,不需要提供外接电源,而通过它本身具有的“总线窃电”技术从总线上获取电源。此外,单总线技术采用特殊的总线通信协议实现数据通信。在通信过程中,单总线数据波形类似于脉冲宽度调制信号,总线发出复位信号(保持低电平的周期最长)同步整个总线,然后由系统主机初始化每一位数据时隙,利用宽脉冲或窄脉冲来实现写“0”或写l”。在读数据时,主机利用窄脉冲初始化时隙,从机将数据线保持在低电平,通过展宽低电平脉冲返回逻辑“0”,或保持脉冲宽度不变来返回逻辑“1”。多数单总线器件支持两种数据速率,较低的数据速率约为14kbit/s,较高的
5、数据速率约为140kbit/s。单线总线器件主要提供存储器、混合信号电路、识别、安全认证等功能。目前Dallas公司采用单总线技术生产的芯片包括数字温度计、数字电位器、A/D转换器、定时器、RAM与E2PROM存储器、线路驱动器及微型局域网耦合器等系列器件。常用的单线总线器件见表9-1DS18B20是美国Dallas公司生产的单总线数字式温度传感器,采用单总线协议,即与单片机接口仅需占用一个I/O端口,无须任何外部元件,直接将环境温度转化为数字信号,以数字码形式串行输出,从而极大地简化了传感器与微处理器的接口。在使用过程中,可由一根I/O数据线实现传输数据,并可由用户设置温度报警界限,被广泛应
6、用于精密仪器、存储仓库等需要测量和控制温度的地方。DS18B20具有以下特点: (1)测量范围:-55+125,在-10+85范围内精度为土0.5。 (2)分辨率:可编程分辨率为912位(其中包括l位符号位),对应的可分辨温度分别为0.5、0. 25、0.125和0.0625,可实现高精度测温。 (3)温度转换时间:其转换时间与设定的分辨率有关。当设定为9位时,最大转换时间为93.75ms;当设定为10位时,为187.5ms;当设定为11位时,为375ms;当设定为12位时,为750ms。 (4)电源电压范围:在保证温度转换精度为0.5的情况下,电源电压可为+3.0+5.5V。 (5)程序设置
7、寄存器:该寄存器用于设置器件是处于测试模式还是工作模式(出厂时设置为工作模式),此外还用于设置温度分辨率,可设为9位、10位、11位或12位。 (6)64位ROM编码:从高位算起,该ROM有一个字节的CRC校验码,6个字节的产品序列和一个字节的产品家族代码。DS18B20的家族代码是10H。(7)DS18B20内部存储器分配:DS18B20中含有E2PROM,其报警上、下限温度值和设定的分辨率倍数是可记忆的,在出厂时被设定为12位分辨率。关于DS18B20的详细介绍和应用在第11章详细说明,这里就不再介绍了。9.2.1 SPI 串行总线简介SPI(Serial Peripheral Inter
8、face)是由Motorola公司提出的一种同步串行总线,采用3根或4根信号线进行数据传输,所需要的信号包括使能信号、同步时钟、同步数据(输入和输出)。它允许MCU与各种外围设备以串行方式进行通信。SPI串行接口设备既可以工作在主设备模式下,也可以工作在从设备模式下。系统主设备为SPI总线通信过程提供同步时钟信号,并决定从设备片选信号的状态,使能将要进行通信的SPI从器件。SPI从器件则从系统主设备获取时钟及片选信号,因此从器件的控制信号CS、SCLK都是输入信号。SPI串行总线使用两条控制信号线CS和SCLK,一条或两条数据信号线SDI、SDO。在Motorola公司的SPI技术规范中将数据
9、信号线SDI称为MISO(Master-In-Slave- Out),数据信号线SDO称为MOSI (Master-Out-Slave-In),控制信号线CS称为SS(Slave Select),时钟信号线SCLK称为SCK (Serial Clock)。在SPI串行扩展系统中,作为主器件的单片机在启动一次传送时,便产生8个时钟,传送给接口芯片作为同步时钟,控制数据的输入和输出。数据的传送格式是高位(MSB)在前,低位(LSB)在后,如图9-2所示。数据线上输出数据的变化以及输入数据时的采样,都取决于SCK。但对于不同的外围芯片,有的可能是SCK的上升沿起作用,有的可能是SCK的下降沿起作用。
10、SPI有较高的数据传输速度,最高可达1.05 Mbit/s。目前采用SPI串行总线接口的器件非常多,有A/D与D/A转换器、存储器(E2PROM/FLASH)、实时时钟(RTC)、LCD控制器、温度传感器、压力传感器等。常用的SPI总线器件见表9-2。MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数码管、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。它的操作很简单,MCU只需通过模拟SPI三线接口就可
11、以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。各引脚的功能为:DIN:串行数据输入端;DOUT:串行数据输出端,用于多片MAX7219级联扩展;LOAD:数据锁定控制引脚,在LOAD的上升沿到来时片内数据被锁定;CLK:串行时钟输入;SEG ASEG G,DP:7段驱动和小数点驱动;ISET:段电流大小控制端。通过一个10k 电阻和Vcc相连,设置段电流DIG0DIG7:数码管位选择引脚。MAX7219的串行数据为16位串行数据,由4位无效数据、4位地址和8位数据组成,如表9-3所示。MAX7219在DIN端口上输入的16位数据在每一个CLK
12、时钟信号的上升沿被移入内部移位寄存器,然后在LOAD信号的上升沿到来时这些数据被送到数据/控制寄存器,在发送过程中遵循高位在前、低位在后的原则。MAX7219内部有14个可寻址的数据控制寄存器,8字节的数据寄存器在片内是一个8x8的内存空间,5字节的控制寄存器包括编码模式、显示亮度、扫描控制、关闭模式及显示检测5个寄存器,如表9-4所示。编程时只有正确操作这些寄存器,MAX7219才可工作。MAX7219有两种译码方式:译码方式和不译码方式。当选择不译码时,8个数据位分别一一对应7个段和小数点位;译码方式是BCD译码,直接送数据就可以显示。实际应用中可以按位设置选择译码或是不译码方式,也就是译
13、码的位为1,不译码的位为0。此寄存器用于设置显示的LED的个数。)亮度控制寄存器(0AH),共有16级可选择,用于设置LED的显示亮度,从00HFFH。()关断模式寄存器(XCH),共有两种模式选择,一是关断状态,(最低位D0=0)一是正常工作状态(D0=1)。()显示测试寄存器(0FH),用于设置LED是测试状态还是正常工作状态,当测试状态时(最低位D0=1)各位显示全亮,正常工作状态(D0=0)。例9-1使用AT89S51单片机利用I/O引脚扩展MAX7219驱动8位数码管,8位数码管显示“20150709”分析:根据要求扩展8位数码管,应用电路如图9-4所示。51单片机使用P2.0P2.
14、2和MAX7219相连接,MAX7219的位输出和数据输出分别连接8位数码管的对应端口。根据要求设计程序如下: SBDIN BIT P2.0 SBLOAD BIT P2.1 SBCLK BIT P2.2 ORG 0000H LJMP MAIN MAIN: LCALL XIANSHI ;调用显示程序 SJMP MAINXIANSHI:PUSH PSW ACALL INIT7219 ;7219初始化 MAIN1:MOV 30H,#2 ;30H单元开始存入要显示的内容 MOV 31H,#0 MOV 32H,#1 MOV 33H,#5 MOV 34H,#0 MOV 35H,#7 MOV 36H,#0
15、MOV 37H,#9 MOV R0,#30H MOV R1,#01H MOV R6,#8 CLR SBLOADL1: MOV A,R1 MOV B,R0 ACALL WRITE INC R0 INC R1 DJNZ R6,L1 POP PSW RET WRITE:CLR SBLOAD ;地址放在A,数据放在B中 ACALL WR7219 ;写地址 MOV A,B ACALL WR7219 ;写数据 SETB SBLOAD NOP NOP RETWR7219: MOV R7,#8 ;8位数据分别移入WRITE1:CLR SBCLK ;CLK拉低 RLC A ;A中的值左移 MOV SBDIN,C
16、 ;输出的值送给DIN NOP SETB SBCLK ;CLK拉高,上升沿,数据移入 NOP DJNZ R7,WRITE1 RETINIT7219:MOV A,#09H ;译码模式寄存器 MOV B,#0FFH ;均译码 ACALL WRITE MOV A,#0AH ;显示亮度控制 MOV B,#05H ACALL WRITE MOV A,#0BH ;扫描控制 MOV B,#07H ;扫描07位 ACALL WRITE MOV A,#0CH ; 显示测试寄存器 MOV B,#01H ACALL WRITE RETEND二线制I2C串行E2PROM是应用非常广泛的存储器件。它是带I2C总线接口的
17、电擦除可编程存储器。其特点是二线制、在线读写、断电保护数据,广泛应用于电子产品、计算机及其外设、通信产品等。二线制I2C有多种型号,如美国ATMEL公司的AT24C芯片。下面结合AT24C芯片为例,讲述串行E2PROM扩展单片机存储器技术。I2C总线是荷兰飞利浦(Philips)公司首创的两线串行多主总线,是一种用于连接微控制器及其外围设备,实现同步双向串行数据传输的二线式串行总线,目前已经发展到2.1版本。该总线在物理上由一根串行数据线SDA和一根串行时钟SCL组成,各种使用该标准的器件都可以直接连接到该总线上进行通信,可以在同一条总线上连接多个外部资源。总线上的器件既可以作为发送器,也可以
18、作为接收器,按照一定的通信协议进行数据交换。在每次数据交换开始时,作为主控器的器件需要通过总线竞争获得主控权。每个器件都具有唯一的地址,各器件间通过寻址确定接收方。如图9-5所示为单片机使用I2C总线扩展多个外部资源的示意图。I2C总线在便携式微功耗领域中具有较广泛的应用,许多IC卡芯片的接口形式就是I2C总线,如A/D及D/A转换器、存储器等。目前很多单片机内部都集成了I2C总线,而AT89S51单片机内部没有集成,但可以通过软件实现与I2C总线的通信。I2C总线的基本特性:(1)只要求两条信号线:一条串行数据线SDA和一条串行时钟线SCL。SDA是双向串行数据线,用于地址、数据的输入和数据
19、的输出,使用时需加上拉电阻。SCL是时钟线,为器件数据传输的同步时钟信号;(2)每根连接到总线的器件都可以通过唯一的地址进行寻址;(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输,则可以通 过冲突检测和仲裁防止数据被破坏;(4)在CPU和被控制器件间双向传送,最高传送速率为400kbps。片上的滤波器可以滤去总线数据上的毛刺,保证数据可靠传输。在I2C总线协议中,数据的传输必须由主器件发送的启动信号开始,以主器件发送的停止信号结束,从器件在收到启动信号之后需要发送应答信号来通知主器件已经完成了一次数据接收。当时钟线SCL保持高电平时,并且数据线SDA由高变低时,为I2C总线
20、工作的起始信号;当SCL为高电平时,且SDA由低变高时,为I2C总线停止信号;标志操作的结束,即将结束所有相关的通信。图9-6是I2C总线的启动信号和停止信号时序图。在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址,系统发出开始信号后,系统中的各器件将自己的地址和CPU发送到总线上的地址进行比较,如果与CPU发送到总线上的地址一致,则该器件是被CPU寻址的器件。I2C总线上以字节为单位进行传送,每次先传送最高位。每次传送的数据字节数不限,在每个被传送的字节后面,接收器都必须发一位应答位(ACK),总线上第9个时钟脉冲对应于应答位,数据线上低电平为应答信号,高电平为非应答信号。待
展开阅读全文