单片机串行扩展ppt课件

上传人:钟*** 文档编号:5834156 上传时间:2020-02-09 格式:PPT 页数:53 大小:3.73MB
返回 下载 相关 举报
单片机串行扩展ppt课件_第1页
第1页 / 共53页
单片机串行扩展ppt课件_第2页
第2页 / 共53页
单片机串行扩展ppt课件_第3页
第3页 / 共53页
点击查看更多>>
资源描述
第六部分单片机的串行扩展 系统扩展是指单片机内部各功能部件不能满足应用系统要求时 在片外连接相应的外围新片以满足应用系统要求 80C51系列单片机有很强的外部扩展能力 外围扩展电路芯片大多是一些常规芯片 扩展电路及扩展方法较典型 规范 80C51系统扩展有程序存储器 ROM 扩展 数据存储器 RAM 扩展 I O口扩展 中断系统扩展以及其他特殊功能扩展 1 单片机系统扩展方法有并行扩展和串行扩展法 并行扩展是指利用单片机的三总线 AB DB CB 进行的系统扩展 见第五部分 串行扩展是指利用SPI三总线 I C双总线 单总线等进行的串行系统扩展 6 1概述 缺点 速度慢 在需要高速的场合要用并行扩展 优点 串行接口器件体积小 与单片机接口的I O口线少 串行扩展的特点 2 在器件之间采用两根信号线 SDL SCL 进行信息传送并允许若干兼容器件共享的数据总线 称为I C总线 SDA传输双向的数据 SCL线用来传输时钟信号 用来同步串行数据线上的数据 一 I C公用双总线结构 飞利浦公司 挂接在I C总线的器件 根据功能可分为 主控器件和从控器件 主控器件 控制总线存取 产生串行时钟信号 并产生启动传送及结束传送的器件 总线必须有一个主控器件 从控器件 在总线上被主控器件寻址的器件 它们根据主控器件的命令来接收和发送数据 6 2串行扩展概述 3 4 多个器件之间连接使数据线SDA为 与 的关系 即只要其中一个器件输出0 即可使SDA数据线为0 5 在有多个器件组成的I2C总线系统中 可能存在多个主器件 因此 I2C总线系统是一个允许多主的系统 I2C数据传输协议 只有当总线不忙时 SDA与SCL均为高电平 数据传输才开始 数据传输期间 无论何时串行时钟线为高 串行数据线必须保持稳定 当串行时钟线为高时 串行数据线将认为此时传送的开始或停止 6 I2C总线定义的总线条件有 1 总线不忙 2 开始传输数据 3 停止传输数据 SCL和SDA保持高电平 在SCL 1时 SDA发生一个高到底的跳变 在SCL 1时 SDA发生一个低到高的跳变 7 4 数据有效 SCL保持高电平期间 当SDA稳定后 串行数据线的状态表示数据线是有效的 5 数据变化 SCL保持低电平期间 SDA数据线的状态才可以发生变化 8 在I2C总线上传输的数据有两种方式 主发送从接收 从发送主接收 它们是由起始信号后的第一个字节的最低位决定 1表示主器件读数据 0表示主器件写数据 主发送从接收 主器件为写数据 主器件产生起始信号后 发送的第一个字节为从地址 该地址的前7位字节为从器件的片选信号 最低位决定数据的传输方向位 此时该位是0 从器件每接收一个数据字节后 都返回一个应答信号 ASK 0 9 从发送主接收 主器件为读数据 从器件在接收到主器件发送的从地址和为1的方向位后 返回一个应答信号 ASK 0 接着从器件发送数据到主器件 主器件每接收一个数据字节后 都返回一个应答信号 ASK 0 在接收从器件最后一个字节后 主器件发送一个非应答信号 ASK 1 终止从器件继续发送 从器件发送的数据可以是单字节 也可以是一串数据 10 11 1 A0 A1 A2 片选或页面选择地址输入 1 二线制I2CE2PROMAT24CXX系列的扩展 AT24C01 A 02 04 08 16E2ROM存储器都是8个引脚 存储容量为1K 2K 4K 8K 16Kbits 2 GND 地线 6 3单片机的外部串行扩展 一 串行扩展E2PROM AT24C01 A 02 04 08 16的封装形式 12 AT24C04与单片机的扩展 模拟实现I2C接口 3 SDA 串行数据 地址 I O端 用于串行数据的输入 输出 4 SCL 串行时钟输入端 用于输入 输出数据的同步 5 WP 写保护 用于硬件数据的保护 6 VCC 电源电压 接 5V 13 AT24CXXSDA和SCL时钟关系 AT24CXX启动和停止信号 应答信号 14 AT24CXX立即地址读 其中 1010为EEPROM的编码 XXX为AT24CXX的地址编号 在I2C总线上最多可以连接8个AT24C01 02 4个AT24C04 2个AT24C08 1个AT24C16 15 AT24CXX立即地址读 AT24CXX随机读 16 AT24CXX顺序读 AT24C01 A 02 04 08 16字节写 AT24C01 A 02 04 08 16页面写 17 START 开始位 传入参数 无 返回值 无SETBSDASETBSCLNOPNOPCLRSDANOPNOPNOPNOPCLRSCLRET STOP 停止位 传入参数 无 返回值 无CLRSDANOPNOPSETBSCLNOPNOPNOPNOPSETBSDANOPRET 18 SHIN 从AT24Cxx移入数据到MCU 传入参数 无 返回值 R7 移入的数据USING0CLRAMOVR6 ASHIN LP SETBSCLMOVA R7ADDA ACCMOVR7 AMOVC SDACLRARLCAORLAR7 ACLRSCLINCR6CJNER6 08H SHIN LP 共8位 判断是否完成RET SHOUT 从MCU移出数据到AT24Cxx 传入参数 R7 要移出的数据 返回值 C AT24Cxx的应答位USING0CLRAMOVR6 ASHOUT LP MOVA R7 循环移入8个位RLCAMOVSDA CNOPSETBSCLNOPNOPCLRSCLMOVA R7ADDA ACCMOVR7 AINCR6CJNER6 08H SHOUT LP 共8位 判断是否完成SETBSDA 读取应答NOPNOPSETBSCLNOPNOPNOPMOVC SDA 保存应答位到CCLRSCLRET 19 READ RANDOM 在指定地址读取 传入参数 R7 地址 返回值 R7 读入的数据USING0MOVR5 AR7 暂存地址LCALLSTARTMOVR7 OP WRITE 写入器件地址和写入命令LCALLSHOUTMOVR7 AR5 写入地址LCALLSHOUTLCALLREAD CURRENT 在当前地址读取RET READ CURRENT 在当前地址读取 传入参数 无 返回值 R7 读出的数据USING0LCALLSTARTMOVR7 OP READ 写入器件地址和读取命令LCALLSHOUTLCALLSHIN 读取数据 保存在R7LCALLSTOPRET 20 WRITE BYTE 在指定地址写入数据 传入参数 R7 写入数据的地址 传入参数 R5 要写入的数据 返回值 无USING0MOVR4 AR7LCALLSTARTMOVR7 OP WRITE 写入器件地址和写命令LCALLSHOUTMOVR7 AR4 地址LCALLSHOUTMOVR7 AR5 数据LCALLSHOUTLCALLSTOPMOVR7 10 写入周期 延时10msLCALLDELAYMS 21 2 利用SPI扩展E2PROM SPI是三线总线结构的一个同步外围接口 允许单片机与各种外围设备以串行方式进行通讯 特点 主从机工作方式 可程控的主机位传送频率 时钟极性和相位 发送完成中断标志 写冲突保护标志 全双工 三线同步传送 22 在SPI设置为主机方式时 MISO是主机的数据输入线 MOSI是主机的数据输出线 设置为从机时 MISO是从机的数据输出线 MOSI是从机的数据输入线 1 串行数据线 MISO MOSI 主机输入 从机输出数据线MISO和主机输出 从机输入数据线MOSI 用于串行数据的发送和接收 数据发送时 先传高位 后传低位 2 串行时钟线SCLK 串行时钟线用于同步从MISO和MOSI引脚输入和输出的数据的传输 在SPI设置为主机方式时 SCLK为输出 设置为从机方式时 SCLK为输入 23 24 3 从机选择 SS在从机方式时 SS脚是输入端 用于使能SPI从机进行数据传送 在主机方式时 SS一般为高电平 高位数据 低位数据 25 1 串行E2PROM的特点及引脚 93C46是64 16位串行存取的电擦除可编程只读存储器 特点 在线改写数据和自动擦除功能 调电数据不丢失 输入 输出与TTL兼容 片内可产生擦除和写入时的电压 片内有控制和定时发生器 具有整体编程允许和截至功能 26 CS 片选信号 高电平有效 用CS下降沿启动片内定时器 开始读写操作 启动后 与CS信号上电平无关 CLK 串行数据时钟信号输入端 频率位0 250KHZ DI 串行数据输入端 DO 串行数据输出端 擦除时 DO引脚可作为擦写状态指示 即忙闲信号 ORG 结构端 当接到VCC或悬空时 芯片为16位存储器结构 接到VSS时 选择8位存储器结构 在时钟频率低于1MHZ ORG悬空 27 2 指令系统 读指令 写指令 擦除指令 擦除整片存储器指令 写整个存储器指令 擦写允许指令 28 读指令时序 写指令时序 29 擦除指令时序 擦除整片指令时序 30 3 与单片机的接口 取反 目的是双向传输数据 片选 1 读入数据 0操作码 地址 数据进入C46 31 二 串行扩展I O口 1 利用SPI扩展I O口 1 扩展并行输出口 32 2 扩展并行输入口 33 2 利用I2C扩展I O口 1 PCF8574是一种CMOS电路 具有I2C接口和8位准双向口 它在I2C总线中仅作从器件 具有低的电流损耗 具有中断逻辑线 3只硬件地址引脚最多挂接8个PCF8574 SDA 串行数据线 双向 SCL 串行时钟线 输入 P7 P0 8位准双向口 上电复位为高电平 在做输入时 应置高电平 A0 A2 地址输入线 INT 中断输出 低电平有效 34 2 PCF8574的寻址方式及操作 控制字节和器件寻址 读 写 应答 开始信号 控制字节 选中某一片 a 为PCF8574器件控制字节 b 为PCF8474A控制字节 35 读操作 写操作 36 3 PCF8574应用和编程 作扩展8位输入口 A0 A1 A2接地了 37 扩展8位输出口 输出显示 A0 A1 A2接地了 38 作扩展4位输入和4位输出口 中断悬空 输入开关量 输出显示 39 TLC549是美国德州仪器公司生产的8位串行A D转换器芯片 通过SPI接口与单片机连接 从CLK输入的频率最高可达1 1MHz 1 8位串行A D转换器TLC549 TLC549具有4MHz的片内系统时钟 片内具有采样保持电路 A D转换时间最长17 s 最高转换速率为40000次 s TLC549的电源范围为 3V 6V 功耗小于15Mw 总失调误差最大为 0 5LSB 适用于电池供电的便携式仪表及低成本高性能的系统中 三 串行扩展A D D A等 40 REF 正基准电压输入端 2 5V REF VCC 0 1V 1 引脚功能 REF 负基准电压输入端 0 1V REF 2 5V 且要求REF REF 1V 在要求不高时 也可将REF 接地 REF 接VCC AIN 模拟信号输入端 0 AIN VCC 当AIN REF 时 转换结果为全 1 FFH AIN REF 时 转换结果为全 00H CS 芯片选择输入端 低电平有效 DO 数据串行输出端 输出时高位在前 低位在后 CLK 外部时钟输入端 最高频率可达1 1MHz 41 2 TLC549的时序 当 CS变为低电平时 TLC549芯片被选中 同时前次转换结果的最高有效位MSB A7 自DO端输出 接着自CLK端输入 个外部时钟信号 前 个CLK信号是配合TLC549输出上次转换结果的A6 A0 位 并为本次转换做准备 在第 个CLK信号由高至低的跳变之后 片内采样 保持电路对输入模拟量采样开始 第 个CLK信号的下降沿使片内采样 保持电路进入保持状态并启动A D开始转换 42 转换时间为36个系统时钟周期 最大为17uS A D转换完成前的这段时间内 TLC549的控制逻辑要求 或者 CS保持高电平 或者CLK时钟端保持36个系统时钟周期的低电平 由此可见 在TLC549的CLK端输入 个外部时钟信号期间需要完成以下工作 读入前次A D转换结果 对本次转换的输入模拟信号采样并保持 启动本次A D转换 43 利用TLC549转换器设计一个简易数字电压表 用4位LED显示器将被测电压显示出来 将TLC549的 CS CLK DO接到单片机的三条I O口线 REF REF 直接接到Vcc GND 模拟输入AIN接电位器的中心抽头 调节电位器即可改变被测输入电压值 44 sbitCLK P1 1 时钟sbitDO P1 2 数据输出sbitCS P1 0 片选信号ucharTLC549 ADC void uchari tmp CS 1 CLK 0 CS 0 nop nop for i 0 i 8 i tmp 1 tmp DO CLK 1 nop CLK 0 CS 1 for i 17 i 0 i nop return tmp CSBITP1 0CLOCKBITP1 1DOBITP1 2MEMEQU30HORG0050HSTAR SETBCS CSCLRCLOCK CLOCKMOVR5 00H 模数转换CLRCSNOP 参见datasheet的时序表NXT MOVC DOSETBCLOCKNOPRLCACLRCLOCKINCR5CJNER5 8 NXTMOVR5 00HSETBCSMOVMEM A 转换结果放于MEM 45 1 TLC5615的内部结构和引脚功能TLC5615是SPI接口的10位电压输出的D A转换器 通过3根串行总线就可以完成10位数据的串行输入 易于和工业标准的微处理器或单片机接口 适用于电池供电的测量仪表 移动电话以及工业控制场合 其主要特点如下 1 5V单电源工作 2 3线串行接口 3 DAC输出的最大电压为2倍基准输入电压 4 上电时内部自动复位 确保可以重复启动 5 功耗低 最大功耗为1 75mW 二 串行D A转换器TLC5615 46 模拟地 串行二进制数输入端 串行时钟输入端 芯片选择 低有效 菊花链的串行数据输出端 用于多芯片的级联 基准电压输入端 DAC模拟电压输出端 正电源电压端 47 2 TLC5615的时序当 CS为低电平时 在每一个SCLK时钟的上升沿从DIN引脚移入一位数据 高位在前 低位在后 经16个时钟后 CS的上升沿将16位移位寄存器的10位有效数据锁存到10位DAC寄存器 供DAC电路进行转换 48 49 include include includetypedefunsignedcharuchar typedefunsignedintuint sbitCS P3 7 DA片选信号 sbitSCLK P3 6 DA时钟信号 sbitDIN P3 5 数字数据输入 voiddelay uintus 延时子函数 voiddac 5615 uintdata in voiddelay uintus uchari while us for i 0 i 125 i 函数名 dac 5615 功能 写入DAC的10bit输入数据 voiddac 5615 uintdata in uchari data in 6 精度10位 所以左移6位 CS 0 SCLK 0 for i 0 i 12 i 逐位传递12次 由于10位传完需要传送2位0 DIN bit data in 50 6 4外部中断源的扩展 在80C51系列单片机中 一般只有两个外部中断请求的输入端 INT0 INT1 当某个系统需要扩展更多个中断时 采用 OC门 经过 线或 后 引入芯片本身的外部中断请求端 就可以方便的扩展多个外部中断 在中断服务程序中 由软件设置的顺序查询外部中断是哪一位是高电平 然后进入中断服务程序 查询程序的流程图如下图所示 51 共用一个中断源 扩展中断源1的优先级最高 中断源4的优先级低 52 PINT0 PUSHPSW 保护现场 PUSHAJBP1 0 LOOP1 转向中断服务程序1JBP1 1 LOOP2 转向中断服务程序2JBP1 2 LOOP3 转向中断服务程序3JBP1 3 LOOP4 转向中断服务程序4INTEND POPA POPPSWRETILOOP1 中断服务程序1AJMPINTENDLOOP2 中断服务程序2AJMPINTENDLOOP3中断服务程序3AJMPINTENDLOOP4中断服务程序4AJMPINTEND 53
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!