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

📄 measure_freq.asm

📁 51系列单片机实验课程:按键显示程序 (在数字键上按数字
💻 ASM
字号:
	ORG	0000H
	AJMP	START
	ORG	001BH
	AJMP	T1INT
	ORG	0100H

DISBUF	EQU	30H
POSIT	EQU	38H
TIME	EQU	39H
FREQ	EQU	40H

START:
	MOV	DPTR, #LEDCODE  
	MOV	TMOD, #15H
	MOV	TL0, #0
	MOV	TH0, #0
	MOV	TL1, #0B0H
	MOV	TH1, #3CH
	SETB	TR0
	SETB	TR1
	SETB	ET1
	SETB	EA

LOOP:
	CALL	COUNTER
	CALL	DISPLAY
	AJMP	LOOP

SEGLOCK:
	SETB	P1.3
	NOP
	CLR	P1.3
	RET

POSITLOCK:
	SETB	P1.2
	NOP
	CLR	P1.2
	RET

NODISP:
	MOV	P0, #0
	SETB	P1.2
	NOP	
	CLR 	P1.2
	RET

DELAY:
	DJNZ	R4, $
	RET

COUNTER:
	MOV	A, FREQ
	MOV	B, #100
	DIV	AB
	MOV	DISBUF, A
	MOV	A, B
	MOV	B, #10
	DIV	AB
	MOV	DISBUF+1, A
	MOV	DISBUF+2, B
	RET

DISPLAY:
	MOV	A, DISBUF
	MOVC	A, @A+DPTR
	MOV	P0, A
	CALL	SEGLOCK
	MOV	P0, #04H
	CALL	POSITLOCK
	CALL	DELAY
	CALL 	NODISP
	
	MOV	A, DISBUF+1
	MOVC	A, @A+DPTR
	MOV	P0, A
	CALL	SEGLOCK
	MOV	P0, #02H
	CALL	POSITLOCK
	CALL	DELAY
	CALL 	NODISP
	
	MOV	A, DISBUF+2
	MOVC	A, @A+DPTR
	MOV	P0, A
	CALL	SEGLOCK
	MOV	P0, #01H
	CALL	POSITLOCK
	CALL	DELAY
	CALL 	NODISP
	RET

T1INT:
	PUSH	ACC
	CLR	TR1
	MOV	TH1, #3CH
	MOV	TL1, #0B0H
	DJNZ	TIME, INTOUT
	MOV	FREQ, TL0
	MOV	TL0, #0
	MOV	TH0, #0
	MOV	TIME, #20

INTOUT:
	POP	ACC
	SETB	TR1
	RETI

LEDCODE:  
	DB 	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
	  ;	  0   1     2    3   4   5   6    7   8   9
	DB	88H,83H,0C6H,0A1H,86H,08EH,0BFH,0FFH,0F7H
          ;	 A   B    C   D    E    F   -   消隐  _
;================================================
	END

⌨️ 快捷键说明

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