1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo bài tập lớn Vi Xử Lý- Đề tài Lập trình 8 led dùng IC HC595 [Hiệu ứng Snake(), Cánh bướm()]

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Đề tài: Cho biết rằng IC HC595 là IC ghi dịch. Cho 8 led nối với đầu ra của con IC này . Đầu vào IC là 3 chân A0,A1,A2 được nối tương ứng với SCK , RCK, SDI ( SDI chân dữ liệu , SCK chân clock , RCK: chốt DL) . Lập trình 8 led dùng IC HC595. Bao gồm các hiệu ứng. Snake(), canh_buom(),:

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN MÔN HỌC VI XỬ LÝ

NHÓM 2

Phạm Văn Chính-B20DCVT429 (Nhóm trưởng)Nguyễn Đức Anh-B19DCDT009

Phạm Tiến Anh-B18DCDT012Trần Gia Bảo-B19DCDT018

Giảng viên giảng dạy: Nguyễn Trung Hiếu

HÀ NỘI - 2023

Trang 2

Đề tài: Cho biết rằng IC HC595 là IC ghi dịch Cho 8 led nối với đầu ra của con IC này Đầu vào IC là 3 chân A0,A1,A2 được nối tương ứng với SCK , RCK, SDI ( SDI chân dữ liệu , SCK chân clock, RCK: chốt DL) Lập trình 8 led dùng IC HC595 Bao gồm các hiệu ứng Snake(), canh_buom(),:

-A Mô tả đề tài

Bài toán điều khiển đèn LED thông qua vi điều khiển STM32F103R6 vàIC 74HC595 là một phần trong dự án nhúng Báo cáo này tập trung vào việc phân tích và giải thích cách sử dụng IC 74HC595 để mở rộng số lượng đèn LED điều khiển thông qua một số chân GPIO hạn chế của vi điều khiển STM32F103R6.

Mục tiêu của dự án là hiện thực hai hiệu ứng LED đơn giản là "Snake" và "Canh_buom" sử dụng IC 74HC595 để di chuyển và thay đổi trạng thái của các đèn LED Bên cạnh đó, chúng ta cũng sẽ tối ưu thời gian thực hiện của hai hiệu ứng này để đạt được hiệu năng cao và mượt mà trong việc điều khiển LED.

B Tổng quan về IC ghi 74HC595 và vi điều khiển STM32F103R6

I. IC ghi dịch 74HC595

1. Nguyên lý hoạt động: IC 74HC595 là một loại IC đa chức năng được sử dụng để mở rộng số lượng đầu ra của vi điều khiển thông qua giao tiếp nối tiếp (Serial-In-Parallel-Out - SIPO) IC này có khả năng điều khiển 8 đầu ra song song và chỉ cần 3 chân điều khiển từ vi điều khiển để điều khiển 8 đèn LED.

2. Đặc điểm và chức năng: Số đầu ra: 8 đầu ra song song, giúp mở rộng số lượng đèn LED hoặc các thiết bị ngoại vi khác Đầu vào: Hỗ trợ giao tiếp nối tiếp thông qua 3 chân: SDI (Chốt dữ liệu), SCK (Chân dữ liệu), RCK (Chân clock).

Trang 3

o Chân SDA: nó set (đặt giá trị 1) hoặc reset (đặt giá trị 0) chânSDI tương ứng với bit dữ liệu muốn gửi Sau khi đã gửi tất cả8 bit dữ liệu, vi điều khiển thực hiện xung clock (SCK) để chốt dữ liệu vào thanh ghi dịch

o Chân SCK Khi vi điều khiển muốn gửi dữ liệu, nó thực hiện xung clock bằng cách set (lên mức logic cao) chân SCK và sau đó reset (xuống mức logic thấp) chân SCK.

o Chân RCK: Sau khi đã gửi tất cả 8 bit dữ liệu vào thanh ghi dịch của IC 74HC595 thông qua các xung clock SCK, vi điềukhiển thực hiện xung chốt bằng cách set (lên mức logic cao) chân RCK và sau đó reset (xuống mức logic thấp) chân RCK.Khi chân RCK được chốt, dữ liệu từ thanh ghi dịch của IC 74HC595 được lưu vào các đầu ra song song Q0 đến Q7, từ đó điều khiển các đèn LED tương ứng.

II. Vi điều khiển STM32F103R6

1. Vi điều khiển STM32F103R6 là một vi điều khiển ARM Cortex-M3 cung cấp bởi STMicroelectronics Nó có hiệu suất cao và được sử dụng phổ biến trong các ứng dụng nhúngvà điều khiển.

2 Đặc điểm và chức năng:

o Vi xử lý: ARM Cortex-M3 với tốc độ xung nhịp cao.

o Bộ nhớ: Bộ nhớ Flash tích hợp và bộ nhớ RAM để lưu trữ chương trình và dữ liệu.

