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

📄 test.asm

📁 AT89s51单片机8位流水灯逐个点亮再逐个息灭、4位数码管全亮显示、喇叭发声、键盘扫描的汇编源程序
💻 ASM
字号:
//测试程序
/*    //引脚定义
N0  EQU   P0		  //端口P0
N00  EQU   P0.0
N01  EQU   P0.1
N02  EQU   P0.2
N03  EQU   P0.3
N04  EQU   P0.4
N05  EQU   P0.5
N06  EQU   P0.6
N07  EQU   P0.7
N1  EQU   P1	       //端口P1
N10  EQU   P1.0
N11  EQU   P1.1
N12  EQU   P1.2
N13  EQU   P1.3
N14  EQU   P1.4
N15  EQU   P1.5
N16  EQU   P1.6
N17  EQU   P1.7
N2  EQU   P2		   //端口P2
N20  EQU   P2.0
N21  EQU   P2.1
N22  EQU   P2.2
N23  EQU   P2.3
N24  EQU   P2.4
N25  EQU   P2.5
N26  EQU   P2.6
N27  EQU   P2.7
N3  EQU   P3			//端口P3
N30  EQU   P3.0
N31  EQU   P3.1
N32  EQU   P3.2
N33  EQU   P3.3
N34  EQU   P3.4
N35  EQU   P3.5
N36  EQU   P3.6
N37  EQU   P3.7		 */

ORG 0000H	   //程序起始位置
START:
MOV SP,#30H	   //应先计算以下主程序空间
MOV P2,#00H

DIR:		   //led管、流水灯显示
MOV P0,#00H	   //段全选中
SETB P2.7	   //位选1号管
ACALL DELAY	   //延时1ms
CPL P2.7	   //1管灭
CPL P2.6	   //选2管
ACALL DELAY
CPL P2.6
CPL P2.5
ACALL DELAY
CPL P2.5
CPL P2.4
ACALL DELAY
CPL P2.4
SETB P2.1
ACALL DELAY
CPL P2.1
MOV P0,#0FFH	

SOUND:			//中音Mi
L:SETB P2.2		//向扬声器送电
ACALL DELAY3	//正半波延时1515us
CLR P2.2		//让扬声器断电
ACALL DELAY3	//负半波延时1515us
SETB P2.2		//向扬声器送电
ACALL DELAY3	//正半波延时1515us
CLR P2.2		//让扬声器断电
ACALL DELAY3	//负半波延时1515us

SETB P2.3		//指示灯
ACALL DELAY
CLR P2.3

KEY:			  //键盘扫描
SETB P2.1
SETB P2.7
SETB P2.6
SETB P2.5
SETB P2.4			
MOV P1,#0FFH	 //p1口复位高电平
CLR P1.3		//第一行送0
ACALL DELAY2		//延时20ms
JB P1.0,K2	   //转K2
CLR P0.0 	   //k1键显示,led灯1亮
ACALL DELAY
SETB P0.0
JMP KEY
K2:
JB P1.1,K3	   //转键k3
CLR P0.1 	   //led灯2亮
ACALL DELAY
SETB P0.1
JMP KEY
K3:
JB P1.2,K4
CLR P0.2 
ACALL DELAY
SETB P0.2
JMP KEY
K4:
MOV P1,#0FFH	   //p1口复位高电平
CLR P1.4		   //第二行送0
ACALL DELAY2
JB P1.0,K5
CLR P0.3 
ACALL DELAY
SETB P0.3
JMP KEY
K5:
JB P1.1,K6
CLR P0.4 
ACALL DELAY
SETB P0.4
JMP KEY
K6:
JB P1.2,K7
CLR P0.5 
ACALL DELAY
SETB P0.5
JMP KEY
K7:
MOV P1,#0FFH	 //p1口复位高电平
CLR P1.5		 //第三行送0
ACALL DELAY2
JB P1.0,K8
CLR P0.6 
ACALL DELAY
SETB P0.6
JMP KEY
K8:
JB P1.1,K9
CLR P0.7 
ACALL DELAY
SETB P0.7
JMP KEY
K9:
JB P1.2,NK	  
SETB P2.3 	  //指示灯亮
ACALL DELAY
CLR P2.3
NK:JMP KEY

DELAY:			//延时500ms程序
MOV R0,#23
DL:MOV R1,#88
DL1:MOV R2,#122
DL2:DJNZ R2,DL2
DJNZ R1,DL1
DJNZ R0,DL
RET

DELAY2:			//延时20ms程序
MOV R0,#38
DL3:MOV R1,#196
DL4:DJNZ R1,DL4
DJNZ R0,DL3
RET

DELAY3:		   //延时1515us程序
MOV R0,#46
DL5:MOV R1,#8
DL6:DJNZ R1,DL6
DJNZ R0,DL5
RET 

END

⌨️ 快捷键说明

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