1 / 26
文档名称:

数电EDA交通信号灯的课程设计--交通信号灯控制器.doc

格式:doc   大小:642KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数电EDA交通信号灯的课程设计--交通信号灯控制器.doc

上传人:endfrs 2018/4/1 文件大小:642 KB

下载得到文件列表

数电EDA交通信号灯的课程设计--交通信号灯控制器.doc

文档介绍

文档介绍:交通信号灯控制器
设计者:王凯
班级:电气工程及其自动化7班
学号:20090710820
指导老师:苏娟
一、课程设计的要求及目的:

2. 掌握电子设计的基本要求,能够运用所学的知识解决生活中的一些问题。
3. 初步掌握VHDL语言编程,并设计出一个有意义的小型系统。
4. 掌握Altium Designer6软件的应用,并且了解相关硬件的组成和功能。
二、设计的功能要求:N
S
W
E
1、交通灯分南北方向和东西方向红绿灯安排,SN为主
干道,EW为支干道。此交通灯分为正常模式和紧急
模式,在正常模式下分为白天模式和夜间模式。
2、交通灯可以根据时钟的时间自动从白天模式转为黑夜模式,交通灯紧急模式和正常模式之间的转换通过开关控制,且当从紧急模式回复到正常模式时,数码管显示回到最初状态。
3、白天模式:主干道工作时:SN(南北直走)绿灯40秒,黄灯5秒;SWNE(南拐西、北拐东)绿灯20秒,黄灯5秒。支干道工作时:EW(东西直走)绿灯20秒,黄灯5秒,WNES(西拐北、东拐南)绿灯20秒,黄灯5秒。(设计直走与左拐的功能是为了防止左拐与对面直走的车辆相撞)
4、黑夜模式:主干道工作时:SN(南北直走)绿灯20秒,黄灯5秒;SWNE(南拐西、北拐东)绿灯10秒,黄灯5秒。支干道工作时:EW(东西直走)绿灯15秒,黄灯5秒,WNES(西拐北、东拐南)绿灯10秒,黄灯5秒。
5、紧急模式:主干道与支干道全亮红灯且显示为00。
三、模块说明
原理图:
1、信号模块
说明:从器件库提出的,提供20M赫兹的脉冲信号。
2、开关模块
说明:从器件库提出,控制下载JTDLCD上灯的显示,控制主控模块上CM的选择,CM为0时为正常模式,CM为1时为紧急模式。控制键盘模块的复位R,键盘只有在复位后才能正常使用,R为1有效。
3、键盘模块
说明:KEYPAD器件从器件库提出,将板上键盘变为16个按键, 从左上到右下,按键按下时,对应输出为1,松开为0。支持多个按键(必须是同一行)同时按下,带防抖,与 NANOBOARD库中器件KEYPAD直接相连。
管脚说明: ICOL[3..0]、OROW[3..0]连接KEYPAD器件,
输入:CPIN 时钟脉冲输入按20MHz设计,链接脉冲发生器。
复位R链接开关O4。
输出:Y[15..0] 16个按键输出。当按下Y1时,JTD模块、时钟模块和JTDLCD模块复位,Y1链接JTD模块R、时钟模块R、R1和JTDLCD模块R。
模块程序VHDL语言如下:
LIBRARY IEEE;
USE ;
USE ;
entity PADTOKEY is
port (CPIN,R :IN STD_LOGIC;
Y: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
ICOL : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --ICOL[3..0]连接KEYPAD器件
OROW : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) --ROW[3..0]连接KEYPAD器件
);
END ENTITY;
architecture JGT of PADTOKEY is
TYPE STATES IS (S0,S1,S2,S3,S4);
SIGNAL S: STATES;
SIGNAL SROW : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL CPCT : INTEGER RANGE 0 TO 255;
SIGNAL CTDELAY: INTEGER RANGE 0 TO 511;
SIGNAL CP:STD_LOGIC;
BEGIN --KEY分频
PROCESS(CPIN)
BEGIN
IF CPIN='1' AND CPIN 'EVENT THEN
IF CPCT=255 THEN
CPCT<=0;CP<= NOT CP;
ELSE
CPCT<=CPCT+1;
END IF;
END IF;
END PROCESS;
PROCESS(CP,R)
VARIABLE N:INTEGER RANGE 0 TO 12; --整数变量
BEGIN
IF R='1' THEN
S<=S0;Y<="0000000000000000";SROW<="1110";N:=0;
ELSIF CP='1' AND CP'EVENT