VHDL mã cho màn hình LCD

J

j hemangini

Guest
Tôi đang sử dụng Spartan-3a kit starter & cố gắng để viết mã VHDL cho màn hình LCD (2 * 16 ký tự).Nhưng tôi không nhận được sự thành công để viết mã đúng.Ai đó có thể cung cấp cho tôi mã đúng để hiển thị chỉ "hello world" trên màn hình.
Cảm ơn bạn.

 
Có lẽ ví dụ Verilog cũ của tôi sẽ giúp bạn.Xin lỗi nó không VHDL.Nó đơn giản thô demo mã, không tối ưu., part xc3s700a-4-fg484.

Tôi đổi nó để chạy trên các / Digilent Xilinx Spartan-3A Starter Kit,
một phần xc3s700a-4-fg484.

Mã số:

module đầu (CLK, lcd_rs, lcd_rw, lcd_e, lcd_0, lcd_1, lcd_2, lcd_3, lcd_4, lcd_5, lcd_6, lcd_7);

Tham số k = 18;

(* LỘC = "E12" *) đầu vào CLK; / / tổng hợp thuộc tính giai đoạn CLK "50 MHz"

reg [k 8-1:0] count = 0;

reg lcd_busy = 1;

reg lcd_stb;

reg [05:00] lcd_code;

reg [06:00] lcd_stuff;

(* LỘC = "Y14" *) output reg lcd_rs;

(* LỘC = "W13" *) output reg lcd_rw;

(* LỘC = "Y15" *) output reg lcd_7;

(* LỘC = "AB16" *) output reg lcd_6;

(* LỘC = "Y16" *) output reg lcd_5;

(* LỘC = "AA12" *) output reg lcd_4;

(* LỘC = "AB12" *) output reg lcd_3;

(* LỘC = "AB17" *) output reg lcd_2;

(* LỘC = "AB18" *) output reg lcd_1;

(* LỘC = "Y13" *) output reg lcd_0;

(* LỘC = "AB4" *) output reg lcd_e;luôn luôn @ (posedge CLK) bắt đầu

count <= count 1;

trường hợp (count [k 7: k 2])

0: lcd_code <= 6'h03; / / power on khởi

1: lcd_code <= 6'h03;

2: lcd_code <= 6'h03;

3: lcd_code <= 6'h02;

4: lcd_code <= 6'h02; / / chức năng thiết lập

5: lcd_code <= 6'h08;

6: lcd_code <= 6'h00; / / entry chế độ cài đặt

7: lcd_code <= 6'h06;

8: lcd_code <= 6'h00; / / hiển thị on / off kiểm soát

9: lcd_code <= 6'h0C;

10: lcd_code <= 6'h00; / / hiển thị rõ ràng

11: lcd_code <= 6'h01;

12: lcd_code <= 6'h24; / / H

13: lcd_code <= 6'h28;

14: lcd_code <= 6'h26; / / e

15: lcd_code <= 6'h25;

16: lcd_code <= 6'h26; / / l

17: lcd_code <= 6'h2C;

18: lcd_code <= 6'h26; / / l

19: lcd_code <= 6'h2C;

20: lcd_code <= 6'h26; / / o

21: lcd_code <= 6'h2F;

22: lcd_code <= 6'h22; / /

23: lcd_code <= 6'h20;

24: lcd_code <= 6'h25; / / W

25: lcd_code <= 6'h27;

26: lcd_code <= 6'h26; / / o

27: lcd_code <= 6'h2F;

28: lcd_code <= 6'h27; / / r

29: lcd_code <= 6'h22;

30: lcd_code <= 6'h26; / / l

31: lcd_code <= 6'h2C;

32: lcd_code <= 6'h26; / / d

33: lcd_code <= 6'h24;

34: lcd_code <= 6'h22; / /!

35: lcd_code <= 6'h21;

mặc định: lcd_code <= 6'h10;

endcase

/ / If (lcd_rw) / / comment-ra cho lặp lại hiển thị

/ / Lcd_busy <= 0; / / comment-ra cho lặp lại hiển thị

lcd_stb <= ^ đếm [k 1: k 0] & ~ lcd_rw & lcd_busy; / / clkrate / 2 ^ (k 2)

lcd_stuff <= (lcd_stb, lcd_code);

(lcd_e, lcd_rs, lcd_rw, lcd_7, lcd_6, lcd_5, lcd_4) <= lcd_stuff;

(lcd_3, lcd_2, lcd_1, lcd_0) <= 4'b1111;

cuối

endmodule
 
nó sẽ có thể chuyển đổi các định dạng Verilog để VHDL xin vui lòng cho tôi biết nếu ai đó biết

 
Rất dễ dàng để chuyển đổi mã đơn giản để định dạng VHDL nhưng nếu U az lười như tôi

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

bạn có thể tìm kiếm một số chuyển đổi tự động bởi googleing nó, đó là một sự bình an của bánh để tìm một tốt nhất.

 

Welcome to EDABoard.com

Sponsor

Back
Top