Tải bản đầy đủ (.doc) (19 trang)

Thiết kế mạch đo điện áp 1 chiều trong dải từ - 24V đến -5V hiển thị kết quả trên máy tính

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 (312.2 KB, 19 trang )

TRƯỜNG ĐẠI HỌC HÀNG HẢI
KHOA: ĐIỆN – ĐIỆN TỬ TÀU BIỂN
BÀI TẬP LỚN
MÔN: KỸ TUẬT VI XỬ LÝ
Đề tài số (12): Thiết kế mạch đo điện áp 1 chiều trong dải
từ -24 đến -5V hiển thị kết quả trên máy tính
GIÁO VIÊN HƯỚNG DẪN : KS. Nguyễn Văn Tiến
SINH VIÊN THỰC HIỆN : Nguyễn Nam Hùng
LỚP : ĐTĐ – ĐHT1
Hải Phòng,tháng 5 năm 2012
1
MỤC LỤC
Nội dung Trang
Chương I.Tổng quan các phương pháp đo
điện áp một chiều
2
1. Vôn met số chuyển đổi thời gian 2
2. Vôn mét số chuyển đổi tần số 4
Chương II.Cơ sở thiết kế phần cứng 5
1. Sơ đồ khối chức năng 5
2.Tính chọn thiết bị 5
3. Sơ đồ nguyên lý 13
Chương III. Thiết kế phần mềm 14
1. Sơ đồ thuật toán 15
2. Chương trình điều khiển 16
3. Kết quả mô phỏng 24
4. Kết luận 26
5. Tài liệu tham khảo 27
Chương I.Tổng quan về các phương pháp đo điện áp 1 chiều
[2] Trang 104-109
Khi chế tạo vôn mét ta có thể chỉ thị kết quả đo dưới dạng chỉ thị kim hoặc số.


Ở đây ta quan tâm cách đo áp 1 chiều hiển thị số, trong việc đo áp chỉ thị số tùy thuộc
vào việc biến đổi người ta chia thành:
2
- Vôn met số chuyển đổi thời gian
- Vôn met sốchuyển đổi tần số
- Vôn mét số chuyển đổi bù
1. Vôn met số chuyển đổi thời gian
Nguyên lý chung: nguyên lý hoạt động chung của các vônmét số chuyển đổi thời
gian là biến đổi sơ bộ điện áp cần đo (Ux) thành khoảng thời gian (t) sau đó lấp
đầy khoảng thời gian t bằng các xung mang tần số chuẩn (f0); dùng bộ đếm để đếm
số lượng xung (N) tỉ lệ với Ux để suy ra Ux.
Phân loại: có các loại vônmét chuyển đổi thời gian sau:
- Vônmét chuyển đổi thời gian một nhịp
- Vônmét chỉ thị số tích phân hai nhịp
Sau đây ta nghiên cứu Vôn mét chuyển đổi thời gian một nhịp
Cấu tạo, nguyên lý hoạt động:
Hình 1: Vôn mét chuyển đổi thời gian một nhịp
Trên sơ đồ N01, N02, N03 là các xung có chức năng như sau:
- N01 làm nhiệm vụ khởi động vônmét
- N02 tác động vào trigơ để khoá (K)
3
- N03 xoá kết quả
Quá trình hoạt động của vônmét: mở máy, máy phát xung chuẩn qua bộ chia tần
khởi động máy phát điện áp răng cưa tại thời điểm t1. Từ đầu ra máy phát
điện áp răng cưa có Urc (tức là điện áp mẫu Uk) đi đến bộ so sánh để so với
điện áp cần đo Ux cần đo ở đầu vào. Đồng thời cũng từ đầu ra của máy phát điện
áp răng cưa ta có xung thứ nhất đến trigơ, đặt trigơ ở vị trí thích hợp thông
khoá (K) cho phép các xung mang tần số chuẩn (f0) từ phát xung qua khoá (K) đến
bộ đếm và chỉ thị số.
Tại thời điểm t2 khi Ux = Urc; thiết bị so sánh phát xung thứ 2 (N02) tác động

