MOV LW "\r" ; Enter ??
SUBWF INDF,W
BTFSS STATUS,Z
GOTO CUOWU2 ;不相等,后面还有内容,转到错误提示2
CLRF COUNTER
GOTO HD4 ;转到回答4
;********************************************
;和第五个问题进行比较
PD5
CLRF COUNTER
MOV LW 30H
MOV WF FSR
LP5
MOV F COUNTER,W
; BSF PCLATH,1
BSF PCLATH,0
CALL TAB5
BCF PCLATH,0
; BCF PCLATH,1
SUBWF INDF,W ;查表所得的数据与 INDF 的内容相减,结果送 W
BTFSS STATUS,Z
GOTO CUOWU ;内容不符,转 CUOWU 提示1
INCF FSR ;内容相符,数据存储地址加一
INCF COUNTER
MOV F COUNTER,W
SUBLW .22 ;判断是否已到第一个问题的 16 个字符数
BTFSS STATUS,Z
GOTO LP5 ;没到,继续第一个问题的判断
MOV LW "\r" ; Enter ??
SUBWF INDF,W
BTFSS STATUS,Z
GOTO CUOWU2 ;不相等,后面还有内容,转到错误提示2
CLRF COUNTER
GOTO HD5 ;转到回答2
;********************************************
;输出回答 1
HD1
MOV F COUNTER,W
; BSF PCLATH,0
CALL TABLE1
; BCF PCLATH,0
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .25
BTFSS STATUS,Z
GOTO HD1
GOTO LOOP ;输出完毕,转到输出检测
;输出回答 2
HD2
MOV F COUNTER,W
; BSF PCLATH,0
CALL TABLE2
; BCF PCLATH,0
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .22
BTFSS STATUS,Z
GOTO HD2
GOTO LOOP ;输出完毕,转到输出检测
;输出回答 3
HD3
MOV F COUNTER,W
; BSF PCLATH,0
CALL TABLE3
; BCF PCLATH,0
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .27
BTFSS STATUS,Z
GOTO HD3
GOTO LOOP ;输出完毕,转到输出检测
;输出回答 4
HD4
MOV F COUNTER,W
; BSF PCLATH,0
CALL TABLE4
; BCF PCLATH,0
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .34
BTFSS STATUS,Z
GOTO HD4
GOTO LOOP ;输出完毕,转到输出检测
;输出回答 5
HD5
MOV F COUNTER,W
; BSF PCLATH,0
CALL TABLE5
; BCF PCLATH,0
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .28
BTFSS STATUS,Z
GOTO HD5
; GOTO LOOP ;输出完毕,转到输出检测
CLRF COUNTER
CALL DELAY1S
CALL _PASS_BELL
GOTO BEGIN
;********************************************
;输出错误提示 1
CUOWU
CLRF COUNTER
LP6 MOV F COUNTER,W
; BSF PCLATH,1
BSF PCLATH,0
CALL TABLE6
BCF PCLATH,0
; BCF PCLATH,1
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .64
BTFSS STATUS,Z
GOTO LP6
GOTO LOOP
;输出错误提示 2
CUOWU2
CLRF COUNTER
LP7 MOV F COUNTER,W
; BSF PCLATH,1
BSF PCLATH,0
CALL TABLE7
BCF PCLATH,0
; BCF PCLATH,1
CALL FASONG
CALL DELAY3
INCF COUNTER
MOV F COUNTER,W
SUBLW .48
BTFSS STATUS,Z
GOTO LP7
GOTO LOOP
;********************************************
;********************************************
;USART 方式发送数据子程序
FASONG
MOV WF TXREG
BSF STATUS,RP0
BTFSS TXSTA,TRMT
GOTO $-1
BCF STATUS,RP0
RETURN
;********************************************
CLR_RAM
MOV LW 20H
MOV WF FSR
CLRF INDF
INCF FSR,F
BTFSS FSR,7
GOTO $-3
RETURN
;***********************_ERROR_BELL 子程序 **********************************
_ERROR_BELL
CALL _PASS_BELL
CALL DELAY200MS
CALL DELAY200MS
CALL _PASS_BELL
CALL DELAY200MS
CALL DELAY200MS
CALL _PASS_BELL
CALL DELAY200MS
CALL DELAY200MS
RETURN
;***********************_PASS_BELL 子程序 **********************************
_PASS_BELL
MOV LW .20
MOV WF TEMP_A
BELL2
MOV LW .190
MOV WF TEMP_B
BELL1
BSF BELL ;频率 Hz
CALL DELAY125US
BCF BELL
CALL DELAY125US
DECFSZ TEMP_B,1
GOTO BELL1
DECFSZ TEMP_A,1
GOTO BELL2
RETURN
;**********************************************************
DELAY50US
MOV lw .15 ;DELAY50US
MOV wf TEMP1
decfsz TEMP1,F
goto $-1
RETLW 0
;*********************** 250uS 延时子程序 1 **************
DELAY125US
MOV LW .42
MOV WF TEMP_C
DECFSZ TEMP_C,F
GOTO $-1
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:暂无联系方式PIC单片机,单片机-工控设备 - PIC单片机