⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.asm

📁 AD检测按键
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;**********************************************************************
;    Filename:	         自动进水.asm                                 *
;    Date:               2008.7.27                                    *
;    File Version:       1.0                                          *
;                                                                     *
;    Author:             刘新成                                       *
;    Company:                                                         *
;                                                                     *
;                 此程序的水位检测采用AD检测                          *
;**********************************************************************      
       
        LIST
; P16C73.INC  Standard Header File, Version 1.01    Microchip Technology, Inc.
        NOLIST

; This header file defines configurations, registers, and other useful bits of
; information for the PIC16C73 microcontroller.  These names are taken to match 
; the data sheets as closely as possible.  

; Note that the processor must be selected before this file is 
; included.  The processor may be selected the following ways:

;       1. Command line switch:
;               C:\ MPASM MYFILE.ASM /PIC16C73
;       2. LIST directive in the source file
;               LIST   P=PIC16C73
;       3. Processor Type entry in the MPASM full-screen interface

;==========================================================================
;
;       Revision History
;
;==========================================================================

;Rev:   Date:    Reason:

;1.01   05/17/96 Updated BADRAM map
;1.00   10/31/95 Initial Release

;==========================================================================
;
;       Verify Processor
;
;==========================================================================

        IFNDEF __16C73
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF

;==========================================================================
;
;       Register Definitions
;
;==========================================================================

W                            EQU     H'0000'
F                            EQU     H'0001'

;----- Register Files------------------------------------------------------

INDF                         EQU     H'0000'
TMR0                         EQU     H'0001'
PCL                          EQU     H'0002'
STATUS                       EQU     H'0003'
FSR                          EQU     H'0004'
PORTA                        EQU     H'0005'
PORTB                        EQU     H'0006'
PORTC                        EQU     H'0007'
PCLATH                       EQU     H'000A'
INTCON                       EQU     H'000B'
PIR1                         EQU     H'000C'
PIR2                         EQU     H'000D'
TMR1L                        EQU     H'000E'
TMR1H                        EQU     H'000F'
T1CON                        EQU     H'0010'
TMR2                         EQU     H'0011'
T2CON                        EQU     H'0012'
SSPBUF                       EQU     H'0013'
SSPCON                       EQU     H'0014'
CCPR1L                       EQU     H'0015'
CCPR1H                       EQU     H'0016'
CCP1CON                      EQU     H'0017'
RCSTA                        EQU     H'0018'
TXREG                        EQU     H'0019'
RCREG                        EQU     H'001A'
CCPR2L                       EQU     H'001B'
CCPR2H                       EQU     H'001C'
CCP2CON                      EQU     H'001D'
ADRES                        EQU     H'001E'
ADCON0                       EQU     H'001F'

OPTION_REG                   EQU     H'0081'
TRISA                        EQU     H'0085'
TRISB                        EQU     H'0086'
TRISC                        EQU     H'0087'
PIE1                         EQU     H'008C'
PIE2                         EQU     H'008D'
PCON                         EQU     H'008E'
PR2                          EQU     H'0092'
SSPADD                       EQU     H'0093'
SSPSTAT                      EQU     H'0094'
TXSTA                        EQU     H'0098'
SPBRG                        EQU     H'0099'
ADCON1                       EQU     H'009F'

;----- STATUS Bits --------------------------------------------------------

IRP                          EQU     H'0007'
RP1                          EQU     H'0006'
RP0                          EQU     H'0005'
NOT_TO                       EQU     H'0004'
NOT_PD                       EQU     H'0003'
Z                            EQU     H'0002'
DC                           EQU     H'0001'
C                            EQU     H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE                          EQU     H'0007'
PEIE                         EQU     H'0006'
T0IE                         EQU     H'0005'
INTE                         EQU     H'0004'
RBIE                         EQU     H'0003'
T0IF                         EQU     H'0002'
INTF                         EQU     H'0001'
RBIF                         EQU     H'0000'

;----- PIR1 Bits ----------------------------------------------------------