trigơ khoá (K).
Thời gian từ t1 đến t2 tương ứng với tx. Từ đây có mối quan hệ:
Số lượng xung đến bộ đếm trong thời gian tx sẽ là:
Như vậy số lượng xung n được khắc độ theo giá trị điện áp.
2. Vôn mét số chuyển đổi tần số
Vônmét loại này hoạt động dựa trên cơ sở ổn định áp thành tần số rồi dùng các
máy đo tần số chỉ thị số khắc độ theo điện áp.
Xét ví dụ về vônmét số tích phân biến đổi điện áp U thành tần số f bằng
phương pháp tích phân (Hình 2):
4
Khâu chuyển đổi tín hiệu áp sang tín hiệu tần số U-f: Điện áp Ux cần đo được
đưa đến đầu vào → qua khâu tích phân được điện áp U1 → U1 được đưa đến thiết
bị so sánh với áp nền U2 (có độ ổn định cao) → khi U1 = U2 thiết bị so sánh phát
xung qua khuếch đại 2 (tại thời điểm t1) thông khoá K1
và khóa K để đến bộ đếm → đến chỉ thị số.
Đồng thời khi K1 thông, điện áp U0 (ngược dấu với U1) sẽ qua K1 đến bù áp
U1 (đây là mạch phóng điện qua tụ C) trong khoảng thời gian Tk (từ t1 đến
t2). Tại thời điểm t2 điện áp U0 bù hoàn toàn U1:
Biến đổi quá trình ta được như sau:
Như vậy nếu biết được fx sẽ suy ra được giá trị điện áp cần đo Ux.fx
không phụ thuộc vào điện dung C, áp nền U2 mà được xác định bởi tỉ số R2/R1;
Uovà Tk . Sai số khâu này lớn nhất khoảng 0,2%.
Chương II. Cơ sở thiết kế phần cứng
1. Sơ đồ khối chức năng
5
+ Khối bộ biến đổi sơ cấp: có nhiệm vụ biến đổi giá trị điện áp cần đo phù hợp với
đầu vào ADC.
+ Khối chuyển đổi ADC: chuyển đổi tín hiệu tương tự từ bộ biến đổi sơ cấp thành tín
hiệu số.
+ Khối xử lý tín hiệu: xử lý tín hiệu số nhận được từ bộ ADC.

+ Khối hiển thị: hiển thị kết quả đo được.
2.Tính chọn thiết bị
Các phần mềm phục vụ cho việc mô phỏng :
+ Phần mềm mô phỏng : Proteus
+ Phần mềm tạo cổng COM ảo : Virtual Serial Ports Emulator(VSPE)
+ Phần mềm tạo cửa sổ hiển thị : Hecules
Các phần tử sử dụng trong bài tập lớn :
+ Vi điều khiển 89C51 của Almel
+ Ic ổn áp 5V :KA 7805
+ Tụ điện,điện trở
+ IC MAX 232 của Maxim
+ IC HD72LS04P(cổng NOT)
+ Trở băng 10k
+ Thạch anh 11,0592Mhz
+ Nút ấn
+ Biến trở 10k
+ Mạch tạo nguồn
6
Nguồn điện nuôi cho vi điều khiển 89C51 và IC chuyển đổi ADC, MAX 232 đều là
nguuồn 5VDC
VI
1
VO
3
GND
2
7805
C1
104pF
C2

104pF
C3
10uF
7-25VDC in out 5VDC
Hình 3
+ Mạch tái bật nguồn reset để 89C51 có thể hoạt động:
C4
33pF
C5
33pF
C6
10uF
R6
8.2k
89C51
EA/VPP
X1
X2
RST
Hình 4
+ Mạch biến đổi sơ cấp (mạch chia áp)
R2
1k
R3
24.5kk
Dien ap can do
VDC
Vin ADC
Hình 5
Do ta chọn điện áp tham chiếu cho ADC 0804 là 1V và điện áp cần đo là -5 đến

