Tải bản đầy đủ (.docx) (40 trang)

Ứng dụng họ điều khiển ghép nối 04 LED 7 thanh để hiển thị số đo nhiệt độ dung vi mạch LM35, ADC0808, khoảng đo ( 55 – 125)◦c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (540.29 KB, 40 trang )

Mục Lục

Nhóm : 6

Page 1


Lờ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ành cô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êu cầu cao về chất lượng, độ chính xác. Một trong những hệ thống
được ứng dụng nhiều nhấ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àm cho 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êu cầ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ầu củ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 định ngay cả khi có nhiễu và
do tác động khác.

Hà Nội ngày 24 tháng 12 năm 2012

Nhóm : 6

Page 2



Đề tài:
Ứng dụng họ điều khiển ghép nối 04 LED 7 thanh để hiển thị số đo nhiệt
độ dung vi mạch LM35, ADC0808, khoảng đo (-55 – 125)◦C, Hệ số gồm có:
- 01 vi điều khiển 89C51RD2
- Mạch truyền thong chuẩn RS – 232 (dùng vi mạch MAX232)
- Ghép nối 04 LED bảy thanh.
- Ghép nối phần với vi mạch LM35,ADC0808.
- Ghép nối loa cảnh bảo ngưỡng thấp, ngưỡng cao.
- Hai nút RUN, STOP.
Hoạt động: Khi ấn RUN, hệ thống thực hiện đo nhiệt độ, còn khi ấn STOP,
hệ thống lưu lưu lại giá trị đo cuối cùng.
Quá trình thực hiện:
1.
2.
3.
4.
5.
6.

Nhóm : 6

Xây dựng mạch nguyên lý.
Làm mạch in.
Lắp linh kiện và kiểm tra phần cứng.
Xây dựng thuật toán.
Viết chương trình.
Thực nghiệm.

Page 3



PHẦN I: CƠ SỞ LÝ THUYẾT

Chương I: Tổng quan về vi điều khiển
1.

Giới thiệu về các họ vi xử lý và các họ điều khiển thông dụng

Lịch sử phát triển của bộ vi xử lý và bộ vi điều khiển
Sự ra đời và phát triển nhanh chóng của kĩ thuật vi điện tử mà đặc trưng là kĩ
thuật vi xử lý đã tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa
học tính toán, điều khiển vi xử lý thông tin.Kĩ thuật vi xử lý đóng vai trò rât
quan trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kĩ thuật, đặc biệt
là lĩnh vực tin học và tự động hoá.
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lý( microprocessor ) đầu tiên trên
thế giới tên gọi là Intel – 4004/4 bit, nhằm đáp ứng nhu cầu cấp thiết của một
công ty kinh doanh là hãng truyền thông BUSICOM. Intel-4004 là kết quả của
một ý tưởng quan trọng trong kĩ thuật vi xử lý số. Đó là một kết cấu logic mà có
thể thay đổi được chức năng của nó bằng chương trình ngoài chứ không phát
triển theo hướng tạo ra một cấu trúc cứng chỉ thực hiện một số chức năng nhất
định như trước đây. Sau đó, các bộ vi xử lý mới liên tục được đưa ra thị trường
ngày càng được phát triển, hoàn thiện hơn trong các thế hệ về sau.
Vào năm 1972, hãng Intel đưa ra bộ vi xử lý 8 bit đầu tiên với tên Intel 8008/8
bit. Từ năm 1974 – 1975, Intel chế tạo các bộ vi xử lý 8-bit 8080 và 8085A.
Cũng vào khoảng thời gian này, một loạt các hãng khác trên thế giới cũng đã
cho ra đời các bộ vi xử lý tương tự như : 6800 của Motorola với 5000 Tranzitor,
signetics 6520, 1801 của RCA, kế đến là 6502 của hãng MOS Technology và
Z80 của hãng Zilog.
2.


Các bộ vi điều khiển

2.1. Các bộ vi điều khiển và các bộ xử lý nhúng.
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều khiển (VĐK )
và so sánh chúng với các bộ vi xử lý cùng dạng chung Pentium và các bộ vi xử
lý 86 khác. Chúng ta cùng xem xét vai trò của các bộ vi điều khiển trong thị
trường các sản phẩm nhúng. Ngoài ra, chúng ta còn cung cấp một số tiêu chuẩn
vể cách lựa chọn một bộ vi điều khiển như thế nào.
Nhóm : 6

Page 4


Bộ vi điều khiển so với bộ vi xử lý cùng dùng chung
Sự khác nhau giữa một bộ vi điều khiển và một bộ vi xử lý là gì? Bộ xử lýở đây
là cá bộ vi xử lý công dụng chung như họ Intel là 86(8086, 80286, 80386,
80486 và Pentium) hoặc họ Motorola là 680 là ( 68000, 68010, 68020, 68030,
68040 vv...) Những bộ vi xử lý này không có RAM, ROM và không có các
cổng vào ra trên chíp.Với lý do đó mà chúng được gọi chung là các bộ vi xử lý
công dụng chung.
2.2.

