1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đo điện áp hiển thị bằng Visual Basic 6

19 1,7K 44

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 712,12 KB

Nội dung

Đo lường sử dụng vi điều khiển 89s52 để đo điện áp DC ở 2 mức điện áp ... kết quả hiển thị trên giao diện thiết kế bằng VB6

Trang 1

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

Trang 2

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

II Hình dạng sản phẩm thưc tế hoàn thành……… 19

III.Tóm tắt bản báo cáo, những vấn đề chưa làm được……….…… 20

LỜI NÓI ĐẦU

Sự ra đời của các bộ vi xử lí nói chung, các bộ vi điều khiển nói riêng đã tạo ra

một bước ngoặt lớn trong việc thiết kế các hệ thống xử lí thông tin, đo lường điều khiển

và truyền thông Kết quả là đã tạo ra được những sản phẩm như máy ảnh số,máy chơi nhạc MP3, đầu đĩa DVD, các bộ biến tần, PLC…ngày càng rẻ hơn, nhỏ gọn hơn, thông minh hơn và tiện dụng hơn.

Trang 3

Hơn nữa , kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh vực khác nữa So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất nhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển Nên rất tiện dụng và cơ động

Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, chúng

em chỉ dùng vi đi ều khiển để đo đi ện áp, hiển thị và vẽ đồ thị điện áp lên máy tính.

Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vi điều khiển trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến.

Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót Vì vậy nhóm rất mong được sự góp ý của thầy cô và các bạn.

Chương I

Mô tả ý tưởng,mô hình ý niệm,xây dựng sơ đồ khối

I Sơ đồ khối tổng quát,sơ đồ nguyên lý và mạch in

1.Sơ đồ khối tổng quát:

Trang 4

2 Sơ đồ nguyên lý:

KHỐI TÍN

HIỆU VÀO

KHỐI XỬ LÝ TRUNG TÂM: 8051

KHỐI

CHUYỂN ĐỒI

TƯƠNG TỰ

SANG SỐ:

ADC0804

KHỐI NGUỒN

ỔN ÁP SỬ DỤNG IC7805 KHỐI GIAO TIẾP VỚI MÁY TÍNH

Trang 5

3 sơ đồ mạch in :

Trang 6

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

 Bốn băng thanh ghi

 Con trỏ ngăn xếp

 Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash

 Bộ nhớ dữ liệu( RAM) gồm 256 byte

 Bộ UART, có chức năng truyền nhận nối tiếp

 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện

 Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong

 Bộ lập trình( ghi chương trình lên Flash ROM) cho phép người sử dụng có thể nạp các chương trình cho chíp mà không cần các bộ nạp chuyên dụng

 Bộ chia tần số với hệ số chia là 12

 4 cổng xuất nhập với 32 chân

b, chức năng các chân của AT89S52

 Port 0( P0.0=>P0.7)

Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ được sử dụng khi 89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO…

 Port 1( P1.0=>P1.7)

Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác Port1 có thể xuất nhập theo bit và theo byte

 Port 2( P2.0=>P2.7)

Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài

Trang 7

Port 3

Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau:

 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: nối với các chân dig1=>dig 4 và chân dp của LED nhằm mục đích điều khiển hiển thị LED +P3.0=>P3.2 : được nối với switch kép để điều khiển chọn thang đo phù hợp

2.2 Khối tín hiệu vào:

Đây là khối làm nhiệm vụ nhận tín hiệu điện áp vào , chia thang đo điện áp trước khi tiến hành chuyển đổi

a, Sơ đồ cấu tạo

Trang 8

b Công tắc chuyển mạch

- Làm nhiệm vụ chọn thang đo ở 3 mức: 0-5V; 0-25V

- Các giá trị phân áp:

+ Mức 1 (0-5V):

Ko dùng trở phân áp:

Ur = Uv

+ Mức 3 (0-25V):

Phân áp bởi 2 điện trở R4=100K và R5=10K

Ur = Uv.R5/(R4+R5) = 10Uv/(100+10) => Ur ≈ 0,0909Uv

c IC LM358

LM358 gồm có 2 con khuếch đại thuật toán:

Con thứ 1: chân 2 ,3 vào, chân 1ra

Con thứ 2: chân 5,6 vào, chân 7 ra

Công dụng trong mạch: làm bộ đệm tín hiệu trước khi vào ADC, nhằm mục đích bảo vệ ADC

Trang 9

2.3 Bộ chuyển đổi tương tự-số: ADC 0804:

a Cấu tạo:

ADC 0804 là một bộ chuyển đổi tương tự số Gồm có 20 chân

DB0-DB7: là 8 chân ra dữ liệu

RD: lối vào đọc

WR :lối vào ghi

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

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ở

Trang 10

(như hình vẽ) Khi ấy tần số được xác định bằng biểu thức:

f = 1/(1,1RC)

Với R=10 k, C=150pF và tần số f=606 kHz và thời gian chuyển đổi là 110 s

Ngắt INTR (Interupt)

Chân số 5, là chân ra tích cực mức thấp Bình thường chân này ở trạng thái cao và khi

việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu chuyển đổi

sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS = 0 v à gửi một xung cao

xuống thấp tới chân RD để đưa dữ liệu ra

