1、三、 模块功能描述1.主控制器主控制器决定控制电路的状态变化及输出两条干道上倒计时间(两位BCD码)。主控制器的输入信号有:复位R,1有效、特殊状态EMERGE,1有效。功能如下表所示:REMERGE主干道(东西向)支干道(南北向)时间状态GY1X复位交替显示暂停50秒东西通车5秒过渡态30秒南北通车其中在紧急状态(emerge=1)时,能实现设计所要求的扩展功能。2.LCD控制译码及显示模块JTDLCD - 目的:在LCD上按格式显示交通灯的2个2位BCD码,红绿黄灯-输入:EW7.0、SN7.0 东西、南北向的2个2位BCD码-EWRYG2.0、SNRYG2.0东西南北的红绿灯信号,顺序为
2、红黄绿-CPIN 时钟脉冲输入 按10MHz设计 ;复位R然后JLDLCD的输出数据到altium自带的LCD16X2ALCD控制核,由该内核控制LCD显示3.蜂鸣器模块当emerge=1时,cp脉冲促使蜂鸣器发声,否则蜂鸣器不发声。4.系统顶层模块总框图:四、 程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_unsigned.ALL;use IEEE.STD_LOGIC_arith.ALL;entity jiaotongdeng is Port ( R ,CLK: in STD_LOGIC; -复位(1“有效)及时钟
3、输入 EMERGE :-紧急状态输入,1有效 EWRYG:out STD_LOGIC_VECTOR (2 downto 0);-东西向状态输出,顺序为红黄绿 SNRYG: -南北向状态输出,顺序为红黄绿 EW :out STD_LOGIC_VECTOR (7 downto 0); -东西向两位BCD码计数输出 SN :out STD_LOGIC_VECTOR (7 downto 0) -南北向两位BCD码计数输出 );end jiaotongdeng;architecture Behavioral of jiaotongdeng issignal cnt,atime,aregtime,btim
4、e,bregtime,EWH,EWL,SNH,SNL:integer range 0 to 90; beginprocess(clk,emerge,r) -由复位端及紧急状态控制大计数循环的置数,暂停或减一操作 if(R=1) then cnt=90; elsif(rising_edge(clk) then if(cnt=0) then elsif (emerge=cnt ; else=cnt-1; end if; end process;a:process(clk) -东西向倒计时二进制码输出控制以及东西南北向状态灯颜色控制variable p :integer range 0 to 1 ;
5、 if(rising_edge(clk) then if(emerge=) then -紧急状态时状态灯全置红,东西向倒计数在当前状态跟全零间交替显示 EWRYG=100; SNRYG ; if(p=0) then p:=1; atime=40 ) then aregtime = cnt-40; EWRYG 001 SNRYG =35) then aregtime=0) then=cnt-0;=5) thenend process;b:process(clk) -南北向二进制码倒计时输出控制variable q :) then -紧急状态时南北向到计数在全零跟当天状态间交替显示 if(q=0)
6、 then q: btime=bregtime;=q-1; bregtime =90) then EWH =9; EWL=80) then=8;=atime-80;=70) then=7;=atime-70;=60) then=6;=atime-60;=50) then EWH=5;=atime-50;=40) then=4;=atime-40;=30) then=3;=atime-30;=20) then=2;=atime-20;=10) then=atime-10;=atime;end if;with EWH selectEW(7 downto 4) = 1001 when 9, 1000
7、 when 8, 0111 when 7,0110 when 6, 0101 when 5, 0100 when 4, 0011 when 3, 0010 when 2, 0001 when 1, 0000 when 0, when others;with EWL selectEW(3 downto 0) SNH SNL SnL=btime-80;=btime-70;=btime-60; SNH=btime-50;=btime-40;=btime-30;=btime-20;=btime-10;=btime; with SNH selectSN(7 downto 4) with SNL sele
8、ctSN(3 downto 0) end Behavioral;2.LCD控制器-File name JTDLCD- 目的:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity JTDLCD is port (CPIN,R,BUSY :IN STD_LOGIC; EW,SN :IN STD_LOGIC_VECTOR(7 DOWNTO 0); EWRYG,SNRYG : IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK,RST,STROBE,OUTLINE : OUT
9、 STD_LOGIC; DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)end entity ;architecture JGT of JTDLCD is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES; SIGNAL LCDPT : INTEGER RANGE 0 TO 10; SIGNAL CPCT : INTEGER RANGE 0 TO 65535; SIGNAL CP: STD_LOGIC; SIGNAL ASCEW,AS
10、CSN : STD_LOGIC_VECTOR(7 DOWNTO 0);beginPROCESS(CPIN,R)BEGINCLK=CPIN;IF R= THEN CPCT=65535;ELSIF CPIN= AND CPIN EVENT THEN IF CPCT=0 THENCPS2 - : 转S3- ;N; NULL-S2:给出STROBE信号。转S1-S1,S2完成初始化固定显示的功能PROCESS(CP,R) S=S0;LCDPTRST=S1; WHEN S1= RST0STROBE IF BUSY= LCDPT -S3S4完成扫描显示功能-S3:BUSY=0? LCDPT循环+1 ,转S
11、4-S4:给出STROBE信号,转S3 WHEN S3= STROBES NULL; END CASE; END PROCESS;-选择输出进程(LCDPT)-LCDPT=0,NULL- =14 显示EW SN E 45H,5 W57H,6 S53H,9 N4EH,10PROCESS(LCDPT,EW,ASCEW,SN,ASCSN)CASE LCDPT ISWHEN 0 =WHEN 1= DATA01000101ADDROUTLINE01010111WHEN 3=01010011WHEN 4=010011101010 -LCDPT=5,6 EWBCD码 EH,5 EL,6-LCDPT=7 EW
12、 红绿灯 R,4-LCDPT=89 SNBCD码 SH,9 SL,10-LCDPT=10 SN 红绿灯。 G,8 R52H;Y59H;G47HWHEN 5=DATAEW(3 DOWNTO 0);WHEN 7=ASCEW;WHEN 8=SN(7 DOWNTO 4);WHEN 9=SN(3 DOWNTO 0);WHEN 10=ASCSN;WHEN OTHERS=END CASE;PROCESS(EWRYG)CASE EWRYG ISWHEN = ASCEW010100100101100101000111PROCESS(SNRYG)CASE SNRYG IS ASCSN end architectu
13、re JGT;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity spea isport(emerge,cp:in std_logic; speakers:out std_logicend spea;architecture jgt of spea issignal cpct:integer range 0 to 5; signal speak:std_logic;process(cp,emerge)if emerge= then cpctspeakelsif cp= and cp event then if cpct=5 then
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1