基于AT98C51的I/O口实验
实验软件protues8,汇编语言
本篇是51单片机的入门实验
一、 实验目的
1、掌握P1、P2、P3口简单使用。
2、学习延时程序的编写和使用
二、 实验内容
选择CPU2,RUN按键(连接于P3.3引脚)做输入口,作为点亮和熄灭的命令。收到按键的命令后,通过程序控制发光二极管D1~D8点亮和熄灭。电路原理图如图1-2 所示。
三、 实验电路
原理图如下:
四、 实验电路图
五、 实验过程与结果
3、流水灯程序:按下按键RUN,D1—D8由左至右循环点亮。
ORG 0000H
SJMP START
ORG 0030H
START: MOV P0,#0FFH
MOV A,#0FEH
AJ1: JB P3.2,AJ1
LCALL DELAY
JB P3.2,AJ1
AJ2: JNB P3.2,AJ2
LCALL DELAY
JNB P3.2,AJ2
LOOP: MOV P0,A
LCALL DELAY
RL A
AJMP LOOP
DELAY: MOV R6,#0FEH
LOOP2: MOV R7,#00H
LOOP1: DJNZ R7,LOOP1
DJNZ R6,LOOP2
RET
END
可以观察到D1—D8由左至右循环点亮
4、按下按键RUN,D1—D8由左至右(或由右至左)循环点亮,或L4、L5同时首先点亮,L3、L6点亮,L2、L7点亮,L1、L8点亮,循环往复。
ORG 0000H
SJMP START
ORG 0030H
START: MOV P0,#0FFH
AJ1: JB P3.2,AJ1
LCALL DELAY
JB P3.2,AJ1
AJ2: JNB P3.2,AJ2
LCALL DELAY
JNB P3.2,AJ2
LOOP: MOV P0,#0E7H
LCALL DELAY
MOV P0,#0DBH
LCALL DELAY
MOV P0,#0BDH
LCALL DELAY
MOV P0,#7EH
LCALL DELAY
AJMP LOOP
DELAY: MOV R6,#0FEH
LOOP2: MOV R7,#00H
LOOP1: DJNZ R7,LOOP1
DJNZ R6,LOOP2
RET
END
5、按键RUN每按下一次,D1—D8发光二极管按16进制方式加一点亮。
ORG 0000H
SJMP START
ORG 0030H
START: MOV A,#0FFH
AJ1: JB P3.2,AJ1
LCALL DELAY
JB P3.2,AJ1
AJ2: JNB P3.2,AJ2
LCALL DELAY
JNB P3.2,AJ2
LOOP: MOV P0,A
LCALL DELAY
DEC A
LJMP AJ1
DELAY: MOV R6,#0FEH
LOOP2: MOV R7,#00H
LOOP1: DJNZ R7,LOOP1
DJNZ R6,LOOP2
RET
END
注意:
①RES电阻请勿调的太高,电阻过高LED灯会很暗以至于看不见。笔者写的200欧姆
②请注意LED的方向,LED灯是二极管,只能单项流通电流。
课本:51单片机原理、接口技术及工程实践。