Hình: Hệ thống vi xử lý được so sánh với hệ thống vi điều khiển
a)Hệ thống vi xử lý công dụng chung
b) Hệ thống vi điều khiển
Như thiết kế hệ thống sử dụng bộ vi xử lý công dụng chung chẳng hạn
như Pentium hay 68040 phải bổ xung thêm RAM, ROM, các cổng vào ra và các
bộ định thời ngoài để làm cho chúng hoạt động được. Mặc dù việc bổ sung
RAM, ROM và các cổng vào ra bên ngoài làm cho hệ thống cồng kềnh và đắt
hơn, nhưng chúng có ưu điểm là linh hoạt chẳng hạn như người thiết kế có

quyền quyết định về số lượng RAM, ROM và các cổng vào ra cần thiết phù hợp
với bài toán trong tam tay của mình. Điều này không thể có được với các bộ vi
điều khiển. Một bộ vi điều khiển có một CPU (một bộ vi xử lý) cùng với một
lượng cố định RAM, ROM, các cổng vào ra và một bộ định thời tất cả trên cùng
một chíp. Hay nói cách khác là bộ xử lý RAM, ROM các cổng vào ra và bộ
định thời đều được nhúng với nhau trên một chíp; do vậy người thiết kế không
thể bổ xung thêm bộ nhớ ngoài , cổng vào ra hoặc bộ đinh thời cho nó. Số
lượng cố định của RAM, ROM trên chíp và số các cổng vào – ra trong các bộ vi
điều khiển làm cho chúng trở nên lý tưởng với nhiều ứng dụng mà trong đó giá
thành và không gian lại hạn chế. Trong nhiều ứng dụng , ví dụ như điều khiển
Nhóm : 6

Page 5


TV từ xa thì không cần công suất tính toán của bộ vi xử lý 486 hoặc thâm chí
như 8086. Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu
tốn và giá thành trên một đợn vie là những cân nhắc nghiêm ngặt hơn nhiều so
với công suất tính toán. Những ứng dụng thường yêu cầu một số thao tác vào-ra
để đọc các tín hiệu tắt- mở những bit nhất định. Điều thú vị là một số nhà sản
xuất các bộ vi điều khiển đã đi xa hơn là tích hợp cả một bộ chuyển đổi ADC và
các ngoại vi khác vào trong bộ điều khiển.

Chương II:Tổng quan về họ vi điều khiển 8051
I.

Họ vi điều khiển 8051

Giới thiệu chung
Họ vi điều khiển 8051(còn gọi là C51) là một trong những họ vi điều khiển

thông dụng nhất. Bộ vi điều khiển này có 128 byte RAM,4K byte ROM
trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8
bit) vào rat ấ t c ả đ ư ợ c đ ặ t t r ê n m ộ t c h íp . L ú c ấ y n ó đ ư ợ c c o i l à
m ộ t “ h ệ t h ố n g t r ê n chíp”. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có
thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit
được chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vàora I/O mỗi cổng rộng 8 b i t . Mặ c d ù 8 0 5 1 có t h ể có m ộ t R O M t r ê n
c h íp c ự c đ ạ i l à 6 4 K b yt e , n hư n g c á c n hà s ả n x uấ t l ú c đ ó đ ã c ho
x uấ t x ư ở n g c h ỉ vớ i 4 K b y t e R O M trên chíp 8051 đã trở nên phổ biến
sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ dạng
biến thể nào của 8051 mà họ thích với điều kiện họ phải để mã lại
tương thích với 8051.Điều này dẫn đến sự ra đ ờ i n h i ề u p h i ê n b ả n
c ủ a 8 0 5 1 vớ i cá c t ố c đ ộ k há c n ha u và d un g l ư ợ n g ROM trên chíp
khác nhau được bán bởi hơn nửa các nhà sản xuất . Điềunày quan trọng
là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lương
nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về
các lệnh. Điều này có nghĩa là nếu ta viết chương trình của mình cho
một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà
không phân biệt nó từ hãng sản xuất nào.
1.

2.
Nhóm : 6

Sơ đồ cấu trúc chung của họ 8051
Page 6















Interrupt control : Điều khiển ngắt.
Other registers : Các thanh ghi khác.
ROM : là loại bộ nhớ không mất dữ liệu khi mất nguồn cung cấp, được gọi là
nhớ chương trình bên trong .
RAM : là bộ nhớ dữ liệu bên trong có dung lượng 128Byte dùng để lưu trữ dữ
liệu như biến số, hằng số, bộ đệm truyền thông.
Timer 2, 1 , 0 : Bộ định thời 2 , 1 , 0
CPU : Đơn vị điều khiển trung tâm.
Oscillator : Mạch dao động.
Bus control: Điều khiển Bus
I/O ports: Các ports vào/ ra
Serial port: port nối tiếp
Address/data : địa chỉ/ dữ liệu.

3.

-

-

