1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

KHÓA số điện tử hiện thị LCD dùng 89c51 ( có code và mạch in )

33 2,3K 12

Đ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 33
Dung lượng 1,54 MB

Nội dung

có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho KHÓA số điện tử hiện thị LCD dùng 89c51 ...............................................................................................................................................................

Trang 1

KHÓA SỐ ĐIỆN TỬ

MỤC LỤC

DANH MỤC CÁC HÌNH VẼ

Trang 2

LCD Liquid Crystal Display

PIN Personalised Identity Number

Trang 3

CHƯƠNG 1: GIỚI THIỆU CHUNG

Mạch khóa số có chức năng chính là điều khiển các tiếp điểm relay, giao tiếp với người

sử dụng thông qua một bàn phím và hiển thị trên một màn hình LCD

Clear: Xóa mã số vừa nhập

Cancel: Hủy bỏ thao tác đang thực hiện

Màn hình LCD: hiển thị thông tin thao tác đang thực hiện với người sử dụng

Trang 4

Người dùng cũng có thể thay đổi mã số của hệ thống nhằm nâng cao tính bảo mật Để thực hiện, cần nhập vào mã số hiện tại.

Nếu nhập sai quá số lần cho phép, mạch cũng sẽ báo động tương tự trường hợp mở khóa

Nếu nhập đúng, người dùng có thể nhập vào mã mới thay cho mã cũ Hệ thống sẽ phát tiếng bíp khi mã đã được đổi hoặc đã nhập đúng mã cũ nhưng không muốn thay đổi mã mới

Trang 5

CHƯƠNG 2: CÁC LINH KIỆN CƠ BẢN

1 Vi điều khiển AT89C51:

Có khả năng điều khiển linh hoạt theo chương trình nạp vào Giúp giảm kích thước so với việc dùng IC, tăng độ ổn định của hệ thống

Thuộc họ vi xử lý 8051, có 32 cổng I/O, với 4KB Flash ROM

Hình 2.1 Vi điều khiển AT89C51

Hình 2.2 Sơ đồ chân AT89C51

Chức năng các chân:

Trang 6

- Port 0 (P0.0 – P0.7) có số chân từ 32 đến 39 Có 2 chức năng là port xuất nhập dữ liệu hoặc bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7).

- Port 1 (P1.0 – P1.7) có số chân từ 1 đến 8 Có chức năng xuất nhập dữ liệu

- Port 2 (P2.0 – P2.7) có số chân từ 21 đến 28 Có 2 chức năng là port xuất nhập dữ liệu hoặc bus địa chỉ byte thấp và bus dữ liệu đa hợp (A8 – A15)

- Port 3 (P3.0 – P3.7) có số chân từ 10 đến 17 Có 2 chức năng là port xuất nhập dữ liệu hoặc các tín hiệu điều khiển

- PSEN: Chân số 29, cho phép bộ nhớ chương trình

- ALE: Chân số 30, cho phép chốt địa chỉ

- EA: Chân số 31, truy xuất ngoài Phải được nối lên Vcc nếu sử dụng ROM nội hoặc nối GND nếu sử dụng ROM ngoài

- XTAL1 – 2: Chân 18, 19 Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock, cung cấp cho chip hoạt động

- RST: Chân số 9 Thiết lập lại trạng thái ban đầu cho hệ thống, là tín hiệu nhập, tích cực mức cao

- Vcc và GND số chân lần lượt là 40 và 20 Có chức năng cung cấp nguồn hoạt động cho chip Điện áp hoạt động tối đa 6,6 v và dòng tiêu thụ 20 mA

2 Bàn phím:

Bàn phím được tạo thành từ 16 nút nhấn 4 chân, nối với nhau theo dạng ma trận phím,

vì thế có thể giảm còn 8 kết nối tới vi điều khiển

Trang 8

Hình 2.5 LCD 16x2

Hình 2.6 Sơ đồ chân LCD 16x2

a) Chức năng các chân:

- Vcc và GND: Nguồn cung cấp cho LCD hoạt động

- VEE: Điều chỉnh độ tương phản

- RS: Chọn thanh ghi lệnh hoặc dữ liệu

- RW: Chọn thanh ghi đọc hoặc ghi dữ liệu

Trang 9

- E: Cho phép.

- DB0 – DB7: Các bit dữ liệu

b) Tập lệnh điều khiển LCD:

Trang 11

c) Giao tiếp giữa vi điều khiển và LCD:

