交通信号灯控制程序

交通信号灯控制程序,第1张

这个我以前写的,z1,z2,z3(c1,c2,c3)分别是主路(支路)口的红黄路灯,先是支路放行20s,再是主路放行40s,红灯到路灯中间要有5s黄灯,路灯直接到黄灯,和你需要的差不多自己看看改改就行,再加个显示就可以了library ieee;use ieee.std_logic_1164.all;entity lude isport(clk:in bit; z11c1nrvz2,c2,z3,c3:out bit);end entity;architecture one of lude isbegin process(clk) VARIABLE TEMP1: NATURAL; begin if(clk'event and clk='1') then temp1:=temp1+1; if temp1<=20 then z1<='1';z2<='0';z3<='0';c1<='0';c2<='0';c3<='1'; elsif temp1<=25 then z1<='0';z2<='1';z3<='0';c1<='0';c2<='0';c3<='1'; elsif temp1<=65 then z1<='0';z2<='0';z3<='1';c1<='1';c2<='0';c3<='0'; elsif temp1<=70 then z1<='0';z2<='0';z3<='1';c1<='0';c2<='1';c3<='0'; elsif temp1>70 then temp1:=0; end if; end if; end process;end;

#include<stdio.h>

#include<ctype.h>

#include<graphics.h>

#include<stdlib.h>

#include<math.h>

#include<conio.h>

#define X 800 //图形区域宽度

#define Y 600 //图形区域高度

#define WD 100 //单向车道宽度

#define LR 100 //车道长度

#define R 10 //红绿灯半径

void drawroad()

void pSound()

void baoshi()

void main(){

initgraph(X,Y)

setbkcolor(LIGHTGRAY)

cleardevice()

drawroad()

getch()

closegraph()

}

void drawroad(){

int midx=X/2,midy=Y/2,i

setlinecolor(YELLOW)

setlinestyle(PS_DASH,2)

moveto(midx-WD/2,midy-WD-100)

lineto(midx-WD/2,0)

moveto(midx+WD/2,midy-WD-100)

lineto(midx+WD/2,0)

moveto(midx-WD/2,midy+WD+100)

lineto(midx-WD/2,Y)

moveto(midx+WD/2,midy+WD+100)

lineto(midx+WD/2,Y)

moveto(midx-WD-100,midy-WD/2)

lineto(0,midy-WD/2)

moveto(midx-WD-100,midy+WD/2)

lineto(0,midy+WD/2)

moveto(midx+WD+100,midy-WD/2)

lineto(X,midy-WD/2)

moveto(midx+WD+100,midy+WD/2)

lineto(X,midy+WD/2)

setlinestyle(PS_SOLID,3)

moveto(midx-WD,midy-WD-100)

lineto(midx-WD,0)

moveto(midx+WD,midy-WD-100)

lineto(midx+WD,0)

moveto(midx-WD,midy-WD-100)

linerel(2*WD,0)

for(i=0i<25i++)

line(midx-WD+(i-2)*10,midy-WD-100+10,midx-WD+(i-2)*10,midy-WD-100+40)

moveto(midx-WD,midy+WD+100)

lineto(midx-WD,Y)

moveto(midx+WD,midy+WD+100)

lineto(midx+WD,Y)

moveto(midx-WD,midy+WD+100)

linerel(2*WD,0)

for(i=0i<25i++)

line(midx-WD+(i-2)*10,midy+WD+100-10,midx-WD+(i-2)*10,midy+WD+100-40)

moveto(midx-WD-100,midy-WD)

lineto(0,midy-WD)

moveto(midx-WD-100,midy+WD)

lineto(0,midy+WD)

moveto(midx-WD-100,midy-WD)

linerel(0,2*WD)

for(i=0i<25i++)

line(midx-WD-100+10,midy-WD+(i-2)*10,midx-WD-100+40,midy-WD+(i-2)*10)

moveto(midx+WD+100,midy-WD)

lineto(X,midy-WD)

moveto(midx+WD+100,midy+WD)

lineto(X,midy+WD)

moveto(midx+WD+100,midy-WD)

linerel(0,2*WD)

for(i=0i<25i++)

line(midx+WD+100-10,midy-WD+(i-2)*10,midx+WD+100-40,midy-WD+(i-2)*10)

setfillstyle(BS_HATCHED,HS_BDIAGONAL)

fil


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7815595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存