PHẦN I: Cấu tạo và nguyên lý hoạt động các linh kiện được sử dụng- STM32F103C8T6 - STM32F103C8T6 là một trong các dòng vi điều khiển ARM Cortex-M3 của STMicroelectronics.. Đây là một dò
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG I
KỸ THUẬT VI XỬ LÝ BÁO CÁO BÀI TẬP LỚN
BÀI 2: Đồng hồ báo thức hiển thị trên LCD
Giảng viên: Nguyễn Trung Hiếu Nhóm bài tập: Nhóm 8
Thành viên: Phạm Quốc Khánh
Phí Đức Khánh
Đỗ Trung Kiên Nguyễn Bùi Khuyến
Hà Nội – 2023
Trang 2MỤC LỤC
PHẦN I: Cấu tạo và nguyên lý hoạt động các linh kiện được sử dụng 4
1.1 STM32F103C8T6 4
1.2 LCD gắn I2C 5
1.3 Nút nhấn(Button) 7
1.4 Còi báo TMB12A03 8
1.5 Pin CR2032 Phần II: Những thành phần quan trọng trong bộ hẹn giờ 10
2.1 RTC ( Real – Time Clock ) 10
2.2 I2C ( Inter – Integreted Circuit ) 10
2.3 NIVC ( Nested Vectored Interrupt Controller ) 10
2.3.1 Ngắt ( Interrupt ) 10
2.3.2 Một số tác dụng chính của ngắt 10
Phần III: Nguyên tắc hoạt động 11
Phần IV : Lưu đồ thuật toán hiển thị từng chế độ của LCD và chạy mạch thực tế 11
4.1 Lưu đồ thuật toán 11
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN MÔN HỌC
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
PHẦN CHO ĐIỂM CỦA GIẢNG VIÊN MÔN HỌC Điểm: (bằng chữ: )
Hà Nội, ngày tháng năm 2023
Giảng viên môn học
Trang 4Phân công công việc
Phạm Quốc Khánh : lắp mạch, lên ý tưởng.
Đỗ Trung Kiên lắp mạch, làm slide
Nguyễn Bùi Khuyến : lắp mạch, làm báo cáo Phí Đức Khánh: Hỗ trợ nhóm.
Trang 5PHẦN I: Cấu tạo và nguyên lý hoạt động các linh kiện được sử dụng
- STM32F103C8T6
- STM32F103C8T6 là một trong các dòng vi điều khiển ARM Cortex-M3 của
STMicroelectronics Đây là một dòng vi điều khiển tích hợp nhiều tính năng và được sử dụng rộng rãi trong các ứng dụng nhúng, điều khiển và các hệ thống nhúng khác Dưới đây là một số thông tin về cấu trúc và chức năng chính của STM32F103C8T6:
1 Kiến trúc:
Sử dụng lõi vi xử lý ARM Cortex-M3 32-bit
Tốc độ xử lý có thể lên đến một số MHz (tùy thuộc vào biến thể cụ thể)
2 Bộ nhớ:
Bộ nhớ flash để lưu trữ chương trình (kích thước tùy thuộc vào biến thể)
Bộ nhớ RAM cho dữ liệu và bộ nhớ EEPROM
3 Giao tiếp:
Trang 6 Nhiều cổng GPIO (General-Purpose Input/Output) để kết nối với các thiết bị ngoại vi.
Các cổng giao tiếp như USART, SPI, I2C cho truyền thông dữ liệu
Giao diện USB
4 Ngắt và Timer:
Hỗ trợ nhiều ngắt để xử lý sự kiện ngoại vi
Timer và counter tích hợp để đo thời gian, tạo xung, và các chức năng khác
5 Chuyển đổi ADC/DAC:
Bộ chuyển đổi ADC (Analog-to-Digital Converter) để đo lường các tín hiệu analog
Bộ chuyển đổi DAC (Digital-to-Analog Converter) để tạo ra các tín hiệu analog
6 Liên kết truy cập và Tính năng an ninh:
Bảo vệ bộ nhớ với các tính năng như bảo vệ khu vực bộ nhớ, cổng code
và cổng dữ liệu
Các chức năng an ninh như bảo vệ truy cập và mã hóa
7 Nguồn điện và Tiết kiệm năng lượng:
Hỗ trợ nhiều nguồn cung cấp điện từ 2V đến 3.6V
Chế độ tiết kiệm năng lượng để giảm tiêu thụ năng lượng khi không hoạtđộng
- LCD gắn I2C
Trang 7Cấu tạo của LCD gắn I2C:
1 Màn hình LCD:
Hiển thị thông tin dưới dạng văn bản hoặc đồ họa
2 Bộ điều khiển LCD:
Quản lý dữ liệu được hiển thị trên màn hình
Điều khiển các đơn vị điều khiển như thanh trượt hoặc các ký tự đặc biệt
3 Bộ chuyển đổi I2C (I2C Converter):
Chuyển đổi tín hiệu điều khiển và dữ liệu từ giao diện I2C sang các tín hiệu mà màn hình LCD có thể hiểu được
4 Giao diện I2C:
Cung cấp chân dữ liệu (SDA - Serial Data) và chân xác định thời gian (SCL - Serial Clock) cho việc truyền thông I2C
Nguyên lý hoạt động:
1 Giao tiếp thông qua I2C:
LCD gắn I2C có thể kết nối với vi điều khiển hoặc bất kỳ thiết bị khác
hỗ trợ giao thức I2C
I2C giúp giảm số lượng chân kết nối, giúp tiện ích trong việc tích hợp vào các hệ thống nhúng và điều khiển
2 Điều khiển bằng lệnh:
Bạn có thể điều khiển LCD bằng cách gửi lệnh thông qua giao diện I2C
Các lệnh này có thể bao gồm việc di chuyển con trỏ, xóa màn hình, hiển thị ký tự, và các chức năng khác
3 Hiển thị văn bản và đồ họa:
LCD có khả năng hiển thị văn bản, con số, và đôi khi đồ họa đơn giản
Dữ liệu được truyền thông qua giao diện I2C để cập nhật nội dung hiển thị
4 Đa nhiệm:
LCD gắn I2C thường hỗ trợ đa nhiệm, có thể hiển thị nhiều thông điệp cùng một lúc
5 Quản lý ký tự và thanh trượt:
Một số LCD gắn I2C có khả năng quản lý các ký tự đặc biệt và thanh trượt để hiển thị dữ liệu theo cách tương tác
Trang 8Lập trình và Sử dụng:
1 Thư viện và API:
Các nhà sản xuất thường cung cấp thư viện và API để tương tác với LCDgắn I2C
Cần sử dụng các hàm và lệnh cụ thể để gửi dữ liệu và lệnh đến LCD thông qua giao diện I2C
5 Hiển thị thông tin:
Gửi dữ liệu và lệnh để hiển thị thông tin mong muốn lên LCD
- Nút nhấn (Button)
Nút nhấn là một loại công tắc đơn giản điều khiển hoạt động của máy hoặc một
số loại quá trình Hầu hết, các nút nhấn là nhựa hoặc kim loại Hình dạng của nút ấn cóthể phù hợp với ngón tay hoặc bàn tay để sử dụng dễ dàng Tất cả phụ thuộc vào thiết
kế cá nhân Nút ấn có 2 loại chính là nút nhấn thường mở hoặc nút nhấn thường đóng
Trang 9Nguyên lý hoạt động
Nút nhấn có ba phần: Bộ truyền động, các tiếp điểm cố định và các rãnh Bộtruyền động sẽ đi qua toàn bộ công tắc và vào một xy lanh mỏng ở phía dưới Bêntrong là một tiếp điểm động và lò xo Khi nhấn nút, nó chạm vào các tiếp điểm tĩnhlàm thay đổi trạng thái của tiếp điểm Trong một số trường hợp, người dùng cần giữnút hoặc nhấn liên tục để thiết bị hoạt động Với các nút nhấn được sử dụng trong bàinày chúng ta sử dụng loại nút nhấn có chốt sẽ giữ nút bật cho đến khi người dùng nhấnnút lần nữa
- Còi báo TMB12A03
Cấu tạo của Còi báo TMB12A03:
1 Điện áp hoạt động:
TMB12A03 thường hoạt động ở điện áp cung cấp cụ thể (ví dụ: 12V)
2 Chân kết nối:
Chân dương (+): Kết nối với nguồn điện dương
Chân âm (-): Kết nối với nguồn điện âm
3 Nguyên lý hoạt động:
Trang 10 Còi báo TMB12A03 hoạt động bằng cách tạo ra âm thanh cảnh báo khi được kích thích bởi điện áp đầu vào.
Kết nối với STM32F103C8T6:
1 Nguồn điện:
Kết nối chân dương của còi báo TMB12A03 với nguồn 3V
Kết nối chân âm của còi báo TMB12A03 với nguồn đất (GND)
có thể lập trình trực tiếp, nhưng nó có thể được sử dụng trong các ứng dụng lập trình STM32F103C8T6 để cung cấp nguồn điện cho chip
Cấu Tạo của Pin CR2032:
Trang 11 Pin CR2032 thường được đặt trong một vỏ bọc kim loại để bảo vệ và cách ly.
2 Cung Cấp Nguồn Điện cho Thiết Bị:
Khi pin CR2032 được kết nối với một mạch điện, nó cung cấp điện áp đểlàm hoạt động thiết bị
Sử Dụng trong Lập Trình STM32F103C8T6:
-Pin CR2032 thường được sử dụng như một nguồn điện dự phòng hoặc duy trì thời gian thực (RTC) trong các ứng dụng STM32F103C8T6 STM32F103C8T6 có thể có một module RTC tích hợp, và pin CR2032 có thể được kết nối với nó để giữ lại thời gian thực và ngày tháng khi nguồn điện chính không khả dụng
Phần II Những thành phần quan trọng trong bộ hẹn giờ
1 RTC (Real-Time Clock):
- Là một thành phần trong vi điều khiển, RTC là một đồng hồ thời gian thực
được sử dụng để theo dõi và duy trì thời gian thực Nó thường được sử dụng trong các ứng dụng yêu cầu đồng hồ chính xác, như đồng hồ đeo tay, bộ đàm,
hệ thống đo thời gian, vv
2 I2C (Inter-Integrated Circuit):
- Là một giao thức truyền thông, I2C cho phép các thiết bị kết nối với nhau thông
qua hai dây dữ liệu (SDA và SCL) Nó được sử dụng để giao tiếp giữa vi điều khiển và các thiết bị ngoại vi như cảm biến, bộ nhớ EEPROM, và các vi điều khiển khác
3 NVIC (Nested Vectored Interrupt Controller):
- Là một thành phần của vi điều khiển, NVIC quản lý các ngắt (interrupts) và xác
định ưu tiên giữa chúng Ngắt là cơ chế cho phép hệ thống phản ứng nhanh chóng và xử lý các sự kiện bất thường hoặc quan trọng nhưng không dự định
Ngắt (Interrupt):
- Là một cơ chế cho phép vi điều khiển phản ứng tức thì và chuyển đổi từ thực
hiện một tác vụ sang thực hiện một tác vụ khác khi có sự kiện xảy ra Trong ngữ cảnh của RTC, ngắt có thể được sử dụng để xử lý các sự kiện thời gian nhưbáo thức hoặc cập nhật thời gian
Trang 12- Ngắt (interrupt) trong lập trình vi điều khiển đồng hồ hẹn giờ (RTC -
Real-Time Clock) có tác dụng quan trọng để xử lý sự kiện theo thời gian thực và thực hiện các công việc liên quan đến đồng hồ
- Dưới đây là một số tác dụng chính của ngắt trong lập trình RTC:
1 Cập nhật thời gian thực:
Khi đồng hồ RTC cần cập nhật giá trị thời gian, một ngắt có thể được kích hoạt
để thông báo về sự kiện này Trong hàm ngắt, bạn có thể thực hiện các công việc như đọc giá trị thời gian mới từ RTC, cập nhật các biến hoặc cấu trúc dữ liệu liên quan
2 Thông báo báo thức (Alarm):
RTC thường có chức năng hẹn giờ hoặc báo thức để thông báo về một thời điểm cụ thể Khi thời gian đến, một ngắt được kích hoạt, cho phép bạn thực hiện các hành động liên quan đến sự kiện báo thức
3 Tiêu thụ năng lượng thấp:
Ngắt có thể được sử dụng để tối ưu hóa tiêu thụ năng lượng Thay vì kiểm tra liên tục giá trị thời gian, việc sử dụng ngắt giúp hệ thống "tự thức tỉnh" chỉ khi cần thiết, giảm tiêu thụ năng lượng tổng cộng
4 Giao tiếp với các chức năng khác:
Ngắt cũng có thể được sử dụng để giao tiếp với các chức năng khác của
vi điều khiển Chẳng hạn, bạn có thể sử dụng ngắt để kích hoạt các chức năng khác như ghi dữ liệu vào bộ nhớ, hiển thị thông tin trên màn hình, hoặc thực hiện các tác vụ khác liên quan đến thời gian thực
Phần III Nguyên tắc hoạt động
- Các chân Port B0,B1,B6,B7,B10,B11,C13,VBT ngoài ra có chân 5V và chân GND+ Chân 5V ,GND, B6,B7 dùng để kết nối với I2C(I2C được gắn cùng LCD): Dùng để truyền dữ liệu đến LCD , hiển thị thời gian ra màn hình
+Chân B11,B10,B0,B1 dùng để nối với các button, thiết lập các chế độ hiển thị, thiết lập thời gian thực , cài đặt báo thức
+ Các chân còn lại dùng để cấp nguồn cho còi
-Khi đến thời gian báo thức được thiết lập còi sẽ kêu
-Khi qua 1s đồng hồ hiển thị thời gian thực sẽ cộng thêm 1 đơn vị, khi đạt đến
23:59:59 màn hình sẽ reset về 00:00:00
Phần IV Lưu đồ thuật toán từng chế độ hiển thị LCD và chạy mạch thực tế
1 Lưu đồ thuật toán
Show mode
Trang 13Hiển thị Alarm Status và Alarm Time
Trang 16Báo thức
Trang 17Chỉnh thời gian
Tăng giảm Time
Trang 192 Mạch thực tế
Alm Status : thiệt lập chế độ hẹn giờ +Alm Status : ON chế độ hẹn giờ
+ Alm Status : OFF tắt chế độ hẹn giờ
Alm Time : thời gian còi báo thức kêu
Trang 20Time : hiển thị thời gian thực
Alarm : hiển thị thời gian hẹn giờ
Trang 22Phần V : Kết Luận
Hệ thống hoạt động đáp ứng đc các yêu cầu đề ra.