Sơ đồ chân của 8051


Chức năng :
Chân 40 nối dương nguồn 5V
Chân 20 nối đất (Mass,GND)
Chân 29 (PSEN): là tín hiệu điều khiển xuất ra của 8051, nó cho phép chọn
bộ nhớ ngoài và được nối chung với chân OE (output) của EPROM ngoài để
cho phép đọc các byte của chương trình ( ở đây là đọc các lệnh- khác với đọc
dữ liệu).
Chân 30 (ALE) là tín hiệu điều khiển xuất ra của 8051, nó cho phép kênh
Bus địa chỉ và Bus dữ liệu của Port 0.

Nhóm : 6

Page 7


Chân 31 (EA) được đưa xuống thấp cho phép chọn bộ nhớ mã ngoài đối với
8051.
- P0 từ chân 39-> 32 tương ứng là các chân P0_0 -> P0_7
- P1 từ chân 1->8 tương ứng với các chân P1_0 -> P1_7
P2 từ chân 21->28 tương ứng là các chân P2_0->P2_7
P3 từ chân 10->17 tương ứng là các chân P3_0->P3_7
Riêng cổng 3 có 2 chức năng ở mỗi chân như trên hình vẽ :
P3.0 – RxD : chân nhận dữ liệu nối tiếp khi giao tiếp với RS232 (COM)
P3.1 – TxD : phân truyền dữ liệu nối tiếp khi giao tiếp RS232
P3.2 – INT0 : interupt 0, ngắt ngoài 0.
P3.3 – INT1 : interupt 1 ngắt ngoài 1.
P3.4 – T0 : Timer 0 đầu vào timer 0.
P3.5 – T1 : Timer 1 đầu vào timer 1.
P3.6 – WR : Điều khiển ghi dữ liệu

P3.7 – RD : Điều khiển đọc dữ liệu
Chân 18,19 nối với thạch anh tạo thành mạch dao động cho vi điều khiển, vi xử
lý.
Tần số thạch anh thường dùng trong các ứng dụng là 12Mhz và 11.092MHz
(Giao tiếp với cổng COM), tần số tối đa là 24Mhz.
-

-

Cổng vào ra song song (I/O Port)
8051 có 4 cổng vào ra song song có tên lần lượt là P0, P1, P2, P3 tất cả các
cổng này đều là cổng ra vào 2 chiều 8 bit. Các bít của mỗi cổng là một chân trên
chíp như vậy mỗi cổng sẽ có 8 chân trên chíp. Hướng dữ liệu dùng cổng đó làm
cổng ra hay cổng vào là độc lập giữa các cổng và giữa các chân trong cùng 1
cổng.
Các chân P0 không có điện trở treo cao (pullup resistor) bên trong, mạch lái
tạo mức cao chi có khi sử dụng cổng này với tính năng là bus dồn kênh địa chỉ/
dữ liệu. Như vậy với chức năng ra thông thường, P0 là cổng ra open drain, với
chức năng vào, P0 là cổng cao trở. Nếu muốn sử dụng cổng P0 làm cổng vào /ra
thông dụng thì ta phải thêm trở tử 4K7 đến 10K. Các cổng P1, P2, P3 đều có
điện trở pullup bên trong, do đó có thể dùng với chức năng cổng vào/ra thông
thường mà không cần thêm điện trở bên ngoài.
Cổng truyền thông nối tiếp ( Serial Port) :
Cổng nối tiếp trong 8051 chủ yếu được dùng trong các ứng dụng có yêu cầu
truyền thông với máy tính, hoặc với 1 vi điều khiển khác. Liên quan đến cổng
nối tiếp chủ yếu có 2 thanh ghi : SCON và SBUF. Ngoài ra, một thanh ghi khác
là thanh ghi PCON (không đánh địa chỉ bít) có bít 7 tên là SMOD quy định tốc
độ truyền của cổng nối tiếp có gấp đôi lên (SMOD=1) hay không (SMOD=0).
Cổng có đặc điểm :
4.




Nhóm : 6

Page 8


-

Truyền song công : có nghĩa là tại một thời điểm có thể vừa truyền vừa nhận dữ
liệu.
Phương thức truyền không đồng bộ: là dữ liệu được truyền đi theo từng kí tự.
Bộ đệm truyền nhận dữ liệu đều có tên là SBUF
SCON là thanh ghi bit được dùng để lập trình việc đóng khung dữ liệu, xác định
chế độ làm việc của cổng truyền thông nối tiếp.

Bảng dưới đây mô tả chi tiết các bit khác nhau của thanh ghi SCON :
Bit
7
6
5
4
3
2
1
0

Tên
SM0

SM1
SM2
REN
TB8
RB8
TI
RI

Địa chỉ
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H

Chức năng
Xác định chế độ cổng nối tiếp (bit 0)
Xác định chế độ cổng nối tiếp (bit 1)
Cho phép truyền thông đa xử lý
Bít cho phép nhận
Sử dụng trong chế độ 2 và 3
Sử dụng trong chế độ 2 và 3
Cờ truyền :nhận được sau khi truyền xong 1 byte
Cờ nhận: Nhận được sau khi nhận đủ 1 byte

