当前位置:文档之家› 实验二 交通灯实验

实验二 交通灯实验

实验二交通灯实验
一、实验目的
1、进一步熟悉HNIST-2型单片机系统相关硬件电路;
2、掌握单片机中断的应用和中断处理程序的编写方法;
3、掌握单片机内部定时/计数器的使用及编程方法。

二、实验前准备
1、完成作业4;
2、根据实验内容编写好相关程序,并进行Proteus仿真。

三、实验内容
实验内容为3项,其中第1、2项必做。

1、基本交通灯。

根据图3.2电路,用单片机的IO口控制4组红绿黄共12个发光二极管,使发光二极管按照一定规则与次序发光与闪亮以实现模拟交通灯的功能。

假设初始状态为:(南北通行状态)南北绿灯、东西红灯(25s);后转为过度状态:南北黄灯、东西红灯(5s);再转为东西通行状态:东西绿灯、南北红灯25(s)。

再转为过渡状态:东西黄灯、南北红灯(5s),然后循环往复。

要求采用定时器实现所需要的定时时间。

2、键控交通灯。

按一下K1键,保持南北通行状态;按一下K2键,保持东西通行状态;按一下K3键,保持正常交通灯。

要求在中断中进行按键处理。

3、具有闪烁的交通灯。

在2的基础上增加,绿灯最后5s闪烁,即亮0.5S灭0.5S闪烁。

四、实验原理图
图3.2 交通灯实验电路原理图
图3.2共有4个按键K1、K2、K3、K4,分别连接到单片机P2.0、P2.1、P2.2、P2.3引脚,按键后对应引脚为低电平,通过4个二极管D17、D18、D19、D20连接到P3.2(外部中断0),这是二极管构成的相与电路,即任意按一个键能在P3.2上产生一个低电平或下降沿,作为中断触发信号。

五、软件设计思想
1、定时思想。

采用定时器T0或T1的方式1定时500ms,每500ms中断进行计数,计数10次即0.5s,计数20次即1s,对秒计数实现所需要的定时时间。

2、亮灯控制思想。

单片机控制灯引脚与灯对应如下,0点亮。

一共有四种状态S0、S1、S2、S3,
a、南北通行S0状态:
南北绿灯、东西红灯,P0= 11111100=0xfc,P1=11110011=0xf3;
b、过渡状态S1:
南北黄灯、东西红灯,P0=11111101=0xfd,P1=01110101=0x75;
c、东西通行状态S2:
d、过渡状态S3:
设置一个秒计数单元SEC每秒+1,设置两个控制值变量a,b。

首先令SEC=0,a=0xfd,b=0x75,处于S0状态;
SEC==25,a=0xfc,b=0xf3,处于S1状态;
SEC==30,a=0xfb,b=0xae,处于S2状态;
SEC==55,a=0xf7,b=0x9e,处于S3状态;
SEC==60,SEC=0,a=0xfd,b=0x75,处于S0状态;
P0=a,P1=b。

3、交通灯键控
按键后即进入外部中断0,在外部中断0中断程序中判断:若是按K1键,控制南北通行状态,并将定时器T0关闭,即可保持南北通行状态;若是按K2键,控制东西通行状态,并将定时器T0中断关闭,即可保持东西通行状态;若是按K3键,开启定时器T0中断,恢复正常交通灯。

4、闪烁控制
在需要闪烁时,0.5s按正常显示,0.5s全灭,即是闪烁效果。

实现方法是:当=0.5s的时刻,并且在南北通行的最后5s(19<sec<25)或在东西通行的最后5s(49<sec<55),灭绿灯:P0=a|0xf9,P1==b|0x24,当=1s的时刻,按正常显示。

六、实验思考题
1、为什么采用定时器T0的方式1?为什么不采用方式2?
2、采用中断处理按键有什么优点?本实验可不可以不采用中断处理按键,
不采用中断怎样实现?。

相关主题