DỰ ÁN KHÓA CỬA ĐƯỢC MÃ HÓA
Chuẩn bị bởi: Ahmet Suat BERDİBEK và Servet GÜNOĞLU
Mục tiêu: Để thiết kế một mạch bằng cách sử dụng PIC16F877, LCD và Bàn phím và để kiểm tra hoạt động của nó với một chương trình.
Vi điều khiển thông tin lý thuyết: Vi điều khiển; các thành phần cơ bản như đầu vào-đầu ra và bộ nhớ mà một máy tính phải có là bộ vi xử lý tiên tiến được sản xuất trên một chip đơn.
Bộ vi điều khiển PIC16F877: Những vi điều khiển này dựa trên kiến trúc Harvard và kế thừa các tính năng của kiến trúc này.
Các tính năng của PIC 16F877:
Bộ nhớ riêng biệt cho chương trình và dữ liệu.
Đường dẫn dữ liệu là 8 bit.
Bộ nhớ chương trình là 8KB x 14 bit.
Nó có 35 lệnh.
Đầu vào / đầu ra hiện tại
25mA Cấu trúc bên ngoài 40 chân.
Nó có bộ nhớ dữ liệu 368 x 8 byte.
Nó có bộ nhớ dữ liệu EEPROM 256 x 8 byte dữ liệu.
Bộ nhớ riêng biệt cho chương trình và dữ liệu.
Đường dẫn dữ liệu là 8 bit.
Bộ nhớ chương trình là 8KB x 14 bit.
Nó có 35 lệnh.
Đầu vào / đầu ra hiện tại
25mA Cấu trúc bên ngoài 40 chân.
Nó có bộ nhớ dữ liệu 368 x 8 byte.
Nó có bộ nhớ dữ liệu EEPROM 256 x 8 byte dữ liệu.
Màn hình LCD: Với màn hình 7 đoạn, không thể lấy các ký tự, chữ cái, biển báo khác ngoại trừ số. Màn hình LCD được sử dụng cho việc này. Các màn hình LCD được sản xuất và bán cùng với các bộ tích hợp sàng lọc sao cho thông tin được ghi trên màn hình, chẳng hạn như các thẻ video được sử dụng trong máy tính, có thể được nhìn thấy liên tục. Biết chính xác các thuộc tính của tích hợp này có nghĩa là kiểm soát màn hình theo mọi hướng.
Một tích hợp trình điều khiển LCD thường được sử dụng là HD44780 được tích hợp bởi Hitachi . Có thể kiểm soát tất cả các màn hình trong đó tích hợp này được sử dụng với cùng một logic. Sự thay đổi duy nhất là biết có bao nhiêu hàng và chữ số mà LCD có.
Bàn phím: Trong các hệ thống vi xử lý, thông tin đầu vào thường được nhập thông qua bàn phím. Nó dễ dàng hơn để tìm ra chìa khóa nào được nhấn khi bàn phím được tạo thành hàng và cột, đầu ra được định nghĩa là đầu ra, đầu vào cột.
Các yếu tố phụ trợ: Đây là; Đây là những yếu tố giúp nhiệm vụ hoạt động. Các yếu tố dao động và tinh thể tạo ra sóng vuông và xung đồng hồ, điện trở, tụ điện và diode điốt là một trong những yếu tố phụ trợ này.
Dự án phần mềm hex Mã hóa khóa cửa dự án
Tệp tải xuống danh sách LINK (ở định dạng TXT) link-4156.zip mật khẩu-pass: 320volt.com
Phần mềm Asm
; PicBasic Pro Compiler 2.40, (c) 1998, 2001 microEngineering Labs, Inc. Tất cả các quyền. PM_USED EQU 1 BAO GỒM "16F877.INC" ; Xác định câu lệnh. #define CODE_SIZE 8 #define LCD_DREG PORTC #define LCD_DBIT 0 #define LCD_BITS 4 #define LCD_RSREG PORTC #define LCD_RSBIT 6 #define LCD_EREG PORTC #define LCD_EBIT 7 #define LCD_LINES 2 RAM_START EQU 00020 giờ RAM_END EQU 001EFh RAM_BANKS EQU 00004giờ BANK0_START EQU 00020h BANK0_END EQU 0007Fh BANK1_START EQU 000A0 giờ BANK1_END EQU 000EFh BANK2_START EQU 00110h BANK2_END EQU 0016Fh BANK3_START EQU 00190 giờ BANK3_END EQU 001EFh EEPROM_START EQU 02100h EEPROM_END EQU 021FFh R0 EQU RAM_START + 000 giờ R1 EQU RAM_START + 002 giờ R2 EQU RAM_START + 004 giờ R3 EQU RAM_START + 006 giờ R4 EQU RAM_START + 008 giờ R5 EQU RAM_START + 00Ah R6 EQU RAM_START + 00Ch R7 EQU RAM_START + 00Eh R8 EQU RAM_START + 010 giờ T1 EQU RAM_START + 012 giờ T2 EQU RAM_START + 014 giờ FLAGS EQU RAM_START + 016 giờ GOP EQU RAM_START + 017 giờ RM1 EQU RAM_START + 018 giờ RM2 EQU RAM_START + 019 giờ RR1 EQU RAM_START + 01Ah RR2 EQU RAM_START + 01Bh _SIFRE EQU RAM_START + 01Ch _GENELADR EQU RAM_START + 021 giờ _GIR_S_A_B EQU RAM_START + 022 giờ _H_CODE EQU RAM_START + 023 giờ _I EQU RAM_START + 024 giờ _J EQU RAM_START + 025 giờ _CONTROL EQU RAM_START + 026giờ _SFR_S EQU RAM_START + 027 giờ _SS_KOD EQU RAM_START + 028 giờ _UMUMI EQU RAM_START + 029 giờ _PORTL EQU PORTB _PORTH EQU PORTC _TRISL EQU TRISB _TRISH EQU TRISC #define _OPTION_REG_7 OPTION_REG, 007 giờ #define _INTCON_0 INTCON, 000 giờ #define _STATUS_2 STATUS, 002 giờ #define _PORTB_4 PORTB, 004 giờ #define _PORTB_5 PORTB, 005 giờ #define _PORTB_6 PORTB, 006 giờ #define _KONTROL_7_CONTROL, 007 giờ #define _PORTE_0 PORTE, 000 giờ ; Hằng số. _KULL_S_ADR EQU 00000 giờ ; Dữ liệu EEPROM. ORG EEPROM_START ORG EEPROM_START + 000 giờ DE 001h DE 007h DE 000h DE 006 giờ DE 001h BAO GỒM "SIFRE2 ~ 1.MAC" BAO GỒM "PBPPIC14.LIB" ASM? DEVICE WDT_OFF Endas? ONINT? LL SHOCK, L00001 NHÃN CƠ BẢN ICALL? L L00001 MOVE? CB 000h, TRISE ICALL? L L00001 MOVE? CB 070h, TRISB ICALL? L L00001 MOVE? CB 007h, ADCON1 ICALL? L L00001 MOVE? CB 00Fh, PORTB ICALL? L L00001 MOVE? CT 001h, _OPTION_REG_7 ICALL? L L00001 MOVE? CB 088h, INTCON ICALL? L L00001 MOVE? CB 000h, _ CONTROL LABEL? _EN_B_DON ICALL? L L00001 PAUSE? C 001F4h ICALL? L L00001 LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 02Dh LCDOUT? C 02Dh LCDOUT? C 020h LCDOUT? C 078 giờ LCDOUT? C 078 giờ LCDOUT? C 020h LCDOUT? C 02Dh LCDOUT? C 02Dh ICALL? L L00001 LCDOUT? C 0FEh LCDOUT? C 0C0h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 02Dh LCDOUT? C 02Dh LCDOUT? C 020h LCDOUT? C 078 giờ LCDOUT? C 078 giờ LCDOUT? C 020h LCDOUT? C 02Dh LCDOUT? C 02Dh ICALL? L L00001 PAUSE? C 001F4h LABEL ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ASM? nope Endas? ICALL? L L00001 MOVE? CB 088h, INTCON ICALL? L L00001 GOTO? L _DON DISABLE? GHI NHÃN PAUSE? C 00Fh MOVE? CB 000h, _I MOVE? CT 000h, _INTCON_0 LABEL LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 053h LCDOUT? C 069h LCDOUT? C 066h LCDOUT? C 072h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah LCDOUT? C 069h LCDOUT? C 0FEh LCDOUT? C 0C0h LCDOUT? C 047h LCDOUT? C 069h LCDOUT? C 072h LCDOUT? C 069h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah LABEL? L _KLAVYE_TRA MOVE? CB 00Fh, PORTB GOSUB? L _ACIK_TEST LABEL PAUSE? C 014h XOR? BCB PORTB, 00Fh, _UMUMI CMPEQ? TCL _STATUS_2, 001h, _TARA PAUSE? C 014h XOR? BCB PORTB, 070h, _UMUMI CMPEQ? TCL _STATUS_2, 001h, _TARA LABEL? L _BUTON_ARA MOVE? CB 001h, PORTB CMPNE? TCL _PORTB_4, 000h, L00003 CMPNE? TCL _PORTB_5, 000 giờ, L00005 CMPNE? TCL _PORTB_6, 000 giờ, L00007 GOTO? L _IKI_S LABEL? L L00007 LABEL? L L00005 LABEL? L L00003 GOTO? L _BU_S LABEL? L _IKI_S MOVE? CB 002h, PORTB CMPNE? TCL _PORTB_4, 000 giờ, L00009 CMPNE? TCL _PORTB_5, 000 giờ, L00011 CMPNE? TCL _PORTB_6, 000 giờ, L00013 GOTO? L _UC_S LABEL? L L00013 LABEL? L L00011 LABEL? L L00009 GOTO? L _BU_S LABEL? L_UC_S MOVE? CB 004h, PORTB CMPNE? TCL _PORTB_4, 000 giờ, L00015 CMPNE? TCL _PORTB_5, 000 giờ, L00017 CMPNE? TCL _PORTB_6, 000 giờ, L00019 GOTO? L _DORT_S LABEL? L L00019 LABEL? L L00017 LABEL? L L00015 GOTO? L _BU_S LABEL? L _DORT_S MOVE? CB 008 giờ, PORTB CMPNE? TCL _PORTB_4, 000 giờ, L00021 CMPNE? TCL _PORTB_5, 000 giờ, L00023 CMPNE? TCL _PORTB_6, 000 giờ, L00025 GOTO? L _BUTON_ARA LABEL? L L00025 LABEL? L L00023 LABEL? L L00021 GOTO? L _BU_S LABEL? L _BU_S MOVE? BB PORTB, _SS_COD MOVE? CB 000h, _H_COD LABEL_H_BUL GOSUB? L _TABLO CMPEQ? BBL _UMUMI, _SS_KOD, L00027 THÊM? BCB _H_KOD, 001h, _H_COD CMPLT? BCL_H_KOD, 00Ah, L00029 MOVE? CB 000h, _H_COD GOTO? L _BUTON_ARA LABEL? L L00029 GOTO? L _H_BUL LABEL? L L00027 LABEL L_DOGRU CMPGT? BCL_H_KOD, 009 giờ, _KLAVYE_TRA AIN? BBB _H_KOD, _SIFRE, _I THÊM? BCB _I, 001h, _I CMPNE? BCL_I, 001h, L00031 LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 02Ah GOTO? L L00032 LABEL? L L00031 LCDOUT? C 02Ah LABEL? L L00032 CMPNE? BCL_I, 005 giờ, L00033 MOVE? CB 000h, _H_COD MOVE? CB 000h, _I CMPNE? TCL_KONTROL_7, 000 giờ, L00035 GOTO? L _S_TEST GOTO? L L00036 LABEL? L L00035 GOTO? L _S_DEGISTIR_DVM LABEL? L L00036 LABEL? L L00033 MOVE? CB 000h, _H_COD GOTO? L _KLAVYE_TRA LABEL? L _S_TEST MOVE? CB 000h, _J REPEAT LABEL THÊM? CBW _KULL_S_ADR, _J, T1 ĐỌC? WB T1, _UMUMI AOUT? BBB _SIFRE, _J, T1 CMPNE? BBL T1, _UMUMI, L00037 THÊM? BCB _J, 001h, _J CMPNE? BCL_J, 005 giờ, L00039 GOTO L _G_KABUL GOTO? L L00040 LABEL? L L00039 GOTO? L_TEKRR LABEL? L L00040 LABEL? L L00037 GOTO? L _IPTAL LABEL? L _IPTAL LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 059h LCDOUT? C 041giờ LCDOUT? C 04Eh LCDOUT? C 04Ch LCDOUT? C 049h LCDOUT? C 053h LCDOUT? C 020h LCDOUT? C 053h LCDOUT? C 069h LCDOUT? C 066h LCDOUT? C 072h LCDOUT? C 065h LCDOUT? C 0FEh LCDOUT? C 0C0h LCDOUT? C 054h LCDOUT? C 045h LCDOUT? C 04Bh LCDOUT? C 052h LCDOUT? C 041giờ LCDOUT? C 052h LCDOUT? C 020h LCDOUT? C 044h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 079h LCDOUT? C 069h LCDOUT? C 06Eh PAUSE? C 00BB8h GOTO? L _CIKIS LABEL? L _ACIK_TEST PAUSE? C 00Ah CMPNE? TCL _PORTB_4, 000 giờ, L00041 CMPNE? TCL _PORTB_5, 000 giờ, L00043 CMPNE? TCL _PORTB_6, 000 giờ, L00045 HÃY TRẢ LẠI? LABEL? L L00045 LABEL? L L00043 LABEL? L L00041 GOTO? L _ACIK_TEST LABEL_G_CLOSE LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 054h LCDOUT? C 065h LCDOUT? C 072h LCDOUT? C 063h LCDOUT? C 069h LCDOUT? C 068h LCDOUT? C 069h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah LCDOUT? C 028h LCDOUT? C 030h LCDOUT? C 02Ch LCDOUT? C 031h LCDOUT? C 029h MOVE? CB 00Fh, PORTB TẠM DỪNG? C 007D0h LABEL? L _TRC_TST CMPNE? TCL _PORTB_4, 000 giờ, L00047 CMPNE? TCL _PORTB_5, 000 giờ, L00049 GOTO? L _TRC_TST GOTO? L L00050 LABEL? L L00049 GOTO? L _S_DEGISTIR LABEL? L L00050 GOTO? L L00048 LABEL? L L00047 GOTO? L _KILIT_AC LABEL? L L00048 LABEL_L_KILIT_AC LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 047h LCDOUT? C 069h LCDOUT? C 072h LCDOUT? C 069h LCDOUT? C 073 giờ LCDOUT? C 020h LCDOUT? C 047h LCDOUT? C 065h LCDOUT? C 063h LCDOUT? C 065h LCDOUT? C 072h LCDOUT? C 06Ch LCDOUT? C 069h PAUSE? C 003E8h MOVE? CT 001h, _PORTE_0 LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 069h LCDOUT? C 079h LCDOUT? C 069h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 047h LCDOUT? C 075h LCDOUT? C 06Eh LCDOUT? C 06Ch LCDOUT? C 065h LCDOUT? C 072h PAUSE? C 00FA0h MOVE? CT 000h, _PORTE_0 GOTO? L _CIKIS LABEL? L _S_DEGISTIR LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 059h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 020h LCDOUT? C 053h LCDOUT? C 069h LCDOUT? C 066h LCDOUT? C 072h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah LCDOUT? C 069h LCDOUT? C 0FEh LCDOUT? C 0C0h LCDOUT? C 020h LCDOUT? C 020h LCDOUT? C 047h LCDOUT? C 069h LCDOUT? C 072h LCDOUT? C 069h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah MOVE? CT 001h, _KONTROL_7 PAUSE? C 001F4h GOTO? L _KLAVYE_TRA LABEL? L _S_DEGISTIR_DVM MOVE? CB 000h, _J LABEL? L L00051 CMPGT? BCL_J, 004 giờ, L00052 THÊM? CBW _KULL_S_ADR, _J, T1 AOUT? BBB _SIFRE, _J, T2 VIẾT? WB T1, T2 TIẾP THEO? BCL_J, 001h, L00051 LABEL? L L00052 LCDOUT? C 0FEh LCDOUT? C 001h LCDOUT? C 059h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 020h LCDOUT? C 053h LCDOUT? C 069h LCDOUT? C 066h LCDOUT? C 072h LCDOUT? C 065h LCDOUT? C 06Eh LCDOUT? C 069h LCDOUT? C 07Ah LCDOUT? C 0FEh LCDOUT? C 0C0h LCDOUT? C 04Bh LCDOUT? C 041giờ LCDOUT? C 059h LCDOUT? C 049h LCDOUT? C 054h LCDOUT? C 020h LCDOUT? C 045h LCDOUT? C 064h LCDOUT? C 069h LCDOUT? C 06Ch LCDOUT? C 064h LCDOUT? C 069h PAUSE? C 00BB8h LABEL? _CIKIS LCDOUT? C 0FEh LCDOUT? C 001h MOVE? CB 000h, _ CONTROL MOVE? CB 00Fh, PORTB MOVE? CB 000h, INTCON PAUSE? C 064h MOVE? CT 000h, _INTCON_0 RESUME? L _EN_B_DON LABEL L _TABLO LOOKUP? BCLB _H_KOD, 00Ch, L00002, _UMUMI LURET? C 011 giờ LURET? C 021h LURET? C 041giờ LURET? C 012h LURET? C 022h LURET? C 042h LURET? C 014h LURET? C 024h LURET? C 044h LURET? C 018 giờ LURET? C 028h LURET? C 048h LABEL? L L00002 HÃY TRẢ LẠI? ENABLE? ICALL? L L00001 END? END
Trong dự án của chúng tôi, các tài liệu được sử dụng là:
PIC16F877 Tích hợp với
2 x 16 Màn hình LCD
4 x 3 Keyboard
4 MHz dao động tinh thể
3 4.7 Kohm điện trở
1 Kohm điện trở 2,2
kháng 1 1 Kohm
1 x 330 trở ohm
1 27 pF tụ
1 led
in mạch Vật liệu
hàn
2 x 16 Màn hình LCD
4 x 3 Keyboard
4 MHz dao động tinh thể
3 4.7 Kohm điện trở
1 Kohm điện trở 2,2
kháng 1 1 Kohm
1 x 330 trở ohm
1 27 pF tụ
1 led
in mạch Vật liệu
hàn
Xây dựng dự án:
a-) Phần cứng
- Tất cả các yếu tố cần thiết đã được cung cấp.
- Các vật liệu thu được đã được kiểm tra độ bền.
- Sơ đồ mạch PCB cho PIC16F877 đã được gỡ bỏ.
- In trục lăn thích hợp được vẽ trong mạch.
- Hình dạng kết nối được loại bỏ bằng cách sử dụng nước và các vật liệu cần thiết.
- Quá trình hàn hoàn tất.
- Các yếu tố cần thiết được đặt trên các ổ cắm.
- Các kiểm tra gần đây nhất đã được thực hiện để hoàn thành các thông số kỹ thuật phần cứng.
- Các vật liệu thu được đã được kiểm tra độ bền.
- Sơ đồ mạch PCB cho PIC16F877 đã được gỡ bỏ.
- In trục lăn thích hợp được vẽ trong mạch.
- Hình dạng kết nối được loại bỏ bằng cách sử dụng nước và các vật liệu cần thiết.
- Quá trình hàn hoàn tất.
- Các yếu tố cần thiết được đặt trên các ổ cắm.
- Các kiểm tra gần đây nhất đã được thực hiện để hoàn thành các thông số kỹ thuật phần cứng.
b-) Phần mềm
In ấn sẽ được sử dụng sau khi mạch đã được tạo ra với các chương trình giúp đỡ cần thiết bằng văn bản trong trình soạn thảo văn bản cho PIC PIC hiểu dịch vào mã hex sử dụng biên tập MPASM MPLAB của chương trình PIC đã được cài đặt.
Hoạt động của dự án:
1. Đầu tiên, một điện áp 5V được áp dụng cho mạch. Sau đó, một thông báo xuất hiện trên màn hình LCD.
2. Nếu bất kỳ phím nào được nhấn trên bàn phím, thông báo "Nhập mật khẩu" sẽ xuất hiện trên màn hình. Nếu bạn nhập sai mật khẩu, nó sẽ đưa ra một thông báo lỗi rằng mật khẩu là sai. Nếu chúng tôi nhập mật khẩu chính xác, thông báo nhắc chúng tôi chọn 0 hoặc 1 được hiển thị. (Mật khẩu cho nhiệm vụ này là 22222.)
3. Nếu bạn bấm phím 0, cửa sẽ mở ra và thông báo "Good day" xuất hiện trên màn hình. Sau 4 giây, cánh cửa đóng lại.
4. Nếu bạn muốn thay đổi bảo vệ, bấm phím 1. Khi nhấn phím này, thông báo "Nhập mật khẩu mới" sẽ xuất hiện trên màn hình. Sau khi nhập thẻ mới, bạn sẽ thấy thông báo "Mật khẩu của bạn đã được lưu".
Post a Comment