INCLUDE<P16F877A.INC> ;包含头文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;调试模式关闭,写保护,一半ROM可在线改写,EEPROM加密,低压编程关闭,掉电检测关闭,上电延时开,看门狗关,4M晶振HS振荡
VALUE1 EQU 0F1H ;待转换数据高4位(高半字节为无效数据)
VALUE2 EQU 0FCH ;待转换数据低6位(最低2位为无效数据)
ORG 00H ;程序复位地址
NOP ;ICD所需要的空指令
MAIN
CLRF PORTC ;先清除所有输出
BCF PORTC,3 ;拉低时钟信号,以便更改片选使能信号
BSF PORTC,2 ;片选禁止
BANKSEL TRISC
CLRF TRISC ;C口全输出
BSF TRISC,4 ;RC4口输入(SDI)
BANKSEL SSPSTAT
MOVLW B’01000000’ ;CKE=1下降沿发送(TCL5615规定)
MOVWF SSPSTAT
CLRF STATUS
MOVLW B’00100000’ ;SSPEN=1,CKP=0 SPI主空模式Fosc/4
MOVWF SSPCON
BCF PORTC,3 ;拉低时钟信号,以便更改片选使能信号
BCF PORTC,2 ;片选使能
MOVLW VALUE1 ;取待转换数据高4位
MOVWF SSPBUF ;发送
BTFSS PIR1,SSPIF ;判断是否发送完成
GOTO $-1 ;等待发送完成
BCF PIR1,SSPIF ;清除中断标志位
MOVFW SSPBUF ;清空接收寄存器
MOVLW VALUE2 ;取待发送数据低6位
MOVWF SSPBUF ;发送
BTFSS PIR1,SSPIF ;判断是否
GOTO $-1 ;等待完成
BCF PIR1,SSPIF ;清除中断标志位
BCF PORTC,3 ;拉低时钟信号
BSF PORTC,2 ;片选禁止
NOP
GOTO $
;************************************************************
END ;程序结束
本文关键字:程序 PIC单片机,单片机-工控设备 - PIC单片机