Các chế độ làm việc của cổng truyền thông
SM0

0
0
1
1
II.

SM1
0
1
0
1

Chế độ
0
1
2
3

Khung dữ liệu
8-bit Shift Register
8-bit UART
9-bit UART
9-bit UART

Tốc độ Baud
Oscillator/12
Cài đặt bởi timer 1(*)
Oscillator/64(*)
Cài đặt bởi timer 1(*)


Giới thiêu về Vi điều khiển 89C51

AT 89C51 là họ vi xử lý do hãng Intel sản xuất. Các sản phẩm AT89C51
thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số
học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu
nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những tập lệnh
số học 8 bit gồm cả lệnh nhân và chia. Nó cung cấp những hỗ trợ mở rộng trên
chip dùng cho những biến 1 bit như là kiểu dữ liệu riêng biệt cho phép quản lý
và kiểm tra từng bit trực tiếp trong hệ thống điều khiển.
Nhóm : 6

Page 9


AT89C51 cung cấp những đặc tính chuẩn như : 4 Kbyte bộ nhớ chỉ đọc có thế
xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2
TIME/COUNTER 16 Bit, 5 vecto ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp
bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
Các đặc điểm của chip AT89C51 được tóm tắt như sau :












4Kbyte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ
ghi/xóa
Tần số hoạt động từ: 0Hz đến 24MHz
3 mức khóa bộ nhớ lập trình
2 bộ Timer/counter 16 bit
128 Byte RAM nội
4 Port xuất /nhập I/O 8 bit.
Giao tiếp nối tiếp
64KB vùng nhớ mã ngoài
64KB vùng nhớ dữ liệu ngoại
4µs cho hoạt động nhân hoặc chia

Chương 3: CHUẨN RS232
1. Giới thiệu
Được xây dựng phục vụ chủ yếu trong việc ghép nối điểm – điểm giữa hai
thiết bị đầu cuối (DTE, Data Terminal Equipment).mặc dù tính năng hạn chế
nhưng chuẩn RS232 có từ lâu đời nhất vì thế nên nó được sử dụng rộng rãi.
Ngày nay mỗi máy tính cá nhân có vài cổng RS232( cổng com) có thể sử dụng
nối các thiết bị ngoại vi hoặc với các máy tính khác.
2. Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công
nối tiếp
3. Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-15V.
Hiện nay đang được cố định trở kháng tải trong phạm vi từ-7000Ω- 3000Ω
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -15V, mức logic 0
từ -3V đến 15V
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)

Nhóm : 6

Page 10


+ Các lối vào phải có điện dung nhỏ hơn 2500pF
+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng
nối tiếp RS232 không vượt qua 15m nếu chúng ta không sử model
+ Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....56600,1
15200 bps
3. Quá trình dữ liệu
Quátrình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do
vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi
một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi
đến trong lần truyền bit tiếp the . Bit này luôn bắt đầu bằng mức 0.. Tiếp theo
đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7
hay 8 bit dữ liệu) Sau đó là một Parity bit ( Kiểm tra bit chẵn, lẻ hay không) và
cuối cùng là bit dừng - bit stop có thể là 1, 1,5 hay 2 bit dừng.
a)

b) Tốc độ Baud
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng
cho quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ
liệu hay còn gọi là tốc độ bit. Tốc độ bit được định nghĩa là số bit truyền được
trong thời gian 1 giây hay số bit truyền được trong thời gian 1 giây. Tốc độ bit
này phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau
( Tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)

Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud.
Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để
diễn tả bit được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit
được truyền.Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ
bit và tốc độ baud là phải đồng nhất
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400,
4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường
dùng tốc độ là 19200, Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử
dụng chuẩn là thời gian chuyển mức logic không vượt quá 4% thời gian truyền
1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời

Nhóm : 6

Page 11


gian chuyển mức logic càng phải nhỏ. Điều này làm giới hạn tốc Baud và
khoảng cách truyền.

c) Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm
tra lỗi khi truyền dữ liệu là bổ xungthêm dữ liệu được truyền để tìm ra hoặc
sửa một số lỗi trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một
kỹ thuật kiểm tra chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các
bit "1" được gửi trongmột khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9...
Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường
hợp không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa
lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc

lỗi.
4.

IC MAX232

Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi.
Max232 là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ
biến trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp
(12K hay 10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng
tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín
hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV). Ngoài
ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.

Chương IV: LED BẢY THANH
1.

Giới thiêu chung led 7 thanh

LED 7 thanh được dùng nhiều trong các mạch hiện thị thông báo, hiện thị
số, kí tự đơn giản... LED 7 được cấu tạo từ các LED đơn sắp xếp theo các thanh
nét để có thể biểu diễn các chữ số hoặc các kí tự đơn giản như từ số 0 đến 9 và
A đến F chả hạn. LED 7 thanh dùng để hiện số thì rất đẹp và dễ nhìn. Tùy vào
kích thước của số và kí tự mà mỗi thanh được cấu tạo bởi một hay nhiều LED
Nhóm : 6

