1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế và thi công mạch nghịch lưu đa cấp

117 317 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 117
Dung lượng 3,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong trường hợp nguồn điện ở đầu vào và đại lượng ở ngõ ra không giống nhau, ví dụ bộ nghịch lưu cung cấp dòng điện xoay chiều từ nguồn điện áp một chiều, ta gọi chúng là bộ nghịch lưu

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

TPHCM, Ngày Tháng Năm 2010 Chữ ký của giáo viên

Tống Thanh Nhân

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

TPHCM, Ngày Tháng Năm 2010

Chữ ký của giáo viên

Nguyễn Hữu Phước

Trang 3

MỤC LỤC

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

MỤC LỤC

LỜI CẢM ƠN

LỜI NÓI ĐẦU 1

CHƯƠNG 1 : DẪN NHẬP 2

1.1.ĐẶT VẤN ĐỀ 2

1.2.GIỚI HẠN ĐỀ TÀI 2

1.3.MỤC ĐÍCH NGHIÊN CỨU 2

1.4.PHƯƠNG PHÁP NGHIÊN CỨU 2

CHƯƠNG 2 : BỘ NGHỊCH LƯU 4

2.1.BỘ NGHỊCH LƯU ÁP 4

2.2 BỘ NGHỊCH LƯU ÁP MỘT PHA 5

2.3.BỘ NGHỊCH LƯU ÁP BA PHA 6

2.4.BỘ NGHỊCH LƯU ÁP ĐA BẬC 7

2.5.ĐIỆN ÁP BỘ NGHỊCH LƯU ÁP BA PHA 9

CHƯƠNG 3 : CẤU TRÚC BÊN TRONG CỦA PIC 16F877A 10

3.1 Sơ lược về vi điều khiển PIC16F877A 10

3.2 Sơ lược về các chân của PIC16F877A 11

3.3 Một số đặc điểm đặc biệt của CPU 16

3.4 Tổ chức bộ nhớ 23

3.4.1 Bộ nhớ chương trình 23

3.4.2 Bộ nhớ dữ liệu 24

3.5 Data EEPROM và Flash program memory 34

Trang 4

3.6 I/O Port 35

3.7.Timer 46

3.7.1.Timer0 46

3.7.2 Timer1 48

3.7.3 Timer2 51

3.8 Module CCP 52

3.8.1 Capture 53

3.8.2 Compare 53

3.8.3 PWM 54

3.9 Module MSSP (Master synchronous serial Port) 58

3.10 Bộ biến đổi ADC 60

3.11 Module comparator 66

3.12 Module điện áp tham chiếu so sánh 68

CHƯƠNG 4 : TÍNH TOÁN THI CÔNG MẠCH 71

4.1.Sơ đồ khối 71

4.2.Sơ đồ nguyên lý 72

4.3.Nguyên lý hoạt động 73

4.4.Tính toán mạch 84

4.4.1.Khối nguồn 84

4.4.2.Khối xử lý trung tâm 85

4.4.3.Khối giao tiếp 86

4.4.4.Khối đệm 87

4.4.5.Khối công suất 89

4.5 Lưu đồ giải thuật 90

4.6.Chương trình chính 91

4.7.Kết quả thi công mạch 104

CHƯƠNG 5 : KẾT LẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 109

Trang 5

5.1.Kết luận 109

5.2.Hướng phát triển của đề tài 109

PHỤ LỤC

TÀI LIỆU THAM KHẢO

Trang 6

Nhóm chúng em xin chân thành cảm ơn : Quí thầy cô trường CAO ĐẲNG KỸ THUẬT CAO THẮNG đã giảng dạy cho chúng em nhiều kiến thức quí báu Bộ môn điện tử cùng tất cả quí thầy cô trong khoa Điện tử - Tin học đã giảng dạy những kiến thưc chuyên môn làm cơ sở để thực hiện tốt đồ án tốt nghiệp và tạo điều kiện thuận lợi cho chúng em hoàn tất khóa học

Đặc biệt, thầy TỐNG THANH NHÂN – giáo viên hướng dẫn đề tài đã

nhiệt tình giúp đỡ và cho chúng em những lời chỉ dạy qúi báu, Giúp chúng em định hướng tốt trong khi thực thi đề tài

Tất cả các bạn đã giúp đỡ và động viên nhóm trong suốt quá trình làm đồ

án tốt nghiệp

Mai Văn Minh An

Lê Trung Hiếu Lớp CĐ ĐT 07A Khoa Điện Tử - Tin học

Trường Cao Đẳng Kỹ Thuật Cao Thắng TPHCM,Ngày 09 Tháng 07 Năm 2010

Trang 7

LỜI NÓI ĐẦU

Ngày nay, khi mà cả thế giới như đang nóng lên vì sự vận động, phát triển

về mọi mặt như kinh tế, chính trị, khoa học kỹ thuật….v…v Trong đó, những ứng dụng của khoa học kỹ thuật tiên tiến đã và đang làm cho thế giới ngày càng thay đổi, văn minh hơn và hiện đại hơn Sự phát triển của Kỹ thuật điện tử đã tạo

ra hàng lọat những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho họat động của con người đạt hiệu quả cao

Là một trong những sinh viên theo học ngành điện tử, bản thân cũng có những mong ước được góp một phần công sức cho xã hội bằng những việc làm

có ý nghĩa thực tế Từ những kiến thức đã được truyền đạt sau ba năm theo học tại trường Cao Đẳng Kỹ Thuật Cao Thắng, hoà mình vào xu hướng chung của thời đại, cùng sự nghiệp công nghiệp hoá hiện đại hoá đất nước, đề tài tốt nghiệp: “Thiết kế mạch nghịch lưu đa cấp ” ra đời

Đề tài là sự kết hợp giữa kiến thức và nhận thức công nghệ trong việc tạo

