drv1320.asm
来自「微芯公司的PIC子程序库及运算平台」· 汇编 代码 · 共 56 行
ASM
56 行
;********************DRV1320********************
;本程序实现驱动TC1320实现DA转换。
;入口参数:待转换的数据在SOU中。
;出口参数:无。
;占用资源:W,STATUS,024H,SSP模块,1重堆栈。
;说明: 同步时钟频率为100KHZ
IFNDEF DRV13201
#DEFINE DRV13201
DRV1320 MOVLW 08H ;初始化SSPCON,
MOVWF SSPCON ;IIC主控模式
BCF PIR1,SSPIF
BSF STATUS,RP0
BSF TRISC,3 ;设置SCL为输入
BSF TRISC,4 ;设置SDA为输入
MOVLW 80H ;初始化SSPSTAT寄存器,
MOVWF SSPSTAT ;传送速率为标准模式100KHZ
MOVLW 09H
MOVWF SSPADD ;设定IIC时钟频率
CLRF SSPCON2 ;初始化SSPCON2
BCF PIE1,SSPIE ;SSP中断禁止
BCF STATUS,RP0
BSF SSPCON,SSPEN ;SSP模块使能
BSF STATUS,RP0
BCF TRISC,3 ;设置SCL为输出
BCF TRISC,4
BSF SSPCON2,SEN ;产生IIC启动信号
BCF STATUS,RP0
BTFSS PIR1,SSPIF ;启动信号完成了吗?
GOTO $-1
BCF PIR1,SSPIF
MOVLW 10010000B ;TC1320地址和写信号
MOVWF SSPBUF
BTFSS PIR1,SSPIF ;TC1320地址和写信号发送完了吗?
GOTO $-1
BCF PIR1,SSPIF
CLRF SSPBUF ;COMMAND=0,读写DATA寄存器
BTFSS PIR1,SSPIF ;COMMAND发送完了吗?
GOTO $-1
BCF PIR1,SSPIF
MOVF SOU,W ;待转换的数字量
MOVWF SSPBUF
BTFSS PIR1,SSPIF ;数字量发送完了吗?
GOTO $-1
BCF PIR1,SSPIF
BSF STATUS,RP0
BSF SSPCON2,PEN ;结束位
BCF STATUS,RP0
BTFSS PIR1,SSPIF ;结束位发送完了吗?
GOTO $-1
BCF PIR1,SSPIF
RETURN
ENDIF
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?