单片机AT89C52十字路口交通灯控制C语言程序_单片机交通灯控制程序

其他范文 时间:2020-02-26 22:15:42 收藏本文下载本文
【www.daodoc.com - 其他范文】

单片机AT89C52十字路口交通灯控制C语言程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机交通灯控制程序”。

单片机AT89C52十字路口交通灯控制程序

东西方向60秒,南北方向57秒

#include #define uchar unsigned char #define uint unsigned int

#define ON 0 #define OFF 1 sbit NS_G=P2^5;//南北绿灯

sbit NS_Y=P2^4;//南北黄灯 sbit NS_R=P2^3;//南北红灯

sbit EW_G=P2^2;//东西绿灯 sbit EW_Y=P2^1;//东西黄灯 sbit EW_R=P2^0;//东西红灯

sbit LED_D1=P3^7;//南北方向数码管位控制 sbit LED_C1=P3^6;//南北方向数码管位控制 sbit LED_B1=P3^1;//东西方向数码管为控制 sbit LED_A1=P3^0;//东方向数码管位控制

/*********倒计时赋初值*************/ uchar EWF=20,NSF=17,X=20,Y=17,Z=20,SHU=20;uchar count;

void Init(void){ TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;} /*******************中断服务程序**************************/ void timer1(void)interrupt 1 {

TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;

count++;if(count>19){

EWF--;

NSF--;

X--;

Y--;

Z--;

SHU--;

count=0;

}

} /******************延时**********************/

void Delay10uS(uchar z){ uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

/******************led控制*******************/ unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管赋值

void display1(uchar num1,uchar num2)

//控制东西方向led显示 {

P0=table[num1];

LED_A1=ON;

Delay10uS(1);

LED_A1=OFF;

P0=table[num2];

LED_B1=ON;

Delay10uS(1);

LED_B1=OFF;

} void display2(uchar num3,uchar num4)//控制南北方向led显示 {

P0=table[num3];

LED_C1=ON;

Delay10uS(1);

LED_C1=OFF;

P0=table[num4];

LED_D1=ON;

Delay10uS(1);

LED_D1=OFF;

} void main(){ int i;/************初始状态东西南北禁止通行************/

NS_R=ON;//南北方向红灯打开

EW_R=ON;

//东西方向红灯打开

for(i=0;i

{

Delay10uS(20);

} NS_R=OFF;//南北方向红灯关闭

EW_R=OFF;//东西方向红灯关闭

while(1)

{

Init();

// 初始化计时器

/****************状态1:东西绿灯(57s),南北红灯(60s)**************/ /***************状态2:东西黄灯(3s),南北红灯(60s)****************/

EW_G=ON;//东西方向的绿灯打开

NS_R=ON;//南北方向的红灯打开

while(EWF!=0)

{

display1(EWF/10,EWF%10);// 东西方向红灯(60s)

display2(NSF/10,NSF%10);// 南北方向绿灯(57s)

while(EWF==3)

{

while(X!=0)

{

display1(EWF/10,EWF%10);// 东西方向红灯(3s)

display2(X/10,X%10);// 南北方向黄灯(3s)

EW_G=OFF;// 东西方向的绿灯关闭

EW_Y=ON;// 东西方向的黄灯打开

}

}

}

NS_R=OFF;// 南北方向的红灯关闭

EW_G=OFF;// 东西方向的绿灯关闭

EW_Y=OFF;// 东西方向的黄灯打?

/*=*************状态3:东西红灯(60s),南北绿灯(57s)************/ /****************状态4:东西红灯(60s),南北黄灯(3s)***************/

EW_R=ON;// 东西方向的红灯打开

NS_G=ON;// 南北方向的绿灯打开

while(Z!=0)

{

display2(Z/10,Z%10);// 南北方向红灯(57s)

display1(Y/10,Y%10);// 东西方向绿灯(57s)

while(Z==3)

{

while(SHU!=0)

{

display2(Z/10,Z%10);// 东西红灯(3s)

display1(SHU/10,SHU%10);// 南北绿灯(3s)

NS_G=OFF;//南北方向的绿灯关闭

NS_Y=ON;// 南北方向的黄灯打开

}

}

}

} EW_R=OFF;// 东西方向的红灯关闭

NS_G=OFF;// 南北方向的绿灯关闭

NS_Y=OFF;// 南北方向的黄灯关闭

EWF=60,NSF=57,X=60,Y=57,Z=60,SHU=60;//重新赋值

}

51单片机控制交通灯原理图及C语言程序

Proteus仿真原理图:Keil C源程序: #include #define uchar unsigned char #define uintunsignedint sbitRED_DONGXI= P1^0;//南北方向红灯亮 sbitYELLOW_DONGXI = P1^1;......

单片机定时器控制交通灯程序1

定时器控制交通指示灯/* 名称:定时器控制交通指示灯说明:东西向绿灯亮5s后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s后南北向黄灯闪烁,闪烁5次后亮红灯,东西向绿灯......

单片机控制交通灯程序代码

毕业设计程序源代码ORG 0000H;主程序的入口地址LJMP MAIN;跳转到主程序的开始处ORG 0003H;外部中断0的中断程序入口地址ORG 000BH;定时器0的中断程序入口地址LJMP T0_INT;跳......

51单片机控制交通灯

#include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit beep=P2^3; unsigned int pp; unsigned char code table[]={0x3f......

单片机控制交通灯系统

单片机控制交通灯实验设计摘要:本次实验运用80C51单片机来完成对红黄绿交通灯的控制。实验当中主要运用了80C51单片机的计数器定时器功能,另外对单片机的一些参数进行了设置,比......

下载单片机AT89C52十字路口交通灯控制C语言程序word格式文档
下载单片机AT89C52十字路口交通灯控制C语言程序.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文