📄 drv77.asm
字号:
;********************DRV77********************
;本程序实现驱动TC77实现温度测量。
;入口参数:无。
;出口参数:13位的温度值在SOUH:SOU中(右对齐)。
;占用资源:W,STATUS,024H,025H,SSP模块,RB1,1重堆栈。
;说明: 同步时钟频率为FOSC/64。
IFNDEF DRV771
#DEFINE DRV771
#DEFINE CS77 PORTB,1 ;TC77的CS端连到单片机的RB1
DRV77 BCF CS77
BSF STATUS,RP0
MOVLW 11010011B
MOVWF TRISC ;SCK输出,SDO输出,SDI输入
MOVLW 0FDH
ANDWF TRISB,F ;RB1为输出
CLRF SSPSTAT ;清除SMP,CKE位
BCF PIE1,SSPIE ;SSP中断禁止
BCF STATUS,RP0
MOVLW 00110010B ;设置SSP控制方式:取FOSC/64,SPI主控,CKP=1
MOVWF SSPCON
BCF PIR1,SSPIF
NEXT78 BCF CS77 ;CS置低
CLRW
MOVWF SSPBUF ;读取温度高字节
BCF PIR1,SSPIF
BTFSS PIR1,SSPIF ;温度高字节传送完毕?
GOTO $-1
BCF PIR1,SSPIF
MOVF SSPBUF,W
MOVWF SOUH
CLRW
MOVWF SSPBUF
BTFSS PIR1,SSPIF ;温度低字节传送完毕?
GOTO $-1
BCF PIR1,SSPIF
MOVF SSPBUF,W
MOVWF SOU
BSF CS77 ;CS置高
BTFSS SOU,2 ;BIT2=1吗?
GOTO NEXT78 ;第一次转换没有结束,继续读取
BCF STATUS,C
RRF SOUH,F
RRF SOU,F
BCF STATUS,C
RRF SOUH,F
RRF SOU,F
BCF STATUS,C
RRF SOUH,F
RRF SOU,F ;右对齐
RETURN
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -