KHÓA số điện tử DÙNG 8051 (có code và layout) ............................................. KHÓA số điện tử DÙNG 8051 (có code và layout) ............................................. KHÓA số điện tử DÙNG 8051 (có code và layout) ............................................. KHÓA số điện tử DÙNG 8051 (có code và layout) ............................................. KHÓA số điện tử DÙNG 8051 (có code và layout) .............................................
Trang 1ĐỒ ÁN 2
KHÓA SỐ ĐIỆN TỬ DÙNG 8051
Trang 2Mục lục
Trang 3DANH MỤC HÌNH VẼ
Trang 4ĐỀ TÀI: KHÓA SỐ ĐIỆN TỬ
DANH MỤC BẢNG BIỂU
B ẢNG 2.2: S Ơ ĐỒ CHỨC NĂNG CÁC CHÂN P3
B ẢNG 2.4: S Ơ ĐỒ CHÂN LCD
Trang 5CHƯƠNG 1: GIỚI THIỆU 1.1 Giới thiệu chung
Ngày này ta có cách thiết bị điều khiển bị động dựa vào tác động hoặc thay đổi bên ngoài Nhưng điều đó chưa đủ, Chúng ta cần có những thiết bị tự chuẩn đoán, dự báo để điều khiển thiết bị một cách thông minh hơn
1.2 Mục đích thực hiện đề tài
Bằng cách sử dụng sử dụng IC8051 và các linh kiện Ta có thể tạo ra thiết bị khóa điện
tử Đối với trong việc bảo vệ tài sản là hết sức cần thiết, thiết bị có thể chủ động mở khóanếu mật mã đúng hoặc ngược lại Và nếu nhập sai quá nhiều sẽ phải đợi 1 thời gian để có thể được nhập lại phòng chống các mục đích xấu
1.3 Nhiệm vụ đề tài
Thiết kế mạch khóa số điện tử Sử dụng IC8051 và ma trận phím để nhập mật mã và xuất
dữ liệu ra LCD Xây dựng phần cứng hệ thống
Trang 6CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG
2.1 Sơ đồ khối
Hình 2.1-1: Sơ đồ khối
Khối nguồn: có chức năng biến đổi dòng xoay chiều 220v thành dòng 1 chiều
cung cấp cho các khối hoạt động
Khối bàn phím: có nhiệm vụ nhập mật mã từ các nút bấm.
Hình 2.1-2: Khối bàn phím
KHỐI VI ĐIỀUKHIỂN
KHỐI BÀN
PHÍM
KHỐI HIỂN THỊ
KHỐI NGUỒN
Trang 7Khối vi điều khiển: có chưa IC8051 Nhận tín hiệu từ khối bàn phím đưa về, xử lý thông
tin và gửi tín hiệu cho LCD hiển thị
Hình 2.1-3: Khối vi điều khiển Khối hiển thị: có chứa LCD, hiển thị thông tin từ khối điều khiển đưa tới
Trang 8Hình 2.1-4: Khối hiển thị Nguyên lý hoạt động: Khi IC8051 nhận được thông tin từ bàn phím, khối vi điều khiển
sẽ xử lý thông tin, nếu mật mã đúng thì cho phép qua, nếu sai thì sẽ nhập lại mật mã, sai
3 lần thì sẽ bị khóa bàn phím
2.2 VI ĐIỀU KHIỂN 8051
Được chế tạo theo đặc tính CMOS có các đặc tính sau:
• 4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới 1000 chu kỳ ghi xóa
• Tần số hoạt động từ: 0Hz-24MHz
• 3 mức khóa bộ nhớ lập trình
• 128 byte RAM nội
• 4 PORT xuất nhấp I/O 8 bit
Trang 9Chân vi điều khiển 8051
Hình 2.2-1: Sơ đồ chân 8051
Chip AT89C51 có các tín hiệu điều khiển cần lưu ý sau:
Tín hiệu vào chần EA/31 thường đặt ở mức cao (+5V) hoặc mức thấp (GND)
Là Port có 2 chức năng ở các chân 32-39 của AT89C51:
_ Chức năng I/O xuất nhập: dùng cho các thiết kế nhỏ Tuy nhiên, khi dùng chức năng này thì Port 0 phải dùng thêm các điện trở kéo lên, giá trị phụ thuộc vào thành phần kết nối
_ Khi được dùng làm ngõ vào, Port 0 được set ở mức logic 1
_ Chức năng địa chỉ/dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi
sử dụng bộ nhớ ngoài, thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit thấp)
Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã khi lập trình và xuất mã khi kiểm tra (quá trình kiểm tra đòi hỏi phải có điệntrở kéo lên)
Port 1
Trang 10Port 1 (chân 1-8) chỉ có 1 chức năng là I/O, không dùng cho mục đích khác (chỉ trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ định thời thứ 3) Tại port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài.Port 1 có khả năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp trong quá trình lập hay quá trình kiểm tra.
Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1
Port 2
Port 2 (chân 21-28) là port có 2 chức năng
_ Chức năng I/O
_ Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài
có địa chỉ 16 bit Khi đó port 2 không được dùng cho mục đích I/O
_ Khi dùng làm ngõ vào, port 2 ở mức logic 1
Port 3
Port 3 (chân 10-17) là port có 2 chức năng:
_ Chức năng I/O Khi dùng làm ngõ vào, port 3 ở mức logic 1
_ Chức năng khác:
P3.0 RxD Ngõ vào port nối tiếp
P3.1 TxD Ngõ ra port nối tiếp
ALE/ PROG (Address Latch Enable / Program):
ALE/ PROG (chân 30) cho phép tách các đường địa chỉ và dữ liệu tại Port 0
khi truy xuất bộ nhớ ngoài
EA /VPP (External Access) :
Trang 11EA (chân 31) dùng để cho phép thực thi chương trình từ ROM ngoài Khi nối chân
31 với Vcc, AT89C51 sẽ thực thi chương trình từ ROM nội (tối đa 8KB), ngược lạithì thực thi từ ROM ngoài (tối đa 64KB)
Ngoài ra, chân /EA được lấy làm chân cấp nguồn 12V khi lập trình cho ROM
RST (Reset):
RST (chân 9) cho phép reset AT89C51 khi ngõ vào tín hiệu đưa lên mức 1
trong ít nhất là 2 chu kỳ máy
X1, X2:
Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối thêm thạch
anh và các tụ như hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho
AT89C51 là 12Mhz.[1]
Hình 2.2-2: Mạch dao động 2.3 Bàn phím ma trận 4x4 (matrix keypad 4x4) là gì ?
Nguyên lý : Khi ta cấp logic 0 ra all hàng để chờ sự kiện nút được nhấn, nếu nút được nhấn thì ta mới cấp lần lượt mức logic 0 ra từng hàng (VD cấp cho hàng 1 logic 0 thì các hàng khác phải lên login 1) sau đó kiểm tra cột xem nó ở cột thứ bao nhiêu, nếu trùng cột và hàng cùng logic 0 thì ta sẽ xác định được vị trí nút được nhấn
Trang 12Trên đây là hình ảnh sơ đồ nguyên lý của module bàn phím 4x4 Tuy có đến 16 nút nhấn, nghĩa là nếu làm một cách thông thường (dùng chân digital) thì chúng ta phải cần đến 16
chân vi điều khiển để đọc Nhưng với bàn phím này, chúng ta chỉ cần dùng 8 chân (4
chân hàng ngang (row), và 4 chân cột dọc (column))
Để kiểm tra một nút có được nhấn hay không? Họ sẽ sử dụng phương pháp quét được mô
tả bằng đoạn mã giả như sau:
Với mỗi hàng (R1 đến R4), Chọn ra hàng Ri
Cấp cực âm (0v) cho hàng Ri
Nếu điện áp ở chân Cj bất kì là dương (INPUT PULLUP) => chưa nhấn
Nếu điện áp ở chân Cj bất kì là âm (INPUT PULLUP) => đang nhấn [2][3]
2.4 LCD 16x02
Sơ đồ chân.
Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó 14 chân kết nối với bộ
điều khiển và 2 chân nguồn cho “đèn LED nền” Thứ tự các chân thường được sắp xếp
Từ 1 xuống 0
Vô hiệu hóa LCDLCD hoạt độngBắt đầu ghi/đọc
Trang 13Bảng 2.4: Sơ đồ chân LCD.
Trang 14CHƯƠNG 3: PHẦN MỀM
3.1 Lưu đồ hoạt động
Hình 3.1: Lưu đồ hoạt động
SAI 3 LẦNKHÓA BÀNPHÍM
ĐÚNG
QUA
NHẬP MẬTMÃ
HIỂN THỊ TÊN,MSSV
SAI
BEGIN
KHỞI TẠO LCDKHỞI TẢO BÀN PHÍM
Trang 153.2 Mô phỏng
Hình 3.2: Mô phỏng proteus 3.3 Mạch in
Hình 3.3: Mạch in
Trang 17CHƯƠNG 4: KẾT QUẢ
Hình 4.1: Kết quả 1
Hình 4.2: Kết quả 2
Trang 18CHƯƠNG 5: NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN 5.1 KẾT LUẬN
Sau hơn một thời gian tìm hiểu, nghiên cứu, tham khảo nhiều tài liệu và được sự hướng dẫn của thầy cô, em đã thực hiện xong đề tài : ‘‘KHÓA SỐ ĐIỆN TỬ’’ Việc hoàn thành
đề tài với những nội dung và mục tiêu đề ra ban đầu đã đem lại cho em thực hiện một lượng kiến thức bổ ích, thiết thực và có khả năng ứng dụng trong thực tế Sau thời gian thực hiện đồ án, em đã hoàn thành được những công việc sau :
• Xây dựng, thiết kế thi công mạch khóa số điện tử
• Tìm hiểu vầ thiết kế mạch
5.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Đề tài ‘‘khóa số điện tử’’được thực hiện trên mô hình thí nghiệm Để đưa đề tài này vào
áp dụng trong thực tiễn đời sống và sản xuất thì cần phải nâng cấp và mở rộng hệ thống hơn nữa Chẳng hạn, để bảo mật tốt hơn, ta phải kết hợp với module sim để khi có cảnh báo có thể gửi về số điện thoại của ta
Ngoài ra, dựa vào ứng dụng và tầm khả năng hoạt động , chúng ta có thể phát triển thành các đề tài khác như hệ thống két sắt thông minh, mạch nhận biết qua vân tay…
Trang 19Tài liệu tham khảo
• [1]Giáo trình Vi xử lý - Vi điều khiển – Trường Đại học Sao đỏ - Bộ Công Thương
• Trang web:
[2]linhkienviet.vn
[3]Sangtaoclub.net
[4]Hocavr.com
Trang 20PHỤ LỤC CODE QUÉT BÀN PHÍM
void delay_us(unsigned int t)
}
static unsigned char code KEYS_PAD[4][4] ={'1','2','3','A',
'4','5','6','B', '7','8','9','C', '*','0','#','D'};
unsigned char mtp_quetphim()
{
unsigned char r,c;
P1=0x0f;
delay_us(2)if((P1&0x0f)!=0x0f)// Kiem tra xem co phim bat ky nao duoc bam hay khong?
{
delay_us(100);
// Chong nhieu if((P1&0x0f)!=0x0f)// Neu dung có phim duoc bam: Bat dau qua trinh quet phim
{for(c=0;c<4;c++)// Quet theo cot
{P1=~(0x01<<(4+c));
// Lan luot keo cac cot xuong muc logic 0
delay_ms(1);
for(r=0;r<4;r++)// Kiem tra cac hang
{if((P1&(0x01<<r))==0)// Neu hang nao co muc logic 0
Trang 21// Cho den khi nut bam duoc tha ra
return KEYS_PAD[r][c];
// Tra ve ma phim da duoc bam }
}}}
return 0;
// Neu khong co phim nao duoc nhan: Tra ve gia tri 0
}
unsigned int a[12]={2036},mk;
unsigned char Key;
unsigned char t,l;
unsigned char j;
unsigned int nhapmk(){
unsigned char Key;
unsigned char i=4,j=6;
unsigned int y=0;
unsigned char A[]={'0','1','2','3','4','5','6','7','8','9'};
if(Key==A[c])
{y=y*10+c; i ; lcd1602_gotoxy(j,1); j++;
lcd1602_putchar('*');
break;
} }}return y;
}
Trang 22}
}if(k!=0)
{P2_0=1;
lcd1602_clear();
lcd1602_gotoxy(0,0);
Trang 23lcd1602_puts(" CUA DA MO ");
{dem++;
k=0;l=0;
}
} /////Exit///
break;}
}