1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo hệ thống nhúng ct399 đề tài mạch đếm xuống hiển thị led 7 đoạn

22 6 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC CẦN THƠTRƯỜNG BÁCH KHOA

KHOA ĐIỆN TỬ-VIỄN THÔNG

BÁO CÁO

HỆ THỐNG NHÚNG (CT399)

ĐỀ TÀI: MẠCH ĐẾM XUỐNG HIỂNTHỊ LED 7 ĐOẠN

Giảng viên hướng dẫn: Sinh viên thực hiện:

Năm học 2023-2024

Trang 8

Hình 2.9

- Bước 9: Gán địa chỉ nền cho các thành phần

Hình 2.10

Trang 9

- Bước 10: Lưu hệ thống và sinh tập tin HDL

Hình 2.11

Hình 2.12

3 Gán chân cho hệ thống

Trang 10

- Bước 1: Thực hiện gán chân cho sơ đồ hệ thống

Hình 3.1

- Bước 2: Chọn tập tin quy ước gán chân

Hình 3.2

Trang 11

Hình 3.4

Hình 3.5Kết quả gán chân

Hình 3.6

- Bước 4: Nạp thiết kế phần cứng xuống chip FPAG

Trang 13

Hình 4.3

- Bước 3: Cửa sổ Properties dự án lập trình

Hình 4.4

Trang 14

Hình 4.5

- Bước 4: Viết code cho chương trình

#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);

Trang 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){

Trang 16

// Nếu bộ đếm dừng, giữ nguyên 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){

Trang 17

usleep(1000000); // Wait for 1 second display(i, dec_digit);

// Break the loop if the counter is stopped if (!running) {

break; }

Hình 4.6

Trang 18

Hình 4.7

Hình 4.8

Trang 19

Hình 4.9

- Bước 5: Biên dịch chương trình

Hình 4.10

Trang 20

Hình 4.11

- Bước 6: Thiết lập kết nối hệ thống nhúng và máy tính

Hình 4.12

Trang 21

Hình 4.13

II KẾT QUẢ

Dưới đây là kết quả chạy trên kit FPAG tại phòng thí nghiệm.

Trang 22

III ĐÁNH GIÁ VÀ NHẬN XÉT

- 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.

Ngày đăng: 10/06/2024, 15:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w