1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy

80 633 1

Đ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 80
Dung lượng 6,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu ta sử dụng ñiện thoại di ñộng ñể dùng vào việc báo trộm thì rất là hiệu quả, nó có thể khắc phục ñược các nhược ñiểm của hệ thống báo ñộng tại chỗ.. Tình hình nghiên cứu trong và ngo

Trang 1

LỜI NÓI ðẦU

Trong thời gian qua tình hình trộm tài sản cá nhân, gia ñình hay doanh nghiệp diễn biến hết sức phức tạp Việc phát hiện kẻ trộm ñột nhập vào nhà, kho hàng, các ngân hàng, những nơi cất tài sản quý hiếm, những tài liệu mật là rất quan trọng Thủ ñoạn của bọn kẻ trộm là thường lợi dụng sơ hở của bảo vệ hay chủ nhà ñể trộm tài sản Thủ ñoạn của chúng ngày càng tinh vi, xảo quyệt Nếu ta chỉ sử dụng các hệ thống báo ñộng tại chỗ thì kẻ trộm có thể dễ dàng khống chế tắt tất cả hệ thống ñó làm cho việc phát hiện trộm khó khăn, hoặc khi chúng ta ñang ñi xa thì hệ thống báo ñộng tại chỗ cũng không có tác dụng, gây thiệt hại

Ngày nay, với sự phát triển như vũ bão của ðiện tử viễn thông và Công nghệ thông tin ðiện thoại di ñộng ngày nay ñã không còn là thứ xa xỉ nữa mà ngược lại còn rất phổ biến, luôn luôn bên cạnh con người ở bất cứ ñâu Nếu ta sử dụng ñiện thoại di ñộng ñể dùng vào việc báo trộm thì rất là hiệu quả, nó có thể khắc phục ñược các nhược ñiểm của hệ thống báo ñộng tại chỗ Và nếu kết hợp luôn cả hai hệ thống này thì hiệu quả sẽ càng cao hơn, giúp phát hiện sớm mọi sự ñột nhập, giảm thiểu thiệt hại

Trong ñời sống chúng ta luôn tồn tại những khu vực dễ cháy, một khi có cháy xảy ra thì hậu quả thật khôn lường, gây thiệt hại rất lớn về người và của Ngày nay việc phòng cháy chữa cháy trở thành mối quan tâm hàng ñầu của nước

ta và nhiều nước trên thế giới, nó trở thành nghĩa vụ của mọi người dân Trên các phương tiện thông tin ñại chúng luôn tuyên truyền sâu rộng cho mọi người tầm quan trọng của việc phòng cháy chữa cháy, nhằm hạn chế mức thấp nhất hậu quả

do các vụ cháy gây ra Các vụ cháy thường hay xảy ra vào ban ñêm, tại những nơi có nhiều vật liệu dễ cháy, nổ, những khu dân cư ñông ñúc, khu chung cư cao tầng lúc ta lơ là, mất cảnh giác, bất cẩn, nên không khống chế kịp ñể ñám cháy lan rộng gây thiệt hại Vì vậy, việc lắp ñặt hệ thống báo cháy tại các khu vực này

là ñiều rất quan trọng và cần thiết

Xuất phát từ những yêu cầu thực tế trên em quyết ñịnh chọn ñề tài:

“Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy” ðề tài gồm có 4 chương:

- Chương 1: Tổng hợp những nghiên cứu Hệ thống chống trộm, cháy

- Chương 2: Phương pháp và nội dung nghiên cứu

- Chương 3: Thực nghiệm, phân tích kết quả

- Chương 4: Kết luận – ðề xuất

Trang 2

Với mục ñích sau khi thực hiện xong ñề tài có thể ñem ra ứng dụng trong thực tế, nhằm phục vụ việc cảnh báo trộm, cháy hiệu quả, kịp thời cho các hộ gia ñình, cơ quan, xí nghiệp, nhà xưởng, giảm thiểu hậu quả ñáng tiếc xảy ra Do thời gian thực hiện ñề tài và kiến thức hiểu biết có hạn nên ñề tài của em không thể tránh khỏi những sai sót, rất mong sự góp ý chân thành của các quý thầy cô

ñể ñề tài của em ñược hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 3

Chương 1:

TỔNG HỢP NHỮNG NGHIÊN CỨU HỆ THỐNG

CHỐNG TRỘM, CHÁY

Trang 4

1.1 Cơ sở lý luận

Ngày nay, với sự phát triển như vũ báo của khoa học kỹ thuật, ñặc biệt là

sự phát triển của Công nghệ vi ñiều khiển, vi xử lý, những ứng dụng của nó ngày càng ñược con người khai thác và vận dụng hiệu quả, tạo ra những sản phẩm thông minh, hiện ñại, góp phần giảm thiểu sức lao ñộng chân tay của con người, tiết kiệm ñược thời gian Kỹ thuật ứng dụng vi ñiều khiển ngày nay ñã thâm nhập

và có mặt trên khắp tất cả các lĩnh vực khoa học kỹ thuật của con người, từ những hệ thống lớn mang tính công nghiệp ñến những hệ thống nhỏ dân dụng Trong các ứng dụng dân dụng không thể không kể ñến lĩnh vực an ninh, tiêu biểu

là hệ thống cảnh báo trộm, cháy là ñang ñược toàn thể xã hội quan tâm

Thông thường, một hệ thống chống trộm, cháy sẽ bao gồm một thiết bị trung tâm có thể kết nối với những loại thiết bị báo, bao gồm: khói, xì gas, cảm biến phát hiện kính vỡ, cảm biến hồng ngoại phát hiện chuyển ñộng, cảm biến từ, cảm biến laser, loa-còi-nút khẩn thông báo, v.v

Ứng với mỗi cảm biến là một thiết bị ñược kết nối với trung tâm xử lý, tùy theo nhu cầu sử dụng mà thiết bị trung tâm có khả năng kết nối ña dạng như kết nối với máy tính, ñiện thoại bàn, ñiện thoại di ñộng hoặc trung tâm cảnh báo ñể thông báo cho người sử dụng biết tình trạng, nguy cơ xảy ra sự cố Trung tâm xử

lý càng cao cấp thì khả năng hoạt ñộng của hệ thống càng thông minh

ðể có thể thiết kế ñược một hệ thống cảnh báo trộm, cháy hiệu quả và tối

ưu nhất thì ñòi hỏi ta phải có ñược những kiến thức cơ bản về vi xử lý, vi ñiều khiển, kỹ thuật cảm biến, kỹ thuật lập trình cho vi xử lý, kỹ thuật ñiện tử và một phần kiến thức bên lĩnh vực ðiện tử Viễn thông

1.2 Tình hình nghiên cứu trong và ngoài nước

Hệ thống cảnh báo trộm, cháy ngày nay ñã ngày càng trở nên phổ biến và không thể thiếu ñược ñối với các hộ gia ñình, cơ quan xí nghiệp…Ở các nước tiên tiến thì hệ thống này ñã có từ lâu và trở nên rất thông dụng Như tại các công

ty, nhà xưởng, nhà riêng, nhà kho, nhà chứa các vật liệu dễ cháy nổ, nơi chứa các tài liệu mật của Chính phủ hay các Viện bảo tàng

Tại Nga, có những nhà máy ñiện, những kho lưu trữ tài liệu quý ñã ứng dụng hệ thống cảnh báo cháy, trộm kết hợp với ñiều khiển thiết bị từ xa và tự ñộng báo ñộng qua ñường dây ñiện thoại ñể tự ñộng ñóng ngắt những nơi cao áp,

tự ñộng quay số báo ñộng khi có sự cố, tự ñộng xả bình chữa cháy, mang lại hiệu

Trang 5

quả rất cao, và cũng tại Nga ựã có hệ thống báo ựộng và ựiều khiển thiết bị thông

qua mạng Internet

Ở Mỹ, tại những Cơ quan ựã cho lắp ựặt hệ thống cảnh báo trộm, cháy theo mô hình nhà thông minh tại các văn phòng chứa các tài liệu mật, quan trọng

hệ thống ựược lắp ựặt bảo mật và ựược ựiều khiển thông qua một tổng ựài nội bộ

Các hãng sản xuất hệ thống cảnh báo trộm cháy Nhật Bản như Nittan, Nohmi ựã cho ra mắt Hệ thống báo ựộng, báo trộm ựa năng với các ựặc tắnh hiện ựại như:

- Màn hình LCD hiển thị ngày, giờ, trạng thái hệ thống, vùng báo ựộng

