BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA : ĐIỆN TỬ
ĐỒ ÁN
MÔN
HỌC
ĐỀ TÀI:
THIẾT KẾ
BỘ ĐO
ĐIỆN ÁP
HIỂN THỊ
TRÊN
MÁY
TÍNH.
Giáo viên hướng dẫn: Nhóm sinh viên thực hiện:
Vũ Thị Thu Hương 1. Nguyễn Xuân Khánh
2.Nguyễn Viết Hưng
3.Bùi Minh Đức
Mục lục
Trang
Mục lục……………………………………………………………………………2
Lời nói đầu……………………………………………………………………… 2
Chương I
Mô tả ý tưởng: mô hình ý niệm, xây dựng sơ đồ khối………………… 4
I. Sơ đồ khối,sơ đồ mạch nguyên lý và mạch in …………… 4
II. Các vi mạch chính sử dụng trong từng khối và nguyên lý hoạt động
của từng khối…………………………………………………………….….6
III. Phần hiển thị trên Visual Basic 6.0
Chương II
Quá trình thực hiện…………………………………………………………… 17
I. Code lập trình C cho vi điều khiển…………….……………………… 18
VỚI MÁY TÍNH
KHỐI CHUYỂN
ĐỒI TƯƠNG
TỰ SANG SỐ:
ADC0804
KHỐI XỬ LÝ TRUNG
TÂM: 8051
KHỐI TÍN HIỆU
VÀO
KHỐI NGUỒN
ỔN ÁP SỬ DỤNG
IC7805
3. sơ đồ mạch in :
5
II . Các vi mạch chính sử dụng trong từng khối và nguyên lý hoạt động
của từng khối
1. Các vi mạch chính sử dụng trong từng khối
1. Khối xử lý trung tâm: AT89S52
2. Khối tín hiệu vào:
3. Khối chuyển đổi: ADC 0804
4. Khối giao tiếp máy tính
5. Khối ổn áp: IC7805
2. Cấu tạo và nguyên lý hoạt động cơ bản của từng vi mạch
2.1 Vi điều khiển AT89S52:
2.1.2 cấu tạo và chức năng các khối của AT89S52.
• CPU( CPU centralprocessing unit) bao gồm:
Thanh ghi tích lũy A
Thanh ghi tích lũy phụ B
Đơn vị logic học (ALU)
Thanh ghi từ trạng thái chương trình
P3.4 TO Ngõ vào của Timer/counter0
P3.5 T1 Ngõ vào của Timer/counter1
P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài.
P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài.
Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài.
Chân ALE.
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 của 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ư 7473.
Chân /EA.
Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài. EA=1 thì thực hiện
chương trình trong RAM nội. EA=0 thực hiện ở RAM ngoài.
RST( reset)
Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ được khởi động lại thiết lập
ban đầu.
XTAL1, XTAL2
2 chân này được nối song song với thạch anh tần số max=33 Mhz. Để tạo dao động cho bộ vi
điều khiển.
Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40.
2.1.3 nguyên lý hoạt động
+Chân 9 được nối với mạch reset. Khi nhấn SW1 thì bộ vi điều khiển sẽ được khởi động lại từ
đầu.
+điện trở băng U1: có tác dụng làm điện trở kéo lên nguồn.
+ chân 18-19 được nối // với thạch anh 12Mhz. mạch có nhiệm vụ tạo dao động cho vi điều
khiển.
+chân P3.5, P3.6, P3.7: 3 chân này được nối với lần lượt 3 chân của ADC (chân RD (Read), chân
WR (Write) và chân Ngắt INTR (Interupt)): Nhiệm vụ điều khiển hoạt động của bộ chuyển
đổi số - tương tự.
+ chân P1.0=>P1.7. giao tiếp với ADC0804. Cổng P1 này có nhiệm vụ đọc điện áp thu được từ
bộ chuyển đổi.
+P0.0=>P0.6: Lần lượt được nối với các chân a,b,c,d,e,f,g của LED. Và các chân P2.3 => P2.7:
INTR: lối ra ngắt.
CLKR/CLKIN: các lối vào điều khiển xung nhịp.
VIN: lối vào analog dương
b. sơ đồ:
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC08xx 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 thấp lên cao 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 gian.
9
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ở
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.
.CÁC BƯỚC CỦA QUÁ TRÌNH CHUYỂN ĐỔI.
• Đặt WR =RD=1;
• Bắt đầu biến đổi. Đặt WR=0, trễ( )ms.
• Đặt lại WR=1;
• Phát hiện điểm kết thúc của quá trình biến đổi khi INTR xuống mức thấp. (được
sử dụng bởi ngắt)
• Đặt RD=0 và đọc dữ liệu từ DB0=>DB7.
• Đặt RD=1. => kết thúc chu trình.
2.4. Khối giao tiếp máy tính
Trên các máy tính sản xuất gần đây, cổng COM dần biến mất và được thay thế bằng
cổng các cổng USB. Trong khi 89S52 lại ko thể giao tiếp trực tiếp với máy tính thông qua chuẩn
USB. Do đó, để thiết bị có thể giao tiếp với máy tính, ta phải dùng thêm thiết bị chuyển đổi USB
sang COM.
Sơ đồ cấu tạo:
11
IC chuyển đổi Max 232
Lí do điện áp giữa cổng Com máy tính và điện áp của vi điều khiển hoạt động ở 2 mức khác nhau
( máy tính là 12v trong khi vi điều khiển chỉ co 5v). Do vậy cần phải có 1 ic trung gian để giúp
chúng giao tiếp được với nhau.
12
Sơ Đồ Nối MAX 232
2.5 Khối ổn áp dùng IC 7805:
LED đơn D2 làm nhiệm vụ báo hiệu có nguồn điện vào mạch
III. Phần hiển thị trên Visual Basic 6.0
#include <REGX51.H>
#include<math.h>
#include<stdio.h>
#include<string.h>
sbit INT_A=P0^3;
sbit W_R=P0^4;
sbit R_D=P0^5;
sbit QuaAp=P1^5;
int ADC;
14
void delay(unsigned long int t)
{
int a;
for(a=0; a<t; a++)
{}
}
void biendoi()
{
int i;
W_R=1;
R_D=0;
delay(1000);
W_R=0;
while(!INT_A);
{
ADC=P2;
if(ADC==255)
{
for(i=0; i<5; i++)
{
Private Sub Command1_Click()
ve = True
End Sub
Private Sub Command2_Click()
ve = False
End Sub
Private Sub Command4_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End
End Sub
Private Sub Form_Load()
Combo1.AddItem "Thang 5", 0
Combo1.AddItem "Thang 25", 1
MSComm1.CommPort = 3
MSComm1.Settings = "9600,N,8,1"
Me.MSComm1.RThreshold = 1
Me.MSComm1.SThreshold = 1
MSComm1.InputLen = 1
MSComm1.InputMode = 0
MSComm1.PortOpen = True
x1 = 2160
counter1 = 0
End Sub
Private Sub MSComm1_OnComm()
Dim kt As String
Dim y As Integer
Dim x As Double
If MSComm1.CommEvent = comEvReceive Then
y1 = Int(9000 - t * (7200 / 100))
array_x1(counter1) = x1
array_y1(counter1) = y1
Circle (x1, y1), 20, vbRed
Line (x1, y1 + 20)-(x1, 9000), &H8000&
If counter1 >= 150 Then
xoa_manhinh
End If
End Sub
Public Sub xoa_manhinh()
Dim i As Integer
Dim k As Integer
k = counter1
For i = 0 To k
x1 = array_x1(i)
y1 = array_y1(i)
Circle (x1, y1), 20, &H8000000F
Line (x1, y1 + 20)-(x1, 9000), &H8000000F
Next
counter1 = 0
x1 = 2160
End Sub
3. Chạy mô phỏng trên Proteus và Visua Basic
17
4. Những điều chưa làm được
- Mạch điện chưa đo được điện áp xoay chiều.
- Chi phi tốn kém do phải dùng cả vi điều khiển 89s52 và ADC 0804.
5. Hướng cải tiến, nâng cấp sản phẩm
- Bằng cách sử dụng thêm diode lắp thêm vào mạch thì có thể đo được cả dòng điện xoay
chiều.