Một trong những hệ thống được ứng dụng nhiềunhất là: hệ thống đo điều khiển và hiển thị ra led 7 thanh.Các hệ thống đang ngày dầnđược tự động hóa với những kỹ thuật như vi xử lý, vi điều
Trang 1Lời nói đầu
Với sự tiến bộ của con người, với sự phát triển của khoa học kỹ thuật thì các nghànhcông nghiệp phát triển mạnh mẽ, các hệ thống ứng dụng ra đời, điều đó cũng đặt ra yêucầu cao về chất lượng, độ chính xác Một trong những hệ thống được ứng dụng nhiềunhất là: hệ thống đo điều khiển và hiển thị ra led 7 thanh.Các hệ thống đang ngày dầnđược tự động hóa với những kỹ thuật như vi xử lý, vi điều khiển… đang ngày một làmcho các bộ tự động dần trở nên tốt hơn đảm bảo yêu cầu hơn
Trong quá trình sản xuất ở các nhà máy,xí nghiệp; quá trình điều khiển nhiệt độtrong các phòng, hội nghị, các khu chung cư, việc đo và khống chế nhiệt độ tự động làyêu cầu hết sức cần thiết và quan trọng Vì nếu nắm bắt được nhiệt độ làm việc của các
hệ thống, dây chuyền sản xuất… thì giúp chúng ta biết được tình trạng làm việc theo yêucầu và có những xử lý kịp thời để tránh hư hỏng và giải quyết các sự cố sảy ra.Yêu cầucủa các hệ thống là phải đảm bảo chính xác, kịp thời và nhanh, hệ thống làm việc ổn địnhngay cả khi có nhiễu và do tác động khác
Trang 2MỤC LỤC
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
I. MỤC ĐÍCH VÀ YÊU CẦU :
Ứng dụng họ Vi điều khiển 8051 ghép nối 04 LED bảy thanh để hiển thị số lần ấn phím :
+ 01 Vi điều khiển AT89C52.
+ Mạch truyền thông chuẩn RS_232 (dùng vi mạch MAX232).
+ Ghép nối 04 LED 7 thanh.
+ Ghép nối 04 phím bấm.
+ Ghép nối 02 cảm biến hồng ngoại.
Hoạt động : Khi ấn một trong các nút, 04 LED bảy thanh sẽ hiển thị số lần ấn nút Cảm
biến hồng ngoại 1 dùng để Reset, cảm biến hồng ngoại 2 dùng để đảo chiều đếm
Quá trình thực hiện :
1) Xây dựng mạch nguyên lý
2) Xây dựng thuật toán
3) Viết chương trình
4) Thực nghiệm
II. KHÁI QUÁT VỀ HỌ VI ĐIỀU KHIỂN 8051 :
1 Giới thiệu tổng quan về họ Vi điều khiển 8051 :
AT89C52 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4 KB EPROM (Flash Programeable and erasable read only
memory)
Các đặc điểm của AT89C52 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000 chu kỳ
Trang 3- Tần số hoat động từ 0 Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/Counter 16 bit
- 256 Byte RAM nội
- 4 Port xuất/nhập (I/O) 8 bit
- Giao tiếp nối tiếp
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoài
- Xử lý Boolean (hoạt động trên bit đơn)
- 210 vị trí nhớ có thể định vị bit
- 4μs cho hoạt động nhân hoặc chia
2 Sơ đồ khối và sơ đồ chân của AT89C52 :
Sơ đồ khối của AT89C52
Trang 4Sơ đồ chân của AT89C52
3 Chức năng các chân của AT89C52:
+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): Ngoài chức năng xuất nhập ra, port 0 còn
là bus đa hợp dữ liệu và địa chỉ (AD0 – AD7), chức năng này sẽ được sử dụng khi AT89C51 giao tiếp với thiết bị ngoài có kiến trúc bus
Port 0
+ Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit và byte
Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0
và P1.1 được dùng cho bộ Timer 2.
Trang 5Port 1
+ Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng kép Là đường
xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.
Port 2
+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài chức năng xuất
nhập ra còn có một số chức năng đặc biệt sau:
P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu truyền cho port nối tiếp
P3.4 T0 Ngõ vào của Timer/Counter 0 P3.5 T1 Ngõ vào của Timer/Counter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
Trang 6Port 3
+ RST (Reset – chân 9): mức tích cực của chân này là mức 1, để reset ta phải đưa
mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy (tương đương 2µs đối với thạch anh 12MHz Sau đây là mạch reset :
Trạng thái của các thanh ghi khi reset, khi reset thì trạng thái của RAM nội không bị thay đổi.
Trang 7IP (Thanh ghi ưu tiên ngắt) 0XX00000b
All timer registers (tất cả các thanh ghi
+ XTAL 1, XTAL 2: AT89C52 có một bộ dao động trên chip, nó thường được nối với
một bộ dao động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
+ EA (External Access): EA thường được mắc lên mức cao (+5V) hoặc mức thấp
(GND) Nếu ở mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
+ ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên
ngoài trong nửa đầu của chu kỳ bộ nhớ Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
+ PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ nhớ chương
trình mở rộng và thường được nối với đến chân OE (Output Enable) của một EPROM để cho phép đọc các bytes mã lệnh PSEN sẽ ở mức thấp trong thời gian đọc lệnh Các
mã nhị phân của chương trình được đọc từ EPROM qua Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao).
+ Vcc, GND: AT89C52 dùng nguồn một chiều có dải điện áp từ 4V – 5.5V được cấp qua
chân 40 (Vcc) và chân 20 (GND).
Tụ gốm có trị số từ 27pF - 33pF để ổn định làm việc cho thạch anh, thường dùng loại 33pF.
Trang 85. Mạch cấp nguồn cho AT89C52 làm việc :
Sử dụng IC ổn áp LM7805 thông dụng :
1) IN: điện áp vào từ 7-35V DC
2) GND
3) OUT: điện áp đầu ra ổn định ở 5V DC
III. CÁC LINH KIỆN ĐƯỢC SỬ DỤNG :
1 Cảm biến quang trở LDR :
1.1 Hiện tượng quang điện trong :
c Điều kiện để xảy ra hiện tượng quang điện trong :
• Năng lượng photon của ánh sáng kích thích phải lớn hơn hoặc bằng năng lượng kích hoạt A ( là năng lượng cần thiết để giải phóng electron liên kết thành các electron dẫn):
• Bước sóng λ của ánh sáng kích thích phải nhỏ hơn hoặc bằng một bước sóng giới hạn đối với mỗi chất bán dẫn, bước sóng giới hạn này được gọi là giới hạn quang dẫn.
Trang 9Nói ngắn gọn: " Hiện tượng quang điện trong xảy ra " Giới hạn quang dẫn của
đa số các chất bán dẫn đều ở trong miền hồng ngoại, do đó, chỉ cần dùng ánh
sáng kích thích là ánh sáng thấy được là đủ để xảy ra hiện tượng quang dẫn.
1.2 Quang trở :
a Quang trở (LDR) :
Là 1 loại cảm biến ánh sáng đơn giản, nguyên tắc hoạt động dựa vào hiện tượng quang điện trong
Là hiện tượng điện trở của chất bán dẫn giảm đi khi bị chiếu sáng Khi ánh sáng chiếu
vào chất bán dẫn (có thể là Cadmium sulfide – CdS, Cadmium selenide – CdSe) làm phátsinh các điện tử tự do, tức sự dẫn điện tăng lên và làm giảm điện trở của chất bán dẫn.Các đặc tính điện và độ nhạy của quang điện trở dĩ nhiên tùy thuộc vào vật liệu dùngtrong chế tạo Khi ánh sáng kích thích chiếu vào LDR thì nội trở của LDR sẽ giảmxuống, tiến về 0 ôm(mạch kín) Nhưng khi ánh sáng kích thích ngừng thì nội trở tăng đến
vô cùng( hở mạch)
•Các chất quang dẫn điển hình là gecmani (Ge), silic (Si), CdS (cađimi sunfua),
•Các chất quang dẫn thường là chất bán dẫn.
b Ứng dụng :
Chế tạo các điện trở có giá trị thay đổi theo cường độ ánh sáng kích thích Ứng dụng
trong mạch điện : Chuyển mạch (switch sytems), cảm biến ánh sáng/tối của môi trường
c Cấu tạo:
Lớp bán dẫn mỏng (cadimi sulfur CdS); tấm cách điện; điện cực bằng kim loại.
d Hoạt động:
Nối quang trở với nguồn ( vài volt ).
Đặt quang trở trong bóng tối: Không có dòng điện.
Chiếu ánh sáng kích thích có bước sóng nhỏ hơn giới hạn quang dẫn: xuất hiện dòng điện.
Điện trở của quang trở giảm rất mạnh khi có ánh sáng kích thích thích hợp.
Trang 11- Vòng A, B chỉ trị số tương ứng với màu.
- Vòng C chỉ hệ số nhân.
- Vòng D chỉ sai số.
một linh kiện có tính cản trở dòng điện, hạn dòng cho led và làm một số chức năng khác tuỳ vào vị trí của điện trở trong mạch điện.
f. Biến trở :
Biến trở là một loại điện trở được sử dụng khi thường xuyên thay đổi trị số.
- Hình dạng của biến trở :
g. Điện trở kéo lên/kéo xuống : *) Tác dụng : Màu Vòng A, B Vòng C Vòng D Đen Nâu Đỏ Cam Vàng Lục Lam Tím Xám Trắng Vàng nhũ Bạc Màu thân điện trở 0 1 2 3 4 5 6 7 8 9
…………
……
x100 = x1 x101 = x10 x102 = x100 x103 = x1000 x104 = x10000 x105 = x100000 x106 = x1000000 x107 = x10000000 x108 = x100000000 x109 = x1.000000000 x10-1= x0,1 x10-2= x0, 01 ………
………
+ 1% + 2% + 3%
………
………
………
………
………
+ 5%
+ 10%
+ 20%
Trang 12Trong những thiết kế sử dụng vi điều khiển (mạch số), điện trở kéo lên / kéo xuống là thành phần đóng vai trò khá quan trọng
Như hình trên, nếu nút bấm được nhấn xuống thì chân input sẽ được nối mass và viđiều khiển sẽ nhận mức 0 Nhưng nếu thả nút bấm ra thì chân input lúc này sẽ ở tìnhtrạng "thả nổi" không xác định được giá trị Nếu tình cờ có một nhiễu nào đó tác độnglàm điện áp này rơi vào vùng logic 0 rồi lại về logic 1 thì không khác gì nút bấm đã đượcnhấn
Vì vậy để xác định rõ ràng mức logic, chân input này cần một điện áp tham chiếu 5Vkhi không nhấn nút, khi nhấn nút thì điện áp là 0V, giải pháp là:
Bây giờ khi không nhấn nút thì điện áp input là 5v và khi nhấn nút thì ngắn mạch.
Điều này không ổn, vì thế chúng ta phải đặt một điện trở vào giữa mass, nút bấm, nguồn
Trang 13*)Giá trị điện trở hợp lý :
Dòng cho phép trên mỗi chân I/O của vi điều khiển thường chỉ nằm trong khoảng 20mA
Giá trị điện trở này trong các mạch số thường là 4k7 hoặc 10k Ta có thể sử dụng 1 điện
trở đơn hoặc điện trở thanh RESPACK.
Tương tự điện trở kéo lên còn có cách mắc điện trở kéo xuống như sau:
Trang 14Tóm lại, điện trở kéo lên (điện trở nối với nguồn) hay điện trở kéo xuống (điện trở nốimass) có tác dụng loại bỏ hiện tượng trôi nổi điện áp ở ngõ vào Giá trị điện trở ở đâynhằm tránh hiện tượng ngắn mạch và đảm bảo an toàn cho vi điều khiển.
d. Sự dẫn điện của tụ :
Trang 15Xét mạch điện như hình vẽ, khi đóng khoá K ta thấy đèn sáng lên rồi tắt.
Khi mới vừa đóng khoá K tức thời điện tử từ cực âm của nguồn điện đến bản cực bên phải, đồng thời điện tử từ bản cực bên trái đến cực dương nguồn Như vậy sự di
chuyển điện tử trên tạo ra dòng điện qua đèn làm đèn sáng Sau đó xảy ra sự cân bằng điện tử giữa nguồn và tụ điện, nghĩa là không có sự duy chuyển điện tử làm đèn tắt, lúc này hiệu điện thế giữa hai đầu bản cực tụ điện bằng điện thế nguồn.
Nếu nguồn là xoay chiều, cực tính của nguồn biến thiên liên tục làm đèn sáng liên tục.
e. Phân loại tụ điện thường gặp:
*) Theo tính chất lý hóa và ứng dụng: Có các loại tụ điện :
- Tụ điện phân cực: là loại tụ điện có hai đầu (-) và (+) rõ ràng, không thể mắc
ngược đầu trong mạng điện DC Chúng thường là tụ hóa học và tụ tantalium.
- Tụ điện không phân cực: Là tụ không qui định cực tính, đấu nối "thoải mái" vào
mạng AC lẫn DC.
- Tụ điện hạ (thấp) áp và cao áp: Do điện áp làm việc mà có phân biệt "tương đối"
này.
- Tụ lọc (nguồn) và tụ liên lạc (liên tầng): Tụ điện dùng vào mục tiêu cụ thể thì gọi
tên theo ứng dụng, và đây cũng là phân biệt "tương đối".
- Tụ điện tĩnh và tụ điện động (điều chỉnh được): Đa số tụ điện có một trị số điện
dung "danh định" nhưng cũng có các loại tụ điện cần điều chỉnh trị số cho phù hợp yêu cầu của mạch điện, như tụ điện trong mạch cộng hưởng hay dao động chẳng hạn
Trang 16*) Theo cấu tạo và dạng thức :
- Tụ điện gốm (tụ đất) : Gọi tên như thế là do chúng được làm bằng ceramic, bên ngoải bọc keo hay nhuộm màu Gốm điện môi được dùng là COG, X7R, Z5U v.v
- Tụ gốm đa lớp: Là loại tụ gốm có nhiều lớp bản cực cách điện bằng gốm Tụ này đáp ứng cao tần và điện áp cao hơn loại tụ gốm "thường" khoảng 4 > 5 lần.
- Tụ giấy : Là tụ điện có bản cực là các lá nhôm hoặc thiếc cách nhau bằng lớp giấy tẩm dầu cách điện làm dung môi.
- Tụ mica màng mỏng : cấu tạo với các lớp điện môi là mica nhân tạo hay nhựa có cầu tạo màng mỏng (thin film) như Mylar, Polycarbonate, Polyester, Polystyrene (ổn định nhiệt 150 ppm / C).
Nhà máy Sản xuất tụ điện ICTI (công nghệ màng mỏng) Đà Nẵng là một đơn vị cung cấp linh kiện điện tử tại Việt Nam
- Tụ bạc - mica: là loại tụ điện mica có bàn cực bằng bạc, khá nặng Điện dung từ vài
pF đến vài nF, độ ồn nhiệt rất bé Tụ này dùng cho cao tần là hết biết.
- Tụ hóa học: Là tụ giấy có dung môi hóa học đặc hiệu > tạo điện dung cao và rất cao cho tụ điện Nếu bên ngoài có vỏ nhôm bọc nhựa thì còn gọi là tụ nhôm.
Trang 17- Tụ siêu hóa (Super Chimical Capacitance) : dùng dung môi đất hiếm, tụ này nặng hơn tụ nhôm hóa học và có trị số cực lớn, có thể đến hàng Farad Tụ có thể dùng như một nguồn pin cấp cho vi xử lý hay các mạch đồng hồ (clock) cần cấp điện liên tục.
-Tụ hóa sinh là Siêu tụ điện thay thế cho pin trong việc lưu trữ điện năng trong các thiết bị điện tử di động, dùng lginate trong tảo biển nâu làm nền dung môi > lượng điện tích trữ siêu lớn và giảm chỉ 15% sau mỗi chu kỳ 10.000 lần sạc
- Tụ tantalium : Tụ này có bản cực nhôm và dùng gel tantal làm dung môi, có trị số
rất lớn với thể tích nhỏ.
- Tụ vi chỉnh và tụ xoay : Có loại gốm, loại mica và loại kim loại.
4 Led 7 thanh :
Trang 18Led 7 đoạn hay Led 7 thanh (Seven Segment display) là 1 linh kiện rất phổ dụng, được dùng như là 1 công cụ hiển thị đơn giản nhất
Trong Led 7 thanh bao gồm ít nhất là 7 con Led mắc lại với nhau , vì vậy mà có tên là Led 7 đoạn là vậy ,7 Led đơn được mắc sao cho nó có thể hiển thị được các số từ 0 - 9 ,
và 1 vài chữ cái thông dụng, để phân cách thì người ta còn dùng thêm 1 Led đơn để hiển thị dấu chấm (dot)
Các led đơn lần lượt được gọi tên theo chữ cái A- B -C-D-E-F-G, và dấu chấm dot
Như vậy nếu như muốn hiển thị ký tự nào thì ta chỉ cần cấp nguồn vào chân đó là led
sẽ sáng như mong muốn.
4.1 Thông số :
LED 7 thanh dù có nhiều biến thể nhưng tựu chung thì cũng chỉ vẫn có 2 loại đó
là :
+ Chân Anode chung (chân + các led mắc chung lại với nhau )
+ Chân Catode chung (Chân - các led được mắc chung với nhau )
* Đối với loại Anode chung :
+ Chân 3 và 8 là 2 chân Vcc(nối ngắn mạch lại với nhau , sau đó nối chung với chân anode của 8 led đơn ), vậy muốn led nào đó sáng thì chỉ việc nối chân catot xuống
Điện áp giữa Vcc và mass phải lớn hơn 1.3 V mới cung cấp đủ led sáng, tuy nhiên không được cao quá 3V
* Cathode chung :
Trang 19Thông thường các thiết kế, LED 7 thanh được dùng để hiện thị các giá trị các giá trị số
từ 0 đến 9 và đôi khi cần phải hiện thị các kí tự đơn giản như A đến F trong hệ thống đểbáo trạng thái của hệ thống Các giá trị hiện thị bao gồm nhiều chữ số tức là chúng taphải dùng đến nhiều LED7 ghép lại thì mới hiện thị được nhiều số Ví dụ như muốn hiệnthị số 123 chả hạn thì chúng ta phải dùng đến 3 LED 7 thanh ghép lại Như vậy để ghép nhiều LED 7 thanh thay vì chung ta phải dùng 8 chân riêng rẽ chomỗi LED Ví dụ để hiện thị được 3 chữ số lên LED 7 (123 chả hạn) khi đó ta sẽ mất 3x8
= 24 chân dữ liệu điều khiển để hiện thị được 3 chữ số Như vậy sẽ rất tốn chân vi xử lý,
do vậy người ta dùng chung các đường dữ liệu cho các LED 7 thanh và thiết kế thêm cáctín hiệu điều khiển cấp nguồn riêng rẽ cho từng LED 7 một hay là cấp nguồn cho cácchân Anot chung hay Katot chung Nhìn trên sơ đồ trên ta thấy được kiểu ghép nối giữacác LED Các đường dữ liệu vào của 3 LED được chung với nhau và các chân điều khiểnnguồn cho các LED được riêng rẽ và được điều khiển bằng transitor ( khuếch đại dòng).Như vậy đối với mạch trên chúng ta tiếp kiệm được nhiều chân vi xử lý Đối với mạchtrên và cách ghép nối như trên thì mất tối đa chỉ có 11 chân vi xử lý
Đối với phương pháp ghép LED như thế này thì làm sao điều khiển được hiện thị số
123 chả hạn Nếu chúng ta mới nhìn thì sẽ thấy các LED 7 sẽ hiện thị giống nhau vìchúng chung nhau đường dữ liệu Nhưng không phải là vậy Nếu chung ta cho từng thờiđiểm từng LED sáng 1 thì chúng ta sẽ thấy khác đó Số 123 sẽ được hiện thị lên 3 LED
đó Đó là thuật toán quét LED dựa vào hiện tượng lưu ảnh trong mắt khi chúng ta quétvới tần số lớn
Như vậy đối với phương pháp này chúng ta tiếp kiệm được một số lượng lớn chân vi xử
lý và đồng thời tiếp kiệm được năng lượng tiêu thụ do phương pháp quét LED trong thờigian ngắn Khi đó tối đa trong 1 thời điểm có 1 LED sáng toàn bộ thôi Cần phải tínhtoán giá trị dòng vào cho LED sao cho LED sáng đẹp bằng cách thêm bớt điện trở
4.2 Kết nối với Vi điều khiển :
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào
đó của Vi điều khiển để điều khiển led 7 đoạn Như vậy led 7 đoạn nhận một dữ liệu 8 bit
từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led led đơn trong nó, dữ liệuđược xuất ra điều khiển led 7 đoạn thường được gọi là "mã hiển thị led 7 đoạn" Có hai
Trang 20kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode(cực +) chung và mã dànhcho led 7 đoạn có Cathode(cực -) chung Chẳng hạn, để hiện thị số 1 cần làm cho các led
ở vị trí b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b
và c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụngled 7 đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức là phảiđặt vào chân b và c điện áp là 5V(mức 1)
Bảng mã hiển thị led 7 đoạn:
• Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc
xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối với chân
b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
• Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn
sáng ở mức 0):
Số hiển thị trên led 7
đoạn Mã hiển thị led 7 đoạn dạng nhị phân Mã hiển thị led 7 đoạn dạng thập lục phân