求助一个单片机设计的交通灯程序,用C语言编写。

单片机采用89C52,红灯1接p2.2,黄灯1接p2.1,绿灯1接p2.7,红灯2接p2.4,黄灯2接p2.5,绿灯2接p2.6,启动按钮接p0.2,停止按钮接p0.3。 红灯1绿灯2一起亮,延时25s;红灯1黄灯2亮,延时5s;绿灯1红灯2亮,延时25s;黄灯1红灯2亮,延时5s.最好是经过keil调试,可以直接烧进单片机
不对啊,我今天下午试了,编译老有错误,缺少一个宏定义,而且改后烧进板子里一个灯都不亮~你那里有没有keil软件可以试一下?

第1个回答  2010-12-29
#include <reg52.h>
#define uint unsigned int
sbit red1=P1^2;
sbit yel1=P1^1;
sbit gre1=P1^7;
sbit red2=P1^4;
sbit yel2=P1^5;
sbit gre2=P1^6;//假设灯亮为低电平
sbit key1=P0^2;
sbit key2=P0^3;
uint tt;
void delay(uint z)
{
uchar x;
while(z--)
for(x=110;x>0;x--);
}
void key_1() //按键1
{
if(key1==0)
{
delay(10);
if(key1==0)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
tt=0;
while(!key1);
}

}
}
void key_2()///按键2
{
if(key2==0)
{
delay(10);
if(key2==0)
{
TR0=0;
P1=0xff;
while(!key2);
}

}
}
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
key_1();
key_2();

}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==1)
{
red1=0;gre2=0;// 红灯1绿灯2亮
}
if(tt==501)
{
red1=1;gre2=1; //红灯1绿灯2关
red1=0;yel2=0;//红灯1黄灯2亮
}
if(tt==601)
{
red1=1;yel2=1;//红灯1黄灯2关
gre1=0;red2=0;//绿灯1红灯2亮
}
if(tt==701)
{
tt=0;
gre1=1;red2=1;//绿灯1红灯2关
}
}本回答被提问者和网友采纳
第2个回答  2011-01-01
我可以帮你编辑好并作出防真
第3个回答  2010-12-31
这些简单 但是繁杂 还是自己慢慢写吧

c51单片机c语言交通灯的程序
接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系统需要控制红、黄、绿三种颜色的灯的亮灭,每种颜色的灯对应一个I\/O端口。此外,我们还需要使用定时器来设置交通灯的切换时间。在编写...

c51单片机c语言交通灯的程序
sbit Yellow_nb=P2^5; \/\/南北黄灯标志 sbit Yellow_dx=P2^2; \/\/东西黄灯标志 sbit Green_nb=P2^4;sbit Green_dx=P2^1;sbit Buzz=P3^7;bit Buzzer_Indicate;bit time=0;\/\/灯状态循环标志 bit set=1;\/\/调时方向切换键标志 uchar code table[11]={ \/\/共阴极字型码 0x3f...

求用C语言编写的交通灯程序,C51单片机控制,无左转右转
define OFF 1 \/\/1的时候灯亮 \/\/管脚定义 \/\/南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒 \/\/东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒 sbit PortDX_Yellow = P1^0; \/\/东西方向黄灯 sbit PortDX_Red = P1^1; \/\/东西方向红灯 sbit PortDX_Green = P1^2; \/\/东西方向...

...帮忙设计一个交通灯控制的C语言程序。谢谢。。(汇编指令太麻烦咯...
DelayMS(300);YELLOW_B=!YELLOW_B;GREEN_B=1;if(++Flash_Count!=10) return;Flash_Count=0;Operation_Type=1;break;} } void main(){ while(1) Traffic_Light();} 电路图请见插图。

基于51单片机控制交通灯的电路图与C语言程序
在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。四、软件程序(C语言)以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/ \/\/程序名:十字路口交通灯控制 \/\/编写人:黄庭剑 \/\/初写时间:2009年1月2日 \/\/...

单片机的红绿灯控制程序如何写啊
\/\/名称:LED模拟交通灯 \/\/作者:彭伟《单片机C语言程序设计实训100例-基于8051+PROTEUS仿真》\/\/--- \/\/说明:东西向绿灯亮若干秒后,黄灯闪烁,闪烁5次后亮红灯 \/\/ 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁 \/\/ 闪烁5次后亮红灯,东西向绿灯亮,如此重复 \/\/--- include<...

c语言模拟交通灯控制
c语言模拟交通灯控制 任务4模拟交通灯控制一、任务目的通过对模拟交通灯控制系统的制作,掌握定时器和中断系统的综合应用,进一步熟练软、硬件联调方法。二、任务要求设计并实现单片机交通灯控制系统,将... 任务4模拟交通灯控制一、 任务目的通过对模拟交通灯控制系统的制作,掌握定时器和中断系统的综合应用,进一步熟练软...

单片机交通灯程序,红灯闪20s,黄灯3s,绿灯20s
应该是红灯亮20S,黄灯闪3S,绿灯亮20S,如此反复吧。include<reg51.h> unsigned char time,num;sbit ledr=P1^0;sbit ledy=P1^1;sbit ledg=P1^2;void t0isr() interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;num++;if(num>=10){time++;num=0;} if(time<40){ledr=...

单片机交通灯程序
采用51单片机作为系统的MCU,基本完成控制两组交通指示灯交替亮 每个街口有左拐、直行及行人三种指示灯。直行灯每个灯有红、黄、绿三种颜色。自行车与汽车共用左拐和直行灯。首先东西向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒(同时南北向红灯亮95秒),然后东西向红灯亮95秒钟(同时首先南北...

单片机交通灯课设 谁给我写下代码
GREEN_B=0;DelayMS(2000);Operation_Type=4;break;case 4: \/\/南北向黄灯闪烁5 次 DelayMS(300);YELLOW_B=~YELLOW_B;GREEN_B=1;if(++Flash_Count!=10) return;Flash_Count=0;Operation_Type=1;} } \/\/主程序 void main(){ while(1) Traffic_Light();} 参考资料:参考单片机资料··...

相似回答