Kết quả thực hiện
Qua thời gian tích cực tìm hiểu và thực hiện đề tài, kết quả thu được cũng tương đối khả quan. Sản phẩm cuối cùng đáp ứng hầu như mọi yêu cầu mà đầu luận văn đã đề ra: Điều khiển được nhiều thiết bị từ máy tính, chương trình chạy tương đối ổn định . Tuy nhiên, về phần điều khiển nhiệt độ, nhiệt độ hiển thị không hoàn toàn chính xác mà có sai số trong khoảng từ ±2oC đến ±6oC tuỳ thuộc vào tầm nhiệt độ mà ta đo.
Hướng phát triển đề tài
Như đã trình bày ở trên, máy tính chỉ điều khiển được 4 thiết bị và khoảng cách giữa PC với các KIT bị hạn chế. Do đó, chúng ta có thể mở rộng điều khiển nhiều thiết bị bằng cách dùng mạng LAN, mỗi thiết bị gắn với KIT vi điều khiển tương ứng với 1 Workstation. Cụ thể, chúng ta có thể dùng mô hình Bus trong mạng LAN. Khi đó, máy tính muốn điều khiển thiết bị nào, trước hết phải gởi 1 byte điều khiển đến tất cả các Workstation.
Chương trình được nạp trên các Workstation này sẽ kiểm tra xem có phải máy tính muốn truyền dữ liệu đến nó không? Nếu đúng, chương trình trên nó sẽ thực hiện công việc nhận dữ liệu từ máy tính.
78 trang |
Chia sẻ: baoanh98 | Lượt xem: 1017 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Giao diện pc với các kit vi điều khiển qua cổng com, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t, và đọc SBUF để truy xuất dữ liệu thu được. Đây là hai thanh ghi riêng biệt : thanh ghi chỉ ghi để phát và thanh ghi chỉ đọc để thu.
CLK SBUF Q
(chỉ ghi)
TxD
(P3.1)
Thanh ghi dịch
D
CLK
Xung nhịp tốc độ Baud
(phát)
Xung nhịp tốc độ Baud
(thu)
RxD
(P3.0)
SBUF
(chỉ đọc)
Bus nội 8051/8031
Thanh ghi điều khiển Port nối tiếp: ở địa chỉ 98H là thanh ghi có địa chỉ bit chứa các bit trạng thái và các bit điều khiển. Các bit điều khiển đặt chế độ hoạt động cho Port nối tiếp, và các bit trạng thái báo kết thúc việc phát hoặc thu ký tự. Tần số làm việc của Port nối tiếp, còn gọi là tốc độ Baud có thể cố định. Nếu sử dụng tốc độ Baud thay đổi, Timer 1 sẽ cung cấp xung nhịp tốc độ Baud và phải được lập trình. Sau đây là các bảng tóm tắt thanh ghi SCON và các chế độ của Port nối tiếp :
Bit Ký hiệu Địa chỉ Mô tả
SCON.7 SM0 9FH Bit 0 của chế độ Port nối tiếp.
SCON.6 SM1 9EH Bit 1 của chế độ Port nối tiếp.
SCON.5 SM2 9DH Bit 2 của chế độ Port nối tiếp. Cho phép truyền thông đa xử lý trong các chế độ 2 và 3.
SCON.4 REN 9CH Cho phép bộ thu phải được đặt lên 1 để thu.
SCON.3 TB8 9BH Bit 8 phát, bit thứ 9 được phát trong các chế độ 2 và 3
SCON.2 RB8 9AH Bit 8 thu, bit thứ 9 thu được.
SCON.1 TI 99H Cờ ngắt phát. Đặt lên 1 khi kết thúc phát ký tự; được xóa bằng phần mềm.
SCON.0 RI 98H Cờ ngắt thu. Đặt lên 1 khi kết thúc thu ký tự; được
xóa bằng phần mềm.
Tóm tắt thanh ghi chế độ Port nối tiếp SCON.
Các chế độ hoạt động
Thanh ghi dịch 8 bit (chế độ 0)
Chế độ 0 được chọn bằng cách ghi các bit 0 vào SM1 và SM0 của SCON, đưa Port nối tiếp vào chế độ thanh ghi dịch 8 bit. Dữ liệu nối tiếp vào và ra qua RxD và TxD xuất xung nhịp dịch. 8 bit được phát hoặc thu với bit đầu tiên là LSB. Tốc độ Baud cố định ở 1/12 tần số dao động trên chip.
Việc phát đi được khởi động bằng bất cứ lệnh nào ghi dữ liệu vào SBUF. Dữ liệu được dịch ra ngoài trên đường RxD (P3.0) với các xung nhịp được gửi ra đường TxD (P3.1). Mỗi bit phát đi hợp lệ trong một chu kỳ máy. Trong mỗi chu kỳ máy, tín hiệu xung nhập xuống thấp ở S3P1 và trở về mức cao ở S6P1.
S1
P1
P2
S2
P1
P2
S3
P1
P2
S4
P1
P2
S5
P1
P2
S6
P1
P2
Một chu kỳ máy
OSC
ALE
Bit dữ liệu hợp lệ
Dữ liệu xuất
Clock dịch
Clock dịch
(TxD)
D0
D1
D2
D3
D4
D5
D6
D7
Dữ liệu xuất
ALE
Phóng to
Giản đồ thời gian Port nối tiếp phát ở chế độ 0.
Việc thu được khởi động khi bit cho phép bộ thu (REN) là 1 và bit ngắt thu (RI) là 0. Qui tắc tổng quát là đặt REN khi bắt đầu chương trình để khởi động Port nối tiếp, rồi xóa RI để bắt đầu hoạt động nhập dữ liệu. Khi RI bị xóa, các xung nhịp được đưa ra đường TxD, bắt đầu chu kỳ máy kế tiếp, và dữ liệu theo xung nhịp ở đường RxD. Lấy xung nhịp cho dữ liệu vào Port nối tiếp xảy ra ở cạnh dương của TxD.
Clock dịch
(TxD)
ALE
Một chu kỳ máy
D0
D0
D0
D0
D0
D0
D0
D0
Dữ liệu nhập (RxD)
Giản đồ thời gian Port nối tiếp thu ở chế độ 0.
Một ứng dụng của chế độ thanh ghi dịch là mở rộng khả năng xuất của 8051/8031. IC thanh ghi dịch nối tiếp ra song song có thể được nối vào các đường TxD và RxD của 8051/8031 để cung cấp thêm 8 đường ra. Có thể nối xâu chuỗi thêm các thanh ghi dịch để mở rộng thêm.
Clock Thanh ghi
Dữ liệu dịch
TxD (P3.1)
RxD (P3.0)
8051
Thêm 8 ngõ ra
Chế độ thanh ghi dịch của Port nối tiếp.
UART 8 bit với tốc độ Baud thay đổi được (chế độ 1).
Ở chế độ 1, Port nối tiếp của 8051/8031 làm việc như một UART 8 bit với tốc độ Baud thay đổi được. Một UART (Universal Asynchronous Receiver/Transmitter : Bộ thu/phát bất đồng bộ vạn năng) là một dụng cụ thu và phát dữ liệu nối tiếp với mỗi ký tự dữ liệu đi trước là bit Start ở mức thấp và theo sau là bit stop ở mức cao. Đôi khi xen thêm bit kiểm tra chẵn lẻ giữa bit dữ liệu cuối cùng và bit stop. Hoạt động chủ yếu của UART là chuyển đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song song với dữ liệu nhập.
Ở chế độ 1, 10 bit được phát trên TxD hoặc thu trên RxD. Những bit đó là : 1 bit Start (luôn luôn là 0), 8 bit dữ liệu (LSB đầu tiên) và 1 bit stop (luôn luôn là 1). Với hoạt động thu, bit stop được đưa vào RB8 trong SCON. Trong 8051/8031 chế dộ Baud được đặt bằng tốc độ báo tràn của Timer 1.
Tạo xung nhịp và đồng bộ hóa các thanh ghi dịch của Port nối tiếp trong các chế độ 1, 2 và 3 được thiết lập bằng bộ đếm 4 bit chia cho 16, ngõ ra là xung nhịp tốc độ Baud. Ngõ vào của bộ đếm này được chọn qua phần mềm
Xung nhịp tốc độ Baud
Thanh ghi dịch Port nối tiếp
¸ 12
16 ´ tốc độ Baud
Tạo xung nhịp Port nối tiếp.
Truyền dữ liệu (phát) được khởi động bằng cách ghi vào SBUF, nhưng vẫn chưa thật sự bắt đầu chạy cho đến khi sự thay thế kế tiếp của bộ đếm chia cho 16 cung cấp tốc độ Baud cổng nối tiếp. Dữ liệu được dịch ra ngoài trên đường TxD bắt đầu bằng bit Start, theo sau là 8 bit dữ liệu và sau cùng là bit stop. Độ rộng (theo thời gian của mỗi bit) là nghịch đảo của tốc độ Baud được lập trình trong Timer. Cờ ngắt phát (TI) được đặt lên 1 khi xuất hiện bit stop trên TxD.
bit Start
bit stop
D0
D1
D2
D3
D4
D5
D6
D7
TxD
1
tốc độ Baud
TI (SCON.1)
Ngắt phát
(chuẩn bị cho dữ liệu)
Đặt cờ TI Port nối tiếp.
Việc thu dữ liệu được khởi động bằng một chuyển trạng thái từ 1 xuống 0 trên RxD. Bộ đếm 16 tức thời được xóa để đồng bộ số đếm với luồng bit đến. Luồng bit đến được lấy mẫu giữa 16 lần đếm. Bộ thu sẽ phát hiện được bit Start sai bằng cách yêu cầu trạng thái 0 (bit Start) ở lần đếm thứ 8 sau khi có chuyển trạng thái từ 1 xuống 0 đầu tiên . Nếu điều này không xảy ra, người ta giả sử là bộ thu được kích bởi nhiễu chứ không phải do một ký tự hợp lệ. Bộ thu được Reset và quay về trạng thái nghỉ (idle), tìm kiếm (đợi) chuyển trạng thái từ 1 xuống 0 kế .
Giả sử đã phát hiện được bit Start hợp lệ, thì tiếp tục thu ký tự. Bit Start được bỏ qua và 8 bit dữ liệu được đưa vào thanh ghi dịch cổng nối tiếp theo xung nhịp . Khi đã có được tất cả 8 bit, điều sau đây xảy ra :
1. Bit thứ 9 (stop bit) được chốt vào RB8 trong SCON.
2. SBUF được nạp với 8 bit dữ liệu.
3. Cờ ngắt bộ thu (RI) được đặt lên 1.
Tuy nhiên, những điều này chỉ xảy ra nếu đã có những điều kiện sau :
1. RI = 0
2. SM2 = 1 và bit stop thu được là 1, hoặc SM2 = 0.
Đòi hỏi RI = 0 để bảo đảm là phần mềm đã đọc ký tự trước (và RI được xóa) . Điều kiện thứ hai hơi phức tạp nhưng chỉ áp dụng trong chế độ truyền thông đa xử lý . Điều đó hàm ý là “không đặt RI lên một trong chế độ truyền thông đa xử lý khi bit dữ liệu thứ 9 là 0) .
UART 9 bit với tốc độ Baud cố định (chế độ 2)
Khi SM1 = 1 và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như một UART 9 bit có tốc độ Baud cố định . 11 bit sẽ được phát hoặc thu : 1 bit Start, 8 bit dữ liệu, bit dữ liệu thứ 9 có thể lập trình được và 1 bit stop . Khi phát, bit thứ 9 là bất cứ gì đã được đưa vào TB8 trong SCON (có thể là bit parity) . Khi thu, bit thứ 9 thu được sẽ ở trong RB8 . Tốc độ Baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động trên chip .
UART 9 bit với tốc độ Baud thay đổi được.
Chế độ này giống như chế độ 2, ngoại trừ tốc độ Baud có thể lập trình được và được cung cấp bởi Timer . Thật ra, các chế độ 1,2 và 3 rất giống nhau . Các khác biệt là ở tốc độ Baud (có định trong chế độ 2, thay đổi trong các chế độ 1 và 3) và ở số bit dữ liệu (8 trong chế độ 1, 9 trong các chế độ 2 và 3).
Khởi động và truy xuất các thanh ghi Port nối tiếp
Thanh ghi cho phép thu
Bit cho phép bộ thu (REN = Receiver Enable) trong SCON phải được đặt lên 1 bằng phần mềm để cho phép thu các ký tự. Thông thường, phải thực hiện việc này ở đầu chương trình khi khởi động cổng nối tiếp, Timer, ... Có thể thực hiện việc này theo hai cách. Lệnh SETB REN sẽ đặt REN lên 1, hoặc lệnh MOV SCON, #xxx1xxxxB sẽ đặt REN lên 1 và đặt hoặc xóa các bit khác trong SCON khi cần (Các x phải là 0 hoặc 1 để đặt chế độ làm việc).
Bit dữ liệu thứ 9:
Bit dữ liệu thứ 9 cần phát trong các chế độ 2 và 3 phải được nạp vào trong TB8 bằng phần mềm. Bit dữ liệu thứ 9 thu được đặt ở RB8 . Phần mềm có thể cần hoặc không cần bit dữ liệu thứ 9, phụ thuộc vào đặc tính kỹ thuật của thiết bị nối tiếp sử dụng . (Bit dữ liệu thứ 9 cũng đóng một vai trò quan trọng trong truyền thông đa xử lý) .
Thêm 1 bit parity
Thường sử dụng bit dữ liệu thứ 9 để thêm parity vào ký tự . Như đã xét ở các chương trước, bit Parity trong từ trạng thái chương trình (PSW) được đặt lên 1 hoặc bị xóa mỗi chu kỳ máy để thiết lập kiểm tra chẵn với 8 bit trong thanh ghi tích lũy . Ví dụ, nếu truyền thông cần 8 bit dữ liệu cộng thêm kiểm tra chẵn, có thể sử dụng các lệnh sau để phát 8 bit trong thanh ghi tích lũy với kiểm tra chẵn thêm vào bit thứ 9 :
MOV C, P ; Đặt bit parity chẵn vào TB8
MOV TB8, C ; nó trở thành bit dữ liệu thứ 9
MOV SBUF, A ; Chuyển 8 bit từ ACC vào SBUF.
Nếu cần parity lẻ thì sửa các lệnh lại như sau :
MOV C, P ; Đặt bit parity chẵn vào cờ C
CPL C ; Đổi sang parity lẻ
MOV TB8, C
MOV SBUF, A
Dĩ nhiên, việc sử dụng parity không bị giới hạn ở các chế độ 2 và 3 . Ở chế độ 1, 8 bit dữ liệu được truyền đi có thể bao gồm 7 bit dữ liệu cộng thêm bit parity. Để truyền mã ASCII 7 bit với parity chẵn ở bit 8, có thể sử dụng các lệnh sau
CLR ACC.7 ; bảo đảm MSB được xóa
MOV C, P ; parity chẵn ở trong
MOV ACC.7, C ; Đặt parity chẵn vào MSB
MOV SBUF, A ; Gởi ký tự đi: 7 bit dữ liệu cộng parity chẵn.
Các cờ ngắt
Hai cờ ngắt thu và phát (RI và TI) trong SCON đóng một vai trò quan trọng trong truyền thông nối tiếp dùng 8051/8031 . Cả hai bit được đặt lên 1 bằng phần cứng, nhưng phải được xóa bằng phần mềm .Ví dụ, thường RI được đặt lên 1 khi kết thúc việc thu ký tự và báo “bộ đệm thu tràn”.
Điều kiện này có thể được kiểm tra trong phần mềm hoặc có thể được lập trình để gây ra một ngắt . Nếu phần mềm muốn nhập một ký tự từ thiết bị được nối vào cổng nối tiếp (có thể là thiết bị đầu cuối hiển thị video), nó phải đợi cho đến khi RI được đặt lên 1, rồi xóa RI và đọc ký tự từ SBUF. Chương trình như sau :
WAIT : JNB RI, WAIT ; Kiểm tra RI cho đến khi nó = 1
CLR RI ; Xóa RI
MOV A, SBUF ; Đọc ký tự
TI được đặt lên 1 ở cuối lúc phát ký tự và báo “ bộ đệm phát trống”. Nếu phần mềm muốn gửi một ký tự đến một thiết bị được nối vào cổng nối tiếp, trước hết nó phải kiểm tra xem cổng nối tiếp sẵn sàng chưa. Nói cách khác, nếu ký tự trước đã được gởi đi, đợi cho đến khi việc truyền dữ liệu hoàn tất trước khi gửi ký tự kế. Các lệnh sau sẽ truyền ký tự trong thanh ghi tích lũy:
WAIT : JNB TI, WAIT ; Kiểm tra TI cho đến khi nó bằng 1
CLR TI ; Xóa TI
MOV SBUF, A ; Gởi ký tự đi.
Các đoạn chương trình trên là một phần của các hàm nhập và xuất ký tự chuẩn.
Tốc độ Baud Port nối tiếp
Như đã nói, tốc độ Baud cố định ở các chế độ 0 và 2. Trong chế độ 0, nó luôn luôn là tần số dao động trên chip được chia cho 12. Thông thường, thạch anh ấn định tần số dao động trên chip của 8051/8031, nhưng cũng có thể sử dụng nguồn xung nhịp khác. Giả sử với tần số dao động danh định là 12 MHz, thì tốc độ Baud chế độ 0 là 1 MHz.
¸ 12
xung nhịp tốc độ Baud
dao động trên chip
a) chế độ 0
¸ 32
xung nhịp tốc độ Baud
dao động trên chip
c) các chế độ 1 và 3.
¸ 16
SMOD = 0
SMOD = 1
¸ 64
xung nhịp tốc độ Baud
dao động trên chip
b) chế độ 2
¸ 32
SMOD = 0
SMOD = 1
Các nguồn tạo xung nhịp cho Port nối tiếp.
Mặc nhiên sau khi Reset hệ thống, tốc độ Baud chế độ 2 là tần số bộ dao động chia cho 64 . Tốc độ Baud cũng bị ảnh hưởng bởi một bit trong thanh ghi điều khiển nguồn cung cấp (PCON). Bit 7 của PCON là bit SMOD. Đặt bit SMOD lên 1 làm tăng gấp đôi tốc độ Baud trong các chế độ 1, 2 và 3. Trong chế độ 2, tốc độ Baud có thể bị gấp đôi từ giá trị mặc nhiên của 1/64 tần số dao động (SMOD = 0) đến 1/32 tần số dao động (SMOD = 1).
Vì PCON không được định địa chỉ theo bit, nên để đặt bit SMOD lên 1 cần phải theo các lệnh sau :
MOV A, PCON ; Lấy giá trị hiện thời của PCON
SETB ACC.7 ; Đặt bit 7 (SMOD) lên 1
MOV PCON, A ; Ghi giá trị ngược về PCON.
Các tốc độ Baud trong các chế độ 1 và 3 được xác định bằng tốc độ tràn của Timer 1. Vì Timer hoạt động ở tần số tương đối cao, tràn Timer được chia thêm cho 32 (16 nếu SMOD = 1) trước khi cung cấp xung nhịp tốc độ Baud cho Port nối tiếp.
Sử dụng Timer 1 làm xung nhịp tốc độ Baud
Xét 8051, cách thông dụng để tạo tốc độ Baud là khởi động TMOD cho chế độ 8 bit tự động nạp lại (chế độ 2) và đặt giá trị nạp lại đúng vào TH1 để cho tốc độ tràn đúng với tốc độ Baud.
TMOD được khởi động như sau :
MOV TMOD, #0010xxxxB
Các x là các bit 1 hoặc 0 cần cho Timer.
Cũng có thể đạt được các tốc độ Baud thấp bằng cách sử dụng Timer chế độ 1 với TMOD = 0001xxxxB. Tuy nhiên, tốn thêm phần mềm vì các thanh ghi TH1/TL1 phải được khởi động lại sau mỗi lần tràn. Việc này sẽ được thực hiện trong chương trình phục vụ ngắt. Một chọn lựa khác là cấp xung nhịp cho Timer 1 từ ngoài dùng T1(P3.5). Và luôn luôn tốc độ Baud là tốc độ tràn của Timer 1 được chia cho 32 (hoặc cho 16, nếu SMOD = 1).
Công thức tổng quát để xác định tốc độ Baud trong các chế độ 1 và 3 là :
Tốc độ Baud = Tốc độ tràn của Timer 1 ¸ 32.
Ví dụ, muốn làm việc với tốc độ Baud là 1200 Baud, thì tốc độ tràn của Timer 1 phải là :
1200 ´ 32 = 38.4 KHz.
Nếu dùng thạch anh 12 MHz, Timer 1 được cấp xung nhịp 1 MHz hay 1000 KHz. Vì tốc độ tràn của Timer 1 là 38.4 KHz và Timer được cấp xung hịp 1000 KHz, thì cần tràn sau 1000 ¸ 38.4 = 26.04 xung nhịp (làm tròn là 26). Vì Timer đếm lên và tràn xảy ra khi có sự thay đổi từ FFH xuống 00H ở số đếm. Như vậy giá trị đúng cần nạp vào TH1 là –26.
Cách dễ nhất để đặt giá trị nạp lại vào TH1 là :
MOV TH1, # –26
Trình hợp dịch sẽ thực hiện chuyển đổi cần thiết. Trong trường hợp này –26 được chuyển thành 0E6H. Như vậy, lệnh trên hoàn toàn giống với lệnh :
MOV TH1, # 0E6H
Do việc làm tròn nên có sai số nhỏ trong tốc độ Baud. Tổng quát thì cho phép dung sai 5% trong truyền thông bất đồng bộ (Start/Stop).
Có thể có được tốc độ Baud chính xác nếu dùng thạch anh 11.059 MHz. Bảng sau đây tóm tắt các giá trị nạp lại cho các tốc độ Baud thông dụng nhất, dùng thạch anh 12 MHZ hoặc 11.059 MHz :
Tốc độ Baud
9600 12.000 MHz 1 –7 (F9H) 8923 7%
2400 12.000 MHz 0 –13 (F3H) 2404 0.16%
1200 12.000 MHz 0 –26 (E6H) 1202 0.16%
19200 11.059 MHz 1 –3 (FDH) 19200 0
9600 11.059 MHz 0 –3 (FDH) 9600 0
2400 11.059 MHz 0 –12 (F4H) 2400 0
1200 11.059 MHz 0 –24 (E8H) 1200 0
Tần số
thạch anh
SMOD
Giá trị nạp lại vào TH1
Tốc độ Baud thật
Sai số
Bảng tóm tắt tốc độ Baud.
PHẦN 2
THIẾT KẾ PHẦN CỨNG VÀ
CHƯƠNG TRÌNH ĐIỀU KHIỂN
CHƯƠNG 4
CÁC VI MẠCH DÙNG TRONG ĐỀ TÀI
VI MẠCH ADC0809
Giới thiệu ADC0809
Khối giao tiếp A/D có nhiệm vụ đọc về từ ngõ Input các giá trị Analog đo đạt được từ các đối tượng điều khiển bên ngoài (tín hiệu từ cảm biến, giá trị điện áp, ...) được chuyển đổi thành số (Digital) để đưa vào các thanh ghi của bộ vi xử lý.
ADC 0809 là thiết bị chuyển đổi Analog sang Digital 8 bit, Multiplex 8 kênh và tương thích với bộ vi xử lý. ADC0809 sử dụng kỹ thuật chuyển đổi A/D xấp xỉ liên tiếp.
Khả năng
Giao tiếp dễ dàng với tất cả các bộ vi xử lý .
Hoạt động với thang đo tỷ lệ với 5VDC hoặc điện áp chuẩn có thể điều chỉnh .
Không cần chỉnh không hay toàn thang .
Multiplex 8 kênh với địa chỉ logic .
Tầm điện áp vào 0-5V với nguồn cung cấp đơn 5V.
Ngõ ra phù hợp với mức điện áp TTL .
Sai số không điều chỉnh được tổng cộng : ± 1 LSB
Độ phân giải : 8 bit.
Nguồn cung cấp đơn : 5VDC.
Công suất thấp : 15mW.
Thời gian chuyển đổi : 100ms
Đặc tính kỹ thuật
Ký hiệu
Thông số
Điều kiện
Tối thiểu
Điển hình
Tối đa
Đơn vị
VREF+
Điện áp cao nhất của thang đo
VCC
VCC+0.1
V
VREF-
Điện áp thấp nhất của thang đo
-0.1
0
V
IIN
Dòng vào
fCLK=640KHz
-2
±0.5
2
mA
VIN(1)
Điện áp vào logic 1
VCC -1.5
V
VIN(0)
Điện áp vào logic 0
1.5
V
VOUT(1)
Điện áp ra logic 1
IOUT=-360uA
VCC -0.4
V
VOUT(0)
Điện áp ra logic 0
IOUT= 1.6mA
0.45
V
fCLK
Tần số xung clock
10
640
1280
KHz
tEOC
Thời gian delay EOC
(Xem giản đồ xung)
0
8 +2ms
Chu kỳ clock
tC
Thời gian biến đổi
FCLK=640KHz
90
100
116
ms
tWS
Độ rộng xung Start tối thiểu
(Xem giản đồ thời gian)
100
200
Ns
tALE
Độ rộng xung ALE tối thiểu
(Xem giản đồ thời gian)
100
200
ns
Mô tả chức năng
Mạch chọn kênh (Multiplexer) .
Mỗi kênh ngõ vào riêng biệt được chọn bằng cách giải mã địa chỉ theo bảng sau:
Kênh Analog được chọn
Địa chỉ
A2
A1
A0
IN0
0
0
0
IN1
0
0
1
IN7
1
1
1
Địa chỉ được chốt vào bộ giải mã bên trong tại cạnh lên của xung chốt địa chỉ .
Đặc tính chuyển đổi
Thanh ghi xấp xỉ liên tiếp của bộ biến đổi A/D được Reset tại cạnh lên của xung Start (bắt đầu chuyển đổi). Sự chuyển đổi được bắt đầu tại cạnh xuống của xung Start. Quá trình chuyển đổi sẽ bị ngắt nếu nhận một xung Start mới. Sự chuyển đổi liên tiếp có thể được thực hiện bằng cách nối ngõ ra EOC (End Of Convert – Kết thúc chuyển đổi) vào ngõ Start. Nếu sử dụng chế độ này, một xung Start bên ngoài phải được cung cấp sau khi bật nguồn . Xung EOC sẽ xuống mức thấp sau cạnh lên của xung Start từ 0 đến 8 xung clock và lên mức cao khi việc chuyển đổi đã xong.
Mạch tạo dao động cho ADC0809
Biết tần số xung clock của ADC0809 nằm trong khoảng từ 10KHz đến 1280 KHz, nên tần số xung clock trong mạch được lấy từ tần số dao động chuẩn của thạch anh, đưa qua IC đếm 74393 với công dụng là IC chia tần số. Các ngõ ra QA, QB, QC, QD lần lượt chia tần số xung clock vào với 2, 4, 8, 16. Vậy tần số ra 74393 (vào xung clock ADC 0809) là:
VI MẠCH DAC0808
Giới thiệu DAC0808
Khối D/A giao tiếp với vi xử lý có nhiệm vụ chuyển đổi các giá trị Digital trong các thanh ghi của vi xử lý thành các giá trị Analog và xuất ra các đối tượng điều khiển bên ngoài. Họ DAC0808 (DAC0808/ DAC0807/ DAC0806) là bộ biến đổi Digital sang Analog 8 bit, có thời gian xử lý dòng ra toàn thang là 150ns, công thức tiêu thụ chỉ 33mW với nguồn ±5V.
Họ DAC0808 giao tiếp trực tiếp với các mức logic thông dụng như TTL, DTL hoặc CMOS.
Khả năng
Độ chính xác tương đối :±0.19% (8 bit) với DAC0808
Độ chính xác 6-bit và 7-bit với DAC0806 và DAC0807
Thời gian xử lý nhanh : 150 ns
Ngõ vào Digital không đảo, tương thích TTL và CMOS
Tốc độ quét cao : 8 mA/ms
Tầm điện áp cung cấp : ± 4.5V đến ± 18V
Công suất tiêu thụ thấp : 33 mW với nguồn ± 5V
Trị số tối đa
Nguồn cung cấp : VCC = + 18 VDC , VEE = - 18 VDC
Điện áp ngõ vào Digital (V5 -V12) : -10VDC đến +18VDC
Điện áp ngõ ra được dùng (V0) : -11 VDC đến +18 VDC
Dòng chuẩn (I14): 5 mA
Điện áp vào chuẩn (V14,V15) : VCC,VEE
Hoạt động cơ bản
Dòng điện chuẩn được tạo ra bằng một trong 2 cách : chuẩn dương hoặc chuẩn âm.
Dòng điện vào chuẩn I14, phải luôn luôn chạy vào chân 14, bất chấp cách bố trí hoặc cực tính nguồn áp chuẩn. Cách kết nối với áp dương như trên hình a. Với tín hiệu chuẩn lưỡng cực, R15 có thể được nối với nguồn âm. Trị số của tụ bù phải tăng khi R14 tăng để duy trì lề pha thích hợp. Ví dụ với R15 là 1,25 và 5K thì trị tối thiểu của tụ là 15,37 và 75pF. Tụ có thể nối đến VEE hoặc đất .
Áp chuẩn âm có thể được sử dụng nếu R14 được nối đất và chuẩn được nối đến R15 như hình b . Phương pháp này có thuận lợi chính là tổng trở vào cao (tại chân 15).
DAC0808 là bộ biến đổi D/A tạo ra dòng điện có trị số tùy theo giá trị Digital và dòng điện chuẩn ngõ vào. Dòng điện chuẩn có thể có trị số cố định hoặc thay đổi từ gần 0 đến 4 mA. Dòng ngõ ra toàn thang (IFS – Full Scale) là một hàm tuyến tính của dòng chuẩn và cho bởi
IFS=
IREF
với IREF= I14=
VREF
IOUT =
IREF
x G iá trị Digital ngõ vào
Dòng điện ra:
R15 (thông thường bằng R14) được sử dụng để loại bỏ sai số dòng phân cực. R15 có thể bỏ đi, khi đó chỉ tăng sai số một ít . Khi dùng điện áp chuẩn DC thì nên sử dụng tụ bypasss xuống đất .
LED 7 ĐOẠN
Led 7 đoạn dùng để hiển thị dữ liệu, trong đề tài ta sử dụng loại Anode chung, phần tử gồm 3 led .
2 led hiển thị số chẵn và 1 led hiển thị số lẻ .
1 dp hiển thị dấu chấm thập phân .
Cả 3 led được kết nối theo sơ đồ Anode chung .
Mã xuất led
Hiển thị
Mã hex
0
02h
1
9Eh
2
24h
3
0Ch
4
98h
5
48h
6
60h
7
1Eh
8
00h
9
08h
Sơ đồ chân
BỘ GIẢI MÃ 74LS138
74LS138 là IC giải mã được dùng để chuyển đổi từ 3 đường tín hiệu sang 8 đường tín hiệu Digital (23 = 8 ) .
Các ngõ ra tích cực ở mức thấp, các đầu vào cho phép là G1, G2A, G2B, 3 đường địa chỉ đầu vào là A, B, C .
Bảng sự thật của IC 74LS138 :
G1
C
B
A
/Y7
/Y6
/Y5
/Y4
/Y3
/Y2
/Y1
/Y0
0
X
X
X
X
X
1
1
1
1
1
1
1
1
X
1
X
X
X
X
1
1
1
1
1
1
1
1
X
X
1
X
X
X
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1 : Trạng thái mức cao ( High) .
0 : Trạng thái mức thấp ( Low) .
X : Trạng thái tùy định
Sơ đồ chân của IC 74LS138
VI MẠCH CẢM BIẾN NHIỆT LM 335
Giới thiệu
LM 335 thuộc họ cảm biến nhiệt : LM – 135, LM – 235, LM – 335, có độ chính xác cao
Ứng dụng trong tầm nhiệt -40oC ÷ 100oC, với ngõ ra có trở kháng thấp nên dễ dàng giao tiếp với các thiết bị kỹ thuật số .
Các thông số cơ bản
Trở kháng động < 1Ω
Dòng làm việc 400 nA ÷ 5 mA, công suất tiêu tán thấp .
Dòng ngược 15 mA .
Tầm nhiệt độ liên tục : -40oC ÷ 100oC .
Tầm nhiệt độ giới hạn : -55oC ÷ 150oC .
Xác định trực tiếp theo thang độ Kelvin .
Ngõ ra tuyến tính .
Độ biến thiên điện áp theo nhiệt độ 10 mV /1oC .
IC CHỐT 74HC573
IC chốt 74HC573 gồm 8 bộ chốt ngõ ra 3 trạng thái .Khi chân C ở mức thấp thì được xuất, nếu chân C ở mức cao thì địa chỉ được chốt .
Trong ứng dụng này chân C được nối với chân ALE của 89C51, còn chân OC được nối với mass .
Sơ đồ chân của 74HC573
Bảng sự thật
OC
C
Data
Output
0
1
1
1
0
1
0
0
0
0
X
Q0
1
X
X
Z
CÁC IC ỔN ÁP : 7805, 7812, 7912
Đây là các IC ổn áp dùng cho các bộ nguồn ổn áp có công suất thấp .
Các đặc tính chung
Dòng cung cấp dưới 1A .
Hoạt động độc lập không phụ thuộc bên ngoài .
Bảo vệ nhiệt quá tải bên trong .
Tự động ngắn mạch khi quá dòng .
Độ gia giảm áp đầu ra trong khoảng (2 ÷ 4)% .
Tầm nhiệt hoạt động (-55 ÷ 150)oC .
IC 7805
Dòng làm việc 50 mA ≤ Io ≤ 1A .
Dòng xuất Po ≤ 15W .
Điện áp đầu vào 7 VDC ≤ Vin ≤ 20 VDC .
Điện áp đầu ra 4,8 VDC ≤ Vout ≤ 5,2 VDC
IC 7812
Dòng làm việc 50 mA ≤ Io ≤ 1A.
Dòng xuất Po ≤ 15W .
Điện áp đầu vào 14,5 VDC ≤ Vin ≤ 27 VDC .
Điện áp đầu ra 11,4 VDC ≤ Vout ≤ 12,2 VDC .
IC 7912
Dòng làm việc 1 mA ≤ Io ≤ 100mA.
Điện áp đầu vào -30 VDC ≤ Vin ≤ -14,5 VDC .
Điện áp đầu ra -12,5VDC ≤ Vout ≤ -11,5VDC .
TL431
Đây là IC ổn áp chất lượng cao, có thể chỉnh để lựa chọn điện áp thích hợp với tầm dòng điện khống chế trong khoảng 1mA ÷ 125mA .
Chân Adj : chân chỉnh định .
A : cực Anode .
C : cực Cathode .
OPAMP TL082
OpAmp TL082 là một mạch khuếch đại thuật toán chính xác theo tiêu chuẩn công nghiệp, được đặc trưng với điện áp Offset cực kỳ nhỏ, dòng vào không đáng kể (điện trở đầu vào Rin cao ). Vì TL082 có mạch phần bù tần số bên trong và trong nhiều trường hợp có thể thay thế trực tiếp cho các khuếch đại thuật toán khác .
TL 082 là một mạch tích hợp bao gồm 2 OpAmp thành phần với đặc điểm là loại OpAmp Bifet, được chế tạo trên cơ sở 2 công nghệ lưỡng cực Bipolar và Jfet, nó dùng Fet ở ngõ vào để nâng tổng trở vào lên rất cao và dùng Bjt ở ngõ ra để khuếch đại . Vì Fet là linh kiện hoạt động bằng áp nên dòng phân cực và dòng Offset rất nhỏ, về cơ bản thì có thể bỏ qua .
Đặc tính
Công tiêu tán thấp .
Dòng phân cực vào, Offset thấp < 20mAðkhông cần chỉnh Offset ngoài .
Bảo vệ ngắn mạch ngõ ra .
Tầm điện áp vi sai và rộng .
Tổng trở vào cao .
Có bổ chính tần số bên trong .
Làm việc không bị Latch –up .
Các thông số kỹ thuật
Dải điện áp nguồn Vcc : ± 3V ÷18V.
Điện áp bảo hòa Vbh : ±13V .
Điện áp Offset Vos(max) : 75µV .
Đòng điện tĩnh đầu vào IB =2pA .
Tốc độ tăng điện áp 0,3V /1µs .
Dòng điện phân cực đầu vào ±2,2 nA .
Điện trở đầu vào Rin = 60MΩ .
Thời gian đáp ứng 0,17µs /V .
Sơ đồ chân của IC TL082
IC 74LS393
Đây là vi mạch số dùng trong các mạch đếm . Ta sử dụng trong mạch như một IC chia tần số, để chia tần số 12MHz từ bộ dao động thạch anh thành xung 691KHz cấp cho chân clock của IC ADC – 0809 .
Bảng sự thật của IC 74393
Counter
OD
OC
OB
OA
0
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
0
1
0
0
5
0
1
0
1
6
0
1
1
0
7
0
1
1
1
8
0
0
0
0
9
1
0
0
1
10
1
0
1
0
11
1
0
1
1
12
1
1
0
0
13
1
1
0
1
14
1
1
1
0
15
1
1
1
1
Sơ đồ chân của IC 74393
IC MAX – 232
Truyền thông cũng là một thành phần quan trọng cấu thành nên hệ thống điều khiển tự động . Khi đối tượng điều khiển và vi xử lý đặt cách xa nhau (thường là vài mét trong các ứng dụng thông thường, cho đến vài chục kilomet trong công nghiệp ) thì cần phải xét đường truyền và nghi thức truyền .
Tùy theo điều kiện thực tế mà người ta có thể chọn đường truyền là dây xoắn đôi hay cáp đồng trục, truyền song song hay nối tiếp theo chuẩn RS -232, RS – 485, hay X25, Trong đề tài này ta chỉ xét cách thức truyền nối tiếp theo chuẩn RS -232 .
Chuẩn RS – 232C : Trong kỹ thuật truyền dữ liệu giữa các hệ thống với nhau, người ta có thể phân loại 2 cách truyền : song song hay nối tiếp . Nhưng do cách truyền song song rất dễ bị nhiễu tác động nên ta không thể truyền đi xa được, do đó cũng ít được sử dụng .
Truyền nối tiếp cũng có 2 loại : đồng bộ hay không đồng bộ. Trong cách truyền đồng bộ cũng kèm theo ký tự đồng bộ là Syn . Phương thức này cho tốc độ truyền khá cao nhưng do mạch xử lý truyền và nhận (bao gồm mạch thêm ký tự đồng bộ, phát hiện và báo sai, ) khá phức tạp nên chỉ dùng trong các ứng dụng có đòi hỏi cao về tốc độ truyền . Còn trong các ứng dụng thông thường, nhất là các ứng dụng trong điều khiển tự động thì không có yêu cầu về tốc tộ, mà yêu cầu về độ tin cậy và mạch thực hiện phải đơn giản, rẻ tiền.
Chuẩn RS - 232 là một trong những phương thức truyền nối tiếp không đồng bộ . Theo tiêu chuẩn này thì việc truyền thông được thực hiện ngay tại chỗ bằng cách truyền hoặc nhận một chuỗi xung điện áp liên tục tương ứng với các bit . Dữ liệu ở mức TTL được biến đổi sang các mức điện áp như sau :
Mức 1 : -3V ÷ -15V ( tiêu chuẩn là -12V) .
Mức 0 : +3V÷ +15V (tiêu chuẩn là +12V).
Ta thấy rằng việc truyền và nhận các mức điện áp như vậy được thực hiện rất đơn giản . Chính vì vậy mà chuẩn RS – 232C đã trở thành giao diện phổ biến và rộng rãi nhất, được trang bị hầu hết trên các máy tính như là một trong những thành phần cấu thành nên hệ thống .
Trong giao thức RS -232C, các tham số truyền và nhận được chọn từ một miền các giá trị chuẩn . Sau đây là các thông số phổ biến nhất trong các máy IBM :
Tốc độ truyền 50, 110, 300, 600, 1200, 2400, 4800, 9600, 19200 .
Bit dữ liệu : 5, 6, 7 hay 8 .
Bit chẵn, lẻ hay không kiểm tra chẵn lẻ.
Bit kết thúc :1, 1,5 hay 2
Cổng : COM 1, COM 2, COM 3 hay COM 4
Khối RS-232
Khối này thực hiện việc giao tiếp dữ liệu giữa máy tính PC và vi xử lý sử dụng IC MAX 232 qua cổng nối tiếp của máy tính trên hai đường TxD và RxD. Ta thấy rằng MAX232 cần có 5 tụ ngoài để biến đổi điện áp từ 0V đến 5V thành điện áp -12V đến +12V phù hợp cho truyền thông theo chuẩn RS-232.
Ngoài ra, bên trong MAX 232 có 4 bộ khuếch đại đảo nhằm chuyển từ mức logic TTL ra chuẩn RS-232 và ngược lại.
Sơ đồ sau cho thấy các khối bên trong và các linh kiện mắc bên ngoài của MAX232
RS-232 OUTPUT
Sơ đồ bên trong IC MAX-232
CHƯƠNG 5
THIẾT KẾ PHẦN CỨNG
THIẾT KẾ KIT
Mục đích thiết kế
Kit vi điều khiển đóng vai trò như bộ xử lý trung tâm(CPU), có thể lưu trữ chương trình và giao tiếp với nhiều thiết bị ngoại vi. Do đó, chúng đòi hỏi phải có ROM, RAM và các Port giao tiếp. Theo thiết kế, Board mạch này gồm đầy đủ các chức năng như : chip vi điều khiển (89C51), ROM(2764), RAM(6264), IC giao tiếp ngoại vi 8255, mạch giải mã địa chỉ(74LS138), mạch RESET, mạch dao động.
CPU giao tiếp với ROM, RAM thông qua các đường địa chỉ từ A0 đến A12. Các điện trở thanh AR1, AR3, AR4 dùng làm tăng hệ số fan out khi giao tiếp với nhiều thiết bị ngoại vi. Vì ngõ ra của Port 0 (89C51) có dạng Open Collector, do đó phải gắn thêm điện trở thanh AR2. Max232 dùng để chuyển đổi mức điện áp ±12V sang ±5V.
Board này cho phép người sử dụng thực hiện các thao tác xuất/nhập dữ liệu trên ROM, RAM, truy xuất hoặc điều khiển các thiết bị ngoài thông qua các cổng giao tiếp ngoại vi. Thiết bị ngoài có thể đơn giản như các Relay, các đèn LED , hoặc phức tạp hơn như LED 7 đoạn, ma trận LED, mạch biến đổi D/A- A/D, hoặc các mạch tự tạo,..Ngoài ra, Board mạch này còn có thêm chức năng giao tiếp với máy tính thông qua cổng nối tiếp COM1 hoặc COM2 .
Sơ đồ bố trí linh kiện trên Board như hình vẽ
DB9-FEMALE
PORT RS232
PORTB
PORTA
74LS573
MAX232
CPU AT89C52
RAM 1 – 8K
RAM 2 / ROM – 8K
74138
POWER
7408
8255
7805
+ 5V OUT
PORTC
RESET
POWER LED
PORT 1
Các cổng giao tiếp
PORT 1: I/O, Port 1 của CPU AT89C52.
PORT A: I/O , Lập trình được, Port A của 8255, địa chỉ 4000H.
PORT B: I/O , Lập trình được, Port B của 8255, địa chỉ 4001H.
PORT C: I/O , Lập trình được, Port C của 8255, địa chỉ 4002H.
PORT RS232: Cổng giao tiếp máy tính theo chuẩn RS232.
POWER: Ngõ cấp nguồn vào, sử dụng Adapter 9V DC/AC, 500 mA.
+ 5V Out: Ngõ cấp nguồn ra +5V cho các Board ngoại vi (nếu cần).
Địa chỉ các Chip
RAM 1: 8K, địa chỉ 0000H -> 1FFFH
RAM 2: 8K, địa chỉ 2000H -> 3FFFH (đây là khe cắm mở rộng, có thể cắm ROM, hoặc RAM, hoặc để trống).
8255: địa chỉ 4000H, Port A:4000H, Port B: 4001H, Port C: 4002H, thanh ghi lệnh 4003H
Dây cáp nối từ PORT RS232 vào cổng COM1 hoặc COM2 của PC là dây MODEM, sử dụng đầu nối DB9
Sơ đồ nguyên lý KIT vi điều khiển (xem trang sau)
THIẾT KẾ MẠCH ĐIỀU KHIỂN KIT
Mạch điều khiển giao tiếp với PC và các KIT thông qua Connector DB-9. Việc truyền/nhận dữ liệu diễn ra trên 2 chân TxD (Transmit Data) và RxD (Receive Data). Các đường tín hiệu RTS (Request To Send ), CTS (Clear To Send), DTR (Data Terminal Ready), DSR (Data Set Ready) mang tính chất bắt tay giữa các thiết bị. PC giao tiếp với các KIT nhờ vào việc đóng mở các Relay.
Theo thiết kế, muốn giao tiếp với KIT nào thì đóng Relay tương ứng với KIT đó, ở đây sử dụng Relay loại 4 tiếp điểm, điện áp 12V.
Để đóng/ngắt Relay, dùng thêm transistor, trong mạch dùng loại NPN- D468. Transistor dẫn tương đương với đóng relay, transistor bão hòa tương đương với ngắt relay.
Hoạt động của mạch điều khiển KIT
Bình thường 4 Relay hở, khi có yêu cầu chọn KIT từ PC, chẳng hạn , chọn KIT thứ nhất, phần mềm điều khiển sẽ thiết lập các chân điều khiển D2D1D0 với giá trị 0002. Khi đó ngõ ra Y0 của IC 74LS138 tích cực mức thấp.
Tín hiệu sau đó được đưa qua cổng đảo để transistor dẫn, tương đương với đóng Relay 1. Lúc này 4 đường truyền nhận từ cổng COM của PC sẽ thông với 4 đường truyền nhận của KIT thứ 1. Do đó máy tính xem như giao tiếp trực tiếp với KIT1 .
Tương tư, để giao tiếp với KIT 2, KIT 3, KIT 4, giá trị của D2D1D0 lần lượt là 001, 010, 011.
Sơ đồ nguyên lý (xem trang sau )
THIẾT KẾ MẠCH ĐIỀU KHIỂN NHIỆT ĐỘ
Sơ đồ khối
Khối hiển thị kết quả đo - cài đặt
Khối Vi Xử Lý CPU
Khối chuyển đổi ADC
Khối Analog nhiệt độ ( ToC )
Khối điều khiển tải
Phím cài đặt
Tải T0
Sensor T0
Nguyên lý hoạt động : Nhiệt độ là các đại lượng phi điện được các sensor cảm nhận và chuyển đổi thành tín hiệu điện áp hay dòng điện, gọi là tín hiệu phản hồi. Khối Analog biến đổi tín hiệu phản hồi thành tín hiệu điện áp có thể sử dụng được và khuếch đại lên tới biên độ thích hợp với yêu cầu ngõ ra của khối chuyển đổi ADC, tín hiệu ra khỏi sensor là tín hiệu Analog điện áp .Tín hiệu Analog điện áp được đưa vào khối chuyển đổi ADC . Khối ADC sẽ chuyển đổi tín hiệu Analog thành tín hiệu Digital tương ứng .
Nhiệm vụ của khối CPU:
Xuất tín hiệu cho phép khối ADC hoạt động .
Nhập và xử lý data từ khối ADC .
Xuất data ra khối hiển thị .
Xuất tín hiệu điều khiển tải .
Nhận data từ bàn phím .
Data sau khi được CPU xử lý sẽ được xuất ra khối hiển thị để hiển thị các giá trị hiện tại trên cảm biến nhiệt .
Điều khiển tải : Khối CPU nhận tín hiệu Digital từ cảm biến và so sánh với nhiệt độ cài đặt (tùy thuộc vào phần mềm) mà cho phép điều khiển tải ON – OFF, đóng ngắt mỏ hàn bằng Relay .
Sơ đồ nguyên lý ( xem trang sau )
Thiết kế khối cảm biến nhiệt độ
Chọn bộ cảm biến và các linh kiện đi kèm
Trên thị trường có rất nhiều loại cảm biến khác nhau, trong đề tài thì nhiệt độ cần đo được giới hạn dưới 100oC . Ta chọn cảm biến LM335, rất thông dụng và có độ chính xác cao trong tầm nhiệt độ từ 0oC đến 100oC . Vì nhiệt độ trên cảm biến LM335 tuyến tính theo oK, ta phải biến đổi để điện áp đầu ra tuyến tính theo oC bằng cách dời mức điện áp ( thực hiện bằng cách trừ đi 2,73V ) .
Điện áp ra từ bộ cảm biến LM335 được tính theo công thức
Uc/biến =2,73 + 0,01 Td (V)
Td : Nhiệt độ trên cảm biến .
Điện trở R22 dùng phân cực cho LM – 335, biến trở (20K) dùng chỉnh điện áp ra cho đúng với biểu thức trên .
Tụ điện dùng để giữ ổn định điện áp đầu ra .
Chọn dòng max qua LM – 335 là 1mA .
Ta có :
→ Chọn R22 =2,2K .
Chọn đệm tín hiệu điện áp ra trên LM -335
Tín hiệu ra của cảm biến LM – 335 rất yếu (mA) nên ta cần phải khuếch đại nó lên . Việc khuếch đại này cùng với vấn đề trôi nhiệt của linh kiện gây ra sai số, ảnh hưởng đến độ chính xác của phép đo . Ta giải quyết bằng cách dùng tầng khuếch đại và sử dụng OpAmp có độ chính xác cao .
Ta chọn khuếch đại thuật toán TL082 có độ khuếch đại chính xác theo tiêu chuẩn công nghiệp, điện áp Offset rất nhỏ và dòng vào không đáng kể .
Điện áp ra của LM – 335 được đưa qua TL082 để đệm và ngăn cách ảnh hưởng đến đầu ra cảm biến .
Thiết kế mạch tạo điện áp 2,73V
Tạo ra điện áp chuẩn 2.73V dùng để dịch mức nhiệt độ, điện áp chuẩn cần có độ ổn định và chính xác cao, ta chọn ổn áp TL431 .
TL 431 giống như một Diode Zener nhưng điều chỉnh được điện áp ra với tầm dòng điện là 1mA ÷ 125mA .
Chọn dòng Cathode ICA = 20mA .
Điện áp chuẩn tại chân số 1 của TL431 là 2,5V .
Vậy điện trở hạn dòng cho TL431 thỏa biểu thức :
→ Chọn điện trở là R1= 470Ω .
Để tạo điện áp trên chân số 3 là 2,73V ta chỉnh biến trở 20KΩ
Gọi điện áp trên 2 đầu 2 – 1 của biến trở là U21 = 2,5 V
Gọi điện áp trên 2 đầu 3 – 1 của biến trở là U31 .
Gọi điện trở trên 2 đầu 2 – 1 của biến trở là R21.
Gọi điện trở trên 2 đầu 3 – 1 của biến trở là R31.
Muốn U31 = 2,73 V ta chỉnh biến trở thỏa biểu thức sau:
è
Dời thang nhiệt độ và khuếch đại tín hiệu
Ta dời nhiệt độ từ oK sang oC và khuếch đại tín hiệu từ điện áp ra trên cảm biến nhiệt để thích ứng với điện áp ngõ vào của ADC và độ phân giải nhiệt độ theo yêu cầu thiết kế . Vấn đề đặt ra là hạn chế tối đa việc trôi nhiệt của linh kiện gây ra sai số làm ảnh hưởng đến độ chính xác của phép đo . Ta giải quyết bằng cách dùng mạch khuếch đại trừ và sử dụng OpAmp có độ chính xác cao. Ta chọn khuếch đại thuật toán TL082 có độ khuếch đại chính xác theo tiêu chuẩn công nghiệp, điện áp Offset rất nhỏ và dòng vào không đáng kể .
Theo thiết kế, độ phân giải nhiệt độ ta chọn là 0,5oC . Nghĩa là cứ thay đổi 0,5oC (5mA) trên tín hiệu của cảm biến nhiệt .
Chọn bộ biến đổi ADC0809 có ngõ ra Digital là 8 bit
Đặt điện áp REF + = +5V, REF - = 0V .
Vậy độ phân giải ADC là :
Ta có : Vin 1 – Vin 2 = Av* 5mV = 19.6mV .
à Av =3,92 Với Av : hệ số khuếch đại của bộ khuếch đại trừ
Vin 1: điện áp ra trên cảm biến nhiệt LM – 335
Vin 2 = 2,73V là điện áp ra trên TL431 dùng để dời nhiệt độ
Mạch đầu vào từ cảm biến nhiệt đến ADC
Chọn R5 =R7 =Ra
R6 =R8 =Rb
Xem OpAmp là lý tưởng nghĩa là :
Dòng vào OpAmp không đáng kể .
Điện áp V+ =V-
Ta có :
Chọn Ra =10KΩ =R5 =R7
à Rb = 39,2KΩ =R6 =R8
Dùng biến trở 50 K để chỉnh R6 và R8 thỏa số liệu trên ( để đạt đến hệ số khuếch đại cần thiết ) .
Thiết kế khối Relay
Để điều khiển mỏ hàn, ta dùng Relay để đóng mở. Relay chọn 12VDC, điện trở thuần » 400Ω, dòng điện qua Relay cũng là dòng qua cực C của transitor.
Chọn VCES =0,2V à .
Chọn transitor loại C945 với các thông số :
IC =100mA , PC =250mW, hFE =200 .
Điều kiện transitor dẫn bão hòa :IC < βIB .
Và cần phải IB < IOH max ; IOH max : là dòng từ AT89C52 ra khối Relay
Dòng qua cực B của transitor :
Với VOH =5V là điện áp ra ở mức cao của AT89C52.
Chọn VBES =0,8V
Ta có :
→ Chọn R =4.7KΩ , Chọn Diode bảo vệ là loại 1N4007 .
Thiết kế khối hiển thị
Khối hiển thị dùng để giao tiếp giữa thiết bị và người sử dụng . Trong mạch, ta dùng 3 led 7 đoạn để hiển thị nhiệt độ đo và hiển thị nhiệt độ cài đặt cần khống chế ở mỏ hàn .
Trong mạch, ta cần đo ở tầm nhiệt độ dưới 100oC (có hiển thị số lẻ). Do đó chọn khối hiển thị gồm 3 LED 7 đoạn :
Led 1: hiển thị số lẻ .
Led 2: hiển thị hàng đơn vị của nhiệt độ .
Led 3: hiển thị hàng chục của nhiệt độ .
Chọn loại led 7 đoạn có Anode chung, nguồn cung cấp cho led thông qua transitor C1015 .
Tín hiệu nhận được từ PortA của 8255 đến IC 7447 giải mã rồi đi qua các điện trở hạn dòng sau đó mới đến led 7 đoạn . Khi một đoạn của led 7 đoạn sáng thì bit dữ liệu tương ứng nối với nó được chọn ở mức thấp .
Chọn dòng qua led là 10mA trên một đoạn led .
, Với Vcc = 5V
VCES = 0,1V
VLED =1,7V
à R =320Ω
Chọn trở hạn dòng cho led 7 đoạn : R =330Ω .
à Vậy dòng tối đa qua cực C của C1015 là 10*7 =70mA . Điều kiện để transitor dẫn bảo hòa Ic < βIB và cần phải IB < IOL(8255) .
Với IOL =1mA ; β =200 ; VBES = 0,8V ; VOL =0,2V
à R < 11,4 KΩ.
Vậy chọn R =10KΩ.
THIẾT KẾ MẠCH CHUYỂN ĐỔI SỐ – TƯƠNG TỰ (DAC)
Sơ đồ khối
KHỐI HIỂN THỊ
KHỐI CHUYỂN ĐỔI D/A
KHỐI VI XỬ LÝ
Hoạt động
Giá trị số cần được biến đổi sẽ được đưa qua khối chuyển đổi D/A . Giá trị điện áp ngõ ra phụ thuộc vào giá trị số đầu vào . Khi đó, để thấy được điện áp ngõ ra, có thể dùng đồng hồ đo hoặc dùng dao động ký .
Công thức tính điện áp ngõ ra như sau:
VOUT = (Giá trị đầu vào x VREF) / 256
Trong đó: VREF là điện áp chuẩn.
Ví du: để tạo điện áp ngõ ra 4V, chương trình nạp vi xử lý như sau
MOV DPTR,#4000H ; PORT A - 8255
MOV A,#(256*4/5) ; 4V
MOVX @DPTR,A
Khối chuyển đổi dòng thành áp
Vì tín hiệu số sau khi được DAC0808 biến đổi là dòng, do đó phải biến đổi thành áp để chúng ta có thể biết được điện thế ngõ ra là bao nhiêu Volt và hiển thị trên dao động ký. Trong trường hợp này, chọn IC LM741 để chuyển đổi dòng thành áp.
Sơ đồ nguyên lý khối DAC (xem trang sau)
THIẾT KẾ MẠCH NGUỒN
Sơ đồ mạch nguồn
Mạch sử dụng điện áp lưới 220v_50Hz
Biến áp 220v_3A dùng để hạ thế còn điện áp khoảng 18v.
Bộ chỉnh lưu cầu gồm 2 cầu diode dùng để chuyển điện áp xoay chiều ra điện áp một chiều .
Bộ nắn điện áp gồm các tụ phân cực có giá trị 2200mF.
Ổn áp gồm các IC 7805 dùng để ổn áp 5V.
IC 7812 ,7912 dùng để ổn áp điện áp ra ±12V .
Bộ lọc gồm các tụ xoay chiều có giá trị 0,1mF.
CHƯƠNG 6
LƯU ĐỒ GIẢI THUẬT
LƯU ĐỒ CHƯƠNG TRÌNH CHÍNH
Số1
START
EXIT
CHƯƠNG TRÌNH NẠP
CHƯƠNG TRÌNH NẠP
CHƯƠNG TRÌNH NẠP
CHƯƠNG TRÌNH NẠP
END
CHỌN KIT
Yes
No
NO
YES
Số2
Số3
Số4
ĐÓNG RELAY 1
ĐÓNG RELAY 2
ĐÓNG RELAY 3
ĐÓNG RELAY 4
LƯU ĐỒ ĐIỀU KHIỂN NHIỆT ĐỘ MỎ HÀN
START
CÀI ĐẶT NHIỆT ĐỘ MỎ HÀN
ĐỌC ADC
P1.1 =0
NHÂN KẾT QUẢ ĐỌC VỀ VỚI HẰNG SỐ 5
CHUYỂN KẾT QUẢ SANG SỐ BCD
XUẤT KẾT QUẢ RA LED 7 ĐOẠN
KHỞI ĐỘNG TIMER0 VÀ 8255
SO SÁNH KẾT QUẢ ĐỌC VỀ VỚI GIÁ TRỊ ĐẶT
Y
N
LƯU ĐỒ CÀI ĐẶT NHIỆT ĐỘ MỎ HÀN BEGIN
P1.1 = 0
GIÁ TRỊ ĐẶT CHỨA TRONG R4
NHÂN GIÁ TRỊ ĐẶT CHỨA TRONG R4 VỚI HẰNG SỐ 5
CHUYỂN ĐỔI KẾT QUẢ NHÂN SANG SỐ BCD
XUẤT KẾT QUẢ CỦA SỐ BCD RA LED 7 ĐOẠN
P1.2 = 0
P1.3 = 0
TĂNG R4
END
GIẢM R4
Y
Y
N
N
Y
N
LƯU ĐỒ ĐỌC ADC
BEGIN
KHÔNG CHO PHÉP NGÕ RA (OE =0)
TẠO XUNG ALE
TẠO XUNG START
CHỜ BIẾN ĐỔI XONG
CHO PHÉP NGỎ RA (OE =1)
ĐỌC DATA
RET
LƯU ĐỒ SO SÁNH
MOV B, R4
INC B
A = B
C = 1
NGẮT RELAY
DEC B
DEC B
C = 0
ĐÓNG RELAY
RET
Y
N
Y
Y
N
N
LƯU ĐỒ HIỂN THỊ LED
BEGIN
GIẢI MÃ BCD HÀNG SỐ LẺ SANG MÃ 7 ĐOẠN
XUẤT RA LED HÀNG SỐ LẺ
KÍCH ANODE LED HÀNG SỐ LẺ
DELAY 3 MS
GIẢI MÃ BCD HÀNG CHỤC SANG MÃ 7 ĐOẠN
XUẤT RA LED HÀNG CHỤC
DELAY 3 MS
RET
GIẢI MÃ BCD HÀNG ĐƠN VỊ SANG MÃ 7 ĐOẠN
XUẤT RA LED HÀNG ĐƠN VỊ
KÍCH ANODE LED HÀNG ĐƠN VỊ
DELAY 3 MS
KÍCH ANODE LED HÀNG CHỤC
LƯU ĐỒ BIẾN ĐỔI D/A
KHỞI ĐỘNG 8255 VÀ TIMER 0
START
TẠO ĐIỆN ÁP 4V
DELAY 3MS
TẠO ĐIỆN ÁP 1V
DELAY 3MS
HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH
Giao diện chương trình chính như sau
Để giao tiếp với KIT vi điều khiển nào, click vào ComboBox KIT NUMBER, sau đó click Next để chuyển sang giai đoạn nạp chương trình cho KIT tương ứng. Nếu muốn thoát chương trình, click Button Exit .
Giao diện để nạp chương trình cho KIT vi điều khiển như sau
Trước hết phải cấu hình cho cổng COM, click vào Menu Config để lựa chọn cổng COM, khi đó màn hình Config sẽ hiện ra.
Program Folder: là thư mục chứa chương trình nạp KIT vi điều khiển, mặc định là C:\EV8051\Program.
Working Folder:Là thư mục làm việc, mặc định là C:\EV8051\Work. Các file chương trình do người sử dụng tạo ra được lưu trong thư mục này, bao gồm các file .ASM, .LST, .OBJ, .HEX, .BIN.Nên sử dụng thư mục này để chứa các file làm việc.
Communication Port: cổng giao tiếp, mặc định là COM1.
Sau khi chọn cổng COM xong, click OK để quay về chương trình nạp.
Nạp chương trình
1. Nhấn nút Open, chọn loại File, nhấn OK, file được nạp vào tab Source File
2. Nhấn nút Compile để dịch chương trình, nếu không có lỗi, chương trình sẽ hiện câu thông báo: ASSEMBLY COMPLETE, NO ERRORS FOUND.
3. Nhấn nút Load để nạp chương trình ra KIT vi điều khiển, nếu thành công, chương trình sẽ hiện câu thông báo : LOAD OK, nhấn OK để thực thi chương trình trên KIT .
CHƯƠNG 7
TÍNH TOÁN SAI SỐ
VÀ ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN
LÝ THUYẾT VỀ TÍNH TOÁN SAI SỐ
Sai số tương đối và sai số tuyệt đối
Sai số tuyệt đối của phép đo là độ lệch của phép đo khỏi giá trị thực
∆a = |A – a |
trong đó, A là giá trị chính xác
a là giá trị đo được
sai số tương đối của phép đo là đại lượng
= ∆a / |a|
Các công thức cơ bản
F
∆F
ax
a∆x
x + y
∆x +∆y
x - y
∆x - ∆y
TÍNH TOÁN SAI SỐ
Ta sẽ tính toán sai số ở 2 phần: phần cảm biến nhiệt độ và phần biến đổi AD
Sai số ở phần cảm biến nhiệt độ .
Ta có:
VOUT = AV (VIN 1 - VIN 2)
à ∆VOUT = AV (∆VIN 1 + ∆VIN 2)
Tính ∆VIN 2 ?
VIN2 = VREF ( )
à ∆VIN2 =( ) * ∆VREF (xem như các điện trở không có sai số)
theo các tính toán ở trên R31 = 20K và R21 =18.5K, VREF = 2.5V
∆VREF = 15mV ( tra trong datasheet của TL431)
à ∆VIN2 = 16.216 mV
Tính ∆VIN1 ?
theo datasheet của LM335 thì sai số của nó là 2oC, hay tương ứng với mức điện áp là :
∆VIN 1 =2 * 10 = 20mV (xem OpAmp TL082 có độ lợi bằng 1 và không có sai số)
Sai số ∆VOUT ?
∆VOUT = AV (∆V1 + ∆V2) = 3.92 (16.216 + 20) = 141.97 mV .
Sai số phần biến đổi A/D
Theo datasheet của ADC0809 thì sai số của nó là ±1 LSB
Sai số tổng cộng
Với sai số ∆VOUT = 141.97mV ở phần cảm biến nhiệt sẽ cho ra sai số ở bộ biến đổi AD. Vì mỗi mức của bộ AD là 19.6mV nên số mức bị sai do cảm biến nhiệt là 141.97/19.6 =7.24 mức, ta sẽ lấy tròn 8 mức. Sau đó ta sẽ cộng thêm sai số 1 mức của bộ AD và được 9 mức. Mỗi mức ứng với 0.5oC, nên sai số của phần cứng là ± 4.5oC.
ĐÁNH GIÁ KẾT QUẢ & HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Kết quả thực hiện
Qua thời gian tích cực tìm hiểu và thực hiện đề tài, kết quả thu được cũng tương đối khả quan. Sản phẩm cuối cùng đáp ứng hầu như mọi yêu cầu mà đầu luận văn đã đề ra: Điều khiển được nhiều thiết bị từ máy tính, chương trình chạy tương đối ổn định . Tuy nhiên, về phần điều khiển nhiệt độ, nhiệt độ hiển thị không hoàn toàn chính xác mà có sai số trong khoảng từ ±2oC đến ±6oC tuỳ thuộc vào tầm nhiệt độ mà ta đo.
Hướng phát triển đề tài
Như đã trình bày ở trên, máy tính chỉ điều khiển được 4 thiết bị và khoảng cách giữa PC với các KIT bị hạn chế. Do đó, chúng ta có thể mở rộng điều khiển nhiều thiết bị bằng cách dùng mạng LAN, mỗi thiết bị gắn với KIT vi điều khiển tương ứng với 1 Workstation. Cụ thể, chúng ta có thể dùng mô hình Bus trong mạng LAN. Khi đó, máy tính muốn điều khiển thiết bị nào, trước hết phải gởi 1 byte điều khiển đến tất cả các Workstation.
Chương trình được nạp trên các Workstation này sẽ kiểm tra xem có phải máy tính muốn truyền dữ liệu đến nó không? Nếu đúng, chương trình trên nó sẽ thực hiện công việc nhận dữ liệu từ máy tính.
Theo cách này chúng ta có thể điều khiển được rất nhiều thiết bị. Đồng thời, nếu có thể sẽ tiến hành thiết kế thêm phần cứng và phần mềm để nhận và xử lý dữ liệu từ các Workstation .