ra một sản phẩm có giá trị thực tiễn nên có rất nhiều yêu cầu được đặt ra cho sự hoàn thiện Trong suốt thời gian thực hiện đề tài là một quá trình làm việc nghiêm túc và nỗ lực của bản thân người thực hiện, cùng sự chỉ dẫn nhiệt tình của giáo viên hướng dẫn; song chắc chắn không tránh khỏi những hạn chế và thiếu sót Người thực hiện đề tài rất mong nhận được những ý kiến đóng góp quý báu cùng những phê bình, chỉ dẫn của Thầy Cô và các bạn sinh viên

Sinh viên thực hiện :

Mai Văn Minh An

Lê Trung Hiếu

Trang 8

CHƯƠNG 1 : DẪN NHẬP

1.1 ĐẶT VẤN ĐỀ:

Trong cuộc sống hàng ngày của chúng ta, điện là nhu cầu không thể thiếu trong cuộc sống hàng ngày cũng như trong các công ty, xí nghiệp,mà đôi khi lưới điện quốc gia không thể đáp tất cả những nhu cầu đó

Để góp phần đáp ứng đủ nguồn điện cung cấp cho những nhu cầu đó Cùng với sự phát triển của vi điều khiển em chọn đề tài ”Thiết kế và thi công mạch nghịch lưu đa cấp” Hệ thống này có các ưu điểm nổi bật sau:

 Đơn giản, dễ dàng thay đổi nhờ lập trình

 Tin cậy

 Khả năng xử lý nhanh và linh động

 Giá thành tương đối rẻ

1.2.GIỚI HẠN ĐỀ TÀI

Do giới hạn về thời gian, tài liệu tham khảo và nhiều điều kiện khách quan khác nhau, nên trong đề tài này em chỉ nghiên cứu với nội như sau:

 Tìm hiểu họ vi điều khiển PIC16F877A

 Tìm hiểu C căn bản cho PIC

 Thiết kế và thi công board điều khiển

 Viết chương trình điều khiển dựa trên phần cứng đã và thi công

1.3.MỤC ĐÍCH NGHIÊN CỨU

Giúp em nắm lại những kiến thức đã học, mở rộng kiến thức đã có Trong quá trình học tập ít va chạm nên khi làm đề tài sẽ giúp cho em va chạm thực tế sẽ bớt bở ngở sau khi ra trường đi làm

Em lựu chọn vi điều khiển PIC với những lí do sau đây:

 Tốc độ xử lý lớn hơn so với các bộ xử lý thông thường hoạt động cùng tần số của đồng hồ xung nhịp

 Các bộ xử lý PIC có kiến trúc Harvard và kiến trúc Von-Neunam

 Đối với kiến trúc harvard thì có bộ nhớ dữ liệu và bộ nhớ chương trình tách rời nhau Kiến trúc này giúp cho người viết chương trình dễ kiểm soát, gốp phần tăng tốc độ xử lý trong quá trình chạy chương trình

 Đối với kiến trúc Von-Neanam, bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung trong một bộ nhớ, do đó có thể tổ chức ,cân đối một cách linh họat bộ nhớ chương trình và bộ nhớ dữ liệu

 Giá thành rẻ Phổ biến rộng trên thị trường

 Tài liệu tham khảo đọc cũng dễ hiểu

1.4.PHƯƠNG PHÁP NGHIÊN CỨU:

1.4.1.Các bước tiến hành nghiên cứu :

 Chọn đề tài

 Chính xác hóa đề tài

 Soạn đề cương

Trang 9

 Thu thập tài liệu

 Kiểm tra và cho chạy thử trên mô hình

1.4.2 Đối tượng nghiên cứu:

 Họ vi điều khiển PIC 16F877A

 Lập trình C cho PIC

 Các chương trình hổ trợ trong quá trình làm như orcad 9.2(vẽ và thi công mạch in),CCS(dùng để viết chương trình)

1.4.3 Phương pháp nghiên cứu:

Sử dụng phương pháp quan sát và tham khảo tài liệu là chính

Trang 10

Nguồn một chiều cung cấp cho bộ nghịch lưu áp có tính chất nguồn điện

áp và nguồn cho bộ nghịch lưu dòng có tính nguồn dòng điện Các bộ nghịch lưu tương ứng được gọi là bộ nghịch lưu áp nguồn áp và bộ nghịch lưu dòng nguồn dòng hoặc gọi tắt la bộ nghịch lưu áp và bộ nghịch lưu dòng

Trong trường hợp nguồn điện ở đầu vào và đại lượng ở ngõ ra không giống nhau, ví dụ bộ nghịch lưu cung cấp dòng điện xoay chiều từ nguồn điện áp một chiều, ta gọi chúng là bộ nghịch lưu điều khiển dòng điện từ nguồn điện áp hoặc bộ nghịch lưu dòng nguồn áp

Các bộ nghịch lưu tạo thành bộ phận chủ yếu trong cấu tạo của bộ biến tần Ứng dụng quan trọng và tương đối rộng rãi của chúng nhằm vào lĩnh vực truyền động điện động cơ xoay chiều với độ chính xác cao Trong lĩnh vực tần số cao, bộ nghịch lưu được dùng trong các thiết bị lò cảm ứng trung tần, thiết bị hàn trung tần

Bộ nghịch lưu còn được dùng làm nguồn điện xoay chiều cho nhu cầu gia đình, làm nguồn điện liên tục UPS, điều khiển chiếu sáng, bộ nghịch lưu còn được ứng dụng vào lĩnh vực bù nhuyễn công suất phản kháng

Các tải xoay chiều thường mang tính cảm kháng (ví dụ động cơ không đồng bộ, lò cảm ứng), dòng điện qua các linh kiện không thể ngắt bằng quá trình chuyển mạch tự nhiên Do đó, mạch bộ nghịch lưu thường chứa linh kiện tự kích ngắt để có thể điều khiển quá trình ngắt dòng điện

Trong các trường hợp đặc biệt như mạch tải cộng hưởng, tải mang tính chất dung kháng (động cơ đồng bộ kích từ dư ), dòng điện qua các linh kiện có thể

bị ngắt do quá trình chuyển mạch tự nhiên phụ thuộc vào điện áp nguồn hoặc phụ thuộc vào điện áp mạch tải

