freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的vhdl編寫的電子時(shí)鐘-資料下載頁

2024-11-08 06:25本頁面

【導(dǎo)讀】它不但可以作為鬧鐘,也可以作為計(jì)時(shí)器。為簡化設(shè)計(jì)與驗(yàn)證作業(yè),用信號發(fā)生器輸出的1024Hz作為系統(tǒng)頻率(時(shí)鐘)。因此將其除以210=1024,即得1Hz的秒鐘信號,秒計(jì)滿60即得1分鐘,分計(jì)滿60便得1小時(shí)的信號,小時(shí)計(jì)滿24即得一天。電子鐘的外觀示意圖如圖4-1所示。的功能模塊均以組件的形式存在,以便相關(guān)塊的調(diào)用。主程序內(nèi)用不同功能的塊構(gòu)成一個(gè)完整的結(jié)構(gòu)。我們將所有組件收集在同一個(gè)程序包my_pkg中。。

  

【正文】 atch status signal stop_index,alarm_index: std_logic。 signal alarm_disp,stop_disp : std_logic。 begin 正常計(jì)數(shù)時(shí)間功能模塊 系統(tǒng)必須維持一個(gè)持續(xù)不斷計(jì)數(shù)的時(shí)鐘,從時(shí)間00:00:00到23:59:59循環(huán)不斷。首先將1024Hz的系統(tǒng)輸入脈沖除以1024得到1Hz的基本秒輸入,然后除以60得分?jǐn)?shù),再除以60得小時(shí)數(shù),再除以24得一個(gè)滿日指針,節(jié)。 block模塊的程序代碼。 normal_counting block的VHDL碼 normal counting from 00:00:00 to 23:59:59 normal_counting:block input : rst,clk output: hz1, n_sec,n_min,n_hour signal full_sec:std_logic。 index of 60 seconds fully counted signal full_min:std_logic。 index of 60 minutes fully counted signal full_hour:std_logic。 index of 24 hours fully counted begin to get 1hz clock u0:div1024 port map(clk=clk,f1hz=hz1)。 to count from 0 to 60 seconds and get full_sec u1:count60 port map(rst=rst,carry=hz1,times=n_sec,full=full_sec)。 to count from 0 to 60 minutes and get full_min u2:count60 port map(rst=rst,carry=full_sec,times=n_min,full=full_min)。 to count from 0 to 24 hours and get full_hour u3:count24 port map(rst=rst,carry=full_min,times=n_hour,full=full_hour)。 end block normal_counting。 定時(shí)器設(shè)定與計(jì)時(shí)功能模塊 在此模塊中,并執(zhí)行計(jì)時(shí)動(dòng)作,取得計(jì)時(shí)終止指針,然后由計(jì)時(shí)終止指針標(biāo)示出計(jì)時(shí)終止?fàn)顟B(tài)led_stop =’1’。 block模塊的程序代碼。 stop_watch block的VHDL碼 stop watch setting and down_counting stop_w: block input:rst,hz1,stop,ok,sec_tune,min_tune,hour_tune output:s_sec,s_min,s_hour,stop_index begin u4:stop_watch port map(rst=rst,hz1=hz1,stop=stop,ok=ok,sec_tune= sec_tune,min_tune=min_tune,hour_tune=hour_tune,stop_sec= s_sec,stop_min=s_min,stop_hour=s_hour,index= stop_index,disp=stop_disp)。 p1:process(rst,stop_index) begin if rst=’1’ then led_stop=’0’。 elsif rising_edge(stop_index) then led_stop=’1’。 end if。 end process p1。 end block stop_w。 鬧鐘設(shè)定與時(shí)間對比功能模塊 在此模塊中,然后確認(rèn)指針開關(guān)ok處于on(’1’)時(shí),開始進(jìn)行目前正常時(shí)間與鬧鐘設(shè)定時(shí)間的對比動(dòng)作,對比完成即設(shè)定alarm_index為1,然后再進(jìn)一步標(biāo)示出鬧鐘設(shè)定狀態(tài)led_alarm = ’1’。 block模塊的程序代碼。 alarm_setting block的VHDL碼 alarm_setting:block input : rst,sec_tune,min_tune,hour_tune,alarm,ok output: a_sec,a_min,a_hour,alarm_index,led_alarm begin u5:alarm_set port map(rst=rst,hz1=hz1,alarm=alarm,ok=ok,sec_tune= sec_tune,min_tune=min_tune,hour_tune= hour_tune,sec=a_sec,min=a_min,hour=a_hour)。 p1:process(alarm,ok) begin if rst=’1’ then alarm_index=’0’。 elsif alarm=’1’ and ok=’1’ then if (a_sec=n_sec and a_min=n_min and a_hour=n_hour) then alarm_index=’1’。 else alarm_index=’0’。 end if。 end if。 alarm_disp=(alarm and not ok) and not alarm_index。 end process p1。 p2:process(rst,alarm_index) begin if rst=’1’ then led_alarm=’0’。 elsif rising_edge(alarm_index) then led_alarm=’1’。 end if。 end process p2。 end block alarm_setting。 輸出選擇與數(shù)碼轉(zhuǎn)換功能模塊 通常6個(gè)時(shí)分秒數(shù)字所顯示的是正常的計(jì)數(shù)時(shí)鐘,但在鬧鐘與定時(shí)器時(shí)間設(shè)定過程中,必須顯示正在設(shè)定的鬧鈴時(shí)間或定時(shí)器計(jì)時(shí)時(shí)間。另外,在定時(shí)器計(jì)時(shí)過程中,為了觀察進(jìn)行時(shí)間,必須顯示正在計(jì)時(shí)的剩余時(shí)間。 與定時(shí)器時(shí)間的顯示條件。轉(zhuǎn)換成BCD形式。 block模塊的程序代碼。 輸出時(shí)間的顯示條件 output block的VHDL碼 to decide which time displayed and transformed to bcd format output:block input:clk,stop_disp,alarm_disp input:s_sec,s_min,s_hour,a_sec,a_min,a_hour,n_sec, n_min, n_hour output:second,minute,hour begin process(clk,stop_disp,alarm_disp) begin if rising_edge(clk) then if stop_disp=’1’ then second=s_sec。 minute=s_min。 hour=s_hour。 elsif alarm_disp=’1’ then second=a_sec。 minute=a_min。 hour=a_hour。 else second=n_sec。 minute=n_min。 hour=n_hour。 end if。 end if。 end process。 tranformed to bcd format u6:i60bcd port map(interg=second,ten=sec_ten,one=sec_one)。 u7:i60bcd port map(interg=minute,ten=min_ten,one=min_one)。 u8:i24bcd port map(interg=hour,ten=hour_ten,one=hour_one)。 end block output。 掃描多路輸出功能模塊 為了節(jié)省IC的輸出引腳及耗電量,可以將4組數(shù)字輸出或2組數(shù)字輸出作為多路輸出,故所需引腳數(shù)由28降至7個(gè),14降至7個(gè);另外使用四合一型七段顯示器與視覺暫留效應(yīng)可降低顯示耗電量3/4。組件由BCD碼轉(zhuǎn)換成七段顯示器碼,然后分別將分秒的4個(gè)數(shù)字通過scan4組件掃描輸出,而將小時(shí)數(shù)的2個(gè)數(shù)字通過scan2組件掃描輸出,最后完成整個(gè)電子鐘的功能。 block模塊的程序代碼。 scan_display block的VHDL碼 transform bcd format to 7_segment led display format and scan out scan_display:block begin u11:bin2led port map(bin=sec_one,led=sec7_one)。 u12:bin2led port map(bin=sec_ten,led=sec7_ten)。 u13:bin2led port map(bin=min_one,led=min7_one)。 u14:bin2led port map(bin=min_ten,led=min7_ten)。 u15:bin2led port map(bin=hour_one,led=hour7_one)。 u16:bin2led port map(bin=hour_ten,led=hour7_ten)。 u17:scan4 port map(rst=rst,clk=clk,a=sec7_one, b=sec7_ten,c=min7_one,d=min7_ten, mux_out=seg4,pa=p1,pb=p2,pc=p3,pd=p4)。 u18: scan2 port map(rst=rst,clk=clk,a=hour7_one, b=hour7_ten,mux_out=seg2,pa=p5,pb=p6)。 end block scan_display。 當(dāng)時(shí)間進(jìn)行到7s時(shí),設(shè)定stop=’1’,sec_tune=’1’,因此輸出時(shí)間second變成定時(shí)器設(shè)定時(shí)間s_sec,直到5s時(shí)ok=’1’,仍然顯示定時(shí)器時(shí)間,直到s_sec為0,此時(shí)led_stop=’1’,而時(shí)間顯示則還原為n_sec=18s。在這段時(shí)間內(nèi)正常計(jì)數(shù)時(shí)鐘n_sec, n_min, n_hour一直沒停過。信號仿真結(jié)果如圖412所示。 圖4-12鬧鈴設(shè)定1min后令ok=’1’,則時(shí)間對比開始,此時(shí)顯示正常計(jì)數(shù)時(shí)鐘。直到鬧鈴設(shè)定時(shí)間到達(dá),則警示燈led_alarm亮,此信號可用來觸發(fā)鬧鈴。信號仿真結(jié)果如圖413所示。 圖4-13
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1