mạch đo và hiển thị điện áp xoay chiều dùng vi điều khiển 89s52 mô phỏng trên proteus 8.3. có 4 nút nhấn: tăng giảm giá trị ngưỡng cảnh báo, function(or mode) thay đổi chế độ hiển thị từ ngưỡng đo sang giá trị đo.
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN
BÀI TẬP LỚN
Vi điều khiển
Đề Tài:
Thiết kế mạch đo và cảnh báo điện áp xoay chiều có dải từ 0-400V sử
dụng vi xử lý 8051 và ADC 0808 hiển thị ra led 7 thanh
Giáo viên hướng dẫn: Nguyễn Thu Hà
Nhóm thực hành: Nhóm 14- Lớp Tự động hóa 2 – K8 Sinh viên: Mai Công Sơn
Vũ Quang Sơn Đặng Văn Tạo Đàm Gia Thành Nguyễn Văn Thành
Hà Nội,12-12-2015
Trang 2Link tải mô phỏng proteus trang cuối
Mở đầu Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đặc biệt là ngành kỹ thuật điện tử đẫn đến đời sống xã hội ngày càng phát triển hơn sự trên những ứng dụng của khoa học vào đời sống Vì vậy mà những công điện tử mang tính tự động ngyaf càng được ứng dụng rộng rãi Trong đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển Các bộ vi điều khiển đang được ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kỹ thuật và đời sống xã hội Hầu hết các thiết bị được điều khiển tự động từ các thiết bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiện nghi cho con người trong thời đại công nghiệp hóa hiện đại hóa
Điện áp là một đại lượng cơ bản trong kĩ thuật Điện - Điện tử, muốn điều khiển một thiết bị hay một linh kiện điện tử nào đó ta phải quan tâm đến điện áp để điều khiển nó đầu tiên Thi trường đã sản xuất ra loại đồng hồ cơ, tuy có thể đo điện áp nhưng không thực sự chính xác, do vậy việc chế tạo ra một thiết bị đo có độ chính xác cao là thật sự cần thiết
Do đó nhóm chúng em thực hiện đề tài: “ Thiết kế mạch đo và cảnh báo điệ áp xoay chiều dải đo 0-400V sử dụng vi xử lý 8051”
Mục đích chính của đề tài là thiết kế một bộ đo điện áp sử dụng 8051, có thể cho ra được kết quả hiển thị trực quan với độ chính xác cao
Mặc dù cố gắng tìm hiểu thực hiện nhưng do còn thiếu kinh nghiệm nên trong bài khó tránh khỏi sai xót, chúng e rất mong được sự hướng dẫn chỉ bảo thêm của thầy!
Trang 3Chương 1: Cơ sở lý thuyết
1.1 Mục đích và yêu cầu
1.1.1 Mục đích
Thiết kế mạch đo và cảnh báo điện áp xoay chiều có dải từ 0-400V sử dụng vi xử lý 8051
và ADC 0808 hiển thị ra led 7 thanh
1.1.2 Yêu cầu
Đo và hiển thị chính xác ra led 7 thanh
Có 2 nút bấm tăng giảm ngưỡng cảnh báo
Có cảnh báo điện áp bằng loa hoặc đèn
1.2 Các phương pháp đo
Có 2 cách phổ biến để đo điện áp xoay chiều:
- Đo bằng đồng hồ đo điện
- Đo bằng mạch điện tử
1.3 Các linh kiện sử dụng trong bài
1.3.1 Vi điều khiển 89C52
1.3.1.1 Sơ đồ khối và ý nghĩa các chân của 89C52
89C52 có 4 cổng vào/ra số
P0 có 8 bit là P0.0 đến P0.7 (chân 32-39)
P1 có 8 bit là P1.0 đến P1.7 ( chân 1 - 8 )
P2 có 8 bit là P2.0 đến P2.7 (chân 21-28)
P3 có 8 bit là P3.0 đến P3.7 (chân 10-17)
Ngoài chức năng là các cổng vào/ra số thì P0 còn là 8 bit (D0
đến D7) của bus dữ liệu hoặc là 8 bit thấp (A0 đến A7) của bus
địa chỉ ,P2 lá 8 bit cao (A8 đến A15) của bus địa chỉ khi cần
thiết mở rộng thêm các ngoại vi, bộ nhớ ngoài cho 8051
Các chân đặc biệt
RESET (chân 9): Dùng để khởi động lại toàn bộ hệ
thống khi chương trinh đang chạy mà gặp lỗi
RxD,TxD (chân 10,11): Là hai chân nhận và truyền số
liệu của cổng truyền thông nối tiếp
INT0,INT1 (chân 12,13): Là hai chân nhận tín hiệu ngắt từ bên ngoài
WR (chân 16) Cho phép viết dữ liệu tới các ngoại vi, bộ nhớ bên ngoài vi điều khiển
RD: (chân 17) Cho phép đọc dữ liệu từ các ngoại vi,bộ nhớ dữ liệu ngoài vi điều khiển
X1,X2 (chân 18,19): Dùng để tạo xung nhịp cho vi điều khiển
Vcc,GND(chân 40,20) Cấp nguồn cho vi điều khiển (Vcc=5 VDC)
EA/VP : Là tín hiệu vào
=1: Vi điều khiển sử dụng cả bộ nhớ chương trình bên trong và bộ nhớ chương trình
bên ngoài
+ Nếu vi điều khiển có 4 Kb bộ nhớ chương trinh bên trong với địa chỉ 0000H đến
0FFFH thì bộ nhớ chương trình bên ngoai phải có địa chỉ 1000h đến 1FFFH
Trang 4+ Nếu vi điều khiển co 8 Kb bộ nhớ chương trinh bên trong với địa chỉ 0000H đến
1FFFH thì bộ nhớ chương trình bên ngoai phải có địa chỉ 2000h đến FFFFH
=0: vi điều khiển chỉ sử dụng bộ nhớ bên ngoài co địa chỉ là:0000H đến FFFFH
ALE/P: (tín hiệu ra) Là tín hiệu chốt địa chỉ dùng để phân biệt khi nào P0 là bus dữ
liệu,khi nào là bus dữ liệu khi vi điều khiển cần gép nối với các ngoại vi
ALE=1:P0 là bus địa chỉ
ALE=1:P0 là bus dữ liệu
PSEN : Có chức năng giống như chân Rdnhunwg chỉ dùng để đọc bộ nhớ chương trình bên ngoài
1.3.1.2 Các thanh ghi đặc biệt
Ký hiệu Tên Địa chỉ
* Acc Thanh ghi chứa 0E0H
* B Thanh ghi B 0F0H
* PSW Thanh ghi trạng thái 0D0H
SP Con trỏ ngăn xếp (8bit) 81H
DPTR Con trỏ dữ liệu
DPL Byte thấp của DPTR 82H
DPH Byte cao của DPTR 83H
* P0 Thanh ghi đệm cổng P0 80H
* P1 Thanh ghi đệm cổng P1 90H
* P2 Thanh ghi đệm cổng P2 0A0H
* P3 Thanh ghi đệm cổng P3 0B0H
* IP Thanh ghi điều khiển các mức ưu tiên ngắt 0B8H
* IE Thanh ghi cho phép/ che chắn các ngắt 0A8H
TMOD Thanh ghi chọn chế độ Time/Counter 0,1 89H
* TCON Thanh ghi điều khiển Time/Counter 0,1 88H
*+T2CON Thanh ghi điều khiển Time/Counter 2 0C8H
TH0 Byte cao của bộ đếm trong Timer/Counter 0 8CH
TL0 Byte thấp của bộ đếm trong Timer/Counter 0 8AH
TH1 Byte cao của bộ đếm trong Timer/Counter 1 8DH
TL1 Byte thấp của bộ đếm trong Timer/Counter 1 8BH
+ TH2 Byte cao của bộ đếm trong Timer/Counter 2 0CDH
+ TL2 Byte thấp của bộ đếm trong Timer/Counter 2 0CCH
+ RCAP2H Byte cao của thanh ghi Capture/ Reload trong
Timer/Counter 2 0CBH + RCAP2L Byte thấp của thanh ghi Capture/ Reload trong
Timer/Counter 2 0CAH
* SCON Thanh ghi điều khiển cổng truyền thông nối tiếp 98H
SBUF Bộ đếm cổng truyền thông nối tiếp 99H
PCON Thanh ghi điều khiển công suất tiêu thụ của 8051 87H
1.3.1.3 Ngắt và xử lý các ngắt
Ngắt tràn của T0, T1: TF0,TF1
Ngắt cổng truyền thông nối tiếp: RI, TI
Ngắt bên ngoài vi điều khiển: INT0, INT1
Ngắt của Timer 2: TF2
Trang 5* Thanh ghi cho phép ngắt IE
EA : Cho phép/cấm tất cả ngắt ngoài ET2:Cho phép/cấm ngăt Timer 2 ES: Cho phép/cấm ngắt cổng truyền thông nối tiếp ET1: Cho phép/cấm ngăt Timer 1
EX1: Cho phép/cấm ngăt ngoài INT1
ET0: Cho phép/cấm ngăt Timer 0 EX0: Cho phép/cấm ngăt ngoài INT0
1.3.1.4 Địa chỉ vectơ ngắt
STT Nguồn gây ngắt Địa chỉ
1 IE0 0003H
2 TF0 000BH
3 IE1 0013H
4 TF1 001BH
5 RI_TI 0023H
6 TF2+EXF2 002BH
1.3.2 BỘ CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ (ADC0808)
1.3.2.1 Sơ đồ khối và ý nghĩa các chân
Chân 1 IN3 - ngõ vào tín hiệu Analog Input 3
Chân 2 IN4 - ngõ vào tín hiệu Analog Input 4
Chân 3 IN5 - ngõ vào tín hiệu Analog Input 5
Chân 4 IN6 - ngõ vào tín hiệu Analog Input 6
Chân 5 IN7 - ngõ vào tín hiệu Analog Input 7
Chân 6 START - chân điều khiển tín hiệu bắt
đầu quá trình biến đổi ADC
Chân 7 EOC - Chân phát tín hiệu báo kết thúc
quá trình chuyển đổi ADC
Chân 8 2 (-5) - Ngõ ra Tín hiệu số- Data Bit 5
Chân 9 OUT EN - Chân cho phép xuất
Chân 10 CLK - chân nhận nguồn xung Clock
Chân 11 Vcc - Chân nhận điện nguồn dương
Chân 12 Vref+ - Chân nhận(input) điện áp
tham chiếu
Chân 13 GND - Chân nhận điện áp
âm(Ground=0v)
Chân 14 2(-7) - Ngõ ra Tín hiệu số- Data Bit 7
Chân 15 2(-6) - Ngõ ra Tín hiệu số- Data Bit 6
Chân 16 Vref- - Voltage Reference Negative Input
Chân 17 2(-8) - Ngõ ra Tín hiệu số- Data bit 8
Chân 18 2(-4) - Ngõ ra Tín hiệu số- Data Bit 4
Chân 19 2(-3) - Ngõ ra Tín hiệu số- Data Bit 3
EA - ET2 ES ET1 EX1 ET0 EX0
IE
Trang 6Chân 20 2(-2) - Ngõ ra Tín hiệu số- Data Bit 2
Chân 21 2(-1) - Ngõ ra Tín hiệu số- Data Bit 1
Chân 22 ALE - Address Latch Enable
Chân 23 ADD C - Address Input C
Chân 24 ADD B - Address Input B
Chân 25 ADD A - Address Input A
Chân 26 IN0 - ngõ vào tín hiệu Analog Input 0
Chân 27 IN1 - ngõ vào tín hiệu Analog Input 1
Chân 28 IN2 - ngõ vào tín hiệu Analog Input 2
1.3.2.2 Khảo sát ý nghĩa hoạt động của các chân ADC0808
- IN0, IN1, IN2, IN3, IN4, IN5, IN6, IN7 : 8 ngõ vào tín hiệu tương tự
- A, B, C : các đường địa chỉ để chọn kênh ở ngõ vào
Các đường địa chỉ Chọn kênh ngõ
vào
L L L IN0
H L L IN1
L H L IN2
H H L IN3
L L H IN4
H L H IN5
L H H IN6
H H H IN7
- ALE : chân chốt địa chỉ, khi có xung tác động vào chân ALE đường địa chỉ A,B,C mới được ADC nhận vào
- START : điều khiển bắt đầu chuyển đổi
Khi START = 1 : bắt đầu chuyển đổi
Khi START = 0 : kết thúc chuyển đổi
- EOC : báo hiệu kết thúc quá trình chuyển đổi
Khi START = 1 thì EOC =1
Khi chuyển đổi xong thì EOC = 0
- CK : ngõ vào xung clock (fCK = 100KHz – 1,28MHz)
- 2-1, 2-2, 2-3, 2-4, 2-5, 2-6, 2-7, 2-8: 8 ngõ tín hiệu số từ 00-FFH
- OE : cho phép xuất tín hiệu ra
OE = 1 : cho phép
OE = 0 : không cho phép
- VRef+, VRef- : điện áp tham chiếu dương và âm, dùng để thay đổi độ phân giải Ta
có công sau:
N = 256*(Vi – VRef-)/(VRef+ - VRef-)
Với : N : 1 số nhị phân được chuyển đổi
Vi : điện áp ngõ vào tín hiệu tương tụ
Để tiện cho việc tính toán thông thường ta nối chân VRef- xuống mass
1.2.3 Các bước để chuyển đổi của ADC
Chọn kênh ngõ vào
Chốt địa chỉ kênh vào ALE = 1)
Trang 7 Bắt đầu chuyển đổi (START=1)
Chờ chuyển đổi xong , đọc kết quả 1.2.4 giản đồ xung giao tiếp IC ADC0808
1.3 LED BẢY THANH
1.3.1 Cấu tạo
- Cấu tạo LED bảy thanh bao gồm 8 led phát quang được gọi là các thanh lần lượt
là : a b, c, d, e, f ,g và dp(dấu chấm)
- LED bảy thanh thường dùng làm cơ cấu quan sát, hiện thị các con số hệ thập phân Trong một số trường hợp đặt biệt có thể dùng để hiện thị các số hệ HEX và các
ký tự
1.3.2 Phân loại
LED bảy thanh có hai loại là:
Loại Anode chung
Loại Cathode chung
a Loại Anode chung
Vcc
g f A a b
9 8 7 6
10
g
f
a
b
dp
c
d
e
Trang 8Để các thanh sáng ta cấp dòng điện ( 5 – 20mA) chảy qua các Diode tương ứng.Để hiện thị các số 0 – 9 trong hệ thập phân ta lựa chọn cách thanh cần sáng để hiện thị được các số tương ứng Như vậy ta nối chân A vào dương nguồn (5VDC) còn các chân a, b, c, d, e, f, g, và dp điều khiển chúng sao cho:
Nếu = “1” các thanh tối
Nếu = “0” các thanh sáng
b Loại Cathode chung
Đối với loại Cathode chung thì chân C nối xuống đất (0VDC) còn các chân a, b, c, d,
e, f, g, và dp điều khiển chúng sao cho:
Nếu = “1” các thanh sáng
Nếu = “0” các thanh tối
1.3.3 Bảng mã bảy thanh
Mã bảy thanh các số 0 – 9 loại Anode chung
DEC dp g f e d c b a Mã Bảy
Thanh
0
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H
Mã bảy thanh các số 0 – 9 loại catot chung
DEC dp g f e d c b a Mã Bảy
Thanh
0 0 0 1 1 1 1 1 1 3FH
Vcc
a b c d e f g dp
g f C a b
dp
c
C
d
e
1 2 3 4 5
9 8 7 6
10
Trang 9Trang: 9
1 0 0 0 0 0 1 1 0 06H
2 0 1 0 1 1 0 1 1 5BH
3 0 1 0 0 1 1 1 1 4FH
4 0 1 1 0 0 1 1 0 66H
5 0 1 1 0 1 1 0 1 6DH
6 0 1 1 1 1 1 0 1 7DH
7 0 0 0 0 0 1 1 1 07H
8 0 1 1 1 1 1 1 1 7FH
9 0 1 1 0 1 1 1 1 6FH
1.4 CÁC LINH KIỆN KHÁC
1.4.1 Phím bấm
- Sơ đồ nguyên lý
1.5.2 Các linh kiện khác
- Tụ điện: Chọn tụ điện có các giá trị sau 2,2μF, 3,3pF
+ Đối với loại tụ có giá trị 2,2μF ta chọn tụ hóa
+ Đối với loại tụ có giá trị 3,3pF ta chọn tụ gốm
- Transzito : Chọn loại NPN có cấu tạo như sau
Vcc
Output 10K 2,2μF
N P N
B
B
E 5VDC
Trang 10Chức năng Khuếch đại dòng để quét LED hiện thị
- Điện trở: Chọn loại điện trở có giá trị 10KὨ và 330Ὠ
Trang 11PHẦN II
2.1 SƠ ĐỒ KHỐI VÀ CHỨC NĂNG TỪNG KHỐI
2.1.1 Sơ đồ khối
Cấu trúc chung của hệ thống
2.1.2 Chức năng tùng khối
a) Khối nguồn: để cung cấp nguồn cho bộ chuyển đổi, vi xử lí, và khối hiển thị
Sử dụng IC LM7805 để tạo nguồn 5V cấp cho ADC, vi xử lý và khối hiển thị
` b) Bộ chuyển đổi ADC: chuyển đổi tín hiệu Analog từ khối công suất thành tín hiệu Digital
Điện áp
Đo Vi xử lý
Bộ chuyển đổi ADC
Nguồn
Khối hiển thị
Trang 12c) Khối hiển thị: để hiển thị giá trị đo
d) Vi xử lí: nhận tín hiệu từ bộ chuyển đổi ADC hiển thị dữ liệu trên Led 7 vạch
Trang 13`2.2 Sơ đồ mạch nguyên lý
https://drive.google.com/file/d/0B8wAl0A9ho6wbDJ6MzBzRjU3Wms/view?usp=sh aring