单片机IO口模拟SPI四种模式的程序.doc

单片机IO口模拟SPI四种模式的程序.doc

ID:57647050

大小:44.00 KB

页数:5页

时间:2020-08-30

单片机IO口模拟SPI四种模式的程序.doc_第1页
单片机IO口模拟SPI四种模式的程序.doc_第2页
单片机IO口模拟SPI四种模式的程序.doc_第3页
单片机IO口模拟SPI四种模式的程序.doc_第4页
单片机IO口模拟SPI四种模式的程序.doc_第5页
资源描述:

《单片机IO口模拟SPI四种模式的程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机IO口模拟SPI四种模式的程序#include"iom8535v.h"#define_CPOL1#define_CPHA0#defineSCK_IODDRA=0X01#defineMOSI_IODDRA=0X02#defineMISO_IODDRA&=0XFB#defineSSEL_IODDRA=0X08#defineSCK_D(X)(X?(PORTA=0X01):(PORTA&=0XFE))#defineMOSI_D(X)(X?(PORTA=0X02):(PORTA&=0XFD))#defineSSEL_D(X)(X?(POR

2、TA=0X08):(PORTA&=0XF7))#defineMISO_I()(PINA&0X04)voiddelay(){unsignedcharm,n;for(n=0;n<5;n++);for(m=0;m<100;m++);}/端口方向配置与输出初始化/voidSPI_Init(void){SCK_IO;MOSI_IO;MISO_IO;SSEL_IO;SSEL_D(1);MOSI_D(1);#if_CPOL==0SCK_D(0);#elseSCK_D(1);#endif}/模式零写数据/#if_CPOL==0&&_CPHA==0//

3、MODE00voidSPI_Send_Dat(unsignedchardat){unsignedcharn;for(n=0;n<8;n++){SCK_D(0);if(dat&0x80)MOSI_D(1);elseMOSI_D(0);dat<<=1;SCK_D(1);}SCK_D(0);}/模式零读数据/unsignedcharSPI_Receiver_Dat(void){unsignedcharn,dat,bit_t;for(n=0;n<8;n++){SCK_D(0);dat<<=1;if(MISO_I())dat=0x01;else

4、dat&=0xfe;SCK_D(1);}SCK_D(0);returndat;}#endif/模式二写数据/#if_CPOL==1&&_CPHA==0//MODE10voidSPI_Send_Dat(unsignedchardat){unsignedcharn;for(n=0;n<8;n++){SCK_D(1);if(dat&0x80)MOSI_D(1);elseMOSI_D(0);dat<<=1;SCK_D(0);}SCK_D(1);}/模式二读数据/unsignedcharSPI_Receiver_Dat(void){unsign

5、edcharn,dat,bit_t;for(n=0;n<8;n++){SCK_D(1);dat<<=1;if(MISO_I())dat=0x01;elsedat&=0xfe;SCK_D(0);}SCK_D(1);returndat;}#endif/模式一写数据/#if_CPOL==0&&_CPHA==1//MODE01voidSPI_Send_Dat(unsignedchardat){unsignedcharn;SCK_D(0);for(n=0;n<8;n++){SCK_D(1);if(dat&0x80)MOSI_D(1);elseM

6、OSI_D(0);dat<<=1;SCK_D(0);}}/模式一读数据/unsignedcharSPI_Receiver_Dat(void){unsignedcharn,dat,bit_t;for(n=0;n<8;n++){SCK_D(1);dat<<=1;if(MISO_I())dat=0x01;elsedat&=0xfe;SCK_D(0);}SCK_D(0);returndat;}#endif//////////////////////////////////////////////////////////////////////

7、////////////////////////////////////////#if_CPOL==1&&_CPHA==1//MODE11voidSPI_Send_Dat(unsignedchardat){unsignedcharn;SCK_D(1);for(n=0;n<8;n++){SCK_D(0);if(dat&0x80)MOSI_D(1);elseMOSI_D(0);dat<<=1;SCK_D(1);}}/模式三读数据/unsignedcharSPI_Receiver_Dat(void){unsignedcharn,dat,bi

8、t_t;SCK_D(0);for(n=0;n<8;n++){SCK_D(0);dat<<=1;if(MISO_I())dat=0x01;elsedat&=0xfe;SCK_D(1);}SCK_D(1);returndat

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

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

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