Giới thiệu về đề tài nghiên cứu, ứng dụng trong cuộc sống. Tìm hiểu về vi điều khiển PIC 16F877A Quét phím ma trận. Giao tiếp giữa PIC 16F877A và DS1307 Tìm hiểu về LCD 16x2. Tìm hiểu động cơ điện 1 chiều. Thiết kế Khóa cửa điện tử: + Cấu trúc Khóa cửa điện tử và nguyên lý hoạt động. + Tính chọn linh kiện, lập trình thiết kế. Xây dựng mô hình. Thiết kế 1 khóa điện tử bằng phím số có thể đóng mở hệ thống bằng cách nhập mật khẩu. Nó có thể được ứng dụng làm khóa cho nhiều hệ thống như: khóa hệ thống (không cho phép thay đổi cài đặt của băng chuyền, của máy,...), khóa cửa (khóa cửa ra vào của gia đình, cơ quan, nhà máy...)... Tìm hiểu về vi điều khiển PIC 16F877A, LCD, ma trận phím, IC DS1307… Cải thiện kỹ năng làm việc nhóm. Cải thiện kỹ năng lập trình PIC. Thêm kinh nghiệm trong việc thiết kết và thi công mạch điện tử. 2. Chức năng của hệ thống Đây là một loại khóa cửa điện tử, được dùng để đóngmở 1 hệ thống cửa bằng cách nhập mật khẩu, thông qua việc giao tiếp với bàn phím ma trận 4x4 và màn hình LCD 16x2. Có khả năng đổi mật khẩu và không bị reset mật khẩu khi mất nguồn Kết hợp xem ngày giờ thời gian thực code và mô phỏng trong file đính kèm
Trang 1ĐỒ ÁN MÔN HỌC ĐỒ ÁN ĐO LƯỜNG ĐIỀU KHIỂN TỰ ĐỘNG
Giáo viên hướng dẫn: PHAN HẢI PHONG
Sinh viên thực hiện:
1 Hồ Đức Nhật Trường
2 Trần Thanh Cương
3 Trần Phước Lộc
4 Nguyễn Văn Tuy Ngành: Điện Tử - Viễn Thông; Khóa: 35
• Nội dung nghiên cứu:
- Giới thiệu về đề tài nghiên cứu, ứng dụng trong cuộc sống
- Tìm hiểu về vi điều khiển PIC 16F877A
- Quét phím ma trận
- Giao tiếp giữa PIC 16F877A và DS1307
- Tìm hiểu về LCD 16x2
- Tìm hiểu động cơ điện 1 chiều
- Thiết kế Khóa cửa điện tử:
+ Cấu trúc Khóa cửa điện tử và nguyên lý hoạt động
+ Tính chọn linh kiện, lập trình & thiết kế
- Xây dựng mô hình
Huế, 6/2015
Trang 2LỜI NÓI ĐẦU
Trong một xã hội hiện đại, điện là 1 nguồn năng lượng không thể thiếu trong
đời sống, nó có mặt trong hầu hết các lĩnh vực xã hội
Ngày nay, trên thế giới, ngành Điện tử – Viễn thông nói chung và ngành điện tử
tự động nói riêng vẫn không ngừng phát triển với tốc độ rất cao và thâm nhập ngày
càng sâu vào tất cả các lĩnh vực của đời sống, kinh tế, xã hội
Trong đó, lĩnh vực bảo mật là một mảng lớn rất cần được quan tâm Chính vì
thế, với mục đích làm quen bước đầu với việc thiết kế mạch điện tử nói chung và với
hệ thống an toàn, bảo mật nói riêng, chúng em chọn đề tài “ Ứng dụng vi điều khiển
chế tạo Khóa Cửa Điện Tử” để nghiên cứu và thực hiện
Trong quá trình thực hiện đề tài, tuy đã rất cố gắng song do những hạn chế về
thời gian, kiến thức cũng như kinh nghiệm thực tế nên chúng em không tránh khỏi
nhiều thiếu sót Chúng em rất mong nhận được những ý kiến đóng góp của thầy để đề
tài của chúng em được hoàn thiện hơn
Trang 3MỤC LỤC
Lời nói đầu
I GIỚI THIỆU ĐỀ TÀI……… 4
1 mục đích nghiên cứu……….4
2 chức năng của hệ thống……….4
3 cấu trúc cơ bản của hệ thống……….4
II LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ……….5
1 Một số loại khóa bảo mật trên thị trường……… 5
a) Khóa cơ……… 5
b) Khóa vân tay……….5
c) Khóa thẻ từ………5
d) Khóa nhận dạng võng mạc……….5
e) Khóa mã số………5
2 Chỉ tiêu cần đạt trong thiết kế……… 5
a) Phần điện……… 6
b) Phần cơ……… 6
3 Phương án thiết kế………6
a) Phần điện……….……… 6
b) Phần cơ……… 6
III GIỚI THIỆU CHUNG VỀ CẤU TRÚC VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG……… 7
1 Cấu trúc hệ thống……… 7
2 Nguyên lý hoạt động của hệ thống………7
IV TÌM HIỂU CÁC KHỐI CỦA HỆ THỐNG………8
1 Khối INPUT……… 8
2 Khối DS 1307………9
3 Khối xử lý……… 14
a) Chọn vi điều khiển làm bộ xử lý trung tâm……… 14
b) Tìm hiểu về vi điều khiển PIC 16F877A………15
4 Khối OUTPUT………22
a) Hiển thị LCD……… 22
b) Mạch báo động……… 24
c) Mạch đóng mở cửa………24
d) Mạch hiển thị LED……….25
V TÍNH TOÁN, THIẾT KẾ, CHẾ TẠO……… 26
1 Tính chọn linh kiện – thiết kế phần cứng………26
2 Sơ đồ nguyên lý và sơ đồ mạch in……… 28
a) Sơ đồ nguyên lý……… 28
b) Sơ đồ mạch in……….29
3 Ưu, nhược điểm của mô hình……….30
a) Ưu điểm:……….30
b) Nhược điểm………30
Phụ Lục Code lập trình:……….32
Trang 4I GIỚI THIỆU ĐỀ TÀI
1 Mục đích nghiên cứu
Thiết kế 1 khóa điện tử bằng phím số có thể đóng mở hệ thống bằng cách nhập mật khẩu Nó có thể được ứng dụng làm khóa cho nhiều hệ thống như: khóa hệ thống
(không cho phép thay đổi cài đặt của băng chuyền, của máy, ), khóa cửa (khóa cửa ra vào của gia đình, cơ quan, nhà máy )
Tìm hiểu về vi điều khiển PIC 16F877A, LCD, ma trận phím, IC DS1307…
Cải thiện kỹ năng làm việc nhóm
Cải thiện kỹ năng lập trình PIC
Thêm kinh nghiệm trong việc thiết kết và thi công mạch điện tử
2 Chức năng của hệ thống
Đây là một loại khóa cửa điện tử, được dùng để đóng/mở 1 hệ thống cửa bằng cách nhập mật khẩu, thông qua việc giao tiếp với bàn phím ma trận 4x4 và màn hình LCD
16x2
Có khả năng đổi mật khẩu và không bị reset mật khẩu khi mất nguồn
Kết hợp xem ngày giờ thời gian thực
3 Cấu trúc cơ bản của hệ thống
Trang 5II LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ
1 Một số loại khóa bảo mật trên thị trường
a) Khóa cơ:
Gồm hai phần là ổ khóa và chìa khóa, làm bằng kim loại cứng và nhiều hình
dạng, Khóa được mở khi có chìa khóa với các răng trên mép khóa đứng với thứ tự
các chốt nhỏ trong ổ khóa nhằm nâng các chốt nhỏ đó lên gây mất tác dụng khóa của ổ
b) Khóa vân tay
Vân tay được sử dụng thay thế cho chìa khóa Chỉ cần đặt vân tay vào thiết bị cảm
ứng, nếu nhận dạng đúng vân tay của người đã đăng kí sử dụng thì khóa mở
c) Khóa thẻ từ
Khóa thẻ từ được sử dụng bằng cách cho thẻ từ đi qua khe đọc thẻ từ Nếu thiết bị
đọc thẻ nhận dạng thẻ từ hợp lệ sẽ cho mở hệ thống
Thẻ từ là một thẻ nhựa có gắn một dải băng từ ờ mặt sau của thẻ Dải bang từ này
có từ tính Dải băng từ này dùng để lưu trữ thông tin của chủ thẻ
d) Khóa nhận dạng võng mạc
Ứng dụng của sự chuyển động không giống nhau của mắt khi nhìn vào những vật
khác nhau Thông qua camera để nhận dạng ra những chuyển động đặc trưng đó để tạo
ra loại khóa nhận dạng qua võng mạc
e) Khóa mã số
Là loại khóa sử dụng mật mã để đóng/mở hệ thống
Nhận định:
Mặc dù trên thị trường đã có rất nhiều loại khóa hiện đại, nhưng giá thành của
những khóa này còn đắt, chưa được ứng dụng nhiều vào đời sống sinh hoạt hằng ngày
như ứng dụng cho các hộ gia đình, các công trình nhỏ Với ý nghĩ chế tạo một chiếc
khóa bằng mật mã với giá rẻ nhưng tích hợp nhiều tính năng và có thể ứng dụng vào
việc làm khóa cửa, khóa hệ thống chúng em quyết định chọn đề tài “Ứng dụng vi
điều khiển chế tạo Khóa Cửa Điện Tử” để tìm tòi, nguyên cứu và chế tạo
Trang 62 Chỉ tiêu cần đạt trong thiết kế
a) Phần điện:
Mạch hoạt động tốt, an toàn, chịu được nguồn cung cấp từ 12 - 24 VDC, phù hợp
với động cơ đóng mở cửa, đáp ứng tức thời các tác vụ điều khiển để đảm bảo sự làm
việc chính xác và an toàn của bộ phận tác động cuối
b) Phần cơ:
Các thiết kế cơ khí phải đảm bảo sao cho cơ cấu đóng mở cửa của hệ thống thực
hiện tốt các chức năng theo thiết kế, các kết cấu đủ độ cứng vững
3 Phương án thiết kế
a) Phần điện:
- Sử dụng vi điều khiển PIC 16F877A làm trung tâm điều khiển chính
- Sử dụng IC DS 1307 để định thời gian
- Khối đầu vào: bàn phím
- Khối hiển thị: màn hình LCD
- Khối chấp hành: điều khiển mô tơ đóng/mở cửa, đèn báo, còi báo động
b) Phần cơ:
- Sử dụng mô tơ 1 chiều kết hợp hệ thống bánh răng để đóng/mở cửa
Trang 7III GIỚI THIỆU CHUNG VỀ CẤU TRÚC VÀ NGUYÊN LÝ HOẠT ĐỘNG
CỦA HỆ THỐNG
1 Cấu trúc hệ thống
Sơ đồ khối hệ thống
2 Nguyên lý hoạt động của hệ thống
Hệ thống giao tiếp với người sử dụng thông qua một bàn phím điều khiển, LED báo hiệu và màn hình hiển thị LCD
Bàn phím gồm các phím số 0-9 và các phím chức năng: A (hủy), B (xóa), C
(điều hướng lên), D (điều hướng xuống), # (xác nhận), * (chọn)
Khi bắt đầu, tại màn hình đồng hồ chờ bấm phím * để nhập mã
Sau khi nhập mã, ấn # :
Nếu mã đúng: cửa sẽ mở, đèn vàng tắt
Nếu mã sai: LCD thông báo sai đèn đỏ cảnh báo sáng, nếu mã sai 3 lần
liên tiếp sẽ có chuông báo động kêu
Có thể thay đổi mật khẩu nhiều lần để tăng tính bảo mật
Có thể thay đổi ngày giờ của hệ thống
Độ dài mật khẩu cho phép là 6 số
Trong quá trình nhập mã, nếu có nhầm lẫn có thể nhập lại bằng nút B
Trang 8IV TÌM HIỂU CÁC KHỐI CỦA HỆ THỐNG
1 Khối INPUT
Bàn phím:
Sơ đồ bàn phím
Bàn phím thực tế
Bàn phím gồm các phím Mỗi phím là một bộ phận đóng mở bằng cơ khí Các mã
của bàn phím tạo ra có thể được tạo ra trực tiếp hoặc bằng phép quét hàng và quét cột
Ở đề tài này chứng em thấy với bàn phím có 16 phím là đảm bảo số lượng phím cần
thiết và đảm bảo sự cân đối thẩm mĩ cho bàn phím, vì vậy chứng em quyết định sử
Trang 9dụng sử dụng bàn phím ma trận 4x4 16 phím)
Bàn phím gồm các phím số 0~9 và các phím chức năng: A (hủy), B (xóa), C (điều
hướng lên), D (điều hướng xuống), # (xác nhận), * (chọn)
Bàn phím được bổ trí thành 4 hàng và 4 cột:
• Số đầu ra từ bàn phím là 8 dây phù hợp cho 1 Port điều khiển
• Hình dáng đẹp, cân đối
2 Khối DS 1307
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời
gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tình bằng giây, phút, giờ DS1307 là một sản phẩm của Dallas Semiconductor (một
công ty thuộc Maxim Integrated Products) Chip này có 7 thanh ghi 8-bit chứa thời
gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm Ngoài ra DS1307 còn có 1
thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM DS1307
xuất hiện ở 2 gói SOIC và DIP có 8 chân
Các chân của DS1307 được mô tả như sau:
XI và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHZ làm nguồn tạo dao động cho chip
VBAT: cực dương của một nguồn pin 3V nuôi chip
GND: chân mass chung cho cả pin 3V và Ycc
Ycc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển
Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307
vẫn đang hoạt động (nhưng không ghi và đọc được)
SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số của xung được tạo có thể được lập hình Như vậy chân này hầu như không liên
quan đến chức năng của DS1307 là đồng hồ thời gian thực, chứng ta sẽ bỏ trống chân này khi nối mạch
SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C
Trang 10Sơ đồ đấu nối
Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ địa chỉ và các thanh ghi (hay RAM) Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này Vì thế có 2 vấn đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thông
qua giao diện I2C Như đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được
đánh địa chỉ từ 0 đến 63 (từ 00H đến 3FH theo hệ Hexa Decimal) Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ” (RTC) còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạm như RAM nếu muốn Bảy thanh ghi đầu tiên
chứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút
(MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm
(YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian
khởi động cho RTC Việc đọc giá trị từ 7 thanh ghi là đọc thời gian thực mà chip tạo
ra Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây” giá trị 42, sau
đó 12s chứng ta đọc thanh ghi này, chúng ta thu được giá trị 54 Thanh ghi thứ 8
(CONTROL) là thanh ghi điều khiển xung ngõ ra SQW/OUT (chân 6) Tuy nhiên, do
chúng ta không dùng chân SQW/OUT nên có thề bỏ qua thanh ghi thứ 8 Tổ chức bộ
nhớ của DS1307 được trình bày trong hình 3 Vì 7 thanh ghi đầu tiên là quan trọng
nhất trong hoạt động của DS1307, chúng ta sẽ khảo sát các thanh ghi này một cách chi tiết Trước hết hãy quan sát tổ chức theo từng bit của các thanh ghi này như trong hình:
Trang 11DS1307 ADDRESS MAP
DS1307 TIMEKEEPER REGISTERS
Tổ chức các thanh ghi thời gian Thanh ghi giây (SECONDS): thanh ghi này là
thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ của nó là 0x00 Bốn bit thấp của
thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây Do giá trị
cao nhất của chữ số hàng chục là 5 (không có giây 60) nên chỉ cần 3 bit (các bit
Trang 12SECONDS 6:4) là có thể mã hóa được (số 5 =101, 3 bit) Bit cao nhất, bit 7, trong
thanh ghi này là 1 điều khiển có tên CH (Clock halt - treo đồng hồ), nếu bit này được
set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động Vì vậy,
nhất thiết phải reset bit này xuống 0 ngay từ đầu Thanh ghi phút (MINUTES): có địa
chỉ 01H, chứa giá trị phút của đồng hồ Tương tự thanh ghi SECONDS, chỉ có 7 bit
của thanh ghi này được dùng lưu mã BCD của phút, bit 7 luôn bằng 0
Thanh ghi giờ (HOURS): có thể nói đây là thanh ghi phức tạp nhất trong DS1307
Thanh ghi này có địa chỉ 02H Trước hết 4-bits thấp của thanh ghi này được dùng cho
chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là
mode) là 12h (lh đến 12h) và 24h (1h đến 24h) giờ, bit6 (hình 4) xác lập hệ thống giờ
Nếu bit6=0 thì hệ thống 24h được chọn, khi đó 2 bit cao 5 và 4 dùng mã hóa chữ số
hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp
này là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa Nếu bit6=l thì hệ thống 12h
được chọn, với trường họp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit
5 (màu orange trong hình 4) chỉ buổi trong ngày, AM hoặc PM Bit5 =0 là AM và
bit5=l là PM Bit 7 luôn bằng 0 Thanh ghi thứ (DAY - ngày trong tuần): nằm ở địa chỉ
03 H Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7
trong 1 tuần Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa Các thanh ghi còn
lại có cấu trúc tương tự, DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1 đến 12) và YEAR chứa năm (00 đến 99) Chú ý, DS1307 chỉ dùng cho 100 năm,
nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ
20xx) Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi khác nằm
riêng gọi là con trỏ địa chỉ hay thanh ghi địa chỉ (Address Register) Giá trị của thanh
ghi này là địa chỉ của thanh ghi trong bộ nhớ mà người dùng muốn tuy cập
Trang 13DS1307 BLOCK DIAGRAM
Để làm việc với DS1307, ta thực hiện các bước như sau:
• START I2C
• Ghi: ODxH (Đây là địa chỉ của DS1307 do nhà sản xuất quy định) với: x=0: Ghi
dữ liệu vào DS1307, với x=1: Đọc dữ liệu vào DS1307 Ghi tham số x này vào, có
nghĩa là việc tiếp theo là chúng ta ghi hay đọc dữ liệu từ con DS1307 tùy vào giá trị
x=0 (ghi dữ liệu) hay x=1(đọc dữ liệu)
• Ghi vào địa chỉ thanh ghi cần ghi hoặc cần đọc
• Ghi hoặc đọc dữ liệu • STOP I2C
* Một ví dụ minh họa cho việc đọc ghi
Thanh ghi có địa chỉ 01H chứa Data về “phút”, muốn set phút vào DS1307 chúng
ta làm theo quy trình:
START → Ghi: 0D0H → Ghi tiếp: 01H → Ghi tiếp: → Ghi tiếp hoặc STOP nếu
chỉ muốn cài đặt thời gian cho phút
Trang 14Nếu muốn Ghi vào địa chỉ 01H rồi kế tiếp Ghi vào địa chỉ 04H chẳng hạn thì chúng
ta phải START lại từ đầu → Ghi vào 0D0H (để xác định sẽ Ghi vào DS1307 hướng
giao tiếp là Ghi vào) → Ghi tiếp 04H → Ghi dữ liệu của thanh ghi cần cài đặt →
STOP I2C
Tương tự, nếu chúng ta muốn đọc thì trước hết chúng ta phải ghi vào địa chỉ cần
đọc: tức là vẫn tiếp tục tiến hành 3 thủ tục START → Ghi 0D0H → Ghi vào địa chỉ
(địa chỉ của thanh ghi mà ta muốn đọc dữ liệu) Sau đó, mới START lại rồi ghi lại
0D1H (lúc này mới thông báo là ta sẽ đọc từ DS1307), tiếp theo cứ đọc bình thường
(thanh ghi đọc được sẽ là thanh ghi có địa chỉ ta mới vừa ghi vào), tiếp tục đọc thì địa
chỉ cần đọc sẽ tự động tăng lên cho đến khi STOP I2C
3 Khối xử lý
a) Chọn vi điều khiển làm bộ xử lý trung tâm
Ưu điểm:
Vi điều khiển có khả năng điều khiển linh hoạt theo mong muốn của người
sử dụng dựa vào phần mềm được viết
Khả năng thay đổi mã có thể thực hiện được
Hệ thống đơn giản, kích thức nhỏ
Có thể thay đổi, thêm chức năng bằng cách thay đổi phàn mềm
Giá thành thấp, phù hợp với khả năng tài chính
Nhược điểm:
Chất lượng của hệ thống phụ thuộc vào chất lượng chương trình được nạp
cho vi điều khiển
Hệ thống vi điều khiển có độ ổn định không cao (hay hỏng hơn so với hệ
thống sử dụng PLC)
Được ứng dụng cho các hệ thống nhỏ, không yêu cầu độ phức tạp cao
Trang 15b) Tìm hiểu về vi điều khiển PIC 16F877A
Sơ đồ chân vi điều khiển PIC 16f877A
Một vài thông số về vi điều khiển PIC 16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14
bit Mỗi lệnh đểu được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa
cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8
byte Số PORT I/O là 5 với 33 pin I/O
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
Timer 0: bộ đệm 8 bit với bộ chia tần số 8 bit
Timer l: bộ đệm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm
dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ
sleep
Timer 2: bộ đệm 8 bit với bộ chia tần số, bộ postcaler
Hai bộ Capture/so sánh/ điều chế độ rộng xung
Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
Trang 16 Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển
RD, WR, CS ở bên ngoài
Các đặc tính Analog:
8 kênh chuyển đổi ADC 10 bit
Hai bộ so sánh
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
Bộ nhớ flash với khả năng ghi xóa được 100.000 lần
Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm
Khả năng tự nạp chương trình với sự điều khiển của phần mềm
Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Programming) thông quà 2 chân
Watchdog Timer với bộ dao động trong
Chức năng bảo mật mà chương trình
Chế độ Sleep
Có thể hoạt động với nhiều dạng Oscillator khác nhau
Trang 17 Sơ đồ khối vi điều khiển PIC 16F877A
Trang 18 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program memory) và bộ nhớ dữ liệu (Data Memory)
Bộ nhớ chương trình:
Bộ nhớ chương trình của vi điều
khiển PIC16F877A là bộ nhớ flash,
dung lương bo nhớ 8K word (1 word =
14 bit) và được phân thành nhiều trang
(tư page 0 đến page 3) Như vậy bộ
nhớ chương trình có khả năng chứa
được 8*1024 = 8192 lệnh (vì một lệnh
sau khi mã hóa sẽ có dung lượng 1
word (14 bit)
Để mã hóa được địa chỉ của 8K
word bộ nhớ chương trình, bộ đếm
chương trình có dung lượng 13 bit
(PC<12:0>)
Khi vi điều khiền được reset, bộ
đếm chương trình sẽ chỉ đến địa chỉ
0000h (Reset vector) Khi có ngắt xảy
ra, bộ đếm chương trình sẽ chỉ đến địa
chỉ 0004h (Interrupt vector)
Bộ nhớ chương trình không bao
gồm bộ nhớ stack và không được địa
chỉ hóa bởi bộ đếm chương trình
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đối với
PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 128
byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register)
nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose
Register) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên
được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ
dữ liệu giúp thuận tiện trong qua trình truy xuất và làm giảm bớt lệnh của chương
trình Sơ đồ cụ thề của bộ nhớ dữ liệu PIC16F877A như sau:
Bộ nhớ dữ liệu Bộ nhớ chương trình PIC
16F877A
Trang 19Sơ đồ bộ nhớ dữ liệu PIC 16F877A
Trang 20 Các cổng xuất nhập của PIC 16F877A
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác
đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách
bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân
trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông
thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác
động của các đặc tính ngoài vi nêu trên đối với thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được
thông qua các thành ghi SFR liên quan đến chân xuất nhập đó
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE
PORT A
PORT A (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi
TRIS A (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORT A là input,
ta “set” bit điều khiển tương ứng vơi chân đó trong thanh ghi TRIS A và ngược lại,
muốn xác lập chức năng của một chân trong PORT A là output, ta “clear” bit điều
khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tư đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORT A là
TRIS A, đối với PORT B là TRIS B, đối với PORT C là TRIS C, đối với PORT D là
TRIS D và đối với PORT E là TRIS E) Bên cạnh đó PORT A còn là ngõ ra của bộ
ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock của Timer 0 và ngõ vào của bộ
giao tiếp MSSP (Master Synchronous Serial Port) Đặc tính này sề được trình bày cụ
thể trong phần sau
Các thành ghi SFR liên quàn đền PORT A bao gồm:
PORT A (địa chỉ 05h): Chứa giá trị cá pin trong PORT A
TRIS A (địa chỉ 85h): Điều khiển xuất nhập
CMCON (địa chỉ 9Ch): Thanh ghi điều khiển bộ so sánh
CVRCON (địa chỉ 9Dh): Thanh ghi điều khiển bộ so sánh điện áp
ADCON1 (địa chỉ 9Fh): Thanh ghi điều khiển bộ ADC
Trang 21 PORT B
PORT B (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRIS B Bên cạnh đó một số chân của PORT B còn được sử dụng trong quá trình nạp chương
trình cho vi điều khiển với các chế độ nạp khác nhau PORT B còn liên quan đến ngắt
ngoại vi và bộ Timer 0 PORT B còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình
Các thanh ghi SFR liên quan đến PORT B bao gồm:
PORT B (địa chỉ 06h,106h) : chứa giá trị các pin trong PORT B
TRIS B (địa chỉ 86h,186h) : điều khiển xuất nhập
OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Time 0
PORT C
PORT C (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRIS
C Bên cạnh đó PORT C còn chứa các chân chức năng của bộ so sánh, bộ Timer 1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART
Các thanh ghi điều khiển liên quan đến PORT C:
PORT C (địa chỉ 07h) : chứa giá trị các pin trong PORT C
TRIS C (địa chỉ 87h) : điều khiển xuất nhập
PORT D
PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRIS D PORT D còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)
Các thanh ghi liên quan đến PORT D bao gồm:
Thanh ghi PORT D : chứa giá trị các pin trong PORT D
Thanh ghi TRIS D : điều khiển xuất nhập
Thanh ghi TRIS E : điều khiển xuất nhập PORT E và chuẩn giao tiếp
PSP
PORT E
PORT E (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tương ứng là
TRIS E Các chân của PORT E có ngõ vào analog Bên cạnh đó PORT E còn là các
chấn điểu khiển của chuẩn giao tiếp PSP
Các thanh ghi liên quan đến PORT E bao gồm:
PORT E : chứa giá trị các chân trong PORT E
Trang 22 TRIS E : điểu khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP
ADCON1 : thanh ghi điều khiển khối ADC
4 Khối OUTPUT
a) Hiển thị LCD
Với các ưu điểm như: tiêu thụ dòng thấp, hiển thị được hình ảnh/ký tự linh hoạt,
màn hình tinh thể lỏng LCD (Liquid Crystal Display) được sử dụng trong hàu hết các
thiết bị điều khiển trong công nghiệp để hiển thị trạng thái của máy móc Do có rất
nhiều chủng loại khác nhau, nên LCD được sử dụng rất rộng rãi Tất cả các LCD đều
được sản xuất theo các chuẩn chung, tích hợp luôn các module điều khiển (cho LCD)
nên việc sử dụng nó không mấy phức tạp Bộ điều khiển LCD cung cấp một tập lệnh
dùng để diều khiển LCD
LCD và các chân
LCD TC 1602A là loại màn hình tình thể lỏng
Là loại Text LCD, chỉ hiển thị kí tự, không hiển thị được hình ảnh
Hiển thị trên 2 line
Có đèn nền (backline)
Trang 23Chức năng từng chân của LCD:
STT Ký
Hiệu
Nối với vi xử lý Mức logic Chức năng
4 RS P3.7 H/L H: chọn thanh ghi vào dữ liệu
L: chọn thanh ghi cho lệnh điều khiển
5 R/W P3.6 H/L
chọn chế độ đọc viết:
H: cho biết đọc từ LCD vào VXL L:
cho biết đọc từ VXL vào LCD
6 E P3.5 xung L-H-L Tín hiệu cho phép LCD hoạt động
7 DBO Pl.o H/L Bit dữ liệu 0
8 DB1 Pl.l H/L Bit dữ liệu 1
9 DB2 P1.2 H/L Bit dữ liệu 2
10 DB3 P1.3 H/L Bit dữ liệu 3
11 DB4 P1.4 H/L Bit dữ liệu 4
12 DB5 P1.5 H/L Bit dữ liệu 5
13 DB6 P1.6 H/L Bit dữ liệu 6
14 DB7 P1.7 H/L Bit dữ liệu 7
15 A 5 V nguồn cấp cho đèn backline
16 K 0 V (Ground)
Hoạt động của LCD được điều khiển thông qua 3 tín hiệu E, RS, RW
Tín hiệu E là tín hiệu cho phép gửi dữ liệu Để gửi dữ liệu đến LCD, chương trình
phải thiết lập E=l, sau đó đặt các trạng thái điều khiển thích hợp lên RS, RW và bus dữ liệu, cuối cùng là đưa E về 0 Hoạt động chuyển đổi 1-0 cho phép LCD nhận dữ liệu
hiện thời trên các đường điều khiển cũng như trên bus dữ liệu và xem đó như là một
lệnh
Tín hiệu RS là tín hiệu cho phép chọn thanh ghi (Register Select) Khi RS =0, dữ
liệu được coi như là một lệnh hay một chỉ thị đặc biệt (như là xóa màn hình, đặt vị trí
con trỏ ) Khi RS=1, dữ liệu được coi là dữ liệu dạng văn bản và sẽ được hiển thị trên màn hình
Tín hiệu RW là tín hiệu “Đọc/Ghi” Khi RW=0, thông tin trên bus dữ liệu được
viết vào LCD Khi RW=1, chương trình sẽ đọc LCD Tuy nhiên chỉ có chỉ thị “Xem
Trang 24trạng thái LCD” là lệnh đọc Trong chương trinh, tất cả các lệnh đều là lệnh ghi, do
vậy RW luôn ở mức thấp
Bus dữ liệu gồm 4 hoặc 8 đường tùy thuộc vào chế độ hoạt động mà người sử dụng lựa chọn (ở đây chương trình sử dụng bus dữ liệu 8-bít)
b) Mạch báo động
Khi người sử dụng nhập mã sai 3 lần thì vi điều khiển sẽ kích cho tín hiệu báo
động Tín hiệu này mở transistor điều khiển chuông báo động kêu
c) Mạch đóng mở cửa
Cửa sẽ được mở khi người dùng nhập đúng mật khẩu Ở mô hình này, chúng em sử dụng động cơ điện 1 chiều để điều khiển quá trình đóng mở cửa Cửa được đóng mở
bằng cách điều khiển đảo chiều động cơ
Cách thức hoạt động:
Trang 25 Ở trạng thái ban đầu, 2 transistor mở khiến 2 role đấu 2 chân motor xuống mass (0v)
Nếu có 1 transistor đóng lại thì 1 role sẽ nhả ra đấu 1 đầu của motor lên dương nguồn
làm động cơ quay
Tùy vào transistor nào đóng mà motor sẽ quay theo 1 chiều nhất định làm cửa đóng
mở được
d) Mạch hiển thị LED
LED (viết tắt của Light Emitting Diode,
có nghĩa là điốt phát quang) là các điốt có
khả năng phát ra ánh sáng hay tia hồng
ngoại, tử ngoại Cũng giống như điốt, LED
được cấu tạo từ một khối bán dẫn loại p ghép
với một khối bán dẫn loại n
Hoạt động của LED giống với nhiều loại
điốt bán dẫn
Khối bán dẫn loại p chứa nhiều lỗ trống
tự do mang điện tích dương nên khi ghép với
khối bán dẫn n (chứa các điện tử tự do) thì
các lỗ trống này có xu hướng chuyển động
khuếch tán sang khối n Cùng lúc khối p lại
nhận thêm các điện tử (điện tích âm) từ khối n chuyển sang Kết quả là khối p tích điện
âm (thiếu hụt lỗ trống và dư thừa điện tử) trong khi khối n tích điện dương (thiếu hụt
điện tử và dư thừa lỗ trống)
Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống thu hút và khi chúng
tiến lại gần nhau, chúng có xu hướng kết hợp với nhau tạo thành các nguyên tử trung
hòa Quá trình này có thể giải phóng năng lượng dưới dạng ánh sáng (hay các bức xạ
điện từ có bước sóng gần đó)
Hầu hết các vật liệu làm LED có chiết suất rất cao, tức là hầu hết ánh sáng phát ra
sẽ quay ngược vào bên trong thay vì phát ra ngoài không khí Do đó công nghệ trích
xuất ánh sáng từ LED cũng rất quan trọng, cần rất nhiều sự nghiên cứu và phát triển
Trang 26V TÍNH TOÁN, THIẾT KẾ, CHẾ TẠO
1 Tính chọn linh kiện – thiết kế phần cứng
a) Vi điều khiển
b) Bàn phím
c) LCD
Trang 27d) Hệ thống cửa
Sử dụng cơ cấu bên trong đầu đọc đĩa CD
Trang 282 Sơ đồ nguyên lý và sơ đồ mạch in
a) Sơ đồ nguyên lý
Trang 29b) Sơ đồ mạch in
Trang 303 Ưu, nhược điểm của mô hình
a) Ưu điểm:
- Hiển thị đầy đủ và rõ nét các ký tự trên LCD
- Bàn phím linh hoạt
- Có thể thay đổi mật khẩu
- Có hệ thống lịch và ngày giờ có thể hiệu chỉnh được
- Đóng mở cửa chính xác, tin cậy, có LED báo hiệu
- Có báo động và cảnh báo khi nhập mã sai 3 lần
- Mật khẩu không bị trờ về mặc định khi bị mất nguồn
Trang 31KẾT LUẬN
Trên cơ sở lí thuyết đã học, chúng em đã thiết kế hệ thống khóa với độ tin cậy có
thể chấp nhận được, có thể ứng dụng vào thực tế Tuy nhiên hệ thống này còn cần
được chỉnh sửa để tăng tính ổn định Ngoài ra hệ thống trên có thể phát triển thêm các tính năng khác tạo nên sự đa năng cho hệ thống
Hiện nay, có rất nhiều hệ thống bảo vệ, bảo mật tiên tiến hơn như: thẻ từ, vân tay,
võng mạc, giọng nói tuy nhiên chi phí còn rất cao Vì vậy hệ thống của chúng em
thiết kế, chế tạo vẫn còn có những ứng dụng nhất định
Do là thiết kế đầu tiên nên không thể tránh khỏi sai sót Chúng em xin chân thành
cảm ơn sự giúp đỡ và hướng dẫn của các thầy giáo trong thời gian vừa qua Mong rằng
sẽ nhận được nhiều đóng góp ý kiến để bản thiết kế này và những bản thiết kế sau
ngày càng được hoàn thiện hơn