数字量输入输出实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字量输入输出实验
一、实验目的
了解P1口作为输入输出方式使用时,CPU 对P1口的操作方式。
二、实验环境
1、软件环境要求
Windows XP操作系统以及Keil C51 单片机集成开发环境。
2、硬件环境要求
电脑一台,TD-51单片机系统,开关及LED显示单元,单次脉冲单元。三、实验内容
编写实验程序,将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
提高部分:
LED灯控制
要求:通过KK1实现LED灯工作方式即时控制,完成LED灯左循环、右循环、间隔闪烁功能。
四、实验分析
P1口是8位准双向口,每一位均可独立定义为输入输出,输入位置1。
通过A的左/右移位及赋值55H、0AAH,再将A值送入P1,可实现LED灯左循环、右循环、间隔闪烁功能。
五、实验步骤
(一)基础实验程序及实验程序流程图如下。
实验程序:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P1,#0F0H ;将开关状态送入P1高位
MOV A,P1 ;送入A
SWAP A ;高低位互换
MOV P1,A ;将开关状态送入P1低位
JMP MAIN ;循环
SJMP $
END
程序流程图:
图1 LED开关控制显示功能图
图2 实验接线图
实验步骤:
1. 按图2所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;
2. 编写实验程序,编译链接无误后进入调试状态;
3. 运行实验程序,观察实验现象,验证程序正确性;
4. 按复位按键,结束程序运行,退出调试状态;
5. 自行设计实验,验证单片机其它IO 口的使用。
(二)提高实验程序及实验程序流程图如下。
实验程序:实验程序流程图:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
KT: ;检查KK1
SETB P3.3
JNB P3.3,KT
CLR P3.3
LL1: ;左循环
MOV A,#01H
X1:
MOV P1,A
CALL DELAY
RL A
SETB P3.3
JNB P3.3,X1
CLR P3.3
LL2: ;右循环
MOV A,#80H
X2:
MOV P1,A
CALL DELAY
RR A
SETB P3.3
JNB P3.3,X2
CLR P3.3
LL3: ;间隔闪烁
MOV A,#55H
MOV P1,A
CALL DELAY
MOV A,#0AAH
MOV P1,A
CALL DELAY
SETB P3.3
JNB P3.3,LL3
CLR P3.3
JMP KT
DELAY: ;延时子程序
MOV R2,#00H
图3 实验流程图MOV R3,#00H
ABC:
DJNZ R2,ABC
DJNZ R3,ABC
RET
SJMP $
END
实验步骤:
(1)按图4连接实验电路;
(2)编写实验程序,编译、链接无误后启动调试;
(3)运行实验程序,每按一次KK1+,观察实验现象;
(4)验证程序功能,实验结束按复位按键退出调试。
六、实验结果
1.通过K0-K3开关状态可控制D0-D3灯。
2.程序运行后,按一下KK1,LED 灯左循环,再按一下KK1,LED 灯右循环,再按一下KK1,LED 灯间隔闪烁。再按一下KK1,LED 灯左循环……如此循环。 图
4 提高实验接线图