单片机并口简单应用(流水灯、数码管)实验报告6-1.docx
文本预览下载声明
实验一 单片机并口简单应用(流水灯、数码管)
实验目的
1、了解简单单片机应用系统的设计方法。
2、了解单片机汇编语言程序的基本结构
3、了解单片机汇编语言程序的设计和调试方法
4、掌握应用PROTEUS仿真软件的操作方法。
5、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。
6、培养良好的实验习惯。?
实验内容
AT89S51为主控芯片,用PROTEUS仿真设计简单单片机应用系统。
编程实现8个发光LED“流水”的现象,用一个按键控制灯的上、下、开花三种状态,先用查询。
用四个数码管开始现实185,做二个按键,加5,减4,最多加到210,最多减到150。
发辉部分:修改程序,用中断完成以上功能,用六位数码管显示学号后六位。
实验原理
1、流水灯
(1)实验原理图(可打印)
(2)实验程序(必须手写)
流水灯中断
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP KEY
MAIN:CALL INIT
LOOP:CALL MOVE
CALL DELAY
AJMP LOOP
INIT:MOV R3,#0FEH
MOV R4,#0
MOV P2,#0FFH
MOV R0,#00H
SETB IT0
SETB EX0
SETB EA
RET
MOVE:CJNE R0,#00H,MOV2
MOV A,R3
RL A
MOV R3,A
MOV P2,R3
MOV2:CJNE R0,#01H,MOV3
MOV A,R3
RR A
MOV R3,A
MOV P2,R3
MOV3:CJNE R0,#02H,LEND
MOV DPTR,#TAB
MOV R7,#0
MOV R6,#4
LOP: MOV A,R7
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
INC R7
DJNZ R6,LOP
LEND: RET
KEY: PUSH PSW
PUSH ACC
MOV A,R0
INC A
CJNE A,#03H,HU1
MOV A,#00H
HU1: MOV R0,A
POP ACC
POP PSW
RETI
DELAY:MOV R2,#150
DE1: MOV R5,#200
DJNZ R5,$
DJNZ R2,DE1
RET
TAB: DB 0e7H,0dbH,0bdH,07eH
END
;OK
查询
ORG 0000H
AJMP START
START:
MOV R3,#0FEH
MOV R4,#0
MOV P2,#0FFH
MOV R0,#00H
MAIN:
CALL DET
CALL MOVE
AJMP MAIN
DET:
JB P3.2,DEND
JNB P3.2,$
MOV A,R0
INC A
MOV R0,A
CJNE A,#03H,DEND
MOV R0,#00H
DEND:RET
MOVE:CJNE R0,#00H,MOV2
MOV A,R3
RL A
MOV R3,A
MOV P2,R3
MOV2:CJNE R0,#01H,MOV3
MOV A,R3
RR A
MOV R3,A
MOV P2,R3
MOV3:CJNE R0,#02H,LEND
MOV DPTR,#TAB
MOV R7,#0
MOV R6,#4
LOP: MOV A,R7
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
INC R7
DJNZ R6,LOP
LEND: RET
DELAY: MOV R4,#250
DE1: MOV R5,#200
DJNZ R5,$
DJNZ R4,DE1
RET
TAB: DB 0e7H,0dbH,0bdH,07eH
END
;OK
2、数码管显示
(1)实验原理图(可打印)
实验程序(可打印)
数码管 查询
ORG 0000H
AJMP MAIN
MAIN:
MOV R2,#000
MOV R3,#185
MANAGE:
LCALL COMPUTING
LCALL BCD
LCALL DISPLAY
AJMP MANAGE
COMPUTING:
JB P3.1,SU
JNB P3.1,$
INC R3
INC R3
INC R3
INC R3
INC R3
CJNE R3,#210,PD1
PD1: JC LEND
MOV R3,#210
SU: JB P3.
显示全部