最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

問個硬件消抖的問題

作者:civita 欄目:EDA技術(shù)
問個硬件消抖的問題
想用硬件描述語言作一個消抖電路
基本思想是在按下鍵時保持該電平并計時10ms消抖
時鐘輸入1MHZ
但是反復(fù)思考都不能成功描述該功能
希望高手們給點意見

2樓: >>參與討論
xhjiang
我前不久剛寫過這個程序
我用了兩個D觸發(fā)器進行采樣,采樣時鐘信號的頻率干好為10MS(經(jīng)分頻得到),把兩個D觸發(fā)器的輸出信號相與就得到去抖信號。但是你要進行按鍵譯碼的話要用到掃描信號,所以按鍵掃描信號要用采樣時鐘信號鎖存后,才可以得到正確的按鍵譯碼信號。具體的問題你還是要仔細的分析你的時序,我當時用了一天的時間才把它調(diào)試好的,就是它的去抖問題時序沒有匹配好譯碼不正確。

3樓: >>參與討論
oaipoaip
參考一下,沒編譯過不一定沒錯誤
entity debounce is
    PORT(
        clk:in std_logic;
        enable:in std_logic;
        data:in std_logic;
        q:buffer std_logic
    );
end debounce;

architecture behave of debounce is
signal count:integer range 99 downto 0;
begin
    PROCESS(clk)
    begin
        if rising_edge(clk) then
            if enable='1' and q/=data then
                if count=99 then
                    q<=data;
                else
                    count<=count+1;
                end if;
            else
                count<=0;
            end if;
        end if;
    end PROCESS;
end behave;


4樓: >>參與討論
civita
問題已解決,雖然描述長了點,不過將就了
昨天用了一晚得時間,同時感謝以上提示我的朋友,發(fā)上源程序以供交流
同時,樓上的vhd程序描述的功能我不明白。enable是什么信號,從哪里來?
MODULE buton_delay(k,clk,k1);
parameter size=17,m=17'h1b000,zero=17'h00000;
reg[size:1] ctre;
input k,clk;
OUTPUT k1;
reg stb,ks,clk1;
reg[2:1] creg;
always@(posedge clk)
begin
    clk1=!(clk1);
end
always@(posedge clk1)
begin
    if(k&(!creg[2])&(!creg[1]))
        begin
        creg=2'b01;
        ks=1'b1;
        end
    else if((!creg[2])&(creg[1])&(!stb))
        begin
        creg=2'b11;
        ks=1'b1;
        end
    else if((creg[2])&(creg[1])&(!k))
        begin
        creg=2'b10;
        ks=1'b0;
        end
    else if((creg[2])&(!creg[1])&(!stb))
        begin
        creg=2'b00;
        ks=1'b0;
        end
    else if(stb) ks=ks;
    else ks=k;
end
always@(posedge clk)
begin
    if(creg==2'b01)
    begin
        if(ctre==zero)
            begin
                ctre=ctre+1'b1;
                stb=1'b1;
            end
        else
            case(ctre)
                m:stb=1'b0;
                default:ctre=ctre+1'b1;
            endcase                
    end
    else if(creg==2'b10)
    begin
        if(ctre==m)
            begin
                ctre=ctre-1'b1;
                stb=1'b1;
            end
        else
            case(ctre)
                zero:stb=1'b0;
                default:ctre=ctre-1'b1;
            endcase
    end
    else stb=1'b0;
end
assign k1=ks;
endMODULE

* - 本貼最后修改時間:2005-12-9 0:08:11 修改者:civita

5樓: >>參與討論
civita
還有,我的時鐘是11.0592M
還有,我的時鐘是11.0592M

6樓: >>參與討論
oaipoaip
enable是使能信號
enable是外部輸入的,如果不需要enable直接去掉就可以了,模塊工作的時候是通過判斷100個時鐘周期(10ms)內(nèi)輸入和輸出的差異來消除抖動的,只有在輸入輸出信號的差異保持10ms才認為輸入信號發(fā)生變化,10ms以內(nèi)認為是抖動。

7樓: >>參與討論
civita
了解了,果然如此
樓上的是強人哈

8樓: >>參與討論
hnzsj
真牛
真牛

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請問quartus2的5.0和5.1版本有什么區(qū)別?
cpld或fpga的晶振一定要接入全局時鐘引腳嗎?和接在普通IO的區(qū)別
XC95144XLTQ100,我們編譯后空載運行,耗電:150--200MA正常?
裝modelsim時,我也遇到了奇怪的問題,請大蝦們指點一下。
麻煩高手幫我分析一下Microblaze的一段小程序!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號