数字量输入输出实验.docx
数字量输入输出实验数字量输入输出实验 一、实验目的 了解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 MOV ABC: DJNZ R2,#00H R3,#00H R2,ABC ;左循环 ;右循环 ;间隔闪烁 ;延时子程序 图3 实验流程图 DJNZ R3,ABC RET SJMP $ END 实验步骤: 按图4连接实验电路; 编写实验程序,编译、链接无误后启动调试; 运行实验程序,每按一次KK1+,观察实验现象; 验证程序功能,实验结束按复位按键退出调试。 图4 提高实验接线图 六、实验结果 1通过K0-K3开关状态可控制D0-D3灯。 2程序运行后,按一下KK1,LED灯左循环,再按一下KK1,LED灯右循环,再按一下KK1,LED灯间隔闪烁。再按一下KK1,LED灯左循环如此循环。