DỰ ÁN KHÓA CỬA ĐƯỢC MÃ HÓA

DỰ ÁN KHÓA CỬA ĐƯỢC MÃ HÓA

Chuẩn bị bởi: Ahmet Suat BERDİBEK và Servet GÜNOĞLU
Cũng Profahmet Hocamızın LCD hiển thị với PIC16F877 Kết hợp Khóa rất hữu ích để nhìn vào dự án
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.
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.
Encrypted Door Lock Circuit Schematic
sifre_kap U-lock-dự án
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
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.
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

[disqus] [facebook] [blogger]

MKRdezign

Biểu mẫu liên hệ

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget
Hỗ trợ trực tuyến