Thiết kế đồng hồ kỹ thuật số dùng Atmega 16

MỤC LỤC CHƯƠNG I: ĐẶT VẤN ĐỀ 1 CHƯƠNG II: TÔNG QUAN VỀ PHƯƠNG PHÁP ĐO 3 2.1. Các phương pháp và thiết bị đo dòng điện 3 2.2.Các phương pháp và thiết bị đo điện áp 6 2.3. Một số phương pháp đo công suất 7 2.4. Đo góc lệch pha 12 CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG 15 3.1 Sơ đồ khối của mạch nguyên lý 15 3.2 Đặc điểm của ATmega 16 16 3.3 Khối phím bấm 20 3.4 Khối LCD 21 3.5 Mạch nguồn 23 3.6 Khối mạch chuẩn hóa U,I và mạch tạo góc pha 23 3.6.1 Mạch chuẩn hóa điện áp 23 3.6.2 Mạch chuẩn hóa dòng điện 25 3.6.3 Mạch tạo góc pha 26 CHƯƠNG IV: CHƯƠNG TRÌNH PHẦN MỀM 28 Tài liệu tham khảo 38 CHƯƠNG I: ĐẶT VẤN ĐỀ Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số, . Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài. Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v. Trong thời đại của chúng ta với cuộc cách mạng khoa học và kỹ thuật như vũ bão thì Kỹ thuật đo lường nói chung là nhân tố quyết định cho quá trình nghiên cứu và sản xuất. Cho đến nay sự phát triển của khoa học kỹ thuật đang ở giai đoạn thay thế cho các quá trình lao động chân tay bằng các quá trình sản xuất tự động hoá một phần hoặc toàn phần. các máy móc làm việc hoàn toàn tự động cho khả năng giảm lao động trong quá trình sản xuất và làm tăng nhảy vọt năng suất lao động. Con người không gắn liền với máy móc, thiết bị mà chỉ đóng vai trò kiểm tra và hiệu chỉnh khi cần thiết. Quá trình sản xuất tự nó tiến hành nhờ có sự kiểm tra, điểu khiển và điều chỉnh được thực hiện tự động. Đó thực chất là một qúa trình đo lường liên tục. Con người ở đây chỉ làm nhiệm vụ quan sát trông coi và giải quyết các hư hỏng gặp phải. Không nằm ngoài tiến trình phát triển chung của khoa học công nghệ, kỹ thuật đo lường nói chung và kỹ thuật đo lường công suất điện nói riêng cũng đã và đang phát triển để đáp ứng những nhu cầu mà thực tiễn đặt ra. Hiện nay hầu hết các các thiết bị trên thế giới chạy bằng năng lượng điện, điện ngày càng đóng vai trò quan trọng trong quá trình phát triển của xã hội, đó là điều không thể phủ nhận. Chính vì thế việc đo, giám sát công suất tiêu thụ điện của các thiết bị điện là tất yếu. Nó chính là cơ sở để tính giá thành điện cũng như đóng vai trò quan trọng trong quá trình đo lường giám sát hệ thống điện hay thiết bị điện, việc này có ý nghĩa hết sức quan trọng cho quá hoạt động của hệ thống điện và đảm bảo sự an toàn cho máy móc thiết bị cũng như người vận hành. Vì vậy một ứng dụng của vi xử lý rất quan trọng mà ta cần nghiên cứu là đồng hồ kỹ thuật số đo đại lượng điện sử dụng VĐK atmega16. Hiện nay trên thị trường có rất nhiều loại đồng hồ kỹ thuật số như: BS_750, BS_7200, BS-5200, BS-G1000, CSD-907, BS-G1000, CSD-701B MINEBEA, CSD-819C MINEBEA . Nhiệm vụ thiết kế: Đo điệm áp hiệu dụng, dải đo điện áp 0~250 VAC, tốc đọ đo 5 lần/1 giây. Kết quả đo hiển thị trên LCD với 1 số lẻ. Đo dòng điện hiệu dụng, dải đo dòng điện 0~20A, tốc độ đo 5 lần/1 giây. Kết quả đo hiển thị trên LCD với 2 số lẻ (Ví dụ 3.46). Đo tần số, dải đo 30~100Hz, tốc độ 5 lần/ 1s. Kết quả đo hiển thị trên LCD với 2 số lẻ. Hiển thị bằng màn hình LCD 2 dòng. Hiển thị dấu phẩy động. Các phím điểu khiển chọn chế độ làm việc và hiển thị.

doc38 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2745 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Thiết kế đồng hồ kỹ thuật số dùng Atmega 16, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC CHƯƠNG I: ĐẶT VẤN ĐỀ Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số,... Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài. Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v. Trong thời đại của chúng ta với cuộc cách mạng khoa học và kỹ thuật như vũ bão thì Kỹ thuật đo lường nói chung là nhân tố quyết định cho quá trình nghiên cứu và sản xuất. Cho đến nay sự phát triển của khoa học kỹ thuật đang ở giai đoạn thay thế cho các quá trình lao động chân tay bằng các quá trình sản xuất tự động hoá một phần hoặc toàn phần. các máy móc làm việc hoàn toàn tự động cho khả năng giảm lao động trong quá trình sản xuất và làm tăng nhảy vọt năng suất lao động. Con người không gắn liền với máy móc, thiết bị mà chỉ đóng vai trò kiểm tra và hiệu chỉnh khi cần thiết. Quá trình sản xuất tự nó tiến hành nhờ có sự kiểm tra, điểu khiển và điều chỉnh được thực hiện tự động. Đó thực chất là một qúa trình đo lường liên tục. Con người ở đây chỉ làm nhiệm vụ quan sát trông coi và giải quyết các hư hỏng gặp phải. Không nằm ngoài tiến trình phát triển chung của khoa học công nghệ, kỹ thuật đo lường nói chung và kỹ thuật đo lường công suất điện nói riêng cũng đã và đang phát triển để đáp ứng những nhu cầu mà thực tiễn đặt ra. Hiện nay hầu hết các các thiết bị trên thế giới chạy bằng năng lượng điện, điện ngày càng đóng vai trò quan trọng trong quá trình phát triển của xã hội, đó là điều không thể phủ nhận. Chính vì thế việc đo, giám sát công suất tiêu thụ điện của các thiết bị điện là tất yếu. Nó chính là cơ sở để tính giá thành điện cũng như đóng vai trò quan trọng trong quá trình đo lường giám sát hệ thống điện hay thiết bị điện, việc này có ý nghĩa hết sức quan trọng cho quá hoạt động của hệ thống điện và đảm bảo sự an toàn cho máy móc thiết bị cũng như người vận hành. Vì vậy một ứng dụng của vi xử lý rất quan trọng mà ta cần nghiên cứu là đồng hồ kỹ thuật số đo đại lượng điện sử dụng VĐK atmega16. Hiện nay trên thị trường có rất nhiều loại đồng hồ kỹ thuật số như: BS_750, BS_7200, BS-5200, BS-G1000, CSD-907, BS-G1000, CSD-701B MINEBEA, CSD-819C MINEBEA…. Nhiệm vụ thiết kế: Đo điệm áp hiệu dụng, dải đo điện áp 0~250 VAC, tốc đọ đo 5 lần/1 giây. Kết quả đo hiển thị trên LCD với 1 số lẻ. Đo dòng điện hiệu dụng, dải đo dòng điện 0~20A, tốc độ đo 5 lần/1 giây. Kết quả đo hiển thị trên LCD với 2 số lẻ (Ví dụ 3.46). Đo tần số, dải đo 30~100Hz, tốc độ 5 lần/ 1s. Kết quả đo hiển thị trên LCD với 2 số lẻ. Hiển thị bằng màn hình LCD 2 dòng. Hiển thị dấu phẩy động. Các phím điểu khiển chọn chế độ làm việc và hiển thị. CHƯƠNG II: TÔNG QUAN VỀ PHƯƠNG PHÁP ĐO Việc đo công suất thực chất cũng là việc đo các đại lượng điện mà cơ bản nhất là dòng và áp. Từ những tính toán đó mà ta có thể tính ra các công suất của tải cần đo.Vì vậy trong các công trình nghiên cứu khoa học người ta luôn quan tâm đến các phương pháp và thiết bị đo dòng điện, điện áp. 2.1. Các phương pháp và thiết bị đo dòng điện Có thể đo dòng điện bằng các phương pháp trực tiếp, gián tiếp và so sánh(phương pháp bù). a. Các phương pháp đo dòng Phương pháp đo trực tiếp: Người ta dùng các dụng cụ đo dòng điện như ampemet,miliampemet roampemet…để đo dòng điện và đọc trực tiếp kết quả trên thang chia độ dụng cụ đo. Phương pháp đo gián tiếp: Người ta có thể dùng vônmet đo điện áp rơi trên một điện trở mẫu, thông qua tính toán ta sẽ có dòng điện cần đo. Phương pháp so sánh: Người ta đo dòng điện bằng cách so sánh điện áp cần đo với điện áp mẫu, chính xác; Ở trạng thái cân bằng của dòng cần đo và dòng mẫu sẽ đọc được điện áp trên mẫu. Việc so sánh này có thể là trực tiếp hoặc gián tiếp. Yêu cầu đối với các dụng cụ đo dòng điện: Khi đo dòng điện ta phải mắc nối tiếp Ampemet với dòng điện cần đo. Ampe mét này lấy một phần năng lượng của mạch cần đo, gây sai số phương pháp cho phép. Phần năng lượng này còn còn gọi là công suất tiêu thụ của Ampemet, được tính: PA = IA2.RA Trong phép đo dòng điện thì PA càng nhỏ càng tốt, tức là yêu cầu RA càng nhỏ càng tốt. Khi đo dòng điện xoay chiều, điện trở của ampemet còn chịu ảnh hưởng của tần số(XL=.L:phần trở kháng của cuộn dây). Để bảo đảm cấp chính xác của dụng cụ đo, người ta thiết kế các dụng cụ đo dòng xoay chiều ở các miền tần số sử dụng nhất định. Nếu sử dụng dụng cụ đo ở những miền tần số khác thiết kế thì sẽ gây sai số do tần số. b.Một số thiết bị đo đại lượng điện Các ampemet xoay chiều: Để đo dòng điện xoay chiều ở miền tần số công nghiệp ta thường dùng các ampemet điện từ, điện động và sắt điện động. Đo dòng điện ở miền tần số âm tần và có thể dung nhiều thang đo khác nhau, người ta thường dung ampe vòng từ điênj chỉnh lưu. Ampe nhiệt điện được dung để đo dòng điện xoay chiều có tần số cao và siêu cao. Ampemet điện từ: Được chế tạo dựa trên cơ cấu chỉ thị điện từ. Mỗi cơ cấu chỉ thị điện từ được chế tạo với số vòng nhất định(I.W). với cơ cấu cuộn dây tròn thường có I.W= 200A.vòng; cuộn dây dẹt có I.W= 100÷150A.vòng. Loại mạch từ khép kín I.W= 50÷1000A.vòng. Như vậy để mở rộng thang đo của ampemet điện từ chỉ cần thay đổi như thế nào để đảm bảo I.W=cosnt. Ampemet điện từ nhiều thang đo được chế tạo bằng cách chia cuộn dây tĩnh bằng nhiều phân đoạn bằng nhau, thay đổi cách nối các phân đoạn này để tạo các thang đo khác nhau. Phương pháp phân đoạn cuộn dây tĩnh của cơ cấu điện từ cũng chỉ áp dụng để chế tạo ampemet điện từ có nhiều nhất là 3 thang đo, vì tăng số lượng thang đo thì việc bố trí mạch chuyển thang đo rất phức tạp và không thể thực hiện được. Người ta thường dung biến dòng kết hợp với ampemet điện từ để mở rộng giới hạn đo dòng điện xoay chiều. Ampemet điện động: Thường dung để đo dòng điện ở miền tần số cao hơn tần số công nghiệp (cỡ 400-2000Hz). Ampemet điện động có độ chính xác cao với tín hiệu điện xoay chiều(0,2-0,5) nên được sử dụng làm dụng cụ mẫu. Có hai loại sơ đồ mạch của ampemet điện động: khi dòng điện cần đo nhỏ hơn hoặc bằng 0,5A thì trong mạch cuộn dây động và cuộn dây tĩnh mắc nối tiếp với nhau. Khi dòng cần đo >0,5A thì trong mạch cuộn dây động và cuộn dây tĩnh mắc song song với nhau. a). Mắc nối tiếp b) Mắc song song Hình 2.1: Cách sắp xếp ampemet điện động A:là cuộn dây tĩnh B:là cuộn dây động Các phần tử R,L trong sơ đồ ampemet điện động đo dòng lớn hơn 0,5A dùng để tạo mạch bù sai số do tần số và làm cho dòng điện trong cuộn dây động và cuộn dây tĩnh đồng pha nhau. Cách mở rộng thang đo và chế tạo ampemet điện động nhiều thang đo giống như ampemet điện từ. Sai số do tần số của các ampemet điện từ và điện động ở tần số vài Khz đến vài chục Khz khá lớn. Vì vậy để đo dòng điện âm tần người ta thường dùng các ampemet điện từ chỉnh lưu. Ampemet chỉnh lưu: Là ampemet kết hợp cơ cấu chỉ thị tù điện và mạch chỉnh lưu bằng diode hoặc chỉnh lưu bằng cặp nhiệt điện nhiệt ngẫu. Chỉnh lưu dòng điện theo nửa chu kì hay 2 nửa chu kì. Nói chung các ampemet chỉnh lưu, chính xác không cao vì hệ số chỉnh lưu thay đổi theo nhiệt độ, trong đó khi nhiệt độ thay đổi điện trở thuận và điện trở ngược của diode thay đổi không như nhau(cụ thể khi nhiệt độ tăng, điện trở ngược của diode giảm nhiều hơn điện trở thuận) dẫn đến hệ số chỉnh lưu sẽ giảm. 2.2.Các phương pháp và thiết bị đo điện áp a.Phương pháp đo Đo điện áp bằng phương pháp so sánh: +Cơ sở của phương pháp so sánh: Phương pháp này là đem điện áp cần đo so sánh với điện áp rơi trên điện trở mẫu. Phương pháp này còn gọi là phương pháp bù. Hình 2.2: Sơ đồ nguyên lí đo điện áp bằng phương pháp so sánh +Nguyên lí: Uk=I.Rk Uk là điện áp mẫu chính xác cao được tạo bởi dòng điện ổn định chạy qua điện trở mẫu chính xác R k Chỉ thị là thiết bị từ động phát hiện sự chênh áp ∆U=Ux-Uk b.Các thiết bị đo điên áp Các vôn mét điện tử: Trong đo lường khi đo điện áp nguồn công suất nhỏ hay đo đo dòng nhỏ hơn dòng qua cơ cấu chỉ thị, người ta phải tìm cách tăng độ nhạy của thiết bị đo. Một trong những biện pháp tăng độ nhạy là khuêch đại. Ngoài ra do yêu cầu do yêu cầu điện trở của phép đo áp là điện trở của vôn mét càng lớn càng tốt. Để thỏa mãn nhu cầu trên người ta đã chế tạo ra các vôn mét điện tử. Về cấu trúc, vôn mét điện tử là tập hợp của các bộ chỉnh lưu khuêch đại và cơ cấu chỉ thị từ điện. Điều chế C.T Giải điều chế Hình2.3 :Sơ đồ khối vôn mét điện tử Các vôn mét chỉ thị Vôn mét chỉ thị dùng vi xử lí +Nguyên lí làm việc: Để nâng cao tính năng của vôn mét chỉ thị số ta sử dụng vi xử lí uP. Ta xét một vôn mét có vi xử lí được thực hiện theo phương pháp thời gian xung. Bộ vào Ux: có nhiệm vụ biến đổi tín hiệu vào Ux(t) biến áp một chiều thành xoay chiều…đây chính là điện áp cần đo. Bộ so sánh: Đầu vào là điện áp cần đo Ux và điện áp mẫu U0 Bộ tích phân: Tạo xung răng cưa uP: vi xử lí, đây là khối xử lí chính. Mọi tín hiệu được đưa qua đây để xử lí và hiển thị +Cơ cấu phím và chỉ thị. Bộ vi xử lí sẽ tính ra giá trị điện áp cần đo là: Ux= N1: Số xung răng cưa trong khoảng thời gian ∆t1 N2: là số xung chuẩn qua timer trong khoảng thời gian ∆t2 N3:số xung từ bộ so sánh qua bộ vi xử lí trong thời gian ∆t1 C: hệ số phụ thuộc vào tính chất của dụng cụ đo và đơn vị đo điện áp Ưu điểm:Của phương pháp này là thang đo không đổi, có thể hiệu chỉnh điểm “không” và điểm cực đại của dải đo, sự không ổn định của các thông số các phần tử của mạch(theo thời gian hay nhiệt độ) không ảnh hưởng đến độ chính xác của dụng cụ đo… 2.3. Một số phương pháp đo công suất Công suất và năng lượng là các đại lượng cơ bản của phần lớn các đối tượng, quá trình và hiện tượng vật lý. Vì vậy việc xác định công suất và năng lượng là một phép đo rất phổ biến. Việc nâng cao độ chính xác của phép đo đại lượng này có ý nghĩa rất to lớn trong nền kinh tế quốc dân, nó liên quan đến việc tiêu thụ năng lượng, đến việc tìm những nguồn năng lượng mới, đến việc tiết kiệm năng lượng.Công suất cũng như năng lượng có mặt dưới nhiều dạng khác nhau đó là: năng lượng điện, nhiệt cơ, công suất, phát xạ...tuy nhiên quan trọng nhất vẫn là việc đo công suất và năng lượng điện, còn các dạng năng lượng khác cũng thường được đo bằng phương pháp điện. Dải đo của công suất điện thường từ W đến W. Công suất và năng lượng điện cũng cần phải được đo trong dải tần rộng từ không (một chiều) đến Hz và lớn hơn. . Công suất tác dụng trong mạch xoay chiều một pha: Được xác định như là giá trị trung bình của công suất trong một chu kỳ T: P = = trong đó: p, u, i là các giá trị tức thời của công suất, áp và dòng. Trong trường hợp khi dòng và áp có dạng hình sin thì công suất tác dụng được tính là : P = U.I.cos hệ số cos được gọi là hệ số công suất. Còn đại lượng S = U.I gọi là công suất toàn phần được coi là công suất tác dụng khi phụ tải là thuần điện trở tức là, khi cos = 1. Khi tính toán các thiết bị điện để đánh giá hiệu quả của chúng, người ta còn sử dụng khái niệm công suất phản kháng. Đối với áp và dòng hình sin thì công suất phản kháng được tính theo : Q = U.I.sin Trong trường hợp chung nếu một quá trình có chu kỳ với dạng đường cong bất kỳ thì công suất tác dụng là tổng các công suất của các thành phần sóng hài. P = = Hệ số công suất trong trường hợp này được xác định như là tỉ số giữa công suất tác dụng và công suất toàn phần: Kp = và khi hình sin thì: Kp = cos. Các thiết bị Đo công suất trong mạch một chiều và xoay chiều một pha. Có các phương pháp đo cơ bản sau: _ Đo theo phương pháp cơ điện: Công suất trong mạch một chiều có thể đo được bằng cách đo điện áp đặt vào phụ tải U và dòng I qua phụ tải đó. Kết quả là tích của hai đại lượng đó. Tuy nhiên đây là phương pháp gián tiếp, phương pháp này có sai số của phép đo bằng tổng sai số của hai phép đo trực tiếp (đo điện áp và đo dòng điện). . Với watmet điện động có thể đạt tới cấp chính xác là 0,01÷0,1 với tần số dưới 200Hz và trong mạch một chiều, ở tần số từ 200Hz ÷ 400Hz thì sai số đo là 0,1% và hơn nữa. Với watmet sắt điện động với tần số dưới 200Hz sai số đo là 0,1 ÷ 0,5 % còn với tần số từ 200Hz ÷ 400Hz thì sai số đo là 0,2 % và hơn nữa. + Đo công suất trong mạch xoay chiều một pha bằng watmet điện động: α = .I.Iu .cos. Nếu = const thì: α = s.U.I. cos( - ).cos Từ biểu thức trên thấy số chỉ của watmet tỉ lệ với công suất khi γ = 0 hoặc khi γ = Điều kiện thứ nhất γ = 0 có thể đạt được bằng cách tạo ra cộng hưởng điện áp trong mạch song song (ví dụ bằng cách mắc tụ C song song với điện trở RP). Nhưng cộng hưởng chỉ giữ được khi tần số không đổi, còn nếu tần số thay đổi thì điều kiện γ = 0 bị phá vỡ. Sai số góc: khi γ ≠ 0 thì watmet đo công suất với một sai số β γ gọi là sai số góc: β γ = = = + tg. sin - 1 Trong hầu hết các watmet sai số này tăng khi cos giảm, thường thì góc γ rất nhỏ do đó mà cosγ ≈ 1 và sinγ ≈ γ như vậy: βγ ≈ γ.tg Khi = thì β γ → ∞ vì vậy thay cho sai số tương đối thường dùng sai số tương + Đo công suất trong mạch xoay chiều một pha bằng Watmet sắt điện động _ Đo theo phương pháp điện: Khi đo công suất trong mạch một chiều và xoay chiều một pha theo phương pháp điện thì phép nhân được thực hiện bởi mạch nhân điện tử tương tự và số. Tín hiệu ra của chúng là hàm của công suất cần đo. Các phương pháp đo công suất bằng phương pháp điện phổ biến gồm: + Đo công suất bằng Watmet chỉnh lưu điện tử Mạch nguyên lý của một watmet chỉnh lưu điện tử với mạch bình phương được thực hiện bằng một điốt bán dẫn như hình 10.2. Watmet có hai điện trở trong mạch dòng là RS1 = RS2 có giá trị của nhỏ hơn rất nhiều so với tổng trở tải ZL và hai điện trở R3 và R4 trong mạch áp. Các điện trở R3 và R4 thực hiện vai trò của mạch phân áp vì vậy (R3 + R4) lớn hơn rất nhiều điện trở tải ZL. Hình 2.4 Mạch nguyên lý của 1 wamet chỉnh lưu điện tử với mạch bình phương Điện áp rơi trên các điện trở sun RS1 = RS2 tỉ lệ với dòng tải k1i. Điện áp rơi trên điện trở R3 của mạch phân áp tỉ lệ với điện áp rơi trên phụ tải k2u. Theo mạch điện thì điện áp u1 và u2 trên các điốt D1 và D2 sẽ tương ứng là : u1 = k2u + k1i u2 = k2u – k1i Khi đặc tính của các điốt như nhau và làm việc trên vôn.ampe (dòng tỉ lệ với bình phương điện áp): i1 = β. = β.(k2u + k1i) i2 = β. = β.(k2u - k1i) Dòng qua cơ cấu chỉ thị sẽ là: ict = (i1 – i2). Thay i1, i2 vào biểu thức ict có : ict = . β [ (k2u + k1i)- (k2u + k1i)] = k.u.i với k = 4k1.k2. . β giả sử u = Um sin ωt, i = Im sin(ωt ± ϕ) thì dòng đi qua cơ cấu chỉ thị từ điện sẽ là dòng trung bình tỉ lệ với công suất tác dụng: ict = = = k.U.I. cos = k.P với P là công suất cần đo. Như vậy đọc kết quả của cơ cấu chỉ thị từ điện sẽ suy ra được công suất cần đo. Các đặc điểm cơ bản của atmet chỉnh lưu điện tử dùng điốt: có độ chính xác không cao (chủ yếu là do đặc tính của các điôt không giống nhau). Sai số cỡ ±1,5 ÷ 6%. Độ nhạy thấp, công suất tiêu thụ lớn. Dải tần tín hiệu khoảng vài chục kHz. + Watmet dùng phương pháp điều chế tín hiệu: dựa trên việc nhân các tín hiệu uu (tỉ lệ với điện áp trên tải cần đo) và ui (tỉ lệ với dòng điện trên tải cần đo) trên cơ sở điều chế hai lần tín hiệu xung. Các tín hiệu tương tự uu và ui được biến đổi thành tần số, chu kì, biên độ, độ rộng của tín hiệu xung sau đó lấy tích phân. Thông dụng nhất là kết hợp giữa các loại điều chế sau đây: Điều chế độ rộng xung với điều chế biên độ xung: (ĐRX-BĐX). Điều chế độ rộng xung với tần số xung : (ĐRX-TSX). Điều chế tần số xung và biên độ xung: TSX-BĐX. Xét watmet dựa trên phương pháp ĐRX–BĐX: có sơ đồ cấu trúc như hình 10.5a và nguyên lý như hình 2.5 Tín hiệu vào ui được điều chế thành độ rộng t của xung (ĐRX) được phát ra từ máy phát tần số chuẩn f0 = Ở đầu ra của điều chế ĐRX có các xung với độ rộng ti = k.ui, tín hiệu này sẽ được đặt vào bộ điều chế biên độ xung BĐX và được điều chế biên độ bằng tín hiệu uu(t). Khi T0 → 0 thì diện tích của mỗi xung ở đầu ra của bộ điều chế biên độ tỉ lệ với công suất tức thời : S(t) = uuti = k..uu.ui Hình 2.5 Watmet theo phương pháp điều chế độ rộng xung với điều chế biên độ xung Như vậy điện áp ra của bộ tích phân (TP) sẽ có giá trị tỉ lệ với công suất trung bình P (H.10.5b). Sai số của các watmet sử dụng các cặp điều chế là ở chỗ độ dài của chu kì điều chế bị hạn chế. Điều này làm cho dải tần bị hạn chế. Ở Nhật Bản phương pháp điều chế đã được sử dụng để chế tạo chuẩn đơn vị công suất điện trong khoảng tần số từ 40Hz đến 10.00Hz có độ chính xác cao với sai số hệ thống từ 0,01÷0,2%. 2.4. Đo góc lệch pha -Góc lệch pha cùng với tần số và biên độ là một trong những thông số cơ bản của quá trình tạo dao động. -Giả sử ta có hai tín hiệu dòng điện và điện áp có phương trình như sau: I=Im.sin(ωt+φ1) U=Um.sin(ωt+φ2) φ = φ2-φ1 : độ lệch pha của điện áp so với dòng điện Thông thương góc lệch pha giữa điện áp và dòng điện nằm trong khoảng từ 0-3600 và được đo bởi radian,thời gian hay biên độ Có nhiều phương pháp đo độ lệch pha -Dựa vào phương pháp biến đổi ta có thể chia thành :Phương pháp biến đổi thẳng và phương pháp biến đổi bù -Dựa vào cách lấy thông tin đo có thẻ chia thành phương pháp sử dụng thông tin khi tín hiệu vượt quá một mức nhất định và phương pháp dùng toàn bộ thông tin nhận được. Nhóm thứ nhất được sử dụng khi ít nhiễu hay tỷ số giữa tín hiệu trên nhiễu lớn Nhóm thứ 2 được sử dụng khi tín hiệu nhiễu lớn hay tỷ số giữa tín hiệu trên nhiễu nhỏ -Trong hệ thống điện,một thông số rất được quan tâm đó là hệ số công suất cosφ. Để đo cosφ ta có nhiều phương pháp.Ta có thể đo φ đẻ suy ra hệ số công suất hay hay ngược lại . Có thể đo hệ số cosφ bằng phương pháp gián tiếp,sử dụng công cụ watmet,vônmet và ampemet,sau đó tính ra cosφ bằng cosφ = . Phương pháp này độ chính xác thấp vì sai sso phép đo bằng tổng sai số của cả 3 dụng cụ đo. Một số phương pháp đo góc lệch pha: Đo góc lệch pha bằng phương pháp biến đổi thẳng (đo trực tiếp ) Fazomet điện động: Dụng cụ để đo góc pha và hệ số cosφ là FaZomet. Thông thường nhất là dụng cụ sử dụng cơ cấu chỉ thị logomet điện động ở mạch song song cuộn động 1 được mắc nối tiếp với 1 cuộn cảm L1 dòng đi qua cuộn dây là I1 cuộn hai được mắc nối tiếp với điện trở R2 nên dòng điện I2 trùng pha với điện áp U.theo công thức của cơ cấu ghi chỉ thị logomet điện động ta có: f(α)= Ta tìm cách cho I1=I2 ta suy ra: α=φ Như vậy độ lệch pha của cơ cấu được xác định bởi góc φ Nhược điểm: của loại Fazomet này là nó chỉ được tính cho một cấp điện áp.Nếu thay đổi điến áp thì phải thay đổi R1 và điện cảm L2 do đó mà đãn đến thay đổi góc β.Ngoài ra còn phụ thuộc vào tần số vì mạch có cuộn cảm Để mở rộng thang đo vè dòng người ta nguwoif ta có thẻ phân cuộn tĩnh ra thành nhiều phần khác nhau mắc nối tiếp hoặc song song ta sẽ thu được sẽ thu được các cấp điện áp khác nhau Fazomet điện tử Nó dựa trên việc biến dổi góc lệch pha trực tiếp thành dòng hay áp.để đo góc lệch pha giữa hai tín hiệu hình sin.ta thực hiện theo sơ đồ (a) sau: a b Hình 2.6 Sơ đồ và góc của Fazomet điện tử Tín hiệu hình sin x1 và X2 qua các bộ tạo xung TX1 và TX2.Khi tín hiệu qua mức “0” tạo ra các xung U1’ và U2’(1b) các xung này được đưa tới các đàu vào trigo(S-R) .Nhu vậy các tín hiệu hinhd sin ở đàu vào nhờ các bộ tạo xung đã biến độ lệch pha thành khoảng thời gian giữa các xung.khi có sự tác động đàu vào của các xung này lên trigo xuất hiện tín hiệu I Tr ở đầu ra,và qua cơ cấu chỉ thị điện ta có một dòng trung bình : Itb=Im Im Trong đó :Im :là biên độ đầu ra trigo T-chu kỳ tín hiệu Từ đó ta có: φ = 3600 Nếu Im = cosφ thì đại lượng góc pha cần đo tỷ lệ với Itb.L thì suy ra góc pha Sai số của phép đo này cỡ +-(1-2%) chủ yếu là do sự biến động của Im và sai số của phép đo dòng trung bình Im (hình 2) và sai số của phép đo dòng trung bình Itb Hình 2.7 cơ cấu phép đo CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG 3.1 Sơ đồ khối của mạch nguyên lý Sơ đồ khối Gãc pha V§K ATmega16 LCD PhÝm bÊm Khèi m¹ch chuÈn ho¸ U,I Sơ đồ mạch nguyên lý 3.2 Đặc điểm của ATmega 16 AVR ATmega16 là vi điều khiển CMOS 8 bits tiêu thụ điện năng thấp dựa trên kiến trúc RISC ( Reduced Instruction Set Computer ). Với kiểu kiến trúc này cho phép các lệnh thực thi trong một chu kỳ xung nhịp, vì thế tốc độ xử lý dữ liệu có thể đạt 16 triệu lệnh trên giây ở tần số 16MHz. AVR ATmega16 cho phép người thiết kế có thể tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn bảo đảm tốc độ xử lý. Hình 3.1: Sơ đồ cấu trúc của AVR ATmega16. AVR ATmega16 có 32 thanh ghi làm việc đa năng. Toàn bộ 32 thanh ghi này đều được nối trực tiếp với bộ xử lý số học logic ALU (Arithmetic Logic Unit), cho phép truy nhập vào 2 thanh ghi độc lập trong một chu kỳ xung nhịp. Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng CISC thông thường Các đặc tính cua ATmega 16 Hình 3.2. Sơ đồ chân AVR ATmega16 Được chế tạo theo kiến trúc RISC tiên tiến nên hiệu suất làm việc cao, điện năng tiêu thụ thấp. Bộ lệnh gồm 131 lệnh, hầu hết đều thực thi chỉ trong một chu kỳ xung nhịp. 328 thanh ghi làm việc đa năng. Tốc độ xử lý dữ liệu có thể đạt đến 16 triệu lệnh/s ở tần số 16Mhz. 16Kb FlashROM lập trình ngay được trên hệ thống: - Giao tiếp nối tiếp cho phép lập trình ngay trên hệ thống. - Cho phộp 10000 lần ghi/xoá. Bộ EEPROM 512 bytes cho phộp 100000 lần ghi/xoá. Bộ nhớ SRAM 1Kb. Bộ biến đổi ADC 8 kênh, 10 bits. 32 ngừ I/O lập trình được. Bộ chuyển đổi nối tiếp đồng hồ vạn năng. Dải điện áp hoạt động: VCC = 4,55,5 (V). 2 bộ Timer/Counter 8 bits và 1 bộ Timer/Counter 16 bits với các chế độ làm việc: so sánh, chia tần tách biệt và bắt mẫu. 4 kênh điều chế bề rộng xung PWM. Bộ đếm thời gian thực với bộ tạo dao động riêng. Hỗ trợ bộ truyền nhận UART lập trình được. Hỗ trợ giao diện truyền thụng SPI chủ/tớ. Hỗ trợ bộ định thời Watchdog với bộ tạo dao động riêng, cho phép lập trình được và tự động reset khi treo máy. Hỗ trợ bộ so sánh tương tự. 6 chế độ ngủ: chế độ rỗi ( Idle ), chế độ tiết kiệm điện ( Power-Save ), chế độ giảm nhiễu ADC ( ADC Noise Reduction ), chế độ chờ ( Standby ), chế độ chờ mở rộng ( Extended Standby ) và chế độ giảm bớt điện năng ( Power-Down ). - Chế độ rỗi ( Idle ): Trong chế độ rỗi, CPU không thực thi chức năng nhưng vẫn cho phép USART, giao diện nối tiếp 2 chiều hướng byte, bộ biến đổi ADC, SRAM, Timer/Counter, các port SPI và ngắt hệ thống hoạt động. - Chế độ giảm bớt điện năng ( Power-Down ): Trong chế độ giảm bớt điện năng, nội dung thanh ghi vẫn được bảo vệ nhưng bộ tạo dao động, các chức năng khác của chíp không hoạt động cho đến khi xuất hiện ngắt ngoài tiếp theo hoặc reset phần cứng. - Chế độ tiết kiệm điện ( Power-Save ): Trong chế độ tiết kiệm điện, bộ định thời không đồng bộ vẫn hoạt động cho phép người dựng sử dụng làm cơ sở hoạt động cho toàn hệ thống mặc dù thiết bị đang trong chế độ ngủ. - Chế độ giảm nhiễu ADC ( ADC Noise Reduction ): Trong chế độ giảm nhiễu ADC, CPU và tất cả các module I/O đều không hoạt động trừ bộ định thời không đồng bộ và bộ biến đổi ADC, để làm giảm đến mức tối thiểu nhiễu chuyển mạch trong suốt quá trình biến đổi của ADC. - Chế độ chờ ( Standby ): Ở chế độ chờ, thạch anh/bộ tạo dao động vẫn hoạt động trong khi đó toàn hệ thống ở trạng thái ngủ. Nó cho phép hệ thống thực hiện quá trình khởi động nhanh với mức tiêu thụ điện áp thấp. - Chế độ chờ mở rộng ( Extended Standby ): Ở chế độ chờ mở rộng, cả bộ tạo dao động chính và bộ định thời không đồng bộ vẫn tiếp tục hoạt động. Các chân tín hiệu của bộ vi xử lý dùng để đưa tín hiệu vào hay xuất tín hiệu ra. Nó bao gồm 3 BUS chính: BUS địa chỉ, BUS dữ liệu, BUS điều khiển nhưng thông thường được phân thành các nhóm cụ thể như sau: Nhóm các chân nguồn cấp: để đưa các nguồn nuôi cho bộ vi xử lý. - Chân 10 VCC nối +5V. - Chân 11 GND nối đất. Nhóm chân dữ liệu, địa chỉ (trạng thái): các tín hiệu này thường là 3 trạng thái, trong đó địa chỉ là tín hiệu ra, còn dữ liệu thì cả 2 chiều. Một số bộ vi xử lý dựng một số chân để truyền cả tớn hiệu địa chỉ và dữ liệu. Có thể đối với AVR ATmega16 là các đường tín hiệu 3 trạng thái, mức tích cực dương, gồm các chân: - Port A (PA7...PA0): gồm các chân từ 3340. Port A dựng làm các đầu vào tương tự cho bộ biến đổi ADC, hoặc dựng làm một cổng vào/ra 2 chiều 8 bits khi bộ biến đổi ADC không được sử dụng. Các bộ đệm ra của port A có đặc điểm hướng đối xứng với cả chế độ sink( ) và chế độ nguồn (source). Khi các chân tín hiệu từ PA0 đến PA7 được sử dụng làm đầu vào và mức tích cực đặt vào các chân là thấp thì chúng sẽ cấp dòng khi các điện trở treo bên trong hoạt động. Các chân tín hiệu của port A là ba trạng thái khi một trạng thái reset được kích hoạt, ngay cả khi bộ phát xung clock không chạy. - Port B (PB7...PB0): gồm các chân từ 18. Port B là một cổng vào/ra 2 chiều 8 bits với các điện trở treo bên trong (dành riêng cho mỗi bit). Các bộ đệm ra của port B có đặc điểm hướng đối xứng với cả chế sink ( ) và chế độ nguồn (source). Khi là đầu vào, các chân tín hiệu port B được đặt vào mức tích cực thấp sẽ cấp dòng khi các điện trở treo hoạt động. Các chân tín hiệu của port B là ba trạng thái khi có một trạng thỏi reset được kích hoạt, ngay cả khi bộ phát xung clock không chạy. - Port C (PC7...PC0): gồm các chân từ 2229. Port C là một cổng vào/ra 2 chiều 8 bits với các điện trở treo bên trong (dành riêng cho mỗi bit). Các bộ đệm ra của port C có đặc điểm hướng đối xứng với cả chế sink ( ) và chế độ nguồn (source). Khi là đầu vào, các chân tín hiệu port C được đặt vào mức tích cực thấp sẽ cấp dòng khi các điện trở treo hoạt động. Các chân tín hiệu của port C là ba trạng thái khi có một trạng thái reset được kích hoạt, ngay cả khi bộ phát xung clock không chạy. Nếu giao diện JTAG được cho phép, các điện trở treo của các chân PC5 (TDI), PC3 (TMS) và PC2 (TCK) sẽ hoạt động cho do có một trạng thỏi reset xuất hiện. - Port D (PD7...PD0): gồm các chân từ 1421. Port D là một cổng vào/ra 2 chiều 8 bits với các điện trở treo bên trong (dành riêng cho mỗi bit). Các bộ đệm ra của port D có đặc điểm hướng đối xứng với cả chế sink ( ) và chế độ nguồn (source). Khi là đầu vào, các chân tín hiệu port D được đặt vào mức tích cực thấp sẽ cấp dòng khi các điện trở treo hoạt động. Cỏc chõn tớn hiệu của port D là ba trạng thỏi khi cú một trạng thỏi reset được kích hoạt, ngay cả khi bộ phát xung clock không chạy. - Chân Reset (chân 9): reset đầu vào. Một mức tích cực thấp đặt lên chân này dài hơn chiều dài xung nhỏ nhất sẽ kích hoạt một trạng thái reset, ngay cả khi bộ phát xung clock không chạy. Những xung ngắn hơn không đảm bảo cho việc kích hoạt một trạng thái reset. - Chân XTAL1 (chân 13): là đầu vào của bộ khuếch đại phát xung ngược và là đầu vào của mạch điều khiển bộ phát xung clock bên trong. - Chân XTAL2 (chân 12): là đầu ra của bộ khuếch đại phát xung ngược. - Chân AVCC (chân 30): là chân nguồn cấp cho port A và bộ biến đổi ADC. Nó có thể nối ngoài với VCC ngay cả khi bộ biến đổi ADC không được sử dụng. Nếu bộ biến đổi ADC không được sử dụng thì nó có thể nối với VCC qua một bộ lọc thông thấp. - Chân AREF (chân 32): là chân tham chiếu tương tự cho bộ biến đổi ADC. 3.3 Khối phím bấm Giải thích sơ đồ khối phím bấm:Việc sử dụng bàn phím ở đây dựa trên sự chênh áp khi ấn các phím, điện áp được đưa về chip vđể xử lý. Như vậy việc dựa vào giá trị điện áp đưa vào chân chúng ta hoàn toàn có thể nhận biết được chúng ta đang bấm phím nào. Các tụ điện có giá trị 104 dùng để chống rung phím bấm.Như chúng ta đã biết phím bấm là 1 tiếp điểm cơ khí, do đó khi bấm thì các tiếp điểm sẽ không tiếp xúc với nhau một cách hoàn toàn.Như vậy tín hiệu ra sẽ gián đoạn, vi điều khiển sẽ dễ dàng bi nhận nhầm là phím được bấm nhiều lần. Hình 3.3 : Sơ đồ khối phím bấm 3.4 Khối LCD LCD (Liquist Crystal Display) là một loại màn hình hiển thị thông tin tiêu tốn ít năng lượng. Bình thường một LCD có loại 2, 4,… dòng, 16 cột, 80 ký tự trên mỗi dòng và kích thước mỗi ký tự là 5x7 dots hoặc 5x10dots. LCD có cách điều khiển và giao thức điều khiển được tương thích với chuẩn TTL. Trong hệ thống LCD hoạt động theo chuyển đổi Port dùng dữ liệu là 7 bit.LCD gồm 16 chân: Hình 3.4: Hình ảnh thực tế của LCD2x16 Hình 3.5: Sơ đồ ghép nối LCD Chức năng các chân của LCD STT Ký hiệu Nối với vi xử lý Mức logic Chức năng 1 Vss 0 V (Ground) 2 Vcc 5 V (Supply) 3 Vee Điều khiển độ sáng tối cho LCD 4 RS PB.0 H/L Bít dữ liệu 0 5 R/W PB.1 H/L Bít dữ liệu 1 6 E PB.2 xung L-H-L Bít dữ liệu 2 7 DB0 Đất H/L 8 DB0 Đất H/L 9 DB0 Đất H/L 10 DB0 Đất H/L 11 DB0 PB.4 H/L Bit dữ Liệu 3 12 DB0 PB.5 H/L Bit dữ Liệu 4 13 DB0 PB.6 H/L Bit dữ Liệu 5 14 DB0 PB.7 H/L Bit dữ Liệu 6 15 0 V (Ground) 16 5 V nguồn cấp cho đèn backlight. 3.5 Mạch nguồn Do nhu cầu sử dụng nguồn điện 12v ,-12v cho mạch nên chúng em đã thiết kê modul nguồn như hình vẽ . Điện áp xoay chiều qua cầu diode , sau đó qua các IC ổn áp 7812, 7805 rồi đến các khối lọc ,chỉnh lưu thì ta thu được điện áp một chiều cung cấp nguồn nuôi cho khối mạch trung tâm và khâu chuẩn hoá U.I Hình 3.6 : Sơ đồ mạch nguồn 3.6 Khối mạch chuẩn hóa U,I và mạch tạo góc pha 3.6.1 Mạch chuẩn hóa điện áp Mạch chuẩn hóa điện áp có nhiệm vụ biến đổi điện áp xoay chiều 0 – 100V thành điện áp 1 chiều từ 0 – 10V Sơ đồ mạch như sau: Hình 3.7: Mạch chuẩn hoá điện áp Mạch này được chia ra làm 3 tầng như sau: Tầng 1: Lọc tín hiệu có tần số lớn hơn 70Hz Tầng 2: Tầng khuếch đại Tầng 3: Chỉnh lưu chính xác Điện áp cần đo được cho qua biến áp đo lường hạ từ 15750V xuống 5V, điện áp này được lọc ở tầng 1 với chu kỳ TC = R2.C2 Mạch lọc này có tác dụng chặn lại những tín hiệu có tần số cao làm méo tín hiệu hình sin Hàm truyền đạt của mạch lọc: Vậy hàm truyền đạt của mạch lọc bao gồm: Chọn w =wC và fcắt =70 Hz Ta phải chọn R2, C2 phù hợp với công thức trên Chọn R1 = R2 = 33 KW, C2=68 nF . Hệ số khuếch đại của mạch lọc: Điện áp 5V khi đi qua mạch lọc sẽ giảm xuống còn 3,5V. Điện áp này được khuếch đại lên thong qua tầng 2 với hệ số khuếch đại như sau: Ở đó R4 =33KW , R3 = 15 KW Điện áp này qua chiết áp 20 KW để đưa ra điện áp vào mạch chỉnh lưu thành dòng điện áp 1 chiều đổi từ 0 – 10V 3.6.2 Mạch chuẩn hóa dòng điện Mạch này có nhiệm vụ chuyển tín hiệu dòng xoay chiều từ 0 – 5A thành điện áp 1 chiều từ 0 – 10V Hình 3.8: Mạch chuẩn hoá dòng điện Mạch này được chia làm 3 tầng như sau: Tầng 1: Lọc tín hiệu có tần số lớn hơn 70Hz Tầng 2: Tầng khuếch đại Tầng 3: Chỉnh lưu chính xác Dòng điện 5A qua biến dòng thứ cấp hạ xuống 0,25A, dòng này rơi trên điện trở 1 W tạo áp 0,25V. Điện áp này qua mạch lọc còn 0,25* 0,7= 0,175V. Điện áp này được khuếch đại ở tầng 2 tạo điện áp khoảng 7,8 V, Như vậy: hệ số khuếch đại tầng này là lần Chọn R3 = 1,5KW , R4 = 68KW Điện áp đầu ra qua chiết áp đưa vào tầng chỉnh lưu tạo điện áp 1 chiều 10V 3.6.3 Mạch tạo góc pha Do chế độ làm việc của biến áp và biến dòng khác nhau nen khi 2 tín hiệu dòng và áp qua 2 thiết bị này bị lệch pha khác nhau vì vậy cần phải bù lệch pha. Phương pháp bù lệch pha được thực hiện như sau: cho 2 tín hiệu dòng điện và điện áp hình sin đồng pha nhau vào biến dòng và biến áp sau đó dung máy hiện song 2 tia đo độ lệch pha của 2 tín hiệu sau bộ lọc. Giả sử độ lệch pha của 2 tín hiệu là Dt thì giá trị của tụ được tính là: Ctụ = (R là điện trở phản hồi) Hình 3.9: Mạch tạo góc pha Nếu dòng điện nhanh pha hơn điện áp thì tụ bù được mắc song song với tụ điện ở mạch lọc dòng điện và ngược lại. Để đo góc lệch pha giữa U và I ta đưa tín hiệu U và I đã qua lọc và khuếch đại vào mạch so sánh tín hiệu đầu ra đưa vào mạch XOR tạo xung vuông, xung này có độ rộng bằng góc lệch pha, và được đưa vào cổng P1.6 của VĐK. CHƯƠNG IV: CHƯƠNG TRÌNH PHẦN MỀM /***************************************************** This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator Project : Version : Date : 11/19/2010 Author : Company : Comments: Chip type : ATmega16 Program type : Application Clock frequency : 12.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include #include #include #include #include #include #include // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #define ENTER PINB.1 #define UP PINB.3 #define DOWN PINB.2 #define ESC PINB.0 #define den PORTC.3 #define FIRST_ADC_INPUT 0 #define LAST_ADC_INPUT 3 unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1]; #define ADC_VREF_TYPE 0x20 float vo,i_out,pha,c,s,P,Q,F; unsigned char vi,i_in, dem=0; // ADC interrupt service routine // with auto input scanning interrupt [ADC_INT] void adc_isr(void) { static unsigned char input_index=0; // Read the 8 most significant bits // of the AD conversion result adc_data[input_index]=ADCH; // Select next ADC input if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index; // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; } unsigned char enter0=1,enter1=1,up0=1,up1=1,down0=1,down1=1,esc0=1,esc1=1; unsigned char key_enter,key_up,key_down,key_esc; //Bien trong menu. unsigned char menu=0,status=0,key_status; /* unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; ADCSRA|=0x40; while((ADCSRA&0x10)==0); ADCSRA|=0x10; return ADCW; } */ // hien thi so thuc void hienthi( float n,unsigned char x, unsigned char y) { char str[8];//khai bao chuoi ftoa(n,2,str);// conver tu so sang chuoi lcd_gotoxy(x,y); lcd_puts(str); } /* // hien thi so interger void inter(unsigned int n) { char str[8]; itoa(n,str); lcd_puts(str); } // hien thi so float void fload(float n) { char str[8]; ftoa(n,2,str); lcd_puts(str); } // Declare your global variables here void hienthi(unsigned char so,unsigned char x,unsigned char y) { unsigned char tram,truc,dv; tram=so/100; truc=(so-100*tram)/10; dv=(so-100*tram-10*truc); lcd_gotoxy(x,y); if(so>=100) { lcd_putchar(tram+48); lcd_putchar(truc+48); lcd_putchar(dv+48); } else if(so < 100) { lcd_putchar(truc+48); lcd_putchar(dv+48); } } */ void scan_key() { //Phim ENTER enter0=enter1;enter1=ENTER; if((enter0==1)&&(enter1==0)) { key_enter=1; } else key_enter=0; //Phim UP up0=up1;up1=UP; if((up0==1)&&(up1==0)) { key_up=1; den=1; } else key_up=0; //Phim DOWN down0=down1;down1=DOWN; if((down0==1)&&(down1==0)) { key_down=1; den=1; } else key_down=0; //Phim ESC esc0=esc1;esc1=ESC; if((esc0==1)&&(esc1==0)) { menu=0,status=0; den=1; } } void khoi_dong() { if(dem<200) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" U= "); hienthi(vo,5,0); lcd_gotoxy(0,1); lcd_putsf(" I= "); hienthi(i_out,5,1); } if(dem>200) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" P= "); hienthi(P,5,0); lcd_gotoxy(0,1); lcd_putsf(" cos0 = "); hienthi(c,7,1); } /* if(dem==300) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" cos= "); hienthi(c,5,0); */ } // void menu1() { if(key_up==1) { if(status==0)status=7; status--; } if(key_down==1) { status++; if(status==7)status=1; } key_status=status; switch(status) { case 0: if((status==0)||(menu==1)) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Che Do Hien Thi"); } break; case 1: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">HT Dien Ap?\n HT Dong Dien"); break; case 2: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">HT Dong Dien?\n Hien Thi CS "); break; case 3: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">Hien Thi CS ?\n Hien Thi CS PK "); break; case 4: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">Hien Thi CS PK?\n Hien Thi Cos "); break; case 5: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">Hien Thi Cos ?\n HT Tan So "); break; case 6: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(">HT Tan So ?\n HT Dien Ap "); default :break; } } // void menu2() { switch (key_status) { case 0: break; case 1: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" Dien Ap "); lcd_gotoxy(0,1); lcd_putsf(" U= "); hienthi(vo,5,1); break; case 2: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" Dong Dien "); lcd_gotoxy(0,1); lcd_putsf(" I= "); hienthi(i_out,5,1); break; case 3: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" Cong Suat "); lcd_gotoxy(0,1); lcd_putsf(" P= "); hienthi(P,5,1); break; case 4: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" CS Phan Khang "); lcd_gotoxy(0,1); lcd_putsf(" Q= "); hienthi(P,5,1); break; case 5: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" Cos0 "); lcd_gotoxy(0,1); lcd_putsf(" C= "); hienthi(c,5,1); break; case 6: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" Tan so "); lcd_gotoxy(0,1); lcd_putsf(" F= "); hienthi(F,5,1); break; } } //*************************************************** void start() { if(key_enter==1) { menu++; } if((menu==2)&&(status==0))menu=1; if(menu==4)menu=1; switch(menu) { case 0: khoi_dong();break; case 1: menu1();break; case 2: menu2();break; case 3: menu2(); break; default : break; } } void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0xff; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T PORTC=0x00; DDRC=0x08; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 750.000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff); ADCSRA=0xCC; // LCD module initialization lcd_init(16); // Global enable interrupts #asm("sei") while (1) { den=1; pha=adc_data[2]; pha=(float)(pha)/12000000-0.0018; c = cos(100*3.14*pha); vo=(float)adc_data[0]*12/10; i_out=(float)adc_data[1]*5/255; P=vo*i_out*c; Q=vo*i_out*sin(100*3.14*pha); s=sqrt(P*P+Q*Q); scan_key(); delay_ms(6); (float)F=pha/(Tx.3.14); ++dem; if(dem>500)dem=0; start(); if(F==52) F=48; }; } Tài liệu tham khảo [1]. Nguyền Viết Tiến,“Thiết kế mạch điện tử”, Trường đại học Công Nghiệp Hà Nội, 2008. [2]. Võ Minh Chính (chủ biên), Phạm Quốc Hải, Trần Trọng Minh,“Điện tử công suất”, Nhà xuất bản Khoa Học và Kỹ Thuật Hà Nội. [3]. Trần Văn Thịnh,“ Tài liệu hướng dẫn thiết kế thiết bị điện tử công suất”, Trường Đại học Bách Khoa Hà Nội, 2000. [4]. Ngô Diên Tập,”Vi xử lý trong đo lường và điều khiển”, Nhà xuất bản Khoa Học và Kỹ Thuật Hà Nội,2005 [5]. Lê Trung Thắng.”Vi điều khiển AVR-Atmega128”, Nhà xuất bản Khoa Học Tự Nhiên Tp Hồ Chí Minh.2008. [6]. Nguyễn Văn Tiềm, “Cảm biến đo lường”, Nhà xuất bản Giao Thông Vận Tải WebSite

Các file đính kèm theo tài liệu này:

  • docThiết kế đồng hồ kỹ thuật số dùng Atmega 16.doc
Luận văn liên quan