【正文】
END IF。 THEN IF CLK_100K39。 else t:=1。 10k ELSE COUNT_SUM=500。 ARCHITECTURE ONE OF SWITCH1 ISSIGNAL B,temp_counter, clk_out:STD_LOGIC。library IEEE。 END IF 。BEGIN TIMC:PROCESS(ECHO,CLK_10U) BEGIN IF CLK_10U39。USE 。 H=N/100。USE 。 when others=led_dig=01111111。 when0010=led_dig=01011011。 when0110=led_dig=01111101。 when others=led_dig=11111111。 when0010=led_dig=11011011。ENTITY display ISport(led_sel_in:in std_logic_vector(3 downto 0)。 end if。process(clk_in_25MHz)variable t1:integer range 0 to 124。139。 clk_out_100KHz:out std_logic。 END IF。 ELSE COUNT=COUNT+1。 TRIG:OUT STD_LOGIC )。end if。)thencase(i) is when 0=led_sel=1110。use 。u4:display port map(led_sel_temp,m1,m2,m3,led_dig,led_sel)。END ponent。end ponent。ponent MEASURE is PORT(T_12:IN UNSIGNED(11 DOWNTO 0)。architecture Behavioral of system issignal clk_100kHz,clk_1KHz,BUZZ:std_logic。use 。 ,板級(jí)調(diào)試出現(xiàn)錯(cuò)誤或者與預(yù)想的結(jié)果不同時(shí),可以從引腳到器件進(jìn)行一步步的分析,很可能是引腳映射錯(cuò)誤或者板子自身的問(wèn)題。根據(jù)功能和所需參數(shù)分別設(shè)計(jì)頂層和底層文件,通過(guò)原件例化聯(lián)系到一起。計(jì)算模塊是完成周期計(jì)數(shù)數(shù)據(jù)到米、分米和厘米的BCD碼轉(zhuǎn)換功能。 時(shí)序圖如下: 由上計(jì)算,在頻率為100KHZ的時(shí)鐘下,最大距離往返可以計(jì)數(shù)2647次,化成二進(jìn)制為:1010_0101_0111,也即最大計(jì)數(shù)為12位寬的二進(jìn)制表示。其中為滿足觸發(fā)條件,所以取值為5。已知超聲波模塊完成觸發(fā)需要大于10微秒的高電平,所以需要至少兩個(gè)周期(上升沿觸發(fā))。再開(kāi)關(guān)選擇打開(kāi)時(shí),蜂鳴器開(kāi)始工作,根據(jù)超聲波返回高電平信號(hào)記錄周期數(shù),設(shè)定判斷距離標(biāo)準(zhǔn)。此功能在單片機(jī)上實(shí)現(xiàn)更為方便,成本也更低。過(guò)程中,進(jìn)行了需求分析,可行性分析,模塊建構(gòu)和調(diào)試下載等過(guò)程,從中學(xué)到很多工程實(shí)踐過(guò)程中的知識(shí)。此功能在單片機(jī)上實(shí)現(xiàn)更為方便,成本也更低。;25MHZ為100KHZ的250倍,因而從0到124計(jì)數(shù)。第二個(gè)方面得不到保證會(huì)使人感覺(jué)數(shù)據(jù)變化突兀。 模塊要求高電平時(shí)開(kāi)始計(jì)數(shù),為低時(shí)把計(jì)數(shù)結(jié)果導(dǎo)出并持續(xù)到下一個(gè)下降沿的數(shù)據(jù)更新時(shí),并把計(jì)數(shù)信號(hào)置零,等待重新計(jì)數(shù)。顯示模塊里有兩個(gè)功能塊,第一個(gè)是進(jìn)行從BCD碼到數(shù)碼管的軟譯功能(區(qū)分?jǐn)?shù)碼管是共陰極還是共陽(yáng)極),要注意高位為米位,其小數(shù)點(diǎn)位需要點(diǎn)亮。再根據(jù)所屬不同范圍產(chǎn)生不同的分頻功能,分頻結(jié)果輸出到蜂鳴器。當(dāng)然,實(shí)驗(yàn)最有價(jià)值的東西不止是成功的喜悅,更有在實(shí)驗(yàn)過(guò)程中調(diào)試中不斷發(fā)現(xiàn)問(wèn)題解決問(wèn)題和處理問(wèn)題的經(jīng)歷,以及總結(jié)學(xué)習(xí)的工程實(shí)踐的經(jīng)驗(yàn),在此作以總結(jié): ,一定要先在腦?;蛟O(shè)計(jì)本上規(guī)劃好頂層各個(gè)模塊的功能實(shí)現(xiàn)和參數(shù)設(shè)置,也要設(shè)計(jì)好底層某一模塊具體功能的實(shí)現(xiàn)。(2)工作原理: 采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào); 模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; 有信號(hào)返回,通過(guò)IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)library IEEE。 led_dig : out std_logic_vector(7 downto 0)。 clk_out_100KHz:out std_logic。end ponent。end ponent。beginu1:freq_div port map(clk_in,clk_100KHz,clk_1KHz)。library IEEE。beginif(clk_in39。i:=0 when others=led_sel=0000。USE 。EVENT AND CLK_10U=39。139。use 。beginprocess(clk_in_25MHz) variable t:integer range 0 to 12499。 end if。 else t1:=0。use 。architecture Behavioral of disp