ADIF                         EQU     H'0006'
RCIF                         EQU     H'0005'
TXIF                         EQU     H'0004'
SSPIF                        EQU     H'0003'
CCP1IF                       EQU     H'0002'
TMR2IF                       EQU     H'0001'
TMR1IF                       EQU     H'0000'

;----- PIR2 Bits ----------------------------------------------------------

CCP2IF                       EQU     H'0000'

;----- T1CON Bits ---------------------------------------------------------

T1CKPS1                      EQU     H'0005'
T1CKPS0                      EQU     H'0004'
T1OSCEN                      EQU     H'0003'
NOT_T1SYNC                   EQU     H'0002'
T1INSYNC                     EQU     H'0002'    ; Backward compatibility only
TMR1CS                       EQU     H'0001'
TMR1ON                       EQU     H'0000'

;----- T2CON Bits ---------------------------------------------------------

TOUTPS3                      EQU     H'0006'
TOUTPS2                      EQU     H'0005'
TOUTPS1                      EQU     H'0004'
TOUTPS0                      EQU     H'0003'
TMR2ON                       EQU     H'0002'
T2CKPS1                      EQU     H'0001'
T2CKPS0                      EQU     H'0000'

;----- SSPCON Bits --------------------------------------------------------

WCOL                         EQU     H'0007'
SSPOV                        EQU     H'0006'
SSPEN                        EQU     H'0005'
CKP                          EQU     H'0004'
SSPM3                        EQU     H'0003'
SSPM2                        EQU     H'0002'
SSPM1                        EQU     H'0001'
SSPM0                        EQU     H'0000'

;----- CCP1CON Bits -------------------------------------------------------

CCP1X                        EQU     H'0005'
CCP1Y                        EQU     H'0004'
CCP1M3                       EQU     H'0003'
CCP1M2                       EQU     H'0002'
CCP1M1                       EQU     H'0001'
CCP1M0                       EQU     H'0000'

;----- RCSTA Bits ---------------------------------------------------------

SPEN                         EQU     H'0007'
RX9                          EQU     H'0006'
RC9                          EQU     H'0006'    ; Backward compatibility only
NOT_RC8                      EQU     H'0006'    ; Backward compatibility only
RC8_9                        EQU     H'0006'    ; Backward compatibility only
SREN                         EQU     H'0005'
CREN                         EQU     H'0004'
FERR                         EQU     H'0002'
OERR                         EQU     H'0001'
RX9D                         EQU     H'0000'
RCD8                         EQU     H'0000'    ; Backward compatibility only

;----- CCP2CON Bits -------------------------------------------------------

CCP2X                        EQU     H'0005'
CCP2Y                        EQU     H'0004'
CCP2M3                       EQU     H'0003'
CCP2M2                       EQU     H'0002'
CCP2M1                       EQU     H'0001'
CCP2M0                       EQU     H'0000'

;----- ADCON0 Bits --------------------------------------------------------

ADCS1                     EQU     H'0007'
ADCS0                     EQU     H'0006'
CHS2                      EQU     H'0005'
CHS1                      EQU     H'0004'
CHS0                      EQU     H'0003'
GO                        EQU     H'0002'
NOT_DONE                  EQU     H'0002'
GO_DONE                   EQU     H'0002'
ADON                      EQU     H'0000'

;----- OPTION Bits --------------------------------------------------------

NOT_RBPU                     EQU     H'0007'
INTEDG                       EQU     H'0006'
T0CS                         EQU     H'0005'
T0SE                         EQU     H'0004'
PSA                          EQU     H'0003'
PS2                          EQU     H'0002'
PS1                          EQU     H'0001'
PS0                          EQU     H'0000'

;----- PIE1 Bits ----------------------------------------------------------

ADIE                         EQU     H'0006'
RCIE                         EQU     H'0005'
TXIE                         EQU     H'0004'
SSPIE                        EQU     H'0003'
CCP1IE                       EQU     H'0002'
TMR2IE                       EQU     H'0001'
TMR1IE                       EQU     H'0000'

;----- PIE2 Bits ----------------------------------------------------------