Vin (+) và Vin (-)

Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó Vin = Vin (+) – Vin (-) Thông thường Vin (-) được nối tới đất và Vin (+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạng số

Vcc

Chân số 20, là chân nguồn nuôi +5V

Vref/2

Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu Nếu chân này

hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 - +5V Tuy nhiên, có

nhiều ứng dụng mà đầu vòa tương tự áp đến Vin khác với dải 0 - +5V Chân Vref/2

được dùng để thực hiện các điện áp đầu ra khác 0 - +5V

Bảng quan hệ điện áp Vref/2 với Vin

Vref/2 (V) Vin (V) Kích thước bước (mV)

Trang 11

D0 - D7

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:

IC chuyển đổi Max 232

Trang 12

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

Sơ Đồ Nối MAX 232

2.5 Khối ổn áp dùng IC 7805:

Trang 13

III Phần hiển thị trên Visual Basic 6.0

3.1: Sơ lược về Visual Basic 6.0

Visual Basic 6.0 (VB6), là 1 ngôn

ngữ lập trình hướng đối tượng,

trực quan trên môi trường

Windown VB cung cấp 1 bộ công

cụ hoàn chỉnh để đơn giản hóa

việc triển khai lập trình ứng dụng

Có thể nói đây là cách nhanh nhất

và tốt nhất để học và lập trình ứng

dụng trên Windown

Phần “Visual – trực quan”

đề cập đến phương pháp được sử

dụng để tạo giao diện người sử

dụng Người lập trình có thể dùng

các công cụ có sẵn của VB để

“vẽ” giao diện chương trình của mình theo ý muốn Việc thiết kế giao diện có thể hình dung đơn giản như việc ta dùng phần mềm Paint trên Windown

Phần “Basic” đề cập đến ngôn ngữ BASIC (Beginers All-Purpose Symbolic Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được viết ra cho các khoa học gia, những người

ko có thời gian học lập trình điện toán sử dụng Tuy nhiên, ngôn ngữ Basic trong VB đã được cải tiến để phù hợp với phong cách lập trình hiện đại

Visual Basic có rất nhiều phiên bản, trong đó 2 phiên bản tốt nhất là VB6.0 và VB.Net VB6 phát triển ứng dụng dựa trên công nghệ COM (Common Object Model), một công nghệ được phát triển ít nhất đến năm 2000 VB.Net dựa trên nền tảng công nghệ Net framework, một công nghệ hiện đại và đang rất được ưu chuộng

3.2: Giao diện thiết kế trên VB6

Trang 14

Chương II Quá trình thực hiện

I Lập trình cho vi điều khiển:

#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;

void delay(unsigned long int t)

{

int a;

for(a=0; a<t; a++)

{}

}

void biendoi()

{

int i;

W_R=1;

Trang 15

delay(1000);

W_R=0;

while(!INT_A);

for(i=0; i<5; i++)

delay(3300); QuaAp=1; delay(3300); }

}

}

void main()

{

SCON=0x52;

TMOD=0x20;

TH1=TL1=-3;

TR1=1;

P2=0xff;

{

while(1)

}

}

2 Code VB6

Dim x1, y1, counter1 As Double

Dim array_x1(10000) As Integer

Dim array_y1(10000) As Integer

Dim ve As Boolean

Dim temp, volt As Double

Private Sub Command1_Click()

ve = True

End Sub

Private Sub Command2_Click()

ve = False

End Sub

Private Sub Command4_Click()

Trang 16

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

kt = MSComm1.Input

temp = Asc(kt)

If temp = 255 Then

Text1.Text = "MAX"

Text2.Text = "MAX"

ElseIf Combo1.ListIndex = 0 Then

Text1.Text = Str(temp)

volt = (temp * 5) / 255

y = volt * 1000

x = y / 1000

Text2.Text = CStr(x)

Else

Text1.Text = CStr(temp)

volt = (temp * 25) / 255

y = volt * 1000

x = y / 1000

Text2.Text = CStr(x)

End If

End If

End Sub

Private Sub Timer1_Timer()

Label1.Caption = "Thoi gian: " & Format(Now, "dd-mm-yyyy hh:nn:ss")

If ve = True Then

vedothi (volt * 4)

End If

Trang 17

End Sub

Public Sub vedothi(t As Double)

counter1 = counter1 + 1

x1 = x1 + 72

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

Trang 18

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

- Có thể dùng dòng vi điều khiển AVR co tích hợp sẵn tính năng chuyển đổi ADC để giảm chi phí sản phẩm

Trang 19

Lời cảm ơn

Trong thời gian thực hiện bài tập lớn “ Thiết kế đồng hồ đo

điện áp hiển thị lên máy tính”, chúng tụi đã nhận đợc sự hớng dẫn, chỉ bảo và giúp đỡ tận tình của các thầy giáo trong trường Vậy cho phép chúng tôi đợc bày tỏ lòng biết ơn sâu sắc tới sự giúp đỡ đó.

Đặc biệt chúng tôi xin chân thành cảm ơn cụ giáo - Thạc sĩ: Vũ Thị Thu Hương - Ngời đã trực tiếp hớng dẫn và tạo mọi điều kiện thuận lợi giúp đỡ chúng tôi hoàn thành tốt đồ án này

Hà nội, ngày 18 tháng 01 năm 2014

Nhóm thực hiện

Ngày đăng: 26/03/2014, 20:40

HÌNH ẢNH LIÊN QUAN

2. Sơ đồ nguyên lý: - Đo điện áp hiển thị bằng Visual Basic 6
2. Sơ đồ nguyên lý: (Trang 4)
3. sơ đồ mạch in : - Đo điện áp hiển thị bằng Visual Basic 6
3. sơ đồ mạch in : (Trang 5)
Bảng quan hệ điện áp Vref/2 với Vin - Đo điện áp hiển thị bằng Visual Basic 6
Bảng quan hệ điện áp Vref/2 với Vin (Trang 10)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w