红绿灯程序
- 格式:doc
- 大小:127.50 KB
- 文档页数:6
红绿灯C语言程序(P0口接数码管,平口接发光二极管)#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar i=0,c=0,s=1;//m_flag=1;////////////////////////////////////////void dxlv1_nbh1(void) //{P1=0x5a;}void dx0_nbh1(void) //{P1=0x0a;}void dxh1_nbl1(void) //{P1=0xa5;}void dxh1_nb0(void) //{P1=0xa0;}void nbs(void) // 南北灯闪{if(m_flag==1){dxh1_nb0();}else {dxh1_nbl1();}}void dxs(void){ // 东西灯闪if(m_flag==1){dx0_nbh1();}else {dxlv1_nbh1();}}//////主程序//////////////////void main(){TMOD=0x01;//定时器0工作在方式1TH0=-5000/256;//50msTL0=-5000%256;//20msIE=0x82;///允许定时器0中断TR0=1;///启动定时器0while(1){//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6fif(s==10){P0=0x3f;} // 东西绿灯亮,南北红灯亮倒计时开始if(s==9)P0=0x06;if(s==8)P0=0x5b;if(s==7)P0=0x4f;if(s==6)P0=0x66;if(s==5)P0=0x6d;if(s==4)P0=0x7d;if(s==3)P0=0x07;if(s==2)P0=0x7f;if(s==1){P0=0x6f;P1=0x5a;}if(s>9&&s<13){dxs();} //10秒结束南北红灯继续,东西绿灯一秒一闪闪三次if(s==13){dxh1_nbl1(); P0=0x6f; }//东西红灯亮,南北绿灯亮倒计时开始if(s==22){P0=0x3f;}if(s==21)P0=0x06;if(s==20)P0=0x5b;if(s==19)P0=0x4f;if(s==18)P0=0x66;if(s==17)P0=0x6d;if(s==16)P0=0x7d;if(s==15)P0=0x07;if(s==14)P0=0x7f;if(s>21&&s<25){nbs();} //10秒结束东西向红灯亮继续,南北绿灯一秒一闪三次if(s==25){s=1; }// s归位}}/////T0中断子程序////////////void T0_INT()interrupt 1{TH0=-50000/256;//50msTL0=-50000%256;if(c==10)m_flag=0;c++;if(c==20)//50ms*20=1s{m_flag=1;c=0;s++;//s清零}}。
目录1。
项目要求 (1)1。
1十字路口红绿灯PLC控制系统的构成 (1)1。
2控制功能分析 (1)2.总体方案设计 (2)3.硬件电路图 (3)4.PLC的I/O控制点分配 (4)5.软件编制 (5)5.1PLC控制程序流程图如下: (5)5.2 PLC软件编制 (5)5.3组态王界面设计 (6)7软件调试 (7)7。
1PLC及组态王的调试 (7)7.2组态实时监控 (7)7。
3测试结果分析 (9)8。
心得体会 (9)附录 PLC控制程序 (10)十字路口红绿灯PLC控制1.项目要求1.1 十字路口红绿灯PLC控制系统的构成十字路口交通信号灯通常设置红、绿和黄三种颜色,但是有的路口仅设置红、绿两种,如果采用PLC控制则可少用两个控制点.现有一个十字路口,东西和南北方向每个路口都设有红色和绿色指挥信号灯,其示意图如下:图1—1十字路口交通信号灯示意图1。
2控制功能分析1.2.1 工作过程(1)接通启动开关后,信号灯系统开始工作,且以南北方向红灯先亮、东西方向绿灯才亮作为初始状态。
当断开启动开关时,全部信号灯熄灭。
(2)南北绿灯东西绿灯不能同时亮,否则系统自动熄灭信号灯并报警。
(3) 南北红灯持续25s ,与此同时东西绿灯亮维持20s ,然后闪烁3s 后熄灭。
接着东西黄灯亮2s ,然后南北绿灯亮。
(4) 东西红灯持续亮30s ,同时南北绿灯亮25s ,然后闪亮3s 后熄灭。
接着南北黄灯又亮2s ,然后东西绿灯亮。
南北和东西的信号灯,就这样按控制要求周而复始的进行工作. 1。
2。
2 控制要求要求采用PLC 作为控制中心,采用触摸屏或上位机(组态软件编程)监控。
(1). 控制系统应有电路联锁和保护功能。
(2)。
操作界面要求有动作效果,可以显示操作的进度。
(3)。
检测、控制信号要准确,安全、可靠。
1.2.3 硬件设计根据控制要求,主控设备选用PLC ,信号灯采用红、黄、绿灯泡(各4个),启动采用单刀开关实现。
单片机红绿灯程序完整版2篇第一篇:单片机红绿灯程序完整版(上)单片机红绿灯是一个经典的实验案例,它展示了单片机在控制和管理车辆行驶过程中的应用。
通过编写程序,我们可以模拟交通信号灯的运行,实现流畅和安全的交通流。
在这篇文章中,我将详细介绍单片机红绿灯程序的完整版,并向读者提供逐步实现该程序的指南。
我将从前期准备开始,包括所需材料和工具的概述,然后进入程序编写和单片机烧录的具体步骤。
最后,我将展示运行红绿灯程序的效果。
首先,让我们看一下所需的材料和工具。
为了完成这个项目,你将需要一块单片机开发板(如Arduino Uno),几个LED灯(红色、黄色和绿色),杜邦线,以及一台电脑。
需要特别注意的是,开发板和电脑之间需要通过USB线连接,以便将程序烧录到开发板中。
在准备好所有材料后,我们可以开始编写红绿灯程序。
我们将使用C语言来编写程序,并使用Arduino IDE作为代码编辑器。
首先,打开IDE并创建一个新的工程。
然后在代码编辑窗口中输入相关代码。
程序的主要逻辑是模拟交通信号灯的运行。
我们将交替点亮红、黄、绿三个LED灯,并设置不同的时间间隔来模拟红绿灯的变化。
例如,可以将红灯亮5秒钟,黄灯亮2秒钟,绿灯亮5秒钟。
然后,程序将循环执行这个过程,以实现连续的红绿灯变化。
在编写完程序后,我们需要将其烧录到单片机开发板中。
首先,通过USB线将开发板与电脑连接。
然后,在IDE中选择正确的开发板和端口,并点击“上传”按钮。
IDE将自动编译和烧录程序到开发板中。
一旦程序烧录完成,我们可以断开USB线,将开发板连接到电源,然后观察红绿灯的变化。
通过实验,我们可以看到红绿灯不断地在变化。
这个程序模拟了真实的交通信号灯,给我们提供了一个清晰的视觉指示,用于控制和管理车辆的行驶过程。
这个实验不仅展示了单片机的应用能力,还培养了我们对交通规则和安全的意识。
在红色、黄色和绿色的灯光交替运行中,我们可以思考如何实现更多的功能和效果。
电气与电子信息工程学院《电气控制与PLC课程设计》设计报告名称:十字路口红绿灯的设计专业名称:电气工程及其自动化班级:学号:姓名:指导教师:设计时间:2013年6月3日—2013年6月14日设计地点: K3-218 PLC实验室摘要PLC可编程序控制器是以微处理器为基础,综合了计算机技术、自动控制技术和通讯技术发展而来的一种新型工业控制装置。
它具有结构简单、编程方便、可靠性高等优点,已广泛用于工业过程和位置的自动控制中。
据统计,可编程控制器是工业自动化装置中应用最多的一种设备。
专家认为,可编程控制器将成为今后工业控制的主要手段和重要的基础设备之一,PLC、机器人、CAD/CAM将成为工业生产的三大支柱。
由于PLC具有对使用环境适应性强的特性,同时其内部定时器资源十分丰富,可对目前普遍使用的“渐进式”信号灯进行精确控制,特别对多岔路口的控制可方便地实现。
因此现在越来越多地将PLC应用于交通灯系统中。
可缩短车辆通行等候时间,实现科学化管理。
在该设计中,还引入EDA模拟十字路口红绿灯闪亮及车辆通行,十分形象地显示出了PLC在交通灯系统中的实际应用。
【关键词】:十字路口交通灯 PLCAbstractThe PLC programmable logic controller is a new industrial control devices, which is based on microprocessor, synthesizes computer technology, automatic control technology and communication technologies. It has the simple structure, the convenient programming, the reliable higher merit, and has widely used in the commercial run and position automatic control. Statistics have indicated, the programmable controller is most one kind of equipment in the industrial automation installment applies. The expert believed that the programmable controller will become the main method and one of important foundation equipment in further, PLC, the robot, CAD/CAM will become the industrial production three big props. Because PLC adapts to environment strong, simultaneously its internal timer resources are extremely rich, which carry on the accuracy control to the present universal use many “the evolution type” the signal light, special to the multi-road fork control. Therefore the present PLC is used in the traffic light system, which may reduce the vehicles general waiting time and realize scientific style management. In this design, also introduces the EDA simulation intersection traffic light to glisten and the vehicles to passes through, which visual demonstrates PLC in the traffic light system practical application.【Key words】crossroads traffic light PLC交通信号灯的作用和意义随着社会经济的发展,城市交通问题越来越引起人们的关注。
交通灯硬件原理图及说明
一、实验目的
1、掌握8255与显示器的接口方法和编程方法。
2、掌握数码管的工作原理及编码。
3、掌握交通灯工作原理、及电路其控制程序的设计方法。
二、实验内容与要求
实验电路如图所示,交通灯套件是通过接口平台板中二十六芯插座引出来的并口实验。
PA0-2控制(G1、Y1、R1),PA3-5控制(G2、Y2、R2),PC0-2控制(G3、Y3、R3),PC5-7控制(G4、Y4、R4),所有的并口控制信号都先通过74LS04引出。
12个灯的另一端接A472J的排阻再接到地。
PB口接数码管的8个控制引脚。
PC3、PC4分别接两个数码管片选引脚(低电平有效)。
电路分析如下:
PA0-5是用来控制北面和西面的交通灯(分别为红,黄,绿),PC0-2,PC5-7是用来控制南面和东面的交通灯(分别为红,黄,绿).PB口是来控制数码管.了解了原理图就可以很容易的在程序来编写,使交通灯可以正常运行.
原理图如下:
数码管管脚图
共阴极数码管编码表
实验要求实现功能如下:
实现南北、东西交通车辆直行红绿灯控制。
南北两面亮起绿灯的时候,东西两面就会亮起红灯.并而这时中间的数码会以50为倒计时,当倒计时为5时,南北两的的绿灯熄灭,黄灯亮起.东西两面的红灯不变.直到倒计时为0时.东西两面亮绿灯,南北两面亮红灯.如此死循环.模拟生活中的交通灯.
参考程序(C语言):
#include<dos.h>
#include<stdio.h>
#include<conio.h>
int East_west();
int South_north();
void main()
{
printf("\n **********************************************\n");
printf("\n * Advert the traffic light -- Be carefull ! *\n");
printf("\n **********************************************\n");
outportb(0x303,0x80);
do{
outportb(0x300,0x24);
outportb(0x302,0x21);
East_west();
outportb(0x300,0x09);
outportb(0x302,0x84);
South_north();
}while(1);
}
int East_west()
{
int set[2]={0x29,0x31};
int xu[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int a,b,t,buf1,num;
for(num=50;num>0;num--)
{
a=num%10;
b=num/10;
buf1=xu[a];
if(num>=15)
{
for(t=0;t<2;t++)
{
outportb(0x302,set[t]);
outportb(0x301,buf1);
if(t==1) delay(300);
else delay(20);
buf1=xu[b];
}
}
else
{
outportb(0x300,0x24);
outportb(0x302,0x42);
int set[4]={0x4a,0x08,0x52,0x10};
for(t=0;t<4;t++)
{
outportb(0x302,set[t]);
outportb(0x301,buf1);
if(t==3) delay(300);
else delay(20);
buf1=xu[b];
}
}
}
}
int South_north()
{
int set[2]={0x8c,0x94};
int xu[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int a,b,t,buf1,num;
for(num=50;num>0;num--)
{
a=num%10;
b=num/10;
buf1=xu[a];
if(num>=15)
{
for(t=0;t<2;t++)
{
outportb(0x302,set[t]);
outportb(0x301,buf1);
if(t==1) delay(300);
else delay(20);
buf1=xu[b];
}
}
else
{
outportb(0x300,0x12);
delay(30);
outportb(0x302,0x84);
int set[2]={0x8c,0x94};
for(t=0;t<2;t++)
{
outportb(0x302,set[t]);
outportb(0x300,0x00);
outportb(0x301,buf1);
if(t==1) delay(300);
else delay(20);
buf1=xu[b];
}
}
}
}
汇编程序:
data segment
light db 6fh,7fh,07h,7dh,6dh,66h,4fh,5bh,06h,3fh
message db '**********************************************',0dh,0ah db '* Advert the traffic light -- Be carefull ! *',0dh,0ah
db '**********************************************',0dh,0ah,'$' set1 db 89h,91h
set2 db 2ch,34h
num db ?
data ends
code segment
assume cs:code,ds:code
East_west proc near
mov si,offset light
mov cx,10
jmp lop
lop1: inc cx
dec cx
jz L4
mov dx,300h
mov al,22h
out dx,al
mov dx,302h
mov al,8ah
out dx,al
jmp L3
lop: mov dx,302h
mov al,89h
out dx,al
L3: mov al,[si]
mov dx,301h
out dx,al
mov bp,01fffh
mov ax,0ffffh;延时
delay: dec ax
jnz delay
dec bp
jnz delay
push bp
push ax
mov bp,01ffh
mov ax,0ffffh;延时
delay1:dec ax
jnz delay1
dec bp
jnz delay1
pop ax
pop bp
inc si
dec cx
cmp cx,4
jbe lop1
jnz lop
L4:ret
East_west endp。