Xây dựng hệ thống báo cháy và khóa điện tử
Trang 1LỜI NÓI ĐẦU
Với sự phát triển không ngừng của khoa học công nghệ, cuộc sống con người ngày càng trở nên tiện nghi và hiện đại hơn Điều đó đem lại cho chúng ta nhiều giải pháp tốt hơn, đa dạng hơn trong việc xử lý những vấn đề tưởng chừng phức tạp trong cuộc sống Việc ứng dụng các thành tựu khoa học kỹ thuật hiện đại trong tất cả các lĩnh vực đã và đang phổ biến trên toàn thế giới, thay thế dần các phương pháp thủ công, lạc hậu, và ngày càng được cải tiếnhiện đai hơn, hoàn mỹ hơn
Cùng với sự phát triển chung đó, nước ta cũng đang mạnh mẽ tiến hành công nghiệp hóa vàhiện đại hóa đất nước để theo kịp sự phát triển của các nước trong khu vực và trên thế giới Trong đó lĩnh vực điện tử ngày càng đóng vai trò quan trọng trong việc phát triển kinh tế và đời sống con người Sự phổ biến của nó đóng góp không nhỏ tới sự phát triển của các nghành sản xuất, đặc biệt là trong lĩnh vực tự động hóa, nó đã phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận, chia sẻ thông tin hiện đại và toàn diện hơn Cùng với đó, vi xử lý
và vi điều khiển ngày càng phát triển như vũ bão, vai trò của chúng trong công nghiệp và cuộc sống thường ngày cũng càng trở nên quan trọng
Với sự phát triển đó cùng với niềm đam mê trong lĩnh vực này, chúng em quyết định chọn đề tài XÂY DỰNG HỆ THỐNG BÁO CHÁY VÀ KHÓA ĐIỆN TỬ làm đề tài tốt nghiệp
Trong thời gian thực hiện đề tài chúng em đã rất nỗ lực nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, chúng em rất mong được sự đóng góp phê bình từ phía thầy cô
Nhóm sinh viên thực hiện đề tài
Trang 2LỜI CẢM ƠN
Trong thời gian thực hiện đề tài, dù gặp nhiều khó khăn nhưng chúng em đã hoàn thành đề tài, đó không chỉ là sự nỗ lực của chính chúng em là những người thực hiện đề tài này mà còn kể đến sự giúp đỡ tận tình của thầy cô, bạn bè Nhóm thực hiện
đề tài xin chân thành gửi lời cảm ơn đến các quý thầy cô trong khoa công nghệ điện tử- thông tin đã nhiệt tình giảng dạy những kiến thức chuyên môn làm cơ sở để chúng
em thực hiện tốt đồ án tốt nghiệp
Đặc biệt chúng em xin gửi lời cảm ơn sâu sắc nhất đến thầy Nguyễn Hoàng Dũng- giảng viên hướng dẫn đề tài đã nhiệt tình giúp đỡ và chỉ dậy cho chúng em những lời chỉ dạy quý báu, đã giúp chúng em có những định hướng tốt nhất cho việc thực hiện đề tài
Nhóm sinh viên thực hiện đề tài
Trang 3MỤC LỤC
TÓM TẮT ĐỒ ÁN 5
CHƯƠNG 1: 6
GIỚI THIỆU ĐÊ TÀI 6
I Chọn đề tài: 6
II Chức năng của mạch: 6
III Yêu cầu: 6
CHƯƠNG 2: 7
SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG 7
I Nguyên tắc thiết kế: 7
1 Hệ thống báo cháy: 7
2 Khóa điện tử: 7
II Sơ đồ khối: 8
III Khối trung tâm: 9
3.1 Chức năng: 9
3.2 Linh kiện sử dụng: 9
IV Khối cảm biến: 13
1 Chức năng: 13
2 IC cảm biến nhiệt Lm35: 14
V Khối giao tiếp người dùng: 16
1 Chức năng: 16
2 Linh kiện sử dụng: 16
VI Khối hiển thị nhiệt độ: 21
6.1 Khối giải mã: 21
6.2 Khối hiển thị: 23
VII Khối thực thi: 25
VIII Khối nguồn: 25
8.1 Hoạt động: 25
8.2 Linh kiện ổn áp Lm7805: 26
CHƯƠNG 3: 27
LẬP TRÌNH ĐIỀU KHIỂN 27
I Giải thuật chương trình: 27
1 Hiển thị Led: 27
Trang 42 Hiển thị LCD: 30
3 Ma trận phím: 31
4 Chuyển đổi tương tự số( ADC): 32
CHƯƠNG 4: 35
THI CÔNG MẠCH 35
I Thiết kế mạch in trên phần mềm ORCAD: 35
1 Giới thiệu về Orcad: 35
2 Vẽ mạch nguyên lý bằng Capture: 35
3 Vẽ mạch in bằng Layout: 41
4 Hoàn thiện mạch: 49
CHƯƠNG 5: 50
CODE Chương Trình 50
1.Code chương trình cảm biến nhiệt độ và hiển thị lên led 7 đoạn : 50
2.Code khóa phím điện tử : 52
CHƯƠNG 6: 60
KẾT QUẢ THỰC HIỆN 60
TÀI LIỆU THAM KHẢO: 61
Trang 5TÓM TẮT ĐỒ ÁN
Kỹ thuật vi xử lý hiện nay đang rất phát triển, so với kĩ thuật số thì kỹ thuật vi xử lý nhỏ gọn hơn rất nhiều , do nó được tích hợp lại và được lập trình để điều khiển.
Với tính ưu việt của vi xử lý thì trong phạm vi đồ án nhỏ này , nó được ứng dụng trong việc điều khiển chuyển đổi tín hiệu tương tự sang tín hiệu số , giao tiếp với bàn phim 4x4 ,hiển thị trên LCD và LED 7 đoạn
Thiết kế mạch đo cảm biến nhiệt độ dải từ 00 đến 990 hiển thị số.
giao tiếp với bàn phím 4x4 cho phép nhập mật khẩu và kiểm tra mật khẩu được lưu trong bộ nhớ eeprom hiển thị trên màn hình LCD 16x2
Viết chương trình và thiết lập phần cứng để đáp ứng các yêu cầu trên
Trang 6 Với sự phát triển cùng niểm đam mê trong lĩnh vực này, chúng em chọn đề tài tốt nghiệp là : “XÂY DỰNG HỆ THỐNG BÁO CHÁY VÀ KHÓA ĐIỆN TỬ”
II Chức năng của mạch:
Khóa điện tử: yêu cầu nhập mật khẩu từ keypad, nếu mật khẩu đúng thì đèn led sáng( mở cửa), nếu mật khẩu sai thì đèn led không sáng( cửa vẫn đóng)
Hệ thống báo cháy: nhiệt độ vượt quá 70oC thì đèn led sáng( cảnh báo cháy)
III Yêu cầu:
1 Yêu cầu về chức năng:
Mạch hoạt động đầy đủ chức năng đặt ra
Hoạt động ổn định
2 Yêu cầu phi chức năng: chi phí vừa phải, tính thẩm mỹ cao
Trang 7CHƯƠNG 2:
SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG
I Nguyên tắc thiết kế:
1 Hệ thống báo cháy:
Đo nhiệt độ môi trường và hiển thị lên led 7 thanh
Lập trình: dùng cảm biến nhiệt độ độ lên Led 7 thanh và báo động nếu nhiệt độ vượt mức cho phép thì sẽ có tín hiệu thông báo trong đồ án là led sáng
2 Khóa điện tử:
Khi sử dụng ( mở khóa ) thì người sử dụng được yêu cầu nhập mật khẩu, giao tiếp giữa người dùng với hệ thống thông qua bàn phím điều khiển và hiển thị trên màn hình LCD
Lập trình:
Khi người dùng nhập mật khẩu:
Hệ thống so sánh mật khẩu vừa nhập với mã ( mã này đã được thiết lập trước)
o Nếu mật khẩu đúng( khớp với mã) thì cửa sẽ mở Trong đề tài này việc mở cửa
mô phỏng bằng việc Led sáng
o Nếu mật khẩu sai thì không có gì xảy ra tức của vẫn đóng, tương ứng Led khôngsáng và yêu cầu nhập lại mật khẩu
Trang 8Khối trung tâm
Khối cảm biến
Khối thực thi
Khối giao tiếp người dùng
II Sơ đồ khối:
Khối cảm biến nhận nhiệt độ từ môi trường bên ngoài chuyển thành mức điện áp
DC tương ứng và đưa tín hiệu tương tự này tới khối trung tâm( cụ thể là tới bộ
ADC -chuyển đổi tương tự/ số được tích hợp trong chip Atmega32) Atmega32 nhận tín hiệu tương tự và chuyển đổi nó sang tín hiệu số, tín hiệu số được đưa ra khối hiển thị nhiệt độ và khối thực thi
Khối giao tiếp người dùng: giao tiếp với người dùng bằng keypad và màn hình LCD, thông qua việc cho phép nhập mật khẩu để mở cửa qua keypad và hiển thị trên màn hình LCD
Khối thực thi: mô phỏng bằng 2 đèn Led
o Nhận tín hiệu điều khiển từ khối trung tâm để điều khiển sáng hoặc tắt Led, trong thực tế việc sáng, tắt led có thể hiểu là việc đóng mở cửa Mật khẩu nhập đúng thì đèn led sáng( mở cửa), mật khẩu nhập sai thì đèn led không sáng( cửa vẫn đóng)
o Nếu nhiệt độ vượt mức cho phép thì đèn Led sẽ sáng( báo động)
Trang 9 Khối hiển thị nhiệt độ:
o Khối hiển thị nhiệt độ gồm 2 khối con: khối giải mã và khối hiển thị
o Khối nhận tín hiệu từ khối trung tâm, giải mã và hiển thị nhiệt độ lên led 7 thanhđôi
III. Khối trung tâm :
III.1 Chức năng:
Khối trung tâm sử dụng chip vi điều khiển Atmega32, khối được kết nối với các khối khác và làm nhiệm vụ trung tâm xử lý tín hiệu
III.2 Linh kiện sử dụng :
AVR là một họ vi điều khiển do hãng Atmel sản xuất ( Atmel cũng là nhà sản xuất dòng vi điều khiển 89C51 ).AVR là chip vi điều khiển 8 bít với cấu trúc tậplệnh đơn giản hóa - RISC (Reduced Instruction Set Computer), một kiểu cấu trúcđang thể hiện ưu thế trong các bộ vi xử lý
Tại sao AVR : so với các chip vi điều khiển 8 bits khác , AVR có nhiều đặc tính hơn hẳn , hơn cả trong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng :
Gần như chúng ra không cần mắc thêm bất kì linh kiện phụ nào khí sử dụng avr , thâm chí không cần nguồn tạo xung clock cho chip (thường là các khối thạch anh)
Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản , có loại mạch nạp chỉ cần vài điện trở là có thể làm được , một số AVR còn hỗ trợ lập trình on_chip bằng bootloader không cần mạch nạp
bên cạnh lập trình bằng ASM , cấu trúc AVR được thiết kế tương thích C
Nguồn tài nguyên về source code , tài liệu , application note rất lớn trên internet
Trang 10Khối trung tâm sử dụng vi điều khiển Atmega32:
Atmega32 là vi điều khiển thuộc họ AVR của hãng Atmel, có 40 chân trong đó
có 32 chân I/O, sử dụng thạch anh ngoài 8Mhz
Nhân AVR kết hợp tập lệnh đầy đủ với 32 thanh ghi đa năng Tất cả thanh ghi liên kết trực tiếp với khối xử lý số học và logic ALU, cho phép hai thanh ghi độclập được truy cập trong một lệnh đơn trong một chu kỳ đồng hồ , kết quả là tốc
độ của nó nhanh gấp 10 lần tốc độ của các vi điều khiển CISC thường
Sơ đồ kiến trúc bên trong của Atmega32:
Các tính năng của Atmega32:
Atmega32 là loại vi điều khiển 8 bit công suất thấp, hiệu suất cao
Cấu trúc tập lệnh RISC, là cấu trúc tập lệnh đơn giản hóa:
o 131 lệnh thực thi trong vòng 1 chu kỳ chip
Trang 11o 32x8 thanh ghi công dụng chung.
o Đầy đủ các xử lý tĩnh
o Hỗ trợ 16MIPs khi hoạt động ở tần số 16MHz
o Tích hợp bộ nhân 2 thực hiện trong 2 chu kỳ chip
Bộ nhớ chương trình và dữ liệu không bay hơi:
o 32 Kbytes trong hệ thống Flash khả trình có thể nạp và xóa 1000 lần
o Tùy chọn khởi động phần mã với các bit nhìn độc lập trong hệ thống bằng cách vào chương trình khởi động chip
o 1024 bytes bộ nhớ EEPROM có thể ghi và xóa 100000 lần
o 2 Kbytes bộ nhớ SRAM
o Lập trình khóa cho phần mềm bảo mật
Giao tiếp JTAG
Tính năng ngoại vi:
o 2 bộ định thời/ bộ đếm 8 bit
o 1 bộ định thời/ bộ đếm 16 bit
o Bộ đếm thời gian thực với máy dao động riêng rẽ
o 4 kênh băm xung PWM
o 8 kênh ADC 10 bit
o Giao tiếp định hướng byte 2 đường nối tiếp
o Giao tiếp nối tiếp khả trình USAT
o Giao tiếp SPI nối tiếp chủ/tớ ( master/ slaver)
o Bộ định thời khả trình giám sát xung nhịp của chip một cách riêng rẽ
o Tích hợp bộ so sánh tín hiệu tương tự
Các tính năng đặc biệt:
Trang 12o Chế độ bật nguồn Reset và phát hiện Brown-out khả trình.
Trang 13Atmega32 gồm 40 chân:
Port A: gồm 8 chân từ PA0 đến PA7 là cổng vào tương tự cho chuyển đổi từ tương tự sang số, nó cũng là cổng vào/ra hai hướng 8 bit trong trường hợp khôngdùng làm cổng chuyển đổi tương tự, có điện trở nối lên nguồn dương bên trong Port A cung cấp đường địa chỉ dữ liệu vào ra theo kiểu hợp kênh khi dùng bộ nhớ bên ngoài
Port B: gồm 8 chân từ PB0 đến PB7, nó là cổng vào/ra hai hướng 8 bit, có điện trở nối lên nguồn dương bên trong Ngoài ra thay vì nhập xuất dữ liệu, Port B còn cung cấp các chức năng đặc biệt của Atmega32
Port C: gồm 8 chân từ PC0 đến PC7, là cổng vào/ra hai hướng 8 bit, có điện trở nối lên nguồn dương bên trong, Port C cung cấp các địa chỉ lối ra khi sử dụng bộnhớ bên ngoài, đồng thời cung cấp ứng với các tính năng đặc biệt của Atmega32
Port D: gồm 8 các chân từ PD0 đến PD7, là cổng vào/ra hai hướng 8 bit, có điện trở nối lên nguồn dương bên trong Ngoài chức năng nhập xuất dữ liệu, PortD còn cung cấp các chức năng đặc biệt của Atmega32
Chân 10( VCC): cung cấp nguồn nuôi cho vi điều khiển
Chân 30(AVCC): cấp điện áp so sánh cho bộ ADC
Chân 32( AREF): cấp điện áp tham chiếu cho bộ ADC
Chân số 9( Reset): nó có chức năng đặt lại giá trị đầu vào về trạng thái ban đầu
Chân 11,31( GND): là chân nối đất
Chân 12, 13( XTAL1, XTAL2): là hai chân nối thạch anh ngoài
Trang 14IV Khối cảm biến:
1 Chức năng:
Khối cảm biến nhận nhiệt độ từ môi trường bên ngoài chuyển thành mức
điện áp DC tương ứng và đưa tín hiệu tương tự này tới khối trung
tâm( cụ thể là tới bộ chuyển đổi tương tự/ số ADC được tích hợp trong
Sơ đồ cấu tạo:
Trang 16o Điện áp đầu vào từ 4V đến 30V.Bước thay đổi là 10mV/oC Điện áp đầu ra là từ 0mV đến +10mV / oC Ở 0oC thì giá trị đầu ra của Lm35 là 0mV, ở nhiệt độ 150oC thì giá trị đầu ra là 1500mV Điện áp tỉ lệ với dải nhiệt độ mà lm35 đo được.
Ưu điểm: giá thành rẻ, chống nhiễu tốt
Nhược điểm: không chịu được nhiệt độ cao
V Khối giao tiếp người dùng:
Trang 17 Keypad là một thiết bị nhập chứa các nút cho phép người dùng nhập các chữ số,chữ cái hoặc cá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 đ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.
Keypad 4x4 gồm 16 nút nhấn bố trị dạng ma trận 4 hàng 4 cột Cách bố trí matrận hàng và cột là cách chung mà các keypad sử dụng Cũng giống như ma trậnLED, các nút nhấn cùng hàng cùng cột được nối với nhau, vì thế keypad 4x4 sẽ
có tổng cộng 8 ngõ ra 4 hàng được đánh dấu là A,B,C,D và 4 cột được đánh dấu1,2,3,4
Giống như LED 7 thanh, LCD là một thiết bị ngoại vi dùng để giao tiếp vớingười dùng, so với LED 7 thanh thì LCD có ưu điểm là hiển thị được tất cả các
kí tự trong bảng mã ASCII, trong khi đó LED 7 thanh chỉ hiển thị được một số
kí tự, nhưng LCD lại có nhược điểm là giá thành cao và khoảng cách nhìn gần
Sơ đồ nguyên lý của LCD 16x2 (16 cột và 2 hàng):
Trang 18o R/W (Read/Write): Dùng để xác định hướng của dữ liệu được truyền giữa LCD
và vi điều khiển Khi nó ở mức thấp dữ liệu được ghi đến LCD và khi ở mứccao, dữ liệu được đọc từ LCD Nếu chúng ta chỉ cần ghi dữ liệu lên LCD thìchúng ta có thể nối chân này xuống GND để tiết kiệm chân
Trang 19o E ( Enable): Cho phép ta truy cập/xuất đến LCD thông qua chân RS và R/W.Khi chân E ở mức cao (1) LCD sẽ kiểm tra trạng thái của 2 chân RS và R/W vàđáp ứng cho phù hợp Khi dữ liệu được cấp đến chân dữ liệu thì một xung mứccao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữliệu Xung này phải rộng tối thiểu là 450ns Còn khi chân E ở mức thấp (0),LCD sẽ bị vô hiệu hóa hoặc bỏ qua tín hiệu của hai chân RS và R/W.
o Các chân D0-D7: Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lênLCD hoặc đọc nội dung của các thanh ghi lên LCD Các kí tự được truyền theo
mã tương ứng trong bảng mã ASCII Cũng có các mã lệnh mà có thể được gửiđến LCD để xoa màn hình hoặc đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ.LCD có hai chế độ giao tiếp, chế độ 4 bit (chỉ dùng 4 chân D4 đến D7 để truyền
dữ liệu) và chế độ 8 bit (dùng cả 8 chân dữ liệu từ D0 đến D7), ở chế độ 8 bit,khi truyền 1 byte, chúng ta sẽ truyền nửa cao của byte trước, sau đó mới truyềnnửa thấp của byte Trước khi truyền các kí tư ra màn hình LCD ta cần thiết lậpcho LCD như chọn chế độ 4 bit hoặc 8 bit, 1 hay 2 dòng, bật/tắt con trỏ…Dướiđây là bảng tập lệnh của LCD:
Mã hex Lệnh lệnh đến thanh ghi của LCD
4 Dịch con trỏ sang trái
5 Dịch hiển thị sang phải
7 Dịch hiển thị sang trái
8 Tắt con trỏ, tắt hiển thị
A Tắt hiển thị, bật con trỏ
C Bật hiển thị, tắt con trỏ
E Bật hiển thị, nhấp nháy con trỏ
F Tắt con trỏ, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái1C Dịch toàn bộ hiển thị sang phải
Trang 2080 Ép con trỏ về đầu dòng thứ nhấtC0 Ép con trỏ về đầu dòng thứ hai
38 Hai dòng và ma trận 5x7
o Để đọc thanh ghi lệnh.ta phải đặt RS=0 và R/W = 1 và xung cao xuống thấp cho bit E sau khi đọc thanh ghi lệnh, nếu bit D7 (cờ bận) ở mức cao thì LCD bận, không có thông tin hay lệnh nào đươc xuất đến nó Khi D7 = 0 mới có thể gửi lệnh hay dữ liệu đến LCD Chúng ta nên kiểm tra bit cờ bận trước khi ghi thông tin lên LCD
VI. Khối hiển thị nhiệt độ :
VI.1 Khối giải mã:
Khối sử dụng IC giải mã 74ls47:
Mạch giải là mạch có chức năng ngược lại với mạch mã hóa Mục đích sử dụng phổ biến nhất của mạch giải mã là làm sáng các đèn để hiển thị kết quả dưới dạng chữ số Do có nhiều loại đen hiển thị và có nhiều loại mã số khác nhau nên
có nhiều loại mạch giải mã khác nhau
Ví dụ: giải mã 4 đường sang 10 đương , giải mã BCD sang thập phân
IC74LS47 là loại IC giải mã BCD sang led 7 đoạn Mạch giải mã BCD sang led 7 đoạn là mạch giải mã phức tạp vì mạch phải cho nhiều ngõ ra lên cao hoặc xuống thấp (tùy vào loại đèn led là anode hay cathode chung) để làm các đèn cầnthiết sáng nên các số hoặc ký tự IC74LS47 là loại IC tác động ở mức thấp có ngõ ra cực thu để hở và khả năng nhận dòng đủ cao để thúc trực tiếp các đèn led
7 đoạn loại anode chung
Trang 211.1 Hình dạng và sơ đồ chân :
1.2 Sơ đồ logic :
Bảng trạng thái:
Trang 22Ở trạng thái mã BCD sang 7 vạch tác động ở mức thấp gồm các loại
IC74LS47,IC74LS46 được dùng cho loại có anode chung
Ngõ n vào xóa BI được để không hay nối lên mức 1 cho hoạt động giải mã thường Nếu nối lên mức 0 thì các ngõ ra đều tắt bất chấp trạng thái ngõ ra
Ngõ vào RBI được để không hay nối lên mức 1 dùng để xóa số 0( số 0 thừa phía sau số thập phân hay số 0 trước số có nghĩa) Khi RBI và các ngõ vào D,C,B,A ởmức 0 nhưng ngõ vào LT ở mức 1 thì các ngõ ra đều tắt và ngõ vào xóa dợn sóng RB0 xuống mức thấp
Khi ngõ vào BI/RBO nối lên mức 1 và LT ở mức 0 thì ngõ ra đều sáng
Kết quả là khi mã số nhị phân 4 bit vao có giá trị thập phân từ 0 đến 15 đèn led hiểnthị lên các số như hình trên
VI.2 Khối hiển thị:
Mạch sử dụng led 7 thanh đôi
a Cấu trúc led 7 thanh :
Led 7 thanh được xây dựng từ các led đơn:
Trang 23 Có 2 loại led 7 thanh:
o Loại Anode chung : các anode của các led nối chung các cathode thì độc lập.Khi
sử dụng thì anode được nối lên mức cao thì đoạn led tương ứng sáng Nếu cathode ở mức cao thì đoạn led tương ứng ngắt
o Loại Cathode chung thì các cathode của các led được nối chung, các anode thì độc lập.Khi sử dụng thì cathode nối xuống mức thấp thì đoạn led tương ứng sáng, nếu anode ở mức cao thì đoạn led tương ứng tắt
Mạch sử dụng led 7 thanh đôi:
Ngoài các chân như led 7 đoạn đơn thì led 7 đoạn thanh đôi có thêm 2 chân điều khiển led 1 hoặc led 2 Khi cấp tín hiện cho 1 chân Ví dụ là chân 1 thì led 1 sẽ sáng Nếu là chân 2 thì led 2 sẽ sáng Dựa vào hiện tượng lưu ảnh trên võng mạc khi ta cấp tín hiệu liên tục cho 2 led thì mắt sẽ nhìn thấy cả 2 led sáng đồng thời
b Giải mã led 7 thanh :
Trang 24 Chân anode nối lên mức cao
Đoạn nào sáng ứng với mức L
Đoạn nào tối tương ứng với mức H
DEC
d=A.´B ´C ´D + ´A ´B C ´D + A.B.C.D´
e=A.´B ´C ´D + A.B C ´D´ + ´A ´B C ´D + A.´B C ´D + A.´B ´C D
f= A.´B ´C ´D + ´A B ´C ´D + A.B.C ´D´ + A.B.C.D´
VII Khối thực thi:
Khối thực thi gồm 2 đèn led đơn: led mô phỏng việc đóng mở cửa và led mô phỏng báo động khi nhiệt độ vượt ngưỡng cho phép
Trang 25 Khối nhận tín hiệu điều khiển từ khối trung tâm để điều khiển sáng hoặc tắt Led:
o Trong thực tế việc sáng, tắt led có thể hiểu là việc đóng mở cửa Mật khẩu nhập đúng thì đèn led sáng( mở cửa), mật khẩu nhập sai thì đèn led không sáng( cửa vẫn đóng)
o Nếu nhiệt độ vượt mức cho phép thì đèn Led sẽ sáng( báo động)
VIII Khối nguồn:
Tụ điện có chức năng lọc nguồn, lọc nhiễu
Led báo nguồn có trở hạn dòng
VIII.2 Linh kiện ổn áp Lm7805:
Trang 26 Lm7805 có 3 chân:
o Chân 1: đưa điện áp đầu vào
o Chân 2: nối âm nguồn(GND)
o Chân 3: điện áp đầu ra
Lm7805 là một IC ổn áp thông dụng được ứng dụng nhiều trong thực tế với các
ưu điểm như điện áp ra ổn định cũng như cách điều chỉnh điện áp ra khá đơn giản( chỉ cần thay đổi giá trị một phân áp)
Thông số kỹ thuật cơ bản của IC lm7805:
o Điện áp vào nằm trong khoảng từ 7V đến 20V
o Điện áp ra nằm trong khoảng từ 4.75V đến 5.25V, dòng ra nằm trong khoảng từ 5mA đến 1A
o Chịu được nhiệt độ lớn nhất là 125oC
Led bảy đoạn là bảy con led đơn ghép lại với nhau tạo thành một con số
Bảy con led này nối chung với nhauAnode hoặc Catode Mỗi thanh led có một
chân đưa ra để điều khiển
Ví dụ led loại A chung có chân chung được nối lên mức cao khi hiển thị Các
thanh led muốn sáng thì chân điều khiển phải có mức áp thấp Nếu sáng số 3 thì
chân chung câu lên Vcc, các chân còn lại có mức áp tương ứng: abcdefg =
Trang 270000110 (mức 0 là thanh led sáng).
Led loại K chung tương tự nhưng khi chọn led thì chân chung nối xuống GND,
thanh led sáng tương ứng tín hiệu điều khiển có mức thấp
Dựa trên độ lưu ảnh của mắt, một hình ảnh mắt ta thấy nhưng phải mất 40ms mới
xử lý xong (cỡ 24-25 hình trong 1 giây), do đó nếu các hình xuất hiện trước mắt
ta mà chớp tắt nhanh hơn 25 hình/ giây thì ta không thấy nó chớp nữa, có thể hiểu như mắt ta bị thừa thông tin
Như vậy nếu bằng cách nào đó ta cho một con led đơn chớp tắt thật nhanh (trên
25 Hz, nhanh hơn nữa càng tốt, vài trăm Hz, thậm chí vài KHz càng tốt miễn là con led có thể chớp tần số đó) ta sẽ thấy con led sáng luôn, mà thực chất là nó đang sáng_ tắt_sáng_tắt… rất nhanh
Bây giờ ta điều khiển một led bảy đoạn (loại A chung), cho chân chung lên nguồn, điều khiển sáng tắt nhanh cho hai thanh b,c của nó (5 thanh còn lại nhớ tắt) ta thấy nó sáng lên số 1, thực chất là đang chớp số 1
Bằng cách cho luân phiên nhiều led hiển thị thông tin khác nhau ta có cảm giác nhiều led bảy đoạn đang sáng đồng thời, với cách này ta chỉ cần một bus dữ liệu nối song song cho tất cả các led (gồm 7 dây a,b,c,d,e,f,g) mỗi led được điều khiển bằng một tín hiệu khác sao cho tại một thời điểm chỉ có duy nhất một led bảy đoạn được phép hiển thị và lúc này bus cũng đang truyền dữ liệu ứng với Led này Nếu có quá nhiều led bảy đoạn ta phải kết hợp thêm các IC giải mã
chọn kênh như 74138, 74154…
Đôi khi để đơn giản trong lập trình người ta không dùng vi xử lý điều khiển trực
tiếp cho led bảy đoạn mà dùng thêm IC giải mã từ BCD sang 7 đoạn (loại A chung) là 74247 cũng rất tốt (Lúc này chỉ cần dùng 4 chân của vi xử lý để đưa
mã BCD cho IC 74247 thay vì dùng 7 chân để cấp tín hiệu a,b,c,d,e,f,g cho led 7đoạn )
Xem các hình dưới, nếu cho các led luân phiên sáng tắt, thời gian mỗi led khá
Trang 28lâu (lâu hơn thời gian lưu ảnh của mắt) ta sẽ thấy từng led một sáng như sau:
Nếu tăng tần số quét (giảm thời gian dành cho mỗi led) ta sẽ thấy kết quả 4 led cùng sáng như sau:
Trang 29Phương pháp này tiện dụng ở phần cứng lẫn phần mềm, tuy nhiên nếu số lượng led quá nhiều thì thời gian sáng trung bình dành cho mỗi led là T lại giảm đi (T
=1/n với là số led bảy đoạn, số đối tượng được quét ), Điều này kéo theo các led
sẽ suy giảm độ sáng Mặt khác phải tích hợp thêm IC giải mã, nhiều việc phát sinh cho thiết kế mạch lẫn lập trình Tóm lại, phương pháp này ứng dụng cho cáchiển thị thông tin ít ít, cỡ 20 led bảy đoạn trở xuống thì tuyệt vời nhưng thông tinnhiều như bảng tỉ giá ngoại tệ cần vài trăm led thì không ổn
PORTD=0x02; xuất tín hiệu ra chân PD2 cho đèn led1 sáng
PORTA=tram; hiển thị chữ số hàng trăm lên led7 đoạn
_delay_ms(10); tạo thời gian trễ là 10ms
PORTD=00x04; xuất tín hiệu ra chân PD3 cho đèn led2 sáng
PORTA=dvi; hiện thị chữ số hàng đơn vị lên led 7 đoạn
_delay_ms(10)
}
Trong chương trình chính :
vin=((float)ADC_val*5000)/1023; biến nhiệt độ vin
LED7_out(vin); Hàm gọi chương trình con hiển thị ra led 7 đoạn
Trang 30 Xóa toàn bộ màn hình.
Đặt chế độ hiển thị
Đặt vị trí con trỏ (nơi bắt đầu của ký tự hiển thị)
Hiển thị ký tự
Các bước thứ 3,4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự
Mỗi khi thự hiển lệnh ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần phải kiểm tra
cờ bận trước vì vậy cần phải chủ động phân phối thời gian khi ra lệnh cho LCD (vú dụ sau khi xóa màn hình khoảng 2 ms mới ra lệnh khác thì thời gian để LCD xóa màn hình là 1 64ms) chế độ hiệ thị mặc định sẽ là hiển thị dịch vị trí con trở mặc định là đầu dòng thứ nhất
#include "myLCD3.h" khai báo thư viện lcd
init_LCD(); khởi tạo lcd
move_LCD(uint8_t y,uint8_t x); di chuyển vị trí con trỏ tới vị trí y,x
clr_LCD(); xóa màn hình
putChar_LCD(); hiển thị 1 ký tự lên lcd
print_LCD(char* str); hiển thị 1 xâu kí tự lcd
Ma trận phím gồm N hàng, M cột
Số chân điều khiển : N + M
Các chân cùng 1 cột nối với nhau Các chân cùng 1 cột nối với nhau
Nguyên lý quét phím - quét hàng :
Tất cả các hàng , cột đặt ở mức cao - 5V
Đặt áp hàng 1 : 0V