-24V. Vì vậy khi hiển thị giá trị đo là nhỏ hơn 25.5 nên ta chọn giá trị điện trở sao
cho Uvao/Ura=25.5/1. Do đó ta lựa chọn điện trở mạch chia áp
7
R2=1k và R3=24.5k.
+ Mạch chuyển đổi ADC
VIN+
6
VIN-
7
VREF/2
9
CLK IN
4
A GND
8
RD
2
WR
3
INTR
5
CS
1
D GND
10
DB7(MSB)
11
DB6
12
DB5

13
DB4
14
DB3
15
DB2
16
DB1
17
DB0(LSB)
18
CLK R
19
VCC
20
U2
ADC0804
R1
10k
C1
150pF
0.5V
89C51
Vin
Hinh 6
- Chọn R,C cho ADC
[1] Trang 406 Chân CLK IN là một chân đầu vào được nối tới một nguồn đồng hồ
ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian. Tuy nhiên ADC804 cũng
có một máy tạo xung đồng hồ. Để sử dụng máy tạo xung đồng hồ trong (cũng còn
được gọi là máy tạo đồng hồ riêng) của ADC804 thì các chân CLK IN và CLK R

được nối tới một tụ điện và một điện trở như chỉ ra trên hình 5. Trong trường hợp này
tần số đồng hồ được xác định bằng biểu thức:
Vậy khi ta chọn C1=150pF và R1=10k thì tần số là f = 606 Khz và thời gian chuyển
đổi là 110μs.
+ Chọn điện áp tham chiếu cho ADC
Bảng 1: Điện áp Vref/2 liên hệ với dải Vin.
8
Trong bài ta chọn điện áp tham chiếu là 1V, tức là ta đưa vào chân Vref của ADC
0804 điện áp là 0.5V. Khi đó Các chân dữ liệu D0 - D7 (D7 là bít cao nhất MSB và
D0 là bít thấp nhất LSB) là các chân đầu ra dữ liệu số. Đây là những chân đượ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 bị đưa xuống thấp. Để tính điện áp đầu ra ta có thể sử dụng công thức sau:

Với Dout là đầu ra dữ liệu số (dạng thập phân)
3.Khèi hiÓn thÞ :
9
Khối hiển thị gồm led 7 thanh để hiển thị kết quả và 3 led đơn để hiển thị
thang đo đợc chọn. Các loại led đợc chọn là led A chung vì nếu chọn led K
chung khi led sáng dòng điện sẽ đi từ vi điều khiển đi ra gây sụt áp trên vi điều
khiển dẫn đến vi điều khiển hoạt động không chính xác. Mạch điện phần cứng
cũng đợc thêm công tắc reset nhằm khởi động lại hệ thống khi hoạt động bị
lỗi, công tắc cấp nguồn 5V để hiểu chỉnh cầu phân áp đầu vào. Các transistor
đợc dùng để kích dòng cho led 7 thanh, tín hiệu từ vi điều khiển tác động vào
cực B của tran để điều khiển các led 7 thanh hiển thị.
4.Mạch nguyên lý :
10
Chương III.Thiết kế phần mềm
1. Thuật toán điều khiển
Sơ đồ thuật toán:
2. Chương trình điều khiển.

Chú ý: Do chọn điện áp tham chiếu cho ADC là 1V (tức là đặt vào chân Vref/2 là
0.5V) nên giá trị tín hiệu số sau khi chuyển đổi ADC đúng bằng 10 lần giá trị tương
tự đặt ở 2 đầu que đo.
;Code cho 89C51:
11
;code đo điện áp 1 chiều từ -5 đến -24V
#include <sfr51.inc>
ORG 0H
;tạo nút bắt đầu
START:JB P3.7,START ;đợi đến lúc nút bắt đầu được ấn xướng thấp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;khởi tạo truyền thông nối tiếp
MOV TMOD,#20H ;chọn timer 1 chế độ 2
MOV TH1,#-3 ;chọn tốc độ baud là 9600
MOV SCON,#50H ;tạo khung dữ liệu
SETB TR1 ;khởi động timer 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;lấy 5 tín hiệu liên tiếp cách nhau khoảng 10ms
MOV R7,#5 ;gán biến đếm bằng 5
MOV R0,#40H ;chọn vị trí lưu dữ liệu từ vị trí 40h
LAY_TH: ;lấy tín hiệu từ P1
MOV P1,#0FFH ;chọn P1 là cổng đầu vào
ACALL ADC ;gọi chương trình con chuyển đổi ADC
MOV A,P1 ;chuyển P1 vào A
MOV @R0,A ;lưu A vao ô nhớ 40h
INC R0 ;tăng địa chỉ ô nhớ
ACALL DELAY_1OMS ;trễ khoảng 10ms
SETB P0.0 ;đưa chân INTR lên cao để sẵn sàng chuyển đổi lần sau
DJNZ R7,LAY_TH ;quay lại lấy tiếp tín hiệu khi R7 chưa bằng 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;cộng 5 tín hiệu lấy được lưu vào R7-R6
CLR A ;xóa A
MOV R0,A ;xóa R0
MOV R1,A ;xóa R1
MOV R7,A ;xóa R7
12
MOV R4,#5 ; gán biến đếm bằng 5
MOV R1,#40H ;cộng từ ô nhớ 40h
CONG:ADD A,@R1 ;cộng giá trị ô nhớ mà R0 chỉ đến vào A
JNC NEXT ;nếu cờ CY bằng 0 khi nhảy đến NEXT
INC R7 ;tăng R7- byte cao
NEXT:INC R0 ;tăng địa chỉ ô nhớ
DJNZ R4,CONG ;quay lại cộng tiếp
MOV R6,A ;chuyển byte thấp vào R6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;lấy kết quả trung bình của 5 lần đo, số bị chia trong R7-R6,số chia lưu trong B
;kết quả sau phép chia có phần nguyên lưu trong R7-R6,phần dư lưu trong B
MOV B,#5 ; gán số chia bằng 5
DIV_16_8:
PUSH 02H
PUSH ACC
MOV R2,#16 ;gán biến xoay bằng 16
CLR A ;xóa A
DEVIDE:
XCH A,R6 ;đổi giá trị A và R6 cho nhau
CLR C ;xóa cờ CY
RLC A ;xoay trái A theo CY
XCH A,R6 ; đổi giá trị A và R6 cho nhau
XCH A,R7 ; đổi giá trị A và R7 cho nhau
RLC A ; xoay trái A theo CY

XCH A,R7 ; đổi giá trị A và R7 cho nhau
RLC A ; xoay trái A theo CY
CJNE A,B,NOT_EQUAL ;kiểm tra xem A có bằng B hay không
SJMP A_GREATER_EQ_B ;nhảy đến nhãn A_GREATER_EQ_B
NOT_EQUAL: JC BELOW ;nếu cờ CY được bật lên thì nhảy tới BELOW
A_GREATER_EQ_B:
13
SUBB A,B ;trừ A cho số chia
XCH A,R6 ; đổi giá trị A và R6 cho nhau
ORL A,#1 ;thực hiện phép OR A với 1
XCH A,R6 ; đổi giá trị A và R6 cho nhau
BELOW:DJNZ R2,DEVIDE ;quay lại DEVIDE nếu R2 chưa bằng 0
XCH A,B ;đổi giá trị A,B cho nhau
POP ACC
POP 02H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;lấy phần dư nhân 10 rồi chia cho 5 để lấy số thập phân thứ 2 sau dấu phẩy
MOV A,B ;chuyển số dư từ phép chia trung bình vào A
MOV B,#10 ;gán B bằng 10
MUL AB ;nhân số dư với 10
MOV B,#5 ;gán B bằng 5
DIV AB ;chia A cho 5
MOV R0,A ;lưu phần nguyên vào R0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;chú ý phần nguyên của kết quả trung bình chỉ tồn tại trong R6 vì R7 luôn bằng 0
do phần nguyên phép chia luôn nhỏ hơn hoặc bằng 255.
;kiểm tra xem kết quả trung bình có lớn hơn 50 hay không, tức là kt xem có nằm
trong dải đo áp không
CLR CY ;xóa cờ CY
MOV A,R6 ;chuyển phần nguyên của phép chia trung bình vào A

