Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đặc biệt là ngành Kỹ thuật Điện tử. Đời sống xã hội ngày càng phát triển cao dựa trên những ứng dụng của khoa học vào đời sống. Vì vậy mà những công nghệ điện tử mang tính tự động ngày càng được ứng dụng rộng rãi. Trong đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển. Các bộ vi điều khiển đang đựơc ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kỹ thuật và đời sống xã hội. Hầu hết là các thiết bị được điều khiển tự động từ các thiết bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiện ghi cho con người trong thời đại công nghiệp hoá, hiện đại hoá.
Trang 1MỤC LỤC
PHẦN I : MỞ ĐẦU 4
I.1LỜI MỞ ĐẦU……… 4
I.2 NHIỆM VỤ ĐỀ TÀI………… 5
I.3 MỤC ĐÍCH VÀ YÊU CẦU CỦA ĐỀ TÀI 6
PHẦN II:LÝ THUYẾT LIÊN QUAN 7
II.1CÁC LINH KỆN SỬ DỤNG TRONG MẠCH 7
II.2.NGUYÊN LÍ CỦA MỘT SỐ LINH KỆN ………… 18
II.2.1 CHIP ATMEGA8……… …… ………18
II.2.2 KEYPAD 4X4……22
II.2.3 LCD 16x2
II.2.4 CÁC LINH KỆN KHÁC……….………25
PHÂN III: THIẾT KẾ MẠCH………… ……….…… ……….32
III.1 SƠ ĐỒ NGUYÊN LÝ……… ….………32
III.2 SƠ ĐỒ MẠCH IN……….………34
IV.4 CHƯƠNG TRÌNH ĐIỀU KHIỂN……… ………36
PHẦN V: ĐÁNH GIÁ SẢN PHẨM VÀ MỞ RỘNG ĐỀ TÀI… … ………38
PHẦN VI: KẾT LUẬN VÀ KIẾN NGHỊ……… …….…….……… 40
Page 1
Trang 2PHẦN I: MỞ ĐẦU I.1.Lời mở đầu
Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đặc biệt là ngành Kỹ thuật Điện
tử Đời sống xã hội ngày càng phát triển cao dựa trên những ứng dụng của khoa học vào đời sống Vì vậy mà những công nghệ điện tử mang tính tự động ngày càng được ứng dụng rộng rãi Trong đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển Các
bộ vi điều khiển đang đựơc ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kỹ thuật và đời sống xã hội Hầu hết là các thiết bị được điều khiển tự động từ các thiết bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiện ghi cho con người trong thời đại công nghiệp hoá, hiện đại hoá Đóng mở khóa số là 1 ứng dụng phổ biến ngày nay, giúp người sử dụng có thể bảo mật và thay đổi với hiệu quả cao, ổn định.
I.2Mục đích, yêu cầu của đề tài:
-Mục đích: đóng mở được hệ thống khóa số để điều khiển motor đóng mở cửa.
PHẦN II: LÝ THUYẾT LIÊN QUAN
II.1.Các linh kiện sử dụng trong mạch
- Sử dụng vi điều khiển họ Atmega8.
- Keypad4x4
- Hiển thị bằng LCD 16x2
- Relay 5V
- Transisor C1815
- Động cơ motor 3V
- KIT nạp AVR : STK500
- Tụ không phân cực 104
Trang 3- Nút nhấn
- Điện Trở
- Diode
- Loa
- Nguồn 5V
- Header
II.2.Nguyên lý một số linh kiện phục vụ cho việc thi công.
II.2.1 Chip Atmega8
- Tốc độ tối đa: 16MHz.
- Dung lượng bộ nhớ chương trình: 8 KB.
- Bộ nhớ EEPROM: 512 Byte.
- Dung lượng bộ nhớ RAM: 1 KB.
Bộ nhớ chương trình có khả năng ghi 10.000 lần, bộ nhớ EEPROM có thể ghi
100.000 lần
Hỗ trợ bootloader, có khả năng tự ghi vào bộ nhớ chương trình, cập nhật chương trình cho chip mà không cần mạch nạp.
- Timer 8 bit: 2.
- Timer 16 bit: 1.
- ADC: 6 kênh, 10 bit.
- Giao tiếp: TWI (I2C), UART, SPI
Điện áp hoạt động:
Atmega8L: 2.7V – 5.5V.
Atmega8: 4.5V – 5.5V.
Sơ đồ chân:
Page 3
Trang 4Sử dụng thạch anh ngoài :
Để chip có thể hoạt động thì cần được FUSE đúng.
Khi xuất xưởng thì mặc định chip được FUSE sử dụng dao động nội với tần số 1MHz.
Nguồn RESET:
Atmega8 có 4 cách RESET:
- Reset khi cấp nguồn.
- Reset ngoài (thông qua chân RESET).
- Watchdog RESET.
- Reset khi nguồn bị sụt áp.
II.2.2 Keypad 4x4
Keypad là một "thiết bị nhập" chứa các nút nhấn cho phép người dùng nhập các chữ số, chữ cái hoặc ký hiệu vào bộ điều khiển Keypad không chứa tất cả bảng mã ASCII như keyboard và vì thế keypad thường được tìm thấy trong các thiết bị chuyên dụng Các nút nhấn trên các máy tính điện tử cầm tay là một ví dụ về keypad Số lượng nút nhấn của một keypad thay đổi phụ thuộc vào yêu cầu ứng dụng Trong bài này tôi giới thiệu cách điều khiển của một loại keypad đơn giản, keypad 4x4.
Gọi là keypad 4x4 vì keypad này có 16 nút nhấn được bố trí dạng ma trận 4 hàng và 4 cột Cách bố trí ma trận hàng và cột là cách chung mà các keypad sử dụng Cũng giống như các ma trận LED, các nút nhấn cùng hàng và cùng cột được nối với nhau, vì thế với keypad 4x4 sẽ có tổng cộng 8 ngõ ra (4 hàng và 4 cột).
Trang 5Hoạt động của keypad: Giả sử nhút '2' được nhấn, khi đó đường C và 2
được nối với nhau Giả sử đường 2 được nối với GND (mass, 0V) thì C cũng sẽ là GND Tuy nhiên, câu hỏi đặt ra là bằng cách kiểm tra trạng thái đường C chúng ta sẽ có kết luận nút '2' được nhấn? Giả sử tất cả các đường 1, 2, 3, 4 đều nới với GND, nếu C= GND thì rõ ràng chúng ta không thể kết luận nút '1',= hay nút '2' hay nút '3' hay nút '-' được nhấn Kỹ thuật để khắc phục vấn đề này chính là kỹ thuật
"quét" keypad Kỹ thuật quét keypad bằng AVR được trình bày như sau:
- Nối tất cả 8 chân của keypad với 1 PORT của AVR, ví dụ PORTB theo thứ tự bên dưới:
Page 5
Trang 6Các chân 1, 2, 3, 4 được set như các chân Output và giữ ở mức cao, các
chân A, B, C, D là Input và có điện trở kéo lên Lần lượt kéo chân 1, 2,
3, 4 xuống thấp (lần lượt xuất giá trị 0 ra từng chân), đọc trạng thái các chân A, B, C, D để kết luận nút nào được nhấn Ví dụ như trong hình 1, nút '2' được nhấn thì quá trình quét sẽ cho kết quả như sau:
Bước 1: kéo chân 1 xuống 0 (các chân 2,3,4 vẫn ở mức cao), kiểm tra 4 chân A, B, C, D thu được kết quả D=1, C=1, B=1, A=1 (giá trị đọc
về của PINB là 00001111 nhị phân)
Bước 2: kéo chân 2 xuống 0, kiểm tra lại A, B, C, D, kết quả thu được D=1, C=0, B=1, A=1 (giá trị đọc về của PINB là 0b00001011 nhị phân) Chân C=0 tức có 1 nút ở hàng thứ 3 được nhấn, chúng ta lại đang
ở Bước thứ 2tức nút nhấn thuộc cột thứ 2 Chúng ta có thể dừng quá trình quét tại đây và kết quả thu về nút ở hàng 3, cột 2 (tức nut '2' được)
được nhấn
1 nút nào đó được nhấn thì có 4 khả năng cò thể đọc về từ 4 A,B,C,D đó là:
D=1, C=1, B=1, A=0: nút ở hàng A được nhấn, giá trị đọc về là 0x0E (các đường A,B,C,D được nối với 4 bit thấp của PORT trên AVR)
D=1, C=1, B=0, A=1: nút ở hàng B được nhấn, giá trị đọc về là 0x0D
D=1, C=0, B=1, A=1: nút ở hàng C được nhấn, giá trị đọc về là 0x0B
D=0, C=1, B=1, A=1: nút ở hàng D được nhấn, giá trị đọc về là 0x07
chúng ta nên lập 1 mảng 4 phần tử chứa 4 số có thể đọc về từ keypad Ví
dụ uint8_t scan_code[4]={0x0E,0x0D,0x0B,0x07};
II.2.3LCD 16x2
Trang 7Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị các dòng chữ hoặc số trong bảng mã ASCII Không giống các loại LCD lớn, Text LCD được chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị một ký tự ASCII Cũng vì lý do chỉ hiện thị được ký tự ASCII nên loại LCD này được gọi là Text LCD (để phân biệt với Graphic LCD có thể hiển thị hình ảnh) Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, việc kết hợp “ẩn” và “hiện” các chấm này
sẽ tạo thành một ký tự cần hiển thị Trong các Text LCD, các mẫu ký
tự được định nghĩa sẵn Kích thước của Text LCD được định nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có
Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối đa
16 ký tự Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4…Hình 1 là một ví dụ Text LCD 16x2
1 Sơ đồ chân.
Page 7
Trang 82 Thanh ghi và tổ chức bộ nhớ.
HD44780U có 2 thanh ghi 8 bits là INSTRUCTION REGISTER (IR) và DATA REGISTER (DR) Thanh ghi IR chứa mã lệnh điều khiển LCD và là thanh ghi “chỉ ghi” (chỉ có thể ghi vào thanh ghi này mà không đọc được nó) Thanh ghi
DR chứa các các loại dữ liệu như ký tự cần hiển thị hoặc dữ liệu đọc ra từ bộ nhớ LCD…Cả 2 thanh ghi đều được nối với các đường dữ liệu D0:7 của Text LCD và được lựa chọn tùy theo các chân điều khiển RS, RW Thực tế để điều khiển Text LCD chúng ta không cần quan tâm đến cách thức hoạt động của 2 thanh ghi này, vì thế cũng không cần khảo sát chi tiết chúng.
HD44780U có 3 loại bộ nhớ, đó là bộ nhớ RAM dữ liệu cần hiển thị DDRAM (Didplay Data RAM), bộ nhớ chứa ROM chứa bộ font tạo ra ký tự CGROM
(Character Generator ROM) và bộ nhớ RAM chứa bộ font tạo ra các symbol tùy chọn CGRAM (Character Generator RAM) Để điều khiển hiển thị Text LCD chúng ta cần hiểu tổ chức và cách thức hoạt động của các bộ nhớ này:
Trang 93.2 Tập lệnh của LCD.
II.3.Các linh kiện khác
Transistor C1815:
Transistor C1815 là transistor thuộc loại transistor NPN C1815 có Uc cực đại = 50V dòng Ic cực đại = 150mA
Hệ số khuếch đại hFE của C1815 trong khoảng 25 đến 100 Thứ tự các chân từ trái qua phải: E C B
Page 9
Trang 10Relay 5V:
qua các tiếp điểm của rơ-le với hiệu điện thế <= 250V (AC) là 10A.
qua các tiếp điểm của rơ-le với hiệu điện thế <= 30V (DC) là 10A.
qua các tiếp điểm của rơ-le với hiệu điện thế <= 125V (AC) là 10A.
qua các tiếp điểm của rơ-le với hiệu điện thế <= 28V (DC) là 10A.
Trang 115 SRD-05VDC-SL-C: Hiện điện thế kích tối ưu là 5V.
KIT STK500
Giới thiệu:
- AVR-STK500_USB là thiết bị Programmer hoàn hảo chuyên dùng cho 89S51/52 và tất cả các AVR Tính năng Programmer hoàn toàn tương tự như STK500 Stater KIT của hãng ATMEL, Firmware có thể cập nhật vì có sẵn trong phiên bản mới nhất của AVR Studio - Điều này đồng nghĩa với việc support mọi AVR kể cả những chips trong tương lai.
- Cải tiến mới nhất sử dụng chip USB chuyên dụng và các linh kiện SMD tạo ra board mạch chất lượng cao, nhỏ gọn và an toàn trong hộp nhựa PVC.
- Thích hợp với mọi Trình biên dịch (Compiler) cho AVR như AVR Studio,
Codevision AVR, WinAVR, AVR Dude
- USB driver support windows98, Windows XP và đặc biệt là Windows Vista
- Kết nối PC duy nhất bằng một cable mini USB nhỏ gọn, tốc độ cực cao, thích hợp với mọi laptop không cần sử dụng nguồn ngoài.
- Led chỉ báo nguồn, Program và Led báo hi.volt, nút reset
- Đặc biệt với đầu header 6 pin và cáp ISP chuyển đổi 6x1 to 5x2 cho phép bạn có thể cắm trực tiếp lên board mạch đích hoặc qua cáp nối đến đầu cáp 5x2
Phần mềm: AVR Studio, CodevisionAVR, WinAVR
Page 11
Trang 12PHẦN III: THIẾT KẾ MẠCH IV.1 Sơ đồ nguyên lý
IV.2 Sơ đồ mạch in
Trang 14PHẦN IV: MỞ RỘNG ĐỀ TÀI
-Đề tài có thể phát triển khi gắn mạch cầu H cho ổ khóa điện thực tế để bảo mật hệ thống nhà ở , cơ quan
TÀI LIỆU THAM KHẢO:
Web: codientu.com
Hocavr.com
Giao trình vi xử lý DHBK TPHCM