- Có thể ựiều khiển bằng Remote

- Khả năng kết hợp cả ựầu báo không dây và có dây

- Khi có báo ựộng hệ thống sẽ hú còi, gọi ựiện thoại, gửi tin nhắn, chỉ rõ vùng báo ựộng cho gia chủ

- Khi có kẻ gian cắt ựường dây hoặc cúp ựiện hệ thống sẽ tự ựộng gửi tin nhắn báo cho gia chủ biết

- Ầ

Hình 1.1 Hệ thống cảnh báo trộm không dây của hãng SOAN (đài Loan)

Trang 6

Trên ựây là những thành tựu ựạt ựược ở các nước tiên tiến Ở Việt Nam:

- Cũng có một số ựề tài nghiên cứu sử dụng mạng ựiện thoại ựể ựiều khiển làm hệ thống cảnh báo cháy nhưng chưa thực sự hoàn chỉnh và tối ưu Các ựề tài này chỉ mới là ứng dụng cho hệ thống ựiện thoại cố ựịnh mà chưa làm ựược ựối với thuê bao di ựộng, trong khi ựiện thoại di ựộng bây giờ lại quá thông dụng Phương án phản hồi không chắnh xác do chỉ phản hồi bằng tiếng nhạc nên hiệu quả báo ựộng không cao, dễ báo ựộng nhầm

- Có một số ựề tài nghiên cứu sử dụng mạng ựiện thoại di ựộng ựể cảnh báo cháy nhưng chỉ là trên lý thuyết, chưa áp dụng vào thực tế

- Phòng cảnh sát hình sự Công an Hà Nội vừa nghiên cứu thành công thiết

bị an ninh chống cướp tiệm vàng có thể áp dụng hữu hiệu cho các cơ sở kinh doanh vàng nhưng chỉ áp dụng với những doanh nghiệp kinh doanh nhỏ

Hình 1.2 Thiết bị an ninh chống cướp tiệm vàng của Công an Hà Nội

Trên thị trường Việt Nam Hệ thống cảnh báo trộm cháy bây giờ cũng rất

ựa dạng và phong phú, phù hợp với tình hình, ựiều kiện hoàn cảnh, nhu cầu và mục ựắch riêng của từng ựối tượng sử dụng Nhưng chủ yếu là hàng nhập khẩu từ nước ngoài Một số thương hiệu có thể kể ựến như Nohmi, Nittan (Nhật), Hochiki, Horing, Hongchang, Woosung, Horing Lih (đài Loan), Caddx (Mỹ)

có xuất xứ từ nhiều nước: Trung Quốc, đài Loan, Hàn Quốc, Nhật, MỹẦ

Trang 7

Hình 1.3 Hệ thống chống trộm không dây ñiều khiển cho nhiều khu vực

Hình 1.4 Hệ thống chống trộm không dây của hãng Guardsman

Giá cả của những loại thiết bị này dao ñộng khá lớn và tùy thuộc vào công dụng, chức năng và tầm hoạt ñộng (số vùng và thiết bị quản lý, diện tích quản lý…) Vì vậy việc lắp ñặt hệ thống cảnh báo hiện ñại cho hộ gia ñình, các công ty nhỏ là vấn ñề còn xa xỉ, chưa ñược phổ biến, chúng chỉ ñược áp dụng cho những công trình tầm cỡ, các hệ thống này chưa trở thành là sản phẩm dân phổ biến do giá thành sản phẩm còn cao

Trang 8

Chương 2:

PHƯƠNG PHÁP VÀ NỘI DUNG NGHIÊN CỨU

Trang 9

2.1 Mục ñích yêu cầu ñề tài

Nhằm phục vụ việc cảnh báo trộm, cháy tự ñộng cho các hộ gia ñình, khu chung cư cao tầng, các nhà máy xí nghiệp và những nơi cần thiết khác

Từ mục ñích trên thì Hệ thống cảnh báo trộm, cháy cần ñảm bảo ñuợc các yêu cầu sau:

- Sử dụng tiện lợi và phạm vi áp dụng rộng mà không cần thay ñổi phần cứng

- Báo ñộng kịp thời nhằm giảm nhẹ thiệt hại do các vụ ñột nhập và các vụ hỏa hoạn gây ra

- Có thể báo ñộng ñến nhiều số ñiện thoại khác nhau kịp thời và chính

xác

- Hiển thị các thông số cần thiết cho người dùng

- Hoạt ñộng ổn ñịnh và ít sai số, hạn chế báo ñộng giả

Trang 10

Hình 2.1 Sơ ñồ khối tổng thể 2.3 Chức năng nhiệm vụ các khối

2.3.1 Bộ ñiều khiển trung tâm hay hộp ñiều khiển trung tâm

Là cơ quan ñầu não quan trọng, có nhiệm vụ thu nhận tín hiệu từ các thiết

bị ngoại vi, xử lý và phát tín hiệu báo ñộng Có thể báo ñộng tại chỗ qua hệ thống còi hụ, hệ thống ñèn hoặc báo ñộng (speaker) qua ñiện thoại di ñộng (mobile) Trên hộp ñiều khiển trung tâm có chứa vi ñiều khiển (ATmega32) là cơ quan ñầu não, chứa tất cả trình ñiều khiển, ñiều khiển mọi hoạt ñộng của hệ thống Màn hình LCD ñể hiển thị các thông số và hệ thống phím nhấn ñể thiết lập các thông

số cần thiết

Sau ñây em xin trình bày cụ thể các khối trong hộp ñiều khiển trung tâm:

HỘP ðIỀU KHIỂN TRUNG TÂM

THIẾT BỊ ðẦU VÀO

THIẾT BỊ BÁO ðỘNG

CÒI HỤ

ðIỆN THOẠI HẸN GIỜ

HỆ THỐNG

Trang 11

2.3.1.1 Giới thiệu họ Vi ñiều khiển AVR và sơ lược các chân của ATmega32

Vi ñiều khiển AVR do hãng Atmel (Hoa Kỳ) sản xuất ñược giới thiệu lần ñầu năm 1996 AVR có rất nhiều dòng khác nhau, bao gồm Tiny AVR (như AT tiny13, AT tiny 22 .) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi Tiếp ñến dòng AVR (chẳng hạn AT90S8535) có kích thước bộ nhớ vào loại trung bình Mạnh hơn là dòng Mega (nhưATmega32, Atmega128 .) với bộ nhớ có kích thước vài Kbyte ñến vài trăm Kbyte cùng với các bộ ngoại vi ña dạng, ñược tích

hợp trên Chip Tốc ñộ của dòng Mega cũng cao hơn các dòng khác

IC ATmega32 là IC tiêu biểu trong họ AVR Sự khác nhau cơ bản giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau

Những tính năng chính của AVR:

- ROM: 32 Kbytes

- SRAM: 2 Kbytes

- EEPROM: 1024 bytes

- 32 thanh ghi I/O

- 4 PORT I/O 8 bits

- 8 Bits Timer/Counter 0

- 16 bits Timer/Counter 1

- 8 bits Timer/Counter 2

- Bộ ñinh thời Watchdog

- ADC 8 kênh với ñộ phân giải 10 bits

- 4 kênh PWM

- Khối truyền thông USART

- Chế ñộ tiết kiệm năng lượng

Trang 12

Hình 2.2 Cấu trúc cơ bản của AVR

ATmega 32 có ñầy ñủ tính năng của họ AVR ðược ñóng vỏ 40 chân

trong ñó 32 chân vào ra dữ liệu ñược chia làm bốn

Sơ ñồ chân ñược thể hiện trên hình 2.3

Trang 13

Hình 2.3 Sơ ñồ chân của ATmega32

a Các cổng (PORT) vào ra I/O

Cổng vào ra là một trong số các phương tiện ñể vi ñiều khiển giao tiếp với các thiết bị ngoại vi ATmega32 có cả thảy 4 cổng (PORT) vào ra 8 bits: PORTA, PORTB, PORTC, PORTD tương ứng với 32 ñường vào ra Các cổng vào ra của AVR là các cổng vào ra hai chiều có thể ñịnh hướng, tức có thể ñịnh hướng cho cổng là vào hay ra Tất cả các cổng vào ra của AVR ñều có chức năng ñọc, chỉnh sửa, ghi khi sử dụng chúng như là các cổng vào ra số thông thường ðiều này có nghĩa là, khi thay ñổi hướng của một chân nào ñó thì nó cũng không ảnh hưởng ñến hướng của các chân khác Khi khảo sát các cổng như là cổng vào

ra số thông thường thì tính chất của các PORT (PORTA, PORTB, PORTC, PORTD) là tương tự nhau Do ñó, ta chỉ cần khảo sát một trong 4 PORT của vi ñiều khiển là ñủ

Mỗi một cổng vào ra của vi ñiều khiển ñều ñược liên kết với 3 thanh ghi: PORTx, DDRx, PINx (ở ñây x là thay thế cho các chữ A, B, C, D) Ba thanh ghi này sẽ ñược phối hợp với nhau ñể ñiều khiển hoạt ñộng của cổng

a.1 Thanh ghi DDRx

ðây là thanh ghi 8 bits (có thể ñọc ghi) có chức năng ñiều khiển hướng của các cổng (lối ra hay là lối vào) Khi một bits của thanh ghi này ñược set lên 1 thì chân tương ứng với nó ñược cấu hình thành ngõ ra Ngược lại nếu bits của thanh ghi DDRx là 0 thì chân tương ứng với nó ñược thiết lập thành ngõ vào

Trang 14

Ví dụ: Khi ta set tất cả các bits của thanh ghi DDRA ñều là 1 thì 8 chân tương ứng của PORTA là PA1, PA2 PA7 (ñược thiết lập thành ngõ ra)

Hình 2.4 Thanh ghi DDRA

a.2 Thanh ghi PORTx:

PORTx là thanh ghi 8 bits có thể ñọc ghi ðây là thanh ghi dữ liệu của DDRx Nếu thanh ghi DDRx thiết lập là cổng lối ra, khi ñó giá trị của thanh ghi PORTx cũng là giá trị của các chân tương ứng của DDRx, nói cách khác khi ta cho một giá trị logic lên 1 bits của thanh ghi này thì chân tương ứng với bits ñó cũng có cùng mức logic Khi thanh ghi DDRx thiết lập cổng thành lối vào thì thanh ghi PORTx ñóng vai trò như một thanh ghi ñiều khiển cổng

Hình 2.5 Thanh ghi PORTA

a.3 Thanh ghi PINx

PINx không phải là một thanh ghi thực sự, ñây là ñịa chỉ trong bộ nhớ I/O kết nối trực tiếp tới các chân của cổng Khi ta ñọc PORTx, tức là ñọc dữ liệu ñược chốt trong PORTx, còn khi ñọc PINx thì giá trị logic hiện thời của chân của cổng tương ứng ñược ñọc Vì thế ñối với thanh ghi PINx ta chỉ có thể ñọc mà không thể ghi

Hình 2.6 Thanh ghi PINA

Ngoài chức năng là cổng vào ra bình thường trên thì các cổng còn ñược tích hợp với các chức năng khác như:

Trang 15

- PORTA: chứa bộ ADC là bộ chuyển ñổi tín hiệu tương tự sang tín hiệu

số ATmega32 có tích hợp bộ ADC 8 kênh với ñộ phân giải 10 bits, tích hợp trên PORTA tương ứng từ PA0 ñến PA7

- PORTB: Kết nối LCD

- PORTC: Chỉ là các chân vào ra bình thường

- PORTD:

+ PD0 và PD1 là 2 chân dùng ñể truyền thông USART

+ PD2 và PD3 là hai chân ngắt ngoài

+ PD4 và PD5 là hai kênh PWM

b Các bộ ñịnh thời

b.1 Tổng quan về các bộ Timer/Counter trên Chip ATmega32

Timer/Counter là các module ñộc lập với CPU Chức năng chính của các

bộ Timer/Counter như tên gọi của chúng là các bộ ñịnh thời (tạo ra một khoảng thời gian, ñếm thời gian ) và ñếm sự kiện Trên các chip của AVR các bộ Timer/Counter còn có thêm chức năng là các bộ ñiều chế ñộ rộng xung PWM(Pulse Width Modulation) Ở một số dòng AVR, Timer/Counter còn ñược dùng như các bộ canh chỉnh thời gian trong các ứng dụng thời gian thực Các bộ Timer/Counter ñược chia theo ñộ rộng thanh ghi chứa giá trị ñịnh thời hay giá trị ñếm của chúng Cụ thể trên Chip ATmega32, có hai bộ Timer/Counter 8 bits (Timer/Counter 0 và Timer/Counter 2) và một bộ 16 bits (Timer/Counter 1) Chế

ñộ hoạt ñộng và phương pháp ñiều khiển từng loại Timer/Counter không hoàn toàn giống nhau, ở ATmega32 thì:

- Timer/Counter 0: là một bộ ñịnh thì 8 bits Chế ñộ hoạt ñộng của Timer/Counter 0 thực chất có thể xem như hai chế ñộ nhỏ, ñó là tạo ra một khoảng thời gian và ñếm sự kiện

- Timer/Counter 1: là bộ ñịnh thời ñếm ña năng 16 bits Bộ Timer/Counter này có 5 chức năng hoạt ñộng chính Ngoài các chức năng bình thường, Timer/Counter1 còn ñược dùng ñể tạo PMW cho các mục ñích ñiều khiển Có thể tạo hai PWM ñộc lập trên các chân OC1A (chân 19) và OC1B (chân18) bằng Timer/Counter 1

- Timer/Counter 2: Tuy là module 8 bits nhưng nó có ñến 4 chế ñộ hoạt ñộng như Timer/Counter 1, ngoài ra nó còn ñược sử dụng như một module canh chỉnh thời gian cho các ứng dụng thời gian thực

Trang 16

Trong ñề tài này em chủ yếu chỉ sử dụng Bộ Timer/Counter0 nên em xin trình bày cụ thể về bộ Timer/Counter 0

b.2 Bộ ñịnh thời 0 (Timer / Counter 0)

* Sơ ñồ khối bộ ñịnh thời 0:

Hình 2.7 Sơ ñồ khối Timer / Counter 0

Timer / Counter 0 là bộ ñịnh thời 8 bits, nó liên quan ñến 7 thanh ghi với nhiều chế ñộ thực thi khác nhau

* Các ñịnh nghĩa

Các ñịnh nghĩa sau ñây sẽ ñược sử dụng cho bộ ñịnh thời 0 và 2:

BOTTOM: Bộ ñếm ñạt ñến giá trị BOTTOM khi bộ ñếm ñạt ñến giá trị 00h

MAX: Bộ ñếm ñạt ñến giá trị MAX khi nó ñạt ñến giá trị FFh

TOP: Bộ ñếm ñạt ñến giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi ñếm, giá trị cao nhất trong chuỗi ñếm không nhất thiết bằng FFh mà có thể

là bất kỳ giá trị nào ñược quy ñịnh trong thanh ghi OCRn (n=0.2), tùy theo chế

ñộ thực thi Chức năng của các thanh ghi liên quan ñến bộ ñịnh thời 0:

Trang 17

* Thanh ghi Timer/Counter Control Register - TCCR0

Hình 2.8 Thanh ghi TCCR0

- Bits 7 - FOC0 (Force Output Compare), bits này chỉ hoạt ñộng khi các bits WGM chỉ ñịnh chế ñộ Non - PWM (chẳng hạn chế ñộ CTC) khi ở chế ñộ PWM bits này bằng 0 Ở chế ñộ Non-PWM, khi bits FOC0 ñược ghi thành 1 thì lập tức một sự kiện (“so sánh khớp cưỡng bức”) (Force Compare Match) xảy ra ở

bộ tạo sóng tức là sự kiện so sánh khớp bắt buộc xảy ra mặc dù giá trị của bộ ñịnh thời không bằng với giá trị sẵn trong thanh ghi OCR0 Lúc này ngõ ra sẽ thay ñổi tùy theo thiết lập của những bits COM01, COM02 tương ứng với nó Bits FOC0 sẽ tự ñộng bị xóa khỏi phần cứng sau một chu kỳ clock Bits này không thể ñọc

- Bits 6 - WGM00, bits 3 - WGM01 (Wareform Generation Mode), những bits này ñiều khiển các chế ñộ thực thi của bộ ñếm, theo ñó dạng sóng tương ứng ñược tạo ra từ bộ tạo sóng Các chế ñộ thực thi hỗ trợ là: Nomal, CTC, PWM

- Bits 5 - COM01, bits 4 - COM00: Compare Match Output Mode, hai bits này ñiều khiển trạng thái của các chân OC0 Nếu một trong 2 bits này ñược set thành 1 thì ngõ ra OC0 ñược ưu tiên hơn chức năng I/O thông thường Chú ý là các bits tương ứng của OC0 trong thanh ghi DDR phải ñược set ñể cho phép ngõ

