Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.52 MB, 22 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>Hình 2.9</b>
<b>- Bước 9: Gán địa chỉ nền cho các thành phần </b>
<b>Hình 2.10</b>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>- Bước 10: Lưu hệ thống và sinh tập tin HDL </b>
<b>Hình 2.11</b>
<b>Hình 2.12</b>
<b>- Bước 1: Thực hiện gán chân cho sơ đồ hệ thống</b>
<b>Hình 3.1</b>
<b>- Bước 2: Chọn tập tin quy ước gán chân </b>
<b>Hình 3.2</b>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><b>Hình 3.4</b>
<b>Hình 3.5Kết quả gán chân</b>
<b>Hình 3.6</b>
<b>Hình 4.3</b>
<b>- Bước 3: Cửa sổ Properties dự án lập trình </b>
<b>Hình 4.4</b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>Hình 4.5</b>
<b>- Bước 4: Viết code cho chương trình </b>
#include <system.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include "alt_types.h"
#include "altera_avalon_pio_regs.h"#include "sys/alt_irq.h"
char hex_segs[]= {0,0,0,0,0,0,0,0};char contant[4]={0,0,0,0};
char dec_digit[]= {0,0,0,0};char i;
void hex_display(char number , char order_7seg){volatile int *HEX3_0 = (int *)HEX3_0_BASE;hex_segs[order_7seg]= seven_seg[number];*(HEX3_0) = *(int*)(hex_segs);
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">dec_digit[1] = ((number -(number % 100)) /100)%10;dec_digit[2] = ((number -(number % 10)) /10)%10;dec_digit[3] = number %10;
data = data & 0x000000ff;if (data!=10){
contant[3]= (char) data-48; }
void display(char number, char *dec_digit){split4digit(number, dec_digit);
void handle_interrupt (int key_values){ if (key_values & 0x01){
running = !running; if (!running){
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">// Nếu bộ đếm dừng, giữ ngun giá trị hiện tại và khơng làm gì cả display(count_con, dec_digit);
} }}
#ifdef KEYS_BASE
static void handle_key_interrupts (void* context){
volatile int* edge_capture_ptr = (volatile int*) context;
*edge_capture_ptr =
handle_interrupt (*edge_capture_ptr);
static void init_key_pio(){
volatile void* edge_capture_ptr = (void*) &edge_capture;
int main (void){#ifdef KEYS_BASE
while (1){ input_data(); usleep(1000000);
alt_printf("NHAP VAO GIA TRI:\n"); if (running){
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">usleep(1000000); // Wait for 1 second display(i, dec_digit);
// Break the loop if the counter is stopped if (!running) {
break; }
<b>Hình 4.6</b>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>Hình 4.7</b>
<b>Hình 4.8</b>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b>Hình 4.9</b>
<b>- Bước 5: Biên dịch chương trình </b>
<b>Hình 4.10</b>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b>Hình 4.11</b>
<b>- Bước 6: Thiết lập kết nối hệ thống nhúng và máy tính </b>
<b>Hình 4.12</b>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><b>Hình 4.13</b>
Dưới đây là kết quả chạy trên kit FPAG tại phịng thí nghiệm.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">- Mạch chạy đúng theo yêu cầu đề ra của đồ án.
- Kết hợp reset về 0, tạm dừng và tiếp tục khi nhấn nút. - Hoàn thành được mục tiêu đề ra.
</div>