1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

PLD & Asic - vhdl - khởi tạo LCD (lcd_init();) - help !

Thảo luận trong 'Vi điều khiển - Mạch Số' bắt đầu bởi 24h_newload, 9 Tháng mười hai 2010.

  1. 24h_newload Member

    Số bài viết: 193
    Đã được thích: 0
    Điểm thành tích: 16
    em đang đụng đến cái lcd,dùng lcd thì em biết dùng rồi,giờ em muốn tạo hàm khai báo,hàm xuất như trong c thì phải làm như thế nào.

    việc khai báo hàm có bắt buộc phải khai báo giá trị trả về không ? funtion lcd_init(); được khai báo cục bộ,ko có giá trị trả về thì lúc gọi có tác động đến các port đã khai báo trong entity toàn cục không ?



    entity alu_lcd is
    Port ( CLK : in STD_LOGIC;
    RW : out STD_LOGIC;
    RS : out STD_LOGIC;
    EN : out STD_LOGIC;
    DATA : out STD_LOGIC_VECTOR (7 downto 0);
    a : in STD_LOGIC_VECTOR (7 downto 0);
    b : in STD_LOGIC_VECTOR (7 downto 0);
    cin : in STD_LOGIC;
    sel : in STD_LOGIC_VECTOR (3 downto 0);
    y : out STD_LOGIC_VECTOR (7 downto 0));
    end alu_lcd;
    architecture alu of alu_lcd is
    signal arth :std_logic_vector(7 downto 0);
    signal logic:std_logic_vector(7 downto 0);
    signal ytam:std_logic_vector(7 downto 0);
    component alus
    port( au: in std_logic_vector(7 downto 0);
    bu: in std_logic_vector(7 downto 0);
    cinu: in std_logic;
    selu: in std_logic_vector(3 downto 0);
    yu: out STD_LOGIC_VECTOR (7 downto 0) );

    end component;
    component lcds
    port( CLKL : in STD_LOGIC;
    --al : in std_logic_vector(7 downto 0);
    --bl : in std_logic_vector(7 downto 0);
    yl : in STD_LOGIC_VECTOR (7 downto 0);
    RWL : out STD_LOGIC;
    RSL : out STD_LOGIC;
    ENL : out STD_LOGIC;
    DATAL : out STD_LOGIC_VECTOR (7 downto 0) );
    end component;
    begin
    u1: alus
    port map(au=>a,bu=>b,cinu=>cin,selu=>sel,yu=>y);
    u2: lcds
    port map(CLKL=>CLK,yl => ytam,RWL=>RW,RSL=>RS,ENL=>EN,DATAL=>DATA);


    ytam<=y;
    end alu;



    entity lcds is
    Port ( CLKL : in STD_LOGIC;
    al : in STD_LOGIC_VECTOR (7 downto 0);
    bl : in STD_LOGIC_VECTOR (7 downto 0);
    yl : in STD_LOGIC_VECTOR (7 downto 0);
    RWL : out STD_LOGIC;
    RSL : out STD_LOGIC;
    ENL : out STD_LOGIC;
    DATA : out STD_LOGIC_VECTOR (7 downto 0));
    end lcds;
    --------------------
    function lcd_init()
    --------------------
    architecture lcd_sub of lcds is
    variable bcd: std_logic_vector(11 downto 0);
    component bin_bcd
    Port ( a : in STD_LOGIC_VECTOR (7 downto 0);
    b : in STD_LOGIC_VECTOR (7 downto 0);
    y : in STD_LOGIC_VECTOR (7 downto 0);
    q : out STD_LOGIC_VECTOR (11 downto 0));
    end component;
    component trama
    port( qt : in STD_LOGIC_VECTOR (11 downto 0);

    );
    end component;
    begin
    u3: bin_bcd
    port map(au=>a,bu=>b,cinu=>cin,selu=>sel,yu=>y);
    u2: trama
    port map(qt=>q);

    end lcd_sub;


    em đang bí !các anh giúp cho !

Chia sẻ trang này