ra

- Bits 2 - CS02, bits 1- CS01: Clock Select

ðây là 3 bits dùng ñể lựa chọn xung clock cho bộ ñịnh thời Bảng 2.1 lựa chọn tốc ñộ xung clock cho bộ ñịnh thời:

Trang 18

Bảng 2 1: Bảng lựa chọn tốc ñộ xung Clock cho bộ ñịnh thời

* Thanh ghi Timer/Counter Registor TCNT0

Hình 2.9 Thanh ghi TCNT0

ðây là thanh ghi ñếm 8 bits của bộ ñịnh thời 0 Giá trị thanh ghi này tăng hoặc giảm 1 ñơn vị sau mỗi chu kỳ Clock Không nên ghi vào thanh ghi này khi

nó ñang ñếm

* Thanh ghi Output Compare Register – OCR0

Hình 2.10 Thanh ghi OCR0

OCR0 là thanh ghi 8 bits, giá trị của nó ñược liên tục so sánh với giá trị của thanh ghi TCNT0 Khi giá trị của hai thanh ghi này bằng nhau thì xảy ra sự kiện so sánh khớp (compare match) Sự kiện so sánh khớp sẽ tạo ra một ngắt, nếu ngắt ñược cho phép

* Thanh ghi Timer/Counter interrupt Mask Register TIMSK

Trang 19

Hình 2.11 Thanh ghi TIMSK

- Bits 1 - OCIE0 Timer/Counter 0 (Output Compare Match Interrupt Enable) Khi bits OCIE0 ghi giá trị là 1 và bits 1 của thanh ghi trạng thái SREG ñược set thành 1 thì ngắt so sánh ñược cho phép

- Bits 0 - TOIE0 (Timer/Counter0 Overflow Interrupt Enable) Khi bits này ñược ghi là 1 và ngắt toàn cục ñược cho phép thì ngắt tràn bộ ñịnh thời (Timer/Counter0 Overflow Interrupt) ñược cho phép Khi ñó, một ngắt tương ứng sẽ ñược thực thi khi bộ ñịnh thời tràn

* Thanh ghi Timer/Counter Interrupt Flag Register - TIFR

Hình 2.12 Thanh ghi TIFR

- Bits 1 - OCF0 (Output Compare Flag 0): Bits này ñược set lên 1 khi xảy

ra “so sánh khớp” (Compare match) giữa bộ ñịnh thời (tức thanh ghi TCCN0) với thanh ghi OCR0 Cờ OCF0 sẽ tự ñộng xóa khi ngắt tương ứng ñược thực thi Ngoài ra, cũng có thể xóa cờ OCFO bằng cách ghi một giá trị logic lên nó

- Bits 0 - TOV0 (Timer/Counter0 Overlow Flag): Bits TOV0 ñược set thành 1 khi bộ ñịnh thời tràn và nó ñược xóa khi ngắt tương ứng ñược thực thi Ngoài ra cũng có thể xóa bằng cách ghi một giá trị logic vào nó

* Thanh ghi Special Funcion IO Register-SFIOR

Hình 2.13 Thanh ghi SFIOR

Trang 20

- Bits 7 - TSM (Timer/Counter Synchronization Mode): Ghi bits này thành 1 sẽ kích hoạt chế ñộ ñồng bộ bộ ñịnh thời Trong chế ñộ này, một giá trị ñược ghi vào các bits PSR0 và PSR321 sẽ ñược giữ lại, vì thế nó giữ cho tín hiệu reset của bộ chia trước (prescaler) tương ứng ñược xác nhận (do ñó bộ chia trước vẫn ở trạng thái reset) Khi bits này ñược ghi thành 0 thì các bộ ñịnh thời sẽ bắt ñầu ñếm ñồng thời

- Bits 1- PSR0 (Prescaler Reset Timer/Counter0): Khi bits này là 1 thì bộ chia trước của bộ ñịnh thời 0 sẽ ñược ñặt lại Bits này thường ñược xóa tức thời bằng phần cứng

* Thanh ghi Asynchronous Status Register - ASSR

Hình 2.14 Thanh ghi ASSR

- Bits 3 - AS0 (Asynchronous Timer/Counter 0): Khi bits AS0 là 0 thì bộ ñịnh thời ñược ñếm từ nguồn xung clock I/O Khi AS0 ñược ghi thành 1, bộ ñịnh thời ñược ñếm từ xung thạch anh ở chân TOSC1 Khi giá trị của AS0 bị thay ñổi thì nội dung của các thanh ghi TCNT0, OCR0, TCCR0 có thể bị hỏng

- Bits 2 - TCN0UB (Timer/Counter 0 Update Busy): Khi bộ ñịnh thời 0 thực thi quá trình không ñồng bộ và thanh ghi TCNT0 ñang ñược ghi thì bits TCN0UB sẽ set lên 1 Khi thanh ghi TCNT0 vừa ñược cập nhật từ thanh ghi lưu trữ tạm thì bits này bị xóa bởi phần cứng Mức logic 0 trong trường hợp này là ñể chỉ ra rằng thanh ghi TCNT0 ñã sẵn sàng ñể cập nhật một giá trị mới

- Bits 1 - OCR0UB (Output Compare Register 0 Update Busy): Khi bộ ñịnh thời 0 thực thi quá trình không ñồng bộ và thanh ghi OCR0 ñang ñược ghi thì bits OCR0UB sẽ set lên 1 Khi thanh ghi OCR0 vừa ñược cập nhật từ thanh ghi lưu trữ tạm thì bits này bị xóa bởi phần cứng Mức logic 0 trong trường hợp này là ñể chỉ ra rằng thanh ghi OCR0 ñã sẵn sàng ñể cập nhật một giá trị mới

- Bits 0 - TCR0UB (Timer/Counter Control Register 0 Update Busy): Khi

bộ ñịnh thời 0 thực thi quá trình không ñồng bộ và thanh ghi TCCR0 ñang ñược ghi thì bits TCR0UB sẽ set lên 1 Khi thanh ghi TCCR0 vừa ñược cập nhật từ thanh ghi lưu trữ tạm thì bits này bị xóa bởi phần cứng Mức logic 0 trong trường

Trang 21

hợp này là ñể chỉ ra rằng thanh ghi TCCR0 ñã sẵn sàng ñể cập nhật một giá trị mới

Nếu ghi vào một trong ba thanh ghi của bộ ñịnh thời 0 (TCNT0, OCR0, TCCR0) trong lúc cờ báo bận cập nhật (update busy flag) của chúng ñược set, thì giá trị cập nhật có thể bị hỏng và sẽ tạo ra một ngắt không biết trước

c Ngắt trong ATmega32

c.1 Khái niệm về ngắt

Ngắt là một tín hiệu gửi ñến bộ vi xử lý, yêu cầu bộ vi xử lý tạm ngừng tất

cả các hoạt ñộng hiện tại ñể “nhảy” ñến một nơi khác thực hiện một nhiệm vụ khẩn cấp nào ñó, nhiệm vụ này gọi là trình phục vụ ngắt Sau khi kết thúc nhiệm

vụ trong trình phục vụ ngắt ISR (Interrupt Service Routin), bộ ñếm chương trình

sẽ ñược trả về giá trị trước ñó ñể bộ vi xử lý quay về thực hiện tiếp những nhiệm

vụ còn dang dở Như vậy, ngắt có mức ñộ ưu tiên xử lý cao nhất, thường ñược dùng ñể xử lý các sự kiện bất ngờ nhưng không tốn quá nhiều thời gian

c.2 Trình phục vụ ngắt

ðối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR hay trình quản lý ngắt Khi một ngắt ñược gọi thì bộ vi ñiều khiển chạy chương trình phục vụ ngắt ðối với mỗi ngắt thì có một vị trí cố ñịnh trong bộ nhớ ñể giữ ñịa chỉ ISR của nó Nhóm các vị trí nhớ ñược dành riêng ñể gửi ñịa chỉ các ISR ñược gọi là bảng vector ngắt

Khi kích hoạt một ngắt thì bộ vi ñiều khiển ñi qua các bước sau:

- Vi ñiều khiển kết thúc lệnh ñang thực hiện và lưu ñịa chỉ của lệnh kế tiếp (PC) vào ngăn xếp

- Nó nhảy ñến một vị trí cố ñịnh trong bộ nhớ ñược gọi là bảng véctơ ngắt, nơi lưu giữ ñịa chỉ của một trình phục vụ ngắt

