các bác ai có code ngôn ngữ vhdl hiển thị chữ trên lcd của kit spartan 3e gửi cho em học hỏi với
Thông báo
Collapse
No announcement yet.
code hiển thị chữ trên lcd sử dụng kit spartan 3e
Collapse
X
-
mình có cái này bạn coi thử coi đươc không nha mà hình nư bạn post nhầm box rồi tranh thủ down đi ko các anh lại xóa bài đótest_LCD.zip
-
Nguyên văn bởi ptit_et Xem bài viếtmình có cái này bạn coi thử coi đươc không nha mà hình nư bạn post nhầm box rồi tranh thủ down đi ko các anh lại xóa bài đó[ATTACH]52373[/ATTACH]Last edited by ozonedark2; 27-09-2012, 13:44.|
Comment
-
Nguyên văn bởi heojuken Xem bài viếtma code báo lỗi nhiều quá bạn ạ). Bác chỉ lấy code thôi còn tất cả phần còn lại bác phải tự làm. he
Bác vào đây xem nha: Cosmiac - Spartan 3E Tutorials - Configurable Space Microsystems Innovations & Applications Center
Ở đây họ dùng ISE 10.1.
Chúc bạn thành công!Last edited by robocon2011; 01-10-2012, 17:59.
Comment
-
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 60. Type of LED is incompatible with type of tx_byte.
ERROR:HDLParsers:811 - "C:/Xilinx/vuong1/vuong2.vhd" Line 90. Choice char_u duplicated in select.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 191. Type of SF_D is incompatible with type of SF_D0.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 192. Type of SF_D is incompatible with type of SF_D1.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 191. Type of SF_D is incompatible with type of SF_D0.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 192. Type of SF_D is incompatible with type of SF_D1.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 194. Type of LCD_E is incompatible with type of LCD_E0.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 195. Type of LCD_E is incompatible with type of LCD_E1.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 194. Type of LCD_E is incompatible with type of LCD_E0.
ERROR:HDLParsers:800 - "C:/Xilinx/vuong1/vuong2.vhd" Line 195. Type of LCD_E is incompatible with type of LCD_E1.
Parsing "vuong2_stx.prj": 0.08
Process "Check Syntax" failed
Comment
-
Nguyên văn bởi heojuken Xem bài viếttại của mình là hiển thị tên NGUYỄN MINH VƯƠNG, mà cũng ko rành về cái này lắm, mà cũng sắp nộp đồ án rồi @_@
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 08:24:11 12/03/2013
-- Design Name:
-- Module Name: LCD_CHAR_DISPLAY - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity LCD_CHAR_DISPLAY is
Port ( CK50MHZ,RESET : in STD_LOGIC;
E,RS,RW : OUT STD_LOGIC;
DB : out STD_LOGIC_VECTOR (7 downto 0));
end LCD_CHAR_DISPLAY;
architecture Behavioral of LCD_CHAR_DISPLAY is
TYPE LCD_CONTROL_STATE IS (
LCD_FUNCTION_SET,
DISPLAY_CONTROL,
LCD_ENTRY_MODE_SET,
LCD_CLEAR_DISPLAY,
LCD_RETURN_HOME,
LCD_SET_DDRAM_ADDRESS,
LCD_RWITE_DDRAM,
LCD_IDEAL );
SIGNAL NX_STATE, PR_STATE : LCD_CONTROL_STATE := LCD_FUNCTION_SET;
SIGNAL TIME_COUNTER, TIME_LIMITATION: INTEGER := 0;
SIGNAL I : INTEGER := 1;
CONSTANT DATA : STRING := "PLD TUS AFTERNUN";
begin
PROCESS (CK50MHZ, RESET)
BEGIN
IF RESET = '1' THEN
PR_STATE <= LCD_FUNCTION_SET;
ELSE
IF RISING_EDGE(CK50MHZ) THEN
PR_STATE <= NX_STATE;
IF TIME_COUNTER = TIME_LIMITATION THEN
TIME_COUNTER <= 0;
IF (PR_STATE = LCD_RWITE_DDRAM) THEN
IF (I = DATA'HIGH) THEN
I <= 1;
ELSE
I <= i + 1;
END IF;
END IF;
ELSE
TIME_COUNTER <= TIME_COUNTER + 1;
END IF;
END IF;
END IF;
END PROCESS;
PROCESS (PR_STATE)
BEGIN
CASE (PR_STATE) IS
WHEN LCD_FUNCTION_SET =>
TIME_LIMITATION <= 1850;
RS <= '0';
RW <= '0';
DB <= X"38";
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= DISPLAY_CONTROL;
ELSE
NX_STATE <= LCD_FUNCTION_SET;
END IF;
WHEN DISPLAY_CONTROL =>
TIME_LIMITATION <= 1850;
DB <= X"0C";
RW <= '0';
RS <= '0';
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= LCD_ENTRY_MODE_SET;
ELSE
NX_STATE <= DISPLAY_CONTROL;
END IF;
WHEN LCD_ENTRY_MODE_SET =>
TIME_LIMITATION <= 1850;
RS <= '0';
RW <= '0';
DB <= X"06";
IF TIME_COUNTER = 5 THEN E <= '0'; END IF;
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= LCD_CLEAR_DISPLAY;
ELSE
NX_STATE <= LCD_ENTRY_MODE_SET;
END IF;
WHEN LCD_CLEAR_DISPLAY =>
TIME_LIMITATION <= 1850;
RS <= '0';
RW <= '0';
DB <= X"01";
IF TIME_COUNTER = 5 THEN E <= '0'; END IF;
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= LCD_RETURN_HOME;
ELSE
NX_STATE <= LCD_CLEAR_DISPLAY;
END IF;
WHEN LCD_RETURN_HOME =>
TIME_LIMITATION <= 760000;
RS <= '0';
RW <= '0';
DB <= X"02";
IF TIME_COUNTER = 5 THEN E <= '0'; END IF;
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= LCD_SET_DDRAM_ADDRESS;
ELSE
NX_STATE <= LCD_RETURN_HOME;
END IF;
WHEN LCD_SET_DDRAM_ADDRESS =>
TIME_LIMITATION <= 1850;
RS <= '0';
RW <= '0';
DB <= X"80";
IF TIME_COUNTER = 5 THEN E <= '0'; END IF;
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF TIME_COUNTER=TIME_LIMITATION THEN
NX_STATE <= LCD_RWITE_DDRAM;
ELSE
NX_STATE <= LCD_SET_DDRAM_ADDRESS;
END IF;
WHEN LCD_RWITE_DDRAM =>
TIME_LIMITATION <= 2050;
RS <= '1';
RW <= '0';
DB <= CONV_STD_LOGIC_VECTOR(CHARACTER'POS(DATA(I)),8);
IF TIME_COUNTER = 5 THEN E <= '0'; END IF;
IF TIME_COUNTER = 0 THEN E<='0';
ELSIF TIME_COUNTER = 5 THEN E <='1';
ELSIF TIME_COUNTER = 25 THEN E <='0';
END IF;
IF (TIME_COUNTER=TIME_LIMITATION) AND (I = DATA'HIGH) THEN
NX_STATE <= LCD_IDEAL;
ELSE
NX_STATE <= LCD_RWITE_DDRAM;
END IF;
WHEN LCD_IDEAL => NX_STATE <= LCD_IDEAL;
WHEN OTHERS => NULL;
END CASE;
END PROCESS;
end Behavioral;
Comment
Bài viết mới nhất
Collapse
-
bởi QuynhnukiBác tâm cho em hỏi em muốn phá mạch bảo vệ này thì em cần nối trở bao nhiêu và nối thế nào ạ
-
Channel: Điện tử gia dụng
Hôm qua, 22:29 -
-
bởi TungtuanDạ em chào các bác, em có tai nghe Bluetooth dùng ic HL0B14EDT , em đã tìm google nhưng không thấy ạ, em cảm ơn nhiều
-
Channel: Hướng dẫn tìm thông tin linh kiện
Hôm qua, 20:36 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong80Có vẻ như bác bqviet...thù dai quá nhỉ, nên cay cú bất cứ thứ gì có dính líu tới...Hoa!!!😏
Nói tới âm nhạc hay văn hóa khoa học,... thì không nên đề cập tới chính trị bác ạ. Thực sự là nhạc Hoa, nhất là thể loại POP này rất gần...-
Channel: Tâm tình dân kỹ thuật
26-02-2021, 21:36 -
-
Trả lời cho tìm hiểu bảng điều khiển của điều hòa trung tâmbởi bqvietThông thường hệ điều hòa khi truyền tin ra ngoài sẽ dùng chuẩn quốc tế kiểu như Bacnet hoặc KNX hoặc vẫn dùng chuẩn độc quyền, truyền tin nội bộ bên trong hệ thống đương nhiên dùng chuẩn riêng của hãng. Tài liệu sẽ hiếm hoặc không...
-
Channel: Điện tử công nghiệp
26-02-2021, 16:54 -
-
bởi phan_itHi các anh chị
Phòng làm việc chỗ tôi dùng hệ thống điều hòa trung tâm cho cả tòa nhà, mỗi phòng có một bảng điều khiển nhiệt dộ cho phòng đó. Thay vì bấm bằng tay để điều khiển nhiệt độ tôi muốn dùng máy tính để làm việc...-
Channel: Điện tử công nghiệp
26-02-2021, 16:05 -
-
bởi afrendlyXin chào mọi người. Tình hình là laptop mình bị hư loa ngoài nên định mua loa bluetooth để dùng. Mình có sẵn thiết bị bluetooth nên thử gắn vào laptop và mang qua nhà bác kết nối loa kẹo kéo thử xem phát nhạc được không để mình mua loa. Mình...
-
Channel: Điện tử gia dụng
25-02-2021, 13:40 -
-
Trả lời cho SMT Engineerbởi dangnhat96Xin chào mọi người !
Em đang có hướng đi theo lĩnh vực về Công nghệ SMT,
các Anh, Chị có tài liệu về SMT hãng panasonic, yamaha, spi, aoi, xray cho em xin với ạ !
email: dangnhat96@gmail.com-
Channel: Điện tử công nghiệp
25-02-2021, 09:22 -
-
bởi dangnhat96Xin chào mọi người !
Em đang có hướng đi theo lĩnh vực về Công nghệ SMT,
Trong Diễn đàn mình, Anh, Chị nào có tài liệu về SMT hãng panasonic, yamaha, spi, aoi, xray cho em xin với ạ !
email: dangnhat96@gmail.com
Em xin cảm ơn ạ!-
Channel: Điện tử công nghiệp
25-02-2021, 09:16 -
-
Trả lời cho Mọi người cho em xin thỉnh giáo về viết chương trình tạo xung vuông tần số 1KHz và 10KHz dùng timer 1.bởi ledang683
-
Channel: Vi điều khiển họ 8051
25-02-2021, 03:11 -
Comment