📄 10hz.asm
字号:
LIST P=16F72;F=INHX8M
#INCLUDE P16F72.inc
ORG 0x0000
GOTO MAIN
ORG 0X04
BTFSS PIR1,TMR1IF
RETURN
MOVWF W_TEMP
SWAPF STATUS,0
CLRF STATUS
MOVWF ST_TEMP
CALL HZ10HZ
BCF PIR1,TMR1IF
SWAPF ST_TEMP,0
MOVWF STATUS
SWAPF W_TEMP,1
SWAPF W_TEMP,0
RETFIE
CBLOCK 0X20
ADDR ;EQU 0X21 ;温度地址2401中00H为温度值,01H为小时;02H为分钟
TEMP ;EQU 0X22
DAT ;EQU 0X23
BZD
BZD1
SHU1O ;EQU 0X24 ;第一次开机寄存器
SHU1F ;EQU 0X25 ;第一次关机寄存器
SHU2O ;EQU 0X26 ;第二次开机寄存器
SHU2F ;EQU 0X27 ;第二次关机寄存器
SHU3O ;EQU 0X28 ;第三次开机寄存器
SHU3F ;EQU 0X29 ;第三次关机寄存器
SHUTIME ;EQU 0X2A ;时钟寄存器
SHUMIN ;EQU 0X2B ;分钟寄存器
SHUWD ;EQU 0X2C ;温度寄存器
WENDU ;EQU 0X2D ;温度暂存器
WENDU1
WENDU2
TSP
TI ;EQU 0X2E ;小时暂存器
MI ;EQU 0X2F ;分钟暂存器
SHU1OT ;EQU 0X30
SHU2OT ;EQU 0X31
SHU3OT ;EQU 0X32
SHU1OM ;EQU 0X33
SHU2OM ;EQU 0X34
SHU3OM ;EQU 0X35
SHU1FT ;EQU 0X36
SHU2FT ;EQU 0X37
SHU3FT ;EQU 0X38
SHU1FM ;EQU 0X39
SHU2FM ;EQU 0X3A
SHU3FM ;EQU 0X3B
R1 ;EQU 0X3C
R2 ;EQU 0X3D
R3 ;EQU 0X3E
R4 ;EQU 0X3F
R5 ;EQU 0X40
R6 ;EQU 0X41
R7 ;EQU 0X42
BJ15S ;EQU 0X43
WENDU2401
BJWENDU
COUNT
FIRON
SECON
THIRON
FIROFF
SECOFF
THIROFF
TIMESET
BJ15SH
SS50
R10
R11
R9
R100
W_TEMP
ST_TEMP
CONT
HZFLAG
F1
ENDC
;#DEFINE BZ
CONSTANT LOWF=0
CONSTANT ST=1
CONSTANT BZSET=0
CONSTANT BZSET1=1
CONSTANT BZOK=2
CONSTANT BZD1F=0
CONSTANT BZD1S=1
CONSTANT BZD1T=2
CONSTANT BZD1ALL=3
CONSTANT WDBJ=4
CONSTANT BZD3ALL=5
CONSTANT WDXIAO=6
CONSTANT YYD=7
#define SDA PORTA,3
#define SCLK PORTA,1
;50H.1 SHIJIANPANDUAN
;50H.2 WENDUBIJIAOBIAOZHI
ORG 0X12
TABLE ADDWF PCL,1
RETLW 0xBF ;0
RETLW 0x86 ;1
RETLW 0xDB ;2
RETLW 0xCF ;3
RETLW 0xE6 ;4
RETLW 0xED ;5
RETLW 0xFD ;6
RETLW 0x87 ;7
RETLW 0xFF ;8
RETLW 0xEF ;9
;RETLW 0XB7 ;A
;RETLW 0XFF ;B
;RETLW 0XB9 ;C
;RETLW 0XBF ;D
;RETLW 0XF9 ;E
RETLW 0XDC ;O
RETLW 0XF1 ;F
RETLW 0XF6 ;H
RETLW 0XC0 ;-
RETURN
ORG 0X27
TABLE_T ADDWF PCL,1
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0X01
RETLW 0X01
RETLW 0X02
RETLW 0X03
RETLW 0X04
RETLW 0X04
RETLW 0X05
RETLW 0X05
RETLW 0X06
RETLW 0X06
RETLW 0X07
RETLW 0X08
RETLW 0X08
RETLW 0X09
RETLW 0X09
RETLW 0X10
RETLW 0X10
RETLW 0X10
RETLW 0X11
RETLW 0X11
RETLW 0X11
RETLW 0X12
RETLW 0X12
RETLW 0X13
RETLW 0X13
RETLW 0X14
RETLW 0X14
RETLW 0X15
RETLW 0X15
RETLW 0X16
RETLW 0X16
RETLW 0X17
RETLW 0X18
RETLW 0X18
RETLW 0X19
RETLW 0X20
RETLW 0X21
RETLW 0X22
RETLW 0X23
RETLW 0X24
RETLW 0X25
RETLW 0X25
RETLW 0X26
RETLW 0X26
RETLW 0X27
RETLW 0X27
RETLW 0X28
RETLW 0X29
RETLW 0X29
RETLW 0X30
RETLW 0X30
RETLW 0X30
RETLW 0X31
RETLW 0X31
RETLW 0X31
RETLW 0X32
RETLW 0X32
RETLW 0X32
RETLW 0X33
RETLW 0X33
RETLW 0X33
RETLW 0X34
RETLW 0X34
RETLW 0X34
RETLW 0X35
RETLW 0X35
RETLW 0X35
RETLW 0X36
RETLW 0X36
RETLW 0X36
RETLW 0X36
RETLW 0X37
RETLW 0X37
RETLW 0X37
RETLW 0X38
RETLW 0X38
RETLW 0X38
RETLW 0X39
RETLW 0X39
RETLW 0X39
RETLW 0X40
RETLW 0X40
RETLW 0X41
RETLW 0X42
RETLW 0X42
RETLW 0X43
RETLW 0X43
RETLW 0X44
RETLW 0X44
RETLW 0X44
RETLW 0X45
RETLW 0X45
RETLW 0X45
RETLW 0X46
RETLW 0X46
RETLW 0X47
RETLW 0X47
RETLW 0X47
RETLW 0X48
RETLW 0X48
RETLW 0X48
RETLW 0X48
RETLW 0X48
RETLW 0X49
RETLW 0X49
RETLW 0X50
RETLW 0X50
RETLW 0X51
RETLW 0X51
RETLW 0X52
RETLW 0X52
RETLW 0X53
RETLW 0X53
RETLW 0X54
RETLW 0X54
RETLW 0X55
RETLW 0X55
RETLW 0X56
RETLW 0X56
RETLW 0X57
RETLW 0X57
RETLW 0X58
RETLW 0X58
RETLW 0X59
RETLW 0X59
RETLW 0X60
RETLW 0X60
RETLW 0X61
RETLW 0X61
RETLW 0X62
RETLW 0X63
RETLW 0X63
RETLW 0X64
RETLW 0X64
RETLW 0X64
RETLW 0X65
RETLW 0X65
RETLW 0X66
RETLW 0X66
RETLW 0X67
RETLW 0X67
RETLW 0X68
RETLW 0X68
RETLW 0X69
RETLW 0X70
RETLW 0X70
RETLW 0X70
RETLW 0X71
RETLW 0X71
RETLW 0X72
RETLW 0X72
RETLW 0X73
RETLW 0X73
RETLW 0X74
RETLW 0X74
RETLW 0X75
RETLW 0X75
RETLW 0X76
RETLW 0X77
RETLW 0X77
RETLW 0X78
RETLW 0X78
RETLW 0X79
RETLW 0X79
RETLW 0X80
RETLW 0X80
RETLW 0X81
RETLW 0X81
RETLW 0X82
RETLW 0X83
RETLW 0X83
RETLW 0X84
RETLW 0X84
RETLW 0X85
RETLW 0X85
RETLW 0X86
RETLW 0X87
RETLW 0X87
RETLW 0X88
RETLW 0X88
RETLW 0X89
RETLW 0X89
RETLW 0X90
RETLW 0X90
RETLW 0X91
RETLW 0X91
RETLW 0X92
RETLW 0X93
RETLW 0X94
RETLW 0X95
RETLW 0X96
RETLW 0X96
RETLW 0X97
RETLW 0X97
RETLW 0X98
RETLW 0X98
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETLW 0X99
RETURN
ORG 0X012D
MAIN BSF STATUS,RP0
MOVLW 0X00
MOVWF TRISC ;C口定义为输出RC0-RC6为数码管A-G段,RC7为分钟低位位选W6
MOVLW 0XE0
MOVWF TRISB ;RB0为温度高位位选W1,RB1为温度低位位选W2,RB2为小时高位
;RB3为小时低位,RB4为分钟高位,RB5=SET,RB6=UP,RB7=DOWN
MOVLW 0x00
MOVWF OPTION_REG
MOVLW 0XFF
MOVWF ADCON1
MOVLW 0X10;;;;;;;0X00
MOVWF TRISA
CLRF PIE1
BCF STATUS,RP0
CLRF PIR1
CLRF TMR1L
CLRF TMR1H
CLRF HZFLAG
CLRF F1
CLRF CONT
MOVLW 0X00
MOVWF T2CON
MOVLW 0XFF
MOVWF PORTC
MOVLW 0XFF
MOVWF PORTB
MOVLW 0X00
MOVWF INTCON
MOVLW 0X40
MOVWF ADCON0 ;FOSC/8
CLRF PORTA
BSF PORTA,5
CLRF BZD
CLRF BZD1
CLRF BJ15S
CLRF BJ15SH
MOVLW 0X01
MOVWF SHUTIME
MOVWF SHUMIN
MOVWF SHUWD
CLRF WENDU
CLRF TI
CLRF MI
CLRF SS50
CLRF SHU1OT ;EQU 0X30
CLRF SHU2OT ;EQU 0X31
CLRF SHU3OT ;EQU 0X32
CLRF SHU1OM ;EQU 0X33
CLRF SHU2OM ;EQU 0X34
CLRF SHU3OM ;EQU 0X35
CLRF SHU1FT ;EQU 0X36
CLRF SHU2FT ;EQU 0X37
CLRF SHU3FT ;EQU 0X38
CLRF SHU1FM ;EQU 0X39
CLRF SHU2FM ;EQU 0X3A
CLRF SHU3FM
MOVLW 0X1A
MOVWF FIRON ;=0X1A ;第1次设置常数1O:1O
MOVLW 0X2A
MOVWF SECON ;=0X2A ;第2次设置常数2O:2O
MOVLW 0X3A
MOVWF THIRON ;=0X3A ;第3次设置常数3O:3O
MOVLW 0X1B
MOVWF FIROFF ;=0X1B ;第1次设置常数1F:1F
MOVLW 0X2B
MOVWF SECOFF ;=0X2B ;第2次设置常数2F:2F
MOVLW 0X3B
MOVWF THIROFF ;=0X3B ;第3次设置常数3F:3F
MOVLW 0XCD
MOVWF TIMESET ;=0XCD ;时钟设置常数显示:H-
CLRWDT
CALL DELAY1S
CALL DELAY1S
CALL DELAY1S
CALL INT
CLRF BJ15S
MOVLW 0X00
MOVWF DAT
MOVLW 0X00
CALL WT8563
;CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
MOVLW 0X00
MOVWF DAT
MOVLW 0X01
CALL WT8563
;CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVLW 0X03
MOVWF DAT
MOVLW 0X0E
;CLRWDT
CALL WT8563
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVLW 0X03
CALL RD8563
MOVWF SHUMIN
MOVLW 0X9A
SUBWF SHUMIN,0
BTFSC STATUS,0
CLRF SHUMIN
MOVLW 0X04
CALL RD8563
MOVWF SHUTIME
MOVLW 0X9A
SUBWF SHUTIME,0
BTFSC STATUS,0
CLRF SHUTIME
MOVLW 0X7F
ANDWF SHUMIN,1
MOVLW 0X3F
ANDWF SHUTIME,1
CS CALL DISP_1
CALL DISP_2
CALL DISP_3;CALL AD
;-----------------
; BSF STATUS,RP0
; BSF PIE1,0
; BCF STATUS,RP0
MOVLW 0X2F
MOVWF TMR1L
MOVLW 0XF8
MOVWF TMR1H
;-------------------
KKC ; CLRWDT
; BTFSS PORTA,4
; GOTO KKC
;;BSF T1CON,TMR1ON
;--------------------
POOP CLRWDT;BTFSC BZD ,BZSET ;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
CALL SET1
POP1 CLRWDT
INCF R9,1
MOVLW 0X25
SUBWF R9,0
BTFSS STATUS,0
GOTO PPK
CLRF R9
CALL AD
MOVF WENDU2 ,0
MOVWF WENDU
PPK CLRWDT
BTFSS PORTB,5
CALL SET1
CALL DISP_1
;温度显示子程序
MOVLW 0X04
CALL RD8563
MOVWF SHUTIME
;读8653的小时和分钟,分别存在TI与MI中
;MOVWF TI
MOVLW 0X3F
ANDWF SHUTIME,0
MOVWF SHUTIME
MOVWF TI
CALL DISP_2
;小时显示子程序
CLRWDT
MOVLW 0X03
CALL RD8563
MOVWF SHUMIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -