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

📄 sing.asm

📁 这是购买周立功的试验箱时候松的源代码。很经典的代码。希望学习单片机的朋友好好研究。短小精悍。有意思。这是第一部分。
💻 ASM
字号:
	BUZZ	EQU	P3.3
	ORG     8000H
	LJMP    MAIN
	ORG     800BH
	LJMP   	INT_T0
	ORG     8100H       
	
MAIN:   
	MOV    	SP,#60H		;初始化堆栈向量
	MOV	30H,#00		;定时器初值清零
	MOV	31H,#00
	MOV 	P1,#0FFH	;设置P1口为输入模式
	MOV     TMOD,#01H	;设置定时器0为工作模式1
	SETB    ET0		;开定时器0中断
	SETB	EA		;开总中断
	CLR	TR0		;关闭定时器0

START:	
	MOV	R0,P1		
	CJNE	R0,#0FFH,KEY1	;键盘扫描
	CLR 	TR0
	SJMP	START
KEY1:
	CJNE	R0,#0FEH,KEY2	;K1键按下
	MOV	30H,#0FBH	;设置音阶1
	MOV	31H,#0E9H
	LJMP	SET_TIMER
KEY2:	
	CJNE	R0,#0FDH,KEY3	;K2键按下
	MOV	30H,#0FCH	;设置音阶2
	MOV	31H,#5CH
	LJMP	SET_TIMER
KEY3:
	CJNE	R0,#0FBH,KEY4	;K3键按下
	MOV	30H,#0FCH	;设置音阶3
	MOV	31H,#0C1H
	LJMP	SET_TIMER
KEY4:
	CJNE	R0,#0F7H,KEY5	;K4键按下
	MOV	30H,#0FCH	;设置音阶4
	MOV	31H,#0EFH
	LJMP	SET_TIMER
KEY5:
	CJNE	R0,#0EFH,KEY6	;K5键按下
	MOV	30H,#0FDH	;设置音阶5
	MOV	31H,#045H
	LJMP	SET_TIMER
KEY6:
	CJNE	R0,#0DFH,KEY7	;K6键按下
	MOV	30H,#0FDH	;设置音阶6
	MOV	31H,#92H
	LJMP	SET_TIMER
KEY7:
	CJNE	R0,#0BFH,NOKEY	;K7键按下
	MOV	30H,#0FDH	;设置音阶7
	MOV	31H,#0D6H

SET_TIMER:
	SETB	TR0		;发声
	SJMP	START
NOKEY:
	CLR	TR0		;无键按下
	SJMP	START
	
INT_T0:				;T0中断服务程序
        MOV     TH0,30H		;定时器附初值
        MOV     TL0,31H
        CPL    	BUZZ		;输出方波
        RETI

	END                              

⌨️ 快捷键说明

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