LCD cần 7 hoặc 11 đường I/O để giao tiếp, phụ thuộc vào chế độ dữ liệu của LCD 4 hoặc 8 bit

Để thiết lập lệnh hoặc gửi dữ liệu, cần tạo 1 xung cạnh xuống trên trân E của LCD Ngược lại, để đọc dữ liệu hoặc trạng thái, cần tạo một xung cạnh lên trên chân E Mỗi khi LCD thực hiện một lệnh đều cần một khoảng thời gian để hoàn thành, phụ thuộc vào từng loại LCD, vì thế cần kiểm tra trạng thái bạn của LCD từ cờ báo bận (Busy Flag) hoặc tạo một thời gian delay đủ để hoàn thành lệnh

Để hiển thị ký tự tại một vị trí bất kỳ, cần đặt chế độ LCD nhận lệnh, và gửi địa chỉ con trỏ vị trí đó đến bus dữ liệu LCD Địa chỉ con trỏ:

80 81 82 … 8FC0 C1 C2 … CF

Trang 13

2 Sơ đồ nguyên lý:

a) Khối nguồn:

Ngõ vào là điện áp AC được giảm áp qua máy biến áp trước khi vào mạch Cầu diode

để chỉnh lưu dòng điện xoay chiều sang một chiều IC 7805 và 7812 tạo điện áp cố định cho ngõ ra mạch

Ngõ ra có hai mức điện áp là 5 và 12 v

Hình 3.1 Khối nguồn

b) Khối xử lý:

Trang 14

Hình 3.2 Khối xử lý

Mạch gồm:

- AT89C51 điều khiển hệ thống

- Port 0 nối với bàn phím 4x4

- Port 1 nối với bus dữ liệu LCD

- P2.0 nối với mạch đóng mở

- P2.1 nối với mạch âm thanh

- Mạch dao động thạch anh cho AT89C51 hoạt động

- Chân RST nối với mạch reset

Trang 16

Mạch hiển thị gồm LCD 16x2, biến trở chỉnh độ tương phản hiển thị và mạch nối LED đèn nền trên LCD.

e) Khối âm thanh:

Hình 3.5 Sơ đồ nguyên lý khối âm thanh

Gồm linh kiện chính là Buzzer và khuếch đại BJT giúp tín hiệu từ mạch xử lý đủ mạnh cho Buzzer tạo ra âm thanh

Trang 19

CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG VÀ THỰC TẾ

1 Kết quả mô phỏng:

Mô phỏng hệ thống trên Proteus:

Hình 4.1 Mạch mô phỏng

Đúng Báo động Sai

Quá số lần sai cho phép?

Sai

Sai

Đúng Đúng

Đúng

Sai Khóa

Về chương trình chính Hiện LCD

Sai

Đúng

Đúng Sai

Đếm số lần nhập sai

So sánh với mật mã cũ

Lưu vào bộ nhớ tạm thời

Nhập phím số?

Đặt chế độ hiển thị cho LCD, quét phím Chương trình đổi mật mã

Trang 20

Hình 4.2 Mô phỏng LCD

2 Mạch thực tế:

Hình 4.3 Mặt trên mạch thực tế

Trang 21

Hình 4.3 Mặt dưới mạch thực tế

Trang 22

- Dùng ROM ngoài lưu mật mã.

- Tăng độ bảo mật bằng cách thêm lớp bảo mật

- Cần chỉnh sửa chương trình cho hệ thống hoạt động ổn định hơn

- Thêm khối báo động thay cho việc dùng chung với mạch âm thanh

Trang 23

TÀI LIỆU THAM KHẢO

Nguyễn Tăng Cường, Phan Quốc Thắng (2004), Cấu trúc và lập trình họ vi điều khiển 8051, Nhà xuất bản khoa học và kỹ thuật

Trang 24

PHỤ LỤC

Mã nguồn chương trình:

Trang 25

MOV KEYVAL,#0MOV KEYPORT,#11111110B CALL READ_COL

JB FLAG_KEY,EXIT_SCANMOV KEYVAL,#4

MOV KEYPORT,#11111101B CALL READ_COL

JB FLAG_KEY,EXIT_SCANMOV KEYVAL,#8

MOV KEYPORT,#11111011B CALL READ_COL

JB FLAG_KEY,EXIT_SCANMOV KEYVAL,#12

MOV KEYPORT,#11110111B CALL READ_COL

EXIT_SCAN:

RETREAD_COL:

CLR FLAG_KEY

JB COL1,NEXTCOLJNB COL1,$

SETB FLAG_KEY

