Tải bản đầy đủ (.pdf) (10 trang)

Ứng dụng KIUT 8051 dùng để chuyển đổi AD part8 potx

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 (243.44 KB, 10 trang )

Ta sử dụng OP-AMP LM 358 để lập lại điện áp nhằm phối hợp tổng trở với
ngõ vào REF+ của ADC 0809: đồng thời cung cấp mức áp chuẩn để đưa vào REF+
để tạo các mức logic ở ngõ ra tương ứng.
 Các điện trở 1K, 2K. 10K và VR 10K nhằm tạo cầu phân áp và chọn mức
áp chuẩn đưa vào REF+
 VZ = 5,6V ổn áp, giữ điện áp cố đònh
 Ngõ ra bộ so sánh là 5V. Với giá trò này ta có sự thay đổi AV ở ngõ vào
để thay đổi 1 mức logic ở ngõ ra là:
AV = 5/256  20mV
5 – Mạch tạo giao tiếp với KIT 8051:
 8 bit ra của 0809 được nối với PortA của 8255 –1
 3 chân chọn kênh A0, A1, A2 của 0809 được nối PB0  PB2. Vì vậy khi
ghi một dữ liệu vào vùng nhớ của 0809 tức chọn kênh của nó.
 Chân Start nối PC4, ALE nối PC5
 Chân OE được nối lên Vcc. Luôn ở trạng thái cho phép đọc dữ liệu.
 Chân EOC được nối với PCC. Trong quá trình thực hiện chuyển đổi vi
điều khiển sẽ đọc giá trò EOC tại PCO. Nếu EOC = 1: hoàn thành quá
trình chuyển đổi, vi điều khiển sẽ đọc dữ liệu lưu trữ vào RAM để xử lý.
 PC1 được nối qua R1K đưa lên +5V (PC1 = 1). Khi có ấn phím PC1 = 0,
được đưa vào vi điều khiển để báo chọn kênh.
II – MẠCH CHUYỂN ĐỔI DA 0808














DAC 0808 có nhiệm vụ biến đổi mã nhò phân thành dòng (tín hiệu analog).
Dòng này có chiều chạy vào Iout của DAC 0808 và có cường độ thay đổi theo tỉ lệ
với data ở ngã vào. Khi data thay đổi từ 0  255 Iref, ở mạch dòng mã nhò phân
được đưa từ KIT 8051 qua Port A của 8255-2 để đưa vào DAC 0808.
Tín hiệu DAC 0808 tạo ra dòng nên còn phải có mạch chuyển dòng thành áp
dùng LM324. Ta cần điện áp thay đổi từ 0-5V mà dòng thay đổi từ 0  2mA nên ta
cần điều chỉnh VR 5K cho phù hợp.
Sô ñoà nguyeân lyù card chuyeån ñoåi A/D – D/A


SÔ ÑOÀ BOÁ TRÍ LINH KIEÄN

Sễ ẹO MAẽCH IN MAậT TREN
Chương II
THIẾT KẾ PHẦN MỀM
I – LƯU ĐỒ GIẢI THUẬT
1 – Lưu đồ chương trình chính:
START

Khởi động 8255-1
MODE0

Nạp đòa chỉ cho kênh
đầu tiên vào r7

Chương trình xóa 8LED


Chương trình hiển thò thứ tự
kênh chọn tại LED 8


Chương trình chuyển đổi data

Chương trình xuất data ra D/A

Chương trình đổi HEX-BCD

Chương trình giải mã LED 7 đoạn

Chương trình hiển thò

Chương trình delay

Khởi động Port C


Kiểm tra nhấn phím N
PC4 = 0

Y
Khởi động Port
B

Ghi A vào 0809
Chọn kênh

Khởi động

0809

Lưu kết quả

Tăng R7 để dò kênh kế

N
R7= 08
Y

2 – Lưu đồ chương trình con chuyển đổi:


START


Nhập kênh cần quét
r7  a















Chuyển đổi N
kết thúc

Y



END

II- CHƯƠNG TRÌNH:
Chương trình chính chuyển đổi A/D – D/A:

ORG 4000H