- Bộ vi ñiều khiển nhận ñịa chỉ ISR từ bảng véc tơ ngắt và nhảy tới ñó Nó bắt ñầu thực hiện trình phục vụ ngắt cho ñến lệnh cuối cùng của ISR là RETI (trở

về từ ngắt)

Khi thực hiện lệnh RETI, bộ vi ñiều khiển quay trở về nơi nó ñã bị ngắt Trước hết, nó nhận ñịa chỉ của bộ ñếm chương trình PC từ ngăn xếp bằng cách kéo hai byte trên ñỉnh của ngăn xếp vào PC Sau ñó bắt ñầu thực hiện các lệnh từ ñịa chỉ ñó

Trang 22

Bảng 2.2 trình bày vector ngắt của ATmega32, cùng với ñịa chỉ của nó trong bộ nhớ chương trình:

Bảng 2 2: Bảng vector ngắt của ATmega32

c.3 Thứ tự ưu tiên ngắt

Với AVR thì thứ tự ưu tiên ngắt là không thể thay ñổi và theo quy tắc: một vector ngắt có ñịa chỉ thấp hơn trong bộ nhớ chương trình thì có mức ñộ ưu tiên cao hơn Chẳng hạn, ngắt ngoài 0 (INT0) có mức ñộ ưu tiên cao hơn ngắt ngoài 1 (INT1)

ðể cho phép ngắt, người dùng cần cho phép ngắt toàn cục (set bits 1 trong thanh ghi SREG) và các bits ñiều khiển ngắt ñiều khiển tương ứng

Khi một ngắt xảy ra và ñang ñược phục vụ thì bits 1 trong thanh ghi SREG bị xóa Như thế, khi có một ngắt khác xảy ra, nó sẽ không ñược phục vụ

Do ñó ñể cho phép các ngắt trong khi 1 ISR (interrupt service routine) khác ñang thực thi, thì trong chương trình phải có lệnh SEI ñể set lại bits 1 trong SREG c.4 Các ngắt ngoài

ATmega32 có 3 ngắt ngoài từ INT0 ñến INT2 Tương ứng với các chân PD2, PD3 và PB2 ðiều ñặc biệt là ngay cả khi các chân INT0, INT1, INT2 của

Trang 23

vi ñiều khiển ñược cấu hình như các chân ñầu ra thì các ngắt vẫn có tác dụng nếu ñược cho phép

Các ngắt ngoài có thể ñược bắt mẫu theo cạnh lên (Rising), cạnh xuống (Falling) hay mức thấp hoặc ngắt khi có sự thay ñổi (Any change) ðiều này ñược quy ñịnh trong 3 thanh ghi liên quan ñến ngắt ngoài ñó là MCUCR, GICR

và GIFR Cụ thể các thanh ghi ñược trình bày dưới ñây:

* Thanh ghi MCUCR

Hình 2.15 Thanh ghi MCUCR

MCUCR là một thanh ghi 8 bits nhưng ñối với hoạt ñộng ngắt ngoài chúng ta chỉ quan tâm ñến 4 bits thấp của nó (4 bits cao dùng cho Power manager

và Sleep Mode) Bốn bits thấp là các bits Interrupt Sense Conytrol (ISC) trong ñó

2 bits ISC11 và ISC10 dùng cho INT1 và 2 bits ISC01 và ISC00 dùng cho INT0 Chức năng của các bits trên ñược thể hiện trong bảng 2 3

Bảng 2.3 Bảng chức năng của các bits trong thanh ghi MCUCR

Qua bảng, ta dễ dàng thấy ñược chức năng của các bits Sense Control, ví

dụ muốn Set cho INT1 là ngắt cạnh xuống (Falling Edge), trong INT0 là ngắt cạnh lên (Rising Edge), ta ñặt dòng lệnh MCUCR=0x0B (0x0B=00001011 nhị phân) trong chương trình

Trang 24

* Thanh ghi GICR

Hình 2.16 Thanh ghi GICR

GICR là thanh ghi ñiều khiển ngắt chung-GICR (General Interrupt Control Register) GICR cũng là một thanh ghi 8 bits nhưng chỉ có hai bits cao (bits 6 và bits 7) ñược sử dụng cho ñiều khiển ngắt

Bits 7- INT1 gọi là bits cho phép ngắt 1 (Interrupt Enable), set bits này bằng 1 có nghĩa là cho phép INT1 hoạt ñộng, tương tự bits 6 ñiều khiển ngắt INT0

*Thanh ghi GIFR

Hình 2.17 Thanh ghi GIFR

Thanh ghi GIFR - General Interrupt Flag Register có hai bits INTF1 và INTF0 là các bits trạng thái (hay bits cờ) của hai ngắt INT1 và INT0 Nếu có một

sự kiện ngắt xảy ra trên chân INT1, bits INTF1 ñược tự ñộng set lên 1 (tương tự cho trường hợp của INTF0), chúng ta có thể sử dụng các bits này ñể nhận ra các ngắt, tuy nhiên ñiều này là không cần thiết nếu chúng ta cho phép ngắt tự ñộng

Vì vậy, thanh ghi này thường không ñược quan tâm khi lập trình ngắt ngoài

d Bộ chuyển ñổi ADC

d.1 Giới thiệu bộ ADC của ATmega32:

Bộ ADC có chức năng biến ñổi tín hiệu tương tự (Analog signal) có giá trị thay ñổi trong một dải biết trước thành tín hiệu số (Digital signal) Bộ ADC của ATmega32 có ñộ phân giải 10 bits, giải tín hiệu ngõ vào từ 0 - Vcc Có tất cả 8 kênh ñơn (các chân ADC0 ñến ADC7), 16 tổ hợp chuyển ñổi dạng so sánh, trong

Trang 25

ñó có 2 kênh so sánh có thể khuếch ñại Bộ chuyển ñổi ADC trên AVR không họat ñộng theo nguyên lý flash ADC mà là loại chuyển ñổi xấp xỉ, lần lượt (Successive approximation ADC)

ADC trên ATmega32 cần ñược “nuôi” bằng nguốn ñiện áp riêng trên chân AVCC giá trị ñiện áp cấp cho ADC không ñược khác nguồn nuôi chip quá +/-0.3V Nhiễu (noise) là vấn ñề rất quan trọng khi sử dụng các bộ ADC, ñể giảm thiểu sai số chuyển ñổi do nhiễu, nguồn cấp cho ADC phải ñược “lọc” thật kỹ càng Một cách ñơn giản ñể tạo nguồn AVCC là dùng một mạc LC kết nối từ nguồn Vcc, ñây là cách ñược gọi ý bởi nhà sản xuất

ðiện áp tham chiếu cho ADC có thể tạo bởi 3 nguồn: Dùng ñiện áp 2.56V (cố ñịnh), dùng ñiện áp AVCC hoặc ñiện áp ngoài ñặt trên chân VREF Khi dùng ñiện áp tham chiếu, nếu dùng ñiện áp ngoài ñặt trên chân VREF thì ñiện áp này phải thực sự ổn ñịnh, nếu dùng ñiện áp tham chiếu nội 2.56V hoặc AVCC thì cần nối với 1 tụ ñiện

Hình 2.18 Cách cấp nguồn cho chân AVCC

Các chân trên PORTA ñược dùng cho bộ ADC, chân PA0 ứng với ADC0, chân PA7 ứng với ADC7

d.2 Các thanh ghi liên quan

Có 4 thanh ghi trong bộ ADC trên ATmega32 trong ñó có 2 thanh ghi data chứa dữ liệu sau khi chuyển ñổi, 2 thanh ghi ñiều khiển và chứa trạng thái của ADC

Trang 26

-Thanh ghi ADMUX (ADC multiplexer Selection Register):

Hình 2.19 Thanh ghi ADMUX

Là một thanh ghi 8 bits ñiều khiển chọn ñiện áp tham chiếu, kênh và chế

ñộ hoạt ñộng của ADC Chức năng của từng bits trên thanh ghi này như sau:

Bits7 - REFS1, bits 6 - REFS6 (Reference Selection Bits): là các bits chọn ñiện áp tham chiếu cho ADC, 1 trong 3 nguồn ñiện áp tham chiếu có thể ñược chọn là: ðiện áp ngoài từ chân VREF, ñiện áp tham chiếu nội 2.56V hoặc ñiện áp AVCC

Bảng 2.4 Bảng tóm tắt giá trị và ñiện áp tham chiếu

Bits 5- ADLAR (ADC Left Adujst Result): Là bits cho phép hiệu chỉnh trái kết quả chuyển ñổi Sở dĩ có bits này là vì ADC trên AVR có ñộ phân giải 10 bits, nghĩa là kết quả thu ñược sau chuyển chuyển ñổi là một số có ñộ dài 10 bits (tối ña 1023) AVR bố trí 2 thanh ghi data 8 bits ñể chứa giá trị ADC sau chuyển ñổi Như vậy giá trị chuyển ñổi sẽ không lấp ñầy 2 thanh ghi data, một số trường hợp ngưòi dùng muốn 10 bits kết quả nằm lệch về phía trái trong khi cũng có trường hợp người dùng muốn kết quả nằm lệch về phía phải Bits ADLAR sẽ quyết ñịnh vị trí của 10 bits kết quả trong 16 bits của 2 thanh ghi data Nếu ADLAR=0 thì kết quả sẽ ñuợc hiệu chỉnh về phía phải (thanh ghi ADCL chứa chọn 8 bits thấp và thanh ghi ADCH chứa chọn 8 bits cao nhất, các bits từ 9 ñến

2 và thanh ghi ADCL chứa 2 bits thấp nhất trong 10 bits kết quả)

Bits 4 và bits 0-MUX4, MUX0 (Analog Channel and Gain Selection Bits): Là 5 bits cho phép chọn kênh, chế ñộ và cả hệ số khuếch ñại cho ADC Do

Trang 27

bộ ADC có nhiều kênh và cho phép chuyển ñổi ADC kiểu so sánh (so sánh ñiện

áp giữa 2 chân analog) nên trước khi thực hiện chuyển ñổi, chúng ta cần set các bits MUX ñể chọn kênh và chế ñộ cần sử dụng Bảng 2.5 tóm tắt các chế ñộ hoạt ñộng của ADC thông qua giá trị của các bits MUX Trong bảng 2.5 ứng với các giá trị từ 00000 ñến 00111 (nhị phân), các kênh ADC ñược chọn ở chế ñộ ñơn kênh (tín hiệu Input lấy trực tiếp từ các chân analog và so sánh với 0V), giá trị từ

01000 ñến 11101 tương ứng với chế ñộ chuyển ñổi so sánh

Bảng 2 5 Bảng tóm tắt các chế ñộ hoạt ñộng của ADC

Trang 28

- Thanh ghi ADCSRA (ADC Control and Status Register A)

Hình 2.20 Thanh ghi ADCSRA

Là thanh ghi chính, ñiều khiển hoạt ñộng và chứa trạng thái module ADC Các bits ñược mô tả như sau

Bits7 ADEN - (ADC Enable): viết giá trị 1 vào bits này sẽ cho phép bộ ADC ñược sử dụng Tuy nhiên khi ADEN =1 không có nghĩa là ADC ñã hoạt ñộng ngay, ta cần set 1 bits khác ñể bắt ñầu quá trình chuyển ñổi ñó là bits ADSC

Bits 6 - ADCS (ADC Start Conversion): Set bits này lên 1 là bắt ñầu quá trình chuyển ñổi Trong suốt quá trình chuyển ñổi, bits ADSC sẽ ñược nguyên giá trị 1, khi quá trình chuyển ñổi kết thúc, bits này sẽ ñược trả về 0

Bits 4 - ADIF (ADC Interrupt Flag): cờ báo ngắt Khi một chuyển ñổi kết thúc, biến này ñược tự ñộng set lên 1, vì thế ta cần kiểm tra giá trị bits này trước khi thực hiện ñọc giá trị chuyển ñổi ñể ñảm bảo quá trình chuyển ñổi ñược hoàn tất thực sự

Bits 3 - ADIE (ADC Iterrupt Enable): Bits cho phép ngắt, nếu bits này ñược set bằng 1 và bits cho phép ngắt toàn cục (bits 1 trong thanh ghi trạng thái của chip) ñược set, một ngắt xảy ra khi một quá trình chuyển ñổi ADC kết thúc

và các giá trị chuyển ñổi ñược cập nhật

Bits 2 - ADPS2, bits 0 - ADPS0 (ADC Prescaler select bist): Các bits chọn hệ số chia xung nhịp cho ADC, ADC cũng như tất cả các module khác trên AVR, cần ñược giữ nhịp bằng một nguồn xung clock Xung nhịp này ñược lấy từ nguồn xung chính của chip thông qua một hệ số chia Các bits ADPS cho phép chọn hệ số chia từ nguồn clock chính ñến ADC

Trang 29

Bảng 2.6 Bảng chọn hệ số chia xung nhịp cho ADC

- Thanh ghi ADCH và ADCL (ADC Data Register)

Hai thanh ghi chứa giá trị của quá trình chuyển ựổi Do bộ ADC trên AVR

có ựộ phân giải 10 bits nên cần hai thanh ghi này ựể chứa giá trị chuyển ựổi Tuy nhiên, tổng số bits của hai thanh ghi 8 bits là 16, kết quả này lớn hơn 10 bits của kết quả chuyển ựổi

ADLAR=0

ADLAR=1

Hình 2.21 Thanh ghi ADLAR

Thông thường, 2 thanh ghi data ựược sắp xếp theo ựịnh dạng chung ADLAR=0, ADCL chứa 8 bits thấp và 2 bits thấp của ADCH chứa hai giá trị cao nhất của giá trị thu ựược Chú ý thứ tự ựọc của hai thanh ghi này ựể tránh ựọc sai kết quả, ta cần ựọc thanh ghi ADCL trước và ADCH sau, vì sau khi ADCH ựược ựọc, các thanh ghi data có thể ựược cập nhật giá trị tiếp theo

- Thanh ghi SFIOR (Spacial Function Register C)

Thanh ghi chức năng ựặc biệt, 3 bits cao trong thanh ghi này quy ựịnh nguốn cấp cho ADC nếu chế ựộ Auto Trigger ựược sử dụng đó là các bits ADTS 2 và ADTS0 (Auto Trigger Source) Các loại nguồn kắch ựược trình bày dưới Bảng 2.7

Trang 30

Hình 2.22 Thanh ghi SFIOR Bảng 2 7 Nguồn kích ADC trong chế Auto Trigger:

2.3.1.2 Giới thiệu LCD 20x4

a Cấu tạo:

LCD 20x4 thuộc loại Text LCD là 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 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ị ñược một ký tự ASCII Cũng vì lý do ñó 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ị ñược 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 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 sẵn Kích thước 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ó Cụ thể LCD 20x4 dùng trong ñề tài này là loại

có 4 dòng và mỗi dòng hiển thị ñược tối ña 20 ký tự

Trang 32

Bảng 2.8 Bảng tóm tắt thứ tự các chân của LCD 16x4

Chức năng

Số thứ

tự chân

1

Ghi dữ liệu ðọc dữ liệu ðiều khiển LCD

0

1

Từ 1 xuống 0

Vô hiệu hóa LCD LCD hoạt ñộng Bắt ñầu ghi/ñọc LCD

Chân 1 và 2 là các chân nguồn ñược nối với GND và nguồn 5V, Chân 3

ñể chỉnh ñộ tương phản, chân này ñược nối với 1 biến trở chia áp Trong quá trình LCD hoạt ñộng, ta chỉnh biến trở này ñể ñạt ñược ñộ tương phản cần thiết Các chân ñiều khiển RS, R/W, EN và các ñường dữ liệu ñược nối trực tiếp ñến vi ñiều khiển Tùy theo chế ñộ 4 bits hoặc 8 bits mà các chân D0-D3 có thể bỏ qua hoặc nối với v i ñiều khiển

Trang 33

c Thanh ghi và tổ chức bộ nhớ

LCD 20x4 có hai thanh ghi 8 bits là INTRUCTION REGISTER (IR) và DATA REGISTER (DR) Thanh ghi DR 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 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ả hai thanh ghi ñều ñược nối với các ñường dữ liệu D0 ÷ 7 của LCD và ñược lựa chọn tùy theo các chân ñiều khiển RS, RW

c.1 Thanh ghi DDRAM

DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD

c.2 Thanh ghi CGROM

Là vùng nhớ cố ñịnh chứa ñịnh nghĩa Font cho các ký tự Chúng ta không trực tiếp truy xuất vào vùng nhớ này LCD 20x4 sẽ tự thực hiện khi có yêu cầu ñọc Font ñể hiển thị Một ñiều ñáng lưu ý là ñịa chỉ font của mỗi ký tự vùng nhớ CGROM chính là mã ASCII của ký tự ñó

