单片机交通灯

一:单片机:编写十字路口交通灯程序 10分

MOV P1,#0;置灯全暗

JNB P1.0,$;P1.0=0;时则等待通电

STA:SETB P1.1;点亮红灯

LCALL DEL;延时30S

CLR P1.1;灭红灯

STEB P1.3;亮黄灯

LCALL DEL;延时5秒

SETB P1.2;亮绿灯

LCALL DEL;延时30S

CLR P1.2;灭绿灯

STEB P1.3;亮黄灯

LCALL DEL;延时5秒

SJMP STA;转STA处

DEL:MO抚 R7,#240;

DEL1:MOV R6,#250;

DEL2:MOV R5,#250;

DJNZ R5,$;

DJNZ R6,DEL2;

DJNZ R7,DEL1;

RET;

二:基于单片机交通灯设计的摘要怎么写

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显作用。本系统采用单片机89C52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用KEILC编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。

三:单片机做的交通灯与plc做的相比有哪些优缺点

1.优点:单片机成本低廉,专用性可能会更强;

2.缺点:可靠性差、抗干扰性能差、通用性差、扩展能力比较弱、处理能力会弱于PLC(若做大系统复杂的交通灯控制,估计有些困难)、通讯不如PLC方便,编程语言复杂些~~~基本上就这样了。

PS:比如要把整个城市的交通灯系统接入交通控制指挥中心,单片机做底层单个交通灯控制没有什么问题,但接着同样需要PLC做信号采集到远端中控室服务器,这样算起来的话,底层还不如用小型PLC来控制更好,因为可以省掉一层架构,直接挂到交换机通过光纤到远端中控室,且小PLC也不贵,西门子S7-200或1200或者 奥地利贝加莱0291CPU 或者三菱FX1/2N,也就2000块左右,控制一个路口交通灯足够!

四:单片机交通灯设计

仿真实例,可以参考一下。

五:单片机交通灯 10分

打包的仿真电路和程序,里面两个程序,一个十字路口交通灯,一个人行横道交通灯!

都是汇编写的,共阴的数码管,想改成共阳的话,把所有涉及到LED的端口均做“按位取反”处理就可以了。

六:AT89C51单片机交通灯程序

仿真实例可以参考,可以直接仿真效果,试试。

七:c51单片机c语言交通灯的程序

#include

#define uint unsigned int

#define uchar unsigned char

sbit spk=P3^0;

sbit k0=P3^2;

sbit k1=P3^7;

sbit k2=P3^6;

sbit red1=P0^0;

sbit yellow1=P0^1;

sbit green1=P0^2;

sbit red2=P0^3;

sbit yellow2=P0^4;

sbit green2=P0^5;

uchar shi,ge,temp=29,aa,i,bb,flag0=0,flag1=0;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管码

void delay(uint z);

void display();

void init()//初始化函数

{

P3=0xfe;

EA=1;

EX0=1;

EX1=1;

IT1=1;

IT0=1;

TMOD=0x11;

TH0=(65536-50000)/256;//定时初值50毫秒

TL0=(65536-50000)%256;

ET0=1;

TR0=1;

}

void main()//主函数

{

init();

while(1)

{

display();

}

}

void delay(uint z)//延时子函数

