微处理器原理与应用。
实验报告。姓名:王烁行。
同组人:张绍文、马文佳、孙蓦征。
学号:1080520406
班级:0805204
指导教师:赵彬。
院系: 电子信息工程。
扩展实验箱上的74ls273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。
1. 学习在单片机系统中扩展简单i/o接口的方法。
2. 学习数据输出程序的设计方法。
3. 学习模拟交通灯控制的实现方法。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将l1、l3、l5作为东西方向的指示灯,将l2、l4、l6作为南北方向的指示灯。而交通灯的燃灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。
按指导书搭接电路,调试程序并运行。
图 1实验电路图。
图 2实验流程图。
实验现象与既定目标相符:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
实验中发现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。
port equ 0cfa0h ;片选地址cs0
org 0000h
ljmp begin
org 4100h
begin: mov a,#03h亮,其余灭。
acall show ;调用273显示单元。
acall t03延时3秒。
ew: mov a,#12h ;东西导通;南北截止。
acall show
acall t10 ;延时10秒
mov a,#02h ;东西截止;南北截止。
acall show
snby: mov a,#04h ;3亮,其余灭
acall show ;调用273显示单元。
acall t02 ;延时2秒。
mov a,#00h ;
acall show
acall t02 ;延时2秒。
mov a,#04h ;3亮。
acall show
acall t02 ;延时2秒。
mov a,#00h ;灭。
acall show
acall t022秒。
mov a,#04h ;3亮。
acall show
acall t022秒。
mov a,#00h ;灭。
acall show
acall t022秒。
mov a,#04h ;3亮。
acall show
acall t022秒。
mov a,#00h ;灭。
acall show
acall t022秒。
mov a,#04h ;3亮。
acall show
acall t022秒。
mov a,#00h ;东西黄灯闪烁程序。
acall show
acall t02 ;延时0.2秒。
mov a,#02h ;东西路口黄灯灭;南北路口红灯亮。
acall show
acall t02 ;延时0.2秒。
mov a,#03h ;东西南北都截止
acall show
acall t02 ;延时0.2秒
mov a,#21h ;东西截止;南北导通。
acall show
acall t10 ;延时10秒
mov a,#01h ;东西截止;南北截止。
acall show
sn: mov a,#08h
acall show
acall t02
mov a,#00h
acall show
acall t02
mov a,#08h
acall show
acall t02
mov a,#00h
acall show
acall t02
mov a,#08h
acall show
acall t02
mov a,#00h
acall show
acall t02
mov a,#08h
acall show
acall t02
mov a,#00h
acall show
acall t02
mov a,#08h
acall show
acall t02
mov a,#00h ;南北黄灯闪烁程序。
acall show
acall t02 ;延时0.2秒。
mov a,#01h ;东西截止;南北截止。
acall show
acall t02 ;延时0.2秒
mov a,#03h ;东西南北都截止。
acall show
acall t02 ;延时0.2秒
jmp ew ;转ew循环。
t10: mov r1,#100 ;延时10秒。
jmp tu1
t03: mov r1,#30 ;延时3秒。
jmp tu1
t02: mov r1,#02 ;延时0.2秒。
tu1: mov r2,#
tu2: mov r3,#
tu3: djnz r3,tu3
djnz r2,tu2
djnz r1,tu1
retshow: mov dptr,#port ;273显示单元。
movx @dptr,a
retend
利用74ls244作为输入口,读取开状态,并将此状态通过发光二极管显示出来。
1. 学习在单片机系统中扩展简单的i/o口的方法。
2. 学习数据输入,输出程序的编制方法。
mcs-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是很有限的。若需要扩展的芯片较多,则mcs-51总线口的负载过重,74ls244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度,延时时间约为0.01秒,不会影响显示的稳定。
按指导书搭接电路,调试程序并运行。
图 3实验电路图。
图 4实验电路图。
图 5实验流程图。
74ls244作为输入口,二极管按开关状态显示。