o Giao tiếp: Hỗ trợ nhiều giao tiếp như GPIO, SPI, I2C, UART

o Đầu vào/Đầu ra: Có nhiều chân GPIO để giao tiếp với các thiết bị ngoại vi như IC 74HC595.

o Điều khiển: Được lập trình bằng các ngôn ngữ lập trình như C/C++ và hỗ trợ nhiều công cụ lập trình.

III. Tương quan giữa IC 74HC595 và vi điều khiển STM32F103R6

Vi điều khiển STM32F103R6 sẽ gửi dữ liệu đến IC 74HC595 thông qua các chân giao tiếp SPI như SDI và SCK Dữ liệu này sau đó được lưu trữtrong thanh ghi dịch của IC 74HC595 và điều khiển các đèn LED thông qua các chân Q0 đến Q7 Vi điều khiển STM32F103R6 sẽ cũng điều khiển chân RCK của IC 74HC595 để chốt dữ liệu và làm cho các đèn LED sáng hoặc tắt theo trạng thái dữ liệu đã được lưu trữ.

Trang 4

Điều này cho phép vi điều khiển STM32F103R6 mở rộng số lượng đèn LED điều khiển mà không cần nhiều chân GPIO, giúp tiết kiệm tài nguyên và quản lý dễ dàng các đèn LED trong ứng dụng nhúng.

C Giải thích code, cách hoạt động

1 Khai báo và cấu hình các chân GPIO của vi điều khiển STM32F103R6:

o Chân GPIOA0 được sử dụng để giao tiếp với chân SDI của IC 74HC595.

o Chân GPIOA1 được sử dụng để giao tiếp với chân SCK của IC 74HC595.

o Chân GPIOA2 được sử dụng để giao tiếp với chân RCK của IC 74HC595.

2 Hàm delay():

o Hàm delay() được sử dụng để tạo trễ thời gian trong mã lệnh.

o Đối số 'time' là số lần lặp để tạo trễ Mỗi lần lặp tương đươngvới một khoảng thời gian nhỏ (trong trường hợp này, 1ms).3 Hàm shiftout(int val):

o Hàm shiftout() được sử dụng để gửi dữ liệu (val) từ vi điều khiển STM32F103R6 tới IC 74HC595 thông qua giao tiếp SPI

o Hàm này gửi 8 bit dữ liệu (byte) từ bit cao nhất (MSB) đến bit thấp nhất (LSB) thông qua chân SDI của IC 74HC595.

o Sau khi gửi mỗi bit dữ liệu, vi điều khiển đẩy bit dữ liệu ra chân SCK (Serial Clock) của IC 74HC595 bằng cách set bit SCK lên rồi reset lại

o Dữ liệu được chốt vào thanh ghi dịch của IC 74HC595 sau khi gửi xong cả 8 bit.

4 Hàm setLed(int index, int state):

o Hàm setLed() được sử dụng để bật hoặc tắt một đèn LED cụ thể (index) thông qua vi điều khiển IC 74HC595.

o Biến 'output' là biến lưu trữ dữ liệu để gửi tới IC 74HC595 Mỗi bit của biến 'output' tương ứng với một đèn LED Khi bitlà 1, đèn LED sẽ được bật; khi bit là 0, đèn LED sẽ được tắt.

o Biến 'state' được sử dụng để xác định trạng thái bật (state = 1)hoặc tắt (state = 0) của đèn LED cụ thể (index).

o Hàm shiftout() được gọi để gửi dữ liệu 'output' tới IC 74HC595 sau khi thay đổi trạng thái của đèn LED.

Trang 5

7 Hàm main():

o Trong hàm main(), các hiệu ứng Buffterfly() và snake() đượclặp lại vô hạn để thực hiện liên tục các hiệu ứng LED trên mạch Hiệu ứng Buffterfly() sẽ được thực hiện 3 lần trước khi thực hiện hiệu ứng snake() 4 lần, sau đó lại quay lại tiếp tục thực hiện Buffterfly() và snake().

D Mô phỏng trên Proteus

Nhận xét: Vi điều khiển STM32F103R6 và IC 74HC595 cho phép mở rộng số lượng đèn LED điều khiển mà không cần nhiều chân GPIO của vi điều khiển Hiệu ứng LED được điều khiển mượt mà và ổn định, không gặp tình trạng đèn LED bị đứng hoặc không hoạt động đúng cách.Để có cải thiện hiệu quả, có thể tối ưu hóa mã lệnh và sử dụng các

phương pháp tăng tốc độ xử lý để thực hiện các hiệu ứng LED nhanh hơn và mượt mà hơn.

Với IC 74HC59 giúp cho chúng ta có thể giao tiếp nối tiếp với nhiều vớiIC 74HC595.

Trang 6

E Code trên KeilC 5

Ngày đăng: 10/07/2024, 10:43

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

TÀI LIỆU LIÊN QUAN

w