{

uint x,y;

for(x=0;x

for(y=0;y<110;y++);

}

void interrupt_0() interrupt 0//外部中断0,当k0按下时两路红的全亮

{

TR0=!TR0;

spk=1;

P1=0xff;

red1=0;

red2=0;

green1=1;

green2=1;

yellow1=1;

yellow2=1;

spk=0;

}

void interrup_1() interrupt 2//外部中断1,东西红灯亮或南北红灯亮

{

if(k1==0) //当中断触发时,检测到k1按下时东西红灯亮

{

TR0=!TR0;

P1=0xff;

red1=0;

red2=1;

green1=1;

green2=0;

yellow1=1;

yellow2=1;

}

if(k2==0)//当中断触发时,检测到k2按下时南北红灯亮

{

TR0=!TR0;

P1=0xff;

red1=1;

red2=0;

green1=0;

green2=1;

yellow1=1;

yellow2=1;

}

}

void timer0() interrupt 1//定时器,实现倒计时

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

aa++;

if(aa==10)

{

aa=0;

temp--;

}

if(flag1==0)

{

if((temp>5)&&(temp<30)) P0=0xde;

if((......余下全文>>

八:单片机控制交通灯答辩

我刚做完毕业设计答辩,89c52温度测控系统。

答辩其实很简单,老师不为难你。

答辩前准备:

1.搞明白单片机及其他硬每个端口的功能,背不过就记到纸上吗,单片机嵌入式系统里面硬件方面肯定是老师考察的重点。

2.能大体看懂程序,具体每个语句什么含义搞不清楚的话没关系,能讲一下每个部分的功能即可。比恭显示子函数干什么用的,t0中断子程序起什么作用。程序这方面老师肯定不会细问。

操作及演示:

1.用Keil uvision编译并生成hex文件(这个很简单,不会的话可以问我)

2.将程序烧录到单片机并进行硬件连线。我毕业设计没用到实物,是以Proteus软件仿真的。我给你的Proteus图自己根据具体要求修改一下,照图连线不会很难。

答辩注意,自己通过简单学习掌握到的知识多讲一下,碰到不熟悉的地方一笔带过,老师提问也会挑你熟悉的部分提问。

给我们答辩的老师是硬件专家,软件方面问的极少,单片机课程本来就注重硬件实践,相信你们的老师也会侧重硬件的,好好准备一下硬件知识吧。

九:at89c51单片机模拟简单交通灯用c语言 20分

Proteus文件发给我

就可以写了

十:单片机控制十字路口交通灯程序设计

如果一个单位时间为1秒,这里设定的十字路口交通灯按如下方式四个步骤循环工作:

?? 60个单位时间,南北红,东西绿;

?? 10个单位时间,南北红,东西黄;

?? 60个单位时间,南北绿,东西红;

?? 10个单位时间,南北黄,东西红;

解:用P1端口的6个引脚控制交通灯,高电平灯亮,低电平灯灭。

代码

#include

//sbit用来定义一个符号位地址,方便编程,提高可读性,和可移植性

sbit SNRed =P1^0; //南北方向红灯

sbit SNYellow =P1^1; //南北方向黄灯

sbit SNGreen =P1^2; //南北方向绿灯

sbit EWRed =P1^3; //东西方向红灯

sbit EWYellow =P1^4; //东西方向黄灯

sbit EWGreen =P1^5; //东西方向绿灯

/* 用软件产生延时一个单位时间 */

void Delay1Unit( void )

{

unsigned int i, j;

for( i=0; i<1000; i++ )

for( j<0; j<1000; j++ ); //通过实测,调整j循环次数,产生1ms延时

//还可以通过生成汇编程序来计算指令周期数,结合晶体频率来调整j循环次数,接近1ms

}

/* 延时n个单位时间 */

void Delay( unsigned int n ){ for( ; n!=0; n-- ) Delay1Unit(); }

void main( void )

{

while( 1 )

{

SNRed=0; SNYellow=0; SNGreen=1; EWRed=1; EWYellow=0; EWGreen=0; Delay( 60 );

SNRed=0; SNYellow=1; SNGreen=0; EWRed=1; EWYellow=0; EWGreen=0; Delay( 10 );

SNRed=1; SNYellow=0; SNGreen=0; EWRed=0; EWYellow=0; EWGreen=1; Delay( 60 );

SNRed=1; SNYellow=0; SNGreen=0; EWRed=0; EWYellow=1; EWGreen=0; Delay( 10 );

}

}

第四节:数码管驱动

显示“12345678”

P1端口接8联共阴数码管SLED8的段极:P1.7接段h,…,P1.0接段a

P2端口接8联共阴数码管SLED8的段极:P2.7接左边的共阴极,…,P2.0接右边的共阴极

方案说明:晶振频率fosc=12MHz,数码管采用动态刷新方式显示,在1ms定时断服务程序中实现

代码

#include

unsigned char DisBuf[8]; //全局显示缓冲区,DisBuf[0]对应右SLED,DisBuf[7]对应左SLED,

......余下全文>>

扫一扫手机访问

发表评论