计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

SPI总线在51系列单片机系统中的实现(2)

2017-06-09 01:05
导读:图2所示为MCS51系列单片机与存储器X25F008(E2PROM)的硬件连接图,图2中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,

图2所示为MCS51系列单片机与存储器X25F008(E2PROM)的硬件连接图,图2中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。下面介绍用MCS51单片机的汇编语言模拟SPI串行输入、串行输出和串行输入/输出的3个子程序,实际上,这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其它各种串行外围接口芯片(如A/D转换芯片、网络控制器芯片、LED显示驱动芯片等)。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出电平顺序,即先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平……,则这些子程序也同样适用。

3.1 MCU串行输入子程序SPIIN

从X25F008的SPISO线上接收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 ;从机输出SPISO送进位C

RLC A ;左移至累加器ACC

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

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

MOV R0,A ;8位数据送R0

上一篇:点对多点的多任务无线通信 下一篇:没有了