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

📄 vol_end.asm.txt

📁 用单片机开发的发电机电压表程序!检测发电机电压!
💻 TXT
字号:
;######################################################
;   	ASM:  	Vol_L.asm
;   	CPU:  	TMP86P807M/N
;	DATA: 	2004/06/9
;	XTAL:	8MHZ
;	电压表程序 ---[0--50V]
;#########################################################
$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),0X60	;1B
	LD	(TC1DRAH),0X00	;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),0XFF	;
	LD	(P2),0
	LD	(P3),0Y00000111	;
	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
;******************************************************	
MAIN:	EI
	CALL	WORK
	CALL	ADDI
	CALL	DISP                                
	J	MAIN
;******************************************************
WORK:	LD	(WDTCR1),0x0D	;
	LD	(WDTCR2),0x4E	;Enable WDT
	LD	(P0OUTCR),0XFF
	LD	(P3CR),0Y01111111
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADDI:	TEST	(FLAG).1
	J	T,ADND
	CALL	ADZH
	CLR	(FLAG).1
	LD	A,(ADBU1)
	LD	(COM1),A
	LD	A,(ADBU2)
	LD	(COM2),A
	LD	A,(ADBU3)
	LD	(COM3),A
	NOP
	NOP
	NOP
ADND:	RET
;*******************************************
;		测试程序		   *
;*******************************************
TSTC:	CLR	(P3).0
	CLR	(P3).1
	CLR	(P3).2
	LD	(P0),0Y10100000
	CALL	DEALY1
	LD	(P0),0Y10101111
	CALL	DEALY1
	LD	(P0),0Y01101000
	CALL	DEALY1
	LD	(P0),0Y00101010
	CALL	DEALY1
	LD	(P0),0Y00100111
	CALL	DEALY1
	LD	(P0),0Y00110010
	CALL	DEALY1
	LD	(P0),0Y00110000
	CALL	DEALY1
	LD	(P0),0Y10101011
	CALL	DEALY1
	LD	(P0),0Y00100000
	CALL	DEALY1
	LD	(P0),0Y00100010
	CALL	DEALY1
	NOP
LOOP:	LD	(WDTCR1),0x0D	;
	LD	(WDTCR2),0x4E	;Enable WDT
	LD	(P0),0
	J	LOOP
DEALY1:	EI
	LD	(WDTCR1),0x0D	;
	LD	(WDTCR2),0x4E	;Enable WDT
	TEST	(FLAG).1
	J	T,DEALY1
	CLR	(FLAG).1
	RET	
;*******************************************
;		显示程序		   *
;*******************************************
ADZH:	CALL	RDADC
	CALL	ADBHU
	SUB	A,3
	LD	W,0
	LD	C,5
	DIV	WA,C
	LD	(ADBU1),W
	LD	W,0
	LD	C,10
	DIV	WA,C
	LD	(ADBU3),A
	LD	(ADBU2),W
	LD	W,0
	LD	A,0
	LD	W,(ADBU1)
	LD	A,2
	MUL	W,A
	LD	(ADBU1),A
	RET
ADINPUT:
  	LD    	(ADCCR1),0X25	;AIN4
	LD	(ADCCR2),0XD8	;
       	SET	(ADCCR1).7
ADSLOOP:
  	TEST  	(ADCDR2).5
       	J     	T,ADSLOOP
       	LD    	A,(ADCDR1)
       	RET	
;;;;;;<>
RDADC:  CALL  	ADINPUT
	LD	B,A
	CALL	ADINPUT
	LD	C,A
	CALL	ADINPUT
	LD	D,A
	CALL	ADINPUT
	LD	E,A
	CMP	BC,DE
	J	NE,RDADC
	LD	A,B
	CMP	A,79
	J	CC,RADC1
        RET
RADC1:	CMP	A,114
	J	CC,RADC2
	SUB	A,1
	RET
RADC2:	CMP	A,135
	J	CC,RADC3
	SUB	A,2
	RET
RADC3:	CMP	A,151
	J	CC,RADC4
	SUB	A,3
	RET
RADC4:	SUB	A,4
	RET
ADBHU:	CMP	A,170
	J	CC,ADBHK
	RET
ADBHK:	SET	(P3).3
	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)
	LD	(DOM2),A
	CLR	(DOM2).5
;
	LD	C,(COM3)
	LD	HL,LEDTAB
	LD	A,(HL+C)
	LD	(DOM3),A
;
XIANSHI:	
	LD	A,(DOM1)
	LD	(P0),A
	CLR	(P3).0
	CALL	DEALY
	SET	(P3).0
	
	LD	A,(DOM2)
	LD	(P0),A
	CLR	(P3).1
	CALL	DEALY
	SET	(P3).1
	
	LD	A,(DOM3)
	LD	(P0),A
	CLR	(P3).2
	CALL	DEALY
	SET	(P3).2

	RET
DEALY:	LD	BC,0X500
LOPF:	NOP
	DEC	BC
	J	NE,LOPF
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEDTAB	DB	160	;0	
	DB	175	;1
	DB	104	;2
	DB	42	;3
	DB	39	;4
	DB	50	;5
	DB	48	;6
	DB	171	;7
	DB	32	;8
	DB	34	;9
;==================================================
INTTC1:	EI
	INC	(TBUF)
	CMP	(TBUF),60
	J	EQ,INTC1A
	RETI
INTC1A:	LD	(TBUF),0
	SET	(FLAG).6
	RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTTC4:	INC	(THJK)
	CMP	(THJK),200
	J	EQ,INTC4
	RETI
INTC4:	LD	(THJK),0
	SET	(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	1
SCL	EQU	2
;;;;;;;;;;;;;;;;;;
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
ADBU1	DSB	1
ADBU2	DSB	1
ADBU3	DSB	1

	END

⌨️ 快捷键说明

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