SUBB A,#50 ;trừ A cho 50
JNC KT1 ;nếu cờ CY bằng không, tức là kết quả phép trừ dương thì kiểm
tra tiếp
SJMP TRUYEN_DI ;nếu kết quả phép trừ âm thì tới nhãn TRUYEN_DI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
;kiểm tra kết quả trung bình có nhỏ hơn 240 không, tức là kt xem có nằm trong dải đo
áp không.
KT1:MOV A,#240 ;gán A bằng 240
SUBB A,R6 ;trừ A cho kết quả trung bình
JNC HIEN_THI ;nếu cờ CY vẫn bằng 0,tức là kết quả của phép trừ dương thì tới
nhãn HIEN_THI.
SJMP TRUYEN_DI ;nếu ngoài dải đo thì tới nhãn TRYEN_DI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HIEN_THI:
;hiển thị chữ: "DIEN AP LA :"
CLR A ;xóa A
MOV DPTR,#MY_DATA ;gán DPTR bằng MY_DATA
LAP:MOVC A,@A+DPTR ;lấy kí tự từ không gian nhớ của trương trình
ACALL TRANS ;truyền đi
INC DPTR ;tăng DPTR
JZ HTT ;kiểm tra nếu A bằng 0 thì nhảy tới HTT
CLR A ;xóa A
SJMP LAP ;quay lại LAP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;hiển thị kết quả đo được
HTT:MOV A,#'-' ; gán A bằng mã ASCII của '-'
ACALL TRANS ;truyền đi
MOV A,R6 ;chuyển giá trị trung bình của điện áp vào A
ACALL convert_HEXA_DEC ; gọi chương trình chuyển đổi hexa sang thập phân

ACALL CHUYEN_SO_THU_1; gọi chương trình chuyển số hàng chục sang
ASCII
ACALL TRANS ;truyền đi
ACALL CHUYEN_SO_THU_2 ; gọi chương trình chuyển số hàng đơn vị sang
ASCII
ACALL TRANS ; truyền đi
15
MOV A,#'.' ; gán A bằng mã ASCII của '.'
ACALL TRANS ; truyền đi
ACALL CHUYEN_SO_THU_3 ; gọi chương trình chuyển số hàng thập phân 1
sang ASCII
ACALL TRANS ; truyền đi
ACALL CHUYEN_SO_THU_4 ; gọi chương trình chuyển số hàng thập phân 2
sang ASCII
ACALL TRANS ; truyền đi
MOV A,#'V' ; gán A bằng mã ASCII của chữ 'V'
ACALL TRANS ; truyền đi
SETB P0.1 ;đưa chân WR của ADC0804 xuống thấp
SJMP KET_THUC ;nhảy đến kết thúc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;chuyển hexa sang thập phân
convert_HEXA_DEC:
MOV B,#10 ;gán B bằng 10
DIV AB ;chia phần nguyên giá trị trung bình của điện áp cho 10
MOV R7,B ;lưu phần dư vào R7
MOV B,#10 ; gán B bằng 10
DIV AB ;chia tiếp phần nguyên cho 10
MOV R6,B ; lưu phần dư vào R6
MOV R5,A ;lưu phần nguyên vào R5
CLR A ;xóa A

RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;chuyển số hàng chuc sang mã ASCII
CHUYEN_SO_THU_1:
MOV A,R5 ;chuyển chữ số hàng chục vào A
ORL A,#30H ;cộng A với 30h để chuyển sang ASCII
16
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; chuyển số hàng đơn vị sang mã ASCII
CHUYEN_SO_THU_2:
MOV A,R6 ; chuyển chữ số hàng đơn vị vào A
ORL A,#30H ; cộng A với 30h để chuyển sang ASCII
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;chuyển chữ số thập phân 1 sang mã ASCII
CHUYEN_SO_THU_3:
MOV A,R7 ; chuyển chữ số hàng thập phân 1 vào A
ORL A,#30H ; cộng A với 30h để chuyển sang ASCII
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; chuyển chữ số thập phân 2 sang mã ASCII
CHUYEN_SO_THU_4:
MOV A,R0 ; chuyển chữ số hàng thập phân 2 vào A
ORL A,#30H ; cộng A với 30h để chuyển sang ASCII
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;hiển thị khi không thuộc dải đo
TRUYEN_DI:
CLR A ;xóa A

MOV DPTR,#KHONG_HOP_LE ;gán DPTR bằng KHONG_HOP_LE
LAP1:MOVC A,@A+DPTR ; lấy kí tự từ không gian nhớ của trương trình
ACALL TRANS ;truyền đi
INC DPTR ;tăng DPTR
JZ KET_THUC ; kiểm tra nếu A bằng 0 thì nhảy tới KET_THUC
CLR A ;xóa A
SJMP LAP1 ;quay lại hiển thị ký tự tiếp theo
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;gửi ra truyền thông nối tiếp
TRANS:MOV SBUF,A ;chuyển A vào SBUF
HERE: JNB TI,HERE ;đợi cờ TI bật lên
CLR TI ;xóa cờ TI
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;tạo trễ khoảng 10ms
DELAY_1OMS:
MOV R1,#100 ; gán R1 bằng 100
DELAY:MOV R2,#100 ; gán R2 bằng 100
HERE1: DJNZ R2,HERE1 ;đợi khi R2 bằng 0
DJNZ R1,DELAY ;quay lại DELAY nếu R1 chưa bằng 0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;chuyển đổi ADC
ADC:CLR P0.1 ;đưa chân WR xuống thấp
SETB P0.1 ;đua chân WR lên cao để bắt đầu chuyển đổi
DOI:JB P0.2,DOI ;đợi tới khi chuyển đổi xong
CLR P0.0 ;đưa chân RD xuống thấp cho phép đọc dữ liệu
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;kết thúc
KET_THUC:
S :SJMP S ;lặp vô hạn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
18
4.Kết luận:
Ưu điểm: Sau khi tiến hành mô phỏng ta thấy kết quả đo khá chính xác. Trong
điều kiện lý tưởng như trong khi mô phỏng, vôn mét có cấp chính xác là 0.005.
Nhựợc điểm :
- Để tạo sự chính xác trong kết quả đo ta đã chọn điện áp tham chiếu cho ADC
là 1V. Khi đó ta có kích thước bước là 1/256 = 3.9 mV. Với kích thước bước
khá nhỏ như trên thì mạch đo rất dễ chụi ảnh hưởng của nhiễu bên ngoài.
- Việc tạo ra điện áp tham chiếu chuẩn 0,5V đưa vào chân Vref của ADC0804 là
khá khó khăn trong thực tế.
- Sau mỗi lần đo ta cần reset lại mạch
* Vì thời gian hạn chế nên em chưa tính toán đến sự ảnh hưởng của môi trường ngoài
nên lựa chọn điện áp tham chiếu cho ADC chưa phù hợp và còn chưa thuận tiện trong
quá trình sử dụng. Nếu có thời gian em sẽ tính toán kỹ hơn để mạch đo hoạt động tin
cậy hơn.
5. Tài liệu tham khảo
[1]. The 8051 Microcontroller and Embedded , Systems: Using Assembly and C
Tác giả:Chung-Ping Young
[2] Bài giảng: kỹ thuật đo lường – Trường đại học Hàng hải
19

×