CGROM và DDRAM ñược tự ñộng phối hợp trong quá trình hiển thị của LCD Vùng nhớ CGROM ñược chỉ rõ trong bảng 2.9

Bảng 2 9 Bảng vùng nhớ CGROM

Trang 34

c 3 Thanh ghi CGRAM

Là vùng nhớ chứa các symbol do người dùng tự ñịnh nghĩa, mỗi symbol

có kích thước 5x8 và ñược dành cho 8 ô nhớ 8 bits Các symbol thường ñược ñịnh nghĩa trước và ñược gọi hiển thị khi cần thiết Vùng này có tất cả 64 ô nhớ nên có thể có tối ña 8 symbol ñược ñịnh nghĩa

d ðiều khiển hiển thị LCD

d.1 Các chân ñiều khiển LCD

Các chân ñiều khiển việc ñọc và ghi bao gồm: RS, R/W và EN

- RS (chân số 3): Lựa chọn thanh ghi (Select Register), chân này cho phép lựa chọn 1 trong hai thanh ghi IR hoặc DR ñể làm việc Vì cả hai thanh này ñều ñược kết nối với các chân data của LCD nên cần 1 bits ñể lựa chọn giữa chúng Nếu RS=0, thanh ghi IR ñược chọn và nếu RS=1 thanh ghi DR ñược chọn Ta biết rằng thanh ghi IR là thanh ghi chứa mã lệnh cho LCD vì thế nếu muốn gửi 1

mã lệnh lên LCD thì chân RS phải ñược set về 0 Ngược lại, khi muốn giải mã ASCII của ký tự cần hiển thị lên LCD thì ta set RS=1 ñể chọn thanh ghi DR

- R/W (chân số 4): Chân lựa chọn giữa việc ñọc và ghi Nếu R/W=0 thì dữ liệu sẽ ñược ghi từ bộ ñiều khiển ngoài vào LCD Nếu R/W=1 thì dữ liệu ñược ñọc từ LCD ra ngoài

- EN (chân số 5): cho phép LCD hoạt ñộng (Enable), chân này cần ñược kết nối với bộ ñiều khiển ñể cho phép thao tác LCD ðể ghi dữ liệu vào LCD ta phải set chân EN=0, tiếp ñến xuất dữ liệu ñến các chân D0÷7, sau ñó set chân EN lên 1 và cuối cùng xóa EN về 0 ñể tạo 1 xung cạnh xuống

d.2 Tập lệnh LCD

Trang 35

Bảng 2 10 Tập lệnh LCD (Trích hocavr.com)

2.3.2 Thiết bị ñầu vào

2.3.2.1 Khối cảnh báo cháy

a Cách nhận biết và báo cháy

Khi một ñám cháy xảy ra thì thường có các dấu hiệu sau:

- Lửa, khói, vật liệu chỗ cháy bị phá hủy

- Nhiệt ñộ vùng cháy tăng lên cao

- Không khí bị ôxy hóa mạnh

- Có mùi cháy khét

ðể cảnh báo cháy, ta có thể dựa vào các dấu hiệu ñó ñể ñặt các cảm biến làm thiết bị báo cháy Kịp thời phát hiện ñám cháy, khống chế ở giai ñoạn ñầu,

ñể giảm thiểu thiệt hại

b Các bộ phận nhận biết và cảnh báo cháy

b.1 Cảm biến nhiệt ñộ

Trang 36

Là loại cảm biến có tác dụng chuyển tín hiệu vật lý (nhiệt ñộ) sang tín hiệu ñiện ðây là loại cảm biến có ñộ nhạy tương ñối cao và tuyến tính

Nguyên tắc hoạt ñộng của nó là dòng ñiện hay ñiện áp ñầu ra sẽ thay ñổi khi nhiệt ñộ thay ñổi Có nhiều loại cảm biến nhiệt ñược chế tạo theo những công nghệ khác nhau tiêu biểu như các cảm biến nhiệt ñược thiết kế thành các IC chuyên dụng với ñộ nhạy cao, ñiện áp ra thay ñổi tỷ lệ thuận với nhiệt ñộ (LM35, LM335)

- LM335 là một Sensor nhiệt thích hợp ñể cảm nhận sự thay ñổi của nhiệt

ñộ, nó hoạt ñộng như một Zener có ñiện áp ñánh thủng tỷ lệ thuận với nhiệt ñộ tuyệt ñối với ñộ gia tăng 10mV/ºK LM335 hoạt ñộng trong phạm vi dòng từ 400µA ñến 5mA mà không thay ñổi ñặc tính, có sai số nhỏ hơn 1ºC trên tầm 100ºC, ñặc biệt có áp ngõ ra thay ñổi tuyến tính với nhiệt ñộ Tuy nhiên, LM335 chỉ có ñiện áp ñánh thủng tỷ lệ với nhiệt ñộ tuyệt ñối nên việc tính toán và thiết

kế mạch khó khăn hơn nên ít sử dụng

Hình 2.24 IC LM335

- ðiện trở nhiệt: Là loại ñiện trở có giá trị ñiện trở thay ñổi tuyến tính với thay ñổi của nhiệt ñộ với giá trị ñiện trở là 100K/25ºC Tiêu biểu cho cảm biến nhiệt loại này là PT100 Ưu ñiểm của loại cảm biến này là cho ñộ chính xác cao, dải nhiệt ñộ tính toán rộng (có thể lên ñến vài trăm ñộ) việc tính toán và thiết kế mạch ñơn giản, nhưng nhược ñiểm là giá thành cao

Trang 37

Hình 2.25 Cảm biến PT100

- LM35 là loại cảm biến bán dẫn ñược chế tạo thành IC chuyên dụng với

ñộ nhạy cao, ñiện áp ra tỷ lệ tuyến tính với nhiệt ñộ, dải nhiệt ñộ phù hợp với hệ thống cảnh báo cháy, nhỏ, gọn, giá thành rẻ Chính vì những ưu ñiểm vậy, nên

em quyết ñịnh chọn IC LM35 làm cảm biến nhiệt sử dụng trong ñề tài ñể phát hiện sự gia tăng nhiệt ñộ khi có cháy

* Sơ lược về IC LM35

Theo datasheet của LM35 ta thấy, LM35 là một mạch cảm biến tích hợp

có ñiện áp ñầu ra tỷ lệ tuyến tính với nhiệt ñộ ứng với Celsius (ºC) Do ñó nó có lợi thế hơn các bộ cảm biến nhiệt ñộ tuyến tính hiệu chuẩn tại Kelvin (ºK), ñó là

ta không cần phải trừ ñi một lượng hằng số ñiện áp ñể ñược giá trị cần ño Nó không cần bất kỳ một sự hiệu chỉnh nào bên ngoài ñể có ñược ñộ chính xác ñiển hình ±¼ºC ở nhiệt ñộ phòng và ±¾ºC ứng với trên toàn dải rộng Dải nhiệt ñộ giới hạn ño ñược của LM35 là từ -55º ñến 150ºC

ðặc tính của LM35 có thể tóm tắt như sau:

- Hiệu chỉnh trực tiếp trong thang nhiệt ñộ Celsius (thang bách phân)

- ðiện áp ra tuyến tính 10mV/ºC

- Dải nhiệt ñộ ño giới hạn từ -55º ñến 150ºC

- Thích hợp cho các ứng dụng từ xa

- Chi phí sản xuất thấp nên giá thành sản phẩm rẻ

- ðiện áp hoạt ñộng từ 4 ñến 30V Có thể cấp nguồn ñơn hoặc nguồn ñối xứng

Trang 38

- Dòng ñiện tiêu thụ nhỏ hơn 60µA

- Sự phát nhiệt thấp 0.08ºC trong không khí

- ðộ phi tuyến thấp, chỉ ±¼ºC

- Trở kháng ñầu vào thấp 0.1Ω cho 1mA

LM35 có thể ñược thiết kế dưới dạng platics hay dưới dạng TO

Sơ ñồ chân như hình 2.26:

Hình 2.26 Sơ ñồ chân cảm biến LM35

Trang 39

* LM35 với ADC

ðối ATmega32, 8 chân của PORTA ñược sử dụng làm 8 kênh ñầu vào ADC ðể sử dụng tính năng ADC của ATmega 32, ta thiết kế phần cứng của vi ñiều khiển như sau:

- Chân AVCC: Chân này bình thường khi thiết kế mạch chúng ta ñưa lên Vcc (5V), nhưng khi trong mạch có sử dụng kênh ADC của phần cứng thì ta phải nối chân này lên Vcc qua một cuộn cảm, nhằm mục ñích cấp nguồn ổn ñịnh cho các kênh ñầu vào của bộ chuyển ñổi

