MOVlw 0x00
bsf STATUS,RP1
MOVwf EEDATA
bsf STATUS,RP0
bcf EECON1,EEPGD
bsf EECON1,WREN
bcf INTCON,GIE
MOVlw 55h
MOVwf EECON2
MOVlw 0aah
MOVwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bsf INTCON,GIE
bcf EECON1,WREN
bcf STATUS,RP0
bcf STATUS,RP1
incf count,1
decfsz WRC
goto cc
;
MOVlw 8Fh ;//重新写入次数值
MOVwf WRC
MOVwf REC
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
;
MOVlw 0x03
MOVwf count1 ;3*250us=750us
MOVlw 0x0f
MOVwf count2 ;15*250us=3.7ms
;
MOVlw 0xa0
MOVwf intcon
bcf intcon,t0if ;TMR0设置
MOVlw 0x0e
MOVwf tmr0
;
MOVlw 0x0f
MOVwf PORTC ;初始亮PORTC,判断程序运行是否正常
clrf flag
clrf flag1
clrf flag2
clrf flag3
;
clrf flag4 ;标志寄存器
;==============NUM===============
main
MOVlw 0x0f
MOVwf portc
MOVlw 0x0f
MOVwf count2
clrf flag4
btfsc portb,2
goto main
bsf flag4,0
bcf flag4,4
;
btfss portb,2 ;3.7ms内有高电平?
goto $-1 ;有
;
out MOVlw 0x0f
MOVwf count2
;------------------------------
;d7
bcf flag4,0 ;d0=1在3。7定时
bcf flag4,2 ;d2=1脉冲低电平在750US内,代表0
bcf flag4,3 ;750US不进行计时
btfss portb,2
goto $-1
dd7 bsf flag4,3 ;开始计时
btfss portb,2 ;测脉冲高电平宽度
goto ss7 ;脉冲高电平《750US
btfss flag4,2
goto dd7
bsf flag,7 ;》750US;FLAG,D7=1
goto out7
ss7 bcf flag,7
out7 MOVlw 0x03
MOVwf count1
;d6
bcf flag4,0
bcf flag4,2
bcf flag4,3
btfss portb,2
goto $-1
dd6 bsf flag4,3
btfss portb,2
goto ss6
btfss flag4,2
goto dd6
bsf flag,6
goto out6
ss6 bcf flag,6
上一页 [1] [2] [3] [4] [5] [6] 下一页
本文关键字:程序 ERROR PIC单片机,单片机-工控设备 - PIC单片机