thiết kế đồng hồ kỹ thuật số dùng atmega 16

39 1.1K 4
thiết kế đồng hồ kỹ thuật số dùng atmega 16

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 MỤC LỤC CHƯƠNG I: ĐẶT VẤN ĐỀ Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển, thực chất, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi số sang tương tự tương tự sang số, Ở máy tính mơ đun thường xây dựng chíp mạch ngồi Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều 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 với cách mạng khoa học kỹ thuật vũ bão Kỹ thuật đo lường nói chung nhân tố định cho trình nghiên cứu sản xuất Cho đến phát triển khoa học kỹ thuật giai đoạn thay cho trình lao động chân tay q trình sản xuất tự động hố phần tồn phần máy móc làm việc hồn tồn tự động cho khả giảm lao động trình sản xuất làm tăng nhảy vọt suất lao động Con người khơng gắn liền với máy móc, thiết bị mà đóng vai trị kiểm tra hiệu chỉnh cần thiết Q trình sản xuất tự tiến hành nhờ có kiểm tra, điểu khiển điều chỉnh thực tự động Đó thực chất qúa trình đo lường liên tục Con người làm nhiệm vụ quan sát trông coi giải hư hỏng gặp phải Không nằm ngồi tiến trình phát triển chung khoa học cơng nghệ, kỹ thuật đo lường nói chung kỹ thuật đo lường cơng suất điện nói riêng phát triển để đáp ứng nhu cầu mà thực tiễn đặt Hiện hầu hết các thiết bị giới chạy lượng điện, điện ngày đóng vai trị quan trọng q trình phát triển xã hội, điều khơng thể phủ nhận Chính việc đo, giám sát công suất tiêu thụ điện thiết bị điện tất yếu Nó sở để tính giá thành điện đóng vai trị quan trọng trình đo lường giám sát hệ thống điện Nhóm đồ án 1 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 hay thiết bị điện, việc có ý nghĩa quan trọng cho hoạt động hệ thống điện đảm bảo an toàn cho máy móc thiết bị người vận hành Vì ứng dụng vi xử lý quan trọng mà ta cần nghiên cứu đồng hồ kỹ thuật số đo đại lượng điện sử dụng VĐK atmega16 Hiện thị trường có 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 lần/1 giây Kết đo hiển thị LCD với số lẻ Đo dòng điện hiệu dụng, dải đo dòng điện 0~20A, tốc độ đo lần/1 giây Kết đo hiển thị LCD với số lẻ (Ví dụ 3.46) Đo tần số, dải đo 30~100Hz, tốc độ lần/ 1s Kết đo hiển thị LCD với số lẻ Hiển thị hình LCD 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 hiển thị Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 CHƯƠNG II: TÔNG QUAN VỀ PHƯƠNG PHÁP ĐO Việc đo công suất thực chất việc đo đại lượng điện mà dịng áp Từ tính tốn mà ta tính cơng suất tải cần đo.Vì cơng trình nghiên cứu khoa học người ta quan tâm đến phương pháp thiết bị đo dòng điện, điện áp 2.1 Các phương pháp thiết bị đo dịng điện Có thể đo dòng điện phương pháp trực tiếp, gián tiếp 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 dụng cụ đo dòng điện ampemet,miliampemet roampemet…để đo dòng điện đọc trực tiếp kết thang chia độ dụng cụ đo Phương pháp đo gián tiếp: Người ta dùng vơnmet đo điện áp rơi điện trở mẫu, thơng qua tính tốn ta có dịng điện cần đo Phương pháp so sánh: Người ta đo dòng điện cách so sánh điện áp cần đo với điện áp mẫu, xác; Ở trạng thái cân dòng cần đo dòng mẫu đọc điện áp mẫu Việc so sánh trực tiếp gián tiếp Yêu cầu 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 lấy phần lượng mạch cần đo, gây sai số phương pháp cho phép Phần lượng còn gọi cơng suất tiêu thụ Ampemet, tính: PA = IA2.RA Trong phép đo dịng điện PA nhỏ tốt, tức yêu cầu RA nhỏ tốt Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Khi đo dòng điện xoay chiều, điện trở ampemet chịu ảnh hưởng tần số(X L= ω L:phần trở kháng cuộn dây) Để bảo đảm cấp xác dụng cụ đo, người ta thiết kế dụng cụ đo dòng xoay chiều miền tần số sử dụng định Nếu sử dụng dụng cụ đo miền tần số khác thiết kế gây sai số 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 ampemet điện từ, điện động sắt điện động Đo dòng điện miền tần số âm tần 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 dung để đo dịng điện xoay chiều có tần số cao siêu cao Ampemet điện từ: Được chế tạo dựa cấu thị điện từ Mỗi cấu thị điện từ chế tạo với số vòng định(I.W) với 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ư để mở rộng thang đo ampemet điện từ cần thay đổi để đảm bảo I.W=cosnt Ampemet điện từ nhiều thang đo chế tạo cách chia cuộn dây tĩnh nhiều phân đoạn nhau, thay đổi cách nối phân đoạn để tạo thang đo khác Phương pháp phân đoạn cuộn dây tĩnh cấu điện từ áp dụng để chế tạo ampemet điện từ có nhiều thang đo, tăng số lượng thang đo việc bố trí mạch chuyển thang đo phức tạp thự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 tần số công nghiệp (cỡ 400-2000Hz) Ampemet điện động có độ xác cao với tín hiệu điện xoay chiều(0,2-0,5) nên sử dụng làm dụng cụ mẫu Có hai loại sơ đồ mạch ampemet điện động: dòng điện cần đo nhỏ 0,5A mạch cuộn dây động cuộn dây tĩnh mắc nối tiếp với Khi dòng cần đo >0,5A mạch cuộn dây động cuộn dây tĩnh mắc song song với Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 a) Mắc nối tiếp b) Mắc song song Hình 2.1: Cách 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 sơ đồ ampemet điện động đo dòng lớn 0,5A dùng để tạo mạch bù sai số tần số làm cho dòng điện cuộn dây động cuộn dây tĩnh đồng pha Cách mở rộng thang đo chế tạo ampemet điện động nhiều thang đo giống ampemet điện từ Sai số tần số ampemet điện từ điện động tần số vài Khz đến vài chục Khz lớn Vì để đo dịng điện âm tần người ta thường dùng ampemet điện từ chỉnh lưu Ampemet chỉnh lưu: Là ampemet kết hợp cấu thị tù điện mạch chỉnh lưu diode chỉnh lưu cặp nhiệt điện nhiệt ngẫu Chỉnh lưu dịng điện theo nửa chu kì hay nửa chu kì Nói chung ampemet chỉnh lưu, xác khơng cao hệ số chỉnh lưu thay đổi theo nhiệt độ, nhiệt độ thay đổi điện trở thuận điện trở ngược diode thay đổi không nhau(cụ thể nhiệt độ tăng, điện trở ngược diode giảm nhiều điện trở thuận) dẫn đến hệ số chỉnh lưu giảm 2.2.Các phương pháp thiết bị đo điện áp a.Phương pháp đo Đo điện áp phương pháp so sánh: +Cơ sở phương pháp so sánh: Phương pháp đem điện áp cần đo so sánh với điện áp rơi điện trở mẫu Phương pháp gọi phương pháp bù Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Hình 2.2: Sơ đồ nguyên lí đo điện áp phương pháp so sánh +Nguyên lí: Uk=I.Rk Uk điện áp mẫu xác cao tạo dòng điện ổn định chạy qua điện trở mẫu xác R k Chỉ thị thiết bị từ động phát 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 đo điện áp nguồn công suất nhỏ hay đo đo dòng nhỏ dòng qua cấu thị, người ta phải tìm cách tăng độ nhạy thiết bị đo Một biện pháp tăng độ nhạy khuêch đại Ngoài yêu cầu yêu cầu điện trở phép đo áp điện trở vôn mét lớn tốt Để thỏa mãn nhu cầu người ta chế tạo vôn mét điện tử Về cấu trúc, vôn mét điện tử tập hợp chỉnh lưu khuêch đại cấu thị từ điện Điều chế Giải điều chế C.T Hình2.3 :Sơ đồ khối vôn mét điện tử Các vôn mét thị Vơn mét thị dùng vi xử lí +Ngun lí làm việc: Để nâng cao tính vơn mét thị số ta sử dụng vi xử lí uP Ta xét vơn mét có vi xử lí thực theo phương pháp thời gian xung Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Bộ vào Ux: có nhiệm vụ biến đổi tín hiệu vào Ux(t) biến áp chiều thành xoay chiều…đây điện áp cần đo Bộ so sánh: Đầu vào điện áp cần đo Ux điện áp mẫu U0 Bộ tích phân: Tạo xung cưa uP: vi xử lí, khối xử lí Mọi tín hiệu đưa qua để xử lí hiển thị +Cơ cấu phím thị Bộ vi xử lí tính giá trị điện áp cần đo là: Ux= C ( N − N1) N − N1 N1: Số xung cưa khoảng thời gian ∆t1 N2: số xung chuẩn qua timer khoảng thời gian ∆t2 N3:số xung từ so sánh qua vi xử lí thời gian ∆t1 C: hệ số phụ thuộc vào tính chất dụng cụ đo đơn vị đo điện áp Ưu điểm:Của phương pháp thang đo khơng đổi, hiệu chỉnh điểm “không” điểm cực đại dải đo, không ổn định thông số phần tử mạch(theo thời gian hay nhiệt độ) không ảnh hưởng đến độ xác dụng cụ đo… 2.3 Một số phương pháp đo công suất Công suất lượng đại lượng phần lớn đối tượng, trình tượng vật lý Vì việc xác định cơng suất lượng phép đo phổ biến Việc nâng cao độ xác phép đo đại lượng có ý nghĩa to lớn kinh tế quốc dân, liên quan đến việc tiêu thụ lượng, đến việc tìm nguồn lượng mới, đến việc tiết kiệm lượng.Cơng suất lượng có mặt nhiều dạng khác là: lượng điện, nhiệt cơ, công suất, phát xạ nhiên quan trọng việc đo công suất lượng điện, dạng lượng khác thường đo phương pháp điện Dải đo công suất điện thường từ 10−20 W đến 1010 W Công suất lượng điện cần phải đo dải tần rộng từ không (một chiều) đến 109 Hz lớn Công suất tác dụng mạch xoay chiều pha: Được xác định giá trị trung bình cơng suất chu kỳ T: T T 1 P = ∫ p.dt = ∫ u.i.dt T0 T0 Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 đó: p, u, i giá trị tức thời công suất, áp dòng Trong trường hợp dòng áp có dạng hình sin cơng suất tác dụng tính : P = U.I.cos ϕ hệ số cos ϕ gọi hệ số cơng suất Cịn đại lượng S = U.I gọi cơng suất tồn phần coi công suất tác dụng phụ tải điện trở tức là, cos ϕ = Khi tính tốn thiết bị điện để đánh giá hiệu chúng, người ta sử dụng khái niệm công suất phản kháng Đối với áp dịng hình sin cơng suất phản kháng tính theo : Q = U.I.sin ϕ Trong trường hợp chung q trình có chu kỳ với dạng đường cong cơng suất tác dụng tổng cơng suất thành phần sóng hài ∞ P= ∑P k=1 k ∞ = ∑ U I cosϕ k=1 k k Hệ số công suất trường hợp xác định tỉ số cơng suất tác dụng cơng suất tồn phần: Kp = P hình sin thì: Kp = cos ϕ S Các thiết bị Đo công suất mạch chiều xoay chiều pha Có phương pháp đo sau: _ Đo theo phương pháp điện: Cơng suất mạch chiều đo cách đo điện áp đặt vào phụ tải U dịng I qua phụ tải Kết tích hai đại lượng Tuy nhiên phương pháp gián tiếp, phương pháp có sai số phép đo tổng sai số hai phép đo trực tiếp (đo điện áp đo dịng điện) Với watmet điện động đạt tới cấp xác 0,01÷0,1 với tần số 200Hz mạch chiều, tần số từ 200Hz ÷ 400Hz sai số đo 0,1% Với watmet sắt điện động với tần số 200Hz sai số đo 0,1 ÷ 0,5 % cịn với tần số từ 200Hz ÷ 400Hz sai số đo 0,2 % + Đo công suất mạch xoay chiều pha watmet điện động: α= dM12 I.Iu cos δ dα D Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Nếu dM12 = const thì: dα α = s.U.I cos( ϕ - γ ).cos γ Từ biểu thức thấy số watmet tỉ lệ với công suất γ = γ = ϕ Điều kiện thứ γ = đạt cách tạo cộng hưởng điện áp mạch song song (ví dụ cách mắc tụ C song song với điện trở RP) Nhưng cộng hưởng giữ tần số khơng đổi, cịn tần số thay đổi điều kiện γ = bị phá vỡ Sai số góc: γ ≠ watmet đo cơng suất với sai số β γ gọi sai số góc: βγ= P’ − P cos(ϕ − γ ) − cosγ cosγ = = + tg γ sin γ - cosϕ P Trong hầu hết watmet sai số tăng cos ϕ giảm, thường góc γ nhỏ mà cosγ ≈ sinγ ≈ γ vậy: βγ ≈ γ.tg ϕ π Khi ϕ = β γ → ∞ thay cho sai số tương đối thường dùng sai số tương + Đo công suất mạch xoay chiều pha Watmet sắt điện động _ Đo theo phương pháp điện: Khi đo công suất mạch chiều xoay chiều pha theo phương pháp điện phép nhân thực mạch nhân điện tử tương tự số Tín hiệu chúng hàm cơng suất cần đo Các phương pháp đo công suất phương pháp điện phổ biến gồm: + Đo công suất Watmet chỉnh lưu điện tử Mạch nguyên lý watmet chỉnh lưu điện tử với mạch bình phương thực điốt bán dẫn hình 10.2 Watmet có hai điện trở mạch dịng R S1 = RS2 có giá trị nhỏ nhiều so với tổng trở tải ZL hai điện trở R3 R4 mạch áp Các điện trở R3 R4 thực vai trò mạch phân áp (R3 + R4) lớn nhiều điện trở tải ZL Nhóm đồ án GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Hình 2.4 Mạch nguyên lý wamet chỉnh lưu điện tử với mạch bình phương Điện áp rơi điện trở sun R S1 = RS2 tỉ lệ với dòng tải k 1i Điện áp rơi điện trở R mạch phân áp tỉ lệ với điện áp rơi phụ tải k 2u Theo mạch điện điện áp u u2 điốt D1 D2 tương ứng : u1 = k2u + k1i u2 = k2u – k1i Khi đặc tính điốt làm việc vơn.ampe (dịng tỉ lệ với bình phương điện i1 = β u1 = β.(k2u + k1i) áp): i2 = β u = β.(k2u - k1i) Dòng qua cấu thị là: ict = (i1 – i2) R rct Thay i1, i2 vào biểu thức ict có : ict = với k = 4k1.k2 R β [ (k2u + k1i) - (k2u + k1i) ] = k.u.i rct R β rct giả sử u = Um sin ωt, i = Im sin(ωt ± ϕ) dòng qua cấu thị từ điện dịng trung bình tỉ lệ với cơng suất tác dụng: T T k ict = ∫ k.u.i.dt = ∫ u.i.dt = k.U.I cos ϕ = k.P T0 T0 với P công suất cần đo Như đọc kết cấu thị từ điện suy cơng suất cần đo Nhóm đồ án 10 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Ta phải chọn R2, C2 phù hợp với công thức Chọn R1 = R2 = 33 KΩ, C2=68 nF Hệ số khuếch đại mạch lọc: K= = 0,7 Điện áp 5V qua mạch lọc giảm xuống 3,5V Điện áp khuếch đại lên thong qua tầng với hệ số khuếch đại sau: Ura = R4 Uvao R3 Ở R4 =33KΩ , R3 = 15 KΩ ⇒ Ura = 7,8V Điện áp qua chiết áp 20 KΩ để đưa điện áp vào mạch chỉnh lưu thành dòng điện áp chiều đổi từ – 10V 3.6.2 Mạch chuẩn hóa dịng điện Mạch có nhiệm vụ chuyển tín hiệu dịng xoay chiều từ – 5A thành điện áp chiều từ – 10V Hình 3.8: Mạch chuẩn hố dịng điện Mạch chia làm tầng sau: Tầng 1: Lọc tín hiệu có tần số lớn 70Hz Tầng 2: Tầng khuếch đại Tầng 3: Chỉnh lưu xác Nhóm đồ án 25 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Dòng điện 5A qua biến dòng thứ cấp hạ xuống 0,25A, dòng rơi điện trở Ω tạo áp 0,25V Điện áp qua mạch lọc 0,25* 0,7= 0,175V Điện áp khuếch đại tầng tạo điện áp khoảng 7,8 V, Như vậy: hệ số khuếch đại tầng 7.8 = 44.5 lần 0.175 Chọn R3 = 1,5KΩ , R4 = 68KΩ Điện áp đầu qua chiết áp đưa vào tầng chỉnh lưu tạo điện áp chiều 10V 3.6.3 Mạch tạo góc pha Do chế độ làm việc biến áp biến dòng khác nen tín hiệu dịng áp qua thiết bị bị lệch pha khác cần phải bù lệch pha Phương pháp bù lệch pha thực sau: cho tín hiệu dịng điện điện áp hình sin đồng pha vào biến dịng biến áp sau dung máy song tia đo độ lệch pha tín hiệu sau lọc Giả sử độ lệch pha tín hiệu ∆t giá trị tụ tính là: Ctụ = ∆t (R điện trở phản hồi) R Hình 3.9: Mạch tạo góc pha Nhóm đồ án 26 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Nếu dòng điện nhanh pha điện áp tụ bù mắc song song với tụ điện mạch lọc dòng điện ngược lại Để đo góc lệch pha U I ta đưa tín hiệu U I qua lọc khuếch đại vào mạch so sánh tín hiệu đầu đưa vào mạch XOR tạo xung vng, xung có độ rộng góc lệch pha, đưa vào cổng P1.6 VĐK Nhóm đồ án 27 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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 : 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 #define LAST_ADC_INPUT 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; Nhóm đồ án 28 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 // Read the 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 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) { Nhóm đồ án 29 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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)) { Nhóm đồ án 30 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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(dem200) { 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); */ } // Nhóm đồ án 31 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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; Nhóm đồ án 32 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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: Nhóm đồ án 33 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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; Nhóm đồ án 34 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 // 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 initialization // Clock source: System Clock // Clock value: Timer Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: Timer Stopped // Mode: Normal top=FFFFh // OC1A output: Discon // OC1B output: Discon // Noise Canceler: Off // Input Capture on Falling Edge // Timer 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; Nhóm đồ án 35 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 // Timer/Counter initialization // Clock source: System Clock // Clock value: Timer 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 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); Nhóm đồ án 36 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 scan_key(); delay_ms(6); (float)F=pha/(Tx.3.14); ++dem; if(dem>500)dem=0; start(); if(F==52) F=48; }; } Nhóm đồ án 37 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 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 Khoa Học 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ý đo lường điều khiển”, Nhà xuất Khoa Học Kỹ Thuật Hà Nội,2005 [5] Lê Trung Thắng.”Vi điều khiển AVR-Atmega128”, Nhà xuất 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 Giao Thông Vận Tải WebSite http://www.dientuvietnam.net/ http://www.tailieu.vn http://www.hocavr.com/ http://www.alldatasheet.com Nhóm đồ án 38 GVHD: Bùi Thị Duyên ... tốc độ xử lý liệu đạt 16 triệu lệnh giây tần số 16MHz Nhóm đồ án 15 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 AVR ATmega1 6 cho phép người thiết kế tối ưu hoá mức độ... Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Gãc pha Khèi m¹ch chuẩn hoá U,I LCD VĐK ATmega1 6 Phím bấm S mạch nguyên lý 3.2 Đặc điểm ATmega 16 AVR ATmega1 6 vi điều khiển CMOS... CISC thơng thường Các đặc tính cua ATmega 16 Nhóm đồ án 16 GVHD: Bùi Thị Duyên Đồ án: Thiết kế đồng hồ kỹ thuật số dùng Atmega 16 Hình 3.2 Sơ đồ chân AVR ATmega1 6 •Được chế •Bộ tạo theo kiến trúc

Ngày đăng: 28/04/2014, 19:04

Tài liệu cùng người dùng

Tài liệu liên quan