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
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
Hôm qua, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
Hôm qua, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
Hôm qua, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500Chúc mừng bác đã chỉnh sửa thành công, nhưng theo em thì video hơi rối nếu bác muốn gửi cho bên supplier xem.
Nếu là em thì em chỉ cần nối dây để hiển thị liên tục điện áp ở ngõ ra là 220Vdc trước khi gắn LED, kế đến là cắm...-
Channel: Điện tử công suất
13-02-2025, 07:39 -
Comment