社区
单片机/工控
帖子详情
软模拟SPI(高分相赠)
sunchaoyang1
2005-04-08 04:55:22
本人做毕业设计要求用80C51。
需要与nRF905通信(是SPI接口的)
80C51没有SPI接口,固我想设计一个简单的软SPI(用P口(P3.0,p3.1有它用)的几个引脚模拟SPI)
给位大虾帮---------------忙--------------想想
提供原程序最好。(C51)
...全文
319
6
打赏
收藏
软模拟SPI(高分相赠)
本人做毕业设计要求用80C51。 需要与nRF905通信(是SPI接口的) 80C51没有SPI接口,固我想设计一个简单的软SPI(用P口(P3.0,p3.1有它用)的几个引脚模拟SPI) 给位大虾帮---------------忙--------------想想 提供原程序最好。(C51)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xichen
2005-04-11
打赏
举报
回复
/*******************************************************************************
模块名称: spi.h
模块说明: c51单片机的i/o模拟spi操作
创建时间: 2005/03/09
创建者: xichen
********************************************************************************/
#ifndef SPI_H
#define SPI_H
sbit SPIS_N = P2^1;
sbit SPIC = P2^3;
sbit SPID = P2^2;
sbit SPIQ = P2^4;
extern void spi_reset();
extern void spi_write(unsigned char spi_bValue);
extern unsigned char spi_read();
#endif
/*******************************************************************************
模块名称: spi.c
模块说明: c51单片机的i/o模拟spi操作
创建时间: 2005/03/09
创建者: xichen
********************************************************************************/
#include "includes.h"
#define set_spi_cs() SPIS_N =1
#define clr_spi_cs() SPIS_N =0
#define set_spi_clk() SPIC =1
#define clr_spi_clk() SPIC =0
#define set_spi_di() SPID =1
#define clr_spi_di() SPID =0
#define read_spi_do() SPIQ
//------------------------------------------
void spi_reset()
{
set_spi_cs();
}
//-----------------------------------------
void spi_write(unsigned char spi_bValue)
{
unsigned char no;
clr_spi_cs();
for (no=0;no<8;no++)
{
clr_spi_clk();
if ((spi_bValue &0x80)==0x80)
set_spi_di();
else
clr_spi_di();
set_spi_clk();
spi_bValue = (spi_bValue <<1);
}
}
//----------------------------------------------
unsigned char spi_read()
{
unsigned char no,spi_bValue;
clr_spi_cs();
for (no=0;no<8;no++)
{
clr_spi_clk();
spi_bValue = (spi_bValue <<1);
set_spi_clk();
if (read_spi_do() ==1)
spi_bValue |=0x01;
else
spi_bValue &=~0x01;
}
return spi_bValue;
}
sunchaoyang1
2005-04-09
打赏
举报
回复
我知道好做的呀,不过有大虾帮忙,就能那到一个可靠点的程序了
zys0001
2005-04-09
打赏
举报
回复
SPI比I2C好做,楼主仔细看一下时序,应该能做的出来的,要看清楚芯片的传输速度
xichen
2005-04-08
打赏
举报
回复
星期一给你,现在在家里
suyun9329
2005-04-08
打赏
举报
回复
做一个??网上有啊,找一个方便点
icesnows
2005-04-08
打赏
举报
回复
SPI接口应该是比较简单的,比较好做的吧!你要搞清楚它的时序
AD7794
SPI
_
spi
ad_ad7794_ad7794stm32_AD9208
SPI
_
模拟
spi
读_
AD7794
模拟
SPI
读数据,可以直接使用
利用IO
模拟
spi
的AD7793的430驱动程序
msp430的AD7793驱动程序,io
模拟
spi
ExampleCode_RDC_AD2S1210官方例程(内含
模拟
SPI
读写)
AD2S1210是一款10位到16位分辨率的旋变数字转换器,片上集成了正弦波振荡器可提供可为旋转变压器提供正弦波激励(3.15ppm,频率有2kHz-20KHz)
ADI器件AD7685/AD7687 GPIO
模拟
SPI
总线时序源码
ADI器件AD7685/AD7687 GPIO
模拟
SPI
总线时序源码
ADS8688利用
模拟
SPI
协议读取adc采样值
ADS8688利用
模拟
SPI
协议读取adc采样值
单片机/工控
27,510
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章