thiết kế mô hình voltmet điện tử , hiển thị bằng led 7 đoạn - Pdf 13

Đồ án môn vi điều khiển
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: Vi Điều Khiển
Đề Tài: Thiết kế mô hình Voltmet điện tử , hiển thị bằng led
7 đoạn.
GVHD: Nguyễn Anh Dũng SVTH: Lê Thanh Bằng
Dơng Văn Quí
Ngô Gia Quý
File ớnh kốm mụ phng 002.rar
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
1
Đồ án môn vi điều khiển

Lời Nói Đầu

Ngày nay,các vi điều khiển đã thâm nhập vào mọi lĩnh vực vủa đời sống từ dân
sự ,quân sự đến an ninh quốc phòng,có mặt trong hầu hết các ứng dụng hàng ngày từ
những thiết bị nhỏ nh điện thoại di động,máy nhắn tin,trò chơi điện tử,các thiết bị gia
dụng(máy giặt,điều hòa,tủ lạnh.) đến những thiết bị lớn nh ôtô,tàu thủy,xe lửa,máy
bay,hệ thống mạng điện thoại,các bộ điều khiển tự động trong nhà máy,các bộ điều
chỉnh trong nhà máy điện hạt nhân,trong các hệ thống điều khiển ánh sáng
Với một loạt các ứng dụng thú vị trên,ở đây chúng em xin giới thiệu một ứng
dụng nhỏ dùng vi điều khiển 8051(cụ thể là vi điều khiển AT89S52) để thiết kế vôn
mét điện tử đo điện áp một chiều.Đây là một ứng dụng nhỏ của vi điều khiển nhng
thực tế sử dụng rất nhiều trong các hệ thống đo lờng điện,điện tử nh vôn mét, ampe
mét điện tửvv
Đề tài gồm 2 phần:
Phần 1:Cấu trúc vi điều khiển 8051
Phần 2: Thiết kế vôn mét điện tử dùng AT89S52

3 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và đếm sự kiện.
WDM( Watch Dog Timer) đợc dùng để phục hồi lại hoạt động của CPU khi nó bị treo
bởi một nguyên nhân nào đó. WDM ở AT89S52 gồm một bộ Timer 14 bít, một bộ
Timer 7 bít, thanh ghi WDTPRG( WDT programable) điều khiển Timer 7 bit và một
thanh ghi chớc năng WDTRST( WDM register). Bình thờng WDT không hoạt
động( bị cấm), để cho phép WDT, các giá trị 1EH và E1H cần phải đợc ghi liên tiếp
vào thanh ghi WDTRST. Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ đồng
hồ cho đến giá trị 16383 thì xảy ra tràn. Khi xảy ra tràn, chân RTS sẽ đợc đặt ở mức
cao trong thời gian 96.Tosc (Tossc=1/Fosc) và AT89S52 sẽ đợc reset. Khi WDT hoạt
động, ngoại trừ reset phần cứng và reset do WDT tràn thì không có cách nào cấm đợc
WDT, vì vậy khi sử dụng WDT thì các đoạn mã chơng trình phải đợc đặt trong các
khe thời gian từ khi giữa các lần WDT đợc khởi tạo lại.
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
3
Đồ án môn vi điều khiển
II- Sơ đồ các chân và chức năng
1.Port 0(P0.0-P0.7 hay từ chân 32 đến chân 39): Gồm 8 chân, ngoài chức
năng xuất nhập ra, 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 AT89S52 giao tiếp với thiết bị ngoài có kiến trúc Bus

AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
4
Đồ án môn vi điều khiển
2.Port 1( P1.0-P1,7 hay từ chân 1 đến chân 8) : Có chức năng xuất nhập theo bit
và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 đợc dùng để nạp ROM theo chuẩn ISP, 2
chân P1.0 và P1.1 đợc dùng cho bộ Timer 2

