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

📄 aaa1-87g1.asm

📁 PIC16F74单片机A/D10位模拟量采集,12864LCD汉显,显示4位数带小数点
💻 ASM
📖 第 1 页 / 共 5 页
字号:


	list      p=16f877A          ; list directive to define processor
	;_config	0x01
	#include  P16f877A.inc        ; processor specific variable definitions
	;**********************************************************************
	 __CONFIG  _PWRTE_ON & _WDT_OFF & _HS_OSC &_BODEN_OFF &_CP_ALL

R0	    	EQU	0x20
AD1TEMP		EQU	0x30
AD2TEMP		EQU	0x31
AD3TEMP		EQU	0x32
AD4TEMP		EQU	0x33
AD5TEMP		EQU	0x34
AD6TEMP         EQU     0X6A
AD7TEMP         EQU     0X6B
AD8TEMP         EQU     0X6C
AD9TEMP         EQU     0X6D
SR1             EQU     0X6E
SR2             EQU     0X6F
TEMP		EQU	0x35
cmd		EQU	0x36
dis_data	EQU	0x37
Reg1		EQU	0x38
R3		EQU	0x39
R4		EQU	0x3A
R1		EQU	0x3B
R5		EQU	0x3C
DISADDRH	EQU	0x3D
DISADDRL	EQU	0x3E

AD1TEMPA        EQU     0x44
AD2TEMPA        EQU     0x45
AD3TEMPA        EQU     0x46
AD4TEMPA        EQU     0x47
AD5TEMPA        EQU     0x48

AD6TEMPA        EQU     0x49
AD7TEMPA        EQU     0x52
AD8TEMPA        EQU     0x53
AD9TEMPA        EQU     0x54

DIS_STY         EQU     0x40
DIS_STX         EQU     0x41
DIS_XNUM        EQU     0x42
DIS_YNUM        EQU     0x43
YS_KEY1         EQU     0x50

XS_HUAM         EQU     0x56
XS_PAGE         EQU     0x57

LS_XSN          EQU     0x58
LS_XSY          EQU     0x59
LS_XSX          EQU     0x5A
CHG_N1          EQU     0x5B
CHG_N2          EQU     0x5C
CHG_N3          EQU     0x5D
JS1             EQU     0X5E
JS2             EQU     0X5F
JS3             EQU     0X51
TAB_L0          EQU     0x60

TAB_L1          EQU     0x61
TAB_L2          EQU     0x62
TAB_L3          EQU     0x63
TAB_L4          EQU     0x64
TAB_L5          EQU     0x65
TAB_L6          EQU     0x66
TAB_L7          EQU     0x67
RSY             EQU     0X69

BAT_01          EQU     0x70
BAT_02          EQU     0x71
BAT_03          EQU     0x72
BAT_04          EQU     0x73
BAT_01A         EQU     0x74
BAT_02A         EQU     0x75
BAT_03A         EQU     0x76
BAT_04A         EQU     0x77
JRS1            EQU     0X78
JRS2            EQU     0X79
JRS3            EQU     0X7A
JRS4            EQU     0X7B
JRS5            EQU     0X7C
JRS6            EQU     0X7D
JRS7            EQU     0X7E
JRS8            EQU     0X7F
JRS9            EQU     0X21
LCD_CS1		EQU	H'0003'
LCD_CS0		EQU	H'0007'
LCD_DI		EQU	H'0004'
LCD_E		EQU	H'0002'
LCD_RW		EQU	H'0005'
PG0             EQU     H'0000'
PG1             EQU     H'0001'
PG2             EQU     H'0002'
PG3             EQU     H'0003'
PG4             EQU     H'0004'
PG5             EQU     H'0005'
BW              EQU     H'0004'

K_AJ            EQU     H'0003'

	org	0x0000
	clrf    PCLATH            ; ensure page bits are claared
  	goto    main              ; go to beginning of program

	ORG	0x0010
main
	BCF	INTCON,GIE
	BCF	STATUS,IRP
	BCF	STATUS,RP1
;set bank 1 register
	BSF	STATUS,RP0
	MOVLW	0x02
	MOVWF	PCON
	MOVLW	0x8F
	MOVWF	OPTION_REG
	MOVLW	0x02
	MOVWF	ADCON1
	MOVLW	0xFF
	MOVWF	TRISA
	MOVLW	0x00
	MOVWF	TRISB
	MOVLW	0x03
	MOVWF	TRISC
	MOVLW	0xF8
	MOVWF	TRISD
    MOVLW   0x00      ;  0X07
    MOVWF   TRISE
;set bank 0 register
    	BCF	STATUS,RP0
        MOVLW   0xEF
        MOVWF   PORTA
        CLRF	PORTB
        CLRF    PORTC
        MOVLW   0xF8
        MOVWF   PORTD
        MOVLW   0xF0
        MOVWF   PORTE
        MOVLW	0x31
    	MOVWF	T1CON
        CLRF    XS_PAGE
        MOVLW   0x0F
        MOVWF   YS_KEY1
	CLRF	AD1TEMPA
	CLRF 	AD2TEMPA
	CLRF	AD3TEMPA
	CLRF	AD4TEMPA
	CLRF	AD5TEMPA
    CLRF	AD6TEMPA
	CLRF 	AD7TEMPA
	CLRF	AD8TEMPA
	CLRF	AD9TEMPA
    CLRF    JS1
	CLRF	AD1TEMP
	CLRF 	AD2TEMP
	CLRF	AD3TEMP
	CLRF	AD4TEMP
	CLRF	AD5TEMP
    CLRF 	AD6TEMP
	CLRF	AD7TEMP
	CLRF	AD8TEMP
	CLRF	AD9TEMP
    CLRF    SR1
    CLRF    SR2
          MOVLW   0x30
        MOVWF   BAT_01
        MOVLW   0x60
        MOVWF   BAT_02
        MOVLW   0x90
        MOVWF   BAT_03
        MOVLW   0x30
        MOVWF   BAT_01A
        MOVLW   0x30
        MOVWF   BAT_02A
        MOVLW   0x30
        MOVWF   BAT_03A

;open timer1 interrupt
;	BSF	STATUS,RP0    ;SET 0 PEGE--IF EFA
;	BSF	PIE1,TMR1IE
;	BSF	INTCON,PEIE
;	BSF	INTCON,GIE
;	BCF	STATUS,RP0
;************************************
	MOVLW	0xE8
	MOVWF	DISADDRL
	MOVLW	0x03
	MOVWF	DISADDRH
	CALL	init
	CALL    DELAY
	CALL	clearStreen
    CLRF    XS_PAGE
        NOP
        NOP
        NOP
PROG_BEG
        GOTO    ZY4         ;TEST USE
        BTFSC   PORTD,4
        GOTO    ZY2
        CALL    DELAY2
        CALL    DELAY2
        BTFSC   PORTD,4
        GOTO    ZY2
        GOTO    GO1
GO1
        BTFSC   PORTD,4
        GOTO    GO2
        GOTO    GO1      ;   at time for test,off;but time for use
GO2
        BTFSC   PORTD,0    ; must on
        GOTO    ZY3
ZY1     BSF     PORTD,0
        GOTO    ZY2
ZY3
        BCF     PORTD,0
        GOTO     ZY2
        NOP
ZY2
        BTFSC   PORTD,5
        GOTO    ZY4
        CALL    DELAY2
        CALL    DELAY2
        BTFSC   PORTD,5
        GOTO    ZY4
GO3
        BTFSC   PORTD,5
        GOTO    G04
        GOTO    GO3   ;     at time for test,off;but time for use 
G04
        BTFSC   PORTD,1    ;must on 
        GOTO    ZY5
ZY6     BSF     PORTD,1
        GOTO    ZY4
ZY5
        BCF     PORTD,1
        GOTO     ZY4
        NOP
ZY4
        GOTO    AD_CHG1

        NOP
        NOP

AD_CHG1

        CALL    DELAY
        MOVLW   0xC1
        MOVWF   ADCON0
        CALL    DELAY
        BSF     ADCON0,GO
AD_WAIT1
        CALL    DELAY
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT1
U0_IN
        MOVFW   ADRESH
        ADDWF   AD7TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET7N
        RRF     AD7TEMPA,1
        BSF     AD7TEMPA,7
        GOTO    U7_END
        NOP
AD_SET7N
        RRF     AD7TEMPA,1
        BCF     AD7TEMPA,7
U7_END
        MOVFW   AD7TEMPA
        MOVWF   JRS7
        NOP
        CALL    DELAY1
       
        MOVFW   JRS7

        MOVWF   AD7TEMP
    
AD_CHG2
        CALL    DELAY
        MOVLW   0xC9
        MOVWF   ADCON0
        CALL    DELAY
        BSF     ADCON0,GO
AD_WAIT2
        CALL    DELAY
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT2
        MOVFW   ADRESH
U8_IN
        MOVFW   ADRESH
        ADDWF   AD8TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET8N
        RRF     AD8TEMPA,1
        BSF     AD8TEMPA,7
        GOTO    U8_END
        NOP
AD_SET8N
        RRF     AD8TEMPA,1
        BCF     AD8TEMPA,7
U8_END
        MOVFW   AD8TEMPA
        MOVWF   JRS8
        NOP
        CALL    DELAY1
        MOVFW   JRS8
        MOVWF   AD8TEMP
AD_CHG9
        CALL    DELAY
        MOVLW   0xD1
        MOVWF   ADCON0
        CALL    DELAY
        BSF     ADCON0,GO
AD_WAIT9
        CALL    DELAY
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT9
U0_IN9
        MOVFW   ADRESH
        ADDWF   AD9TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET9N
        RRF     AD9TEMPA,1
        BSF     AD9TEMPA,7
        GOTO    U9_END
        NOP
AD_SET9N
        RRF     AD9TEMPA,1
        BCF     AD9TEMPA,7
U9_END
        MOVFW   AD9TEMPA
        MOVWF   JRS9
        NOP
        CALL    DELAY1
     
        MOVFW   JRS9
        MOVWF   AD9TEMP
