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

📄 time_l.asm.txt

📁 用单片机开发的发电机时间表程序!已经应用在发电机上!
💻 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 + -