GIỚI THIỆU TỔNG QUAN
Đ ẶT VẤN ĐỀ
Trong bối cảnh công nghệ phát triển nhanh chóng, nhu cầu nâng cấp thiết bị dân dụng ngày càng tăng cao Đặc biệt, việc bảo vệ tài sản cá nhân tại nhà, trường học, cơ quan và xí nghiệp trở thành ưu tiên hàng đầu Tuy nhiên, khóa cơ khí hiện tại có độ bảo mật thấp, dễ bị mở khóa, khiến người dùng lo lắng về an toàn tài sản của mình.
Việc phát triển hệ thống khóa điện tử mang lại tính hiện đại và bảo mật cao hơn cho khóa cửa, đồng thời dễ dàng thao tác Hệ thống này còn tích hợp các tính năng như thay đổi mật khẩu và cảnh báo khi nhập sai mật khẩu nhiều lần, giúp ngăn chặn trộm cắp Nhờ đó, người dùng được bảo vệ tốt hơn cho bản thân và tài sản, đồng thời phù hợp với xu hướng công nghệ hiện đại.
G IỚI THIỆU KHÓA SỐ ĐIỆN TỬ
Thị trường khóa điện tử hiện nay đa dạng với nhiều mẫu mã và chức năng khác nhau, nổi bật là các tính năng như nhận diện khuôn mặt, quét võng mạc và cảm biến vân tay trên những sản phẩm cao cấp Tuy nhiên, khóa sử dụng mật khẩu với màn hình LCD vẫn là lựa chọn phổ biến và phù hợp với giá thành Những tính năng này sẽ được tích hợp vào hệ thống khóa điện tử trong đồ án này, tạo nền tảng cho việc phát triển thêm nhiều tính năng mới trong tương lai.
Thiết kế k hóa điện tử sử dụng PIC16F877A
M ỤC ĐÍCH THỰC HIỆN
Trong bối cảnh hiện nay, nhu cầu bảo vệ tài sản, an toàn cá nhân và bảo mật thông tin cá nhân ngày càng gia tăng, điều này đã thúc đẩy sự phát triển của hệ thống khóa cửa điện tử Đề tài này được hình thành nhằm đáp ứng các yêu cầu bảo mật thiết yếu trong cuộc sống hàng ngày của con người.
Hệ thống khóa cửa tự động không chỉ mang lại sự tiện lợi mà còn giúp người dùng nâng cao kiến thức và kỹ năng về các linh kiện điện tử Qua quá trình thực hiện, người dùng sẽ hiểu rõ hơn về cách giao tiếp giữa các linh kiện và vi điều khiển, tạo nền tảng vững chắc để phát triển và nghiên cứu các hệ thống phức tạp với nhiều tính năng hơn.
Đ ỐI TƯỢNG NGHIÊN CỨU
Về đối tượng nghiên cứu trong đề tài này sẽ nhắm đến các linh kiện cần thiết, phần mềm và các kiến thức liên quan:
- RTC DS1307 (module thời gian thực DS1307)
- Các linh kiện khác như: ma trận phím 4x4, LCD 16x2, buzzer, servo,…
Hình 1-1 Khóa cửa điện tử Arrow REVOLUTION V1-51
Thiết kế k hóa điện tử sử dụng PIC16F877A
P HƯƠNG PHÁP NGHIÊN CỨU
Để thực hiện đề tài này, việc tìm hiểu các linh kiện sử dụng là rất quan trọng, bao gồm đọc thông số kỹ thuật và cách giao tiếp của chúng với vi điều khiển Sau khi nắm vững thông tin, cần tiến hành mô phỏng bằng phần mềm chuyên dụng và viết chương trình tương ứng.
K ẾT QUẢ DỰ KIẾN
Khi được cấp nguồn, mạch hoạt động ổn định và không bị nhiễu, cho phép sử dụng đầy đủ các chức năng như hiển thị thời gian, nhập và thay đổi mật khẩu, mở và đóng cửa, cũng như kích hoạt báo động.
Thiết kế k hóa điện tử sử dụng PIC16F877A
CƠ SỞ LÝ THUYẾT
K HỐI NGUỒN (5V-1A)
Trong các mạch điện tử, nguồn điện là yếu tố thiết yếu cho sự hoạt động hiệu quả của mạch Đặc biệt, các mạch sử dụng vi xử lý cần nguồn cung cấp ổn định ở mức 5V, với dao động cho phép từ 4.75V đến 5.25V.
Để đảm bảo hoạt động ổn định của mạch, cần thiết kế một mạch nguồn Mạch nguồn này sẽ nhận điện áp 220V xoay chiều đầu vào và cung cấp đầu ra 5V.
Đầu tiên, nguồn điện 220V xoay chiều được chuyển qua biến áp để hạ xuống 12V Tiếp theo, mạch cầu diode chuyển đổi dòng điện từ xoay chiều sang một chiều Cuối cùng, dòng điện 12V một chiều được đưa vào mạch ổn áp LM7805, giúp giảm áp xuống 5V ổn định với dòng ra 1.5A.
Hình 2-1 Mô phỏng khối nguồn 220V - 5V
Thiết kế k hóa điện tử sử dụng PIC16F877A
IC LM7805 được sử dụng rất phổ biến trong các thiết bị dân dụng do giá thành rẻ, dễ sử dụng, không cần nhiều linh kiện bên ngoài
Một vài đặc tính của LM7805:
- Điện áp đầu vào tối đa 35V xoay chiều
- Điện áp đầu ra 5V chính xác và ổn định
- Chức năng tắt ngắn mạch tức thì
- Chức năng tắt quá nhiệt tức thì
Hình 2-2 IC LM7805 và sơ đồ chân
Thiết kế k hóa điện tử sử dụng PIC16F877A
K HỐI ĐIỀU KHIỂN TRUNG TÂM
2.2.1 Giới thiệu vi điều khiển PIC16F877A
PIC, viết tắt của "Programmable Intelligent Computer", là sản phẩm đầu tiên của hãng General Instruments Hiện nay, nhiều dòng PIC đã được phát triển với nhiều module ngoại vi tích hợp Trong số đó, PIC16F877A nổi bật nhờ tính linh hoạt, khả dụng và giá thành hợp lý Đây là lựa chọn lý tưởng cho những người mới bắt đầu học tập và nghiên cứu về vi điều khiển.
PIC16F877A là một vi điều khiển phổ biến, với nhiều chương trình mô phỏng cung cấp mẫu mô hình sẵn có Người dùng có thể nạp chương trình vào vi điều khiển thông qua việc chọn tệp hex trong mô phỏng hoặc sử dụng các mạch nạp như PICkit và Burn-e để nạp lên PIC thực tế.
2.2.2 Đặc tính của vi điều khiển PIC16F877A
Một số đặc tính cơ bản của vi điều khiển PIC16F877A:
Hình 2-3 Hình ảnh thực tế PIC16F877A
Thiết kế k hóa điện tử sử dụng PIC16F877A
- PIC16F877A thuộc họ vi điều khiển PIC16F87XA, là loại vi điều khiển 8 bit tầm trung gồm 35 lệnh cơ bản có độ dài 14 bit
- Tất cả các lệnh là 1 chu kì ngoại trừ chương trình con là 2 chu kì
- Tần số hoạt động tối đa 20Mhz
- Dung lượng bộ nhớ chương trình Flash là 8K x 14 words
- Dung lượng bộ nhớ dữ liệu EEPROM là 256 x 8 bytes cho phép xóa và ghi lên đến 1000000 lần
- Bộ nhớ EEPROM có thể lưu dữ liệu lên đến hơn 40 năm
- Sử dụng nguồn có điện áp 2V – 5.5V
Bài viết đề cập đến các đặc tính ngoại vi của hệ thống, bao gồm hai bộ định thời 8 bit là Timer0 và Timer2, một bộ định thời 16 bit là Timer1, cùng với hai bộ chức năng Capture/Compare/PWM (bắt giữ/so sánh/điều biến xung) Ngoài ra, hệ thống còn hỗ trợ 15 nguồn ngắt Interrupt.
- Để cung cấp tần số cho PIC16F877A, ta sử dụng bộ dao động tinh thể có dải tần từ 4MHz đến 40MHz
2.2.3 Sơ đồ chân và chức năng các chân
PIC16F877A có tổng cộng 40 chân, 33 chân I/O và 7 chân dữ liệu 33 chân I/O được chia làm 5 cổng:
- Cổng A gồm 6 chân từ chân RA0 đến RA5
- Cổng B gồm 8 chân từ chân RB0 đến RB7
- Cổng C gồm 8 chân từ chân RC0 đến RC7
- Cổng D gồm 8 chân từ chân RD0 đến RD7
Thiết kế k hóa điện tử sử dụng PIC16F877A
- Cổng E gồm 3 chân từ chân RE0 đến RE2
Chức năng của các chân:
Số thứ tự chân Tên chân Mô tả chức năng
𝐌𝐂𝐋𝐑 (Master Clear): chân ngõ vào reset tích cực mức thấp
Vpp: đóng vai trò nhận điện áp lập trình khi lập trình PIC
2 RA0/AN0 RA0: xuất, nhập số
AN0: ngõ vào analog của kênh thứ 0
3 RA1/AN1 RA1: xuất, nhập số
AN1: ngõ vào analog của kênh thứ 1
4 RA2/AN2/Vref-/CVref RA2: xuất, nhập số
AN2: ngõ vào analog của kênh thứ 2 Hình 2-4 Sơ đồ chân PIC16F877A
Thiết kế k hóa điện tử sử dụng PIC16F877A
Vref-: ngõ vào điện áp chuẩn thấp của bộ
CVref: điện áp tham chiếu Vref ngõ ra bộ so sánh
AN3: ngõ vào analog của kênh thứ 3 Vref+: ngõ vào điện áp chuẩn cao của bộ
RA4: xuất, nhập số mở khi được cấu tạo - là ngõ ra
TOCKI: ngõ vào xung clock bên ngoài cho Timer0
C1OUT: ngõ ra bộ so sánh 1
AN4: ngõ vào analog của kênh thứ 4
𝐒𝐒:ngõ vào chọn lựa SPI phụ
C2OUT: ngõ ra bộ so sánh 2
𝐑𝐃: điều khiển đọc cổng tới song song
AN5: ngõ vào tương tự kênh thứ 5
𝐖𝐑: điều khiển ghi cổng tới song song
AN6: ngõ vào tương tự kênh thứ 6
𝐂𝐒: chip lựa chọn điều khiển cổng tới song song
AN7: ngõ vào tương tự kênh thứ 7
11, 32, 12, 31 VDD và VSS Các chân nguồn của PIC
Thiết kế k hóa điện tử sử dụng PIC16F877A
Ngõ vào và ra kết nối với dao động thạch anh
T1OSO: ngõ ra bộ dao động định thời
T1CKI: ngõ vào xung clock bên ngoài của bộ định thời Timer1
T1OSI: ngõ vào bộ dao động định thời
CCP2: ngõ vào Capture2, ngõ ra
CCP1: ngõ vào Capture1, ngõ ra
SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của SPI
SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của I2C
19 RD0/PSP0 RD0: xuất, nhập số
PSP0: dữ liệu cổng tới song song
28, 29, 30 RD1 7/PSP1 7 – – Tương tự chân số 19
SDI: nguồn dữ liệu vào SPI
SDA: nhập xuất dữ liệu I2C
24 RC5/SDO RC5: xuất, nhập số
SDO: dữ liệu ra SPI
Thiết kế k hóa điện tử sử dụng PIC16F877A
TX: truyền bất đồng bộ USART CK: xung đồng bộ USART
RX: nhận bất đồng bộ USART
DT: dữ liệu đồng bộ USART
33 RB0/INT RB0: xuất, nhập số
INT: nhận tín hiệu ngắt ngoài
34, 35, 37, 38 RB1, RB2, RB4, RB5 Xuất, nhập số
PGM: cho phép lập trình điện áp thấp
PGC: mạch gỡ rối và xung clock lập trình
PGD: mạch gỡ rối và dữ liệu lập trình
Bảng 2-1 Bảng tổng hợp chân và chức năng các chân của PIC16F877A
Dữ liệu EEPROM và bộ nhớ FLASH cho phép đọc và ghi trong quá trình hoạt động bình thường Bộ nhớ này được định địa chỉ gián tiếp qua các thanh ghi đặc biệt, không được thiết lập trực tiếp trong không gian file thanh ghi Các thanh ghi đặc biệt này đóng vai trò quan trọng trong việc quản lý và truy cập dữ liệu.
Thiết kế k hóa điện tử sử dụng PIC16F877A
Để đọc dữ liệu từ bộ nhớ EEPROM, trước tiên cần ghi địa chỉ vào thanh ghi EEADR, sau đó xóa bit điều khiển EEPGD trong thanh ghi EECON1, thiết lập bit RD để bắt đầu quá trình đọc, và cuối cùng là đọc dữ liệu từ thanh ghi EEPROM Để đơn giản hóa, trình biên dịch CCS và MikroC đã cung cấp thư viện sẵn có cho chế độ này, do đó, việc đọc EEPROM chỉ cần gọi hàm tương ứng.
Hàm Read_eeprom(address) cho phép đọc dữ liệu từ địa chỉ thanh ghi EEPROM, trong đó address là địa chỉ cần truy cập Với vi điều khiển PIC16F877A có dung lượng bộ nhớ 256 bytes, các địa chỉ hợp lệ nằm trong khoảng từ 00H đến FFH Để ghi dữ liệu vào bộ nhớ EEPROM, cần ghi địa chỉ vào thanh ghi EEADR và dữ liệu vào thanh ghi EEDATA.
Cũng tương tự với đọc EEPROM, để thực hiện ghi dữ liệu tr ng trình biên dịch o CCS thì chỉ cần gọi hàm:
Write_eeprom(address, value) Trong đó, address là địa chỉ thanh ghi EEPROM cần ghi vào, value là giá trị cần ghi
Thiết kế k hóa điện tử sử dụng PIC16F877A
K HỐI NGÕ VÀO
Ma trận phím, hay còn gọi là keypad, là một thiết bị hữu ích giúp người dùng tương tác hiệu quả với các dự án và sản phẩm Keypad không chỉ cho phép điều hướng mà còn hỗ trợ nhập mật khẩu và điều khiển các thiết bị khác.
Các nút nhấn trên bàn phím được sắp xếp theo hàng và cột Hiện nay phổ biến nhất là bàn phím 3x4 (4 hàng 3 cột) và 4x4 (4 hàng 4 cột)
Ma trận phím hoạt động dựa trên nguyên lý tương tự như nút nhấn Mỗi nút nhấn trong cùng một hàng được kết nối với nhau qua một đường dẫn điện, trong khi mỗi nút nhấn cũng kết nối với nút nhấn khác trong cùng một cột bằng một đường dẫn điện.
Hình 2-5.Hình ảnh thực tế của keypad 4x4 và 3x4
Thiết kế k hóa điện tử sử dụng PIC16F877A o Chức năng các phím trong đề tài:
- Các phím được đặt mật khẩu bao gồm: 0 – 9 và ‘*’, ‘#’.
- Phím ‘A’ dùng để thực hiện việc xác nhận mật khẩu
- Phím ‘B’ dùng để khóa cửa.
- Phím ‘C’ dùng để thực hiện chức năng thay đổi mật khẩu
- Phím ‘D’ dùng để thực hiện chức năng xóa kí tự khi nhập sai
2.3.2 Chip thời gian thực DS1307 (RTC DS1307)
The DS1307 is a Real Time Clock (RTC) integrated circuit that keeps track of absolute time, including the day, date, month, year, hour, minute, and second Developed by Dallas Semiconductor, the DS1307 is essential for applications requiring accurate timekeeping.
Hình 2-6 Sơ đồ nguyên lí ma trận phím 4x4
Thiết kế k hóa điện tử sử dụng PIC16F877A
DS1307 có 64 thanh ghi 8 bit, trong đó chỉ 8 thanh ghi phục vụ chức năng đồng hồ, bao gồm 7 thanh ghi cho giây, phút, giờ, ngày, thứ, tháng và năm Thanh ghi thứ 8 là thanh ghi CONTROL để điều khiển xung ra, nhưng không cần thiết sử dụng 56 thanh ghi còn lại có thể được sử dụng như RAM DS1307 giao tiếp với vi điều khiển qua chuẩn I2C.
Chân và chức năng các chân của DS1307:
Hình 2-7 Địa chỉ thanh ghi DS1307
Hình 2-8 Cấu hình chân DS1307
Thiết kế k hóa điện tử sử dụng PIC16F877A
- X1 và X2: 2 chân kết nối với thạch anh dao động với tần số 32.768kHz
- Vbat: kết nối với nguồn 3V nuôi chip
- GND: nối đất chung cho pin 3V và nguồn chính
- Vcc: nguồn cấp chính cho chip, thường là nguồn 5V
- SQW/OUT: ngõ phụ tạo xung vuông, chân này hầu như không liên quan đến chức năng của DS1307 nên thường ta sẽ bỏ trống chân này
- SCL, SDA: 2 chân kết nối chân xung và chân dữ liệu khi giao tiếp I2C
DS1307 giao tiếp với vi điều khiển thông qua giao thức I2C, một phương thức truyền dữ liệu sử dụng 2 dây Giao thức I2C cho phép một vi điều khiển kết nối và giao tiếp với nhiều thiết bị khác nhau.
2 dây để truyền dữ liệu đó là:
- Serial Data (SDA): đường truyền gửi và nhận dữ liệu
- Serial Clock (SCL): đường truyền xung nhịp
I2C là một giao thức truyền thông nối tiếp, cho phép dữ liệu được truyền đi từng bit qua đường SDA duy nhất Để bắt đầu giao tiếp I2C, cần khởi tạo bằng cách tạo xung tín hiệu trên đường SDA.
Sau khi SCL xuống 0, cả vi điều khiển và các thiết bị khác đã sẵn sàng để giao tiếp Vi điều khiển cần gửi 7 bit địa chỉ của thiết bị cần điều khiển, trong trường hợp này là DS1307 với địa chỉ 0xD0, cùng với 1 bit để xác định chế độ đọc (bit 0) hoặc ghi (bit 1) Khi quá trình giao tiếp hoàn tất, vi điều khiển sẽ tiếp tục thực hiện các thao tác cần thiết.
Thiết kế khối điện tử với PIC16F877A sẽ gửi 8 bit địa chỉ của các thanh ghi cần ghi vào thiết bị Các thanh ghi này bao gồm thứ, ngày, tháng, năm, giờ, phút và giây của DS1307 Cuối cùng, dữ liệu cần ghi sẽ được truyền đi.
2.4.1 Tổng quan về màn hình LCD16x2
Màn hình LCD là linh kiện phổ biến trong lập trình vi điều khiển nhờ vào khả năng hiển thị đa dạng ký tự theo mã ASCII, hỗ trợ nhiều giao thức khác nhau, dễ sử dụng và có giá thành hợp lý.
Hình 2-10 Tổ chức thanh ghi của DS1307
Hình 2-11 Màn hình LCD16x2 ngoài thực tế
Thiết kế k hóa điện tử sử dụng PIC16F877A
STT Ký hiệu chân Mô tả chức năng
1 VSS Chân nối đất của LCD
2 VDD Chân cấp nguồn 5V cho LCD
3 VEE Điều chỉnh độ tương phản
4 RS Chân chọn thanh ghi
5 RW Chân lựa chọn chế độ đọc/ghi của LCD
6 ENABLE Cho phép hiển thị lên LCD
7 Anode Cấp nguồn đèn nền LCD
8 Kathode Nối đất của đèn nền LCD
Bảng 2-2 Thông số kỹ thuật của LCD 16x2 2.4.2 Giao tiếp LCD với vi điều khiển PIC16F877A
Trong các trình biên dịch như CCS, thư viện cho LCD đã được tích hợp sẵn, giúp việc lập trình trở nên đơn giản hơn Người dùng chỉ cần gọi thư viện LCD thông qua một câu lệnh để sử dụng.
#include sau đó định nghĩa các chân LCD được kết nối với vi điều khiển Một vài câu lệnh giao tiếp với màn hình LCD:
Lcd_init(): đây là câu lệnh bắt buộc dùng để khởi tạo và bắt đầu cho LCD hoạt động
Lệnh lcd_gotoxy(x,y) được sử dụng để xác định vị trí hiển thị trên màn hình LCD, với x là vị trí ô và y là dòng; ví dụ, lcd_gotoxy(5,2) sẽ trỏ đến ô thứ 5 của dòng 2 Hàm Lcd_putc() có nhiệm vụ gửi dữ liệu để hiển thị trên LCD, dữ liệu này có thể là ký tự được đặt trong dấu nháy đơn ‘ ’ hoặc chuỗi ký tự trong nháy kép “ ”.
Thiết kế k hóa điện tử sử dụng PIC16F877A
K HỐI CHẤP HÀNH
Trong bài viết này, động cơ Servo được sử dụng để điều khiển chức năng đóng và mở cửa Động cơ Servo có khả năng quay trong khoảng từ 0 đến 180 độ, cho phép lập trình để điều chỉnh góc quay Cụ thể, góc quay 0 độ tương ứng với trạng thái đóng cửa, trong khi góc quay 90 độ đại diện cho trạng thái mở cửa.
Thiết kế khối điều khiển điện tử với vi điều khiển PIC16F877A sử dụng động cơ servo thông qua phương pháp điều rộng xung (PWM) với tần số 5kHz và chu kỳ 20ms Để điều khiển góc quay của động cơ, chỉ cần cung cấp xung với tỷ lệ Duty cycle phù hợp với góc quay mong muốn, sau đó ngừng cung cấp xung trong khoảng thời gian còn lại của chu kỳ 20ms.
Động cơ được trang bị ba dây màu cam, nâu và đỏ, mỗi dây có chức năng riêng biệt: dây màu cam kết nối với vi điều khiển, dây màu đỏ cung cấp nguồn 5V và dây màu nâu được sử dụng để nối đất.
Hình 2-13 Điều khiển động cơ Servo bằng điều rộng xung
Thiết kế k hóa điện tử sử dụng PIC16F877A
Do loa buzzer chỉ có 2 chân nên ta phải sử dụng transistor để có tác dụng như một công tắc để điều khiển và cho phép loa hoạt động.
Nhiệm vụ chính của khối này là thông báo khi mở, đóng cửa Báo động nhẹ khi nhập sai mật khẩu và báo động lớn khi nhập sai 3 lần
Hình 2- 14 Sơ đồ nguyên lý loa buzzer
Hình 2- 15 Loa buzzer ngoài thực tế
Thiết kế k hóa điện tử sử dụng PIC16F877A
XÂY DỰNG CHƯƠNG TRÌNH VÀ MÔ PHỎNG
S Ơ ĐỒ KHỐI CỦA HỆ THỐNG
Tổng quan sơ đồ khối của hệ thống:
- Khối nguồn sẽ cấp nguồn để các khối, các linh kiện khác hoạt động
Khối ngõ vào bao gồm một bàn phím 4x4 và module DS1307, có nhiệm vụ cung cấp dữ liệu đầu vào như mật khẩu và thời gian cho khối điều khiển trung tâm để xử lý.
- Khối điều khiển trung tâm (PIC16F877A) có nhiệm vụ thực thi chương trình, dữ liệu đầu vào để điều khiển các thiết bị ngoại vi
- Khối chấp hành (Servo, buzzer) sẽ hoạt động theo sự điều khiển của khối điều khiển trung tâm
Khối hiển thị LCD sẽ trình bày các thông báo dựa trên dữ liệu được gửi từ khối điều khiển, giúp người dùng theo dõi thông tin một cách trực quan và dễ dàng.
Thiết kế k hóa điện tử sử dụng PIC16F877A
N GUYÊN LÍ HOẠT ĐỘNG VÀ MÔ TẢ QUÁ TRÌNH HOẠT ĐỘNG
Khi cấp nguồn 5V cho mạch, vi điều khiển sẽ bắt đầu hoạt động với xung 20MHz từ thạch anh LCD hiển thị thời gian thực từ module DS1307, trong khi vi điều khiển quét liên tục các phím bấm của keypad Người dùng có thể nhấn phím bất kỳ để thoát khỏi chế độ hiển thị thời gian thực, sau đó LCD sẽ yêu cầu nhập mật khẩu với thông báo “ENTER PASSWORD”.
Khi người dùng nhập đúng mật khẩu và nhấn phím 'A' để xác nhận, servo sẽ quay 90 độ, biểu thị cho việc cửa đã được mở.
Hình 3-1 Sơ đồ nguyên lí của hệ thống
Trong thiết kế khóa điện tử sử dụng PIC16F877A, khi người dùng nhấn phím 'B', servo sẽ quay ngược lại, biểu thị cho việc đóng cửa Nếu nhấn phím 'C', hệ thống sẽ bắt đầu quá trình đổi mật khẩu Màn hình LCD sẽ hiển thị yêu cầu nhập mật khẩu mới, và sau khi nhập xong, người dùng cần nhấn 'A' để xác nhận LCD sẽ tiếp tục yêu cầu nhập lại mật khẩu để xác thực Nếu mật khẩu nhập lại sai, hệ thống sẽ thông báo đổi mật khẩu không thành công Ngược lại, nếu nhập lại đúng, LCD sẽ hiển thị “SUCCESS!!”, xác nhận rằng mật khẩu mới đã được lưu thành công vào vi điều khiển.
Khi người dùng nhập sai mật khẩu, buzzer sẽ phát ra âm thanh nhẹ nhờ tín hiệu tích cực tại chân B của transistor, kích hoạt buzzer và hiển thị thông báo trên LCD.
Khi nhập sai mật khẩu hơn 3 lần, hệ thống sẽ kích hoạt chế độ báo động, với âm thanh cảnh báo lớn trong 10 giây và hiển thị thông báo trên màn hình LCD Lưu ý rằng trong trường hợp này, servo sẽ không hoạt động.
“WARNING!!!” Sau đó hệ thống sẽ quay trở lại trạng thái ban đầu
Thiết kế k hóa điện tử sử dụng PIC16F877A
L ƯU ĐỒ GIẢI THUẬT CỦA HỆ THỐNG
Hình 3-2 Lưu đồ giải thuật của hệ thống
Thiết kế k hóa điện tử sử dụng PIC16F877A
M Ô PHỎNG VÀ GIỚI THIỆU PHẦN MỀM ROTEUS P
Trước khi tiến hành thi công phần cứng thực tế, tôi thực hiện mô phỏng để dễ dàng quan sát và chỉnh sửa, nhằm tránh những lỗi có thể gây hỏng linh kiện Trong nghiên cứu này, tôi sử dụng phần mềm Proteus cho quá trình mô phỏng.
Proteus là phần mềm mô phỏng mạch điện tử nổi tiếng, dễ sử dụng, phù hợp cho cả người mới bắt đầu và những nghiên cứu sâu hơn Phần mềm này cung cấp nhiều tính năng hữu ích như thiết kế mạch nguyên lý, mô phỏng hoạt động và thiết kế mạch in, giúp người dùng thực hiện các dự án điện tử một cách hiệu quả.
Hình 3-3 Giao diện phần mềm Proteus
Thiết kế k hóa điện tử sử dụng PIC16F877A
3.6 Giới thiệu trình biên dịch CCS
Hiện nay, có nhiều trình biên dịch cho việc lập trình PIC bằng ngôn ngữ C, trong đó Mikro C, MPLAB XC8 và PIC CCS là những lựa chọn phổ biến Trong đồ án này, tôi chọn sử dụng PIC CCS do tính phổ biến của nó; phần mềm này thường được giảng dạy tại các trường đại học và rất dễ sử dụng, đặc biệt quen thuộc với những người đã học lập trình C.
CCS cung cấp nhiều hàm và hỗ trợ nhiều thư viện linh kiện, thiết bị ngoại vi, phục vụ đa dạng mục đích sử dụng Người dùng có thể dễ dàng tích hợp các thư viện thiết bị vào phần mềm.
CCS tối ưu hóa quy trình làm việc, cho phép người dùng thiết lập các chức năng như ngắt Timer, cấu hình Drivers và cấu hình LCD ngay trong quá trình tạo dự án, giúp chương trình tự động tạo ra các lệnh đã được thiết lập trước đó.
Hình 3-4 Sơ đồ mạch mô phỏng
Thiết kế k hóa điện tử sử dụng PIC16F877A
Hình 3-5 Giao diện phần mềm CCS
Thiết kế k hóa điện tử sử dụng PIC16F877A
THIẾT KẾ PHẦN CỨNG
T ỔNG QUAN PHẦN MỀM E ASY EDA-P RO
EasyEDA (Easy Electronics Design Automation) là công cụ thiết kế mạch nguyên lý và mạch in hoàn toàn miễn phí, nổi bật với tính năng dễ sử dụng và hiệu quả Công cụ này cho phép xuất file PDF, PNG, và truy cập hàng ngàn thư viện công cộng để lấy các model có sẵn Ngoài ra, EasyEDA hỗ trợ chia sẻ thiết kế công khai hoặc riêng tư, cũng như chuyển đổi schematic sang PCB một cách dễ dàng Nhờ vào những tính năng ưu việt này, tôi đã chọn EasyEDA để thực hiện thiết kế PCB trong đề tài này.
Hình 4-1 Biểu tượng phần mềm EasyEDA
Thiết kế k hóa điện tử sử dụng PIC16F877A
Hình 4-2 Giao diện phần mềm EasyEDA
Thiết kế k hóa điện tử sử dụng PIC16F877A
T HIẾT KẾ MẠCH IN
Hình 4-3 Sơ đồ mạch in
Hình 4-4 Sơ đồ mạch in khi xuất file PDF
Thiết kế k hóa điện tử sử dụng PIC16F877A
T HI CÔNG PHẦN CỨNG
Sau khi thiết kế xong và đã có bản vẽ, bước tiếp theo đó là thi công phần cứng. Các bước thực hiện như sau:
- In mạch bằng giấy in nhiệt chuyên in mạch điện tử
- Ủi mạch lên bo đồng
- Rửa mạch bằng hóa chất
- Khoan vị trí các chân linh kiện
- Cuối cùng là hàn linh kiện
Hình 4-5 Mặt trên của mạch sau khi hoàn thành
Thiết kế k hóa điện tử sử dụng PIC16F877A
Đ ÁNH GIÁ VÀ NHẬN XÉT
Sau khi hoàn thành thi công và kiểm tra mô hình, kết quả cho thấy mô hình hoạt động ổn định và đáp ứng đầy đủ các yêu cầu cũng như chức năng đã đề ra.
Mô hình hiện tại chỉ phục vụ cho mục đích học tập và nghiên cứu, do đó hiệu năng chưa đạt yêu cầu cao Công suất của mạch còn hạn chế và các linh kiện thiết bị chưa đảm bảo độ chắc chắn Cần cấp nguồn điện lớn hơn và thay đổi cơ chế khóa bằng thiết bị khác thay cho servo để tăng cường độ an toàn và độ bền cho mô hình.
Hình 4-6 Mặt dưới của mạch sau khi hoàn thành
Thiết kế k hóa điện tử sử dụng PIC16F877A