MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用

MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用

ID:40569533

大小:442.50 KB

页数:18页

时间:2019-08-04

MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用_第1页
MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用_第2页
MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用_第3页
MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用_第4页
MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用_第5页
资源描述:

《MC51_AVR_MCU_的I2C、SPI、232、485、IO的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MC51AVRMCU的I2CSPI232485IO的使用首先:AVR的IO口操作玉日信有三个寄存器:DDRxnPORTxnPINxnDDRxn(方向选择):1为输出0为输入PORTxn:在引脚为输入的前提下,为1上拉电阻使能0不使能在引脚为输出的前提下,为1输出高电平0输出低电平PINxn:通过读取PINxn来得到该引脚的状态,他不会锁存状态,他读到的只是当前管脚的电平状态。注意:xn是ABCD..口管脚设置PA口的第一个脚为输出:DDRA

2、=0x01;51单片机的IO口操作比如现让P1.

3、7为输出,其余为输入,P2=0x01111111B,也就是0x7F。=============================================================一、模拟SPI的使用时钟是100KHZ这样延时3微秒一周期6微妙这样最大传输速度为输入时钟频率的1/8CS输出低电平àMOSI与1向与àCLK输出一个脉冲àMOSI的数据右移动一位与1相与àCLK输出一个脉冲……输出够8位(一个字节了)再下一个字节或者停止à停止之后CS拉高CS输出低电平àCLK输出一个脉冲àMI

4、SO管脚取数据àCLK输出一个脉冲àMISO管脚取数据àCLK输出一个脉冲……输入够8位(一个字节了)再下一个字节或者停止à停止之后CS拉高3、一个主机和多个从器件的通信系统。(2)3个既可以当做主机也可以当做从机的单片机组成的系统。特点:SPI是一位一位发送的,并允许暂停,发多少位都行,不用寻址操作AVR有SPI功能接口的单片机SPI操作时钟是最大1/4FOSC最小1/128FOSC把数据写到数据寄存器àCS拉低(启动一次通信)à再把数据写到数据寄存器àCS拉低(启动一次通信)àCS拉高结束通信注

5、意:是时钟的上升沿还是下降沿有效时可以设置的---CPHA为1上升沿采样数据,为0下降沿采样数据,传输结束了SPIF会置位高位还是地位先发送是可以设置的----DORD为1地位先发送为0高位先发送数据寄存器SPFR是可读可写的—写数据进去就启动数据传输,读数据将读取数据的接收缓存区在主模式下,时钟信号的1次作用对应一位数据的发送(MOSI)和另一位数据的接收(MISO)。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。      那么第一个上升沿来的时候数

6、据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序===================================================================写程序步骤先对spi初始化,对应的控制脚为输出,时钟和输出的数据线,使能芯片接着对单片机写spi控制 0x57 128分频,高位先发送对应16位放在了**

7、**DDDD DDDD****故需要转换下,讲一个数据的高4为右移,放在高8字节,低4位左移,放在低8字节就可以发送了,还需注意要将查询用的spsr(状态寄存器)置0发送时先发高位数据,再发低位的 判断是否发完,用了do while()执行查询spsr接while也可以,发好了要关闭芯片使能芯片低电平工作,这里置高就关了二、模拟IIC总线字节的高字节先发送模拟的话时钟延时一般要/*结束条件建立时间大于4μs*//*起始条件建立时间大于4.7us,延时*//*起始条件锁定时间大于4μs*/IIC总线有

8、两根线---SDASCLK两根线都要加上拉电阻三、说明:主器件在通讯前要寻址--7位地址---器件地址(器件出厂时给定)和引脚地址(由器件的地址A0A1A2引脚决定,看他们接的高电平低电平或悬空决定),最低位最为读写控制位为1是读,为0是写数据位由低到高传送===SCL为低SDA可改变===SCL高时传数据===如果SCL为高时,这是SDA拉低那么就是起始信号,SDA拉高就是结束信号应答信号:没成功传送完一字节的数据之后,接收器必须产生一个应答信号==在主发送(写)模式,在第9个时钟主释放SDA

9、线使他处于高电平,然后从拉低SDA先发出应答信号===在主接收(读)模式,AT24XX在发送完一字节数据后释放SDA线,等待主的一个应答信号,收到应答信号,AT24XX继续发送数据,如果主器件没有发送应答信号,AT24XX停止发送数据并等待一个停止信号,主器件必须发一个停止信号寻址约定:一般器件地址码分为两部分:1、高4位属于固定地址不可改变,由厂家固化的统一地址;2、低三位为引脚设定地址,可以由外部引脚来设定(并非所有器件都可以设定)。广播地址全0.I2C的CLK的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。