當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀] 作為一個(gè)菜鳥我很愿意分享下我做的一些小東西,記得一年前好像少幾天吧,看記錄是2009年5月19日我用51單片機(jī)做數(shù)字鐘的情景,那個(gè)時(shí)候用匯編,焦頭爛額,做了三天,還請(qǐng)教了老師。哎,現(xiàn)在都已經(jīng)用C了,而且重心已經(jīng)

 作為一個(gè)菜鳥我很愿意分享下我做的一些小東西,記得一年前好像少幾天吧,看記錄是2009年5月19日

我用51單片機(jī)做數(shù)字鐘的情景,那個(gè)時(shí)候用匯編,焦頭爛額,做了三天,還請(qǐng)教了老師。

哎,現(xiàn)在都已經(jīng)用C了,而且重心已經(jīng)放在了AVR上,

不過想想,這一年我還是學(xué)了很多東西,至少不是虛度了這一年。

FPGA是挺好玩的,不過沒有時(shí)間搞,忙著比賽。

不過憑借著學(xué)期前兩個(gè)禮拜實(shí)習(xí)天天晚上去圖書館自學(xué)VHDL的基礎(chǔ),加上單片機(jī)的基礎(chǔ),一直活到現(xiàn)在。呵呵呵

臭屁一下,今天老師說我可以做他的助教,確實(shí)把我興奮了一把,

其實(shí)我一直很心虛,因?yàn)槎紱]有時(shí)間搞,哪天出個(gè)難題答不上來就糗了。

今天中午和下午花了6個(gè)小時(shí)左右的時(shí)間做了一個(gè)數(shù)字鐘,

VHDL語言(Very high speed integrated circuit Hardware Description Language)即超高速集成電路硬件描述語言。

顧名思義既然是硬件描述,當(dāng)然是描述硬件,這個(gè)語言相當(dāng)于在FPGA或CPLD芯片里熔出一個(gè)數(shù)字電路。

硬件FPGA 芯片是ALTERA公司Cyclone II 系列的EP2C35F672C6

使用的是ALTERA公司的開發(fā)板,型號(hào)DE2來張全圖,軟件為Quartus II 8.0,、ALTERA公司為自己產(chǎn)品打造的開發(fā)軟件。

<center>

據(jù)說是5000塊錢,因?yàn)槭菍W(xué)校教學(xué)用,批量買,2500塊錢(不過我看下,就芯片貴,我看這個(gè)板子人家至少賺了1000多),我原來以為老師不會(huì)借,不過他似乎不介意,倒是他主動(dòng)借給我的,額。。。

不費(fèi)話了,貼程序吧

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fpq is

port(clk : in std_logic;

k : in std_logic;

k1 : in std_logic;

k2 : in std_logic;

ge : out std_logic_vector(0 to 6);

shi : out std_logic_vector(0 to 6);

feng : out std_logic_vector(0 to 6);

fens : out std_logic_vector(0 to 6);

shig : out std_logic_vector(0 to 6);

shis : out std_logic_vector(0 to 6));

end fpq;

architecture first of fpq is

signal clock : integer range 0 to 24999999;

signal ge_t : integer range 0 to 9;

signal shi_t : integer range 0 to 5;

signal feng_t : integer range 0 to 9;

signal fens_t : integer range 0 to 5;

signal shig_t : integer range 0 to 9;

signal shis_t : integer range 0 to 2;

signal temp : integer range 0 to 9;

begin

t0: process(clk)

begin

if (clk'event and clk='1') then

clock <= clock + 1;

if clock = 24999999 then

---------------------------------------------

if k='0' then

---------------------------------------------

if ge_t = 9 then

ge_t <= 0;

if shi_t = 5 and ge_t = 9 then

shi_t <= 0;

if feng_t = 9 and shi_t = 5 then

feng_t <= 0;

if fens_t = 5 and feng_t = 9 then

fens_t <= 0;

if shis_t = 2 and shig_t = 3 and fens_t = 5 then

shig_t <= 0;

if shis_t = 2 and shig_t = 3 then

shis_t <= 0;

else

shis_t <= shis_t + 1;

end if;

else

if shig_t = 9 and fens_t = 5 then

shig_t <= 0;

else

shig_t <= shig_t +1;

end if;

end if;

else

fens_t <= fens_t + 1;

end if;

else

feng_t <= feng_t + 1;

end if;

else

shi_t <= shi_t + 1;

end if;

else

ge_t <= ge_t + 1;

end if;

else

if k1='0' then

if feng_t = 9 then

feng_t <= 0;

if fens_t = 5 then

fens_t <= 0;

else

fens_t <= fens_t + 1;

end if;

else

feng_t <= feng_t + 1;

end if;

end if;

if k2='0' then

if shig_t = 3 and shis_t = 2 then

shig_t <= 0;

shis_t <= 0;

else

if shig_t = 9 then

shig_t <= 0;

if shis_t = 2 then

shis_t <= 0;

else

shis_t <= shis_t + 1;

end if;

else

shig_t <= shig_t + 1;

end if;

end if;

end if;

end if;

------------------------------------------------

end if;

end if;

------------------------------------------------

end process t0;

c: process(clk,ge_t,shi_t,feng_t,fens_t,shig_t,shis_t)

begin

case ge_t is

when 9 => ge <= "0000100";

when 8 => ge <= "0000000";

when 7 => ge <= "0001111";

when 6 => ge <= "0100000";

when 5 => ge <= "0100100";

when 4 => ge <= "1001100";

when 3 => ge <= "0000110";

when 2 => ge <= "0010010";

when 1 => ge <= "1001111";

when 0 => ge <= "0000001";

end case;

case shi_t is

when 5 => shi <= "0100100";

when 4 => shi <= "1001100";

when 3 => shi <= "0000110";

when 2 => shi <= "0010010";

when 1 => shi <= "1001111";

when 0 => shi <= "0000001";

end case;

case feng_t is

when 9 => feng <= "0000100";

when 8 => feng <= "0000000";

when 7 => feng <= "0001111";

when 6 => feng <= "0100000";

when 5 => feng <= "0100100";

when 4 => feng <= "1001100";

when 3 => feng <= "0000110";

when 2 => feng <= "0010010";

when 1 => feng <= "1001111";

when 0 => feng <= "0000001";

end case;

case fens_t is

when 5 => fens <= "0100100";

when 4 => fens <= "1001100";

when 3 => fens <= "0000110";

when 2 => fens <= "0010010";

when 1 => fens <= "1001111";

when 0 => fens <= "0000001";

end case;

case shig_t is

when 9 => shig <= "0000100";

when 8 => shig <= "0000000";

when 7 => shig <= "0001111";

when 6 => shig <= "0100000";

when 5 => shig <= "0100100";

when 4 => shig <= "1001100";

when 3 => shig <= "0000110";

when 2 => shig <= "0010010";

when 1 => shig <= "1001111";

when 0 => shig <= "0000001";

end case;

case shis_t is

when 2 => shis <= "0010010";

when 1 => shis <= "1001111";

when 0 => shis <= "0000001";

end case;

end process c;

end first;

和匯編有的一拼啊,呵呵,由于是新手,所以很多程序都帶有單片機(jī)的想法,其實(shí)VHDL和C、FPGA和單片機(jī)是兩種不同的語言、芯片,主要是要有并行思想和狀態(tài)機(jī)的概念,很遺憾我現(xiàn)在好像都沒有。

設(shè)置模式開關(guān)是sw01.、分鐘設(shè)置按鈕key01、key02 。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