Khi đó, linh kiện bán dẫn có thể chọn là thyristor (SCR)

2.1 BỘ NGHỊCH LƯU ÁP

Bộ nghịch lưu áp cung cấp và điều khiển điện áp xoay chiều ở ngõ ra

Trong các trường hợp khảo sát dưới đây ta xét bộ nghịch lưu áp với quá trình chuyển mạch cưỡng bức sử dụng linh kiện có khả năng điều khiển ngắt dòng điện

Nguồn điện áp một chiều có thể ở dạng đơn giản như acquy, pin điện hoặc

ở dạng phức tạp gồm điện áp xoay chiều được chỉnh lưu và lọc phẳng

Linh kiện trong bộ nghịch lưu áp có khả năng kích đóng và kích ngắt

dòng điện qua nó, tức đóng vai trò một công tắc Trong các ứng dụng công suất nhỏ và vừa, có thể sử dụng transistor BJT, MOSFET, IGBT làm công tắc và ở phạm vi công suất lớn có thể sử dụng GTO, IGCT hoặc SCR kết hợp với bộ chuyển mạch

Trang 11

Với tải tổng quát, mỗi công tắc còn trang bị một diode mắc đối song với nó

Các diode mắc đối song này tạo thành mạch chỉnh lưu cầu không điều khiển có chiều dẫn điện ngược lại với chiều dẫn điện của các công tắc Nhiệm vụ của bộ chỉnh lưu cầu diode là tạo điều kiện thuận lợi cho quá trình trao đổi công suất ảo giữa nguồn một chiều và tải xoay chiều, qua đó hạn chế quá điện áp phát sinh khi kích ngắt các

công tắc

2.2.BỘ NGHỊCH LƯU ÁP MỘT PHA

Bộ nghịch lưu áp một pha dạng mạch cầu (còn gọi là bộ nghịch lưu dạng chữ H) (hình H5.1a) chứa 4 công tắc và 4 diode mắc đối song

Giản đồ kích đóng các công tắc và đồ thị áp tải được vẽ trên hình 5.1b

Bộ nghịch lưu cũng có thể mắc dưới dạng mạch tia (hình H5.2)

Mạch gồm hai công tắc và hai diode mắc đối song với chúng Mạch tải và ngõ ra của bộ nghịch lưu cách ly qua máy biến áp với cuộn sơ cấp phân chia Phía trong trường hợp không sử dụng máy biến áp cách ly phía tải, nguồn

điện áp một chiều cần thiết kế với nút phân thế ở giữa (hình H5.3), đây là dạng mạch nghịch lưu áp nửa cầu

Trang 12

2.3 BỘ NGHỊCH LƯU ÁP BA PHA

Trang 13

Trong thực tế mạch bộ nghịch lưu áp ba pha chỉ gặp ở dạng mạch cầu (hình H5.4a).Mạch chứa 6 công tắc S1,S2 S6 và 6 diode đối song D1,D2 D6

Tải ba pha có thể mắc ở dạng hình sao (H5.4b) hoặc tam giác (H5.4c)

2.4 BỘ NGHỊCH LƯU ÁP ĐA BẬC

(Multi-level Voltage source Inverter)

Các bộ nghịch lưu vừa được mô tả ở phần 5.1.1 và 5.1.2 chứa 2 khóa bán dẫn (IGBT) trên mỗi nhánh pha tải Chúng được gọi chung là lọai nghịch lưu

áp 2 bậc (two- level VSI), được áp dụng rộng rãi trong phạm vi công suất vừa và nhỏ Khái niệm hai bậc xuất phát từ quá trình điện áp giữa đầu một pha tải (vị trí 1,2,3) đến một điểm điện thế chuẩn trên mạch dc (điểm 0) (pole to phase voltage) thay đổi giữa hai bậc giá trị khác nhau, ví dụ khi chọn điểm có điện thế chuẩn là tâm nguồn dc thì điện áp từ pha tải đến tâm nguồn thay đổi giữa (+U/2) và (-U/2) trong quá trình đóng ngắt các linh kiện Bộ nghịch lưu áp 2 bậc có nhược điểm là tạo điện áp cung cấp cho cuộn dây động cơ với độ dốc (dV/dt) khá lớn và gây ra một số vấn đề khó khăn bởi tồn tại trạng thái khác zero của tổng điện thế từ các pha đến tâm nguồn dc (common-mode voltage) (xem dạng điện áp uNO) Bộ nghịch lưu áp đa bậc được phát triển để giải quyết các vấn đề gây ra nêu trên của bộ nghịch lưu áp 2 bậc

và thường được sử dụng cho các ứng dụng điện áp cao và công suất lớn

Ưu điểm của bộ nghịch lưu áp đa bậc: công suất của bộ nghịch lưu áp

tăng lên; điện áp đặt lên các linh kiện bị giảm xuống nên công suất tổn hao do quá trình đóng ngắt của linh kiện cũng giảm theo; với cùng tần số đóng ngắt, các thành phần sóng hài bậc cao của điện áp ra

giảm nhỏ hơn so với trường hợp bộ nghịch lưu áp hai bậc

Đối với tải công suất lớn, điện áp cung cấp cho các tải có thể đạt giá trị tương đối lớn,

Các cấu hình cơ bản của bộ nghịch lưu áp đa bậc:

Cấu hình dạng cascade (Cascade inverter):[28],[48] -hình H5.5b, sử

dụng các nguồn dc riêng, thích hợp sử dụng trong trường hợp nguồn dc có sẵn ví

dụ dưới dạng acquy, battery Cascade inverter gồm nhiều bộ nghịch lưu áp cầu

Trang 14

một pha ghép nối tiếp, các bộ nghịch lưu áp dạng cầu một pha này có các nguồn

DC riêng

Bằng cách kích đóng các linh kiện trong mỗi bộ nghịch lưu áp một

pha, 3 mức điện áp (-U,0,U) được tạo thành Sự kết hợp họat động của n bộ nghịch lưu áp trên một nhánh pha tải sẽ tạo nên n khả năng mức điện áp theo chiều âm (- U,-2U,-3U, ,-nU), n khả năng mức điện áp theo chiều dương (U,2U,3U, ,nU) và mức điện áp 0 Như vậy, bộ nghịch lưu áp dạng cascade gồm n bộ nghịch lưu áp một pha trên mỗi nhánh sẽ tạo thành bộ nghịch lưu (2n+1) bậc

Tần số đóng ngắt trong mỗi modul của dạng mạch này có thể giảm đi

n lần và dv/dt cũng giảm đi như vậy Điện áp trên áp đặt lên các linh kiện giảm đi 0,57n lần Cho phép sử dụng linh kiện IGBT điện áp thấp

Ngoài dạng mạch gồm các bộ nghịch lưu áp một pha, mạch nghịch lưu áp đa bậc còn có dạng ghép từ ngõ ra của các bộ nghịch lưu áp 3 pha (H5.5c) Cấu trúc này cho phép giảm dv/dt và và tần số đóng ngắt còn 1/3 Mạch cho phép sử dụng các cấu hình nghịch lưu áp ba pha chuẩn Mạch nghịch lưu đạt được sự cân bằng điện áp các nguồn dc, không tồn tại dòng cân bằng giữa các module Tuy nhiên, cấu tạo mạch đòi hỏi sử dụng các máy biến áp ngõ ra

Cấu hình nghịch lưu chứa cặp diode kẹp: (Neutral point Clamped Multilevel Inverter (NPC) hoặc- diode clamped multilevel inverter):-hình H5.5a, sử dụng thích hợp khi các nguồn dc tạo nên từ hệ thống điện ac Bộ nghịch lưu đa bậc chứa các cặp diode kèm có một mạch nguồn DC được phân chia thành một số cấp điện áp nhỏ hơn nhờ chuỗi các tụ điện mắc nối tiếp

Giả sử nhánh mạch dc gồm n nguồn có độ lớn bằng nhau mắc nối tiếp Điện

áp pha – nguồn dc có thể đạt được (n+1) giá trị khác nhau và từ đó bộ nghịch lưu được gọi là bộ nghịch lưu áp (n+1) bậc Ví dụ chọn mức điện thế 0 ở cuối dãy

Trang 15

nguồn, các mức điện áp có thể đạt được gồm (0,U,2U,.,nU) Điện áp từ một pha tải

(ví dụ pha a) thông đến một vị trí bất kỳ trên mạch dc (ví dụ M) nhờ cặp diode

kẹp tại điểm đó (ví dụ D1, D1‟) Để điện áp pha- nguồn dc đạt được mức điện áp

nêu trên (ua0=U), tất cả các linh kiện bị “kẹp” giữa hai diode (D1, D1‟) –gồm n

linh kiện nối tiếp liên tục kề nhau, phải được kích đóng (ví dụ S1,

S5‟,S4‟,S3‟,S2‟), các linh kiện còn lại sẽ bị khóa theo qui tắc kích đối nghịch

Tương ứng với 6 trường hợp kích đóng linh kiện “bị kẹp” giữa 6 cặp diode (hai

cặp diode “kẹp” ở hai vị trí biên là trường hợp đặc biệt), ta thu được 6 mức điện

áp pha- nguồn dc : 0,U,2U, ,5U Vì có khả năng tạo ra 6 mức điện áp pha- nguồn

dc nên mạch nghịch lưu trên hình H5.5a còn gọi là bộ nghịch lưu 6 bậc

Dạng mạch nghịch lưu áp đa bậc dùng cặp diode kẹp cải tiến dạng

sóng điện áp tải và giảm shock điện áp trên linh kiện n lần Với bộ nghịch lưu ba

bậc, dv/dt trên linh kiện và tần số đóng ngắt giảm đi một nửa Tuy nhiên với n>3,

mức độ chịu gai áp trên các diode sẽ khác nhau Ngoài ra, cân bằng điện áp giữa các

nguồn dc (áp trên tụ) trở nên khó khăn, đặc biệt khi số bậc lớn

2.5 ĐIỆN ÁP BỘ NGHỊCH LƯU ÁP 3 PHA

Giả thiết tải ba pha đối xứng thỏa mãn hệ thức:

ut1 + ut2 + ut3 = 0 (5.1)

Ta tưởng tượng nguồn áp U được phân chia làm hai nửa bằng nhau với

điểm nút phân thế O (một cách tổng quát, điểm phân thế 0 có thể chọn ở vị trí bất

kỳ trên mạch nguồn DC)

Gọi N là điểm nút của tải ba pha dạng sao Điện áp pha tải ut1,ut2,ut3 Ta

có:

ut1= u10- uNO (5.2)

ut2 = u20- uNO

ut3 = u30-uNO

Điện áp u10, u20 , u30 được gọi là các điện áp pha -tâm nguồn của

các pha 1,2,3 Các điện áp ut1, ut2, ut3; u10, u20, u30 và uNO có chiều dương

qui ước vẽ trên hình H5.4a Cộng các hệ thức trên và để ý rằng ut1+ut2+ut3=0, ta

có:

Điện áp dây trên tải:

ut12 =u10 - u20

ut23 = u20 - u30 (5.6)

ut31 = u30 -u10

* Hệ quả: Quá trình điện áp ( và do đó quá trình dòng điện) ngõ ra của bộ

nghịch lưu áp ba pha sẽ được xác định khi ta xác định được các điện áp trung

gian u10, u20, u30

* Xác định điện áp pha - tâm nguồn cho bộ nghịch lưu áp Cặp công tắc

cùng pha: gồm hai công tắc cùng mắc chung vào một pha tải, ví dụ (S1S4),

(S3,S6) và (S5,S2) là các cặp công tắc cùng pha

Qui tắc kích đóng đối nghịch: cặp công tắc cùng pha được kích đóng theo

qui tắc đối nghịch nếu như hai công tắc trong cặp luôn ở trạng thái một được kích

