您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic USART 232汇编程序 正文
pic USART 232汇编程序

pic USART 232汇编程序

点击数:7594 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   PIC单片机

;Compare Test Counter Value is zero?************************
 CLRZ
  MOV F COUNTERH,F
 BTFSS STATUS,Z
 GOTO PRESS_START_KEY
 CLRZ
  MOV F COUNTERL,F
 BTFSS STATUS,Z
 GOTO PRESS_START_KEY
 CALL _ERROR_BELL 
 GOTO BEGIN
;Compare Test Counter Value is zero?************************
 

PRESS_START_KEY
        BTFSC    START_KEY         ;按开始键开始测试
        GOTO     $-1
        CALL     DELAY20MS
        BTFSC    START_KEY
        GOTO     $-4
        BTFSS    START_KEY
        GOTO     $-1
        CALL     DELAY20MS
        BTFSS    START_KEY
        GOTO     $-4


;Test Counter decrease 1****************************
  MOV LW .1  ;conter decrease 1
 SUBWF COUNTERL,F
 BTFSS STATUS,C
 DECF COUNTERH,F
 CALL RAM_TO_EE ;write counterl counterh to eeprom
;Test Counter decrease 1****************************

 

 


; GOTO BEGIN

 

 

 


;输出问候语

CSH
  MOV F COUNTER,W
; BSF PCLATH,0
 CALL TABLE
; BCF PCLATH,0
 CALL FASONG
 CALL DELAY3
 INCF COUNTER
  MOV F COUNTER,W
 SUBLW .74
 BTFSS STATUS,Z
 GOTO CSH

;********************************************

;开始检测并储存外界输入

LOOP
 CLRF PIR1  ;清 RCIF
 CLRF COUNTER
  MOV LW 30H
  MOV WF FSR
 BCF PIR1,RCIF
JIESHU NOP
LRC BTFSS PIR1,RCIF
 GOTO LRC
  MOV F RCREG,W
 SUBLW "\r"  ;与 Enter 对应的 ASCII 码比较
 BTFSC STATUS,Z
 GOTO WTPD  ;按了回车键,转判断子程序
  MOV F RCREG,W
 SUBLW "\b"  ;与退格键 BacksPACe 对应的 ASCII 码比较
 BTFSC STATUS,Z
 GOTO TUIGE  ;按了退格键,转退格处理
  MOV F RCREG,W
 CALL FASONG
  MOV WF INDF
 INCF FSR
 GOTO LRC

;********************************************

;退格处理子程序
TUIGE    
  MOV F RCREG,W
 CALL FASONG
 DECF FSR
 GOTO LRC

;********************************************

;问题判断子程序

WTPD
  MOV F RCREG,W
  MOV WF INDF

;********************************************
;和第一个问题进行比较

PD1
 CLRF COUNTER
  MOV LW 30H
  MOV WF FSR
LP1
  MOV F COUNTER,W
; BSF PCLATH,1
 BSF PCLATH,0
 CALL TAB1
 BCF PCLATH,0
; BCF PCLATH,1
 SUBWF INDF,W  ;查表所得的数据与 INDF 的内容相减,结果送 W
 BTFSS STATUS,Z
 GOTO PD2  ;内容不符,转 PD2 判断
 INCF FSR  ;内容相符,数据存储地址加一
 INCF COUNTER
  MOV F COUNTER,W
 SUBLW .17  ;判断是否已到第一个问题的 17 个字符数
 BTFSS STATUS,Z
 GOTO LP1  ;没到,继续第一个问题的判断
  MOV LW "\r"  ; Enter ??
 SUBWF INDF,W
 BTFSS STATUS,Z
 GOTO CUOWU2  ;不相等,后面还有内容,转到错误提示2
 CLRF COUNTER
 GOTO HD1  ;转到回答1

;********************************************
;和第二个问题进行比较

PD2
 CLRF COUNTER
  MOV LW 30H
  MOV WF FSR
LP2
  MOV F COUNTER,W
; BSF PCLATH,1
 BSF PCLATH,0
 CALL TAB2
 BCF PCLATH,0
; BCF PCLATH,1
 SUBWF INDF,W  ;查表所得的数据与 INDF 的内容相减,结果送 W
 BTFSS STATUS,Z
 GOTO PD3  ;内容不符,转 PD3 判断
 INCF FSR  ;内容相符,数据存储地址加一
 INCF COUNTER
  MOV F COUNTER,W
 SUBLW .16  ;判断是否已到第一个问题的 16 个字符数
 BTFSS STATUS,Z
 GOTO LP2  ;没到,继续第一个问题的判断
  MOV LW "\r"  ; Enter ??
 SUBWF INDF,W
 BTFSS STATUS,Z
 GOTO CUOWU2  ;不相等,后面还有内容,转到错误提示2
 CLRF COUNTER
 GOTO HD2  ;转到回答2 

;********************************************
;和第三个问题进行比较

PD3
 CLRF COUNTER
  MOV LW 30H
  MOV WF FSR
LP3
  MOV F COUNTER,W
; BSF PCLATH,1
 BSF PCLATH,0
 CALL TAB3
 BCF PCLATH,0
; BCF PCLATH,1
 SUBWF INDF,W  ;查表所得的数据与 INDF 的内容相减,结果送 W
 BTFSS STATUS,Z
 GOTO PD4  ;内容不符,转 PD4 判断
 INCF FSR  ;内容相符,数据存储地址加一
 INCF COUNTER
  MOV F COUNTER,W
 SUBLW .20  ;判断是否已到第一个问题的 20 个字符数
 BTFSS STATUS,Z
 GOTO LP3  ;没到,继续第一个问题的判断
  MOV LW "\r"  ; Enter ??
 SUBWF INDF,W
 BTFSS STATUS,Z
 GOTO CUOWU2  ;不相等,后面还有内容,转到错误提示2
 CLRF COUNTER
 GOTO HD3  ;转到回答3

;********************************************
;和第四个问题进行比较

PD4
 CLRF COUNTER
  MOV LW 30H
  MOV WF FSR
LP4
  MOV F COUNTER,W
; BSF PCLATH,1
 BSF PCLATH,0
 CALL TAB4
 BCF PCLATH,0
; BCF PCLATH,1
 SUBWF INDF,W  ;查表所得的数据与 INDF 的内容相减,结果送 W
 BTFSS STATUS,Z
 GOTO PD5  ;内容不符,转 PD5 判断
 INCF FSR  ;内容相符,数据存储地址加一
 INCF COUNTER
  MOV F COUNTER,W
 SUBLW .19  ;判断是否已到第一个问题的 19 个字符数
 BTFSS STATUS,Z
 GOTO LP4  ;没到,继续第一个问题的判断

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:暂无联系方式PIC单片机单片机-工控设备 - PIC单片机