基于51单片机交通灯的设计(中断)

本文章是51单片机过程当中实验报告,自己进行学习和补充

实验目的

1、了解外部中断原理;

2、设置外部中断相关的特殊功能寄存器;

3、设计单片机外部中断应用系统。

二、实验内容

实验任务:交通灯控制系统设计

要求:正常情况下,按下表显示,当有警车出现时,东西向,南北向均为红灯,持续10S又恢复正常情况。

方 向

东西向

南北向

绿

绿

对应引脚

P1.0

P1.1

P1.2

P1.5

P1.6

P1.7

10S

3S

闪烁

闪烁

10S

循环进行。用P3.2口为低电平来模拟警车到来。

、实验原理

东西和南北各由一组三色交通灯来控制。分析可知,当东西向为绿灯通行时,南北向必须为红灯禁行;绿灯结束后,东西南北都进入黄灯闪烁等待状态,当东西向红灯;黄灯结束后,南北变为红灯禁行,南北向变为绿灯通行;南北向绿灯结束后,进入黄灯闪烁等待状态,东西向红灯,如此循环。

电路原理图见图2-3

图2-3基于51单片机的仿真原理图

验程序

#include <REGX51.H>

void delay(int z)
{
	int m,s;
	for(m=z;m>0;m--)
	for(s=0;s<921;s++);
}	
//中断设计
void lnit()
{
	IT0=1;
	EX0=1;
//	IT1=1;
//	EX1=1;
	EA=1;
}

int main(void)
{
	char blink;
	lnit();
	while(1)
	{
//东西红灯亮,南北绿灯亮高电平点亮
	P1=0x81;
	delay(1662);
		//黄灯闪烁三下
	while(blink<3)
	{
	P1=0x42;
	delay(60);
	P1=0x00;
	delay(60);
		blink ++;
	}
//东西绿灯亮,南北红灯亮
	P1=0x24;
	delay(1662);
		//黄灯闪烁三下
	while(blink<3)
		{
		P1=0x42;
		delay(60);
		P1=0x00;
		delay(60);
		blink ++;
		}
	}
}

void int0() interrupt 0
{
    unsigned char red;
	red=P1;
	P1=0x21;
	delay(1667);
	P1=red;
	
}

七、验程序

1.东西红灯亮,南北绿灯亮持续十秒。具体见图3-7

图3-7-1仿真结果

2.东西绿灯亮,南北红灯亮持续十秒。具体见图3-7

图3-7-2仿真结果

2.东西绿灯亮,南北红灯亮持续十秒。具体见图3-7

图3-7-3仿真结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值