đóng và một được kích ngắt

Trạng thái cả hai cùng kích đóng (trạng thái ngắn mạch điện áp nguồn )

hoặc cùng kích ngắt không được phép

Trang 16

CHƯƠNG 3:

CẤU TRÚC BÊN TRONG CỦA VI ĐIỀU

KHIỂN PIC 16F877A

3.1 Sơ lược về Vi điều khiển PIC 16F877A:

PIC 16F877A là dòng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng,bộ nhớ đủ cho hầu hết các ứng dụng thông thường).Cấu trúc tổng quát của PIC 16F877A như sau:

-8 K Flash ROM

-368 Bytes RAM

-256 Bytes EEPROM

-5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập

-2 bộ định thời 8 bits (Timer 0 và Timer 2)

-Một bộ định thời 16 bits (Timer1) có thể hoạt động trong chế độ tiết kiệm năng lượng (Sleep Mode )với nguồn xung clock ngoài

-2 bộ CCP( Capture / Compare/ PWM)

-1 bộ biến đổi AD 10 bits, 6 ngõ vào

-2 bộ so sánh tương tự (Compartor)

-1 bộ định thời giám sát (WatchDog Timer)

-Một cổng song song 8 bits với các tín hiệu điều khiển

-Một cổng nối tiếp

-15 nguồn ngắt

-Có chế độ tiết kiệm năng lượng

-Nạp chương trình bằng cổng nối tiếp ICSP

-35 tập lệnh có độ dài 14 bits

-Tần số hoạt động tối đa 20MHz

Trang 17

3.2.Sơ lƣợc về các chân của PIC 16F877A:

Hình 1.1

Hình 1.2

Trang 21

Hình 1.3

Trang 22

3.3 Một số điểm đặc biệt của CPU:

Trang 23

Lưu ý: Tụ có giá trị lớn sẽ tăng tính ổn định của dao động nhưng cũng làm tăng thời gian khởi động

Chế độ dao động RC được sử dụng như một giải pháp tiết kiệm trong các ứng dụng không cần sự chính xác về thời gian

* Cách tính chu kì máy:

Ví dụ ta sử dụng thạch anh 10Mhz Khi đó:

Tần số dao động của thạch anh là Fosc = 10Mhz

→ Chu kỳ dao đông của thạch anh là Tosc = 1/Tosc= 1/10*106 (s) Chu kỳ máy:

T_instruction = 4*Tosc = 4/10*106(s) = 0.4 µs = 400 ns

3.3.2 Reset:

PIC16F877A có thể bị reset bởi nhiều nguyên nhân khác nhau như:

Trang 25

3.3.3 MCLR:

PIC16F877A có một bộ lọc nhiễu ở phần MCLR Bộ lọc nhiễu này

sẽ phát hiện và bỏ qua các tín hiệu nhiễu

Ngõ vào MCLR trên chân 4 của PIC16F877A Khi đƣa chân này xuống thấp thì các thanh ghi bên trong VĐK sẽ đƣợc tải những giá trị

* Các thanh ghi chức năng ngắt: INTCON,PIE1,PIR1, PIE2,PIR2 (các

thanh ghi này sẽ đƣợc nghiên cứu ở các phần sau)

Trang 26

3.3.5 Chế độ nguồn thấp Sleep (Power down Mode) :

Đây là chế độ hoạt động của vi điều khiển khi lệnh SLEEP được thực thi Khi đó nếu được cho phép hoạt động, bộ đếm của WDT sẽ bị xóa nhưng WDT vẫn tiếp tục hoạt động, bit PD(STATUS<3>) được reset về 0, bit TO được set, oscillator ngưng tác động và các PORT giữ nguyên trạng thái như trước khi lệnh SLEEP được thực thi Do khi ở chế độ SLEEP, dòng cung cấp cho vi điều khiển là rất nhỏ nên ta cần thực hiện các bước sau trước khi vi điều khiển thực thi lệnh SLEEP:

Đưa tất cả các pin về trạng thái VDD hoặc VSS

Tạm ngưng hoạt động cuả khối A/D và không cho phép các xung clock từ bên ngoài tác động vào vi điều khiển

Để ý đến chức năng kéo lên điện trở ở PORTB

Pin MCLR phải ở mức logic cao

Đánh thức vi điều khiển

-Tác động của reset ngoại vi thông qua pin MCLR

-Tác động của WDT khi bị tràn

-Tác động từ các ngắt ngoại vi từ PORTB (PORTB Interrupt on change hoặc pin INT) Các bit PDTO được dùng để thể hiện trạng thái của vi điều khiển và để phát hiện nguồn tác động làm reset vi điều khiển Bit PD được set khi vi điều khiển được cấp nguồn và được reset về 0 khi vi điều khiển ở chế độ sleep Bit TO được reset về 0 khi WDT tác động do bộ đếm bị tràn

Trang 27

Ngoài ra còn có một số nguồn tác động khác từ các chức năng ngoại vi bao gồm:

-Đọc hay ghi dữ liệu thông qua PSP (Parallel Slave Port)

-Ngắt Timer1 khi hoạt động ở chế độ đếm bất đồng bộ

-Ngắt CCP khi hoạt động ở chế độ Capture

-Các hiện tượng đặc biệt làm reset Timer1 khi hoạt động ở chế độ đếm bất đồng

bộ dùng nguồn xung clock ở bên ngoài)

- Ngắt SSP khi bit Start/Stop được phát hiện

-SSP hoạt động ở chế độ Slave mode khi truyền hoặc nhận dữ liệu

-Tác động của USART từ các pin RX hay TX khi hoạt động ở chế độ Slave mode đồng bộ

-Khối chuyển đổi A/D khi nguồn xung clock hoạt động ở dạng RC

-Hoàn tất quá trình ghi vào EEPROM