3.Port 2( P2.0- P2.7 hay từ chân 21 đến chân 28): Là một port có công dụng
kép: là đờng xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ
nhớ mở rộng.

đầu của chu kỳ bộ nhớ. Sau đó các đờng port 0 dùng để xuất hoặc nhập dữ liệu trong
nửa chu kỳ sau của bộ nhớ.
9.PSEN( Program Store Enable):
PSEN là điều khiển để cho phép bộ nhớ chơng trình mở rộng và trờng đ-
ợc nối đến chân /OE ( Output Enable) của một EPROM để cho phép đọc các bytes mã
lệnh.
PSEN sẽ ở mức thấp trong thừi gian đọc lệnh. Các mã nhị phân của chơng
trình đợc đọc từ EPROM qua Bus và đợc chốt vào thanh ghi lệnh của bộ vi điều khiển
để giải mã lệnh. Khi thi hành chơng trình trong ROM nội, PSEN sẽ ở mức thụ
động( mức cao)
10.Vcc, GND:
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V-5.5V đợc cấp qua
chân 40(+) và chân 20(-)
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
6
Đồ án môn vi điều khiển
Phần 2
Thiết kế vôn mét dùng AT89S52
I. Giới thiệu về ADC0804:
1- Các thiết bị ADC.:
Các bộ chuyển đổi ADC thuộc trong những thiết bị đợc sử dụng rộng rãi nhất để
thu dữ liệu. Các máy tính số sử dụng các giá trị nhị phân, nhng trong thế giới vật lý thì
mọi đại lợng ở dạng tơng tự (liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và
vận tốc và một số ít trọng những đại lợng vật lý của thế giới thực mà ta gặp hàng ngày.
Một đại lợng vật lý đợc chuyển về dòng điện hoặc điện áp qua một thiết bị đợc gọi là
các bộ biến đổi. Các bộ biến đổi cũng có thể đợc coi nh các bộ cảm biến. Mặc dù chỉ
có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lợng tự nhiên khác nh-
ng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điện áp ở dạng liên tục. Do vậy,
ta cần một bộ chuyển đổi tơng tự số sao cho bộ vi điều khiển có thể đọc đợc chúng.
Một chíp ADC đợc sử dụng rộng rãi là ADC0804.

tích cực mức thấp đợc dùng để báo cho ADC0804 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 chuyển
đổi giá trị đầu vào tơng tự V
in
về số nhị phân 8 bít. Lợng thời gian cần thiết để
chuyển đổi thay đổi phụ thuộc vào tần số đa đến chân CLK IN và CLK R. Khi
việc chuyển đổi dữ liệu đợc hoàn tất thì chân INTR đợc ép xuống thấp bởi ADC
0804.
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
7
Đồ án môn vi điều khiển
4. Chân CLK IN và CLK R.
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 ADC0804 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 ADC0804 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 3. Trong trờng hợp này tần số đồng hồ đợc xác
định bằng biểu thức:
RC1,1
1
f =
giá trị tiêu biểu của các đại lợng trên là R = 10k và C= 150pF và tần số nhận
đợc là f = 606kHz và thời gian chuyển đổi sẽ mất là 110às.
Hình 3: Kiểm tra ADC0804 ở chế độ chạy tự do.
5. Chân ngắt
INTR
(ngắt hay gọi chính xác hơn là kết thúc chuyển đổi).
Đây là chân đầu ra tích cực mức thấp. Bình thờng nó ở trạng thái cao và khi việc

18
3
5
to
LE
Ds
Nomally
Open
STAR
T
D0
D1
D2
D3
D4
D5
D6
D7
WR
INTR
D GND
RD
CS
CLK in
CLK R
A GND
Vref/2
Vin(-)
Vin(+)
20

ref/2
.
Chân 9 là một điện áp đầu vào đợc dùng cho điện áp tham chiếu. Nếu chân này
hở (không đợc nối) thì điện áp đầu vào tơng tự cho ADC0804 nằm trong dải 0 đến +5v
(giống nh chân V
CC
). Tuy nhiên, có nhiều ứng dụng mà đầu vào tơng tự áp đến V
in
cần
phải khác ngoài dải 0 đến 5v. Chân V
ref/2
đợcdùng để thực thi các điện áp đầu vào khác
ngoài dải 0 - 5v. Ví dụ, nếu dải đầu vào tơng tự cần phải là 0 đến 4v thì V
ref/2
đợc nối
với +2v.
Bảng 12.5 biểu diễn dải điện áp V
in
đối với các đầu vào V
ref/2
khác nhau.
Bảng 12.5: Điện áp V
ref/2
liên hệ với dải V
in
.
V
ref
/ 2(V) V
in

là đầu ra dữ liệu số (dạng thập phân). V
in
là điện áp đầu vào tơng tự và
độ phân dải là sự thay đổi nhỏ nhất đợc tính nh là (2 ì V
ref
/2) chia cho 255 đối với
ADC 8 bít.
10.Chân đất t ơng tự và chân đất số.
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
9
Đồ án môn vi điều khiển
Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tơng tự. Đất t-
ơng tự đợc nối tới đất của chân V
in
tơng tự, còn đất số đợc nối tới đất của chân V
cc
. Lý
do mà ta phải có hai đất là để cách ly tín hiệu tơng tự V
in
từ các điện áp ký sinh tạo ra
việc chuyển mạch số đợc chính xác. Trong phần trình bày của chúng ta thì các chân
này đợc nối chung với một đất. Tuy nhiên, trong thực tế thu đo dữ liệu các chân đất
này đợc nối tách biệt.
Từ những điều trên ta kết luận rằng các bớc cần phải thực hiện khi chuyển đổi
dữ liệu bởi ADC0804 là:
a) Bật CS = 0 và gửi một xung thấp lên cao tới chân
WR
để bắt đầu chuyển đổi.
b) Duy trì hiển thị chân
INTR