Trang 26

CLR RWSETB ENCLR ENRETWRITE_COM:

LCALL WAIT_LCDMOV DATABUS,ACLR RS

CLR RWSETB ENCLR ENRETWAIT_LCD:

MOV 23H, #150DDELAY: MOV 22H, #255DDJNZ 22H, $

DJNZ 23H, DELAYRET

CLEAR_LCD:

MOV A,#01HLCALL WRITE_COMRET

;===========MAIN==========

Trang 27

LCALL WRITE_COMSCAN_DATA:

LCALL SCAN_KEYCJNE A,#0AH,KEY_CLEARCJNE R1,#6,RE_PINLJMP CHECK_PINKEY_CLEAR:

CJNE A,#0BH,KEY_CANCELLJMP RE_PIN

KEY_CANCEL:

CJNE A,#0CH,KEY_UNLOCKLCALL CLEAR_LCDMOV A,#0CH

LCALL WRITE_COMLCALL WELCOMELJMP MAIN

KEY_UNLOCK:

CJNE A,#0DH,KEY_LOCKLJMP SCAN_DATAKEY_LOCK:

CJNE A,#0EH,KEY_PINLJMP SCAN_DATAKEY_PIN:

CJNE A,#0FH,KEY_DATALJMP SCAN_DATAKEY_DATA:

MOV @R0,A

Trang 28

LCALL WRITE_COMMOV DPTR,#UNLOCK_2LCALL DATA_DISPLCALL BEEP_1SLCALL TEMPLJMP LOOP_UNLOCKCORRECT_PIN:

CLR RELAYLCALL CLEAR_LCDMOV A,#0CH

LCALL WRITE_COMMOV A,#82H

LCALL WRITE_COMMOV DPTR,#UNLOCK_3LCALL DATA_DISPMOV A,#0C2HLCALL WRITE_COMMOV DPTR,#UNLOCK_4LCALL DATA_DISPLCALL BEEPLCALL DELAY_2LCALL BEEPLJMP MAIN

;=========PIN===========PIN:

Trang 29

MOV R0,#50HMOV A,@R0CJNE A,40H,INCORRECT_CURRENTINC R0

MOV A,@R0CJNE A,41H,INCORRECT_CURRENTINC R0

MOV A,@R0CJNE A,42H,INCORRECT_CURRENTINC R0

MOV A,@R0CJNE A,43H,INCORRECT_CURRENTINC R0

MOV A,@R0CJNE A,44H,INCORRECT_CURRENTINC R0

MOV A,@R0CJNE A,45H,INCORRECT_CURRENTLJMP CORRECT_CURRENT

INCORRECT_CURRENT:

Trang 30

LCALL SCAN_KEYCJNE A,#0AH,N1LJMP N7N1:

CJNE A,#0BH,N2LCALL CLEAR_LCDLJMP LOOP_NEWN2:

CJNE A,#0CH,N3LCALL CLEAR_LCDLJMP CANCEL_PINN3:

CJNE A,#0DH,N4LJMP N7N4:

CJNE A,#0EH,N5LJMP N7N5:

CJNE A,#0FH,N6LJMP N7N6:

MOV @R0,AINC R0INC R1MOV A,#'*'

Trang 31

MOV A,#80HLCALL WRITE_COMMOV DPTR,#PROJECT_DATALCALL DATA_DISP

MOV A,#0C4HLCALL WRITE_COMMOV DPTR,#PROJECT_DATA_2LCALL DATA_DISP

RET

;========BEEP========

BEEP:

SETB SPKLCALL DELAY_2CLR SPK

RETBEEP_1S:

Trang 32

MOV A,#3CH LCALL WRITE_COM MOV A,#0CH

LCALL WRITE_COMMOV A,#06H

LCALL WRITE_COM MOV A,#01H

LCALL WRITE_COMRET

WELCOME:

MOV A,#85HLCALL WRITE_COMMOV DPTR,#WELCOME_DATALCALL DATA_DISP

RET

;====DISPLAY LCD DATA====DATA_DISP:

Trang 33

MOV R0,#50H; Vị trí lưu PIN tạm thời

MOV R1,#00H; Biến đếm số PIN

UNLOCK_3:

DB 'CORRECT PIN!*'RET

UNLOCK_4:

DB 'UNLOCKED!*'RET

PIN_1:

DB 'CURRENT PIN:*'RET

PIN_4:

DB 'NOT CHANGE!*'RET

END

0.83%

Ngày đăng: 11/03/2017, 21:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w