单片机交通灯课程设计
『壹』 基于单片机的交通灯控制系统设计(课设)
我有 你留邮箱我发你 或者给我留言。
『贰』 交通灯的单片机设计
哥们啊你是不是做毕业设计啊,那还不自己好好做啊,这个作出专来很有用啊,这个既不需属要扩展口,真的很简单啊,好好做吧,给你个图看看吧,基本上就是这个电路就行了啊
程序也很简单,用定时器就好了啊,中断也用的到,加油啦,支持你,Myfriends!!!(这个图中用了8个LED,做交通灯再加上4个就行了,口也够)
『叁』 单片机课程设计:交通灯控制!
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P3^0; //东西向指示灯
sbit YELLOW_A=P3^1;
sbit GREEN_A=P3^2;
sbit RED_B=P3^3; //南北向指示灯
sbit YELLOW_B=P3^4;
sbit GREEN_B=P3^5;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
sbit KEY3=P1^2;
//延时倍数,闪烁次数,操作类型变量
uchar Flash_Count=0,Operation_Type=1,LEDsng,LEDsns,LEDewg,LEDews,discnt;
uint Time_Count=0,time;
uchar ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
void displaysn()
{
LEDsng=((time-Time_Count)/20)%10;
LEDsns=((time-Time_Count)/20)/10;
LEDewg=0x10;
LEDews=0x10;
}
void displayew()
{
LEDewg=((time-Time_Count)/20)%10;
LEDews=((time-Time_Count)/20)/10;
LEDsng=0x10;
LEDsns=0x10;
}
//定时器0 中断函数
void T0_INT() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
switch(Operation_Type)
{
case 1: //东西向绿灯与南北向红灯亮
if((Time_Count%20)==0)displayew();
RED_A=0;YELLOW_A=0;GREEN_A=1;
RED_B=1;YELLOW_B=0;GREEN_B=0;
if(++Time_Count!=time) return;
Time_Count=0;
Operation_Type=2;
break;
case 2: //东西向黄灯开始闪烁,绿灯关闭
LEDewg=0x0;
LEDews=0x0;
if(++Time_Count!=8) return;
Time_Count=0;
YELLOW_A=~YELLOW_A;GREEN_A=0;
if(++Flash_Count!=6) return; //闪烁
Flash_Count=0;
Operation_Type=3;
break;
case 3: //东西向红灯与南北向绿灯亮
if((Time_Count%20)==0)displaysn();
RED_A=1;YELLOW_A=0;GREEN_A=0;
RED_B=0;YELLOW_B=0;GREEN_B=1;
if(++Time_Count!=time) return;
Time_Count=0;
Operation_Type=4;
break;
case 4: //南北向黄灯开始闪烁,绿灯关闭
LEDsng=0x0;
LEDsns=0x0;
if(++Time_Count!=8) return;
Time_Count=0;
YELLOW_B=~YELLOW_B;GREEN_A=0;
if(++Flash_Count!=6) return; //闪烁
Flash_Count=0;
Operation_Type=1;
break;
}
}
void t1_isr() interrupt 3
{
TR1=0;
TH1=(65536-3000)/256;
TL1=(65536-3000)%256;
TR1=1;
switch(discnt)
{
case 0:
P2=0x02;
P0=ledtab[LEDewg];
break;
case 1:
P2=0x01;
P0=ledtab[LEDews];
break;
case 2:
P2=0x08;
P0=ledtab[LEDsng];
break;
case 3:
P2=0x04;
P0=ledtab[LEDsns];
break;
default:discnt=0;break;
}
discnt++;
discnt&=0x03;
}
void delay()
{
uint i;
for(i=0;i<1000;i++);
}
//主程序
void main()
{
TMOD=0x11; //T0 方式1
EA=1;
ET0=1;
TR0=1;
TH1=(65536-3000)/256;
TL1=(65536-3000)%256;
TR1=1;
ET1=1;
time=120;
Time_Count=100;
Time_Count=0;
Operation_Type=1;
while(1)
{
if(KEY1==0) //按一下加1S
{
delay();
if(KEY1==0)
{
while(KEY1==0);
TR0=0;
time+=20;
LEDsng=(time/20)%10;
LEDsns=(time/20)/10;
LEDewg=0x10;
LEDews=0x10;
}
}
if(KEY2==0) //按一下减1S
{
delay();
if(KEY2==0)
{
while(KEY2==0);
TR0=0;
time-=20;
if(time==0)time=20;
LEDewg=(time/20)%10;
LEDews=(time/20)/10;
LEDsng=0x10;
LEDsns=0x10;
}
}
if(KEY3==0) //启动
{
delay();
if(KEY3==0)
{
while(KEY2==0);
TR0=1;
Time_Count=0;
}
}
}
}
『肆』 单片机交通灯课程设计数码管时间走太快了,不知道是不是代码问题(附代码)
单片机交通灯数码管时间走太快了,就是代码问题。这代码写的太神奇了。看程序,T0定时是50ms,那应该是中断20次才是1秒,那个9是怎么算的来的?这个结果就是秒计时快了。
这样计秒非常不准确。
『伍』 单片机交通灯课程设计程序汇编语言和C语言
我这有个交通灯的程序,留下邮箱吧!
『陆』 单片机课程设计的要求 交通灯系统设计
:利用抄单片机的定时器功能,令十字路口的红绿灯交替点亮和熄灭(用实验箱上的8只发光二极管分成南北、东西两组各4只表示),并且用LED数码管显示时间(实验箱上的8只数码管中,用两端的各2只表示南北、东西两组的计时)
我可以帮你做,提供电路图和源程序
『柒』 求单片机课程设计 交通灯
0000H
MAIN:MOV DPTR,#0FF20H
MOV A,#03H
MOVX @DPTR,A
MOV 2AH,#1FH
MOV P1,#0CH
MOV R7,#19H
PRG1: LCALL DELAY1
DJNZ R7,PRG1
MOV P1,#0AH
MOV R7,#05H
PRG2: LCALL DELAY1
DJNZ R7, PRG2
MOV P1,#21H
MOV 2AH,#1FH
MOV R7, #19H
PGR3: LCALL DELAY1
DJNZ R7,PGR3
MOV P1,#11H
MOV R7,#05H
PGR4: LCALL DELAY1
DJNZ R7, PGR4
AJMP MAIN
DELAY1:DEC 2AH
MOV A,2AH
MOV B,#0AH
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV R2,A
MOV A, B
MOV DPTR ,#TAB
MOVC A,@A+DPTR
MOV R1,A
MOV R6,#64H
LOOP: MOV A,R2
MOV R4,#02H
LCALL DISPLAY
MOV A,R1
MOV R4,#01H
LCALL DISPLAY
DJNZ R6,LOOP
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
DISPLAY:MOV R0,#0D0H
MOV R5,A
DISPLAY1:MOV A,R5
MOV DPTR,#0FF22H
MOVX @DPTR,A
MOV DPTR,#0FF21H
MOV A,R4
MOVX @DPTR,A
DJNZ R0,DISPLAY1
RET
END
http://..com/question/159300656.html
和你的题目类似 你看一下能参考不
『捌』 单片机c语言编程AT89c51交通灯课程设计
去csdn找下来,或者程序员联合开发网,源csdn的博客也可以找,下载那可以找相关资料找找
www.csdn.net
www.pudn.com
希望对你有帮助
。
『玖』 单片机交通灯课程设计~~
你认为网上的动心可信马
人家辛辛苦苦弄出来的事,就凭你的30分给你?
不要看人家把程序给你了 ,那都是实现不了逻辑功能的。
你还是自己来吧