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

正文內(nèi)容

基于fpga的數(shù)字鐘設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-04-03 09:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 會(huì)被它所衰減 , 而且 , 振蕩信號(hào)的頻率與振蕩電路中的 R、 C元件的數(shù)值無(wú)關(guān)。因此 , 這種振蕩電路輸出的是準(zhǔn)確度極高的信號(hào)。然后再利用分頻電路 , 將其輸出信號(hào)轉(zhuǎn)變?yōu)槊胄盘?hào),其組成框圖如圖 41。 圖 41 秒信號(hào)產(chǎn)生電路框圖 本系統(tǒng)使用的晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的40MHz 的方波信號(hào),其輸出至分頻電路。分頻電路的邏輯框圖 如圖 42所示。 圖 42 分頻電路模塊 分頻電路 石英晶體 振蕩電路 秒信號(hào) 14 圖 43 分頻模塊電路設(shè)計(jì) 其內(nèi)部結(jié)構(gòu)圖見圖 43。電路中采用 Max+plusII 元器件庫(kù)中的計(jì)數(shù)器7490 進(jìn)行 硬件分頻。經(jīng)分頻后輸出 1HZ 的標(biāo)準(zhǔn)秒信號(hào) CLK 4MHZ 的按鍵掃描信號(hào)、 1KHZ 的按鍵去抖信號(hào)和 500HZ 用于報(bào)時(shí)模塊的輸入信號(hào)。該模塊的時(shí)序仿真圖如圖 44 所示,滿足設(shè)計(jì)要求。 圖 44 分頻模塊仿真圖 校時(shí)控制模塊電路設(shè)計(jì)與實(shí)現(xiàn) 鍵盤接口電路原理 校時(shí)控制模塊在本系統(tǒng)中也就是鍵盤接口電路部分。下面先介紹鍵盤接口電路的工作原理,如圖 45。本系統(tǒng)采用的就是這種行列式鍵盤 接口,相對(duì)個(gè)按鍵的鍵盤接口來說節(jié)省了 I/O 接口。如圖所示,行線通 15 過一個(gè)電阻被上拉到 +5V 電壓。行線與 按鍵的一個(gè)引腳相連,列線與按鍵的另一個(gè)引腳相連。平時(shí)列線被置成低電平,沒有按鍵被按下的時(shí)候,行線保持高電平,而有按鍵被按下的時(shí)候,行線被拉成低電平,這時(shí)候控制器就知道有按鍵被按下,但只能判斷出在哪一行,不能判斷出在哪一列,因此接下來就要進(jìn)行鍵盤掃描,以確定具體是哪個(gè)按鍵被按下。鍵盤掃描的過程事將列線逐列置成低電平,然后讀取行線狀態(tài),直到行 線中出現(xiàn)低電平,可知這時(shí)哪一列是低電平,然后將行線與列線的狀態(tài)裝入鍵碼寄存器,進(jìn)行按鍵譯碼,得到按下的按鍵的相應(yīng)編碼,這樣就完成了按鍵掃描的過程。當(dāng)然,一個(gè)完整的按鍵掃描 過程還需要配合相應(yīng)的鍵盤去抖手段才能正確的識(shí)別按鍵,不會(huì)發(fā)生重鍵和錯(cuò)誤判斷等情況。 圖 45 鍵盤接口電路 鍵盤接口的 VHDL 描述 本模塊用于當(dāng)有按鍵按下時(shí),采用軟件消抖的辦法去除按鍵抖動(dòng)。模塊的實(shí)現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時(shí)一段時(shí)間,待抖動(dòng)過去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按 16 鍵按下,然后產(chǎn)生一個(gè)有按鍵按下的信號(hào)。該模塊有一個(gè)時(shí)鐘輸入端口,輸入時(shí)鐘信號(hào)是分頻出來的 1KHZ的時(shí)鐘;有一個(gè)輸入端口與行線相連,用于輸入行線狀態(tài);一個(gè)輸出端口,用 于輸出有按鍵按下的信號(hào)。該模塊的邏輯框圖如圖 46 所示。 圖 46 去抖邏輯框圖 該電路的 VHDL 程序如下: library ieee。 use 。 use 。 use 。 entity qudou is port(clk1:in std_logic。 row:in std_logic_vector(3 downto 0)。 key_pre:out std_logic)。 end qudou。 architecture behav of qudou is signal sig1,counter:std_logic_vector(3 downto 0)。 signal tmp1,sig2:std_logic。 begin sig1=row。 tmp1=sig1(0)and sig1(1)and sig1(2)and sig1(3)。 key_pre=counter(0)and counter(1)and counter(2)and counter(3)。 process(clk1) begin if(clk139。event and clk1=39。139。)then if(tmp1=39。039。)then if(sig2=39。039。)then 17 sig2=39。139。 end if。 end if。 if(sig2=39。139。)then if(counter=1111)then sig2=39。039。 counter=0000。 else counter=counter+39。139。 end if。 end if。 end if。 end process。 end behav。 程序說明: 這段程序是實(shí)現(xiàn)按鍵消抖,在這里實(shí)現(xiàn)的比較簡(jiǎn)單,原理是當(dāng)有按鍵按下的時(shí)候, temp1 會(huì)變成低電平,這時(shí)把 sig2 變成高電平,如果此時(shí) counter 不為“ 1111”時(shí),內(nèi)部計(jì)數(shù)器計(jì)數(shù),從“ 0000”直到“ 1111”,當(dāng)計(jì)數(shù)到“ 1111”時(shí), key_pre 輸出高電平,同時(shí)計(jì)數(shù)器清零。由于計(jì)數(shù)脈沖為 1KHZ,故從有按鍵按下到輸入信號(hào)產(chǎn)生大概需要 15ms。 如果有按鍵抖動(dòng)的話, tem1 會(huì)在“ 0”和“ 1”之間變動(dòng)多次,但是計(jì)數(shù)過程不會(huì)停止,原因是計(jì)數(shù)由 sig2 的電平?jīng)Q定,而 sig2 一旦變成高電平,再要變成低電平,需要計(jì)數(shù)完成即 counter 等于“ 1111”時(shí)。所以計(jì)數(shù)過程不會(huì)受抖動(dòng)影響。一旦計(jì)數(shù)完成,抖動(dòng)已經(jīng)過去,不會(huì)發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動(dòng)。 鍵掃描模塊的框圖如圖 47 所示。 18 圖 47 按鍵掃描模塊 CLKY 為輸入時(shí)鐘,該時(shí)鐘是分頻模塊分出的 4MHZ 的時(shí)鐘信號(hào),之所以在這里采用頻率高的時(shí)鐘信號(hào)就是因?yàn)殒I掃描是一個(gè)快過程,不需 要太慢的時(shí)鐘。 Key_pre 是由去抖模塊輸出的有鍵按下的信號(hào),這個(gè)信號(hào)引發(fā)按鍵掃描模塊內(nèi)部信號(hào)的變化,在該狀態(tài)信號(hào)的作用下,模塊可以鍵盤掃描。 ROW[3..0]是行輸入信號(hào),與鍵盤的行線相連, COM[3..0]是列輸出信號(hào),與鍵盤的列線相連。 SCAN_CODE[7..0]是掃描的鍵碼輸出端口。 鍵掃描的基本方法是將列線逐一置成低電平,然后讀行線輸入端口,如果行線中有低電平出現(xiàn),說明按鍵已經(jīng)確定,將行向量和列向量讀入鍵碼中即可。鍵盤掃描程序如下: library ieee。 use 。 use 。 use 。 entity ajsm is port(clky,key_pre:in std_logic。 row:in std_logic_vector(3 downto 0)。 :out std_logic_vector(3 downto 0)。 scan_code:out std_logic_vector(7 downto 0))。 end ajsm。 architecture behav of ajsm is signal sig_:std_logic_vector(3 downto 0)。 signal counter:std_logic_vector(1 downto 0)。 signal tmp,sig1,sig2:std_logic。 19 begin sig2=key_pre。 tmp=row(0) and row(1) and row(2) and row(3)。 process(clky) begin if(clky39。event and clky=39。139。)then 計(jì)數(shù)進(jìn)程 if(sig2=39。139。)then if(counter=11)then sig1=39。039。 counter=00。 else sig1=39。139。 counter=counter+39。139。 end if。 end if。 end if。 end process。 process(clky) 列線逐位輸出低電平 variable jt :std_logic。 begin if(clky39。event and clky=39。139。)then if(sig1=39。139。)then jt:=sig_(3)。 for i in 3 downto 1 loop sig_(i)=sig_(i1)。 end loop。 sig_(0)=jt。 else sig_=1110。 end if。 end if。 end process。 20 process(clky) begin if(clky39。event and clky=39。139。)then if(sig1=39。139。)then =sig_。 else =0000。 end if。 end if。 end process。 process(clky) 鍵碼信號(hào)賦值 begin if(clky39。event and clky=39。139。)then if(sig1=39。139。)then if(tmp=39。039。)then scan_code=row amp。 sig_。 else scan_code=11111111。 end if。 else scan_code=11111111。 end if。 end if。 end process。 end behav。 程序說明: 該程序較長(zhǎng),用個(gè) 4 個(gè)進(jìn)程,這里逐一介紹。 第一個(gè)進(jìn)程是計(jì)數(shù)變量 counter 的計(jì)數(shù)進(jìn)程, 當(dāng) sig2 為 1 且 counter不為 11 時(shí), sig1 為 1 且 counter 開始記數(shù)。 第二個(gè)進(jìn)程是根據(jù)狀態(tài)變量的狀態(tài)進(jìn)行列線的低電平的逐位輸出。如果 sig1 等于 1,那么 sig_ 就進(jìn)行循環(huán)移位,每個(gè)鐘周期循環(huán)左移一位。 21 第三個(gè)進(jìn)程決定列線的輸出,平時(shí)輸出“ 0000”,當(dāng) sig1 為 1 時(shí),輸出 sig_。 最后一個(gè)進(jìn)程就是給鍵碼信號(hào)賦值的過程。 該模塊框圖如圖 48 所示。模塊主要完成從鍵掃描碼到按鍵編碼的轉(zhuǎn)換。 圖 48 鍵碼轉(zhuǎn)換模塊邏輯框圖 鍵碼轉(zhuǎn)換的核心程序如下: library ieee。 use 。 use 。 use 。 entity jmzh is port(clky:in std_logic。 scan_code:in std_logic_vector(7 downto 0)。 key_code:out std_logic_vector(3 downto 0))。 end jmzh。 architecture behav of jmzh is begin process(clky) begin if(clky39。event and clky=39。139。)then case scan_code is when 11101110=key_code=0000。 when 11101101=key_code=0001。 when 11101011=key_code=0010。 when 11100111=key_code=0011。 22 when 11011110=key_code=0100。 when 11011101=key_code=0101。 when 11011011=key_code=0110。 when 11010111=key_code=0111。 when 10111110=key_code=1000。 when 10111101=key_code=1001。 when 10111011=key_code=1010。 when 10110111=key_code=1011。 when 01111110=key_code=1100。 when 01111101=key_code=1101。 when 01111011=key_code=1110。 when others =key_code=1111。 end case。 end if。 end process。 end behav。 程序中采用 case 語(yǔ)句進(jìn)行按鍵編碼,也可以用 elsif 語(yǔ)句實(shí)現(xiàn)此段程序設(shè)計(jì)。 完整的鍵盤程序應(yīng)加上剛開始介紹的分頻模塊,鍵盤接口電路總的邏輯連接框圖如圖 49 所示。 圖 49 鍵盤接口連接框圖 23 計(jì)數(shù)模塊設(shè)計(jì)與實(shí)現(xiàn) 秒計(jì)數(shù)模塊 秒計(jì)數(shù)模塊邏輯框圖如圖 410 所示。 圖 410 秒
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1