SPI总线的软件模拟

时间:2023-03-11作者:佚名

对于没有提供SPI接口的单片机而言,通常可使用软件的办法来模拟SPI的总线操作,包括串行时钟、数据输入和输出。

Atmel公司生产的EEPROM具有SPI接口,存储容量为4KbAT25040就有SPI接口,80C51系列单片机与AT25040SPI总线接口接线如图所示。

SPI总线的软件模拟

SPI总线接口接线图

9-6中,P1.0模拟SPI的数据输出端(MOSI),P1.1模拟SPISCK输出端,P1.2模拟SPI的从机选择端(SS),P1.3模拟SPI的数据输入端(MISO)。下面给出模拟SPI串行输入、串行输出和串行输入/输出的3个子程序

1MCU串行输入子程序SPIIN

AT25040SO端接收8位数据并放入寄存器R0中。参考程序如下:

SPIIN: SETB P1.1 ;使P1.1(时钟)输出为1

CLR P1.2 ;选择从机

MOV R1, #08H ;置循环次数

SPIIN1: CLR P1.1 ;使P1.1(时钟)输出为0

NOP ;延时

NOP

MOV C, P1.3 ;从机输出送进位C

RLC A ;左移至累加器A

SETB P1.1 ;使P1.1(时钟)输出为1

DJNZ R1, SPIIN1 ;判断是否循环8次(8位数据)

MOV R0, A 8位数据送R0

RET

2MCU串行输出子程序SPIOUT

80C51单片机中R0寄存器的内容传送到AT25040SI端。参考程序如下:

SPIOUT: SETB P1.1 ;使P1.1(时钟)输出为1

CLR P1.2 ;选择从机

MOV R1, #08H ;置循环次数

MOV A, R0 8位数据送累加器A

SPIOUT1: CLR P1.1 ;使P1.1(时钟)输出为0

NOP ;延时

NOP

RLC A ;左移至累加器A,最高为至C

MOV P1.0, C ;进位C送从机输入

SETB P1.1 ;使P1.1(时钟)输出为1

DJNZ R1, SPIOUT1 ;判断是否循环8次(8位数据)

RET

3MCU串行输入/输出子程序 SPIIO

80C51单片机R0寄存器的内容传送到AT25040SI端,同时从AT25040SO端接收8位数据。参考程序如下:

SPIIO: SETB P1.1 ;使P1.1 (时钟)输出为1

CLR P1.2 ;选择从机

MOV R1, #08H ;置循环次数

MOV A, R0 8位数据送累加器A

SPIIO1: CLR P1.1 ;使P1.1(时钟)输出为0

NOP ;延时

NOP

MOV C, P1.3 ;从机输出送进位C

RLC A ;左移至累加器A,最高为至C

MOV P1.0, C ;进位C送从机输入

SETB P1.1 ;使P1.1(时钟)输出为1

DJNZ R1, SPIIO1 ;判断是否循环8次(8位数据)

RET

这些子程序适用于在串行时钟的上升沿输入和下降沿输出的各种串行外围接口芯片(如D/AA/D转换芯片、实时时钟芯片、LED显示驱动芯片等)。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出电平顺序,这些子程序也同样适用。

如先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平等等。

相关阅读

史上最全电工基础知识,没有之一!电力人看完都默默收藏了

爱好是学习的动力,从爱好出发,你会掌握更多的知识。“电工技术”没有绝招,只有好学与热爱,精通电工必备的常识,是一名电工的基本准则,本文主要内容有电工必备基础知识、...
2023-06-11
史上最全电工基础知识,没有之一!电力人看完都默默收藏了

串联电阻降压启动电路图

串联电阻降压启动电路 此电路通过串联电阻或电抗器启动,以降低启动电压,减少启动电路。 按下启动按钮SB1,接触器K M1和通电延时动作继电器KT同时得电。 当接触器K M1通电后,其常...
2023-08-29
串联电阻降压启动电路图

猪队友一字之差,老电工被坑惨了!

电工,和电打交道的工种,显而易见,风险重重,所以做电工的都知道在工作中一定要再三小心,以免赔了夫人又折兵,俗话说:常在河边走哪有不湿鞋,不管大家再怎么小心,但遇到...
2023-06-27
猪队友一字之差,老电工被坑惨了!

为什么风力发电机转得那么慢还能发电?终于明白了!

风力发电机是将风能转换为机械功,机械功带动转子旋转,最终输出交流电的电力设备。 我们曾报道过位于丹麦的V164,高达220米,上面安装有3个巨型叶片,每个叶片长达80米。一天2...
2023-06-11
为什么风力发电机转得那么慢还能发电?终于明白了!

电工等级证分为哪几个等级呢?

电工等级证根据电工的专业技能和工作经验来划分,共分为五个等级,具体如下:1. **初级电工(五级)**:这是电工等级中的最低级别,持有者需具备一定的电力基础知识和技能,能够进行简单的...
2024-08-09
电工等级证分为哪几个等级呢?

热销商品

FEITA 镊子碳纤维合成塑料防静电无尘净化塑胶手动工具镊子93302

FEITA镊子93302采用高强度碳纤维合成塑料材质,兼具轻量化与耐用性,适用于精密操作场景。其独特的防静电设计有效避免静电对电子元件的损害,广泛应用于半导体、光学、...
1.2

江南国标rvv铜芯电缆软线3 4多芯平方rvvp护套信号屏蔽线线缆电线

江南国标rvv铜芯电缆软线34多芯平方rvvp护套信号屏蔽线线缆电线,是一种高性能的电缆产品,适用于各种信号传输和控制场合。该电缆采用优质铜芯,具有优良的导电性能和...
1.96

内六角扳手套装单个内六方螺丝刀进口S2款加长特长平头内6角2.5mm

这款进口S2材质内六角扳手套装,专为精密机械维修与装配设计,采用高品质S2合金钢制造,具备卓越的硬度、耐磨性与抗扭强度,有效防止使用过程中断裂或变形。套装中包含2....
1.4

橡胶条U型防撞包边条橡胶卡条玻璃嵌条配电箱机柜u型条密封条封王

橡胶条U型防撞包边条是一种多功能密封与防护配件,广泛应用于配电箱、机柜、玻璃门窗及各类设备边缘。采用优质橡胶材质,具备优异的弹性、耐老化、防水防尘和抗冲击...
0.8

10副装护目镜打磨劳保防飞溅男女骑行机械实验防风沙灰尘防护眼镜

这款10副装护目镜专为多场景防护设计,适用于打磨、机械加工、实验操作、骑行及户外作业等环境。采用高透光防雾镜片,有效抵御飞溅物、风沙、灰尘及化学液体喷溅,保障...
19.8

网站栏目