




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
姓 名 学 院 信息与通信工程学院班 级 学 号 数字电路综合实验自行车尾灯系统59目录一 设计课题的任务要求3二 系统设计3三 仿真波形及波形分析9四 源程序15五 功能说明及资源利用情况48六 故障及问题分析49七 总结和结论50参考文献50一 设计课题的任务要求基本要求:1.设置夜间模式开关键。打开开关后,自行车尾灯指示系统开始工作并用两个数码管进行计时显示,最大计时时长为 99 秒。同时有不小于 5 秒的开机音乐,此时自行车处于正常行驶状态;2.当自行车处于正常行驶状态时,88 点阵显示三种自定义图案(与下面的左转、右转和刹车不同)。 三种图案轮流显示, 自动进行切换, 每种图案采用呼吸灯模式进行显示,图案由亮到暗、由暗到亮的用时均为 1.5 秒;3.当自行车左转时,选择“左转”按键, 88 点阵显示红色左箭头,并向左滚动显示,若无其他按键操作, 10 秒后回到正常行驶状态;4.当自行车右转时,选择“右转”按键, 88 点阵显示红色右箭头,并向右滚动显示,若无其他按键操作, 10 秒后回到正常行驶状态;5.当自行车处于刹车状态时,选择“刹车”按键, 88 点阵显示红色“X”图案,若无其他按键操作, 5 秒后回到正常行驶状态。提高要求:1.增加夜间智能启动模式。利用光敏传感技术使自行车在行驶过程中,根据光线强弱自动开启尾灯功能,显示行驶状态。2.采用倾斜开关代替左转、右转按键,实现自行车转弯时的自动检测和状态显示;3.自拟其他功能。 *自拟功能:m 使用lcd液晶屏实时地显示当前时间和当前行驶状态(第一行显示时间,第二行显示状态)m 添加行驶记录功能。使用一个拨码开关开启行驶记录模式,然后点击btn1,btn2,btn3,分别查看最近三次行驶状态的变化,以及变化的时间。二 系统设计l 设计思路采用分模块开发的方式,将整个系统的实现分割为很多个模块,包括分频器模块,计时器模块,状态控制模块等,一共13个模块。每一个模块对应一个component,最后在顶层文件中将他们连接起来。所以整体的设计思路是:1. 根据要求设计基本的流程图,逻辑划分框图,状态转移图。2. 根据逻辑划分框图,开始分模块的开发。将当前模块与之前的模块连接并测试,确认成功,再开始下一模块的开发。在模块开发中,根据实际遇到的问题作出调整(模块之间的连接方式,模块内部的实现方式)。3. 最后进行总体的调试,排除存在的bug。l 总体框图m 系统流程图m 逻辑划分框图m 状态转移图l 分块设计:1. 状态控制器(state_control.vhd)entity state_control isport(clk:in std_logic;-50MHzclk_second:in std_logic;-1Hzturn_left,turn_right,recover,stop,poweroff:in std_logic;-外部按键输入:左转,右转,恢复正常行驶,刹车,夜间模式开关state:out integer range 0 to 4;-0:开机音乐,1:正常行驶,2:左转,3:右转,4:刹车save_flag:out std_logic-状态变化时为1,触发data_merge2模块,保存此时的状态);end state_control;*使用整数0-4代表5个不同的状态,根据状态转移图,在不同的输入下转变为不同状态;*为了实现要求中定时转换状态的功能,引入一个计数器,并且在进入新状态时清零。2. 分频器(fenpin.vhd)ENTITY fenpin ISPORT(clk:IN STD_LOGIC;-50MHzclk_out1:OUT STD_LOGIC;-200Hzclk_out2:OUT STD_LOGIC;-1Hzclk_out3:OUT STD_LOGIC;-12.5MHzclk_1MHz,clk_4Hz:OUT STD_LOGIC);END fenpin;*系统时钟为50MHz,根据各模块的需求分出不同的频率。*clk_out1:数码管扫描,按键消抖;clk_out2:计时;clk_out3:脉冲宽度调制;clk_1MHz:音符分频;clk_4Hz:图案滚动显示,音符切换3. 计时器(jishi.vhd)ENTITY jishi ISPORT(clk_in:IN STD_LOGIC;-1Hzsec_outl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出低位的2进制形式sec_outh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出高位的2进制形式sec_decimalh,sec_decimall:OUT INTEGER RANGE 0 TO 9;-输出高位,低位的十进制形式state_in:IN INTEGER RANGE 0 TO 4-输入当前状态);END jishi;*输入1Hz的时钟信号,跟随此信号进行计时。*输出计时的高位和低位,以及十六进制形式。直接用于数码管和lcd的显示。4. 数码管选择器(led_select.vhd)ENTITY led_select ISPORT(sech,secl:IN STD_LOGIC_VECTOR(3 DOWNTO 0);clk_select:IN STD_LOGIC;-200Hzq:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-select which led segment will be lighten dataout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)-select what number led will show);END;*以200Hz的速度轮流输出两个选通信号,分别点亮DISP0和DISP1,显示计时的高位和低位5. 数码管显示器(led_show.vhd)ENTITY led_show IS-根据输入的数字,显示相应的图案PORT(count:IN STD_LOGIC_VECTOR(3 DOWNTO 0);seg7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END led_show;*输入数字,译码为七段数码管的显示信号,显示对应的图案6. 点阵显示控制器(show_control.vhd)entity show_control isport(clk:in std_logic;-50MHzclk_4hz:in std_logic;-4Hzpulse:in std_logic;-脉冲宽度调制后的呼吸灯信号cnt_qiehuan:in integer range 0 to 2;-图案切换计数器row:out std_logic_vector(7 downto 0);-点阵的行信号red:out std_logic_vector(7 downto 0);-点阵列信号(红)green:out std_logic_vector(7 downto 0);-点阵列信号(绿)state:in integer range 0 to 4-当前状态);end;*接收状态控制器输出的当前状态,根据不同状态显示不同图案。*输出包括点阵的行信号和列信号(红,绿)*接收huxideng.vhd输出的脉冲,作为点阵信号赋值的条件,实现了呼吸灯功能7. 呼吸灯(huxideng.vhd)ENTITY huxideng IS PORT (CLK:in STD_LOGIC;-12.5MHz Q:OUT STD_LOGIC;-脉宽调制之后的信号 cnt_qiehuan:OUT INTEGER RANGE 0 TO 2-图案切换计数,3幅图案 ); END ENTITY huxideng ; *对输入的时钟clk进行脉宽调制,调制后输出为Q*由于要求呼吸灯显示三个图案,引入计数器计数,依次显示三个图案8. lcd译码器(lcd_decode.vhd)entity lcd_decode isport (sech,secl:in integer range 0 to 9;sech_decode,secl_decode:out std_logic_vector(7 downto 0);end lcd_decode;*将输入的数字转换为ASCII码,用于LCD显示9. 数据整合模块(data_merge2.vhd)entity data_merge2 is-数据整合模块,用于记录下最近三次的状态变化和时间port(state_save:in integer range 0 to 4;-要保存的状态sech_save,secl_save:in std_logic_vector(7 downto 0);-发生状态变化的时间save_flag:in std_logic;-在状态变化时,触发一次赋值语句,相当于保存下状态ram_out0,ram_out1,ram_out2,ram_out3,ram_out4,ram_out5,ram_out6,ram_out7,ram_out8:out std_logic_vector(7 downto 0)-输出用于lcd显示);end data_merge2;10. lcd显示器(lcd_show2.vhd)PORT(clk:IN STD_LOGIC;-50MHzstate_in:IN INTEGER RANGE 0 TO 4;-当前状态sech_decode,secl_decode:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-数字的ASCII码rs,rw,en:OUT STD_LOGIC;-rs:寄存器选择;rw:读写选择;en:液晶屏使能信号data:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-lcd数据信号ram_in0,ram_in1,ram_in2,ram_in3,ram_in4,ram_in5,ram_in6,ram_in7,ram_in8:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-行驶记录record_switch:IN STD_LOGIC;-行驶记录功能的开关record_1,record_2,record_3:IN STD_LOGIC-通过三个按钮选择3条记录);11. 按键消抖模块(shake_prv2.vhd)entity shake_prv2 is -按键消抖模块port(clk : in std_logic;-200Hzbtn_in : in std_logic;-输入信号(未消抖)btn_out : out std_logic-消抖后的输入信号);end shake_prv2;12. 音乐播放器(music_player.vhd)entity music_player is port(clk : in std_logic;-1mhzspks : out std_logic;clk_4hz:in std_logic;-0.25s per musical notestate:IN INTEGER RANGE 0 TO 4);end;三 仿真波形及波形分析1. 计时器(jishi.vwf)波形分析:可以明显的看到十位和个位的变化情况,十位每十秒变化一次,个位每一秒变化一次.2. 数码管选择器(led_select.vwf)波形分析:共阴极数码管接低电平时被点亮。q为选通信号,可以看出DISP0和DISP1被轮流点亮,分别显示个位和十位。3. 数码管显示器(led_show.vwf):波形分析:输入要显示的数字的二进制码,可以输出相应的七段数码管显示信号。4. 呼吸灯(huxideng.vwf)波形分析:输入一个普通时钟信号,经过脉冲宽度调制,输出脉冲Q.可以看到Q的占空比不断变化,用Q控制led,就可以达到呼吸灯的效果。5. 状态控制器(state_control.vwf)波形分析:*turn_left,turn_right,recover,stop都是外部输入信号,这些输入会引起输出的state变量发生相应的变化。*state是状态变量,使用04一共5个整数表示5个状态,分别是:开机音乐状态,正常行驶状态,左转状态,右转状态,刹车状态6. 点阵显示控制器(show_control.vwf)l 正常行驶图像:(R-U-N)l 左转图像:(左箭头)l 右转图像:(右箭头)l 刹车图像:(X)波形分析:*输入state来自状态控制器,点阵显示器根据不同的state取值显示不同图案。*具体来说,点阵显示是通过行扫描的方式,可以从波形中看出,已较高的频率依次点亮每一行,达到看起来是同时点亮的效果。*对于滚动显示图案,是通过依次播放8幅图像实现的。图像切换的频率是4Hz。7. 按键消抖模块(shake_prv2.vwf)波形分析:*btn_in为输入信号,在现实的按键操作中,按下和弹起的瞬间都会有电压抖动,需要进行消抖。*btn_out是消抖后的信号,可以看出是将输入信号作了一定的延时,这样正好可以排除抖动电压。8. 音乐播放器(music_player.vwf)波形分析:*输入两个时钟信号,clk为1MHz,用于分出不同音符的频率,clk_4hz为4Hz,用于切换音符。*state管脚连接状态控制器,state=0(开机音乐状态)时播放音乐。*输出信号spks直接连接到蜂鸣器管脚,可以看出随着clk_4hz,spk输出的频率在发生变化,这就实现了音乐的连续播放。9. lcd译码器(lcd_decode.vwf)波形分析:将输入的数字转换为相应的ASCII码,直接用于lcd显示10. lcd显示器(lcd_show2.vwf)波形分析:*clk为时钟信号,每个时钟周期执行一次操作。*sech_decode,secl_decode,state为输入,显示当前时间和当前状态。*data,en,rs,rw为lcd显示屏控制管脚,首先进行lcd的初始化,然后再输出显示的数据。11. 数据整合模块:(data_merge2.vwf)波形分析:*本模块主要用于行驶状态记录,当save_flag出现上升沿,就会触发ram_out1ram_out8进行一次记录。*secl_save,sech_save,state_save来自计时器和状态控制器,代表当前时间和状态。四 源程序-顶层文件-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bike_light_1 ISPORT(clk_in:IN STD_LOGIC;-系统时钟 50MHzout_cat:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-数码管选通信号,决定哪些数码管点亮out_seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管显示信号,决定数码管显示的数字out_row,out_r,out_g:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-点阵控制:out_row 行控制信号 out_r,out_g 列控制信号(红,绿)turn_left,turn_right,recover,stop,poweroff:in std_logic;-用户输入:左转,右转,恢复直行,刹车,夜间模式开关buzzer:out std_logic;-蜂鸣器控制信号LCD_RS : out std_logic; -寄存器选择信号LCD_RW : out std_logic; -液晶读写信号LCD_EN : out std_logic; -液晶时钟信号lcd_data: out std_logic_vector(7 downto 0); -液晶数据信号record_switch,record_1,record_2,record_3:IN STD_LOGIC-record_switch:行驶记录的开关,record_1,record_2,record_3:选择第13条记录);END;ARCHITECTURE struct OF bike_light_1 ISCOMPONENT fenpinPORT(clk:IN STD_LOGIC;clk_out1:OUT STD_LOGIC;clk_out2:OUT STD_LOGIC;clk_out3:OUT STD_LOGIC;clk_out4:OUT STD_LOGIC;clk_1MHz,clk_4Hz:OUT STD_LOGIC;pulse_out:OUT STD_LOGIC);END COMPONENT;COMPONENT jishiPORT(clk_in:IN STD_LOGIC;sec_outl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);sec_outh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);sec_decimalh,sec_decimall:OUT INTEGER RANGE 0 TO 9;state_in:IN INTEGER RANGE 0 TO 4;state_out:OUT STD_LOGIC);END COMPONENT;COMPONENT led_selectPORT(sech,secl:IN STD_LOGIC_VECTOR(3 DOWNTO 0);clk_select:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-select which led segment will be lighten dataout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)-select what number led will show);END COMPONENT;COMPONENT led_showPORT(count:IN STD_LOGIC_VECTOR(3 DOWNTO 0);seg7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;COMPONENT shake_prv2port(clk : in std_logic;btn_in : in std_logic;btn_out : out std_logic);END COMPONENT;COMPONENT show_controlport(clk:in std_logic;clk_4hz:in std_logic;pulse:in std_logic;cnt_qiehuan:in integer range 0 to 2;row:out std_logic_vector(7 downto 0);red:out std_logic_vector(7 downto 0);green:out std_logic_vector(7 downto 0);state:in integer range 0 to 4);END COMPONENT;COMPONENT huxidengport(CLK:in STD_LOGIC; Q:OUT STD_LOGIC; row:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); cnt_qiehuan:OUT INTEGER RANGE 0 TO 2 ); END COMPONENT; COMPONENT state_controlport(clk:in std_logic;clk_second:in std_logic;turn_left,turn_right,recover,stop,poweroff:in std_logic;state:out integer range 0 to 4;-0:opening music,1:running,2:turn_left,3:turn_right,4:stopsave_flag:out std_logic);END COMPONENT;COMPONENT music_playerport(clk : in std_logic;-1MHzspks : out std_logic;clk_4hz:in std_logic;-0.25s per musical notestate:IN INTEGER RANGE 0 TO 4);END COMPONENT;COMPONENT lcd_show2 PORT(clk:IN STD_LOGIC;state_in:IN INTEGER RANGE 0 TO 4;sech_decode,secl_decode:IN STD_LOGIC_VECTOR(7 DOWNTO 0);rs,rw,en:OUT STD_LOGIC;data:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ram_in0,ram_in1,ram_in2,ram_in3,ram_in4,ram_in5,ram_in6,ram_in7,ram_in8:IN STD_LOGIC_VECTOR(7 DOWNTO 0);record_switch:IN STD_LOGIC;record_1,record_2,record_3:IN STD_LOGIC);end component;COMPONENT lcd_decodeport (sech,secl:in integer range 0 to 9;sech_decode,secl_decode:out std_logic_vector(7 downto 0);END COMPONENT;COMPONENT data_merge2port(state_save:in integer range 0 to 4;sech_save,secl_save:in std_logic_vector(7 downto 0);save_flag:in std_logic;ram_out0,ram_out1,ram_out2,ram_out3,ram_out4,ram_out5,ram_out6,ram_out7,ram_out8:out std_logic_vector(7 downto 0);END COMPONENT;SIGNAL clk_temp1:STD_LOGIC;SIGNAL clk_temp2:STD_LOGIC;SIGNAL clk_temp3:STD_LOGIC;SIGNAL clk_temp4:STD_LOGIC;SIGNAL pulse_temp:STD_LOGIC;SIGNAL data_templ:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_temph:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_out:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL jishistate:STD_LOGIC;SIGNAL qtemp:STD_LOGIC;SIGNAL cnt_qiehuan:INTEGER RANGE 0 TO 2;SIGNAL state_temp:INTEGER RANGE 0 TO 4;SIGNAL clk_4Hz,clk_1MHz:STD_LOGIC;SIGNAL sec_decimalh,sec_decimall:INTEGER RANGE 0 TO 9;SIGNAL sech_decode,secl_decode:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL ram_temp0,ram_temp1,ram_temp2,ram_temp3,ram_temp4,ram_temp5,ram_temp6,ram_temp7,ram_temp8:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL save_flag:std_logic;SIGNAL stop_prv,turn_left_prv,turn_right_prv,recover_prv,start_prv,record_1_prv,record_2_prv,record_3_prv:std_logic;BEGINu0:fenpin port map(clk=clk_in,clk_out1=clk_temp1,clk_out2=clk_temp2,clk_out3=clk_temp3,clk_out4=clk_temp4,pulse_out=pulse_temp,clk_4Hz=clk_4Hz,clk_1MHz=clk_1Mhz);u1:shake_prv2 port map(clk_temp1,stop,stop_prv);u12:shake_prv2 port map(clk_temp1,turn_left,turn_left_prv);u13:shake_prv2 port map(clk_temp1,turn_right,turn_right_prv);u14:shake_prv2 port map(clk_temp1,recover,recover_prv);u17:shake_prv2 port map(clk_temp1,record_1,record_1_prv);u18:shake_prv2 port map(clk_temp1,record_2,record_2_prv);u19:shake_prv2 port map(clk_temp1,record_3,record_3_prv);u3:jishi port map(clk_in=clk_temp2,state_out=jishistate,sec_outl=data_templ,sec_outh=data_temph,state_in=state_temp,sec_decimalh=sec_decimalh,sec_decimall=sec_decimall);u4:led_select port map(clk_select=clk_temp1,secl=data_templ,sech=data_temph,q=out_cat,dataout=data_out);u5:led_show port map(count=data_out,seg7=out_seg);u6:show_control port map(clk=clk_in,pulse=qtemp,row=out_row,red=out_r,green=out_g,cnt_qiehuan=cnt_qiehuan,state=state_temp,clk_4hz=clk_4Hz);u7:huxideng port map(CLK=clk_temp3,Q=qtemp,cnt_qiehuan=cnt_qiehuan);u8:state_control port map(clk_second=clk_temp2,clk=clk_in,turn_left=turn_left_prv,turn_right=turn_right_prv,recover=recover_prv,stop=stop_prv,poweroff=poweroff,state=state_temp,save_flag=save_flag);u9:music_player port map(clk=clk_1Mhz,clk_4hz=clk_4Hz,spks=buzzer,state=state_temp);u10:lcd_decode port map(sech=sec_decimalh,secl=sec_decimall,sech_decode=sech_decode,secl_decode=secl_decode);u11:lcd_show2 port map(clk=clk_in,rs=LCD_RS,rw=LCD_RW,en=LCD_EN,data=lcd_data,sech_decode=sech_decode,secl_decode=secl_decode,state_in=state_temp,record_switch=record_switch,record_1=record_1_prv,record_2=record_2_prv,record_3=record_3_prv,ram_in0=ram_temp0,ram_in1=ram_temp1,ram_in2=ram_temp2,ram_in3=ram_temp3,ram_in4=ram_temp4,ram_in5=ram_temp5,ram_in6=ram_temp6,ram_in7=ram_temp7,ram_in8=ram_temp8);u16:data_merge2 port map(state_save=state_temp,sech_save=sech_decode,secl_save=secl_decode,ram_out0=ram_temp0,ram_out1=ram_temp1,ram_out2=ram_temp2,ram_out3=ram_temp3,ram_out4=ram_temp4,ram_out5=ram_temp5,ram_out6=ram_temp6,ram_out7=ram_temp7,ram_out8=ram_temp8,save_flag=save_flag);END;-状态控制器-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity state_control isport(clk:in std_logic;-50MHzclk_second:in std_logic;-1Hzturn_left,turn_right,recover,stop,poweroff:in std_logic;-外部按键输入:左转,右转,恢复正常行驶,刹车,夜间模式开关state:out integer range 0 to 4;-0:开机音乐,1:正常行驶,2:左转,3:右转,4:刹车save_flag:out std_logic-状态变化时为1,触发data_merge2模块,保存此时的状态);end state_control;architecture behav of state_control issignal state_tmp:integer range 0 to 4;-暂存状态signal count_down:integer range 0 to 11;-记录保持某一状态的时间signal reset_flag:std_logic;-进入新状态时,置1,count_down将重新计数begin p1:process(clk,state_tmp,turn_left,turn_right,recover,stop,count_down,poweroff)-描述状态转移beginif(poweroff=0) then-夜间模式开关if(clkevent and clk=1) thencase state_tmp iswhen 0=-开机音乐状态,计时5s后,进入正常行驶状态if count_down=4 thenstate_tmp=1;reset_flag=0;save_flag-正常行驶状态if (turn_left=1 and turn_right=0 and stop=0) then-点击左转state_tmp=2;reset_flag=1;save_flag=1;-进入左转状态,计数器清零,保存一次当前状态elsif (turn_right=1 and turn_left=0 and stop=0) then-点击右转state_tmp=3;reset_flag=1;save_flag=1;-进入右转状态,计数器清零,保存一次当前状态elsif (stop=1 and turn_left=0 and turn_right=0) then -点击刹车state_tmp=4;reset_flag=1;save_flag=1;-进入刹车状态,计数器清零,保存一次当前状态else -无操作state_tmp=1;reset_flag=0;save_flag-左转状态if (recover=1 and stop=0 and count_down/=11) then-点击恢复正常行驶state_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态elsif (stop=1 and recover=0 and count_down/=11)then-点击刹车state_tmp=4;reset_flag=1;save_flag=1;-进入刹车状态,计数器清零,保存一次当前状态elsif (count_down=11 and stop=0 and recover=0) then-计时满10sstate_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态else -无操作且计时不满10sstate_tmp=2;reset_flag=0;save_flag-右转状态if (recover=1 and stop=0 and count_down/=11) then-点击恢复正常行驶state_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态elsif (stop=1 and recover=0 and count_down/=11)then-点击刹车state_tmp=4;reset_flag=1;save_flag=1;-进入刹车状态,计数器清零,保存一次当前状态elsif (count_down=11 and stop=0 and recover=0) then-计时满10sstate_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态else -无操作且计时不满10sstate_tmp=3;reset_flag=0;save_flag-刹车状态if (recover=1 and count_down/=6) then -点击恢复正常行驶state_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态elsif (recover=0 and count_down=6) then-计时满5sstate_tmp=1;reset_flag=0;save_flag=1;-进入正常状态,计数器清零,保存一次当前状态else -无操作且计时不满5sstate_tmp=4;reset_flag=0;save_flag=0;-保持刹车状态end if;end case;end if;end if;end process p1;p2:process(clk,clk_second,state_tmp,reset_flag)-计时器beginif (reset_flag=1) then-进入新状态时,count_down清零count_down=0;elsif(clk_secondevent and clk_second=1) thenif(state_tmp=2 or state_tmp=3 or state_tmp=0 or state_tmp=4) thenif count_down=11 thencount_down=0;elsecount_down=count_down+1;end if;end if;end if;end process p2;state=state_tmp;-输出当前状态end behav;-分频器-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin ISPORT(clk:IN STD_LOGIC;-50MHzclk_out1:OUT STD_LOGIC;-200Hzclk_out2:OUT STD_LOGIC;-1Hzclk_out3:OUT STD_LOGIC;-12.5MHzclk_1MHz,clk_4Hz:OUT STD_LOGIC);END fenpin;ARCHITECTURE a OF fenpin ISSIGNAL tmp1:INTEGER RANGE 0 TO 125999;SIGNAL tmp2:INTEGER RANGE 0 TO 99;signal tmp3:INTEGER RANGE 0 TO 1;signal tmp4:INTEGER RANGE 0 TO 49;SIGNAL tmp_1MHz:INTEGER RANGE 0 TO 24;SIGNAL tmp_4Hz:INTEGER RANGE 0 TO 24;SIGNAL clktmp1:STD_LOGIC;SIGNAL clktmp2:STD_LOGIC;SIGNAL clktmp3:STD_LOGIC;SIGNAL clktmp_1MHz,clktmp_4Hz:STD_LOGIC;BEGIN p1:PROCES
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产880台矿用湿喷机项目可行性研究报告
- 年产52万件采油树主阀项目可行性研究报告
- 木皮项目可行性研究报告
- 教育咨询公司合伙协议书
- 湖南省农村土地承包经营权互换合同6篇
- 虚拟机保护技术-洞察及研究
- 挖挖机买卖合同2篇
- 土地承包合同变更协议4篇
- 天津市西青区中北中学2024-2025学年七年级下学期期中生物学试题(含答案)
- 河南省周口市等2地2025-2026学年高三上学期开学生物试题(含答案)
- 自动生成的文档-202504081202-70
- JG/T 503-2016承插型盘扣式钢管支架构件
- 2024年新疆温宿县事业单位公开招聘辅警考试题带答案分析
- 亚马逊项目合伙协议书
- 2024吉林省农村信用社联合社招聘笔试历年典型考题及考点剖析附带答案详解
- 公证处考试历年试题
- 《休闲农业与乡村旅游》课件
- 经颅磁治疗讲课
- 水彩画知识课件视频教学
- 《工伤保险案例分析》课件
- 社区社会组织备案申请表
评论
0/150
提交评论