Page 12


đơn. Các LED đơn đó được ghép và được đặt tên bằng các chữ cái a...g và có
một dấu chấm dot ( dấu chấm này có thể sáng và tắt tùy theo yêu cầu) được cấu

tạo bởi 1 LED đơn. Qua đó người ta chỉ cần 8 bit tương ứng với 8 LED đơn để
điều khiển được và hiện thị số từ 0 đến 9 và các kí tự từ A đến F.

Ở trên là hình dạng LED7 ngoài thực tế và trong mạch nguyên lý và cấu tạo.
Cấu tạo của LED chúng ta nhìn trên rất đơn giản chúng chỉ gồm các LED
đơn được xếp lại với nhau thành hình như trên hình vẽ. Các LED đơn này chỉ
chung nhau Anot hoặc Katot và riêng nhau các chân con lại Anot hặc Katot.
Nhiệm vụ của chúng ta là cho sáng các LED đơn đó để cho nó thành số hay kí
tự đơn giản.
Hiện nay LED 7 được sản xuất theo 2 kiểu là Anot chung và Katot chung
và được điều khiển làm việc tương tự như bơm dòng hay nuốt dòng của các
LED đơn có trong LED7 (Thường hay thiết kế theo kiểu bơm dòng cho
LED). Thông thường trong các mạch thiết kế thực tế người thiết kế thường
hay sử dụng loại Anot chung. Phương pháp ghép nối là cấp dòng, đảo trạng
thái thông qua đệm và quét LED
2.

Ghép nối led 7 thanh

Để ghép nối với LED7 có thể có nhiều cách, nhưng phải đảm bảo sao có
thể điều khiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký
tự mong muốn.Các ICs điều khiển đều khó khả năng sinh dòng kém tức là
dòng đầu ra của các chân ICs nhỏ hơn khả năng nuốt dòng. Do vậy, nếu ghép
nối trực tiếp các net với các chân cổng IC thì loại Anode chung là thích hợp
hơn cả. Cần phải chú ý dòng dồn về ICs quá mức chịu được thì cũng không
được vì làm nóng và dei ICs điều khiển
* 2 cách ghép nối thường dùng:
+ Cách 1 : Dùng trực tiếp các chân điều khiển (vi xử lý)

Đối với cách này thì nhìn thì rất tốn chân của vi xử lý. Và dòng của LED sẽ

dồn tất cả về vi xử lý. Nếu một hệ thống lớn thì cách này không ổn vì ảnh
hưởng đến vi xử lý và nhiều dòng dồn về vi xử lý sẽ làm vi xử lý nóng và dẫn
Nhóm : 6

Page 13


tới chết ( chúng ta tưởng tượng xem nếu mà hệ thống nhiều phần điều khiển từ
các chân vi xử lý mà tất cả các tải điều khiển dồn trực tiếp dòng về vi xử lý thì
lúc đó dòng trong 1 thời điểm khá lớn vượt quá ngưỡng cho phép của vi xử lý.
Dòng mà vi xử lý chịu đựng được cũng khá nhỏ đâu dưới 100mA ). Các
này chỉ dùng được hệ thống điều khiển ít, mạch dùng vi xử lý khá đơn giản
như hiện thị LED, đếm số từ 0 đến 9 ... chả hạn.
+ Cách 2 : Dùng IC giải mã BCD sang LED 7 thanh

Sử dụng IC giải mã 7447 để giả mã từ mã BCD sang mã LED7. Đối với
cách này thì trông rất ổn. Vừa tiếp kiệm được chân vi xử lý và tránh được dòng
dồn về vi xử lý (dòng ở đây được dồn về 7447). Đây là cách mà người thiết kế
thường dùng trong các hệ thống cần đến hiện thị.
Thô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 ta phả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ện thị 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ẽ cho mỗ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
Nhóm : 6


Page 14


cho các LED 7 thanh và thiết kế thêm các tí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ác chân Anot chung hay Katot
chung. Nhìn trên sơ đồ trên ta thấy được kiểu ghép nối giữa cá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ển
nguồ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ạch trê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ý.

8 chân dữ liệu của LED 7 được chung nhau và chung được ghép nối qua
2 cách : Thứ nhất dùng vào trực tiếp các chân vi xử lý và thứ 2 là qua các IC
đệm hay IC giải mã...Nhưng trong thiết kế không mấy khi người ta cho trực tiếp
các chân dữ liệu đó vào trực tiếp vi xử lý mà người ta phải cho qua các IC đệm
hay giải mã đối với hệ thống lớn. Chỉ những mạch đơn giản người ta mới cho
vào trực tiếp vi xử lý.Thông thường người ta dùng thêm các IC đệm hay giải mã
như ULN2803, 74LS47
Đố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ét với tần số lớn.

Nhóm : 6

Page 15



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ời gian 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ính toá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ở.

CHƯƠNG 5: CẢM BIẾN NHIỆT LM35 VÀ
1. Giới thiệu về cảm biến nhiệt độ LM35

IC ADC0808

LM35 là cảm biến nhiệt độ bán dẫn thông dụng của hãng National
Semiconductor .
Đặc tính của LM35 :



Chuẩn hóa theo thang đo nhiệt đọ Cesius
Đầu ra tuyến tính 10mV/1độC
Dải nhiệt độ đo được từ -55 tới 150 độ tùy theo kiểu đóng vỏ
Dòng tiêu thụ rất nhỏ cỡ 60uA, nên nhiệt tự tỏa rất nhỏ hầu như không
ảnh hưởng đến kết quả đo.
Sai số nhỏ , chỉ khoảng 0.5độ C

2.

Giới thiệu về ADC0808







Bộ adc0808 là ic cmos tích hợp 8 bộ chuyển đổi tương tự số 8 bít. Bộ
chọn kênh được giải mã qua 3 chân điều khiển tương tích

Nhóm : 6

Page 16


Với :
IN0 tới IN7 : 8 ngõ đầu vào tương tự
DDR A,B,C : là 3 chân giải mã chọn 1 trong 8 ngõ vào
Z1 tới Z8 : ngõ ra song song 8 bit
ALE : Cho phép chốt yêu cầu
START : xung bắt đầu chuyển đổi
CLK : xung dao dộng cho quá trình biến đổi A-D
OE : Cho phép dữ liệu đầu ra
Ref+/- : Chân tham chiếu điện áp
Các đặc tính của ADC0808 :
• Độ phân giải 8 bít
• Thời gian chuyển đổi nhanh : tần số 100us tới 640kHz
• Nguồn nuôi 5V
• Ngõ vào điện áp 0-5V
• Nhiệt độ hoạt động -10 tới 85 độ C
Cấu trúc bên trong ADC0808


Nhóm : 6

Page 17


Bảng chọn kênh :

Giản đồ xung hoạt động của ADC0808

Nhóm : 6

Page 18


Mạch dao động :
Sử dụng mạch dao động cổng NOT để tạo ra dao động f = 640Khz
Vcc
560P
10K
IK
IK

Tần số của mạch dao động : f = 1/(3RC)
Loa cảnh báo: loa cảnh báo được ghép nối với bộ vi điều khiển để khi có sự sai
lệnh giữa giá trị đo và giá trị đặt thì hệ thống sẽ cảnh báo ra loa giúp khắc phục
sự cố và giảm tổn thất.

Nhóm : 6

Page 19



1.

PHẦN 2: NỘI DUNG THIẾT KẾ
Sơ đồ nguyên lý

Nhóm : 6

Page 20


C2
U1

33p

X1

19

12MHZ

C3

18

XTAL1

P0.0/AD0

P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

XTAL2

33p
9

C1

RST

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15

R3

10u


10k

29
30
31

d7
d6
d5
d4
d3
d2
d1
d0

1
2
3
4
5
6
7
8

PSEN
ALE
EA

P1.0/T2
P1.1/T2EX

P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD

39
38
37
36
35
34
33
32

Q3
NPN

Q4
NPN


21
22
23
24
25
26
27
28

Q5
NPN

Q6
NPN

10 START
11 ALE
12 INTR
13 EN
14 TH1
15 TL1
16
17

AT89C52

STOP

U3


1

START

U2(CLOCK)
+12V
22.0
VOUT

3

+12V

U2
2

26
27
28
1
2
3
4
5

LM35

+1.28V


25
24
23
ALE 22
12
16

IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
ADD A
ADD B
ADD C
ALE
VREF(+)
VREF(-)

CLOCK
START
EOC
OUT1
OUT2
OUT3
OUT4
OUT5

OUT6
OUT7
OUT8
OE

10
6

START

7

INTR

21
20
19
18
8
15
14
17

d0
d1
d2
d3
d4
d5
d6

d7

9

EN

TH1

BUZ1

BUZ2

BUZZER

BUZZER

Q1
NPN

TL1

Q2
NPN

ADC0808



Phân tích mạch :


Cảm biến nhiệt LM35 được nối với đầu vào IN0 tương ứng với chân chọn
địa chỉ đầu vào ADD A = ADD B = ADD C = 0;
Đầu ra số của ADC0808 được nối với Port 1 của 8051 .
Vì cảm biến LM35 làm loại LM35DZ với dải nhiệt độ max là 128 độ C
nên giá trị điện áp max là 1.28V tương ứng với giá trị số đầu ra là 255.= >
cần đưa điện áp tham chiếu Vref(+) = 1.28V, Vref(-) = 0.
Nguồn xung chuyển đổi clock với tần số 640Khz .
Khối hiển được nối với port P0 và được hiển thị theo phương pháp quét a not.
Hoạt động
Ta đặt cho hệ thống trong dải đo từ 150C đến 400C nếu hệ thống đo
được trong khoảng này và báo về bộ xử lý thì sẽ không có hiện tượng gì
xảy ra, khi hệ thống đo đo được giá trị ngoài khoảng này thì hệ thống sẽ


Nhóm : 6

Page 21


xử lý và đưa ra cảnh báo ở ngoài loa, nếu hệ thống đang hoạt động mà ấn
stop thì giá trị đo được sẽ được lưu lại cho lần đo tiếp theo.
Việc đo và tính toán được thực hiện qua các thiết bị như cảm biến các
con IC, các transistor và loa cảnh báo, cùng một số thiết bị khác
2.

Chương trình
C:0x0800

020954 LJMP C:0954
C?FPDIV:

C:0x0803 EC
MOV A,R4
C:0x0804 5D
ANL A,R5
C:0x0805 04
INC A
C:0x0806 6005 JZ
C:080D
C:0x0808 E8
MOV A,R0
C:0x0809 59
ANL A,R1
C:0x080A 04
INC A
C:0x080B 7003 JNZ
C:0810
C:0x080D 02094A LJMP C:094A
C:0x0810 120915 LCALL C:0915
C:0x0813 58
ANL A,R0
C:0x0814 04
INC A
C:0x0815 60F6 JZ
C:080D
C:0x0817 EC
MOV A,R4
C:0x0818 48
ORL A,R0
C:0x0819 60F2 JZ
C:080D

C:0x081B EC
MOV A,R4
C:0x081C 7004 JNZ
C:0822
C:0x081E FD
MOV R5,A
C:0x081F FE
MOV R6,A
C:0x0820 FF
MOV R7,A
C:0x0821 22
RET
C:0x0822 C8
XCH A,R0
C:0x0823 60DB JZ
C:0800
C:0x0825 2481 ADD A,#SP(0x81)
C:0x0827 C8
XCH A,R0
C:0x0828 5009 JNC
C:0833
C:0x082A C3
CLR
C
C:0x082B 98
SUBB A,R0
C:0x082C 6002 JZ
C:0830
C:0x082E 5006 JNC
C:0836

C:0x0830 020951 LJMP C:0951
C:0x0833 98
SUBB A,R0
C:0x0834 50CA JNC C:0800
C:0x0836 F582 MOV DPL(0x82),A
C:0x0838 E9
MOV A,R1
C:0x0839 29
ADD A,R1
C:0x083A 4B
ORL A,R3
C:0x083B 4A
ORL A,R2
C:0x083C 7005 JNZ C:0843
Nhóm : 6

Page 22


C:0x083E
C:0x0840
C:0x0843
C:0x0846
C:0x0848
C:0x084A
C:0x084B
C:0x084C
C:0x084D
C:0x084E
C:0x084F

C:0x0850
C:0x0851
C:0x0853
C:0x0854
C:0x0855
C:0x0856
C:0x0857
C:0x0858
C:0x0859
C:0x085A
C:0x085B
C:0x085C
C:0x085D
C:0x085E
C:0x0860
C:0x0862
C:0x0864
C:0x0866
C:0x0867
C:0x0869
C:0x086A
C:0x086C
C:0x086D
C:0x086F
C:0x0872
C:0x0873
C:0x0874
C:0x0876
C:0x0877
C:0x0878

C:0x0879
C:0x087A
C:0x087B
C:0x087C
C:0x087D
C:0x087E
C:0x087F
C:0x0880
C:0x0881
Nhóm : 6

AB82 MOV R3,DPL(0x82)
020940 LJMP C:0940
75F000 MOV B(0xF0),#0x00
7C1A MOV R4,#kq(0x1A)
7880 MOV R0,#P0(0x80)
C3
CLR
C
EF
MOV A,R7
9B
SUBB A,R3
EE
MOV A,R6
9A
SUBB A,R2
ED
MOV A,R5
99

SUBB A,R1
400D JC
C:0860
C3
CLR C
EF
MOV A,R7
9B
SUBB A,R3
FF
MOV R7,A
EE
MOV A,R6
9A
SUBB A,R2
FE
MOV R6,A
ED
MOV A,R5
99
SUBB A,R1
FD
MOV R5,A
E8
MOV A,R0
42F0 ORL B(0xF0),A
DC23 DJNZ R4,C:0885
ACF0 MOV R4,B(0xF0)
D0E0 POP ACC(0xE0)
FF

MOV R7,A
D0E0 POP ACC(0xE0)
FE
MOV R6,A
D0E0 POP ACC(0xE0)
FD
MOV R5,A
AB82 MOV R3,DPL(0x82)
20E710 JB
0xE0.7,C:0882
1B
DEC
R3
EB
MOV A,R3
60BA JZ
C:0830
EC
MOV A,R4
2C
ADD A,R4
FC
MOV R4,A
EF
MOV A,R7
33
RLC A
FF
MOV R7,A
EE

