单片机典型实验汇编程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一LED灯控制实验
实验任务:
①试编程用51单片机P0口实现8个LED 灯的交替亮灭控制;
②试编程实现二进制加法的LED显示;
③试编程实现8位LED灯的单方向跑马灯控制。
实验二数码管静态显示控制实验
实验任务:
用P0口驱动LED数码管静态显示0、1、2、3、4五个数码,每两数码时间间隔2S,循环往复显示。
实验三数码管动态显示控制实验
实验任务:
两片四位一体数码管动态显示0—7八个数码,每两位数码时间间隔2S,循环往复显示,P0口用于段码输出,P1口用于位选。
实验四按键识别控制实验
实验任务:
按键识别,用P2口识别按键,K1—K8对应数码为1—8,按下按键,数码管静态显示对应的数码。
参考程序
实验一:
①试编程用51单片机P0口实现8个LED 灯的交替亮灭控制
ORG 0000H ;程序从此地址开始运行
LJMP MAIN ;跳转到MAIN 程序处
ORG 0100H ;MAIN 从0100H处开始
MAIN:
MOV P2 ,#00H ;P2为低电平LED 灯亮
ACALL DELAY ;调用延时子程序
MOV P2 ,#0FFH
ACALL DELAY
AJMP MAIN
DELAY:
MOV R5,#02H ;将立即数传给寄存器R5
F3: MOV R6,#0FFH
F2: MOV R7,#0FFH
F1: DJNZ R7,F1 ;若为0程序向下执行,若不为0程序跳转到
DJNZ R6,F2
DJNZ R5,F3
RET
END
②试编程实现二进制加法的LED显示
ORG 0000H ;程序从0000开始运行
AJMP MAIN
ORG 0100H
MAIN: MOV A ,#000h
LOOP: MOV P2,A ;全不亮
CALL DELAY ;延时。
INC A ;每次加一。
JMP LOOP
DELAY:MOV R5,#50 ;延时。
D1: MOV R6,#40
D2: MOV R7,#248
D3: DJNZ R7,D3
DJNZ R6,D2
DJNZ R5,D1
RET
END
③试编程实现8位LED灯的单方向跑马灯控制
ORG 0000H ;程序从0000开始运行
LJMP MAIN ;跳到主程序MAIN: ;主程序循环点亮
MOV P2,#00H ;全亮
LCALL DELAY ;延时一段时间
MOV A,#0FEH ;每次只亮一个
灯。
LOOP: MOV P2,A ;输出到p2
LCALL DELAY ;延时
RL A ;循环左移。
AJMP LOOP ;跳转main继续循环
DELAY:MOV R5,#20 ;延时子程序1闪烁灯调用
D1:MOV R6,#20
D2:MOV R7,#250
D3:DJNZ R7,D3
DJNZ R6,D2
DJNZ R5,D1
RET
END
实验二:
LED数码管显示0、1、2、3、4,循环进行ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV 30H,#00H
MOV R0,#5
LOOP: MOV A,30H
INC 30H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
LCALL DLEAY
DJNZ R0,LOOP
LJMP MAIN
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DLEAY:MOV R5,#50
D1: MOV R6,#40
D2: MOV R7,#248
D3: DJNZ R7,D3
DJNZ R6,D2
DJNZ R5,D1
RET
END
实验三:
LED数码管动态显示0—7
ORG 0000H
LJMP MAIN
ORG 0100H MAIN: MOV 30H,#00H
MOV 31H,#0FEH
MOV R0,#8
LOOP: MOV A,30H
INC 30H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV P1,31H
MOV A,31H
RL A
MOV 31H,A
LCALL DLEAY
DJNZ R0,LOOP
LJMP MAIN
TABLE:DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H DLEAY:MOV R5,#50
D1: MOV R6,#40
D2: MOV R7,#248
D3: DJNZ R7,D3
DJNZ R6,D2
DJNZ R5,D1
RET
END
实验四:
按键识别
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:MOV P0,#00H
MOV P2,#0FFH
MOV A,P2
CJNE A,#0FFH,QDD
LJMP RETURN
QDD:MOV R0,A
LCALL DLEAY1
MOV A,P2
CJNE A,00H,RETURN
MOV A,P2
JNB ACC.0,KEY1
JNB ACC.1,KEY2
JNB ACC.2,KEY3
JNB ACC.3,KEY4