Danh mục

Thiết kế hệ thống xử lý ảnh video trên FPGA (CycloneII), chương 24

Số trang: 15      Loại file: pdf      Dung lượng: 84.21 KB      Lượt xem: 19      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương trình liên kết hiển thị con trỏ của chuột lên màn hình, vì trong bộ nhớ của KIT không hỗ trợ kí hiệu con trỏ nên ta thay con trỏ như một dấu chấm. Đầu tiên tín hiệu xung và dữ liệu của mouse được đưa vào chương trình chuyển đổi(phần trước) nhận biết được nút trái hay phải được nhấp và cho biết toạ độ của mouse. Tín hiệu toạ độ của chuột sẽ làm tín hiệu để so sánh với hàng cột của điểm ảnh do chương trình Vga_sync( phần trước). Nếu thoả điều kiện thì tín hiệu...
Nội dung trích xuất từ tài liệu:
Thiết kế hệ thống xử lý ảnh video trên FPGA (CycloneII), chương 24 Chương 24: Kieåm tra giôùi haïn treân cuûa maøn hình IF (cursor_column 256) OR (NEW_cursor_column < 2)) THEN cursor_column 640 THEN cursor_column NEW_cursor_row Y7-Y0= khoaûng caùch di chuyeån cuûa Y (0=di chuyeån traùi, 1=dichuyeån phaûi) Xo= bit döõ lieäu theå hieän X traøn (traøn=1) Yo= bit döõ lieäu theå hieän Y traøn (traøn=1) …. Töø caùc bit trong 3 byte cuûa mouse cho ta bit toa ñoä cuûa mouse vaø cho bieát nuùt naøo cuûa Mouse ñöôïc nhaán. Chöông trình keát hôïp vôùi giaûi maõ led theå hieän toïa ñoä cuûa mouse vaø nuùt naøo ñöôïc nhaán theå hieän qua dp cuûa led 7 ñoaïn. Do kit chæ coù 2 led 7ñoaïn neân ta chæ theå hieän haøng ñôn vò hay haøng chuïc cuûa toaï ñoä cuûa mouse. Chöông trình keát hôïp naøy theå hieän toïa ñoä haøng chuïc cuûa chuoät: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY kethop IS PORT ( clock_25Mhz, reset : IN STD_LOGIC; dataM,dataL :OUT STD_LOGIC_VECTOR (6 DOWNTO 0); mouse_data, mouse_clk : INOUT STD_LOGIC; left_button, right_button : OUT STD_LOGIC); END kethop; ARCHITECTURE bb OF kethop IS SIGNAL mouse_cursor_row :STD_LOGIC_VECTOR (9 DOWNTO 0); SIGNAL mouse_cursor_column: STD_LOGIC_VECTOR (9 DOWNTO 0); COMPONENT mouse PORT( clock_25Mhz, reset : IN STD_LOGIC; SIGNAL mouse_data : INOUT STD_LOGIC; SIGNAL mouse_clk : INOUT STD_LOGIC; SIGNAL left_button, right_button : OUT STD_LOGIC; SIGNAL mouse_cursor_row : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); SIGNAL mouse_cursor_column:OUT STD_LOGIC_VECTOR(9DOWNTO 0)); END COMPONENT; COMPONENT dec_7seg1 PORT(hex_digit : IN STD_LOGIC_VECTOR(3 DOWNTO 0); Data : OUT STD_LOGIC_VECTOR (6 DOWNTO 0)); END COMPONENT; BEGIN x1: mouse port map(clock_25Mhz=>clock_25Mhz,reset=>reset, mouse_data=>mouse_data,mouse_clk=>mouse_clk, left_button=>left_button,right_button=>right_button, mouse_cursor_row=>mouse_cursor_row, mouse_cursor_column =>mouse_cursor_column); x2: dec_7seg1 port map (hex_digit=> mouse_cursor_row(9 downto 6),data =>dataM); x3: dec_7seg1 port map (hex_digit =>mouse_cursor_column(9 downto 6),data =>dataL); END; Sau ñoù ta gaùn chaân nhö sau: Tín hieäu Chaân dataL6 6 dataL5 7 dataL4 8 dataL3 9 dataL2 11 dataL1 12 dataL0 13 right_button 14 dataM6 17 dataM5 18 dataM4 19 dataM3 20 dataM2 21 dataM1 23 dataM0 24 left_button 25 mouse_clk 30 mouse_data 31 reset 41 clock_25Mhz 91 Löu vaø bieân dòch laïi, roài naïp file .sof leân Kit UP2 ñeå chaïy chöông trình. VII. Giao tieáp giöõa VGA vaø baøn phím 1. Moâ hình Data : töø baøn phím xuaát ra khi ta nhaán phím. Clk : töø baøn phím khi ta nhaán phím. Maõ scancode ñöôïc chöông trình chuyeån ñoåi (ôû phaàn tröôùc) töø tín hieäu data cuûa baøn phím. Tín hieäu data vaø clk ñöôïc truyeàn thoâng qua coång PS/2 ñeán KIT UP2. Sau ñoù maõ scancode ñöôïc giaûi maõ thaønh ñòa chæ cuûa kí töï coù maõ scancode ñoù. Ñòa chæ ñöôïc ñöa vaøo chöông trình xuaát kí töï( ôû phaàn tröôùc) ñöa kí töï leân maøn hình. Luùc naøy chöông trình seõ xuaát ra 5 tín hieäu red, green, blue vaø hai tín hieäu ñoàng boä ngang vaø doïc. 5 tín hieäu naøy ñöôïc truyeàn tôùi monitor thoâng qua coång Vga cuûa KIT UP2. 2. Chöông trình a. Chöông trình giaûi maõ LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; USE IEEE.STD_LOGIC_ARITH.all; USE IEEE.STD_LOGIC_UNSIGNED.all; ENTITY giaima IS PORT( scan_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0); scan_out: OUT STD_LOGIC_VECTOR (5 DOWNTO 0)); END giaima; ARCHITECTURE o OF giaima IS SIGNAL scan1 : STD_LOGIC_VECTOR (5 DOWNTO 0); BEGIN PROCESS(scan_in) BEGIN CASE scan_in IS WHEN 00011110 => scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 WHEN 00110011 => scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 WHEN 00011101 => scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 WHEN 01010010 => scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 scan1 WHEN 01101100 => scan1 scan1 scan1 scan1 SIGNAL rom_mux_output, green, blue, scan_ready : STD_LOGIC; SIGNAL pixel_row, pixel_column: STD_LOGIC_VECTOR (9 DOWNTO 0); SIGNAL scan_out: STD_LOGIC_VECTOR (5 DOWNTO 0); SIGNAL scan_code: STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT VGA_SYNC PORT( clock_25Mhz,green, blue,red : IN STD_ ...

Tài liệu được xem nhiều: