Thiết kế mô hình voltmet điện tử hiển thị bằng màn hình máy tính
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
LỜI MỞ ĐẦU
Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực của đời sống từ dân sự,
quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng dụng hàng ngày từ
những thiết bị nhỏ như điện thoại di động, máy bay, trò chơi điện tử, các thiết bị gia
dụng( máy giặt, điều hòa, tủ lạnh…) đến những thiết bị lớn như ô tô, tàu thủy, xe lửa,
máy bay, hệ thống mạng điện thoại, các bộ điều khiển tự động trong nhà máy, các bộ
điều chỉnh trong nhà máy điện hạt nhân, trong các hệ thống điều khiển ánh sang ngoài
đường…
Với sự giảng dạy của thầy Phạm Văn Chiến chúng em đã được tiếp xúc với môn
ghép nối máy tính. Để đưa kiến thức học được trên lớp vào thực tế, và để hiểu rõ hơn
về kiến thức môn học, nhóm chúng em xin làm đề tài số 26 : “Thiết Kế Mô Hình
Voltmet Điện Tử Hiển Thị Bằng Màn Hình Máy Tính”. Song đây là lần đầu tiên
nhóm làm đề tài môn Vi Điều Khiển nên nhóm đã gă ăp không ít những khó khăn trong
quá trình làm đề tài. Nhưng với những kiến thức dạy trên lớp và kết hợp với thời gian
thực hành nhóm đã được thầy Nguyễn Văn Tùng và thầy Phạm Văn Chiến tâ ăn tình
hướng dẫn, giải đáp những vướng mắc của nhóm nên nhóm đã hoàn thành được đề tài
của mình.
Chúng em xin chân thành cảm ơn các thầy!
Tuy đã hoàn thành được đề tài nhưng sẽ không tránh khỏi những thiếu sót , vì vâ ăy
nhóm xin được sự góp ý của các thầy và các bạn để đề tài của nhóm có thể hoàn thiê nă
hơn. Mô ăt lần nữa chúng em xin cảm ơn các thầy và các bạn!
Đề Tài Gồm 3 Phần:
Phần 1: Cấu Trúc Vi Điều Khiển 8051.
Phần 2: Thiết Kế Voltmet Điện Tử Dùng AT89S52.
Phân 3: Ưu, Nhược Điểm và Hướng Phát Triển.
Nhóm Sinh viên thực hiê ăn: Phùng Xuân Quân.
Lê Văn Quảng.
Lớp:
Lớp :CĐ Điện Tử 3 K10.
CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-1-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
Phần I: Cấu Trúc Vi Điều Khiển 8051.
1. Giới Thiệu Tổng Quan Về Họ 8051( AT89S52).
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. Đây là các bộ vi điều khiển 8 bit được sản xuất theo công nghệ CMOS. Một số loại điều
khiển thuộc họ 8051 thông dụng nhất: AT89C2051, AT89C4051, AT89C51, AT89S52….
Trong đó AT89S52 là một bộ vi điều khiển thông dụng giá rẻ, có nhiều chức năng và đặc biệt
có tích hợp sẵn bộ nạp trên chíp.
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU(Central Processing Unit) bao gồm:
-Thanh ghi tích lũy A.
-Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia.
-Đơn vị logic học( ALU: Arithmetic Logic Unit).
-Thanh ghi từ trạng thái chương trình( PSW: Program Status Word).
-4 băng thanh ghi.
-Con trỏ ngăn xếp.
Bộ nhớ chương trình( Bộ nhớ ROM) 8Kb Flash.
Bộ nhớ dữ liệu gồm 256 bytes.
Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức năng truyền
nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy tính qua cổng COM.
3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm sự kiện.
WDT( Watch Dog Timer) được dùng để phục hồi lại hoạt động của CPU khi nó bị treo
bởi một nguyên nhân nào đó. WDT ở AT89S52 gồm 1 bộ Timer 14 bit, một bộ Timer 7 bit,
thanh ghi WDTPRG( WDT Program) điều khiển Timer 7 bit và 1 thanh ghi chức năng
WDTRST( WDT Register). Bình thường WDT không hoạt động( bị cấm), để cho phép WDT,
các giá trị 1EH và E1H cần phải cần phải được ghi liên tiếp vào thánh ghi WDTRSRT. Timer
14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ máy, cho đến giá trị 16383 thì xẩy ra tràn,
chân RST sẽ được đặt ở mức cao trong thời gian 96Tosc và AT89S52 sẽ được reset. Khi WDT
hoạt động, ngoại trừ reset phần cứng và do reset WDT tràn thì không có cách nào cấm được
WDT, vì vậy khi sử dụng WDT thì các đoạn mã chương trình phải được đặt trong các khe thời
gian từ giữa các lần WDT được khởi tạo lại.
2. Sơ Đồ Chân Và Chức Năng.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-2-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
- Port 0 (P0.0 – P0.7).
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, 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 AT89S52 giao tiếp với thiết bị ngoài
có kiến trúc Bus như địa vị các mạch nhớ, …
- Port 1 (P1.0 – P1.7).
Đối với họ 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các
Port khác, Port 1 có thể xuất nhập theo bit và theo byte.
Riêng dòng 89Sxx, ba chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP,
hai chân P1.0 và P1.1 được dùng cho bộ Timer 2.
- Port 2 (P2.0 – P2.7).
Port 2 ngoài chức năng là cổng vào/ra như Port 0 và Port 1 còn là byte cao của địa chỉ
khi sử dụng bộ nhớ ngoài.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-3-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
- Port 3 (P3.0 – P3.7).
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng cụ thể
như sau:
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
Tên
RXD
TXD
INT0
INT1
T0
T1
/WR
/RD
Chức năng
Dữ liệu nhận cho Port nối tiếp
Dữ liệu truyền cho Port nối tiếp
Ngắt bên ngoài 0
Ngắt bên ngoài 1
Ngõ vào của Timer/counter 0
Ngõ vào của Timer/counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
- Chân /PSEN (program Store Enable ).
/PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối với chân /OE
để cho phép đọc các byte mã lệnh trên ROM ngoài.
/PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh. Mã lệnh được đọc từ bộ nhớ ngoài
qua bus dữ liệu (Port 0) thanh ghi lệnh để được giải mã.
Khi thực hiện chương trình trong ROM nội thì /PSEN ở mức cao.
- Chân ALE (Address Latch Enable ).
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động cung cấp
cho vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 74373,
74375 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu (P0).
- Chân /EA (External Access ).
Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài của vi
điều khiển. Nếu /EA ở mức cao (nối với Vcc), thì vi điều khiển thi hành chương trình trong
ROM nội. Nếu /EA ở mức thấp (nối GND) thì vi điều khiển thi hành chương trình từ bộ nhớ
ngoài.
- RST (Reset).
Ngõ vào RST trên chân 9 là ngõ reset của chíp. Khi tín hiệu này được đưa lên mức cao
(trong ít nhất 2 chu kỳ máy), các thanh ghi trong bộ vi điều khiển được tải những giá trị thích
hợp để khởi động hệ thống.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-4-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
- XTAL1, XTAL2.
AT89S52 có một bộ dao động trên chíp, nó thường được nối với bộ dao động thạch
anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
- VCC, GND.
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đ ến 5,5V được cấp qua chân 40
và 20, trong đó: Chân 40 nối với nguồn nuôi 5V và chân 20 nối Mass.
Phần II: Thiết Kế Volmet Dùng AT89S52.
1. Thiết Kế Phần Cứng.
Sơ Đồ Nguyên Lý
Điện áp cần đo được đi qua các cầu phân áp điện trở thích hợp đến chuyển Mạch Xoay.
Chuyển Mạch Xoay là chuyển mạch đối xứng. Có chức năng vừa đưa điện áp cần đo với
thang đo thích hợp vào chân Vin+ của ADC 0804, vừa báo cho VĐK biết chuyển mạch đang
ở thang đo nào để thực hiện nhân với hệ số biến đổi ADC tương ứng ở thang đó. VĐK đọc dữ
liệu từ ADC 0804 xử lý và gửi kết quả lên máy tính.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-5-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
Mạch In
1.1. Khối Nguồn.
Có chức năng ổn định điện áp ra ở mức 5VDC ổn định để nuôi mạch.
Gồm các linh kiện:
+Tụ Điện để lọc nhiễu tần số thấp và cao bám vào đường nguồn.
+Điện Trở và Led để báo có nguồn.
+IC7805 để ổn định điện áp ra ở 5VDC.
+Diode để bảo vệ mạch khi cắm nhầm chiều điện áp vào.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-6-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
1.2. Khối Ghép Nối Với Máy Tính.
Gồm cổng Nối Tiếp(com) và Max232 giúp Máy Tính và VĐK giao tiếp được với nhau.
1.4.1. Cổng Nối Tiếp.
Các Phương Thức Truyền Tin Nối Tiếp:
+ Phương thức đồng bộ :
Các byte chứa các bít thông tin được truyền liên tiếp trên đường truyền và chỉ được ngăn
cách( phân biệt ) nhau bằng bit đồng bộ khung (sync) .
+ Phương thức không đồng bộ :
Các byte chứa các bít thông tin được chứa trong một khung. Một khung bắt đầu bằng 1 bit
start, tiếp theo là các bit mang thông tin, kế tiếp là các bit kiểm tra chẵn lẻ và kết thúc là bit
stop. Khoảng cách giữa các khung là các bit dừng bất kỳ, khi đó dường truyền được đẩy lên
mức cao.
+ Phương thức lai :
Đây là phương thức kết hợp của hai phương thức trên, trong đó các bit trong một khung
được truyền theo phương thức không đồng bộ còn các byte được truyền theo phương thức
đồng bộ.
Cấu tạo và các thanh ghi :
Cổng nối tiếp RS232 là một loại giao tiếp phổ biến rộng rãi nhất, ta còn gọi là cổng
COM1, COM2 để phục vụ cho các ứng dụng khác nhau.
Giống như cổng máy in, cổng nối tiếp RS232 cũng được sử dụng rất thuận tiện trong việc
ghép nối máy tính với các thiết bị ngoại vi. Việc truyền dữ liệu qua cổng RS232 được tiến
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-7-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp với nhau trên một đường
dẫn.
Trước hết loại đường truyền này có khả năng dùng cho những khoảng cách lớn hơn, bởi vì
khả năng gây nhiễu nhỏ đáng kể hơn khi dùng cổng song song. Việc dùng cổng song song có
một nhược điểm là cáp tuyền nhiều sợi, vì vậy rất đắt tiền, hơn nữa mức tín hiệu nằm trong
khoảng 0- 5v đã tỏ ra không thích ứng với khoảng cách lớn.
+Cấu trúc của cổng nối tiếp :
Ý nghĩa các chân tín hiệu như sau :
CHÂN
(loại 9 chân )
CHÂN
(loại 25 chân)
1
2
3
4
5
6
7
8
9
8
3
2
20
7
6
4
5
22
KÝ HIỆU
DCD
RXD
TXR
DTR
GND
DSR
RTS
CTS
RI
Ý NGHĨA
Data carrier detect
Nhận dữ liệu
phát dữ liệu
Dữ liệu đầu cuối sẵn sàng
Nối đất
Thiết bị thông tin sẵn sàng
Yêu cầu gửi
Xoá để gửi
Ring in dicator
Mức tín hiệu trên các chân của cổng nối tiếp thường nằm trong khoảng từ -12V đến +12V
các bit dữ liệu được đảo ngược lại. Mức điện áp ở mức logic 1 nằm trong khoảng từ -3V đến
-12V, mức logic 0 nằm trong khoảng từ +3V đến +12V. Trạng thái tĩnh trên đường dẫn có
mức điện áp -12V.
Bằng tốc độ baud ta thiết lập tốc độ truyền dữ liệu các giá trị thông thường là 300, 600,
1200, 2400, 4800, 9600, 19200 baud. Ký hiệu baud là số lượng bit truyền trong 1s.
Còn một vấn đề nữa là khuôn mẫu (Format) truyền dữ liệu cần phải được thiết lập như nhau
cả bên gửi cũng như bên nhận, các thông số truyền có thể được thiết lập trên máy tính PC
bằng các câu lệnh trên DOS. Ngày nay Windows cũng có các chương trình hỗ trợ các thông
số truyền dữ liệu như : tốc độ baud, số bit dữ liệu, số bit dừng, bit chẵn lẻ (parity) có thể được
thiết lập một cách rất đơn giản.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-8-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
Sự trao đổi của các đường dẫn tín hiệu: Cũng như ở cổng máy in, các đường dẫn tín hiệu
riêng biệt cũng cho phép trao đổi qua lại các địa chỉ trong máy tính PC. Trong trường hợp này
người ta thường sử dụng những vi mạch có độ tích hợp cao để có thể hợp nhất nhiều chức
năng trên một chip.
Ở Máy Tính PC thường có một bộ phận Truyền/Nhận không đồng bộ vạn năng gọi tắt là
UART( Universal Asynchronnous Receiver/Transmitter) để điều khiển sự trao đổi thông tin
giữa máy tính và các thiết bị ngoại vi. Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc các
thiết bị như 16C550. Bộ UART 8250 có 9 thanh ghi để điều khiển tất cả chức năng của việc
nhập vào, xuất ra dữ liệu theo cách nối tiếp .
+Các thanh ghi:
-Thanh ghi điều khiển modem( địa chỉ cơ sở + 4):
D7
D6
D5
D4
x
x
x
LOOP
D3
D2
D1
D0
x
x
RTS
DTR
D0=D1=1 thì 2 chân RST và DTR sẽ có mức điện áp tương ứng mức 1 (-12V).
D4=1 thì Cổng Nối Tiếp hoạt động ở chế độ vòng( dùng để kiểm tra đường truyền nhận của
Cổng Nối Tiếp trên cùng 1 Máy Tính).
x : là các bít không sử dụng.
-Thanh ghi trạng thái modem( địa chỉ cơ sở + 6):
D7
x
D6
RI
D5
DSR
D4
CTS
D3
x
D2
x
D1
x
D0
x
Thanh ghi này có chức năng thông báo về trạng thái các đường dẫn bắt tay. Điều chú ý ở
thanh ghi này là có 3 bit D4, D5, D6, đây chính là lối vào của các đường dẫn CTS, DSR và RI
-Thanh ghi điều khiển đường truyền( địa chỉ cơ sở + 3):
DLAB C6
C5
C4
C3
C2
C1
C0
Lưu trữ các tham số được người lập trình thiết lập và xác định khuôn mẫu
khung truyền của cuộc trao đổi tin.
C1, C2: Đặt số bit trong mỗi từ: 00 – 5 bit, 01 – 6 bit
10 – 7 bit, 11 – 8 bit
C2: các bit dừng.
0 – 1 bit dừng
1 – 1.5 bit dừng
C3: Bit parity.
0 - không kiểm tra chẵn lẻ
1 - Có kiểm tra chẵn lẻ
C4: Loại parity.
0 - Parity lẻ
1 - parity chẵn
C5:Stick bit.
0 - không có stick bit
1- Stick bit
C6: Đặt break.
0 - Normal out put
1- Dừng không truyền.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
-9-
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
DLAB: Bít phân chia truy nhập cho các thanh ghi có cùng địa chỉ.
- Thanh ghi trạng thái đường truyền( Địa chỉ cơ sở + 5):
0
S6
S5
S4
S3
S2
S1
S0
S0=1 khi có 1 byte mới nhận được.
S1=1 khi ký tự trước chưa đọc được, ký tự mới đến sẽ xóa ký tự cũ trong
bộ đệm.
S2=1 khi có lỗi chẵn lẻ.
S3=1 khi có lỗi khung truyền.
S4=1 khi có lỗi gián đoạn đường truyền.
S5=1 khi bộ đệm truyền trống rỗng, báo được phép truyền.
S6=1 khi bộ đệm truyền rỗng.
-Thanh ghi phép ngắt( địa chỉ cơ sở + 1):
x
x
x
x
D3
D2
D1
D0
D0: Đặt ngắt khi nhận được 1 ký tự.
D1: Đặt ngắt khi bộ đệm truyền rỗng.
D2: Đặt ngắt khi thay đổi trạng thái đường truyền.
D3: Đặt ngắt khi thay đổi trạng thái Modem.
-Thanh ghi nhận dạng ngắt( địa chỉ cơ sở + 2):
x
x
x
x
x
Mức ưu tiên
D2
D1
D2
D1
D0
Nguồn gây ngắt
0
0
1
1
1
0
Cao nhất
Lỗi đường nhận
dữ liệu
1
0
0
Thứ 2
có dữ liệu nhận
0
1
0
Thứ 3
0
0
0
Thứ 4
Thanh ghi đệm
truyền rỗng
Modem
D0
Đặt lại ngắt
Không kiểm tra ngắt
Lớp :CĐ Điện Tử 3 K10.
Đọc thanh ghi
trạng thái đường
truyền
Đọc thanh ghi
đệm
Đọc thanh ghi
IER
Đọc thanh ghi
trạng thái
Modem
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 10 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
-Thanh ghi chứa số chỉ tốc độ baud( byte thấp - Địa chỉ cơ sở ).
Thanh ghi này gồm 8 bit , chứa phần thấp của số chia tốc độ baud, số chia tốc độ baud được
tính theo công thức sau:
Số chia tốc độ baud = 1843200/(16* tốc độ baud cần thiết lập).
-Thanh ghi chứa số chỉ tốc độ baud( byte cao- Địa chỉ cơ sở + 1).
-Thanh ghi đệm đọc / viết( địa chỉ cơ sở).
.2.2.1 Max232.
MAX232 là vi mạch của hãng MAXIM chứa 02 bộ chuyển đổi mức từ TTL sang RS232 và
02 bộ làm chức năng ngược lại.
Vcc
+
C1
16
+
C2
11
2
12
2
10
9
C3
+
2
C4
+
6
T1IIN
T1OUT
R1OUT
R1IIN
T2IIN
T2OUT
7
R2OUT
R2IIN
8
TTL side
15
8051
14
P3.1 TxD 11
11
P3.0 RxD 10
12
Max232
14 2 5
13 3
13
DB - 9
b.
Rs232 side
a) Sơ đồ bên trong Max232
b) Sơ đồ ghép nối của Max232 với 8051
a.
Max232 cã hai bé ®iÒu khiÓn ®êng truyÒn lµ nhËn vµ truyÒn d÷ liÖu nh giíi thiÖu ë h×nh trªn.
C¸c bé ®iÒu khiÓn ®êng truyÒn dïng cho TxD ®îc gäi lµ T1 vµ T2. Trong nhiÒu øng dông th×
chØ cã mét cÆp ®îc dïng. VÝ dô T1 vµ R1 ®îc dïng víi nhau cho trêng hîp TxD vµ RxD cña
8051, cßn cÆp R2 vµ T2 th× kh«ng dïng ®Õn. §Ó ý r»ng, bé ®iÒu khiÓn T1 cña Max232 cã g¸n
T1in vµ T1out trªn c¸c ch©n sè 11 vµ 14 t¬ng øng. Ch©n T1in lµ ë phÝa TTL vµ ®îc nèi tíi ch©n
RxD cña bé vi ®iÒu khiÓn, cßn T1out lµ ë phÝa RS232 ®îc nèi tíi ch©n RxD cña ®Çu nèi DB cña
RS232. Bé ®iÒu khiÓn ®êng R1 còng cã g¸n R1 in vµ R1out trªn c¸c ch©n sè 13 vµ 12 t¬ng øng.
Ch©n R1in (ch©n sè 13) lµ ë phÝa RS232 ®îc nèi tíi ch©n TxD ®Çu nèi DB cña RS232 vµ ch©n
R1out (ch©n sè 12) lµ ë phÝa TTL vµ ®îc nèi tíi ch©n RxD cña bé vi ®iÒu khiÓn. §Ó ý r»ng nèi
ghÐp modem rçng lµ nèi ghÐp mµ ch©n TxD bªn ph¸t ®îc nèi víi RxD cña bªn thu vµ ngîc
l¹i.
MAX232 cÇn cã 4 tô ®iÖn gi¸ trÞ tõ 1 ®Õn 22F. gi¸ trÞ thêng dïng lµ 10F.
1.3. Khối Vi Điều Khiển
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 11 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
Có chức năng đọc dữ liệu từ ADC 0804 để xử lý và gửi kết quả lên Máy Tính.
1.4. Khối Chuyển Mạch Thang Đo và ADC.
.4.1.1 ADC 0804.
Các bộ chuyển đổi ADC thuộc những thiết bị được sử dụng rộng rãi nhất để thu dữ
liệu.Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lý thì mọi đại
lượng ở dạng tương tự(liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và
một số ít những đại lượng vật lýcủa thế giới thực mà ta gặp hằng ngày.
Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp qua một thiết bị được gọi là
các bộ biến đổi. Các bộ biến đổi cũng có thể coi như các bộ cảm biến. Mặc dù chỉ có các bộ
cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lượng tự nhiên khác nhưng chúng đều
cho ra các tín hiệu dạng dòng điện hoặc điên áp ở dạng liên tục. Do vậy, ta cần một bộ chuyển
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 12 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
đổi tương tự số sao cho bộ vi điều khiển có thể đọc được chúng. Một chip ADC được sử dụng
rộng rãi là ADC0804.
Cấu Tạo.
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng National
Semiconductor. Chip này cũng được nhiều hãng khác sản xuất.
Chip có điện áp nuôi +5V v à độ phân giải 8 bit. Ngoài độ phân giải thì thời gian
chuyển đổ i cũng là một tham số quan trọng khi đánh giá bộ ADC. Thời gian chuyển đổi
được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một
số nhị phân. Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ đ
ược cấp tới chân CLK và CLK IN và không bé hơn 110µs. Các chân khác của ADC0804 có
chức năng như sau:
+ CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp
được sử dụng để kích hoạt Chip ADC0804. Để truy cập ADC0804 th ì chân này phải ở mức
thấp.
+ RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp. Các bộ
chuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong. RD được
sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804.
Khi CS = 0, nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit
được đưa tới các chân dữ liệu (DB0 – DB7).
+ WR (Write): Chân số 3, đây là chân vào tích c ực mức thấp được dùng để báo cho
ADC biết bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì
bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8
bit. Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp.
+ CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngo ài
được sử dụng để tạo thời gia n. Tuy nhiên ADC0804 c ũng có một bộ tạo xung đồng hồ
riêng. Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân s ố 19) được nối với
một tụ điện v à một điện trở (như hình vẽ). Khi đó tần số được xác định bằng biểu thức:
F = 1/ 1.1RC
Với R = 10 kΩ, C = 150 pF và tần số f = 606 kHz và thời gian chuyển đổi l à 110
µs.
+ Ngắt INTR (Interupt): Chân số 5, là chân ra tích c ực mức thấp. Bình thường
chân này ở trạng thái cao v à khi việc chuyển đổi ho àn tất thì nó xuống thấp để báo cho
CPU biết l à dữ liệu chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp, cần đặt CS
= 0 và gửi một xung cao xuống thấp tới chân RD để đ ưa dữ liệu ra.
+ Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai,
trong đó V in = Vin(+) – Vin(-). Thông thường Vin(-) được nối tới đất và Vin(+) được dùng
làm đầu vào tương tự và sẽ được chuyển đổi về dạng số.
+ Vcc: Chân số 20, là chân nguồn nuôi +5V. Chân này còn được dùng làm điện áp
tham chiếu khi đầu vào Vref/2 để hở.
+ Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu.
Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 đến +5V.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 13 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến V in khác với dải 0 đến +5V.
Chân V ref/2 được dùng để thực hiện các điện áp đầu ra khác 0 đến +5V.
Bảng: Quan hệ điện áp V ref/2 với Vin.
Vref/2 (V)
Vin (V)
Kích thước bước (mV)
Hở
0–5
5/256 = 19.53
2.0
0–4
4/256 = 15.62
1.5
0–3
3/256 = 11.71
1.28
0 – 2.56
2.56/256 = 10
1.0
0–2
2/256 = 7.81
0.5
0–1
1/256 = 3.90
+ D0 - D7: D0 - D7, chân số 18 – 11, là các chân ra d ữ liệu số (D7 là bit cao nhất
MSB và D0 là bit thấp nhất LSB). Các chân này được đệm ba trạng thái và dữ liệu đã
được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD đưa xu ống mức thấp.
Để tính điện áp đầu ra ta tính theo công thức sau:
Dout = Vin / Kích thước bước
1.4.2. Chuyển Mạch Thang Đo.
Tín hiệu điện áp cần đo được phân áp xuống khoảng điện áp 0V÷5V nhờ các cầu phân áp
điện trở( mỗi thang có 1 cầu phân áp riêng), đến chờ ở chuyển mạch xoay để đưa vào chân
Vin+ của ADC 0804 để thực hiện biến đổi từ tương tự sang số.
Đây là chuyển mạch xoay, vừa chọn thang đo và, vừa báo cho VĐK biết chuyển mạch
đang ở thang nào.
2. Lập Trình.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 14 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
2.1. Lưu Đồ Thuật Toán.
Bắt Đầu
Chuyển Đổi A-D
Kiểm Tra Thang
Đo
Không Có Thang Đo
Nào Được Chọn
Thang Đo x Được
Chọn( x ứng với thang
đo: 5V, 25V, 50V.
Tính Giá Trị Đo Được
Gửi Tín Hiệu
“OFF”
Gửi Kết Quả Lên
Máy Tính
2.2. Chương Trình Điều Khiển Cho VĐK 89S52.
#include
#include
#include
sbit
sbit
sbit
sbit
sbit
sbit
WR_ADC
INTR_ADC
T_OFF
T_50V
T_25V
T_5V
= P3^2;
= P3^3;
= P3^4;
= P3^5;
= P3^6;
= P3^7;
unsigned int m;
unsigned char x,j;
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 15 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
unsigned char so1,so2,so3,so4;
float volt ;
void adc_convert(void)
{
WR_ADC=0;
for(j=0;j<10;j++);
WR_ADC=1;
while(!INTR_ADC);
x=P1;
}
void delay_ms(unsigned int time)
{
unsigned int k,t;
for(k=0;k< time;k++)
for(t=0;t<120;t++);
}
void tranfer(char buff)
{
while(!TI);
SBUF = buff;
TI=0;
}
void xuong_dong(void)
{
tranfer(0xa);
tranfer(0xd);
}
void tranfer_string(char*s)
{
while(*s)
{
tranfer(*s);
s++;
}
}
void tranfer_real(unsigned int buff)
{
so1=buff/1000;
so2=(buff%1000)/100;
so3=((buff%1000)%100)/10;
so4=((buff%1000)%100)%10;
if(T_5V==0)
{
tranfer(so1+0x30);
tranfer('.');
tranfer(so2+0x30);
tranfer(so3+0x30);
tranfer(so4+0x30);
tranfer('V');
// hàm chuyển đổi ADC.
// Hàm Trễ.
// Hàm gủi 1 byte ra cổng nối tiếp.
// Hàm xuống dòng.
// Hàm chuyển 1 chuỗi ký tự.
// Hàm truyền 1 số thực.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 16 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
delay_ms(100);
for(j=0;j<=5;j++) tranfer(0x08);
}
if(T_25V==0)
{
tranfer(so1+0x30);
tranfer(so2+0x30);
tranfer('.');
tranfer(so3+0x30);
tranfer(so4+0x30);
tranfer('V');
delay_ms(100);
for(j=0;j<=5;j++) tranfer(0x08);
}
if(T_50V==0)
{
tranfer(so2+0x30);
tranfer(so3+0x30);
tranfer('.');
tranfer(so4+0x30);
tranfer('V');
delay_ms(100);
for(j=0;j<=4;j++) tranfer(0x08);
}
}
void intal_serial(void)
// Hàm thiết lập cổng nối tiếp.
{
SCON=0X52;
TMOD=0X20;
TL1=TH1=-3;
TR1=1;
tranfer(0xc);
tranfer_string("Do An Mon Vi Dieu Khien.");
delay_ms(1000);
xuong_dong();
tranfer_string(" VoltMet Dien Tu.");
delay_ms(1000);
xuong_dong();
tranfer_string(" Lop Dien Tu 3-K10.");
delay_ms(1000);
xuong_dong();
tranfer_string("Nhom SV Thuc Hien:");
tranfer(0xa);
tranfer_string("Phung Xuan Quan.");
xuong_dong();
tranfer_string("
Le Van Quang.");
delay_ms(5000);
}
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 17 -
Khoa Điện Tử.
void main(void)
{
intal_serial();
Đồ Án Môn: Ghép Nối Máy Tính.
// hàm chính.
while(1)
{
while(!T_OFF)
{
tranfer(0xc);
while(!T_OFF)
{
tranfer_string("-Volmet Dang O Che Do:OFF.");
while(!T_OFF);
}
}
while(T_5V==0)
{
tranfer(0xc);
tranfer_string("-Thang Do 5V:");
xuong_dong();
tranfer_string(" Dien Ap Do Duoc La: ");
while(!T_5V)
{
adc_convert();
volt=(float)(5*x)/255;
m=(int)(volt*1000);
tranfer_real(m);
}
}
while(!T_25V)
{
tranfer(0xc);
tranfer_string("-Thang Do 25V:");
xuong_dong();
tranfer_string(" Dien Ap Do Duoc La: ");
while(!T_25V)
{
adc_convert();
volt=(float)(5*x)/255;
m=(int)(volt*500);
tranfer_real(m);
}
}
while(!T_50V)
{
tranfer(0xc);
tranfer_string("-Thang Do 50V:");
xuong_dong();
tranfer_string(" Dien Ap Do Duoc La: ");
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 18 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
while(!T_50V)
{
adc_convert();
volt=(float)(5*x)/255;
m=(int)(volt*100);
tranfer_real(m);
}
}
}
}
Phần III: Ưu Nhược Điểm Và Hướng Phát Triển.
1. Ưu, Nhược Điểm:
1.1. Ưu Điểm:
+Mạch có khả năng đo được dải điện áp rộng: 0÷50 VDC.
+Mạch có 3 thang đo để tăng độ chính xác giá trị đo.
+Mạch có tốc độ nhanh, chính xác và ổn định.
+Mạch hiển thị thang đo và kết quả rõ ràng.
+Mạch được thiết kế nhỏ gọn, dễ sử dụng.
1.2. Nhược Điểm:
+Do chưa được thiết kế chuyên nghiệp và cách làm mạch còn thủ công nên không
tránh khỏi nhiễu ký sinh trong quá trình đo dẫn tới làm giảm độ chính xác khi đo giá
trị nhỏ.
+Mạch mới chỉ đo được điện áp 1 chiều, muốn đo điện áp xoay chiều cần phải thực
hiện chỉnh lưu trước khi đo.
+Phải có Máy Tính để hiển thị kết quả đo.
2. Hướng Phát Triển.
Để tăng tính linh hoạt, cần có thêm 3 rơ le để tự động đo ở thang đo phù hợp mà không
phải chuyển mạch bằng tay.
Nên có thêm Led 7 thanh để hiển thị khi không mang theo được máy tính.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 19 -
Khoa Điện Tử.
Đồ Án Môn: Ghép Nối Máy Tính.
2.1. Lưu Đồ Thuật Toán Phát Triển.
Bắt Đầu
Chuyển Đổi A - D
Tự Động Chọn Thang
50V nhờ role 1
Kiểm Tra Kết
Quả
5V<=Điện Áp<25V
Tự Động Chọn Thang
25V Nhờ Role 2
Điện Áp>=25V
Điện Áp<5V Tự
Động Chọn Thang
5V Nhờ Role 3
Gửi Kết Quả
Lên Máy Tính
2.2. Phần Cứng Phát Triển.
Lớp :CĐ Điện Tử 3 K10.
SV: Phùng Xuân Quân.
Lê Văn Quảng.
- 20 -
- Xem thêm -