找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2414|回复: 1
收起左侧

基于51单片机定时器T0的交通灯

[复制链接]
ID:540262 发表于 2020-6-3 21:46 | 显示全部楼层 |阅读模式
电路原理图

源程序如下
//基于51单片机的交通灯设计,黄灯亮起时会闪烁
//并发出警报,提醒行人或车辆快速通过
//定时准确,误差小,便于调节时间长短
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char


sbit NB=P1^0;         //南北走向黄灯报警器控制端口
sbit DX=P1^1;          //东西走向黄灯报警器控制端口
//简易毫秒延时函数
void delay( uint n)
{
uint i;
uchar j;
for(i=0;i<n;i++)
for(j=0;j<114;j++);
}


void main()
{
uchar a=0,b=0,BIAOZHI=3;
//定时器初始化
EA=1;         //开总中断
ET0=1;        //开定时器0中断
TMOD=0x01;        //设置定时/计数器方式为16位定时模式
TH0 = 0x4b;
TL0 = 0xfc;//0x4bfc        定时50ms
TR0=1;          //启动定时器


while(1)
{               


    if(TF0 == 1)//判断T1是否溢出
        {  //定时器溢出后重赋处置
                TH0 = 0x4b;
            TL0 = 0xfc;//0x4bfc        定时50ms
                TF0 = 0;//清零便于下次判断
                a++;//50毫秒计数加1       
                if(a==20) {a=0;b--;}//a=20;说明一秒时间到
        }


        if(b==0)
        {


           switch(BIAOZHI)
                   {
                case 0:
                         BIAOZHI=1;b=3; break; //南北黄灯时长
                case 1:
                         BIAOZHI=2;b=10; break;//南北红灯时长
                case 2:
                         BIAOZHI=3;b=3; break;         //南北绿灯时长
            case 3:  BIAOZHI=0;b=10;  break;        //东西黄灯时长
                        }                                         
     }
               
   switch(BIAOZHI)
        {
                case 0:
                         P0=0X33; break;
                case 1:  if(a%4==1)         //黄灯闪烁 每隔200 毫秒闪烁一次
                         {P0=0X35; NB=0;}
                                 if(a%4==0)
                                 {P0=0x37; NB=1;}
                       
                                 break;
                case 2:
                         P0=0X1E; break;
            case 3:  if(a%4==1)        //黄灯闪烁 每隔200 毫秒闪烁一次
                         {P0=0X2e;DX=0;}
                           if(a%4==0)
                             {P0=0x3e;DX=1;}
                                break;


        }         
}






回复

使用道具 举报

ID:656879 发表于 2020-6-20 14:46 | 显示全部楼层
有Proteus仿真图吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表