发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。
运行实验程序,K1做为左转弯开关,K2做为右转弯开关。L5、L6做为右转弯灯,L1、L2做为左转弯灯。
结果显示:1:K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;
2:K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、
L6)以一定频率闪烁;
3:K1、K2同时接低电平时,发光二极管全灭; 4:K1、K2同时接高电平时,发光二极管全亮。
六、参考程序:T2.ASM
NAME T2 ;P1口输入输出实验 CSEG AT 0000H
LJMP START CSEG AT 4100H
START: SETB P1.0
SETB P1.1 ;用于输入时先置位口内锁存器 MOV A,P1
ANL A,#03H ;从P1口读入开关状态,取低两位 MOV DPTR,#TAB ;转移表首地址送DPTR MOVC A,@A+DPTR JMP @A+DPTR TAB: DB PRG0-TAB DB PRG1-TAB DB PRG2-TAB DB PRG3-TAB
PRG0: MOV P1,#0FFH ;向P1口输出#0FFH,发光二极管全灭 ;此时K1=0,K2=0 JMP START
PRG1: MOV P1,#0F3H ;只点亮L5、L6,表示左转弯 ACALL DELAY ;此时K1=1,K2=0 MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY ;延时0.5秒 JMP START
PRG2: MOV P1,#0CFH ;只点亮L7、L8,表示右转弯 ACALL DELAY ;此时K1=0,K2=1 MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY
单片机实验指导书 第16页
JMP START PRG3: MOV P1,#00H ;发光二极管全亮,此时K1=1,K2=1 JMP START
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DELAY: MOV R1,#5 ;延时0.5秒 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END 七、程序框图:
单片机实验指导书 第17页
上电,程序初始化,设置P1口为输入、输出双线口(P1.0、P1.1为输入口,P1.2、P1.3、P1.4、P1.5为输出口采集P1.0、P1.1输入口的值进入A累加器,根据累加器A的值调转到相应的子程序入口A=00A=01A=10A=11给P1口赋值0FFH(四个发光二极管全灭)依次给P1口赋值0F3H和0FFH,每种状态延时0.5秒依次给P1口赋值0CFH和0FFH,每种状态延时0.5秒给P1口赋值00H(四个发光二极管全亮)
思考题:
修改程序,使K1,K2接高电平时,所有发光二极管闪烁。
单片机实验指导书 第18页
实验3 简单I/O口扩展实验一
——交通灯控制实验
一、实验目的:
1. 学习在单片机系统中扩展简单I/O接口的方法。 2. 学习数据输出程序的设计方法。 3. 学习模拟交通灯控制的实现方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验内容:
扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。 四、实验原理:
要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验原理图
单片机实验指导书 第19页
六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.
运行实验程序,观察LED显示情况是否与实验内容相符。
七、程序框图:
单片机实验指导书 第20页