Đồ án môn vi điều khiển
1.Lu đồ thuật toán :
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
Bắt đầu
Kiểm tra thang đo
Chuyển đổi A-D
Tát led
Thang đo x đợc chọn
(x ứng với thang đo
1,2,3)
Không có thang đo
nào đơc chọn
Tính giá trị đo đợc
Hiển thị led 7 thanh
11
Đồ án môn vi điều khiển
2.Khối nguồn và khối chọn thang đo:
Nguồn vào đợc ổn áp qua IC LM7805 ,điện áp ra ổn định ở mức 5V.Que đo d-
ơng (+) đợc nối vào chuyển mạch để qua các điện trở (220k,16k,3.3k,4,7k) và
biến trở (R9,R10) nhằm phân áp cho đầu vào của IC 0804 chuyển đổi giá trị điện
áp ở dạng tơng tự sang dạng số.Chọn IC 0804 đo giá trị cao nhất là 5V vậy nên
các điện trở phân áp đợc tính để cho điện áp vào lớn nhất với thang đo tơng ứng
đợc cấp vào IC 0804 là 5V.Chuyển mạch có 2 tiếp điểm đối xng nhau nhằm chọn
mức phân áp và báo cho vi điều khiển biết phần cứng đang chọn thang đo nào
(thang đo 250v,25v,5v), nhờ đó vi điều khiển có thể tính đợc giá trị đo đợc thực tế
ứng với giá trị từ ADC 0804 gửi lên.Ví dụ:chọn thang đo 25 volt mà giá trị ADC
0804 gửi lên là 100volt thì giá trị thực tế cần đo là (100/255)*25=9.803volt.
AT89S52- Microcontroller Lớp: CĐ ĐT2 - K9
12
Đồ án môn vi điều khiển

