📄 mainn.asm
字号:
CALL TABLE
MOVWF PORTC
BCF PORTB,3
CALL DELAY5MS
BSF PORTB,3
MOVF R2,0
CALL TABLE
MOVWF PORTC
BCF PORTB,2
CALL DELAY5MS
BSF PORTB,2
RETURN
===================================FENZHONG显示程序====================
DISP_3 MOVF MI,0
MOVLW 0X0F
ANDWF MI,0
MOVWF R1
MOVLW 0XF0
ANDWF MI,0
MOVWF R2
MOVF R1,0
CALL TABLE
MOVWF PORTC
BCF PORTC,7
CALL DELAY5MS
BSF PORTB,7
MOVF R2,0
CALL TABLE
MOVWF PORTC
BCF PORTB,4
CALL DELAY5MS
BSF PORTB,4
RETURN
;--------------------------------------
r8563 acall iicstart
movlw,0xa2h
acall iicwbyte
movlw,0x03h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa3h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf dm
;--------------hour-----
acall iicstart
movlw,0xa2h
acall iicwbyte
movlw,0x04h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa3h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf dh
return
;--------------------读温度和时间段设置值-----------
r2401 acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x01h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tpre
;-----1o------------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x02h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre1oh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x03h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre1om
;----1f--------------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x04h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre1fh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x05h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre1fm
;-----------2o---------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x06h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre2oh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x07h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre2om
;----------2f--------------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x08h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre2fh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x09h
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre2fm
;-----------3o---------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x0ah
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre3oh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x0bh
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre3om
;----------3f--------------
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x0ch
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre3fh
acall iicstart
movlw,0xa0h
acall iicwbyte
movlw,0x0dh
acall iicwbyte
nop
nop
acall iicstart
movlw,0xa1h
acall iicwbyte
acall iicrbyte
acall iicstop
nop
nop
nop
movwf tipre3fm
return
;----------------------------------
iicstart bsf status,rp0
bcf trisa,3
bcf status,rp0
bcf SCL
NOP
nop
bsf SDA
NOP
nop
bsf SCL
nop
nop
bcf SDA
nop
nop
bcf SCL
nop
nop
return
;/----------停止IIC总线--------/
iicstop bsf status,rp0
bcf trisa,3
bcf status,rp0
bcf SCL
NOP
nop
bcf SDA
NOP
nop
bsf SCL
nop
nop
bsf SDA
nop
nop
bcf SCL
return
;/--------向IIC总线写8bit数据--------/
iicwbyte bsf status,rp0
bcf trisa,3
bcf status,rp0
movwf temp
nop
movlw,08h
movwf count
bcf status , c
wnextbit bcf SCL
NOP
NOP
rlf temp,1
btfss status,c
goto zl
bsf SDA
goto jx
zl bcf SDA
jx nop
nop
bsf SCL
nop
nop
decfsz count,1
goto wnextbit
nop
nop
moreack bcf SCL
nop
nop
nop
bsf Scl
nop
nop
nop
bsf status,rp0
bsf trisa,3
bcf status,rp0
ggk btfsc sda
goto ggk
nop
nop
bcf SCL
nop
nop
return
;/------从IIC总线上读8bit数据子程序----/
iicrbyte clrf temp
movlw 08h
movwf count
rnextbit bcf scl
nop
nop
nop
bsf SCL
nop
nop
nop
bsf status,rp0
bsf trisa,3
bcf status,rp0
btfsc SDA
goto zy
bcf status,c
goto ssh
zy bsf status,c
ssh rlf temp,1
nop
nop
decfsz count,1
goto rnextbit
nop
bcf SCL
nop
nop
bsf status,rp0
bsf trisa,3
bcf status,rp0
bsf SDA
nop
nop
bsf SCL
nop
nop
nop
movf temp
return
;-------------实时温度采集-------------
RELTAD BSF STATUS,RP0
MOVLW 0X0BH
MOVWF TRISA
MOVLW 0X04H
MOVWF ADCON1
BCF STATUS,RP0
MOVLW 0X40H
MOVWF ADCON0
BSF ADCON0,ADON
;----------------------------
MOVLW 0X10H
MOVWF COUNT1
JSYS DECFSZ COUNT1,1
GOTO JSYS
BSF ADCON0,GO
DDWC ACALL DISP
BTFSC ADCON0,GO
GOTO DDWC
MOVF ADRES,0
MOVWF ADTEMP
RETURN
;------------温度处理--------
TDEAL RETURN
;----------------------------
;-------------------键盘中断处理-------------
INTPRO MOVWF W_STACK
SWAPF STATUS,W
CLRF STATUS
MOVWF ST_STACK
BTFSS INTCON,RBIF
GOTO INTEND
BTFSC PROTB,5 ;IF SET KEY
GOTO NEXTP ;NO ,IF ELSE OTHER KEY
BTFSC FLAG,UDF ;SET KEY PRESSED
GOTO CCSZ ;SET KEY AS ENTER AFTER UP OR DOWN KEY PRESSED
INCF SETCOUNT,1 ;STE KEY AS SELECT KEY
MOVLW 0X0FH
SUBWF SETCOUNT,W ;IF SET TIME >9,SETCOUNT=1
BTFSS STATUS,C
GOTO ZCJS
MOVLW 0X01H
MOVWF SETCOUNT
ZCJS BSF FLAG SETF
MOVF SETCOUNT,W
MOVWF SETCOUNTT
DECF SETCOUNTT,1 ;ACCORDING SET PRESS TIMES TO SUBGRAM
BTFSC STATUS ,Z
GOTO WDSZ ;=1 SET PRE TEMPRETURE
DECF SETCOUNTT,1
BTFSC STATUS ,Z
GOTO ONEOSETH ;=2 SET 1O H TIME
DECF SETCOUNTT,1
BTFSC STATUS ,Z
GOTO ONEOSETM ;=3 SET 1O M TIME
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -