📄 time_l.asm.txt
字号:
;######################################################
; ASM: myya.asm
; CPU: TMP86P807M/N
; DATA: 2003/06/30
; XTAL: 8MHZ
; ----------------------------
; PIN01: VSS GND
; PIN02: xIN XL
; PIN03: xOUT XL
; PIN04: TEST GND
; PIN05: VDD VCC
; PIN06: P21
; PIN07: P22
; PIN08: RESET
; PIN09: P20 TEST
; PIN10: p00 LED
; PIN11: p01 LED
; PIN12: P02 LED
; PIN13: P03 LED
; PIN14: P04 LED
; PIN15: P05 LED
; PIN16: P06 LED
; PIN17: P07 LED
; PIN18: P10 NOP
; PIN19: P11 NOP
; PIN20: P12 NOP
; PIN21: P30 COM1
; PIN22: P31 COM2
; PIN23: P32 COM3
; PIN24: P33 COM4
; PIN25: P34 COM5
; PIN26: P35 NOP
; PIN27: P36 SCL
; PIN28: P37 SDA
; ------------------------------
;#########################################################
$INCLUDE <T86c807a.H>
$INCLUDE <T86c807b.H>
;
CODE_1 SECTION CODE ABS=0xE000
;
START: NOP
NOP
DI
LD SP,0x013F
SETSYS: LD (SYSCR1),0 ;
LD (SYSCR2),0x80 ;
SETTBT: LD (TBTCR),0x00 ;DVO-BUZZ
SETWDT: LD (WDTCR1),0X0F ;Enable WDT
LD (WDTCR2),0xB1 ;Disable WDT
LD (WDTCR1),0x0F ;
LD (WDTCR2),0x4E ;Enable WDT
SETTC1: LD (TC1CR),0 ;
LD (TC1DRAL),0X96 ;1B
LD (TC1DRAH),0X98 ;B7
; LD (TC1DRB),0 ;
SET (EIRL).7 ;
LD (TC1CR),0X10 ;
SETTC4: LD (TC4CR),16 ;
LD (TTREG4),250 ;250X8=2ms
LD (TC4CR),24 ;START
SET (EIRH).3 ;Enable INT
LD (INTSEL),0 ;int
SETPOR: LD (P0),0 ;
LD (P2),0
LD (P3),0XFF ;
LD (STOPCR),0
CALL WORK
RAMCLR: LD HL,0x40 ;40H→HL
LD A,H ;H=0→A
LD BC,0xFF ;0xFF→BC
SRAMCL: LD (HL),A ;A=0→(HL)
INC HL ;HL+1
DEC BC ;BC-1
J F,SRAMCL ;BC≠0→SRAMCL:
TEST (P2PRD).0
J F,TSTC
LD (EEWORD),0
CALL EEREAD
LD (COM1),A
LD (EEWORD),1
CALL EEREAD
LD (COM2),A
LD (EEWORD),2
CALL EEREAD
LD (COM3),A
LD (EEWORD),3
CALL EEREAD
LD (COM4),A
LD (EEWORD),4
CALL EEREAD
LD (COM5),A
;******************************************************
MAIN: EI
CALL WORK
CALL TIMS
CALL DISP
CALL TIMS
J MAIN
;******************************************************
WORK: LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
LD (P0OUTCR),0XFF
LD (P3CR),0XFF
RET
;#########################################################
; EEPROM<ATMEL24C01A>
;#########################################################
;;;;;;;<WRITE>;;;;;;;;;;
EWRITE: DI
CALL EESTAR
LD A,0XA0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,(COM1)
CALL EESUBS
LD A,(COM2)
CALL EESUBS
LD A,(COM3)
CALL EESUBS
LD A,(COM4)
CALL EESUBS
LD A,(COM5)
CALL EESUBS
CALL EESTOP
EI
RET
;;;;;;;;<READ ATMEL24C01 PROGRAM>
EEREAD: DI
CALL EESTAR
LD A,0XA0
CALL EESUBS
LD A,(EEWORD)
CALL EESUBS
CALL EESTAR
LD A,0XA1
CALL EESUBS
CALL EESUBR
CALL EESTOP
EI
RET
;;;;;;;;<EEPROM START PROGRAM>
EESTAR: SET (P3).SDA
NOP
NOP
SET (P3).SCL
CALL EDELAY
CLR (P3).SDA
CALL EDELAY
CLR (P3).SCL
RET
;;;;;;;;<EEPROM STOP PROGRAM>
EESTOP: CLR (P3).SDA
NOP
NOP
SET (P3).SCL
CALL EDELAY
SET (P3).SDA
CALL EDELAY
CLR (P3).SCL
NOP
RET
;;;;;;;;<EEPROM ACK PROGRAM>
EEACK: CLR (P3CR).SDA
EACKL: SET (P3).SCL
CALL EDELAY
CLR (P3).SCL
NOP
NOP
TEST (P3).SDA
J F,EACKL
SET (P3CR).SDA
NOP
RET
;;;;;;;;<WRITE 8BYTE PROGRAM>
EESUBS: LD B,8
EELOOP: LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
CLR (P3).SCL
ROLC A
LD (P3).SDA,CF
NOP
SET (P3).SCL
CALL EDELAY
DEC B
J NZ,EELOOP
CLR (P3).SCL
CALL EDELAY
SET (P3).SCL
EEREP: CLR (P3CR).SDA
TEST (P3).SDA
J F,EEREP
SET (P3CR).SDA
CALL EDELAY
CLR (P3).SCL
RET
;;;;;;;;<READ 8BYTE PROGRAM>
EESUBR: LD B,8
CLR (P3CR).SDA
ELOOP2: SET (P3).SCL
CALL EDELAY
LD CF,(P3).SDA
ROLC A
CLR (P3).SCL
CALL EDELAY
DEC B
J NZ,ELOOP2
NOP
EREP2: SET (P3CR).SDA
SET (P3).SDA
SET (P3).SCL
CALL EDELAY
CLR (P3).SCL
RET
;;;;;;;;<BUFFER PROGRAM>
EDELAY: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;*******************************************
; 测试程序 *
;*******************************************
TSTC: CLR (P3).0
CLR (P3).1
CLR (P3).2
CLR (P3).3
CLR (P3).4
LD (P0),246
CALL DEALY1
LD (P0),192
CALL DEALY1
LD (P0),174
CALL DEALY1
LD (P0),234
CALL DEALY1
LD (P0),216
CALL DEALY1
LD (P0),122
CALL DEALY1
LD (P0),126
CALL DEALY1
LD (P0),224
CALL DEALY1
LD (P0),254
CALL DEALY1
LD (P0),250
CALL DEALY1
NOP
CALL EESTAR
LD A,0XA0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,0
CALL EESUBS
LD A,0
CALL EESUBS
CALL EESTOP
NOP
LOOP: LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
LD (P0),0XFF
J LOOP
DEALY1: EI
LD (WDTCR1),0x0D ;
LD (WDTCR2),0x4E ;Enable WDT
TEST (FLAG).1
J T,DEALY1
CLR (FLAG).1
RET
;*******************************************
; 时间程序 *
;*******************************************
TIMS: TEST (FLAG).6
J T,T_END
CLR (FLAG).6
INC (COM1)
CMP (COM1),10
J EQ,TIM2
CALL EWRITE
RET
T_END: RET
TIM2: LD (COM1),0
INC (COM2)
CMP (COM2),10
J EQ,TIM3
CALL EWRITE
RET
TIM3: LD (COM2),0
INC (COM3)
CMP (COM3),10
J EQ,TIM4
CALL EWRITE
RET
TIM4: LD (COM3),0
INC (COM4)
CMP (COM4),10
J EQ,TIM5
CALL EWRITE
RET
TIM5: LD (COM4),0
INC (COM5)
CALL EWRITE
RET
;*******************************************
; 显示程序 *
;*******************************************
DISP: LD C,(COM1)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM1),A
;
LD C,(COM2)
LD HL,LEDTAB
LD A,(HL+C)
TEST (FLAG).1
J T,LUY1
CPL A.0
LUY1:
LD (DOM2),A
;
LD C,(COM3)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM3),A
;
LD C,(COM4)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM4),A
;
LD C,(COM5)
LD HL,LEDTAB
LD A,(HL+C)
LD (DOM5),A
;
CMP (DOM5),246
J NE,XIANSHI
LD (DOM5),0
CMP (DOM4),246
J NE,XIANSHI
LD (DOM4),0
CMP (DOM3),246
J NE,XIANSHI
LD (DOM3),0
XIANSHI:
LD A,(DOM1)
LD (P0),A
CLR (P3).4
CALL DEALY
SET (P3).4
NOP
LD A,(DOM2)
LD (P0),A
CLR (P3).0
CALL DEALY
SET (P3).0
NOP
LD A,(DOM3)
LD (P0),A
CLR (P3).1
CALL DEALY
SET (P3).1
NOP
LD A,(DOM4)
LD (P0),A
CLR (P3).2
CALL DEALY
SET (P3).2
NOP
LD A,(DOM5)
LD (P0),A
CLR (P3).3
CALL DEALY
SET (P3).3
RET
DEALY: LD (TBBUF),0X99
LOOL: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DEC (TBBUF)
J NE,LOOL
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEDTAB DB 246 ;0
DB 192 ;1
DB 174 ;2
DB 234 ;3
DB 216 ;4
DB 122 ;5
DB 126 ;6
DB 224 ;7
DB 254 ;8
DB 250 ;9
NOP
;==================================================
INTTC1: EI
INC (TBUF)
CMP (TBUF),36
J EQ,INTC1A
RETI
INTC1A: LD (TBUF),0
SET (FLAG).6
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTTC4: INC (THJK)
CMP (THJK),125
J EQ,INTC4
RETI
INTC4: LD (THJK),0
CPL (FLAG).1
RETI
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
NORETI:
RETI
NORETN:
RETN
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CODE_INTVECT SECTION CODE ABS=0xFFE0
INTVECT:
DW NORETI ;FFE0H (INT5)
DW NORETI ;FFE2H (INT4)
DW NORETI ;FFE4H (INTSEI1)
DW NORETI ;FFE6H (INTADC)
DW INTTC4 ;FFE8H (INT3/INTTC4)
DW NORETI ;FFEAH (INTTC3/INTSEI0)
DW NORETI ;FFECH (INTTxD)
DW NORETI ;FFEEH (INTRxD)
DW INTTC1 ;FFF0H (INTTC1)
DW NORETI ;FFF2H (INTTBT)
DW NORETI ;FFF4H (INT1)
DW NORETI ;FFF6H (INT0)
DW NORETN ;FFF8H (INTWDT)
DW NORETN ;FFFAH (INTATRAP)
DW NORETN ;FFFCH (INTUNDEF/INTSWI)
DW START ;FFFEH (RESET)
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
RAMDATA SECTION DATA ABS=0X40
;;;;;;;;<P3>;;;;;;
SDA EQU 7
SCL EQU 6
;;;;;;;;;;;;;;;;;;
COM1 DSB 1
COM2 DSB 1
COM3 DSB 1
COM4 DSB 1
COM5 DSB 1
DOM1 DSB 1
DOM2 DSB 1
DOM3 DSB 1
DOM4 DSB 1
DOM5 DSB 1
TME1 DSB 1
TME2 DSB 1
TME3 DSB 1
TME4 DSB 1
TME5 DSB 1
FLAG DSB 1
TBUF DSB 1
TBBUF DSB 1
EEWORD DSB 1
EEDATA DSB 1
TBUG DSB 1
TBUH DSB 1
THJK DSB 1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -