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

📄 text1.a

📁 TI公司的 TLC1549芯片的单片机程序
💻 A
字号:

/*---------------------------------------------------------
FILE:	TLC1549--Analog changing to Digits
	Program of a Votage Device (0.005~5.005v)
Decriber: Vin=1000*5*Din/1024~5Din
TIME:	2006-8-7-22:04  By zx218 of ESA,AUTS
-----------------------------------------------------------*/
	TLC1549CS BIT	P2.3
	TLC1549DO BIT	P2.2
	TLC1549CLK BIT	P2.1

	COM1 	BIT 	p0.2		;LED com selector
	COM2 	BIT 	p0.3
	COM3 	BIT 	p0.4
	COM4	BIT 	p0.5

	LED_SDA	BIT	P0.0		;74164 uart monitor
	LED_CLK	BIT	P0.1

	ORG	00H
	LJMP	MAIN
	ORG	0030H
MAIN:	
	LCALL	ADC		;start A/D change

	MOV	R2,21H		
	MOV	R3,20H
	MOV	R6,#00H
	MOV	R7,#3FH		;*63
	LCALL	MUL22		;R2.R3*R6*R7=R2.R3.R4.R5

	MOV	R2,#00H
	MOV	R3,#00H
	MOV	R6,#00H
	MOV	R7,#0DH		 ;13
	LCALL	DIVD		;R2.R3.R4.R5/R6.R7=R2.R3.......
	
	MOV	A,R2		;(21H)	must r2-->r6!!!	
	MOV	R6,A		
	MOV	A,R3		;(20H)	must r3-->r7!!!	
	MOV	R7,A
	LCALL	HB2		;H to BCD: R6.R7=R3.R4.R5	


	MOV	A,R4		;high AD datas
	ANL	A,#0F0H
	SWAP	A
	MOV	50H,A
	MOV	A,R4
	ANL	A,#0FH
	MOV	51H,A
		
	MOV	A,R5		;low AD datas
	ANL	A,#0F0H
	SWAP	A
	MOV	52H,A
	MOV	A,R5
	ANL	A,#0FH
	MOV	53H,A

	LCALL	DISP
	LJMP	MAIN
/*------------------------------------------
TLC1549 A/D changing program
Output:	20h=higher 2 bits;21h=lower 8 bits
--------------------------------------------*/
ADC:
	MOV 20H,#00H
	MOV 21H,#00H 		
	MOV R7,#0AH 		
	CLR TLC1549CS	 	
LOOP1:	
	MOV C,TLC1549DO 	
	MOV A,20H 		
	RLC A
	MOV 20H,A
	MOV A,21H
	RLC A
	MOV 21H,A
	SETB TLC1549CLK 	
	CLR TLC1549CLK 
	DJNZ R7,LOOP1 		
	SETB TLC1549CS 		
	RET 			
/*----------------------------------------------
MUL22:	2 bytes * 2 bytes
	R2.R3*R6.R7=R2.R3.R4.R5
--------------------------------------------*/

MUL22: 	
	MOV A,R3 
	MOV B,R7
	MUL AB
	MOV R4,B 
	MOV R5,A
	MOV A,R3 
	MOV B,R6
	MUL AB
	ADD A,R4 
	MOV R4,A
	CLR A
	ADDC A,B
	MOV R3,A
	MOV A,R2 
	MOV B,R7
	MUL AB
	ADD A,R4 
	MOV R4,A
	MOV A,R3
	ADDC A,B
	MOV R3,A
	CLR A
	RLC A
	XCH A,R2 
	MOV B,R6
	MUL AB
	ADD A,R3
	MOV R3,A
	MOV A,R2
	ADDC A,B
	MOV R2,A
	RET

;--------------------------------------------------
;  	 four byts H /two bytes  H
;	 R2.R3.R4.R5/R6.R7=R2.R3.......
;-------------------------------------------------
DIVD:	
	CLR	C	
	MOV	A,R3	
	SUBB	A,R7
	MOV	A,R2
	SUBB	A,R6
	JC	DVD1
	SETB	OV	
	RET
DVD1:	
	MOV	B,#10H	
DVD2:	
	CLR	C	
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	XCH	A,R2
	RLC	A
	XCH	A,R2
	MOV	F0,C	
	CLR	C
	SUBB	A,R7	
	MOV	R1,A
	MOV	A,R2
	SUBB	A,R6
	ANL	C,/F0	
	JC	DVD3
	MOV	R2,A	
	MOV	A,R1
	MOV	R3,A
	INC	R5	
DVD3:	
	DJNZ	B,DVD2	
	MOV	A,R4	
	MOV	R2,A
	MOV	A,R5
	MOV	R3,A
	CLR	OV	
	RET
/*--------------------------------------------
Two bytes H change to  three bytes BCD
Input:	R6.R7=R3.R4.R5
---------------------------------------------*/
HB2: 	
	CLR 	A 		
	MOV 	R3,A
	MOV 	R4,A
	MOV 	R5,A
	MOV 	R2,#10H 	
HB3: 	
	MOV 	A,R7 		
	RLC 	A
	MOV 	R7,A
	MOV 	A,R6
	RLC 	A
	MOV 	R6,A
	MOV 	A,R5 		
	ADDC	A,R5
	DA 	A 		
	MOV	R5,A
	MOV 	A,R4
	ADDC 	A,R4
	DA 	A
	MOV 	R4,A
	MOV 	A,R3
	ADDC 	A,R3
	MOV 	R3,A 	
	DJNZ 	R2,HB3 		
	RET

/*---------------------------------------------
	Votage Display program
--------------------------------------------*/
DISP:	

	MOV 	R5,#4
LP1:	MOV 	R6,#250		;Display for one minute	
	
LP2:
	MOV 	DPTR,#TAB1	
	MOV	A,50H		;1000
//	ADD	A,#11H
	MOVC	A,@A+DPTR
	LCALL	SEND
	CLR		COM1
	CALL	DL1MS
	SETB	COM1

	MOV 	DPTR,#TAB
	MOV	A,51H		;100
	MOVC	A,@A+DPTR
	LCALL	SEND
	CLR		COM2
	CALL	DL1MS
	SETB	COM2

	MOV	A,52H		;10
	MOVC	A,@A+DPTR
	LCALL	SEND
	CLR		COM3
	CALL	DL1MS
	SETB	COM3

	MOV	A,53H		;1
	MOVC	A,@A+DPTR
	LCALL	SEND
	CLR		COM4
	CALL	DL1MS
	SETB	COM4
	
	DJNZ	R6,LP2
	DJNZ	R5,LP1
	RET

;-------------Emulate SBUF SEND BYTE---------------
SEND:
	MOV	   R7,#08H
DUP:	RLC	   A
	MOV	   LED_SDA,C
	CLR	   LED_CLK
	SETB	   LED_CLK
	DJNZ	   R7,DUP
	RET
;--------------DELAY 1MS----------------------
DL1MS:	MOV 	R7,#125	
	DJNZ	R7,$
	RET

TAB:    DB 0C0H,0F9H,0A4H,0B0H		;不带小数点0~F,0FFH为熄灭
        DB 99H,92H,82H,0F8H
        DB 80H,90H,88H,83H
        DB 0C6H,0A1H,86H,8EH,0FFH

TAB1:
        DB 40H,79H,24H,30H		;带小数点0~F  "不亮,0FFH","A,11H","-,FDH"
        DB 19H,12H,02H,78H
        DB 00H,10H,08H,03H
        DB 46H,21H,06H,0EH,0FFH

	END	

⌨️ 快捷键说明

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