- Chân AREF: Chân này cần cấp một giá trị ñiện áp ổn ñịnh, ñược sử dụng làm ñiện áp tham chiếu, chính và vậy ñiện áp cấp vào chân này cần ổn ñịnh,

vì khi nó thay ñổi làm cho giá trị ADC thu ñược ở các kênh bị trôi (thay ñổi) không ổn ñịnh với một giá trị ñầu vào Ta có công thức sau:

ADCx=(Vin*1024)/AREF Dựa vào công thức trên ta có thể thấy ñược, giá trị ADC ñọc về phụ thuộc vào ñiện áp ñầu vào Vint Giá trị ADC thu ñược từ các kênh ñược lưu vào 2 thanh ghi ADCH và ADCL khi sử dụng ta phải ñọc giá trị từ các thanh ghi này, khi sử dụng ở chế ñộ 8 bits thì chỉ lưu vào thanh ghi ADCL

Dựa vào Datasheet của LM35 ta thấy, giá trị ñiện áp ñầu ra tỷ lệ tuyến tính với nhiệt ñộ, cứ 10mV tương ứng với 1ºC Ở 0ºC ñiện áp ra là 0V, tương ứng với giá trị ADC là 0 Với Vref =5V, nếu dùng 8 bits thì giá trị ACD từ 0 ñến

255, lấy tròn 250 mức Mỗi giá trị ADC tương ứng với 5V/250=20mV Vậy cứ 1 ADC tương ứng với 2ºC Muốn tăng ñộ phân giải ADC ta giảm Vref

b.2 Cảm biếnkhí Gas

* Cảm biến khói / khí gas và cách nhận biết

Thường cảm biến khói/khí gas là bộ phận riêng biệt chạy bằng PIN ñược lắp ñặt trên trần nhà, trên tường Ngoài yêu cầu kỹ thuật (chính xác, an toàn) còn ñảm bảo yêu cầu về mặt thẩm mỹ Có hai cách cơ bản ñể thiết kế bộ cảm biến khói

- Cách thứ nhất là sử dụng nguyên tắc Ion hóa Người ta sử dụng một lượng nhỏ chất phóng xạ ñể Ion hóa trong bộ cảm biến Khi bị Ion hóa sẽ dẫn ñiện và tạo thành một dòng ñiện chạy giữa hai cực ñã ñược nạp ñiện Khi các phần tử khói lọt vào khu vực cảm nhận, ñược Ion hóa sẽ làm tăng ñiện trở trong buồng cảm nhận và làm giảm luồng ñiện giữa hai cực Khi luồng ñiện giảm ñến một giá trị nào ñó thì bộ cảm biến sẽ phát hiện và phát tín hiệu báo ñộng

Trang 40

Hình 2.27 Cảm biến khói

Hình 2.28 Cảm biến khí gas

- Cách thứ hai là sử dụng các linh kiện thu phát quang Người ta dùng linh kiện phát quang (LED, LED hồng ngoại…) chiếu một tia ánh sáng qua vùng bảo

vệ vào một linh kiện thu quang (photo diode, photo transitor, quang trở .) Khi

có cháy, khói bay ngang qua vùng bảo vệ sẽ che chắn hoặc làm giảm cường ñộ ánh sáng chiếu vào linh kiện thu Khi cường ñộ sáng giảm ñến một mức nào ñó thì bộ cảm biến sẽ phát hiện và phát tín hiệu báo ñộng

- Trong hai cách ñó thì phương pháp thứ hai nhận tín hiệu không chính xác, nên rất dễ báo ñộng nhầm Cách thứ nhất tuy việc lắp ñặt và mua linh kiện hơi

Ngày đăng: 31/08/2014, 09:14

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Phan Quốc Phô, Nguyễn ðức Chiến (2006), Giáo trình cảm biến, Nhà xuất bản Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: Giáo trình cảm biến
Tác giả: Phan Quốc Phô, Nguyễn ðức Chiến
Nhà XB: Nhà xuất bản Khoa học và Kỹ thuật
Năm: 2006
2. Ngụ Diờn Tập(2003), Kỹ thuật vi ủiều khiển AVR, Nhà xuất bản Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: (2003), Kỹ thuật vi ủiều khiển AVR
Tác giả: Ngụ Diờn Tập
Nhà XB: Nhà xuất bản Khoa học và Kỹ thuật
Năm: 2003
3. Dương Minh Trớ (1998), Sơ ủồ chõn linh kiện và bỏn dẫn, Nhà xuất bản Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: Sơ ủồ chõn linh kiện và bỏn dẫn
Tác giả: Dương Minh Trớ
Nhà XB: Nhà xuất bản Khoa học và Kỹ thuật
Năm: 1998
4. Nguyễn Trọng Thắng, Giỏo trỡnh mỏy ủiện, Nhà xuất bản ðại học Quốc gia TP.HCM Sách, tạp chí
Tiêu đề: Giỏo trỡnh mỏy ủiện
Nhà XB: Nhà xuất bản ðại học Quốc gia TP.HCM
5. Nguyễn Văn ðịnh, Bài giảng mụn học thực hành vi ủiều khiển, sỏch lưu hành nội bộ Sách, tạp chí
Tiêu đề: Bài giảng mụn học thực hành vi ủiều khiển
6. Trần Văn Hùng, Bài giảng kỹ thuật lập trình hệ thống nhúng, sách lưu hành nội bộ Sách, tạp chí
Tiêu đề: Bài giảng kỹ thuật lập trình hệ thống nhúng
7. Các Website tham khảo: - www.hocavr.com - www.dientuvietnam.net - www.codientuvietnam.net - www.alldatasheet.com - www.atmel.com Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Hệ thống cảnh báo trộm không dây của hãng SOAN (đài Loan) - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 1.1. Hệ thống cảnh báo trộm không dây của hãng SOAN (đài Loan) (Trang 5)
Hình 1.2. Thiết bị an ninh chống cướp tiệm vàng của Công an Hà Nội. - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 1.2. Thiết bị an ninh chống cướp tiệm vàng của Công an Hà Nội (Trang 6)
Hình 1.4 Hệ thống chống trộm không dây của hãng Guardsman - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 1.4 Hệ thống chống trộm không dây của hãng Guardsman (Trang 7)
Hỡnh 1.3. Hệ thống chống trộm khụng dõy ủiều khiển cho nhiều khu vực. - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
nh 1.3. Hệ thống chống trộm khụng dõy ủiều khiển cho nhiều khu vực (Trang 7)
Hỡnh 2.1. Sơ ủồ khối tổng thể  2.3. Chức năng nhiệm vụ các khối - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
nh 2.1. Sơ ủồ khối tổng thể 2.3. Chức năng nhiệm vụ các khối (Trang 10)
Hình 2.2 Cấu trúc cơ bản của AVR - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 2.2 Cấu trúc cơ bản của AVR (Trang 12)
Hỡnh 2.3. Sơ ủồ chõn của ATmega32 - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
nh 2.3. Sơ ủồ chõn của ATmega32 (Trang 13)
Hỡnh 2.7 Sơ ủồ khối Timer / Counter 0 - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
nh 2.7 Sơ ủồ khối Timer / Counter 0 (Trang 16)
Bảng  2.2  trỡnh  bày  vector  ngắt  của  ATmega32,  cựng  với  ủịa  chỉ  của  nú  trong bộ nhớ chương trình: - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
ng 2.2 trỡnh bày vector ngắt của ATmega32, cựng với ủịa chỉ của nú trong bộ nhớ chương trình: (Trang 22)
Hình 2.18. Cách cấp nguồn cho chân AVCC - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 2.18. Cách cấp nguồn cho chân AVCC (Trang 25)
Hình 2.21. Thanh ghi ADLAR - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 2.21. Thanh ghi ADLAR (Trang 29)
Hình 2.23. LCD 20x4 - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 2.23. LCD 20x4 (Trang 31)
Bảng 2. 9. Bảng vùng nhớ CGROM - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Bảng 2. 9. Bảng vùng nhớ CGROM (Trang 33)
Hình 2.25. Cảm biến PT100 - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
Hình 2.25. Cảm biến PT100 (Trang 37)
Hỡnh 2.26. Sơ ủồ chõn cảm biến LM35 - Thiết kế, chế tạo hệ thống cảnh báo trộm, cháy
nh 2.26. Sơ ủồ chõn cảm biến LM35 (Trang 38)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w