MOV A,R6
33
RLC A
FE
MOV R6,A
ED
MOV A,R5
33
RLC A
FD
MOV R5,A
Page 23


C:0x0882
C:0x0885
C:0x0886
C:0x0887
C:0x0888
C:0x088B
C:0x088D
C:0x0890
C:0x0891
C:0x0892
C:0x0893
C:0x0894
C:0x0895
C:0x0896
C:0x0897
C:0x0898

C:0x0899
C:0x089B
C:0x089E

02092C LJMP C:092C
E8
MOV A,R0
03
RR
A
F8
MOV R0,A
30E705 JNB 0xE0.7,C:0890
C0F0 PUSH B(0xF0)
75F000 MOV B(0xF0),#0x00
EF
MOV A,R7
2F
ADD A,R7
FF
MOV R7,A
EE
MOV A,R6
33
RLC A
FE
MOV R6,A
ED
MOV A,R5
33

RLC A
FD
MOV R5,A
40B8 JC
C:0853
30E7C2 JNB
0xE0.7,C:0860
80AA SJMP C:084A
C?FCASTL:
C:0x08A0 75F020 MOV B(0xF0),#0x20
C:0x08A3 800E SJMP C:08B3
C?FCASTI:
C:0x08A5 75F010 MOV B(0xF0),#0x10
C:0x08A8 8005 SJMP C:08AF
C?FCASTC:
C:0x08AA 75F008 MOV B(0xF0),#0x08
C:0x08AD 7D00 MOV R5,#0x00
C:0x08AF 7E00 MOV R6,#0x00
C:0x08B1 7F00 MOV R7,#0x00
C:0x08B3 33
RLC A
C:0x08B4 92D5 MOV F0(0xD0.5),C
C:0x08B6 30D503 JNB
F0(0xD0.5),C:08BC
C:0x08B9 120AAA LCALL C?LNEG(C:0AAA)
C:0x08BC EC
MOV A,R4
C:0x08BD 33
RLC A
C:0x08BE 4010 JC

C:08D0
C:0x08C0 EF
MOV A,R7
C:0x08C1 33
RLC A
C:0x08C2 FF
MOV R7,A
C:0x08C3 EE
MOV A,R6
C:0x08C4 33
RLC A
C:0x08C5 FE
MOV R6,A
C:0x08C6 ED
MOV A,R5
C:0x08C7 33
RLC A
C:0x08C8 FD
MOV R5,A
C:0x08C9 EC
MOV A,R4
C:0x08CA 33
RLC A
C:0x08CB FC
MOV R4,A
C:0x08CC D5F0ED DJNZ B(0xF0),C:08BC
Nhóm : 6

Page 24



C:0x08CF 22
RET
C:0x08D0 E5F0 MOV A,B(0xF0)
C:0x08D2 247E ADD A,#0x7E
C:0x08D4 A2D5 MOV C,F0(0xD0.5)
C:0x08D6 13
RRC A
C:0x08D7 CC
XCH A,R4
C:0x08D8 92E7 MOV 0xE0.7,C
C:0x08DA CD
XCH A,R5
C:0x08DB CE
XCH A,R6
C:0x08DC FF
MOV R7,A
C:0x08DD 22
RET
C?CASTF:
C:0x08DE ED
MOV A,R5
C:0x08DF D2E7 SETB 0xE0.7
C:0x08E1 CD
XCH A,R5
C:0x08E2 33
RLC A
C:0x08E3 EC
MOV A,R4
C:0x08E4 33

RLC A
C:0x08E5 92D5 MOV F0(0xD0.5),C
C:0x08E7 2481 ADD A,#SP(0x81)
C:0x08E9 4006 JC
C:08F1
C:0x08EB E4
CLR A
C:0x08EC FF
MOV R7,A
C:0x08ED FE
MOV R6,A
C:0x08EE FD
MOV R5,A
C:0x08EF FC
MOV R4,A
C:0x08F0 22
RET
C:0x08F1 FC
MOV R4,A
C:0x08F2 E4
CLR A
C:0x08F3 CF
XCH A,R7
C:0x08F4 CE
XCH A,R6
C:0x08F5 CD
XCH A,R5
C:0x08F6 CC
XCH A,R4
C:0x08F7 24E0 ADD A,#ACC(0xE0)

C:0x08F9 5011 JNC
C:090C
C:0x08FB 74FF MOV A,#0xFF
C:0x08FD 80ED SJMP C:08EC
C:0x08FF C3
CLR
C
C:0x0900 CC
XCH A,R4
C:0x0901 13
RRC A
C:0x0902 CC
XCH A,R4
C:0x0903 CD
XCH A,R5
C:0x0904 13
RRC A
C:0x0905 CD
XCH A,R5
C:0x0906 CE
XCH A,R6
C:0x0907 13
RRC A
C:0x0908 CE
XCH A,R6
C:0x0909 CF
XCH A,R7
C:0x090A 13
RRC A
C:0x090B CF

XCH A,R7
Nhóm : 6

Page 25


×