亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? xkcon.vhd

?? 用VHDL語(yǔ)言寫(xiě)的程序?qū)嵗?
?? VHD
字號(hào):
----------------文件信息--------------------------------------------------------------------------------
--文   件   名: xkcon.vhd(相控充電機(jī)控制板)
--創(chuàng)   建   人: 劉寶貴
--最后修改日期: 2005年11月17日
---------------------------------------------------------------------------------------------------------
--功 能 描  述: 本程序?yàn)橄嗫爻潆姍C(jī)控制板上的CPLD內(nèi)的程序,完成如下功能1.鍵盤掃描2.控制AD轉(zhuǎn)換3.產(chǎn)生PWM信號(hào)
--              與51系列CPU接口,接在51地址數(shù)據(jù)總線上,51單片機(jī)通過(guò)訪問(wèn)地址總線上的數(shù)據(jù)寄存器來(lái)控制CPLD
--              -----------------------------------------------------------------------------------------
--              |地址     |            讀                       |                     寫(xiě)                |
--              -----------------------------------------------------------------------------------------
--              |10000000 |AD轉(zhuǎn)換低8位值                        |寫(xiě)PA口,低三位有一位為1則begin_ad = '1' |
--              -----------------------------------------------------------------------------------------
--              |10000001 |AD轉(zhuǎn)換高5位值最高位為1則數(shù)據(jù)無(wú)效     |寫(xiě)PB口,液晶的數(shù)據(jù)總線                 |
--              -----------------------------------------------------------------------------------------
--              |10000010 |按鍵值,大于15為無(wú)效按鍵             |寫(xiě)PWM低8位                             |
--              -----------------------------------------------------------------------------------------
--              |10000011 |無(wú)效                                 |寫(xiě)PWM高4位                             |
--              -----------------------------------------------------------------------------------------
--              |10000100 |無(wú)效                                 |寫(xiě)PE口,0:液晶被光制線,其它備用       |
---------------------------------------------------------------------------------------------------------
library  ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity  xkcon is
    port(
        reset:  in    std_logic;------------------------單片機(jī)的復(fù)位引腳,為1時(shí)PWM輸出最小值
        clk8mhz:in    std_logic;------------------------時(shí)鐘輸入
        ale:    in    std_logic;------------------------單片機(jī)的地址鎖存信號(hào)
        rd:     in    std_logic;------------------------單片機(jī)的寫(xiě)信號(hào)
        wr:     in    std_logic;------------------------單片機(jī)的讀信號(hào)
        databus:inout std_logic_vector (7 downto 0);----單片機(jī)的地址數(shù)據(jù)復(fù)用總線(P0口)
        outpa:  out   std_logic_vector (7 downto 0);----CPLD擴(kuò)展的并行輸出口 0:VCCE1 1:VCCE3 2:VCCE2 3:422EN 
                                                    ----CPLD擴(kuò)展的并行輸出口 4:REL1E 5:REL1E 6:REL1E 7:REL1E 
        outpb:  out   std_logic_vector (7 downto 0);----CPLD擴(kuò)展的并行輸出口 本項(xiàng)目做為液晶的數(shù)據(jù)總線
        outpe:  out   std_logic_vector (5 downto 0);----CPLD擴(kuò)展的并行輸出口 0:液晶被光制線,其它備用
        keyin:  in    std_logic_vector (3 downto 0);----鍵盤接口:接受掃描
        keyout: out   std_logic_vector (3 downto 0);----鍵盤接口:輸出掃描信號(hào)
        cs12887:out   std_logic;------------------------P0口輸出地址小于128時(shí)選中12887,大于128時(shí)選中CPLD
        lcdcs1: in    std_logic;------------------------本項(xiàng)目使用128X64液晶,該液晶兩條片選線互為反向用
        lcdcs2: out   std_logic;------------------------CPLD做反向器
        a4052:  out   std_logic;------------------------隔離同相控制信號(hào)處理板的4052A引腳
        b4052:  out   std_logic;------------------------隔離同相控制信號(hào)處理板的4052B引腳
        adflag: in    std_logic;------------------------信號(hào)處理板輸出,輸出0表示反向積分完成
        pwm_pina:out  std_logic;------------------------輸出PWM信號(hào):'1...1'時(shí)輸出全為高電平'0...0'時(shí)輸出全為低電平
        pwm_pinb:out  std_logic;------------------------與pwm_pina反向
        t200khz: out  std_logic-------------------------200hz頻率輸出信號(hào),供測(cè)試用
    );
