Chuyển đổi Iout thành điện áp: trong trường hợp lý tưởng ta có thể kết nối ngõ ra chân
Ioutvới một điện trở để chuyển đổi thành điện áp. Tuy nhiên, trong thực tế do điện trở
ngõ vào của tải có thể ảnh hưởng đến điện áp ngõ ra khiến điện áp ngõ ra trở nên không
chính xác. Vì vậy, dòng ngõ ra được cách ly bằng cách kết nối chân dòng ngõ ra với một
OP-AMP với điện trở hồi tiếp Rf= 5KO(hình 5.43), tạo thành mạch chuyển đổi từ dòng
sang áp.
39 trang |
Chia sẻ: thienmai908 | Lượt xem: 1064 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng vi xử lý Chương 5: Giao tiếp, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
RS ; chọn chế độ gởi lệnh
MOV DATA,#06H ; vị trí cursor tự động dịch sang phải khi có
; ký tự được gởi
CLR E ; tạo cạnh xuống trên E
LCALL WAIT_LCD ; chờ đến khi LCD hết bận
RET
Xóa màn hình hiển thị LCD
CLR_LCD:
SETB E
CLR RS
MOV DATA,#01H
CLR E
LCALL WAIT_LCD
RET
25
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
Ghi ra màn hình
WRITE_TEXT:
SETB E
SETB RS
MOV DATA,A
CLR E
LCALL WAIT_LCD
RET
Đặt cursor đúng vị trí
- Tổ chức vùng nhớ hiển thị của LCD:
Hình 5.29
- Trong bảng bộ nhớ trên, số được ghi trong mỗi ô là địa chỉ của bộ nhớ tương ứng với
vị trí trên màn hình LCD. Muốn hiển thị một ký tự ở một vị trí bất kỳ (chứ không theo
thứ tự từ kí tự thứ nhất ở góc trái phía trên) thì ta phải gởi lệnh “Set Cursor Position”
(đặt vị trí cursor), giá trị của lệnh này là 80H.
- Ví dụ, muốn đặt vị trí cursor ở hàng thứ 2, ký tự đầu tiên thì ta phải gởi lệnh “Set
Cursor Position”, giá trị của lệnh này là 80H cộng với địa chỉ 40H, kết quả là C0H.
SETB E
CLR RS
MOV DATA,#0C0H
CLR E
LCALL WAIT_LCD
4. Giao tiếp với ma trận LED 8x8 (8x8 DOT MATRIX)
Hình 5.30
- Ma trận LED gồm 64 LED có thể sáng 2 màu xanh và đỏ, được bố trí theo ma trận 8x8.
- Mỗi LED hai màu được tổ hợp từ hai LED đơn xanh và đỏ có chân Anode chung
(DOTC), hai chân Cathode tương ứng với hai màu xanh (GREEN) và đỏ (RED).
- Muốn LED tại tọa độ nào sáng, ta cung cấp mức logic 0 cho DOTCn và mức logic 1 cho
GREENn hoặc REDn tương ứng.
- Muốn hiển thị một kí tự lên ma trận LED ta lần lượt quét từng cột LED (bằng cách cho
một cột tích cực, các cột còn lại không tích cực). Trong khi quét một cột, ta xuất mã quét
26
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
hàng tương ứng và tạo trễ một khoảng thời gian để LED ở toạ độ có hàng và cột tích cực
sáng, sau đó tiếp tục quét sang cột kế cho đến khi quét hết tất cả các cột rồi lặp lại. Việc
hiển thị toàn bộ kí tự trên ma trận LED là nhờ hiện tượng lưu ảnh.
Ví dụ: Bảng mã chữ A khi quét từng cột:
C2
H7
C6C4
H8
H5
H3
H1
C7
H6
C1
H4
H2
C8C5C3
Hàng 8→1 (tích cực mức 1) Cột (tích
cực mức 0) BIN HEX
1 1 1 1 1 1 1 0 0 FCH
2 0 0 0 1 0 0 1 0 12H
3 0 0 0 1 0 0 0 1 11H
4 0 0 0 1 0 0 1 0 12H
5 1 1 1 1 1 1 0 0 FCH
6 0 0 0 0 0 0 0 0 00H
7 0 0 0 0 0 0 0 0 00H
8 0 0 0 0 0 0 0 0 00H
Hình 5.31
IV. MỞ RỘNG PORT I/O
Do 8051 chỉ có 4 port I/O và các port này cũng đồng thời có các chức năng đặc biệt khác như
là đường địa chỉ, đường dữ liệu, ngõ vào/ra của các mạch chức năng đặc biệt, nên đối với những
thiết kế lớn cần giao tiếp với nhiều I/O khác nhau thì việc mở rộng port I/O là rất cần thiết.
1. Sử dụng các IC giao tiếp nhập/xuất cơ bản
Giao tiếp nhập cơ bản
- Thường sử dụng các bộ đệm 3 trạng thái như hình vẽ sau:
D0
D1
ĐẾN BUS DỮ
LIỆU 8051
D2
0
74LS244
2
4
6
8
1
18
16
14
12
11
13
15
17
9
7
5
3
19
A1
A2
A3
A4
1OE
Y1
Y2
Y3
Y4
A5
A6
A7
A8
Y5
Y6
Y7
Y8
2OE
D3
SW DIP-8
/RD
D4
VCC
D5
CON8
1
2
3
4
5
6
7
8
/CS
D6
10k x 8
1
23456789
D7
Hình 5.32
- Kết nối như trên cho phép vi xử lý đọc nội dung của 8 SW được nối vào bus dữ liệu
khi tín hiệu chọn /CS ở mức logic 0 (tín hiệu này có thể là từ vi xử lý hoặc mạch giải
mã địa chỉ) khi có lệnh truy xuất cổng nhập này. Bằng cách này ta có thể sử dụng
nhiều bộ đệm để kết nối với nhiều thiết bị nhập khác nhau, mỗi thiết bị nhập có một
địa chỉ nhất định, và việc chọn thiết bị truy xuất sẽ được thực hiện thông địa chỉ của
thiết bị và mạch giải mã địa chỉ, hoặc có thể điều khiển trực tiếp từ các chân tín hiệu
của vi xử lý.
27
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
Giao tiếp xuất cơ bản
- Thường sử dụng các mạch chốt như hình vẽ (dùng IC chốt là 74374)
/WR
TỪ BUS DỮ
LIỆU 8051
D6
/CS
74LS374
3
4
7
8
13
14
17
18
1
11
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OE
CLK
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
D1
0
D0
D2
D3
D4
D5
D7
CON8
1
2
3
4
5
6
7
8
VCC
Hình 5.33
- Các ngõ vào mạch chốt được lấy từ bus dữ liệu (từ vi xử lý). Khi có lệnh xuất ra cổng
này thì tín hiệu chọn /CS sẽ xuống mức thấp để cho phép dữ liệu được chuyển qua mạch
chốt và khi tín hiệu chọn /CS lên mức cao thì mạch chốt sẽ chốt lại, không cho dữ liệu đi
qua. Tín hiệu chọn /CS có thể là từ mạch giải mã địa chỉ hoặc trực tiếp từ vi xử lý.
- Một số IC chốt thông dụng khác: 74373, 74573, 4050
2. PPI 8255
PPI (Programmable Parallel Interface) 8255A là IC giao tiếp song song lập trình được.
D0 ÷ D7: port dữ liệu (2 chiều)
PA0 ÷ PA7: port A
PB0 ÷ PB7: port B
PC0 ÷ PB7: port C
RD : ngõ nhận tín hiệu điều khiển đọc (read)
WR : ngõ nhận tín hiệu điều khiển ghi (write)
A1, A0: 2 bit địa chỉ chọn port làm việc
A1 A0 Chọn
0 0 Port A
0 1 Port B
1 0 Port C
1 1 Thanh ghi điều khiển
RESET: ngõ nhận tín hiệu reset (tích cực mức cao)
CS : ngõ nhận tín hiệu chọn chip (tích cực mức thấp)
Sơ đồ chân vi mạch:
28
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
8255
34
33
32
31
30
29
28
27
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
5
36
9
8
35
6
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
RD
WR
A0
A1
RESET
CS
Hình 5.34
Sơ đồ khối chức năng của 8255A:
Hình 5.35
Điều khiển hoạt động của PPI 8255A:
- Để xác lập chế độ hoạt động của PPI 8255A, phải ghi giá trị từ điều khiển (control
word) vào thanh ghi điều khiển (control register).
Logic
điều
khiển
đọc/ghi
/RD
/WR
A0
A1
RST
/CS
Nhóm B
port C
(thấp)
Nhóm B
port B
Nhóm A
port C
(cao)
Nhóm A
port A
Đệm bus
D
Điều
khiển
nhóm A
Điều
khiển
nhóm B
PA0 ÷ PA7
PC4 ÷ PC7
PB0 ÷ PB7
PC0 ÷ PC3
D0 ÷D7
29
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
- Có 2 loại từ điều khiển cho PPI 8255A:
Từ điều khiển định nghĩa cấu hình cho các port PA, PB, PC.
Cách xác lập:
D7 D6 D5 D4 D3 D2 D1 D0
Chọn Mode nhóm A
00: Mode 0 0: PA out 0: PCH out
Chọn Mode
nhóm B 0: PB out 0: PCL out
01: Mode 1 1: PA in 1: PCH in 0: Mode 0 1: PB in 1: PCL in
1
1x: Mode 2 1: Mode 1
Từ điều khiển lập/xoá bit ở port C (BSR):
Từ điều khiển lập/xoá từng bit ở port C. Mỗi bit của port C có thể được set hay reset
bằng cách ghi vào thanh ghi điều khiển giá trị thích hợp mà không làm ảnh hưởng đến
chế độ làm việc của PPI 8255A đã xác lập trước đó.
D7 D6 D5 D4 D3 D2 D1 D0
000: chọn PC0
001: chọn PC1 0: Reset
… 1: set
0 x x x
111: chọn PC7
Ghi chú: Nhóm A: gồm PA và PCH (PC4 ÷PC7)
Nhóm B: gồm PB và PCL(PC0 ÷PC3)
Các chế độ làm việc (Mode) của PPI 8255A:
Mode 0 (D7D6D5 = 100): Nhập/xuất cơ bản
Trong chế độ này, các port PA, PB, PCH, PCL là các cổng nhập hoặc xuất.
PA, PB, PC được sử dụng độc lập với nhau.
PA, PB, PCH, PCL có thể là cổng nhập hay xuất tuỳ thuộc từ điều khiển ghi
vào thanh ghi điều khiển.
Dữ liệu ra được chốt.
Dữ liệu vào không được chốt.
Mode 1 (D7D6D5 = 101): Nhập/xuất có xung cho phép
Trong chế độ này, mỗi port PA, PB có thể được định nghĩa thành các cổng xuất
hoặc nhập với các tín hiệu bắt tay (handshaking) do các bit tương ứng của port C
trong cùng nhóm đảm nhận.
Mode 2 (D7D6D5 = 11x): Nhập/xuất 2 chiều
Trong chế độ này, chỉ riêng port A có thể được định nghĩa thành các cổng
nhập/xuất 2 chiều với các tín hiệu bắt tay do các bit của port C đảm nhận. Port B
có thể làm việc trong chế độ 0 hoặc 1.
Mode BSR: Lập/xoá từng bit cho port C bằng cách ghi từ điều khiển (của chế độ
này) vào thanh ghi điều khiển.
Ví dụ 5.16: Cho mạch như hình 5.36
a. Tìm địa chỉ được gán cho các port A, B, C, và thanh ghi điều khiển.
b. Xác định giá trị của thanh ghi điều khiển để PA = out, PB = in, PC0-PC3 = in và PC4-
PC7 = out.
c. Viết chương trình nhận dữ liệu từ PB và gởi dữ liệu đó cho PA. Ngoài ra, dữ liệu từ PCL
cũng được chuyển đến PCH.
30
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
Hình 5.36
Giải
a. Đây là I/O ánh xạ bộ nhớ, khi đường địa chỉ A14 ở mức cao (logic 1) thì chân /CS được
tích cực. Giả sử tất cả các đường không quan tâm (A15 và A13÷A2) đều bằng 0 thì ta có
địa chỉ các cổng và thanh ghi điều khiển như sau:
/CS (/A14) A1 A0 Địa chỉ Port
0 0 0 4000 Port A
0 0 1 4001 Port B
0 1 0 4002 Port C
0 1 1 4003 Thanh ghi điều khiển
b. Vì chỉ là nhập xuất cơ bản nên ta cho các cổng hoạt động ở Mode 0.
D7 D6 D5 D4 D3 D2 D1 D0
Chế độ
I/O
nhóm A
00: Mode 0
0: PA out 0: PCH out nhóm B
0: Mode 0
1: PB in 1: PCL in
1 0 0 0 0 0 1 1
Giá trị của từ điều khiển: 10000011B hay 83H
c. Chương trình:
PORTA EQU 4000H
PORTB EQU 4001H
PORTC EQU 4002H
CTRLPORT EQU 4003H
CTRLBYTE EQU 83H
MOV A,#CTRLBYTE ;PA = out, PB = in, PCH = out, PCL = in
MOV DPTR,#CTRLPORT ;trỏ đến thanh ghi điều khiển
MOVX @DPTR,A ;ghi dữ liệu vào thanh ghi điều khiển
MOV DPTR,#PORTB ;đọc port B
MOVX A,@DPTR
MOV DPTR,#PORTA ;ghi ra port A
MOVX @,DPTR
31
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
MOV DPTR,#PORTC ;đọc port C
MOVX A,@DPTR
ANL A,#0FH ;xóa 4 bit cao, chỉ giữ 4 bit thấp
MOVX @DPTR,A ;ghi ra port C
END
V. GIAO TIẾP A/D – D/A
1. Giao tiếp với ADC
a. ADC0804
- ADC0804 là thiết bị chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital)
mã hoá 8 bit song song.
- Thời gian chuyển đổi dữ liệu từ tương tự sang số phụ thuộc vào nguồn clock cấp cho
chân CLK IN và thường trong khoảng thời gian 100μs.
- Mô tả các chân của ADC0804:
+ CS: chân chọn chip
+ RD : ngõ vào đọc dữ liệu từ ADC.
+ WR : cho phép ADC0804 bắt đầu quá trình chuyển đổi. Khi việc biến đổi hoàn
tất, ADC0804 xác lập chân INTR xuống mức thấp.
+ CLK IN và CLK R: CLK IN là chân ngõ vào được kết nối với nguồn clock ngoài
khi định thì dùng clock ngoài. Để sử dụng bộ tạo clock nội bên trong có sẵn của
ADC0804, các chân CLK IN và CLK R phải kết nối với một tụ điện và điện trở
như hình 5.37õ. Trong trường hợp này, tần số của clock được xác định theo f =
1/(1.1RC).
+ INTR : là chân ngõ ra báo hiệu kết thúc việc chuyển đổi dữ liệu. Khi chân này
xuống mức thấp, ta cho CS = 0 và gởi một xung cạnh xuống trên chân RD để đọc
dữ liệu từ ADC.
+ VIN(+) và VIN(-): là các ngõ vào tương tự. Điện áp ngõ vào tương tự chính là
điện áp sai biệt đặt trên hai chân này. Thông thường, VIN(-) được nối đất và tín
hiệu điện áp tương tự cần chuyển đổi được đưa vào chân VIN(+).
+ VCC: chân nguồn +5V. Chân này cũng được sử dụng như là một điện áp tham
chiếu khi chân Vref/2 hở (không kết nối).
+ Vref/2: ngõ vào điện áp chuẩn cho phép chỉnh thang đo.
Vref/2 (V) Vin (V) Độ phân giải (mV)
Không kết nối 0 đến 5 5/256 = 19.53
2.0 0 đến 4 4/256 = 15.62
1.5 0 đến 3 3/256 = 11.71
1.28 0 đến 2.56 2.56/256 = 10
+ D0 – D7: 8 bit dữ liệu số ngõ ra. Đây là các bộ đệm 3 trạng thái và dữ liệu được
chuyển đổi chỉ được truy xuất khi CS = 0 và RD xuống mức thấp. Để tính điện
áp ngõ ra, ta sử dụng công thức:
Dout = Vin / Độ phân giải
với Dout là ngõ ra dữ liệu số (thập phân), Vin là điện áp tương tự ngõ vào.
32
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
Hình 5.37
Ví dụ 5.17: Cho ADC0804 kết nối với 8051 như hình 5.37. Trong đó RD nối với P2.5,
WR nối với P2.6, INTR nối với P2.7, CS nối mass, D0-D7 nối với P1.0-P1.7, Vref/2 = 1.28V.
Chương trình sau sẽ kiểm tra chân INTR và đọc dữ liệu tương tự vào thanh ghi A. Sau đó nó
gọi các chương trình con chuyển đổi từ mã HEX sang mã ASCII và hiển thị dữ liệu.
RD BIT P2.5 ;/RD
WR BIT P2.6 ;/WR (bắt đầu chuyển đổi)
INTR BIT P2.7 ;kết thúc chuyển đổi
MYDATA EQU P1 ;D0-D7
33
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
MOV P1,#0FFH
SETB INTR
BACK: CLR WR ;tạo cạnh lên
SETB WR
JB INTR,$ ;chờ cho đến khi kết thúc chuyển đổi
CLR RD ;kết thúc chuyển đổi, cho phép RD
MOV A, MYDATA ;đọc dữ liệu
ACALL CONVERSION
ACALL DATA_DISPLAY
SETB RD ;chuẩn bị cho lần đọc kế tiếp
SJMP BACK
b. ADC0809
- ADC0809 là thiết bị chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital)
mã hoá 8 bit, multiplex 8 kênh và tương thích với bộ vi xử lý. ADC0809 dùng kỹ thuật
chuyển đổi A/D xấp xỉ liên tiếp.
- Sơ đồ chân và sơ đồ khối:
ADC0809
10
9
7
17
14
15
8
18
19
20
21
6
22
11
12
16
26
27
28
1
2
3
4
5
25
24
23
CLK
OE
EOC
D0
D1
D2
D3
D4
D5
D6
D7
START
ALE
VCC
REF+
REF-
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
A0
A1
A2
Hình 5.38
Hình 5.39
- Khả năng:
34
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
+ 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
được.
+ Không cần chỉnh không hay toàn thang (full-scale).
+ 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.
+ Độ phân giải: 8 bit
+ Sai số không điều chỉnh được tổng cộng: ±1 LSB.
+ Nguồn cung cấp đơn: 5VDC.
+ Công suất thấp: 15mW.
+ Thời gian chuyển đổi: khoảng 100μs.
- Đặ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 μA
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 = -360μA 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 + 2μs Chu kỳ
clock
tC Thời gian biến đổi fCLK = 640Khz 90 100 116 μs
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:
Địa chỉ Kênh analog
được chọn 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ỉ
(ALE).
- Đặc tính chuyển đổi:
Thanh ghi xấp xỉ liên tiếp (SAR – Successive Approximation Register) của bộ
biến đổi A/D được reset tại cạnh lên của xung Start. Việc chuyển đổi được bắt đầu
35
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
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 của
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.
- Giản đồ thời gian:
Hình 5.40
- Biểu thức chuyển đổi:
Dữ liệu ngõ ra ADC là một số nguyên N nằm trong tầm:
đốituyệt xác chính Độ±×+
−=
−+
− 256
REFREF
REFIN
VV
VVN
Ví dụ 5.18: (kết nối như hình vẽ 5.41) Xác định địa chỉ của các kênh analog.
Giải
Một tập địa chỉ có thể của các kênh:
IN0 8000H
IN1 8001H
IN2 8002H
IN3 8003H
IN4 8004H
IN5 8005H
IN6 8006H
IN7 8007H
36
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
P1.0
ADC0809
10
9
7
17
14
15
8
18
19
20
21
6
22
11
12
16
26
27
28
1
2
3
4
5
25
24
23
CLK
OE
EOC
D0
D1
D2
D3
D4
D5
D6
D7
START
ALE
VCC
REF+
REF-
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
A0
A1
A2
A1/CS: 8000H-9FFFH
/RD
A0
/CS
A2
Hình 5.41
Giải thuật điều khiển đọc ADC
EXIT
Chọn kênh Analog ngõ vào
Tạo xung ALE cho phép
chốt địa chỉ
Tạo xung START cho phép
bắt đầu biến đổi
Chờ biến đổi xong
Đọc dữ liệu ở ngõ ra
BEGIN
2. Giao tiếp với DAC0808
- Biến đổi giá trị số thành giá trị tương tự (áp hoặc dòng).
Hình 5.42
37
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
- Trong DAC0808 (hay MC1408) các ngõ vào số được chuyển đổi thành dòng (Iout) và
bằng cách nối một điện trở đến chân Iout, ta đổi thành điện áp ra. Dòng tổng cung cấp cho
chân Iout là một hàm của các số nhị phân tại các ngõ vào A0 đến A7 và dòng tham chiếu
(Iref) như sau:
⎟⎠
⎞⎜⎝
⎛ +++++++=
256
0
128
1
64
2
32
3
16
4
8
5
4
6
2
7 AAAAAAAAII refout
với Iref là dòng vào chân 14. Iref thường được cài đặt ở 2mA.
- Chuyển đổi Iout thành điện áp: trong trường hợp lý tưởng ta có thể kết nối ngõ ra chân
Iout với một điện trở để chuyển đổi thành điện áp. Tuy nhiên, trong thực tế do điện trở
ngõ vào của tải có thể ảnh hưởng đến điện áp ngõ ra khiến điện áp ngõ ra trở nên không
chính xác. Vì vậy, dòng ngõ ra được cách ly bằng cách kết nối chân dòng ngõ ra với một
OP-AMP với điện trở hồi tiếp Rf = 5KΩ (hình 5.43), tạo thành mạch chuyển đổi từ dòng
sang áp.
Hình 5.43
Ví dụ 5.19: Viết đoạn chương trình gởi dữ liệu đến DAC (được kết nối với P1) để tạo điện áp
ngõ ra dạng hình bậc thang.
CLR A
AGAIN: MOV P1,A ;gởi dữ liệu đến DAC
INC A ;đếm từ 0 đến FFH
ACALL DELAY ;chờ DAC chuyển đổi
SJMP AGAIN
Ví dụ 5.20: Viết chương trình tạo sóng sine thông qua DAC (được kết nối với P1).
Để tạo một sóng sine, ta lập bảng biểu diễn giá trị của sóng sine theo góc quay θ trong
khoảng từ 0 đến 360 độ. Giá của hàm sine thay đổi từ –1.0 đến 1.0 khi góc θ thay đổi từ 0
đến 360 độ. Giả sử điện áp toàn thang cho ngõ ra của DAC là 10V, ta có ngõ ra Vout được
tính theo công thức:
)sinV(VVout θ×+= 55
Và giá trị nhị phân tương ứng cần đưa đến DAC là :
625256
10
256 .V
V
V
V
N out
out
thang toàn
out ×=×=×=
Bảng sau cho giá trị của Vout và N theo góc θ, với góc θ thay đổi mỗi lần là 30 độ.
38
Bài giảng VI XỬ LÝ Chương 5: Giao tiếp
Góc θ (độ) Sinθ Vout N
0 0 5 128
30 0.5 7.5 192
60 0.866 9.33 238
90 1.0 10 255
120 0.866 9.33 238
150 0.5 7.5 192
180 0 5 128
210 -0.5 2.5 64
240 -0.866 0.669 17
270 -1.0 0 0
300 -0.866 0.669 17
330 -0.5 2.5 64
360 0 0 128
COUNT EQU 12
AGAIN: MOV DPTR,#TABLE
MOV R2,#COUNT
BACK: CLR A
MOVC A,@A+DPTR
MOV P1,A
INC DPTR
DJNZ R2,BACK
SJMP AGAIN
ORG 300
TABLE:
DB: 128,192,238,255,238,192,128,64,17,0,17,64,128
Muốn tạo được sóng sine nhuyễn hơn ta giảm bước nhảy của góc θ, từ đó ta có một bảng
chuyển đổi mới. Thông thường, ở ngõ ra của OP-AMP ta gắn thêm một mạch lọc thông
thấp để lọc phẳng.
39
Các file đính kèm theo tài liệu này:
- Ch5.pdf