单片机控制交通灯V1.0

该博客介绍了单片机控制的交通灯V1.0系统设计,包括南北、东西方向绿、黄、红灯的定时切换,7段LED倒计时显示,以及紧急情况下的人工干预功能。在实际仿真中遇到数码管闪烁问题,作者期待通过后续学习优化解决方案。
摘要由CSDN通过智能技术生成

单片机控制交通灯V1.0

要求:

1)、十字路口南北、东西方向各装有绿、黄、红指示灯,南北通行时间为15s,东西通行时间为10s,当由绿灯变为红灯前的3s内,绿灯灭而黄灯亮。

2)、通行时间各由两位7LED显示器指示,且为倒时间指示(即从1510逐次减一,禁止通行时显示器灭)。

3)、当某方向显示红灯时,容许人工干预强行改变两个方向的指示灯颜色,以让救护车之类的车辆通行,但发出改变通行命令后有3s时间使显示绿灯的方向改变显示黄灯,并以每秒10次的频率闪烁,以示警告。

 

小结:本实验用ISIS 7 ProfessionalKeil uVision2仿真,由于是学单片机以来做的第一个实验,在南北、东西两个方向四个数码管倒计时那里控制得不好,用动态描扫实现,闪烁比较明显,希望在后面的理论学习中找到更好的实现方法。

 

 

 

参考源程序:

#include"reg52.h"

 

#define uchar unsigned char

#define uint unsigned int

 

 

sbit one=P3^4;      //数码段位选控制

sbit two=P3^5;

sbit three=P3^6;

sbit four=P3^7;

 

sbit d_lu=P0^1;

sbit d_huang=P0^2;

sbit d_hong=P0^3;

 

sbit x_lu=P2^1;

sbit x_huang=P2^2;

sbit x_hong=P2^3;

 

sbit n_lu=P2^4;

sbit n_huang=P2^5;

sbit n_hong=P2^6;

 

sbit b_lu=P0^4;

sbit b_huang=P0^5;

sbit b_hong=P0^6;

 

uint fangxiang=0;

uint m,n,k;

 

code unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90};//7LED对应于数字'0','1'...'9'

void delay(uint z)

{

    uint x,y;

    for(x=z;x>0;x--)

        for(y=110;y>0;y--);

}

 

 

 

void delayMs(uint timer_num, uint fxang)

{

    uchar aa,bb,j;

    TMOD=0x10;                  //设定T1为方式1

    TR1=1;                      //启动定时器工作 

    fangxiang=fxang;                          

    for(j=0;j<10;j++)           //每隔100ms中断一次,中断10次为1s

    {

        TH1=0x3c;                   //定初值                  

        TL1=0xb0;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值