-Ngõ ra bộ so sánh thay đổi trạng thái Các tác động ngoại vi khác không có tác dụng đánh thức vi điều khiển vì khi ở chế độ sleep các xung clock cung cấp cho vi điều khiển ngưng hoạt động Bên cạnh đó cần cho phép các ngắt hoạt động trước khi lệnh SLEEP được thực thi để bảo đảm tác động của các ngắt Việc đánh thức vi điều khiển từ các ngắt vẫn được thực thi bất chấp trạng thái của bit GIE Nếu bit GIE mang giá trị 0, vi điều khiển sẽ thực thi lệnh tiếp theo sau lệnh SLEEP của chương trình (vì chương trình ngắt không được cho phép thực thi) Nếu bit GIE được set trước khi lệnh SLEEP được thực thi, vi điều khiển sẽ thực thi lệnh tiếp theo của chương trình và sau đó nhảy tới địa chỉ chứa chương trình ngắt (0004h) Trong trường hợp lệnh tiếp theo không đóng vai trò quan trọng trong chương trình, ta cần đặt thêm lệnh NOP sau lệnh SLEEP để bỏ qua tác động của lệnh này, đồng thời giúp ta dễ dàng hơn trong việc kiểm soát hoạt động của chương trình ngắt Tuy nhiên cũng có một số điểm cần lưu ý như sau:

Nếu ngắt xảy ra trước khi lệnh SLEEP được thực thi, lệnh SLEEP sẽ không được thực thi và thay vào đó là lệnh NOP, đồng thời các tác động của lệnh SLEEP cũng sẽ được bỏ qua

Nếu ngắt xảy ra trong khi hay sau khi lệnh SLEEP được thực thi, vi điều khiển lập tức được đánh thức từ chế độ sleep, và lệnh SLEEP sẽ được thực thi ngay sau khi vi điều khiển được đánh thức

Để kiểm tra xem lệnh SLEEP đã được thực thi hay chưa, ta kiểm tra bit

PD Nếu bit PD vẫn mang giá trị 1 tức là lệnh SLEEP đã không được thực thi và thay vào đó là lệnh NOP

Trang 28

Bên cạnh đó ta cần xóa WDT để chắc chắn rằng WDT đã được xóa trước khi thực thi lệnh SLEEP, qua đó cho phép ta xác định được thời điểm vi điều khiển được đánh thức do tác động của WDT

3.3.6 Bộ định thời giám sát (Watch Dog Timer -WDT):

Giả sử bạn viết một chương trình, bạn mong đợi chương trình này sẽ chạy nếu khơng cĩ gì trục trặc xảy ra thì nĩ sẽ khơng bao giờ dừng lại, như vậy bạn phải làm một vịng lặp để khi chương trình chạy đến điểm cuối thì nĩ lại quay trở

về điểm bắt đầu Nhưng mà hãy xem một trường hợp: Giả sử chương trình kiểm tra một chân input, nếu nĩ lên mức cao thì con Pic sẽ tiếp tục kiểm tra một chân input thứ hai cĩ lên mức cao hay khơng, nếu chân input thứ hai khơng lên mức cao, con Pic sẽ ngồi đĩ chờ và nĩ sẽ chỉ thốt ra khỏi chỗ ngồi của nĩ nếu chân input thứ hai lên mức cao

Bây giờ hãy xem một trường hợp khác, giả sử như bạn viết một chương trình, bạn compiled nĩ thành cơng, và ngay cả bạn đã cho chạy mơ phỏng từng bước, từng bước một trên máy tính, bằng MPLAB chẳng hạn, cĩ vẽ như mọi chuyện đều tốt, bạn đem nạp vào con Pic Sau một thời gian chạy thử, con Pic thình lình bị kẹt vào nơi nào đĩ trong chương trình mà khơng thể thốt ra được trạng thái hiện tại Điều gì là cần thiết để giải quyết hai trường hợp trên, reset lại hay vẫn để cho nĩ bị kẹt khơng thốt ra được ?, đĩ là mụch đích của mạch watchdog

Mạch watchdog thì khơng phải là mới mẽ gì, cĩ rất nhiều microprocessors và microcontrollers đã cĩ mạch watchdog, nhưng mà nĩ làm việc ra sao?

Bên trong con Pic cĩ một mạch RC, mạch này cung cấp 1 xung Clock độc lập với bất kỳ xung Clock nào cung cấp cho Pic Khi Watchdog Timer (viết tắt là WDT) được cho phép (enabLed), nĩ sẽ đếm bắt đầu từ 00 và tăng lên 1 cho đến FFh, khi nĩ tăng từ FFh đến 00 ( FFh+1) thì con Pic sẽ bị Reset bất kể đang làm

gì, chỉ cĩ 1 cách là ngăn khơng cho WDT đếm tới 00

Khi con Pic bị kẹt khơng thể thốt ra khỏi tình trạng hiện tại thì WDT vẫn tiếp tục đếm mà khơng bị bất kỳ điều gì ngăn cấm nĩ đếm tới FF và đến FF+1, vì vậy nĩ sẽ reset con Pic làm cho chương trình phải khởi động lại từ đầu

Để sử dụng WDT chúng ta cần làm 3 việc

Thứ nhất, cần thời gian bao lâu để reset WDT?

Thứ hai, làm sao xố WDT?

Cuối cùng, chúng ta phải nĩi cho con Pic biết chương trình cho phép WDT hoạt động

Trang 30

PIC16F877A có bộ đếm chương trình dài 13 bits có thể định địa chỉ cho khoảng không gian nhớ 8K x 14bits Không gian bộ nhớ này được chia làm 4 trang, có địa chỉ từ 0005h đến 1FFFh

Mọi sự truy cập ngoài vùng không gian nhớ này sẽ không có tác dụng Ngoài ra, bộ nhớ chương trình còn bao gồm một ngăn xếp (Stack) 8 mức Vector Reset được đặt tại địa chỉ 0000h và vector ngắt được đặt tại địa chỉ

0004h

3.4.2 Bộ nhớ dữ liệu

Trang 31

Bộ nhớ dữ liệu bao gồm 4 Bank: Bank 0, Bank1, Bank2 và Bank3 Mỗi bank có dung lƣợng 128 Bytes, bao gồm vùng Ram đa mục đích (GPR) và vùng thanh ghi chức năng đặc biệt (SFR)

Các Bank này đƣợc lựa chọn bằng 2 bit ở thanh ghi STATUS là RP0(Status<5>) và RP1(Status<6>)

- Bank 0: 96 Bytes từ địa chì 20h đến địa chỉ 7Fh

- Bank 1: 80 Bytes từ địa chì A0h đến địa chỉ EFh

- Bank 2: 96 Bytes từ địa chì 110h đến địa chỉ 16Fh

- Bank 1: 96 Bytes từ địa chì 190h đến địa chỉ 1EFh

3.4.2.2 Vùng Ram thanh ghi chức năng đặc biệt

Các thanh ghi chức năng đặc biệt đƣợc sử dụng bởi bộ xử lí trung tâm CPU hoặc các module ngoại vi để điều khiển hoạt động của VĐK Các thanh ghi chức năng đặc biệt này đƣợc chia làm 2 loại: loại thứ nhất dùng cho các chức năng của CPU, loại thứ 2 dùng cho các chức năng ngoại vi

Trang 32

Bảng tóm tắt các thanh ghi chức năng đặc biệt:

Trang 33

3.4.2.3 Các thanh ghi chức năng đặc biệt

3.4.2.3.1 Thanh gi trạng thái (status register)

Thanh ghi trạng thái chứa các trạng thái số học của bộ ALU, trạng thái Reset và các bit chọn Bank của bộ nhớ dữ liệu

Trang 34

Bit 6 – 5 RP1 – RP0: bit lựa chọn bank thanh ghi (Dùng trong định điạ chỉ trực tiếp)

Bit 4 TO: time out bit

1: Lệnh xóa WDT hoặc Sleep xảy ra

0: WDT hoạt động

Bit 3 PD: Power down bit

1: Sau khi nguồn tăng hoặc có lệnh xóa WDT 0: Thực thi lệnh Sleep

Bit 2 Z: bit Zero

1: Khi kết quả của một phép toán bằng 0

0: Khi kết quả của một phép toán khác 0

Bit 1 DC: Digit Carry

1: Có một số nhớ đƣợc sinh ra bởi phép cộng hoặc phép trừ 4 bit thấp

0: không có số nhớ sinh ra

Bit 0 C: cờ nhớ (Carry Flag)

1: Có một số nhớ sinh ra bởi phép cộng hoặc phép trừ

0: Không có số nhớ sinh ra

3.4.2.3.2 Thanh ghi tùy chọn (Option _Reg Register)

Bit 7 RBPU: bit cho phép PORTB đƣợc kéo lên nguồn

1: Không cho phép PORTB kéo lên nguồn

0: Cho phép PORTB kéo lên nguồn

Bit 6 INTEDG: bit lựa chọn cạnh tác động ngắt

1: Ngắt sẽ đƣợc tác động bởi cạnh lên của chân RB0/INT 0: Ngắt sẽ đƣợc tác động bởi cạnh xuống của chân RB0/INT Bit 5 T0CS: bit lựa chọn nguồn xung Clock cho Timer 0

1: Xung Clock cung cấp bởi nguồn ngoài qua chân RA4/T0CKI 0: Xung Clock cung cấp bởi nguồn dao động nội

Bit 4 T0SE: bit lựa chọn cạnh nào của xung clock tác động lên timer 0

1: cạnh xuống 0: cạnh lên

Trang 35

Bit 3 PSA: bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0

hay WDT 1: tốc độ đếm PS2:PS0 sẽ tác động lên WDT 0: tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độ đếm

1: cho phép ngắt ngoại vi 0: không cho phép

Bit 5 TMR0IE: bit cho phép ngắt khi timer 0 tràn

1: cho phép 0: không cho phép Bit 4 INTE:bit cho phép ngắt ngoài RB0/INT

1: cho phép 0: không cho phép Bit 3 RBIE: cho phép ngắt khi trạng thái PORTB thay đổi

1: cho phép 0: không cho phép Bit 2 TMR0IF: cờ báo ngắt Timer 0

1: Timer0 tràn 0: timer 0 chƣa tràn Bit 1 INTF: cờ báo ngắt ngoài RB0/INT

1: có ngắt 0: không xảy ra ngắt

Bit 0 RBIF: cờ báo ngắt khi có thay đổi trạng thái PORTB

18 ms 36ms 72ms 144ms 288ms 576ms 1.1s 2.2s

Trang 36

1: có thay đồi 0: không có thay đổi xảy ra trên PORTB

3.4.2.3.4 Thanh ghi cho phép ngắt ngoại vi 1:

Chú ý: Bit PEIE (INTCON<6>) phải đƣợc set để cho phép bất kì ngắt ngọai

vi nào xảy ra

Bit 7 PSPIE: bit cho phép ngắt đọc/ ghi Port song song

1: cho phép 0: không cho phép Bit 6 ADIE: bit cho phép ngắt chuyển đổi A/D

1: cho phép 0: không cho phép Bit 5 RCIE: bit cho phép ngắt nhận USART

1: cho phép 0: không cho phép Bit 4 TXIE: bit cho phép ngắt truyền USART

1: cho phép 0: không cho phép Bit 3 SSPIE: bit cho phép ngắt Port nối tiếp đồng bộ

1: cho phép 0: không cho phép Bit 2 CCP1IE: bit cho phép ngắt module CCP1

1: cho phép ngắt 0: không cho phép Bit 1 TMR2IE: bit cho phép ngắt khi thanh ghi TMR2 bẳng thanh ghi PR2

1: cho phép 0: không cho phép Bit 0 TMR1IE: bit cho phép ngắt tràn TMR1

1: cho phép 0: không cho phép

Trang 37

3.4.2.3.4 Thanh ghi cờ của các ngắt ngoại vi 1:

Bit 7 PSPIF: cờ ngắt đọc ghi của Port song song

1: một hoạt động đọc/ghi đã diễn ra (phải xóa bằng phần mềm) 0: không có hoạt động đọc/ghi

