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

Thiết kế ổ khóa đóng mở cửa bằng key pad , Đọc thời gian thực RTC hiện thị lên LCD và PASSWORD

16 15 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 2,29 MB
File đính kèm file dinh kem.zip (10 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỒ ÁN HỆ THỐNG NHÚNG ĐỒ ÁN HỆ THỐNG NHÚNG Nhóm 9 ĐỀ TÀI Thiết kế ổ khóa đóng mở cửa bằng key pad , Đọc thời gian thực RTC hiện thị lên LCD và PASSWORD 2 SƠ ĐỒ KHỐI 3 Keypad 4x4 Vi điều khiển SM32 Hiện.

Trang 1

ĐỒ ÁN HỆ

THỐNG NHÚNG

Nhóm 9

Trang 2

ĐỀ TÀI

Thiết kế ổ khóa đóng mở cửa bằng key pad , Đọc thời

gian thực RTC hiện thị lên LCD và PASSWORD

2

Trang 3

SƠ ĐỒ KHỐI

3

Keypad 4x4

Vi điều khiển SM32

Hiện thị ngày giờ lên LCD

Mở cửa nếu pass đúng

Hiển thị trên LCD,PASS

Trang 4

Linh kiện

● STM32F103C8T6

● Module I2C

● Keypad 4x4

● Màn hình LCD

● Module RTC (Có sẵn trong STM32)

4

Trang 5

Hệ điều hành FreeRTOS

0 1

Trang 6

Là một hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở được

phát triển bởi Real Time Engineers Ltd, sáng lập và sở hữu bởi Richard Barry FreeRTOS được

thiết kế phù hợp cho nhiều hệ nhúng nhỏ gọn vì nó chỉ triển khai rất ít các chức năng như: cơ

chế quản lý bộ nhớ và tác vụ cơ bản, các hàm API quan trọng cho cơ chế đồng bộ Nó không

cung cấp sẵn các giao tiếp mạng, drivers, hay hệ thống quản lý tệp (file system) như những hệ điều hành nhúng cao cấp khác Tuy vậy, FreeRTOS có nhiều ưu điểm, hỗ trợ nhiều kiến trúc vi

điều khiển khác nhau, kích thước nhỏ gọn (4.3 Kbytes sau khi biên dịch trên Arduino), được viết bằng ngôn ngữ C và có thể sử dụng, phát triển với nhiều trình biên dịch C khác nhau (GCC,

OpenWatcom, Keil, IAR, Eclipse, …), cho phép không giới hạn các tác vụ chạy đồng thời, không hạn chế quyền ưu tiên thực thi, khả năng khai thác phần cứng Ngoài ra, nó cũng cho phép triển khai các cơ chế điều độ giữa các tiến trình như: queues, counting semaphore, mutexes.(Theo

Wiki Media)

6

Trang 7

7

RTOS thường sẽ là một phân đoạn của chương trình Tại

đây nó có nhiệm vụ giải quyết và điều phối các tác vụ

(task), lập lịch và phân mức ưu tiên cho chúng Việc này

có thể thực hiện bằng cơ chế Hướng sự kiện

(Event-driven) và Chia sẻ thời gian (Time-sharing).

Cơ chế Hướng sự kiện sẽ điều hướng các tác vụ dựa trên

mức độ ưu tiên và Chia sẻ thời gian sẽ làm nhiệm vụ

chuyển đổi tác vụ RTOS đều kèm theo thuật

Pre-emptive scheduling (Đặt lịch trước).

Trang 8

Lập Trình

0 2

Trang 9

Lập trình KeyPad

9

Ma trận phím là tập hợp các nút nhấn kết nối với nhau theo

các hàng và các cột Số nút nhấn tương ứng sẽ là tích của số

hàng nhân số cột.

Để điều khiển 16 nút nhấn, thông thường chúng ta phải sử

dụng 16 GPIO nhưng nếu sử dụng ma trận phím chúng ta chỉ

cần sử dụng 8 GPIO.

Các nút nhấn sẽ nối hàng và cột với nhau Khi nhần nút 1

dây Hàng (Row) sẽ nối với dây Cột (Colum hay Col) Các nút

nhấn tương ứng sẽ có vị trí nối hàng với cột khác nhau.

Trang 10

Lập trình KeyPad

10

Đầu tiên kéo các chân kết nối với hàng xuống mức thấp, các

chân ở cột lên mức cao Khi đó nếu có phím nào được nhấn

thì sẽ bắt đầu tìm vị trí phím.

Lần lượt xét các trường hợp sau: hàng A bằng 0 và các hàng

B, C, D bằng 1 suy ra đọc tín hiệu vào ở các cột (1,2,3), nếu

có cột nào được kéo xuống ở mức thấp thì thực hiện lệnh

tương ứng hoặc xuất ra vị trí của phím Nếu không có phím

nào được nhấn thì tiếp tục cho hàng tiếp theo bằng 0 (các

hàng còn lại bằng 1) đến khi tìm được vị trí phím được nhấn.

Trang 11

Lập trình LCD và module I2C

11

-Giới thiệu về I2C

I2C sử dụng 2 đường truyền tín hiệu:

➢ SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master

phát đi

➢ SDA – Serial Data Line : Đường truyền nhận dữ liệu.

Trang 12

Lập trình LCD và module I2C

12

-Quá trình truyền dữ liệu đến thiết bị I2C

Bước 1: Master gửi tín hiệu start I2C.

Bước 2: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Write (bit 0);

Bước 3: Master gửi địa chỉ của thanh ghi dữ liệu của Slave muốn ghi

giá trị.

Bước 4: Master gửi giá trị mà muốn ghi vào thành ghi ở bước 3.

Bước 5: Master tạo tín hiệu stop.

Trang 13

Lập trình LCD và module I2C

13

-Quá trình nhận dữ liệu đến thiết bị I2C

Bước 1: Master gửi tín hiệu start I2C.

Bước 2: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Write (bit 0).

Bước 3: Master gửi đia chỉ thanh ghi của Slave mà muốn đọc dữ liệu.

Bước 4: Master gửi tín hiệu Repeated Start.

Bước 5: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Read (bit 1).

Bước 6: Master đọc dữ liệu chứa trong thanh ghi ở bước 3 từ Slave gửi

về.

Bước 7: Master tạo tín hiệu Stop.

.

Trang 14

Lập trình LCD và module I2C

14

-Quá trình giao tiếp module LCD I2C PCF8574

Vận dụng lập trình sử dụng STM32F103C8T6 thực hiện quá trình I2C

ghi dữ liệu

Bước 1: Gửi tín hiệu Start

Bước 2: Gửi địa chỉ của thiết bị I2C: PCF8574

Bước 3: Master truyền dữ liệu tới Slave

Bước 4: Tạo tín hiệu Stop

.

Trang 15

Cấu hình RTC trong STM32

15

Đầu tiên, chương trình sẽ gọi các chương trình con đã được cấu hình(GPIO, UART,

NVIC) để chúng hoạt động được Tiếp đến kiểm tra thanh ghi đã có backup data hay

chưa bằng cách đọc data ở thanh ghi DR1 và so sánh chúng với 0xA5A5.

 Nếu chưa có thì thông báo là chưa được cấu hình, gọi chương trình con cấu

hình, chương trình con set thời gian, ghi data 0xA5A5 vào thanh ghi DR1 để

sau khi reset còn kiểm tra.

 Nếu đã được cấu hình thì kiểm tra nguyên nhân Reset và đưa ra nguyên

nhân đó là do nguồn bị tắt hoặc do nhấn nút reset.

Trong vòng lặp while : khi cờ báo có ngắt 1s xảy ra thì sẽ đọc thanh ghi thời gian về và

in lên máy tính thông qua UART, xóa cờ ngắt báo 1s Chương trình con thực thi ngắt 1s

được đặt trong file stm3210x_it.c.

Trang 16

CREDITS: This presentation template was

created by Slidesgo, including icons by Flaticon,

and infographics & images by Freepik

THANKS

!

Cảm ơn thầy và các bạn đã lắng nghe

Ngày đăng: 16/11/2022, 21:48

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w