end xkcon;

architecture bhv of xkcon is

type st_type is(st0,st1,st2,st3,st4);-------------------AD轉(zhuǎn)換時(shí)所用的狀態(tài)機(jī)
signal c_st:st_type;
signal internal_bus_in :std_logic_vector(7 downto 0);---讀進(jìn)程所用總線緩沖
signal port_no:std_logic_vector(2 downto 0);------------CPLD內(nèi)部端口地址     
signal count,pwm_count:std_logic_vector(11 downto 0);---count:當(dāng)前PWM計(jì)數(shù)值,pwm_count:?jiǎn)纹瑱C(jī)設(shè)定的PWM值
signal cs: std_logic;-----------------------------------單片機(jī)P0口輸出的地址總線最高位,1:選中CPLD,0:選中12887
signal clk2mhz:std_logic;-------------------------------2M時(shí)鐘,用于PWM計(jì)數(shù)脈沖
signal clk200khz:std_logic;-----------------------------200K時(shí)鐘,用于AD計(jì)數(shù)脈沖
signal begin_ad: std_logic;-----------------------------VCCE1或VCCE2或VCCE3的任意一位為高時(shí)begin_ad 變?yōu)?
signal count_ad:std_logic_vector(12 downto 0);----------AD轉(zhuǎn)換所用計(jì)數(shù)器,最高位為1時(shí)數(shù)據(jù)溢出無(wú)效
signal key_pressed: std_logic;--------------------------是否有鍵按下1:無(wú) 0:有
signal scan_cnt: std_logic_vector(3 downto 0);----------鍵盤掃描計(jì)數(shù)值
begin 
-----------------------------------------------------------------------------------------------------
lcdcs2<= not lcdcs1;
cs12887<= cs;
t200khz<= clk200khz;
-----------------------------------------------------------------------------------------------------
--鍵盤掃描進(jìn)程
-----------------------------------------------------------------------------------------------------
scan_1:process(clk2mhz,clk200khz,key_pressed)
begin
    if(clk2mhz'event and clk2mhz='1')then
        if(clk200khz='1' and key_pressed = '1')then
            scan_cnt<= scan_cnt+1;
        end if;
    end if;
end process;
keyout<="1110" when scan_cnt(3 downto 2) = "00" else
        "1101" when scan_cnt(3 downto 2) = "01" else
        "1011" when scan_cnt(3 downto 2) = "10" else
        "0111";
key_pressed<=keyin(0)when scan_cnt(1 downto 0)= "00" else
             keyin(1)when scan_cnt(1 downto 0)= "01" else
             keyin(2)when scan_cnt(1 downto 0)= "10" else
             keyin(3);
-----------------------------------------------------------------------------------------------------
--AD轉(zhuǎn)換進(jìn)程
-----------------------------------------------------------------------------------------------------
adconvert:process(clk200khz)
begin 
    if(clk200khz'event and clk200khz='1')then
        case c_st is
        when st0 =>----st0:等待AD轉(zhuǎn)換命令當(dāng)寫(xiě)PA口使VCCE1或VCCE2或VCCE3的某位為高時(shí)begin_ad 變?yōu)?轉(zhuǎn)為狀態(tài)2
            a4052<='1';
            b4052<='1';
            if(begin_ad = '1')then
                c_st <=st1;count_ad<=(others=>'0');
            else 
                c_st <=st0;
            end if;
        when st1=>----st1:等待10ms,以使VCCE1或VCCE2或VCCE3信號(hào)穩(wěn)定
            count_ad<=count_ad+1;
            a4052<='1';
            b4052<='1';
            if(count_ad(11) = '1')then
                c_st <=st2;
                count_ad(11)<='0';
            else
                c_st <=st1; 
            end if;
        when st2=>----對(duì)基準(zhǔn)源進(jìn)行正向積分20ms
            count_ad<=count_ad+1;
            a4052<='1'; 
            b4052<='0';
            if(count_ad(12) = '1' ) then
                c_st <=st3;
                count_ad(12)<='0';
            else
                c_st <=st2;
            end if;
        when st3=>----對(duì)被測(cè)信號(hào)進(jìn)行反向積分adflag為0時(shí)反向積分完成
            a4052<='0'; 
            b4052<='1';
            if(adflag='0')then
                c_st <=st4;
            else
                c_st <=st3;
                if(count_ad(12) = '0' ) then
                    count_ad<=count_ad+1;
                else
                    c_st <=st4;
                end if;
            end if;
        when st4=>----等待CPU把VCCE1和VCCE2和VCCE3變?yōu)榈?            a4052<='1'; 
            b4052<='1';
            if(begin_ad = '0')then
                c_st <=st0;
            else 
                c_st <=st4;
            end if;
        when others =>----非正常狀態(tài)處理
            c_st <= st0;
        end case;
    end if;