sbit adc_rd=P1^0; //chan RD cua adc0804 noi voi P1.0
sbit adc_rw=P1^1; //chan RW cua adc0804 noi voi P1.1
//khai bao cac chan dieu khien led 7 thanh
sbit led1=P2^4; //hien thi dien ap do duoc bang 4 led 7 thanh,
sbit led2=P2^5; //led1 noi voi P2.4;led2 noi voi P2.5
sbit led3=P2^6; //led3 noi voi P2.6
sbit led4=P2^7; //led4 noi voi P2.7
//khai bao cac chan xac dinh thang do
sbit thang_do1=P2^0;//thang do 250v
sbit thang_do2=P2^1;//thang do 25v
sbit thang_do3=P2^2;//thang do 5v
sbit den1 = P1^4;
sbit den2 =P1^5;
sbit den3 =P1^6;
//khai bao cac bien
unsigned int x;
unsigned char
tram,chuc,donvi,phan1,phan2,phan3,phan_nguyen,phan_phan,i;
float volt,giatri;
//khai bao mang cac so hien thi tren led 7 thanh
unsigned char
font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//mang chu so khong chua dau cham dp
AT89S52- Microcontroller Líp: C§ §T2 - K9
15
§å ¸n m«n vi ®iÒu khiÓn
unsigned char
font1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//mang chu so chua dau cham dp
/*cac ham con*/

if(phan_nguyen<10)
AT89S52- Microcontroller Líp: C§ §T2 - K9
16
§å ¸n m«n vi ®iÒu khiÓn
{
donvi=phan_nguyen;
phan1=phan_phan/100;
phan2=(phan_phan%100)/10;
phan3=(phan_phan%100)%10;
//hien thi tren led7
for(i=0;i<50;i++)
{
led1=1;
led2=led3=led4=0;
P0=font1[donvi];//font co dau cham dp
delay_us(100);
led2=1;
led1=led3=led4=0;
P0=font[phan1];//font khong co dau dp
delay_us(100);
led3=1;
led1=led2=led4=0;
P0=font[phan2];//font khong co dau dp
delay_us(100);
led4=1;
led1=led2=led3=0;
P0=font[phan3];
delay_us(100);
}
}

//hien thi ba so phan nguyen, mot so phan phan
if((phan_nguyen>=100)&&(phan_nguyen<=250))
{
tram=phan_nguyen/100;
chuc=(phan_nguyen%100)/10;
donvi=(phan_nguyen%100)%10;
phan1=phan_phan/100;
for(i=0;i<50;i++)
{
led1=1;
led2=led3=led4=0;
P0=font[tram];//font khong co dau dp
delay_us(100);
AT89S52- Microcontroller Líp: C§ §T2 - K9
18
§å ¸n m«n vi ®iÒu khiÓn
led2=1;
led1=led3=led4=0;
P0=font[chuc];//font khong co dau dp
delay_us(100);
led3=1;
led1=led2=led4=0;
P0=font1[donvi];//font khong co dau dp
delay_us(100);
led4=1;
led1=led2=led3=0;
P0=font[phan1];
delay_us(100);
}
}

dieu_khien_adc();
giatri=(float)(25*x)/255;
if(giatri<=25)
hien_thi();
}
//thanh 5V
while(thang_do3==0)
{
den3=0;
den1=den2=1;
dieu_khien_adc();
giatri=(float)(5*x)/255;
if(giatri<=5)
hien_thi();
}
while((thang_do1==1)&&(thang_do2==1)&&(thang_do3==1))
{
den1=den2=den3=1;
tat_led(); //khi cong tac thang off thi tat led
}
}
}
AT89S52- Microcontroller Líp: C§ §T2 - K9
20
Đồ án môn vi điều khiển
IV.kết luận :
1.Ưu điểm:
-Mạch có khả năng đo dải điện áp rộng từ 0V - 250V.
-Mạch có 3 thang đo nhằm tăng độ chính xác giá trị đo
-Mạch có tốc độ đo nhanh , chính xác v ổn định


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status