CCP2IE                       EQU     H'0000'

;----- PCON Bits ----------------------------------------------------------

NOT_POR                      EQU     H'0001'

;----- SSPSTAT Bits -------------------------------------------------------

D                            EQU     H'0005'
I2C_DATA                     EQU     H'0005'
NOT_A                        EQU     H'0005'
NOT_ADDRESS                  EQU     H'0005'
D_A                          EQU     H'0005'
DATA_ADDRESS                 EQU     H'0005'
P                            EQU     H'0004'
I2C_STOP                     EQU     H'0004'
S                            EQU     H'0003'
I2C_START                    EQU     H'0003'
R                            EQU     H'0002'
I2C_READ                     EQU     H'0002'
NOT_W                        EQU     H'0002'
NOT_WRITE                    EQU     H'0002'
R_W                          EQU     H'0002'
READ_WRITE                   EQU     H'0002'
UA                           EQU     H'0001'
BF                           EQU     H'0000'

;----- TXSTA Bits ---------------------------------------------------------

CSRC                         EQU     H'0007'
TX9                          EQU     H'0006'
NOT_TX8                      EQU     H'0006'    ; Backward compatibility only
TX8_9                        EQU     H'0006'    ; Backward compatibility only
TXEN                         EQU     H'0005'
SYNC                         EQU     H'0004'
BRGH                         EQU     H'0002'
TRMT                         EQU     H'0001'
TX9D                         EQU     H'0000'
TXD8                         EQU     H'0000'    ; Backward compatibility only

;----- ADCON1 Bits --------------------------------------------------------

PCFG2                     EQU     H'0002'
PCFG1                     EQU     H'0001'
PCFG0                     EQU     H'0000'

;==========================================================================
;
;       RAM Definition
;
;==========================================================================

        __MAXRAM H'FF'
        __BADRAM H'08'-H'09'
        __BADRAM H'88'-H'89', H'8F'-H'91', H'95'-H'97', H'9A'-H'9E'

;==========================================================================
;
;       Configuration Bits
;
;==========================================================================

_CP_ALL                      EQU     H'3F8F'
_CP_75                       EQU     H'3F9F'
_CP_50                       EQU     H'3FAF'
_CP_OFF                      EQU     H'3FBF'
_PWRTE_ON                    EQU     H'3FBF'
_PWRTE_OFF                   EQU     H'3FB7'
_WDT_ON                      EQU     H'3FBF'
_WDT_OFF                     EQU     H'3FBB'
_LP_OSC                      EQU     H'3FBC'
_XT_OSC                      EQU     H'3FBD'
_HS_OSC                      EQU     H'3FBE'
_RC_OSC                      EQU     H'3FBF'

        LIST