end process;
-----------------------------------------------------------------------------------------------------
--分頻器進(jìn)程:將8Mhz的外部時(shí)鐘分成2Mhz和200Khz的內(nèi)部使用的時(shí)種
-----------------------------------------------------------------------------------------------------
divider:process(clk8mhz)
variable count_divider:std_logic_vector(4 downto 0);
begin 
    if(clk8mhz'event and clk8mhz='0') then
        if(count_divider<"10011")then
            count_divider:= count_divider + 1;
        else
            count_divider:=(others=>'0'); 
            clk200khz<= not clk200khz;
        end if;
        clk2mhz <= count_divider(1);
    end if;
end process;
-----------------------------------------------------------------------------------------------------
--地址鎖存進(jìn)程
-----------------------------------------------------------------------------------------------------
latch_address:process(ale)
begin 
    if ale'event and ale='0' then  
        port_no<= databus(2 downto 0);
        cs <= databus(7);
    end if;
end process;
-----------------------------------------------------------------------------------------------------
--CPU讀進(jìn)程
-----------------------------------------------------------------------------------------------------
cpu_read:process(rd,cs)
begin
    if(cs='1' and rd='0')then
        if   (port_no="000")then internal_bus_in<=count_ad(7 downto 0);
        elsif(port_no="001")then internal_bus_in(4 downto 0)<=count_ad(12 downto 8); 
                                 internal_bus_in(7 downto 5)<="000";
        elsif(port_no="010")then internal_bus_in(3 downto 0)<=scan_cnt;
                                 internal_bus_in(4)<=key_pressed;
                                 internal_bus_in(7 downto 5)<="000";
        else  internal_bus_in<="ZZZZZZZZ";
        end if;
    else internal_bus_in<="ZZZZZZZZ";
    end if;
    databus<=internal_bus_in;
end process;
-----------------------------------------------------------------------------------------------------
--CPU寫(xiě)進(jìn)程
-----------------------------------------------------------------------------------------------------
cpu_write:process(wr)
begin 
    if(wr'event and wr ='1')then
        if   (port_no="000" and cs='1')then outpa<=databus;
            if( databus(0)='1' or databus(1)='1' or databus(2)='1' )then
                begin_ad <= '1';
            else
                begin_ad <= '0';
            end if;
        elsif(port_no="001" and cs='1')then outpb<=databus;
        elsif(port_no="010" and cs='1')then pwm_count( 7 downto 0)<=databus;
        elsif(port_no="011" and cs='1')then pwm_count(11 downto 8)<=databus(3 downto 0);
        elsif(port_no="100" and cs='1')then outpe(5 downto 0)<=databus(5 downto 0);
--        elsif(port_no="100" and cs='1')then outpe<=databus(6 downto 0);
        end if;
    end if;
end process;
-----------------------------------------------------------------------------------------------------
--PWM信號(hào)產(chǎn)生進(jìn)程
-----------------------------------------------------------------------------------------------------
pwm:process(clk2mhz)
begin
    if(reset='0')then
        if(clk2mhz'event and clk2mhz ='0')then
            count<=count + 1;
            if(count<pwm_count)then
                pwm_pina <= '1';
                pwm_pinb <= '0';
            else
                pwm_pina <= '0';
                pwm_pinb <= '1';
            end if;
        end if;
    else
        pwm_pina <= '0';
        pwm_pinb <= '1';
    end if;
end process; 

end bhv;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级电影在线看| 91精品国模一区二区三区| 亚洲大片精品永久免费| 久久久蜜臀国产一区二区| 欧美日韩国产另类一区| 国产在线精品一区在线观看麻豆| 亚洲丝袜美腿综合| 久久久亚洲精品一区二区三区| 欧洲精品在线观看| jlzzjlzz亚洲日本少妇| 久久精品久久综合| 香蕉成人啪国产精品视频综合网| 欧美国产精品一区二区三区| 日韩亚洲电影在线| 欧美性视频一区二区三区| 国产91富婆露脸刺激对白| 美女国产一区二区| 日韩中文字幕一区二区三区| 亚洲欧美日韩综合aⅴ视频| 国产欧美日韩在线| 欧美成人官网二区| 欧美一区二区播放| 欧美日韩午夜影院| 欧美在线观看你懂的| 成人av资源网站| 国产精品88av| 国产一二精品视频| 黑人精品欧美一区二区蜜桃| 日本成人在线网站| 舔着乳尖日韩一区| 午夜国产精品一区| 亚洲福利一区二区| 亚洲一本大道在线| 亚洲不卡av一区二区三区| 亚洲精品免费在线播放| 亚洲视频在线一区观看| 中文字幕巨乱亚洲| 欧美国产在线观看| 欧美国产日韩精品免费观看| 久久久久久99久久久精品网站| 精品日本一线二线三线不卡| 欧美一区二区成人6969| 欧美一区二区高清| 精品理论电影在线观看| 2021久久国产精品不只是精品| 日韩美女一区二区三区四区| 精品久久国产字幕高潮| 久久亚洲精品小早川怜子| 久久精子c满五个校花| 日本一区二区动态图| 欧美激情中文不卡| 亚洲免费在线播放| 亚洲一区二区三区四区的| 亚洲无线码一区二区三区| 五月婷婷久久丁香| 麻豆久久久久久| 国产精一区二区三区| 成人激情小说网站| 色婷婷综合中文久久一本| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产91丝袜在线播放九色| 高清国产一区二区| 91视视频在线直接观看在线看网页在线看| 色综合天天综合网国产成人综合天| 欧美在线视频不卡| 日韩三级高清在线| 国产色产综合色产在线视频| 日韩一区在线看| 亚洲v日本v欧美v久久精品| 蜜桃一区二区三区在线| 成人综合激情网| 欧美在线三级电影| 欧美mv日韩mv亚洲| 奇米精品一区二区三区在线观看 | 91香蕉视频污在线| 欧美狂野另类xxxxoooo| 欧美大片国产精品| 亚洲色图一区二区| 日韩精品乱码免费| 福利一区福利二区| 欧美视频精品在线| 久久青草国产手机看片福利盒子 | 欧美日韩免费一区二区三区| 欧美大片顶级少妇| 亚洲欧美偷拍三级| 久久99久久久欧美国产| 91欧美一区二区| 精品国产91乱码一区二区三区| 成人欧美一区二区三区| 美女视频一区二区三区| 91麻豆文化传媒在线观看| 日韩一级大片在线观看| 亚洲精品乱码久久久久久久久| 久久99精品久久久久久动态图| 色婷婷亚洲精品| 337p日本欧洲亚洲大胆精品| 亚洲乱码国产乱码精品精可以看 | 日韩欧美另类在线| 亚洲精品国产无套在线观| 狠狠色综合播放一区二区| 在线精品亚洲一区二区不卡| 久久久精品影视| 丝袜亚洲另类丝袜在线| 91视频免费观看| 久久久高清一区二区三区| 亚洲成人av一区二区| 成av人片一区二区| 天堂久久久久va久久久久| jizzjizzjizz欧美| 久久精品亚洲精品国产欧美kt∨| 秋霞国产午夜精品免费视频| 在线亚洲一区二区| 欧美激情一区二区三区不卡 | 美女视频黄久久| 欧美色图一区二区三区| 国产精品久久看| 精品一区二区三区在线观看| 69p69国产精品| 亚洲国产一区二区三区青草影视| a美女胸又www黄视频久久| 久久久久久久久久久久久女国产乱| 日韩国产欧美一区二区三区| 91国偷自产一区二区三区观看| 国产精品灌醉下药二区| 国产大陆亚洲精品国产| 精品国产制服丝袜高跟| 日韩精品国产欧美| 91麻豆精品国产91久久久久 | 91精品国产综合久久精品麻豆| 中文字幕精品三区| 国产美女精品在线| 久久精品亚洲精品国产欧美kt∨ | 亚洲一区二区三区影院| 欧美在线免费观看视频| 亚洲在线观看免费视频| 色哟哟欧美精品| 亚洲无人区一区| 678五月天丁香亚洲综合网| 亚洲国产视频一区| 欧美日韩久久一区| 日韩av成人高清| 欧美一区二区美女| 极品少妇一区二区| 国产日韩欧美在线一区| 国产不卡视频一区二区三区| 国产精品国产三级国产三级人妇| 成人国产亚洲欧美成人综合网| 国产精品三级av在线播放| www.日韩av| 一区二区视频在线看| 欧美三级日韩三级| 日韩专区在线视频| 久久日韩精品一区二区五区| 国产成人午夜99999| 亚洲欧洲av色图| 欧美天堂亚洲电影院在线播放| 午夜精品久久久久久不卡8050| 91精品久久久久久久久99蜜臂| 韩日欧美一区二区三区| 国产精品麻豆久久久| 在线观看91视频| 免费观看成人av| 亚洲国产经典视频| 日本久久一区二区| 奇米精品一区二区三区在线观看| 2017欧美狠狠色| 色婷婷综合视频在线观看| 日韩激情视频在线观看| 国产午夜亚洲精品羞羞网站| av成人免费在线观看| 亚洲国产一区视频| 精品国产3级a| 91精品1区2区| 国产原创一区二区三区| 日韩一区中文字幕| 91精品国产aⅴ一区二区| 国产毛片精品视频| 一区二区欧美精品| 精品88久久久久88久久久| 91女人视频在线观看| 美女尤物国产一区| 中文字幕亚洲精品在线观看| 9191成人精品久久| 成人激情文学综合网| 日韩高清在线电影| 18涩涩午夜精品.www| 日韩一区二区三| 91亚洲大成网污www| 精品影视av免费| 亚洲一区二区三区小说| 欧美激情中文不卡| 日韩一区二区视频| 在线视频综合导航| 国产成人在线免费| 日韩国产欧美一区二区三区| 亚洲少妇屁股交4| 久久午夜羞羞影院免费观看| 欧美亚洲禁片免费| www.欧美.com| 国产一区二区电影|