⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spitopll.asm

📁 基于单片机Aduc841的调试程序
💻 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 + -