MOV A, #91H ; Khởi tạo 8255-1 port A
MOV DPTR, #8003H
MOV @DPTR, A
X1 : MOV R7, #00H ; Nạp đòa chỉ để chọn kênh quét
X2: LCALL CLEAR ; Gọi chương trình xóa
LCALL DISPLAY – 1 ; Hiển thò số kênh chọn ở LED
LCALL CHUYENDOI ; Gọi chương trình chuyển đổi
LCALL OUT ; Gọi chương trình xuất ra D/A
LCALL HEX – BCD ; Gọi chương trình chuyển số hex
sang BCD
LCALL DECODE ; Gọi chương trình giải mã 7 đoạn
LCALL DISPLAY – 2 ; Gọi chương trình hiển thò dữ liệu
vừa chuyển đổi
LCALL DELAY ; Gọi chương trình delay

MOV DPTR, #8002 ; Kiểm tra nhấn phím
MOV A, @DPTR
ANL A, 02H
JNZ X2
INC R7 ; Tăng lên để dò kênh kế
CJMP 08, X2 ; Kiểm tra đã dò hết kênh chưa
LJMP X1 ; quay trở lại

***********************************************************
Các chương trình con phục vụ cho chương trình chính
***********************************************************

Chương trình con xóa vùng data hiển thò cho 8 kênh từ 5000h – 507Fh
ORG 4880H
MOV DPTR, #5000H ; Dùng ram ngoài để lưu trữ
MOV A, #00H
MOV R0, #80H ; Xóa từ 5000h đến 507Fh
CLE1: MOVX @DPTR, A
INC DPTR
DJNZ R0, CLE1
RET


***********************************************************
Chương trình con thực hiện quá trình chuyển đổi kênh thứ n trong R7
***********************************************************
ORG 4500H
MOV A, R7 ;Chọn kênh thứ n, ALE =0
MOV DPTR, A ; Điều khiển quá trình chuyển đổi cho kênh
thứ n

ORL A, #10H ; Cho ALE =1
MOVX @DPTR, A
ORL A, #20H ; Cho ALE =1, ST =1
MOVX @DPTR, A
NOP
NOP
NOP
CLR A ; Cho ALE =0, ST =0
MOVX @DPTR, A
; Kiểm tra quá trình chuyển đổi kết thúc hay chưa
CTC1:MOV DPTR, #PORTC
MOVX A, @DPTR
ANL A, #01H
JZ CTC1 ; Nếu chưa xong thì quay lại
; Xong quá trình biến đổi bắt đầu nhận dữ liệu
MOV DPTR, #PORTA
MOVX A,@DPTR
RET

***********************************************************
Chương trình hiển thò thứ tự số kênh chọn
***********************************************************
ORG 4100H
MOV A, #80H ; Chọn vò trí led để hiển thò
MOV DPTR, C001
MOVX @DPTR, A
MOV A, R7
MOV 83, 43 ; Nạp byte cao đòa chỉ chứa mã hiển thò
MOV 82, A ; Nạp byte thấp đòa chỉ chứa mã hiển thò
MOV A, @DPTR ; Hiển thò ra Led

MOV DPTR, C000
MOVX @DPTR, A
LCALL DELAY
RET

***********************************************************
Chương trình xuất ra D/A
***********************************************************
ORG 4200H
MOV R0, A ; Cất dữ liệu vào thanh ghi R0
MOV A, #80 ; Khởi tạo 8255 – 2 Mode 0
MOV DPTR, A003
MOV @DPTR, A
MOV A, R0 ; Nạp trở lại dữ liệu vào thanh ghi A
MOV DPTR, A000 ; Xuất dữ liệu ra Port A
MOV @DPTR, A
RET

***********************************************************
Chương trình chuyển số HEX sang số BCD
***********************************************************
ORG 4600H
MOV DPTR, #5008H
MOV B, #10 ; Nạp 10 vào thanh ghi B
DIV AB
MOV R0, A ; Cất tạm A sang R0
MOV A, B
MOVX @DPTR, A ; Cất data đơn vò vào 5008H
INC DPTR ; Tăng lên để lưu hàng chục
MOV A, R0 ; Lấy lại data hàng chục, hàng trăm

MOV B, #10 ; Nạp 10 vào thanh ghi B
DIV AB
MOV R0, A ; Cất tạm A sang R0
MOV A, B
MOVX @DPTR, A ;Cất data hàng chục vào 5009H
INC DPTR ;Tăng lên để lưu hàng trăm
MOV A, R0 ;Lấy lại data hàng trăm
MOVX @DPTR, A ;Cất data hàng trăm vào 500AH

×