

ORG		0000H
LJMP	INIT
ORG		0100H
INIT:	MOV		DPTR,#SIN		// 指向正弦表
MAIN:	MOV		A,#00H			// A清零
		ORL		P1,#0F0H		// 指示灯复位
		JNB		P1.0,SQUARE		// 选择方波
		JNB		P1.1,SAWTOOTH	// 选择锯齿波
		JNB		P1.2,TRIANG		// 选择三角波
		JNB		P1.3,SINE		// 选择正弦波
		SJMP	MAIN
SQUARE:	CLR		P1.4			// 方波
SQULOOP:JB		P1.0,MAIN		// 判断是否返回
		MOV		A,#00H			// 下降沿
		MOV		P0,A
		LCALL	DELAY1
		MOV		A,#0FFH			// 上升沿
		MOV		P0,A
		LCALL	DELAY1
		SJMP	SQULOOP
SAWTOOTH:CLR	P1.5			// 锯齿波
SAWLOOP:JB		P1.1,MAIN		// 判断是否返回
		MOV		P0,A
		INC		A				//	A+1
		LCALL	DELAY1
		SJMP	SAWLOOP
		
TRIANG:	CLR		P1.6			// 三角波	
UPLOOP:	JB		P1.2,MAIN		// 判断是否返回
		MOV		P0,A
		INC		A				//	A+1
		LCALL	DELAY1
		CJNE	A,#0FFH,UPLOOP	// 判断是否到大值
DOWNLOOP:JB		P1.2,MAIN		// 判断是否返回
		MOV		P0,A
		DEC		A				//	A-1
		LCALL	DELAY1
		CJNE	A,#00H,DOWNLOOP	// 判断是否到最小值
		SJMP	UPLOOP
		
SINE:	CLR		P1.7			// 正弦波
SINLOOP:JB		P1.3,MAIN		// 判断是否返回
		MOV		R0,A			// 保护A
		MOVC	A,@A+DPTR		// 查表
		MOV		P0,A
		MOV		A,R0			// 恢复A
		INC		A				//	A+1
		LCALL	DELAY1
		SJMP	SINLOOP
SIN:	DB 80H, 83H, 86H, 89H, 8DH, 90H, 93H, 96H	// 正弦表
		DB 99H, 9CH, 9FH, 0A2H,0A5H,0A8H,0ABH,0AEH
		DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
		DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
		DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
		DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
		DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
		DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
		DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
		DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
		DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
		DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
		DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
		DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
		DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH, 9CH, 99H
		DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H
		DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H
		DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H
		DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH
		DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H
		DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H
		DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH
		DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H
		DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H
		DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H
		DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H
		DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H
		DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H
		DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H
		DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH
		DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H
		DB 69H, 6CH, 6FH, 72H, 75H, 78H, 7bH, 7eH
	
DELAY100:	MOV		30H,#195		//延时100ms
			MOV		31H,#133
NEXT100:	DJNZ	31H,NEXT100
			DJNZ	30H,NEXT100
			RET
DELAY1:		MOV		30H,#2			//延时1ms
			MOV		31H,#234
NEXT1:		DJNZ	31H,NEXT1
			DJNZ	30H,NEXT1
			RET
		
END方波
锯齿波
三角波
正弦波
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