AD_CHG5
        CALL    DELAY
        MOVLW   0xD9
     ;   MOVLW   0XE1
        MOVWF   ADCON0
        CALL    DELAY
        BSF     ADCON0,GO
AD_WAIT5
        CALL    DELAY
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT5
        MOVFW   ADRESH
        NOP
        NOP
UA_IN
        BCF     PORTE,0
        BCF     PORTE,1
        BCF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
        ADDWF   AD1TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SETAN
        RRF     AD1TEMPA,1
        BSF     AD1TEMPA,7
        GOTO    UA_END
        NOP
AD_SETAN
        RRF     AD1TEMPA,1
        BCF     AD1TEMPA,7
UA_END
        MOVFW   AD1TEMPA
        MOVWF   JRS1
        NOP
;        CALL    DELAY1
        CALL    DELAY3
        MOVFW   JRS1
        MOVWF   AD1TEMP
UB_IN
        BSF     PORTE,0
        BCF     PORTE,1
        BCF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
        ADDWF   AD2TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SETBN
        RRF     AD2TEMPA,1
        BSF     AD2TEMPA,7
        GOTO    UB_END
        NOP
AD_SETBN
        RRF     AD2TEMPA,1
        BCF     AD2TEMPA,7
UB_END
        MOVFW   AD2TEMPA
        MOVWF   JRS2
        NOP
 ;       CALL    DELAY1
        CALL    DELAY3
        MOVFW   JRS2
        MOVWF   AD2TEMP

UC_IN
        BCF     PORTE,0
        BSF     PORTE,1
        BCF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
         ADDWF   AD3TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SETCN
        RRF     AD3TEMPA,1
        BSF     AD3TEMPA,7
        GOTO    UC_END
        NOP
AD_SETCN
        RRF     AD3TEMPA,1
        BCF     AD3TEMPA,7
UC_END
        MOVFW   AD3TEMPA
        MOVWF   JRS3
        NOP
 ;       CALL    DELAY1
        CALL    DELAY3
        MOVFW   JRS3
        MOVWF   AD3TEMP

UA_OUT
        BSF     PORTE,0
        BSF     PORTE,1
        BCF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
        ADDWF   AD4TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_OTAN
        RRF     AD4TEMPA,1
        BSF     AD4TEMPA,7
        GOTO    UAO_END
        NOP
AD_OTAN
        RRF     AD4TEMPA,1
        BCF     AD4TEMPA,7
UAO_END
        MOVFW   AD4TEMPA
        MOVWF   JRS4
        NOP
        CALL    DELAY3
 ;       CALL    DELAY1
        MOVFW   JRS4
        MOVWF   AD4TEMP
UB_OUT
        BCF     PORTE,0
        BCF     PORTE,1
        BSF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
          ADDWF   AD5TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_OTBN
        RRF     AD5TEMPA,1
        BSF     AD5TEMPA,7
        GOTO    UBO_END
        NOP
AD_OTBN
        RRF     AD5TEMPA,1
        BCF     AD5TEMPA,7
UBO_END
        MOVFW   AD5TEMPA
        MOVWF   JRS5
        NOP
;       CALL    DELAY1
        CALL    DELAY3
        MOVFW   JRS5
        MOVWF   AD5TEMP
UC_OUT
        BSF     PORTE,0
        BCF     PORTE,1
        BSF     PORTE,2
        CALL    DELAY
        MOVFW   ADRESH
          ADDWF   AD6TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_OTCN
        RRF     AD6TEMPA,1
        BSF     AD6TEMPA,7
        GOTO    UCO_END
        NOP
AD_OTCN
        RRF     AD6TEMPA,1
        BCF     AD6TEMPA,7
UCO_END
        MOVFW   AD6TEMPA
        MOVWF   JRS6
        NOP
 ;       CALL    DELAY1
        CALL    DELAY3
        MOVFW   JRS6
        MOVWF   AD6TEMP
       ; BSF     PORTE,0
NEXT1
        NOP
        NOP
        BTFSC    PORTD,K_AJ
        GOTO     XS_HM
        CALL     DELAY3
    ;    BTFSC    PORTD,K_AJ
    ;    GOTO     XS_HM    
        GOTO     XS_G1
XS_G1
        BTFSC    PORTD,K_AJ
        GOTO     XS_G2
        GOTO     XS_G1
XS_G2
        CALL     clearStreen
        MOVFW    XS_PAGE
        ANDLW    0X1F
        MOVWF    XS_PAGE
        BCF      STATUS,C

        RLF      XS_PAGE,1
        NOP
      
XS_HM
        MOVFW   XS_PAGE
        ANDLW   0X1F
        BTFSC   XS_PAGE,PG0
        GOTO    PG_XS1
        NOP
        BTFSC   XS_PAGE,PG1
        GOTO    PG_XS2
        NOP
        BTFSC   XS_PAGE,PG2

        GOTO    PG_XS3
        NOP
        BTFSC   XS_PAGE,PG3
        GOTO    PG_XS4

⌨️ 快捷键说明

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