Chương I.Tổng quan về các phương pháp đo điện áp 1 chiều 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: - 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:
Trang 1TRƯỜ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Ỹ THUẬT VI XỬ LÝ
Đề tài số (09): Thiết kế mạch đo điện áp 1 chiều trong dải
từ +5V đến +24V hiển thị kết quả trên máy tính
GIÁO VIÊN HƯỚNG DẪN : NGUYỄN VĂN TIẾN
SINH VIÊN THỰC HIỆN : ĐỖ VĂN HÙNG
LỚP : ĐTĐ50 – ĐHT1
Hải Phòng,tháng 5 năm 2012
M C L C ỤC LỤC ỤC LỤC
Trang 2Nội dung TrangChương I.Tổng quan các phương pháp đo
điện áp một chiều
2
Trang 3Chương I.Tổng quan về các phương pháp đo điện áp 1 chiều
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ộcvào việc biến đổi người ta chia thành:
- 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ờigian 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:
Trang 4Hình 1: Vôn mét chuyển đổi thời gian một nhịpTrê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)
- 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ầnkhở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ôngkhoá (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 độngtrigơ 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ácmá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ằngphương pháp tích phân (Hình 2):
Trang 5Khâ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átxung 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ù ápU1 (đây là mạch phóng điện qua tụ C) trong khoảng thời gian Tk (từ t1 đếnt2) 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.fxkhô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%
Trang 6Chương II Cơ sở thiết kế phần cứng
1 Sơ đồ khối chức năng
+ 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ínhiệ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
Trang 7X2 RST
Hình 4+ Mạch biến đổi sơ cấp (mạch chia áp)
Vin ADC
Hình 5
Trang 8Do 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ở saocho Uvao/Ura=25.5/1 Do đó ta lựa chọn điện trở mạch chia áp
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
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ạoxung đồng hồ Để sử dụng máy tạo xung đồng hồ trong (cũng còn được gọi là máytạ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.s
Trang 9+ 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
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)
+ Lựa chọn phương pháp truyền thông
[1] Trang 301-306 Phương pháp truyền thông sử dụng ở đây là truyền thông nối tiếp
dị bộ.Trong phương pháp dị bộ, mỗi ký tự được bố trí giữa các bít bắt đầu (start) vàbít dừng Công việc này gọi là đóng gói dữ liệu Trong đóng gói dữ liệu đối vớitruyền thông dị bộ thì dữ liệu chẳng hạn là các ký tự mã ASCII được đóng gói giữamột bít bắt đầu và một bít dừng Bít bắt đầu luôn luôn chỉ là một bít, còn bít dừng
có thể là một hoặc hai bít Bít bắt đầu luôn là bít thấp (0) và các bít dừng luôn là cácbít cao (bít 1) Ví dụ, hãy xét ví dụ trên hình 7 trong đó ký tự “A” của mã ASCII (8bít nhị phân là 0100 0001) đóng gói khung giữa một bít bắt đầu và một bít dừng Lưu
ý rằng bít thấp nhất LSB được gửi ra đầu tiên
Trang 10Hình 7 : Đóng khung dữ liệu kí tự “A”
Trong truyền thông nối tiếp dị bộ thì các chíp IC ngoại vi và các modem có thể đượclập trình cho dữ liệu với kích thước theo 7 bít hoặc 8 bít Đây là chưa kể các bít dừngstop có thể là 1 hoặc 2 bít Trong khi các hệ ASCII cũ hơn (trước đây) thì các ký tự là
7 bít thì ngay nay do việc mở rộng các ký tự ASCII nên dữ liệu nhìn chung là 8 bít.Trong các hệ cũ hơn do tốc độ chậm của các thiết bị thu thì phải sử dụng hai bít dừng
để đảm bảo thời gian tổ chức truyền byte kế tiếp Tuy nhiên, trong các máy tính PChiện tại chỉ sử dụng 1 bít stop như là chuẩn
+ Lựa chọn chuẩn truyền thông
Thuật ngữ hiện nay phân chia thiết bị truyền thông dữ liệu thành một thiết bị đầucuối dữ liệu DTE (Data Terminal Equipment) hoặc thiết bị truyền thông dữ liệuDCE (Data Communication Equipment) DTE chủ yếu là các máy tính và các thiết bịđầu cuối gửi và nhận dữ liệu, còn DCE là thiết bị truyền thông chẳng hạn nhưcác modem chịu trách nhiệm về truyền dữ liệu Lưu ý rằng tất cả mọi định nghĩa vềchức năng các chân RS232 trong các bảng 1 và đều xuất phát từ gốc độ của DTE Kết nối đơn giản nhất giữa một PC và bộ vi điều khiển yêu cầu tối thiểu lànhững chân sau: TxD, RxD và đất như chỉ ra ở hình 7 Để ý rằng trên hình này thì cácchân TxD và RxD được đổi cho nhau
Hình 7: Sơ đồ đầu nối DB - 9 của RS232
Trang 11Bảng 1: Các tín hiệu của các chân đầu nối DB - 9 trên máy tính IBM PC.
Hình 8: Nối kết không modem
+ Nối ghép 8051 tới RS232
Chuẩn RS232 không tương thích với mức lô-gíc TTL, do vậy nó yêu cầu một bộ điềukhiển đường truyền chẳng hạn như chíp MAX232 để chuyển đổi các mức điện ápRS232 về các mức TTL và ngược lại Nội dung chính của phần này là bàn về nốighép 8051 với các đầu nối RS232 thông qua chíp MAX232 10.2.1 Các chân RxD vàTxD trong 8051
8051 có hai chân được dùng chuyên cho truyền và nhận dữ liệu nối tiếp Hai chânnày được gọi là TxD và RxD và là một phần của cổng P3 (đó là P3.0 và P3.1) chân
11 của 8051 là P3.1 được gán cho TxD và chân 10 (P3.0) được dùng cho RxD Cácchân này tương thích với mức lô-gích TTL Do vậy chúng đòi hỏi một bộ điềukhiển đường truyền để chúng tương thích với RS232 Một bộ điều khiển như vậy
là chíp MAX232
- Bộ điều khiển đường truyền MAX232
Vì RS232 không tương thích với các bộ vi xử lý và vi điều khiển hiện nay nên tacần một bộ điều khiển đường truyền (bộ chuyển đổi điện áp) để chuyển đổi các tín
Trang 12hiệu RS232 về các mức điện áp TTL sẽ được chấp nhận bởi các chân TxD và RxDcủa 8051 Bộ MAX232 chuyển đổi từ các mức điện áp RS232 sẽ về mức điện áp TTL
và ngược lại Một điểm mạnh của chíp MAX232 là nó dùng điện áp nguồng +5vcùng với điện áp nguồn của 8051 Hay nóic cách khác với nguồn điện áp nuối +5chúng ta mà có thể nuôi 8051 và MAX232 mà không phải dùng hai nguồn nuôi khácnhau như phổ biến trong các hệ thống trước đây
Bộ điều khiển MAX232 có hai bộ điều khiển thường để nhận và truyền dữ liệunhư trình bày trên hình 9 Các bộ điều khiển đường được 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 đối với TxD và RxD của 8051, còn cặp R2 và T2 thì chưa dùngđến Để ý rằng trong MAX232 bộ điều khiển T1 có gán T1in và T1out trên các chân
số 11 và 1 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ủaRS232
Bộ điều khiển đường R1 cũng có gán R1in 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 của đầu nối DBcủa RS232 và chân R1out (chân số 12) là ở phía TTL mà nó được nối tới chân RxDcủa bộ vi điều khiển, xem hình 9 Để ý rằng nối ghép modem khô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
Hình 9: a) Sơ đồ bên trong của MAX232
b) Sơ đồ nối ghép của MAX232 với 8051 theo moden không
Trang 13Bộ MAX232 đòi hỏi 4 tụ điện giá trị từ 1 đến 22μs.F Giá trị phổ biến nhất cho
các tụ này là 22μs.F
+ Hiển thị kết quả đo
Để có thể hiển thị kết quả đo trên PC khi mô phỏng ta sư dụng 2 phần mềm phụ trợ làtạo cổng COM ảo và tạo màn hình hiển thị
- Ta tạo 2 cổng COM ảo là cổng COM1 ( đựợc hiển thị trong Proteus) và 1 cổngCOM2 trong phần giả định màn hình máy tính Hecules Hai cổng COM nàyđược kết nối với nhau bằng VSPE:
Hình 10: Tạo kết nối cổng COM ảoGiao diện của phần mềm hiển thị giả định màn hình máy tính:
Trang 143.Sơ đồ nguyên lý:
Trang 16Chương III.Thiết kế phần mềm
1 Thuật toán điều khiển
Sơ đồ thuật toán:
Trang 172 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
;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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Trang 18;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
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 BMOV B,#5 ; gán số chia bằng 5
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
Trang 19RLC 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:
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ằmtrong 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
Trang 20JNC KT1 ;nếu cờ CY bằng không, tức là kết quả phép trừ dương thì kiểmtra tiếp
SJMP TRUYEN_DI ;nếu kết quả phép trừ âm thì tới nhãn TRUYEN_DI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;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ớinhã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
;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