📄 spitopll.asm
字号:
/*********************************************************************
* 版权所有 (C)2005, 深圳市中兴通讯股份有限公司。
*
* 文件名称: // SPITOPLL.asm
* 文件标识: // 见配置管理计划书
* 内容摘要: // 简要描述本文件的内容,包括主要模块、函数及其功能的说明
* 其它说明: // 其它内容的说明
* 当前版本: // 输入当前版本
* 作 者: // 输入作者名字及单位
* 完成日期: // 输入完成日期,例:2000年2月25日
*
* 修改记录1:// 修改历史记录,包括修改日期、修改者及修改内容
* 修改日期:
* 版 本 号:
* 修 改 人:
* 修改内容:
* 修改记录2:…
**********************************************************************/
sbit SENB = P3^3
sbit SDATA = P3^4
sbit SCLK = P3^5
PUBLIC _SPITOPLL
SPITOPLL_ROUTINES SEGMENT CODE
RSEG SPITOPLL_ROUTINES
/**************************************************************************
* 函数名称: SPITOPLL(unsigned float ucSendData)
* 功能描述: SPI输出(可以设定输出的位数)
* 输入参数: R7——ucData-L,R6——ucData-M,R5——ucData-H
* 输出参数:
* 返 回 值:
* 其它说明:
* 修改日期 版本号 修改人 修改内容
* -----------------------------------------------
* 07/05/2005 V1.0 XXXX XXXX
**************************************************************************/
_SPITOPLL:
SETB SENB
NOP
CLR SENB
CLR SDATA
CLR SCLK
MOV A,#8 ;置循环次数
MOV R1,A
MOV A,R5 ;发送高位字节
SPIOUTPLLS1:
NOP ;延时
NOP
NOP
NOP
NOP
CLR SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
RLC A ;从机输出SPISO送进位
MOV SDATA,C ;进位C送从机输入
NOP ;延时
NOP
NOP
NOP
NOP
NOP
SETB SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
DJNZ R1,SPIOUTPLLS1 ;判是否循环结束
MOV A,#8 ;置循环次数
MOV R1,A
MOV A,R6 ;发送中位字节
SPIOUTPLLS2:
NOP ;延时
NOP
NOP
NOP
NOP
CLR SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
RLC A ;从机输出SPISO送进位
MOV SDATA,C ;进位C送从机输入
NOP ;延时
NOP
NOP
NOP
NOP
NOP
SETB SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
DJNZ R1,SPIOUTPLLS2 ;判是否循环结束
MOV A,#8 ;置循环次数
MOV R1,A
MOV A,R7 ;发送低位字节
SPIOUTPLLS3:
NOP ;延时
NOP
NOP
NOP
NOP
CLR SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
RLC A ;从机输出SPISO送进位
MOV SDATA,C ;进位C送从机输入
NOP ;延时
NOP
NOP
NOP
NOP
NOP
SETB SCLK
NOP ;延时
NOP
NOP
NOP
NOP
NOP
DJNZ R1,SPIOUTPLLS3 ;判是否循环结束
CLR SCLK
CLR SDATA
NOP
SETB SENB
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR SENB
CLR SCLK
CLR SDATA
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -