Ứng dụng họ vi điều khiển 8051, đo và cảnh báo tần số lưới điện công nghiệp, có dải đo 0 ÷ 70HZ•Tần số lưới điện công nghiệp ở nước ta là 50HZ. Vì vậy ta cần đặt khoảng cảnh báo từ 45 ÷ 55HZ. Tức là tần số lưới điện dưới 45HZ, đèn báo mức thấp và còi cảnh báo bật. Tần số lưới điện trên 55HZ, đèn báo mức cao và còi cảnh báo bật.•Dãi đo từ 0 ÷ 70HZ nên khi tần số lưới điện lớn hơn 70HZ thì hệ thống sẽ báo quá ngưỡng đo và còi cảnh báo bật.•Để đo tần số lưới điện công nghiệp, ta phải đếm số giao động của dòng điện trong 1 giây. Số giao động đấy chính là tần số của lưới điện.•Vì dòng điện là giao động liên tục, nên sau 1 giây ta phải cập nhật tần số 1 lần để đảm bảo tính chính xác của tần số.•Sử dụng ngắt ngoài INT0 theo sườn xuống để đếm số giao động của tần số.•Sử dụng ngắt Timer 0 để đếm số giao động sau 1 giây.
Trang 1ĐỀ TÀI: Ứng dụng họ vi điều khiển 8051, đo và cảnh báo tần số lưới
điện công nghiệp, có dải đo [0 ÷ 70]HZ
GV HƯỚNG DẪN: ĐỖ DUY PHÚ
LỚP: ĐIỆN 1 K10
SINH VIÊN THỰC HIỆN:
Trang 2Mục lục
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Mục đích và yêu cầu 3
1.2 Các linh kiện được sử dụng 4
1.3 Khái quát về họ Vi điều khiển 8051 4
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 9
2.1 Sơ đồ khối hệ thống và mạch nguyên lý 9
2.2 Xây dựng thuật toán 13
2.3 Xây dựng phần mềm 17
CHƯƠNG 3: KẾT LUẬN 24
3.1 Nhận xét 24
3.2 Thực nghiệm 24
Trang 3CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Mục đích và yêu cầu
Ứng dụng họ vi điều khiển 8051, đo và cảnh báo tần số lưới điện công nghiệp,
có dải đo [0 ÷ 70]HZ Dựa vào nội dung đề tài ta thấy:
Tần số là số giao động trong 1 giây Đơn vị: HZ
Hệ thống điện công nghiệp là mạng lưới các thành phần điệndùng để cung cấp truyền tải hoặc sử dụng điện năng Điện
áp đối với nguồn xoay chiều 1 pha là 220V và 3 pha là 380V.Đây là những mức điện áp lớn, các vi điều khiển không thểhoạt động ở mức điện áp này Vì vậy ta cần 1 máy biến áp
để hạ điện áp của lưới điện xuống mức mà vi điều khiển cóthể hoạt động được mà không thay đổi tần số của lưới điện
Tần số lưới điện công nghiệp ở nước ta là 50HZ Vì vậy ta cầnđặt khoảng cảnh báo từ [45 ÷ 55]HZ Tức là tần số lưới điện dưới45HZ, đèn báo mức thấp và còi cảnh báo bật Tần số lưới điện trên 55HZ,đèn báo mức cao và còi cảnh báo bật
Dãi đo từ [0 ÷ 70]HZ nên khi tần số lưới điện lớn hơn 70HZ thì hệ thống
sẽ báo quá ngưỡng đo và còi cảnh báo bật
Vi điều khiển chỉ hoạt động với xung vuông 1 chiều mà điện
áp của lưới điện lại là xung hình Sin xoay chiều, nên ta cần
bộ chuyển đổi xung hình Sin thành xung vuông để vi điềukhiển có thể hoạt động được
Ta sẽ sử dụng 1 màn hình LCD để hiển thị các cảnh báo vàtần số của lưới điện
Phương pháp đo:
Để đo tần số lưới điện công nghiệp, ta phải đếm số giao độngcủa dòng điện trong 1 giây Số giao động đấy chính là tần sốcủa lưới điện
Trang 4 Vì dòng điện là giao động liên tục, nên sau 1 giây ta phải cậpnhật tần số 1 lần để đảm bảo tính chính xác của tần số.
Sử dụng ngắt ngoài INT0 theo sườn xuống để đếm số giaođộng của tần số
Sử dụng ngắt Timer 0 để đếm số giao động sau 1 giây
1.2 Các linh kiện được sử dụng
Từ yêu cầu của bài toán, ta sử dụng các linh kiện sau:
1.3 Khái quát về họ Vi điều khiển 8051
AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệCMOS chất lượng cao, công suất thấp với 4 KB PEROM (FlashProgrameable and erasable read only memory)
Các đặc điểm của 8051 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghixóa tới 1000 chu kỳ
- Tần số hoat động từ 0 Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/Counter 16 bit
- 128 Byte RAM nội
- 4 Port xuất/nhập (I/O) 8 bit
Trang 5- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoài
- Xử lý Boolean (hoạt động trên bit đơn)
- 210 vị trí nhớ có thể định vị bit
Sơ đồ khối và sơ đồ chân của AT89C51
Hình 1.1 Sơ đồ khối của AT89C51
OTHER REGISTER
Trang 6Hình 1.2 Sơ đồ chân của AT89C51
Chức năng các chân của AT89C51
+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): 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 AT89C51 giao tiếp vớithiết bị ngoài có kiến trúc bus
Hình 1.3 Port 0
Trang 7+ Port 1 (P1.0 – P1.7 hay chân 1 – 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 đượcdùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 được dùngcho bộ Timer 2
Hình 1.4 Port 1
+ Port 2 (P2.0 – P2.7 hay chân 21 – 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 địachỉ đối với các thiết kế dùng bộ nhớ mở rộng
Hình 1.5 Port 2
Trang 8+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên
port 3 ngoài chức năng xuất nhập ra còn có một số chức năng đặcbiệt sau:
Bit Tên Chức năng chuyển đổi
P3.0 RXD Dữ liệu nhận cho port nối
tiếpP3.1 TXD Dữ liệu truyền cho port nối
tiếpP3.2 INT0 Ngắt bên ngoài 0P3.3 INT1 Ngắt bên ngoài 1P3.4 T0 Ngõ vào của Timer/Counter
0P3.5 T1 Ngõ vào của Timer/Counter
1P3.6 WR Xung ghi bộ nhớ dữ liệu
ngoàiP3.7 RD Xung đọc bộ nhớ dữ liệu
ngoài
Hình 1.6 Port 3
+ RST (Reset – chân 9): mức tích cực của chân này là mức 1,
để reset ta phải đưa mức 1 (5V) đến chân này với thời gian tốithiểu 2 chu kỳ máy (tương đương 2µs đối với thạch anh 12MHz
Trang 9+ XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó
thường được nối với một bộ dao động thạch anh có tần số lớnnhất là 33MHz, thôn thường là 12MHz
+ EA (External Access): EA thường được mắc lên mức cao
(+5V) hoặc mức thấp (GND) Nếu ở mức cao, bộ vi điều khiển thihành chương trình từ ROM nội Nếu ở mức thấp, chương trình chỉđược thi hành từ bộ nhớ mở rộng
+ ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ
vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ.Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trongnửa chu kỳ sau của bộ nhớ
+ PSEN (Program Store Enable): PSEN là điều khiển để cho
phép bộ nhớ chương trình mở rộng và thường được nối với đếnchân /OE (Output Enable) của một EPROM để cho phép đọc cácbytes 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)
+ 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 (Vcc) và chân 20 (GND)
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 2.1 Sơ đồ khối hệ thống và mạch nguyên lý
Từ chương 1, ta xây dựng được sơ đồ khối sau:
Trang 10KHỐI BIẾN ÁP
KHỐI TẠO XUNG VUÔNG
AT89C51
CT ĐO VÀ ĐIỀU KHIỂN
KHỐI HIỂN THỊ VÀ CẢNH BÁO
Hình 2.1 Sơ đồ khổi hệ thống
Khối biến áp:
Hình 2.2 Khối biến ápNguồn điện ban đầu là dòng điện xoay chiều có điện áp lớn là 220V Vì thế ta cần sử dụng 1 máy biến áp để giảm điện áp của dòng điện xuống mức vi xử lý có thể hoạt động được mà không làm biến đổi tần số của lưới điện
Khối tạo xung vuông
Trang 11Hình 2.3 Khối tạo xung vuông+ Opamp LM741 chân 7 được nối Vcc và chân 4 được nối Mass
Opamp LM741 thực hiện chức năng so sánh:
- Khi Vin+ > Vin- thì Vout ở mức cao
- Khi Vin+ < Vin- thì Vout ở mức thấp
+ Xung của Vout là xung vuông xoay chiều nên ta cần dùng 1 con NOT để biến đổi thành xung vuông 1 chiều để vi xử lý có thể đọc được mà không làm thay đổi tần số
AT89C51
Trang 12Hình 2.4 AT89C51
Vi xử lý AT89C51 sẽ thực hiện các lệnh được cài đặt sẵn trong chương trình, từ đó điều khiển và cảnh báo hệ thống
Khối hiển thị và cảnh báo
Ta sử dụng 1 màn hình LCD để hiển thị tần số của lưới điện và các cảnh báo
Trang 13Hình 2.5 Màn hình LCD
Sử dụng còi Buzz và đèn LED để báo các cảnh báo đang diễn ra
Hình 2.5 Đèn cảnh báo và Còi cảnh báo+ Transistor PNP: Khi chân B của transistor có mức thấp thì sẽ chothông mạch, từ đấy dễ dàng điều khiển các đèn báo và còi hiệu.+ Sử dụng còi BUZZ 6V và các đèn LED để hiển thị cảnh báo
Từ các khối ở trên, ta xây dụng được sơ đồ mô phỏng của
hệ thống.
Trang 14Hình 2.6 Toàn bộ hệ thống
2.2 Xây dựng thuật toán
Sơ đồ thuật toán hệ thống:
Trang 15ĐO TẦN SỐ
HIỂN THỊ VÀ CẢNH BÁO
RETI
Hình 2.7 Sơ đồ thuật toán hệ thống
Thuật toán chương trình đo tần số
+ Ta sử dụng ngắt ngoài INT0 để đếm số giao động và sử dụng ngắt trong Timer 0 để cứ 1 giây thì sẽ gán số giao động
Trang 16F=DemDem=0T= 0
RETI
Yes
No
Hình 2.8 Thuật toán chương trình ngắt ngoài INT0
Thuật toán chương trình ngắt Timer 0
Hình 2.9 Thuật toán chương trình ngắt Timer 0
Trang 17 Thuật toán chương trình hiển thị và cảnh báo
Thuật toán chương trình hiển thị
Hình 2.10 Thuật toán chương trình hiển thị
Thuật toán chương trình cảnh báo
Trang 18Hình 2.11 Thuật toán chương trình cảnh báo
2.3 Xây dựng phần mềm
Gán chân và sử dụng các thư viện cho chương trình
Khai báo biến toàn cục
Trang 20 Hàm khởi tạo ngắt
Hàm ngắt ngoài INT0
Hàm ngắt trong Timer 0
Trang 21 Hàm main
Nếu tần số > 70HZ thì quá ngưỡng đo
Nếu 55< F < 70 thì cảnh báo mức tần số cao
Trang 22 Nếu 45<= F <=55 thì hiển thị tần số đo được
Nếu F<45 thì cảnh báo mức tần số thấp
Trang 23 Hàm hiển thị LCD
Trang 27 Dễ sử dụng, tiện lợi.
Nhược điểm
Còn có sai số về giá trị đo được do sai số linh kiện và những sai số trong khi tính toán thiết kế mạch nhưng chấp nhận được
Mạch chưa có chức năng bảo vệ ngắn mạch
Chưa có các khối nguồn tạo điện áp ra cho IC rõ ràng
Độ tin cậy của mạch chưa được cao do hạn chế về kinh
nghiệm cũng như giới hạn về trình độ chuyên môn còn yếu
3.2 Thực nghiệm
Trang 28 Khi F=30HZ Cảnh báo tần số ngưỡng thấp.
Trang 29 Khi F=50HZ Hiển thị tần số F=50HZ.
Trang 30 Khi F=60HZ Cảnh báo tần số ngưỡng cao.
Trang 31 Khi F=80HZ Cảnh báo quá ngưỡng đo.