Bit 6 ADIF: cờ báo ngắt chuyển đổi A/D

1: một quá trình chuyển đổi A/D đã hoàn thành 0: chuyển đổi A/D chưa hoàn tất

Bit 5 RCIF: cờ báo ngắt nhận USART

1: Buffer nhận USARt đầy 0: Buffer nhận USART trống

Bit 4 TXIF: cờ báo ngắt phát USART

1: buffer truyền USART trống 0: buffer truyền USART đầy Bit 3 SSPIF: cờ báo ngắt port nối tiếp đồng bộ (ngắt SSP)

1: ngắt SSP xảy ra và phải được xóa bằng phần mềm trước khi trở lại chương trình chính từ chương trình phục vụ ngắt

0: không có nắgt xảy ra Bit 2 CCP1IF: cờ báo ngắt CCP1

0: không xảy ra thuật toán so sánh

Chế độ PWM: không sử dụng trog chế độ này

Bit 1 TMR2IF: cờ báo ngắt xảy ra khi giá trị trong thanh ghi TMR2 bằng

trong thanh ghi PR2 1: giá trị trong thanh ghi TMR2 bằng thanh ghi PR2 (phải được xóa bằng phần mềm)

0: giá trị trong thanh ghi TMR2 chưa bằng thanh ghi PR2 Bit 0 TMR1IF: cờ báo tràn thanh ghi TMR1

1: thanh ghi TMR1 tràn (phải được xóa bắng phần mềm) 0: thanh ghi TMR1 chưa tràn

3.4.2.3.5 Thanh ghi cho phép ngắt ngoại vi 2:

Trang 38

Chú ý: Bit PEIE (INTCON<6>) phải đƣợc set để cho phép bất kì ngắt ngoại

vi nào xảy ra

Bit 7,5,2,1 Unimplemented : read as „0’

Bit 6 CMIE: bi cho phép ngắt do bộ so sánh điện thế

1: cho phép 0: không cho phép Bit 4 EEIE: bi cho phép ngắt do ghi EEPROM

1: cho phép 0: không cho phép Bit 3 BCLIE: bit cho phép ngắt do xung đột bus

1: cho phép 0: không cho phép Bit 0 CCP2IE: cho phép ngắt d0 module CCP2

1: cho phép

0: không cho phép 3.4.2.3.6 Thanh ghi cờ của các ngắt ngọai vi 2:

Bit 7,5,2,1 Unimplemented : read as „0‟

Bit 6 CMIF: cờ báo ngắt do bộ so sánh

1: ngõ vào bộ so sánh đã thay đổi (phải đƣợc xóa bằng phần mềm) 0: ngõ vào bộ so sánh không thay đổi

Bit 4 EEIF: cờ báo ngắt ghi EEPROM

1: ghi EEPROM hoàn tất (phải đƣợc xóa bằng phần mềm) 0: ghi EEPROM chƣa hoàn tất

Bit 3 BCLIF: cờ báo ngắt do xung đột bus

1: xung đột bus đã xuất hiện 0: không có xung đột bus xảy ra Bit 0 CCP2IF: cờ báo ngắt CPP2

0: không xảy ra thuật toán so sánh

3.4.2.3.7 Thanh ghi điều khiển nguồn (Power control register):

Trang 39

Bit 7-2 Unimplemented : read as „0‟

Trang 40

ngắt Đối với PIC16F877A Stack có độ sâu 8 lớp.Stack không nằm trong cả bộ nhớ chương trình lẫn bộ nhớ dữ liệu

3.4.2.6 Địa chỉ trực tiếp và địa chỉ gián tiếp, thanh ghi INF và

thanh ghi FSR:

Thanh ghi INF không phải là một thanh ghi vật lí Nó chứa giá trị của thanh ghi có địa chỉ nằm ở thanh ghi FSR

Ví dụ:

Thanh ghi tại địa chỉ 10h có giá trị 5Ah

Nếu ta đưa 10h vào thanh ghi FSR thì khi đọc thanh ghi INF ta sẽ có giá trị 5Ah

3.5 Data EEPROM và Flash Program Memory:

EEPROM là bộ nhớ có khả năng đọc và ghi trong điều kiện làm việc bình thường (khi nguồn Vdd không đổi) Bộ nhớ này không được định địa chỉ trực tiếp trong bản đồ bộ nhớ mà được định địa chỉ gián tiếp thông qua các thanh ghi chức năng đặc biệt:

Ngày đăng: 13/06/2015, 22:56

HÌNH ẢNH LIÊN QUAN

Bảng tóm tắt các thanh ghi liên quan đến Port A - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng t óm tắt các thanh ghi liên quan đến Port A (Trang 44)
Bảng chức năng Port B : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng ch ức năng Port B : (Trang 45)
Bảng tóm tắt các thanh ghi liên quan đến Port B : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng t óm tắt các thanh ghi liên quan đến Port B : (Trang 46)
Bảng chức năng Port C : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng ch ức năng Port C : (Trang 47)
Bảng tóm tắt các thanh ghi liên quan đến Port C : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng t óm tắt các thanh ghi liên quan đến Port C : (Trang 48)
Bảng tóm tắt các thanh ghi liên quan đến Port D : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng t óm tắt các thanh ghi liên quan đến Port D : (Trang 49)
Bảng chức năng các chân Port E : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng ch ức năng các chân Port E : (Trang 50)
Bảng tóm tắt các thanh ghi liên quan đến Port E : - Thiết kế và thi công mạch nghịch lưu đa cấp
Bảng t óm tắt các thanh ghi liên quan đến Port E : (Trang 51)
Hình 1.27. Cấu trúc khối I2C trong PIC - Thiết kế và thi công mạch nghịch lưu đa cấp
Hình 1.27. Cấu trúc khối I2C trong PIC (Trang 66)
4.2. Sơ đồ nguyên lý : - Thiết kế và thi công mạch nghịch lưu đa cấp
4.2. Sơ đồ nguyên lý : (Trang 78)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w