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

Thiết kế vôn kế với 8051

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 (65.88 KB, 4 trang )

Báo cáo Đề tài.

Sơ đồ thiết kế phần cứng:

L1

L2

L3

l1

l2

l3

D1
vcc
LED-GREEN

R2
330

1

J2

U1

VI


DIODE

VO

3

X1

C2

19

33p

CRYSTAL

18

XTAL1
XTAL2

2

2
1

GND

D3


CONN-H2

R1

9

10k
K1

RST

C3

K1

29
30
31

10u

PSEN
ALE
EA

U2
cs
rd
wr


C4
R3

150p

10k

+PROBE

int

1
2
3
4
5
8
10
9
19
6
7

R4

CS
RD
WR
CLK IN
INTR

A GND
D GND
VREF/2
CLK R

VCC
DB0(LSB)
DB1
DB2
DB3
DB4
DB5
DB6
DB7(MSB)

20
18
17
16
15
14
13
12
11

VIN+
VIN-

1
2

3
4
5
6
7
8

P1.0/T2
P1.1/T2EX
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13

P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD

com

a
b
c
d
e
f
g
dp

com

R6
R7
R8
10k
R9
10k

R10
10k
R11
10k
R12
10k
R13
10k

39
38
37
36
35
34
33
32

10k
10k

21
22
23
24
25
26
27
28
10

11
12
13
14
15
16
17

a
b
c
d
e
f
g
dp

a
b
c
d
e
f
g
dp

33p
7805

com


C1

U3

R14
4k7

Q1
PNP

Q2

R15
4k7

PNP

R16

Q3
PNP

4k7

int
cs
wr
rd


AT89C52

ADC0804

100k

R5
200k

-PROBE

C5
33p

Phần xử lý trung tâm điều khiển bởi VDK AT89S52.
Phần thu nhận, chuyển đổi số tơng tự dùng IC ADC0804.
Dải thông của ADC0804 là 0-5v. Để đo điện áp cao hơn ta dùng điện trở để phân áp. Với
kiểu bố trí điện trở phân áp nh trên hình ta có:
Uvmax = UADCmax.(R4+R5)/R4
Với thông số nh hình vẽ ta có Uvmax = 16V.
Độ phân giải là: 19/256 = 0.0625V


Phần hiển thị dùng 3 LED 7 thanh. 3 LED này dùng chung cổng dữ liệu P0, thực hiện
thuật toán quét led để hiển thị. Kích dòng cho các LED này là 3 Tranzitor NPN A1015.
Thuật toán quét 3 LED 7 thanh:
Giả sử ta cần hiển thị số ABC lên 3 LED 7 thanh:
Đầu tiên đa mã 7 đoạn hiển thị ký tự A lên P0, mở cổng P2 thích hợp để chỉ mở
Tranzitor điều khiển LED thứ 3 sáng. Nh vậy dữ liệu trên Data Bus thuộc về LED 3. Sau đó đa
mã 7 đoạn hiển thị ký tự B lên P0.... cứ xoay tròn nh vậy trong vòng lặp tốc độ cao ta hiển thị đợc

số cần dùng.
Thuật toán giải mã tín hiệu:
Với độ phân giải là 0.0625 ta suy ra điện áp đo đợc sau khi qua biến đổi ADC là:
ABC = Adc*0.0625 (Trong đó ABC là giá trị điện áp, adc là giá trị giải mã đầu ra của
ADC0804).
Để thu đợc từng số ABC riêng rẽ ta có:
A = ABC chia lấy nguyên cho 100;
B = (ABC A*100) chia lấy nguyên cho 10;
C = (ABC A*100 B*10).
Sau khi thu đợc A,B,C ta dễ dàng hiển thị đợc trên LED 7 đoạn.
Sau đây là phần mềm điều khiển:

#include<reg51.h>
sbit rd=P3^7;

//Read signal P3.7

sbit wr=P3^6;

//Write signal P3.6

sbit cs=P3^5;

//Chip Select P3.5

sbit intr= P3^4;

//INTR signal P3.4

int array[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};

sbit dp=P0^7;
sbit led0=P2^0;
sbit led1=P2^1;


sbit led2=P2^2;
unsigned int adc_avg,adc;
void delay()
{
unsigned int i;
for(i=1;i<=1000;i++);
}
void read()
{
wr=0;
wr=1;
while(intr);
rd=0;
adc_avg=P1;
rd=1;
}
void main()
{
int i;
char a,b,c;
cs=0;
led0=led1=led2=0;
while(1)
{
read();

for(i=1;i<=100;i++)


{
adc=adc_avg*10*0.0625;
a=adc/100;
b=(adc-a*100)/10;
c=(adc-a*100-b*10);
led0=0;
P0=array[a];
delay();
led0=1;
led1=0;
P0=array[b];
dp=0;
delay();
led1=1;
dp=1;
led2=0;
P0=array[c];
delay();
led2=1;
}
}
}



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×