基于单片机的简易红绿灯系统proteus仿真

0、前言

【1】、功能

十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间。

【2】所用工具

keil-4、proteus-8

1、代码

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit EW_LED2=P2^3;
sbit EW_LED1=P2^2;
sbit SN_LED2=P2^1;
sbit SN_LED1=P2^0;
sbit SN_Yellow=P1^6;
sbit SN_Red=P1^7;
sbit EW_Yellow=P1^2;
sbit EW_Red=P1^3;
bit Flag_SN_Yellow;
bit	Flag_EW_Yellow;
char Time_EW;
char Time_SN;
uchar EW=10,SN=10,EWL=3,SNL=3;
uchar EW1=10,SN1=10,EWL1=3,SNL1=3;
uchar code table[10]={
   0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code s[9]
  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
(1)用8253 计时器来完成时间的设定; (3)用8259 中断控制器来进行紧急情况处理,如警车执行任务等情况; (4)通过8255A 并口来控制LED 发光二极管的亮灭,输出为0 则亮,输出为1 则 灭; (5)用8255 来输出绿灯的倒计时间。 2 设计方案及分工 在这个方案里,我们将此设计分为5 个模块,即:实现电路设计、连接电路以及各模块 间整合的模块、实现交通灯循环的模块、对中断进行处理的模块、实现绿灯倒计时的显示模 块、实现夜间控制模块。 具体分工如下: xx:实现8253、电路设计、连接电路以及各模块间整合的模块 xx:实现夜间控制模块 xx:实现交通灯循环的模块 xx: 对中断进行处理的模块 xx: 实现绿灯倒计时的显示模块 我们想通过这次设计,具体实现以下功能: 以8086CPU 为核心设计一个交通灯控制系统,通过8255 并口来控制LED 发光二级管 的亮灭,输出0 为亮,输出一为灭;用8253 来实现一个定时器(隔一定时间发生一边沿跳 变,引发8259 中断);用8259 来实现对中断的处理; 设有一个十字路口,东西方向与南北方向各有一个红绿灯,初始状态为东西路口的红灯 亮南北路口的绿灯,南北方向的路口通车,并显示南北路口绿灯的倒计时间。延迟一定时间 之后,南北路口与东西路口都为黄灯亮,延迟一定的时间后,南北方向的红灯亮,东西路口 的绿灯两,东西方向的路口通车,并显示东西路口的绿灯倒计时间。延迟一定时间后直接跳 变为东西方向的红灯亮,南北路口的绿灯亮。如上所述循环一定次数后假设进入晚上,屏幕 上显示Good Night!此时这两个路口的黄灯开始闪烁,数码管清零并且闪烁。延迟一定时间 后假设进入早晨并在屏幕上显示Good Night!并实现交通灯的循环。如果遇到紧急情况,采 取紧急中断并且两个方向路口的红灯全亮确保紧急情况得到妥善处理,并且不管。在紧急情 况中断处理模块里通过拨动按钮KK2 来触发中断,使各个路口的灯全显示红灯,并在屏幕 上输出Waring!中断完成后跳回原来的状态,继续运行。 3. 各个模块的实现 3.1交通灯循环模块(XX) 3.1.1 设计思想 十字路口分为南北方向和东西方向,各个方向有红黄绿三灯,其循环过程如下: 1:东西方向路口的红灯亮,南北路口的绿灯亮; 2:东西路口与南北路口都为黄灯亮; 3:东西方向路口的绿灯亮,南北方向路口的红灯亮; 4:不经过黄灯亮,直接跳变为状态1; 5:按如上过程循环; 3.1.2流程图 图3-1 8255 并口输出流程图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值