❶ 基于EDA技术的交通信号灯定时控制系统
首先最简单的方法是列出真值表。写出逻辑表达式。然后根据逻辑表达式来写出vhdl程序。在编译=》仿真=》功能分析=》输出延时=》下载程序 1.设计原理
在这个实例中,我们设计一个简单的十字路口交通灯。交通灯分东西和南北两个方向,均通过数码管和指示灯指示当前的状态。设两个方向的流量相当,红灯时间45s,绿灯时间40s,黄灯时间5s.
从交通灯的工作机理来看,无论是东西方向还是南北方向,都是一个减法计数器。只不过计数时还要判断红绿灯情况,再设置计数器的模值。
下表所示为一个初始状态和4个跳变状态。交通灯工作时状态将在4个状态间循环跳变,整个交通灯则完全按照减计数器原理进行设计。
状态 当前计数值 下一个CLOCK到来时新模值
东西方向指示 南北方向指示 东西-南北方向指示 东西方向指示 南北方向指示 东西-南北方向指示
初始 0 0 45 40 红-绿
1 6 1 红-绿 5 5 红-黄
2 1 1 红-黄 40 45 绿-红
3 1 6 绿-红 5 5 黄-红
4 1 1 45 40 红-绿
2.部分程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity traffic is
port(clk, urgency: in std_logic;
east_west:buffer std_logic_vector(7 downto 0);--东西方向时钟计数
south_north: buffer std_logic_vector(7 downto 0); --南北方向的时钟计数
led:buffer std_logic_vector(5 downto 0)); --交通指示灯
end traffic;
architecture arch of traffic is
。。。。。。。
end arch;
3.具体设计步骤
1) 建立一个新的工程完成上面的电路设计
2) 编译电路并使用功能仿真来验证设计
3) 引脚配置,如Part I中讨论的,这些配置是确保VHDL代码中输出端口能使用PFGA芯片上连接到LEDR和LEDG的引脚。重新编译项目,并下载到FPGA芯片上。
4) 测试电路的正确性。
❷ 52单片机交通信号灯
仿真实例参考一下吧。
❸ 以AT89C51单片机为控制器的智能交通灯控制系统,基于51单片机的交通信号灯模拟系统控制的仿真图及C程序
你好!
这样的效果可以吗
❹ 交通信号灯设计方案 有吗
一 设计过程
(一)设计题目和方案确定
1.设计题目:交通灯信号控制器的设计
2.设计要求:1.设交通灯信号控制器用于主干道与支干道公路的交叉路口,要求是优先保证主干道的畅通。因此,平时处于"主干道绿灯,支道红灯"状态,只有在支道有车辆要穿行主干道时,才将交通灯切向"主干道红灯,支道绿灯",一旦支道无车辆通过路口,交通灯又回到"主干道绿灯,支道红灯"状态。
2.主干道和支干道自动循环。主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,持续时间都为4s。
3. 手动设置主干道和支道每次通行的时间分别为为30s、40s、50s;
3 设计思路:
(1)传感器状态为主干路传感器支干路传感器,当支路无车时,即传感器开关状态为00 01状态时,总保持主干道绿灯支干道红灯状态;
(2)当主路总无车而支路总有车时,即传感器开关为01状态时 ,总保持主红支绿;
(3)当主干路支干路都有车时,即传感器为11状态时,主路支路轮流切换通行。
当主路绿灯30s切黄灯4s后,主路变红灯,支路变绿灯;当支路绿灯30s切黄灯4s后,主路变绿灯,支路变红灯。此两种状态为“主黄,支红”,“主红,支黄”两种状态。
(二)设计项目输入编译和仿真
1 设计交通控制器的VHDL文本程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all
use ieee.std_logic_unsigned.all;
entity jtdkz is
port(clk,sens_m,sens_f:in std_logic;
m,l,n:in std_logic;
rm,ym,gm,rf,yf,gf:out std_logic);
end jtdkz;
architecture arc of jtdkz is
type state_type is (a,b,c,d);
signal state:state_type;
signal k:std_logic_vector(2 downto 0);
begin
k<=m&l&n;
cnt:process(clk,state)
variable g,s:integer range 0 to 49;
variable nclr,en:bit;
begin
if k<="001" then g:=29;
elsif k<="010" then g:=39;
elsif k<="100" then g:=49;
else g:=0;
end if;
if(clk'event and clk='1') then
if nclr='0' then s:=0;
elsif en='0' then s:=s;
else s:=s+1;
end if;
case state is
when a=>rm<='0';ym<='0';gm<='1';
rf<='1';yf<='0';gf<='0';
if(sens_f and sens_m)='1' then
if s=g then
state<=b;nclr:='0';en:='0';
else
state<=a;nclr:='1';en:='1';
end if;
elsif(sens_f and (not sens_m))='1' then
state<=b;nclr:='0';en:='0';
else
state<=a;nclr:='1';en:='1';
end if;
when b=>rm<='0';ym<='1';gm<='0';
rf<='1';yf<='0';gf<='0';
if s=3 then
state<=c;nclr:='0';en:='0';
else
state<=b;nclr:='1';en:='1';
end if;
when c=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='0';gf<='1';
if(sens_f and sens_m)='1' then
if s=g then
state<=d;nclr:='0';en:='0';
else
state<=c;nclr:='1';en:='1';
end if;
elsif sens_f='0' then
state<=d;nclr:='0';en:='0';
else
state<=c;nclr:='1';en:='1';
end if;
when d=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='1';gf<='0';
if s=3 then
state<=a;nclr:='0';en:='1';
else
state<=d;nclr:='1';en:='1';
end if;
end case;
end if;
end process cnt;
end arc;
2 程序说明:
rm ym gm分别表示主干道红黄绿灯,rf yf gf分别表示支道红黄绿灯;
sens_m sens_f分别表示主干道支干道传感器。有车时为1,无车时为0。
m l n表示手动控制开关,当001时表示30s控制时间,当010时表示40s控制时间,
当100时表示50s控制时间。
3 将模块进行编译,具体如下:
(1)器件的选择:选择FLEX10K10LC84-3器件。
(2)锁定引脚。
(3)编译。
4.新建一个gdf文件,形成顶层文件,如图所示:
4功能仿真:创建仿真通道文件;
编辑仿真通道文件;
设计项目的仿真。
新建一个scf文件,生成仿真图,如图所示:
(三) 器件编程下载与硬件验证
1. 器件编译:
将ByteBlaster电缆的一端与计算机的并行口相连
选择菜单命令MAX+PLUSⅡ/Programmer,打开编译窗口。如下图所示∶
选择菜单命令Options/Hardware Setup,在Hardware Type栏选择ByteBlaster(MV);在
栏选择使用并行口(LPT1);选择OK按钮,回到器件编译窗口。如下图所示∶Parallel Port中
❺ 十字路口交通信号灯控制程序设计
通灯显示控制
一、前言
(1)通过8255A实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用.
(2)进一步学习微处理器的编程技术.
二、8255的工作原理:
8255有三种方式可以选择:
方式0:基本输入/输出方式;
方式1:带选通的输入/输出方式
方式2:双向传输方式。
8255为总线兼容型,可以与CPU的总线直接接口。其中,口地址取决于片选CS和A1、A0
如图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程时六个灯按交通灯变化规律燃灭。
交通灯变化要求:
(1)、南北路口的绿灯,东西路口的红灯同时亮30秒左右;
(2)、南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;
(3)、南北路口的红灯,东西路口的绿灯同时亮30秒左右;
(4)、南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;
(5)、转(1)重复。
1.硬件原理图如图
2.硬件线路连接
4.流程图
按上面所述过程得出5.程序
DATA SEGMENT
PC DB ?
MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK
STA DW 200 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AH,09H
MOV DX,OFFSET MESS
INT 21H
MOV DX,28BH
MOV AL,10000001B
OUT DX,AL
MOV DX,28AH
IN AL,DX
MOV PC,AL
MOV DX,28BH
MOV AL,10000000B
OUT DX,AL
MOV DX,28AH
MOV AL,PC
MOV DX,28AH
MOV AL,00000000B
OUT DX,AL
LLL: MOV DX,28AH
MOV AL,00100100B ;1绿2红
OUT DX,AL
CALL DONE2
CALL DONE2
MOV DX,28AH
MOV AL,01000100B ; ;1黄2红
OUT DX,AL
CALL DONE2
MOV DX,28AH
MOV AL,10000001B ;1红2绿
OUT DX,AL
CALL DONE2
CALL DONE2
MOV DX,28AH
MOV AL,10000010B ;1红2黄
OUT DX,AL
CALL DONE 2
MOV AH,06H
MOV DL,0FFH
INT 21H
JNZ PPP
JMP LLL
PPP: MOV AX,4C00H
INT 21H
DONE1 PROC NEAR
PUSH CX
MOV CX,0FFFFH
CC: LOOP CC
POP CX
RET
DONE1 ENDP
DONE2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,0FFFH
UU: CALL DONE1
LOOP UU
POP CX
POP AX
RET
DONE10 ENDP
CODE ENDS
END START
有些东西发不上来 要的Q我
❻ 通过红绿灯感悟出的人生哲理
通过红绿灯,感悟出人生没有一帆风顺的哲理。
人的运气是有所浮动的,所谓三十年河东,三十年河西。什么人都一样,于整个人生而言,往往没有一帆风顺。就像马路上的红绿灯。有时候赶上红灯,有时候赶上绿灯。绿灯行,那自然是顺风顺水,红灯停,可以利用不顺坎坷的时间,放慢脚步思考一下接下来的何去何从。
心态的重要性
在现实生活中,人们不能控制自己的遭遇,却可以控制自己的心态;人们不能改变别人,却可以改变自己。其实,人与人之间并无太大的区别,真正的区别在于心态。所以,一个人成功与否,主要取决于其心态。
人生有顺境也有逆境,不可能处处是逆境;人生有巅峰也有谷底,不可能处处是谷底。因为顺境或巅峰而趾高气扬,因为逆境或低谷而垂头丧气,都是浅薄的人生。面对挫折,如果只是一味地抱怨、生气,那么其注定永远是个弱者。
❼ 交通信号灯控制程序设计
简单I/O实验(交通灯控制)
一.实验要求
以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。
二.实验目的
1.学习在单片机系统中扩展简单I/O接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的方法。
4.学习双色灯的使用。
三.实验电路及连线
四.实验说明
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。
2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
五.实验程序框图
程序框图:
源代码:
ORG 0000H
LJMP START
ORG 0040H
START:
MOV SP,#60H
LCALL STATUS0 ;初始状态(都是红灯)
CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯
LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯
LCALL STATUS3 ;南北红灯,东西绿灯
LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯
LJMP CIRCLE
STATUS0: ;南北红灯,东西红灯
MOV DPTR,#8300H
MOV A,#0FH
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS1: ;南北绿灯,东西红灯
MOV DPTR,#08300H
MOV A,#5AH ;南北绿灯,东西红灯
MOVX @DPTR,A
MOV R2,#50 ;延时5秒
LCALL DELAY
RET
STATUS2: ;南北绿灯闪转黄灯,东西红灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH: MOV A,#5FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#5AH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#0AH ;南北黄灯,东西红灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS3: ;南北红灯,东西绿灯
MOV DPTR,#8300H
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#50 ;延时5秒
LCALL DELAY
RET
STATUS4: ;南北红灯,东西绿灯闪转黄灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH1: MOV A,#0AFH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#05H ;南北红灯,东西黄灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
NOP
RET
DELAY: ;延时子程序
PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2: MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2 ;延时 100 mS
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
RET
END
❽ 单片机 at89c51交通信号灯+外部中断+定时器 跪求各位大神了
外部中断请求有两种方式:电平触发方式和脉冲下降沿触发方式。
在电平触发方式下,CPU在每个机器周期的S5P2时刻都要采样INT0\(P3.2)/INT1\(P3.3)管脚的输入电平,若采样到低电平,则认为是有中断请求,也即低电平有效。
在脉冲下降沿触发方式下,CPU也在每个机器周期的S5P2时刻采样INT0\(P3.2)/INT1\(P3.3)管脚的输入电平,若在相继的两次采样中,前一个机器周期采样信号为高电平,后一个机器周期采样到低电平,也即采样到一个下降沿,则认为是有效的中断请求信号。
外部中断请求信号方式的选择有其控制位(IT0\IT1)决定,在使用的时候要先设置。
❾ 用单片机模拟控制交通灯
到网络文库中找找,参考论文也比较多。你也可到“淘宝网”上找找:“51单片机交通灯控制系统C语言设计源程序送仿真图”,有现成的,有实物图、仿真、原理图、源程序等,这款交通灯有以下功能。
1. 系统除基本交通灯功能外;
2. 还具有倒计时、显示时间设置;
3. 紧急情况处理、LED信息显示;
4. 时间可以根据具体情况手动控制等功能。
❿ 单片机AT89C51 交通信号灯
用汇编,编写的程序如下,经过了仿真调试,在12MHz的条件下,通过.
ORG 0000H
MOV P0, #01111011B ;P0.7=P0.2=0, 东西 南北 都是红灯.
LCALL DL3S
LOOP:
MOV P0, #11011011B ;P0.5=P0.2=0, 南北绿 东西红.
LCALL DL15S
MOV P0, #10111011B ;P0.6=P0.2=0, 南北黄 东西红.
LCALL DL3S
MOV P0, #01111110B ;P0.7=P0.0=0, 南北红 东西绿.
LCALL DL15S
MOV P0, #01111101B ;P0.7=P0.1=0, 南北红 东西黄.
LCALL DL3S
SJMP LOOP
DL15S:
MOV R2, #5
DL2:
CALL DL3S
DJNZ R2, DL2
RET
DL3S: ;延时3s,实测3.03s
MOV R5, #23
DL3:
MOV R6, #0
DL4:
MOV R7, #0
DL5:
DJNZ R7, DL5
DJNZ R6, DL4
DJNZ R5, DL3
RET
END