📄 ad.asm
字号:
;**********************************************************************
; 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 + -