实验四 定时交通信号灯控制 联系客服

发布时间 : 星期五 文章实验四 定时交通信号灯控制更新完毕开始阅读bab75427a5e9856a5612608d

实验四 定时交通信号灯控制

一、实验目的

1、进一步了解MCS-51单片机定时/计数器的基本用法及时间常数的计算方法; 2、熟悉定时指令,并掌握其基本应用; 3、熟悉定时器的查询和中断两种方式的应用。 二、实验内容

设计一个单片机控制交通信号灯,使其能模拟城市十字路口交通信号灯的功能,其中东西方向和南北方向各用一组发光二极管(红、黄、绿)来表示交通信号灯。 三、实验电路及连线

四、实验说明

当东西方向放行、南北方向禁止时,东西方向绿灯亮25s,然后黄灯亮5s;南北方向红灯亮30s。当南北方向放行、东西方向禁止时,南北方向绿灯亮25s,然后黄灯亮5s;东西方向红灯亮30s。这两条线路交替地成为放行线和禁行线时就可以是定时交通控制。控制电路的核心是80C51单片机,其内部带有4KB的ROM,无须扩展程序存储器;其也没有大量的运算和暂存数据,芯片内的128B RAM能满足要求,不必外扩RAM。 “信号灯”控制码表

P1.5 南北

P1.4 南北

P1.3 南北

P1.2 东西

P1.1 东西

P1.0

控制码

东西

状态说明

方向 绿灯 1 1 0 1

方向 黄灯 1 1 1 0

方向 红灯 0 0 1 1

方向 绿灯 0 1 1 1

方向 黄灯 1 0 1 1

方向 红灯 1 1 0 0

33H 35H 1EH 2EH

东西放行,南北禁行 东西警告,南北禁行 东西禁行,南北放行 东西禁行,南北警告

假设晶振频率为6MHZ 五、实验步骤

(一)以查询方式的定时实现交通灯的控制。 1、运行Proteus软件,按图画出电路原理图。 2、计算定时初值

3、运行Keil软件,创建项目,输入程序并保存。 4、编译程序,修改编辑错误。

5、进行仿真器设置,设定晶振频率为6MHZ。 6、Keil与Proteus的仿真调试

(二) 在不改变当前电路的前提下,实现以中断方式代替查询方式的定时。 六、实验参考程序

ORG 0000H LJMP MAIN

ORG 1000H

MAIN: MOV P1,#33H ;东西放行,南北禁行 MOV R0,#19H ;延时秒数 MAIN1:

LCALL DELAY ;1s延时子程序 DJNZ R0,MAIN1

MOV P1,#35H ;东西警告,南北禁行 MOV R0,#05H MAIN2:

LCALL DELAY DJNZ R0,MAIN2

MOV P1,#1EH ;东西禁行,南北放行 MOV R0,#19H MAIN3:

LCALL DELAY DJNZ R0,MAIN3

MOV P1,#2EH ;东西禁行,南北警告 MOV R0,#05H MAIN4: LCALL DELAY DJNZ R0,MAIN4 AJMP MAIN

DELAY: ;利用定时器T0延时1s子程序 RET END 七、预习要求

1、认真阅读实验指导书,领会实验目的。 2、阅读并理解本实验的原理图及参考程序。 3、复习定时/计数器的相关知识。 八、思考题

1、若晶振频率fosc=12MHZ,则定时初值是多少?循环次数是多少? 2、若将T0改为T1,程序应作哪些改动? 九、实验报告要求

1、将实验步骤中第(二)步的实验程序写在实验报告中。 2、写出思考题答案。