;A0     
;A1     
;A2     泵输出
;A3     水位检测--采用AD转换
;A4     设置键
;A5     输出脉冲电压240ms周期4ms脉宽
;B0     b  上水指示
;B1     f  设定指示
;B2     e
;B3     d  手动上水指示
;B4     c
;B5     g
;B6     a
;B7     手动关水指示
;C0     手动上水
;C1     手动关水
;C2     E2数据
;C3     E2时钟
;C4     个位
;C5     十位
;C6     二极管公共端
;C7     百位   
;*********************************** 内存定义        
CHULI      EQU        20H        ;按键处理标志          
ANJSC      EQU        21H        ;按键检测3次处理
SHEZHI     EQU        22H        ;设置键按下
R1         EQU        23H        ;上水开键按下
R2         EQU        24H        ;上水关键按下
SHUIWEI    EQU        25H        ;水位寄存器
SHUIWEI1   EQU        26H        ;水位寄存器
SHUIWEI2   EQU        27H        ;水位寄存器
SHUIWEI3   EQU        28H        ;32次
EEPCNT     EQU        29H
EEPDATA    EQU        2AH
ZDSS       EQU        2BH        ;自动上水设置
ZDGS       EQU        2CH        ;自动关水设置
ZDSS1      EQU        2DH        ;自动上水设置
ZDGS1      EQU        2EH        ;自动关水设置
DINGS1     EQU        2FH
DINGS2     EQU        30H
CHULI1     EQU        31H 
SHANGSBZ   EQU        32H        ;上水标志
SHOUDBZ    EQU        33H        ;手动上水标志
QUESHUI    EQU        34H        ;少水标志
MANSHUI    EQU        35H        ;满水标志
XIANSHI    EQU        36H       
DCOUNT1    EQU        37H        ;AD转换延时
JDYS       EQU        38H        ;调高精度延时
ZHISHI     EQU        39H        ;4个指示灯
MSD        EQU        3AH        ;十进制十位
LSD        EQU        3BH        ;被转换数
LSD1       EQU        3CH        ;十进制个位
LSD2       EQU        3DH        ;十进制百位
JDYS1      EQU        3EH        ;调高精度延时
JDYS2      EQU        3FH        ;调高精度延时
JDYS3      EQU        40H        ;调高精度延时
JDYS4      EQU        41H        ;调高精度延时
GUANBZ     EQU        42H        ;检测是否达到设定值标志
JDYS11     EQU        43H        ;调高精度延时
JDYS22     EQU        44H        ;调高精度延时
JDYS33     EQU        45H        ;调高精度延时
JDYS44     EQU        46H        ;调高精度延时
;****************************************************
	  ORG    0000H
 	  GOTO   START
	  GOTO   START
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@	  
	  ORG    0004H	
;###################################################延时子程序
TIME5MS                        ;5毫秒延时
         MOVLW   D'50'
         MOVWF   DINGS1
TIME5MS1
         MOVLW   D'32'
         MOVWF   DINGS2
TIME5MS2
         DECFSZ    DINGS2,1
         GOTO      TIME5MS2
         DECFSZ    DINGS1
         GOTO      TIME5MS1
         RETLW     0
TIME3MS                        ;2.5毫秒延时
         MOVLW   D'25'
         MOVWF   DINGS1
TIME3MS1
         MOVLW   D'32'
         MOVWF   DINGS2
TIME3MS2
         DECFSZ    DINGS2,1
         GOTO      TIME3MS2
         DECFSZ    DINGS1
         GOTO      TIME3MS1
         RETLW     0 
TIME2MS                        ;2毫秒延时
         MOVLW   D'20'
         MOVWF   DINGS1
TIME2MS1
         MOVLW   D'32'
         MOVWF   DINGS2
TIME2MS2
         DECFSZ    DINGS2,1
         GOTO      TIME2MS2
         DECFSZ    DINGS1
         GOTO      TIME2MS1
         RETLW     0 
;#####################################
TABLE                               ;显示转换
        ADDWF    PCL,1
        RETLW    H'2F'              ;0
        RETLW    H'11'              ;1
        RETLW    H'6E'              ;2
        RETLW    H'79'              ;3
        RETLW    H'33'              ;4
        RETLW    H'7A'              ;5
        RETLW    H'7E'              ;6
        RETLW    H'51'              ;7
        RETLW    H'7F'              ;8
        RETLW    H'7B'              ;9    
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        
TABLE1                               ;显示转换
        ADDWF    PCL
        RETLW    H'F3'              ;0
        RETLW    H'90'              ;1
        RETLW    H'C7'              ;2
        RETLW    H'D5'              ;3
        RETLW    H'B4'              ;4
        RETLW    H'75'              ;5
        RETLW    H'77'              ;6
        RETLW    H'D0'              ;7
        RETLW    H'F7'              ;8
        RETLW    H'F5'              ;9              
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          
BCDZH                           ;BCD转换
       CLRF   MSD
       CLRF   LSD1 
       CLRF   LSD2 
GTENTH
       MOVLW  D'100'
       SUBWF  LSD,0
       BTFSS  STATUS,0
       GOTO   OVER
       MOVWF  LSD
       INCF   LSD2,1
       GOTO   GTENTH
OVER   
       MOVLW  D'10'
       SUBWF  LSD,0
       BTFSS  STATUS,0
       GOTO   OVER1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -