版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(CPHA)(CPOL)的不同组合使得SPI 4 如果CPOL = 引脚在空闲状态保持低电平;如果CPOL 引脚在空闲状态保持高电平时序图如下:(一) AVR 单片机实现代码/IO 端口定义#define SPI_SCKPC0 #define SPI_MOSI PC1 #define SPI_MISO PC2 #define SPI_DDRDDRC #define SPI_PORT #define SPI_PINPINC/端口操作符定义#define SCK_SET SPI_PORT|=_BV(SPI_SCK) #define SCK_CLR SPI_PORT&=_BV(SPI-SCK)#de
2、fine MOSI_SET SPI_PORT|=_BV(SPI_MOSI)#define MOSI_CLR SPI_PORT&=_BV(SPI_MOSI)#define MISO_PIN PINC&_BV(SPI_MISO)#define DELAY_BUS/如需要延时,用延时函数替代此符号/模式 1:CPOL=1 CPHA=1void spi_init(void)SCK_SET; SPI_DDR|=_BV(SPI_MOSI)|_BV(SPI_SCK);uint8_t spi_readwrite_byte(uint8_t data)uint8_t i,ret=0;for(i=0;i8;i+)/
3、下降沿模拟if(data&0 x80)/设置输出MOSI_SET;elseMOSI_CLR;SCK_CRL;/SCK DELAY_BUS;/ 上 升 沿 模 拟 ret=1; if(MISO_PIN)/读数据ret|=1;SCK_SET; /SCK 产生上升沿data=1;DELAY_BUS;return ret;/模式 2:CPOL=0 CPHA=1void spi_init(void)SCK_CLR; SPI_DDR|=_BV(SPI_MOSI)|_BV(SPI_SCK);uint8_t spi_readwrite_byte(uint8_t data)uint8_t i,ret=0;for
4、(i=0;i8;i+)/上升沿模拟if(data&0 x80)/设置输出MOSI_SET;elseMOSI_CLR;SCK_SET;/SCK DELAY_BUS;/ 下 降 沿 模 拟 ret=1; if(MISO_PIN)/读数据ret|=1;SCK_CLR; /SCK 产生下降沿data=1;DELAY_BUS;return ret;/模式 3:CPOL=1 CPHA=0void spi_init(void)SCK_SET; SPI_DDR|=_BV(SPI_MOSI)|_BV(SPI_SCK);uint8_t spi_readwrite_byte(uint8_t data)uint8_t
5、 i,ret=0;/设置好输出口if(data&0 x80)MOSI_SET;elseMOSI_CLR;for(i=0;i8;i+)DELAY_BUS;/ 下 降 沿 模 拟 ret=1; if(MISO_PIN)/读数据ret|=1;SCK_CRL;/SCK 产生下降沿DELAY_BUS;/上升沿模拟data=1;if(data&0 x80)/设置输出MOSI_SET;elseMOSI_CLR;SCK_SET; /SCK 产生上升沿return ret;/模式 4:CPOL=0 CPHA=0void spi_init(void)SCK_CLR; SPI_DDR|=_BV(SPI_MOSI)|
6、_BV(SPI_SCK);uint8_t spi_readwrite_byte(uint8_t data)uint8_t i,ret=0;/设置好输出口if(data&0 x80)MOSI_SET;elseMOSI_CLR;for(i=0;i8;i+)DELAY_BUS;/上升沿模拟ret=1;if(MISO_PIN)/读数据ret|=1;SCK_SET;/SCK 产生上升沿DELAY_BUS;/下降沿模拟data=1;if(data&0 x80)/设置输出MOSI_SET;elseMOSI_CLR;SCK_CLR; /SCK 产生下降沿return ret;(二) 其它单片机实现代码#inc
7、lude #define _CPOL1#define _CPHA0#define SCK_IODDRA|=0X01 #define MOSI_IODDRA|=0X02 #define MISO_IO#define SSEL_IODDRA|=0X08#define SCK_D(X) (X?(PORTA|=0X01):(PORTA&=0XFE) #define MOSI_D(X) (X?(PORTA|=0X02):(PORTA&=0XFD) #define SSEL_D(X) (X?(PORTA|=0X08):(PORTA&=0XF7)#define MISO_I()void delay()uns
8、igned char m,n; for(n=0;n5;n+); for(m=0;m100;m+);/*端口方向配置 与输出初始化*/ void SPI_Init(void)SCK_IO; MOSI_IOMISO_IO; SSEL_IO; SSEL_D(1); MOSI_D(1); #if _CPOL=0 SCK_D(0);#else SCK_D(1);#endif/*模式零写数据*/ #if _CPOL=0&_CPHA=0/MODE0void SPI_Send_Dat(unsigned char dat)unsigned char n; for(n=0;n8;n+)SCK_D(0);if(da
9、t&0 x80)MOSI_D(1); else MOSI_D(0); dat=1;SCK_D(1);SCK_D(0);/*模式零读数据*/ unsigned char SPI_Receiver_Dat(void)unsigned char n ,dat,bit_t; for(n=0;n8;n+)SCK_D(0);dat=1; if(MISO_I()dat|=0 x01; else dat&=0 xfe; SCK_D(1);SCK_D(0);return dat;#endif/*模式二写数据*/ #if _CPOL=1&_CPHA=0/MODE1void SPI_Send_Dat(unsigne
10、d char dat)unsigned char n; for(n=0;n8;n+)SCK_D(1);if(dat&0 x80)MOSI_D(1); else MOSI_D(0); dat=1;SCK_D(0);SCK_D(1);/*模式二读数据*/ unsigned char SPI_Receiver_Dat(void)unsigned char n ,dat,bit_t; for(n=0;n8;n+)SCK_D(1);dat=1; if(MISO_I()dat|=0 x01; else dat&=0 xfe; SCK_D(0);SCK_D(1);return dat;#endif/*模式一
11、写数据*/#if _CPOL=0&_CPHA=1/MODE01void SPI_Send_Dat(unsigned char dat)unsigned char n;SCK_D(0);for(n=0;n8;n+)SCK_D(1);if(dat&0 x80)MOSI_D(1); else MOSI_D(0); dat=1;SCK_D(0);/*模式一读数据*/ unsigned char SPI_Receiver_Dat(void)unsigned char n ,dat,bit_t; for(n=0;n8;n+)SCK_D(1);dat=1; if(MISO_I()dat|=0 x01; el
12、se dat&=0 xfe; SCK_D(0);SCK_D(0);return dat;#endif/#if _CPOL=1&_CPHA=1/MODE11void SPI_Send_Dat(unsigned char dat)unsigned char n;SCK_D(1);for(n=0;n8;n+)SCK_D(0);if(dat&0 x80)MOSI_D(1); else MOSI_D(0); dat=1;SCK_D(1);/*模式三读数据*/ unsigned char SPI_Receiver_Dat(void)unsigned char n ,dat,bit_t; SCK_D(0);for(n=0;n8;n+) SCK_D(0);dat=1; if(MISO_I()dat|=0 x01; else dat&=0 xfe; SCK_D(1);SCK_D(1);return dat;#endif/*/ void main()SPI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 板块构造学说
- 患者就诊排队管理制度
- 算法设计与分析 课件 3.4-递归 - 典型应用 - 整数划分
- 2024年山南道路客运从业资格证考试模拟试题
- 2024年商洛客运从业资格证到期换证考试
- 2024年吉林客运模拟考试
- 2024年长沙客运从业资格证考试考什么
- 2024年拉萨客运驾驶员试题答案
- 人教部编版二年级语文上册《语文园地二》精美课件
- 吉首大学《风景园林花卉学》2021-2022学年第一学期期末试卷
- 斜井敷设电缆措施
- 功能性高分子材料科学-医用高分子及生物吸收性高分子材料
- 民族团结一家亲演讲稿100字(大全8篇)
- 六年级上册《书法练习指导》教案
- 施工机械设备租赁实施方案
- 牙膏产品知识课件
- 液化气站人员劳动合同范本
- 医疗安全典型案例警示教育
- 幼儿园清算审计报告
- 常见土源性寄生虫演示文稿
- itop运维综合管理平台使用手册要点
评论
0/150
提交评论