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

📄 led_5.asm

📁 用89S52进行DS1820温度读取程序
💻 ASM
字号:
;四键控制四个数码管, 同时键按下时蜂鸣器响一下
;分别对应于8421码

;硬件设置
		BEEP		BIT		P2.0		;蜂鸣器伪指令
                key             bit             p3.3
;程序区

		ORG		0000H				;伪指令		
		LJMP		MAIN				;跳转到单片机的主程序
		ORG		0100H				;伪指令,单片机主程序的开始
MAIN:		MOV		P1,	#0FFH			;将P1口上的灯全部关掉
                mov             p2,     #0ffh
                clr             key
		MOV		A,	P2			;从P2口上读出按键状态
		ANL		A,	#11111100B		;选出状态位置
		CJNE		A,	#01111100b,M_01	        ;比较键值,是第一个键吗
		LJMP		M_001				;是的
M_01:		CJNE		A,	#10111100b,M_02	;是第二个键吗
		LJMP		M_002				;是第二个键
M_02:		CJNE		A,	#11011100b,M_03		;是第三个键吗
		LJMP		M_003				;是第三个键
M_03:		CJNE		A,	#11101100b,M_04		;是第四个键吗
		LJMP		M_004				;是第四个键
M_04:		LJMP		MAIN				;无键,跳回去重新判断
M_001:	MOV		P0,	#10000000B		;打开第一个灯
		MOV		P2,	#01111111B
		CLR		BEEP				;打开蜂鸣器
		LCALL		DEL				;调延时子程序
		MOV		P0,	#0FFH			;关闭第一个灯
		MOV		P2,	#0FFH
		SETB		BEEP				;关闭蜂鸣器
		LJMP		MAIN				;跳回去重新判断
M_002:	MOV		P0,	#10011001B		;打开第二个灯
		MOV		P2,	#10111111B
		CLR		BEEP				;打开蜂鸣器
		LCALL		DEL
		SETB		BEEP				;关闭蜂鸣器
		MOV		P0,	#0FFH
		MOV		P2,	#0FFH
		LJMP		MAIN
M_003:	MOV		P0,	#10100100B		;打开第三个灯
		MOV		P2,	#11011111B
		CLR		BEEP				;打开蜂鸣器
		LCALL		DEL
		MOV		P0,	#0FFH
		MOV		P2,	#0FFH
		SETB		BEEP				;关闭蜂鸣器
		LJMP		MAIN
M_004:	MOV		P0,	#11111001B		;
		MOV		P2,	#11101111B		;打开第四个灯
		CLR		BEEP				;打开蜂鸣器
		LCALL		DEL
		MOV		P0,	#0FFH
		MOV		P2,	#0FFH
		SETB		BEEP				;关闭蜂鸣器
		LJMP		MAIN
DEL:		MOV		R6,	#0FFH			;延时子程序
DEL_1:	MOV		R7,	#0FFH
DEL_0:	NOP
		NOP
		DJNZ		R7,	DEL_0
		DJNZ		R6,	DEL_1
		RET
		END	

⌨️ 快捷键说明

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