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

TÌM HIỂU VÀ ỨNG DỤNG VI ĐIỀU KHIỂN PIC TRONG ĐIỀU KHIỂN ĐỊNH VỊ

104 154 0

Đ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 104
Dung lượng 1,97 MB

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

Nội dung

Chương 2 TỔNG QUAN 2.1 Khái quát các phương pháp điều khiển vị trí: 2.1.1 Phương pháp sử dụng động cơ tuyến tính: Hiện nay trong các máy CNC có sử dụng động cơ tuyến tính để tạo chuyể

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

TÌM HIỂU VÀ ỨNG DỤNG VI ĐIỀU KHIỂN PIC TRONG

ĐIỀU KHIỂN ĐỊNH VỊ

Họ và tên sinh viên:NGUYỄN QUANG HOÀNG MINH

NGUYỄN VĂN XỨNG Ngành: ĐIỀU KHIỂN TỰ ĐỘNG

Niên khóa: 2005-2009

Trang 2

TÌM HIỂU VÀ ỨNG DỤNG VI ĐIỀU KHIỂN PIC TRONG

Trang 3

CẢM TẠ

Để có ngày hôm nay, trước hết chúng con xin chân thành cảm ơn Bố Mẹ là những nguời đã sinh thành, nuôi dưỡng, chăm sóc và động viên chúng con trong suốt những năm qua

Chúng em xin bày tỏ lòng biết ơn đến Ths Trần Khánh Ninh và Ks Nguyễn Văn Bình trên cương vị là người hướng dẫn chính của đề tài đã tận tình giúp đỡ chúng em trong suốt quá trình thực hiện luận văn

Chúng em cũng xin bày tỏ lòng biết ơn đến các Thầy Cô trong trường đại học Nông Lâm Tp.HCM, đặc biệt là quý Thầy Cô trong Bộ Môn Điều Khiển Tự Động đã tận tình dạy dỗ và truyền thụ những kinh nghiệm quý báu trong suốt thời gian chúng

em học tập ở trường

Cuối cùng chúng em chân thành cảm ơn sự đóng góp ý kiến của tất cả các bạn sinh viên lớp DH05TD và các bạn thân hữu trong suốt quá trình thực hiện luận văn này

Tp Hồ Chí Minh, tháng 8 năm 2009

Sinh viên thực hiện

Nguyễn Quang Hoàng Minh Nguyễn Văn Xứng

Trang 4

TÓM TẮT

Đề tài:

ỨNG DỤNG VI ĐIỀU KHIỂN PIC TRONG ĐIỀU KHIỂN ĐỊNH VỊ

Việc ứng dụng tự động hoá vào kỹ thuật đo lường và điều khiển đã đem lại những kết quả đầy tính ưu việc Các thiết bị, hệ thống đo lường ngày càng có độ chính xác cao, thời gian thu thập số liệu ngắn Trong khuôn khổ luận văn này, đề tài thực hiện công việc tính toán, thiết kế, chế tạo mẫu máy điều khiển vị trí dựa trên VĐK 18F4431 bao gồm:

1 Tìm hiểu VĐK PIC 18F4431:

• Các cổng suất nhập I/O

• Các module timer

• Các module capture/ compare/PWM

• Module hồi tiếp

• Module analog

2 Tìm hiểu vít me bi trong truyền động cơ khí chính xác

3 Thiết kế mạch điều khiển cho mô hình

4 Dựa trên mô hình viết thuật toán PID

™ Các kết quả đạt được:

- Chế tạo được mô hình điều khiển vị trí

- Hoàn tất thiết kế mạch, có khả năng chống nhiễu tốt

- Chương trình điều khiển bằng thuật toán PID hoàn thành

Trang 5

MỤC LỤC

Trang

Trang tựa i

Lời cảm tạ ii

Tóm tắt iii

Mục lục iv

Danh sách các chữ viết tắt viii

Danh sách các hình ix

Danh sách các bảng xi

CHƯƠNG 1: MỞ ĐẦU 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu đề tài 1

1.3 Giới hạn 2

CHƯƠNG 2: TỔNG QUAN 3

2.1 Khái quát các phương pháp điều khiển vị trí 3

2.1.1 Phương pháp điều khiển động cơ tuyến tính 3

2.1.2 Phương pháp điều khiển vị trí bằng ổ bi từ 4

2.1.3 Phương pháp điều khiển vị trí bằng đai 4

2.1.4 Phương pháp điều khiển vị trí bằng vít me bi 5

2.2 Trục vít me đai ốc bi 6

2.3 Tìm hiểu encoder 7

2.4 Tìm hiểu động cơ DC 8

2.4.1 Tổng quan 8

Trang 6

2.4.3 Các phương pháp điều chỉnh tốc độ động cơ DC 9

2.5 Khái quát về vi điều khiển pic 18F4431 9

2.5.1 Đặt điểm pic 18F4431 10

2.5.2 Chức năng các chân PIC 18F4431 11

2.5.3 PORTA và thanh ghi TRISA 16

2.5.4 PORTB và thanh ghi TRISB 17

2.5.5 PORTC và thanh ghi TRISC 18

2.5.6 PORTE và thanh ghi TRISE 18

2.5.7 Bộ định thời timer 0 18

2.5.8 Bộ định thời timer 1 20

2.5.9 Bộ định thời timer 2 22

2.5.10 Bộ định thời timer 5 22

2.5.11 Module ADC 23

2.5.12 Ngắt 24

2.5.13 Khối capture/compare/pwm(CCP) 25

2.5.14 Bộ đọc tín hiệu hồi tiếp(QEI) 28

2.6 Một số linh kiện dùng trong đề tài 30

2.6.1 IC logic đệm 7407 30

2.6.2 Opto 6N137 30

2.6.3 Ổn áp LM2575 31

2.6.4 2SC5200, 2SA1943 32

2.6.5 AT89S52 32

2.6.6 Led 7 đoạn 32

2.7 Tổng quan CCS 33

2.7.1 Lý do chọn CCS 33

2.7.2 Gới thiệu CCS 33

Trang 7

2.7.3 Phần mềm lập trình CCS 34

2.7.4 Các lệnh cơ bản trong CCS 35

2.8 Thuật toán điều khiển 39

2.7.1 Thuật toán PID số 39

2.7.2 Khâu tỷ lệ 42

2.7.3 Khâu tích phân xác định 42

2.7.4 Khâu vi phân điều kiện 43

2.7.5 Sự lựa chọn của các vòng lập 44

CHƯƠNG 3: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 46

3.1 Thời gian và địa điểm nghiên cứu đề tài 46

3.1.1 Địa điểm tiến hành đề tài 46

3.1.2 Phân phối thời gian tiến hành đề tài 46

3.2 Đối tượng và thiết bị nghiên cứu 46

3.2.1 Đối tượng nghiên cứu 46

3.2.2 Thiết bị nghiên cứu 46

3.3 Phương pháp nghiên cứu 47

3.3.1 Phương pháp PID số 47

3.3.2 Phương pháp thiết kế hệ thống định vị 47

3.3.3 Phương pháp thực hiện phần cơ khí 47

3.3.4 Phương pháp thực Hiện phần điện tử 48

CHƯƠNG 4: KẾT QUẢ VÀ THẢO LUẬN 49

4.1 Thiết kế mô hình định vị 49

4.1.1 Sơ đồ khối mô hình 49

4.1.2 Yêu cầu mô hình định vị 50

4.2 Chế tạo cơ khí và thiết kế mạch 50

Trang 8

4.2.2 Chế tạo mô hình định vị 55

4.2.3 Thực hiện phần điện tử 53

4.3 Thực hiện phần mềm 60

4.3.1 Lưu đồ thuật toán cho 18F4431 60

4.3.2 Lưu đồ thuật toán cho 89S52 64

4.3.3 Kiểm tra chạy thử và hoàn thành hệ thống 64

4.4 Kết quả và thảo luận 65

CHƯƠNG 5: KẾT LUẬN VÀ ĐỀ NGHỊ 66

4.1 Kết quả 66

4.2 Hướng phát triển đề tài 66

TÀI LIỆU THAM KHẢO

PHỤ LỤC

Trang 9

DANH SÁCH CÁC CHỮ VIẾT TẮT

VĐK : vi điều khiển

VD : ví dụ

CNC : Computerized Numerical Control

PIC : Programmable Intelligent Computer

CCP : capture-compare–pwm

PID : Proportional–integral–derivative

Trang 10

DANH SÁCH CÁC HÌNH

Hình 2.1 Hệ thống truyền động sử dụng động cơ tuyến tính 3

Hình 2.2 Trục chính có tích hợp sẵn động cơ và ổ bi từ 4

Hình 2.3 Một máy điều khiển vị trí chạy bằng bộ truyền đai 5

Hình 2.4 Bộ phận truyền động bằng vit me bi 5

Hình 2.5 Vít me bi 6

Hình 2.6 Cấu tạo encoder 7

Hình 2.7 PIC 18F44311 11

Hình 2.8 Lựa chọn tụ cho bộ dao động 21

Hình 2.9 Cấu tạo 7407 30

Hình 2.10 Cấu tạo 6N137 30

Hình 2.11 Sơ đồ chân LM2575 31

Hình 2.12 2SA1943, 2SC5200 32

Hình 2.7 Cấu tạo led 7 đoạn 32

Hình 2.8 Giao diện phần mềm CSS 34

Hình 3.1 Sơ đồ hệ thống định vị và xuất giá trị kết quả 47

Hình 4.1 Sơ đồ khối mô hình 49

Hình 4.1 Mô hình định vị 50

Hình 4.3 Cấu tạo hộp đựng mạch 51

Hình 4.4 Hộp đựng mạch 51

Trang 11

Hình 4.5 Bố trí 3 công tắc hành trình 52

Hình 4.6 Sơ đồ khối phần điện tử 53

Hình 4.7 Sơ đồ nguyên lý mạch nguồn 54

Hình 4.8 Mạch quét led 55

Hình 4.9 Bảng board mạch led 55

Hình 4.10 Mạch kết nối máy tính thông qua cổng COM 56

Hình 4.11 Mạch nạp thông qua cổng LPT 56

Hình 4.12 Mạch đệm PWM 57

Hình 4.13 Mạch cầu H 57

Hình 4.14 Mạch phản hồi tốc độ và bảo vệ 58

Hình 4.15 Sơ đồ nguyên lý mạch điều khiển trung tâm 59

Hình 4.16 Bảng board mạch chính 59

Trang 12

DANH SÁCH CÁC BẢNG

Bảng 1.1.Các chức năng của CCPx và CCPy 26

Bảng 1.2 Mối quan hệ giữ QEA và QEB 29

Bảng 1.3 Tín hiệu ngõ ra và ngõ vào của Opto 31

Bảng 1.4 Thông số kỹ thuật 2SC5200, 2SA1943 32

Bảng 1.5 Kết quả điều khiển định vị trí thông qua thuật toán PID 65

 

Trang 13

Chương 1

MỞ ĐẦU

1.1 Đặt vấn đề:

Trên con đường phát triển và hội nhập, cũng như phải đối mặt những thách thức

về phát triển kinh tế và hiện đại hóa nền đại công nghiệp, đất nước đang chuyển mình theo sự phát triển chung của thế giới và khu vực Châu Á nói riêng, bằng nền sản xuất

đa dạng và đầy tiềm năng Nền sản xuất này không chỉ đòi hỏi một lượng lao động khổng lồ mà còn yêu cầu về trình độ, chất lượng tay nghề, kỹ thuật lao động và thiết bị sản xuất Trên đà phát triển đó, vấn đề tự động hóa trong quá trình sản xuất, nghiên cứu trở thành một nhu cầu cần thiết Song song với quá trình đó việc điều khiển chính xác luôn được đặt lên hàng đầu trong các khu công nghiệp gia công, chế tạo máy Đáp ứng nhu cầu đó với ứng dụng khoa học kỹ thuật các máy CNC lần lượt ra đời với nhiều cải tiến hiện đại, phục vụ cho công nghiệp chế tạo và gia công với mức sai số đến hàng micromet

Trong đó, việc ứng dụng thuật toán PID số vào kỹ thuật điều khiển vị trí đã đem lại những kết quả đầy tính ưu việc Các thiết bị, hệ thống xác định vị trí ngày càng có

độ chính xác cao, thời gian thu thập số liệu ngắn

1.2 Mục đích và yêu cầu nghiên cứu

Mục đích của đề tài này là chế tạo thử nghiệm mô hình điều khiển định vị trí một trục với sự hộ trợ của thuật toán PID số Đối tượng thử nghiệm điều khiển vị trí là các tọa độ vạch sẵn trên thanh vít me bi

Yêu cầu nghiên cứu đề tài:

- Chế tạo mô hình định vị trí bằng vít me bi

Trang 14

- Thiết kế mạch công suất, mạch điều khiển cho mô hình

- Viết chương trình thuật toán PID số cho điều khiển vị trí

- Khảo sát tính năng làm việc của mô hình

1.3 Giới hạn:

Mặc dù chúng em đã cố gắng rất nhiều để hoàn thành đề tài này, song do giới hạn kiến thức và thời lượng thực hiện đề tài nên nội dung vẫn không thể tránh khỏi hạn chế về kích thước của mô hình Rất mong nhận được sự đóng góp ý kiến của quý Thầy Cô và các bạn sinh viên để luận văn được hoàn thiện hơn Xin chân thành cảm

ơn

Trang 15

Chương 2

TỔNG QUAN

2.1 Khái quát các phương pháp điều khiển vị trí:

2.1.1 Phương pháp sử dụng động cơ tuyến tính:

Hiện nay trong các máy CNC có sử dụng động cơ tuyến tính để tạo chuyển động tuyến tính dùng để điều khiển định vị, các ưu điểm của việc dùng động cơ tuyến tính:

- Đơn giản hơn về kết cấu cơ khí vì giảm bớt được phần tử truyền trung gian như hộp số và trục vít

- Do giảm bớt được các phần tử trung gian, tổn thất tổng thể giảm đáng kể, mặc khác đảm bảo độ chính xác cao hơn đặc biệt là các sai số do hao mòn cùng với thời gian sẽ giảm đi đáng kể

- Đạt được động học hệ thống với mức cao nhất, đồng thời loại được các chuyển động xoắn tiềm ẩn trong chuyển động của trục vít

Trang 16

2.1.2 Phương pháp điều khiển vị trí bằng ổ bi từ:

Trong một số máy phay của CNC, trục chính đòi hỏi tốc độ quay rất cao Khi đó cần phải dùng một động cơ chuyên biệt, được tích hợp sẵn trong trục chính và sử dụng

ổ bi từ để điều khiển vị trí

Hình 2.2 Trục chính có tích hợp sẵn động cơ và ổ bi từ

Loại động cơ chuyên biệt có các đặc tính sau:

- Tốc độ tối đa đạt được 40000 vòng/phút

- Ổ bi quay và ổ bi dọc trục có từ 2 đến 4 cặp nam châm

Việc sử dụng ổ bi từ là một bước tiến quan trọng của ngành cơ khí cho phép giảm tổn hao và tăng độ chính xác gia công (nhờ được loại trừ mòn do ma sát) Tuy nhiên, các lợi thế này buộc phải có khả năng áp dụng, cài đặt các phương pháp điều khiển ổ bi phù hợp

2.1.3 Phương pháp điều khiển vị trí bằng đai:

Để xác định vị trí ngoài các chuyển động trên, phương pháp điều khiển vị trí đựa trên chuyển động đai cũng được dùng trong vài máy CNC Các đặt điểm khi dùng truyền động bằng đai:

Trang 17

- Có thể kéo được tải lớn

- Độ chính xác khá cao vì có thể tăng giảm tỷ lệ truyền động

Hình 2.3 : Một máy điều khiển vị trí chạy bằng bộ truyền đai

2.1.4 Phương pháp điều khiển vị trí bằng vít me bi:

Các hệ thống sử dụng vít me bi để điều khiển vị trí có lợi thế ma sát đặt vào vít

me thấp hầu như không đáng kể, đảm bảo ổn định khi chuyển động, độ chính xác cao khi làm việc lâu dài

Hình 2.4 : Bộ phận truyền động bằng vit me bi

Trang 18

Dựa trên đặc điểm của các phương pháp điểu khiển vị trí và yêu cầu của đề tài nên mô hình điều khiển định vị trí sẽ dùng bộ phận truyền động bằng vít me bi làm bộ phận truyền động chính

2.2 Trục vít me đai ốc bi:

Trong máy công cụ điều khiển số người ta sử dụng hai dạng vít me cơ bản đó là: vít me đai ốc thường và vít me đai ốc bi

o Vít me đai ốc thường: là loại mà vít me và đai ốc có dạng tiếp xúc mặt

o Vít me đai ốc bi: là loại mà vít me và đai ốc có dạng tiếp xúc lăn

Thay vì trạng thái tiếp xúc mặt như vít me đai ốc thường thì vít me đai ốc bi có dạng tiếp xúc lăn bằng cách đưa vào các rãnh ren số lượng lớn bi hoặc bi trụ Do tiếp xúc giữa vít me và đai ốc là ma sát lăn nên ma sát có thể là coi là không đáng kể

Ưu điểm của Vít me đai ốc bi:

o Mất mát do ma sát nhỏ, hiệu suất của bộ truyền lớn gần bằng 0.9

o Đảm bảo chuyển động ổn định vì lực ma sát hầu như không phụ thuộc vào tốc độ

o Có thể loại trừ khe hở và tạo sức căng ban đầu đảm bảo độ cứng vững dọc trục cao

o Đảm bảo độ chính xác làm việc lâu dài

Vít me bi có kết cấu đa dạng nhưng chúng

đều có cấu tạo chung như sau:

Trang 19

Encoder là thiết bị đo lường dịch chuyển thẳng hoặc góc đồng thời chuyển đổi vị trí góc hoặc vị trí thẳng thành tín hiệu nhị phân và nhờ tín hiệu này có thể xác định được vị trí trục hoặc bàn máy Tín hiệu ra của Encoder cho dưới dạng tín hiệu số Encoder được sử dụng làm phần tử chuyển đổi tín hiệu phản hồi trong các máy CNC

và robot

Trong máy công cụ điều khiển số, chuyển động của bàn máy được dẫn động từ một động cơ qua vít me đai ốc bi tới bàn máy Vị trí của bàn máy có thể xác định được nhờ encoder lắp trong cụm truyền dẫn Encoder được chia làm 2 loại, absolute encoder

và incremental encoder Tạm dịch là encoder tuyệt đối và encoder tương đối

Nếu dịch sát nghĩa, khi đọc absolute encoder, có nghĩa là encoder tuyệt đối, tức

là tín hiệu nhận được, chỉ rõ ràng vị trí của encoder, không cần xử lý gì thêm cũng biết chính xác vị trí của encoder

Còn incremental encoder, là loại encoder chỉ có 1, 2, hoặc tối đa là 3 vòng lỗ Nếu bây giờ đục một lỗ trên một cái đĩa quay, thì cứ mỗi lần đĩa quay 1 vòng sẽ nhận được tín hiệu Nếu bây giờ có nhiều lỗ hơn, đĩa quay sẽ cung cấp nhiều thông tin chi tiết hơn, có nghĩa là đĩa quay 1/4 vòng, 1/8 vòng, hoặc 1/n vòng, tùy theo số lỗ nằm trên incremental encoder Cứ mỗi lần đi qua một lỗ, cần phải lập trình để thiết bị đo đếm lên 1 Do vậy, encoder loại này có tên incremental encoder (encoder tăng lên 1 đơn vị)

Trang 20

Nguyên lý cơ bản của encoder, đó là một đĩa tròn xoay, quay quanh trục Trên đĩa

có các lỗ (rãnh) Dùng một đèn led để chiếu lên mặt đĩa, khi đĩa quay chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh), đèn led sẽ chiếu xuyên qua Khi đó, phía mặt bên kia của đĩa, một con mắt thu sẽ được đặt đối xứng với led Với các tín hiệu có, hoặc không có ánh sáng chiếu qua sẽ ghi nhận được đèn led có chiếu qua lỗ hay không Khi trục quay, giả sử trên đĩa chỉ có một lỗ duy nhất, cứ mỗi lần con mắt thu nhận được tín hiệu đèn led, thì có nghĩa là đĩa đã quay được một vòng

2.4 Tìm hiểu động cơ DC:

2.4.1 Tổng quan:

Trong kĩ thuật có thể sử dụng nhiều loại động cơ khác nhau: động cơ xoay chiều, động cơ một chiều và động cơ bước Trong công nghiệp thường sử dụng động cơ xoay chiều

Trong thực tế với sự xuất hiện của biến tần, nói về chuẩn loại thì có rất nhiều, giá thành trong nhưng năm trở lại đây nói chung là chấp nhận được nên trong công nghiệp người ta thường sử dụng động cơ xoay chiều để truyền động, tuy nhiên bên cạnh đó động cơ DC vẫn được sử dụng rộng rải trong các dây chuyền tự động bởi vì nó có giá thành rẻ, nhỏ gọn, độ bền cao, điện năng tiêu thụ ít, so với động cơ bước nó có nhiều

ưu điểm điểm vượt trội:

+ Có phản hồi vị trí, tốc độ khép kín mạch vòng điều khiển, tăng độ chính xác của điều chỉnh

+ Công suất lớn hơn so với động cơ bước, có thể điều chỉnh được Momen, dẫn đến rút ngắn được thời gian quá độ do đó tốc độ xử lý được tăng lên đáng kể

+ Chính vì có được đáp ứng nhanh nên có thể áp dụng các phương pháp điều khiển yêu cầu đến tốc độ cao, chính xác hơn trong chuyển động, cũng như tăng được lực tác dụng

+ Cùng với một loại động cơ tùy vào công suất đã lựa chọn nhưng ta có thể tăng

độ chính xác của điều khiển bằng phần cứng như thay đổi loại encoder 200 xung/vòng,

Trang 21

400 xung/vòng,500 xung/vòng… hoặc có thể sử dụng phần mềm đếm xung ở cả hai pha của Encoder để tăng độ chính xác lên gấp đôi (động cơ có 400 xung/ vòng tương đương với động cơ có 800 xung/ vòng) Nhận xét với động cơ bước thông thường góc bước là 1.8 độ, độ chính xác tương đương với động cơ một chiều có gắn encoder loại

200 xung/ vòng Nếu ta sử dụng động cơ có encoder loại 400 xung/ vòng thì độ chính xác điều khiển tăng lên gấp đôi Và nếu ta nhân đôi số xung ( sử dụng phần mềm ) thì

độ chính xác có thể tăng lên đến 4 lần, tức là tương đương với động cơ bước có góc bước là 0.45 độ ( rất khó chế tạo)

Ở đề tài này chúng em sử dụng động cơ một chiều để điều khiển tốc độ của nó vì monent khởi động lớn, dễ điều khiển tốc độ và chiều

2.4.2 Sơ lược về động cơ DC:

Có nhiều cách để phân loại động cơ một chiều thường gặp:

Phân loại theo phương pháp kích thích cực từ chính:

+ Động cơ một chiều kích từ song song

+ Động cơ một chiều kích từ nối tiếp

Ngoài ra còn có phân loại theo kết cấu, theo công suất của động cơ điện…

2.4.3 Các phương pháp điều chỉnh tốc độ động cơ DC:

+ Điều chỉnh điện áp phần ứng

+ Điều chỉnh từ thông ( thay đổi dòng điện kích từ )

+ Thay đổi điện trở phần ứng

+ Ta có thể kết hợp các cách điều chỉnh tốc độ với nhau tuỳ theo từng giai đoạn, từng vùng và từng chế độ làm việc của động cơ

2.5 Khái quát về PIC 18F4431:

Do trong đề tài nghiên cứu có ứng dụng đến VĐK PIC 18F4431 nên chúng em xin trình bày các vấn đề cơ bản liên quan đến dòng VĐK PIC này

- Là CPU 8/18 bit, xây dựng theo kiến trúc Harvard có sữa đổi

- Có bộ nhớ Flash và ROM có thể tùy chọn từ 256 byte đến 256 kbyte

Trang 22

- Có các cổng xuất nhập (I/O ports)

- Có timer 8/16 bit

- Có các chuẩn giao tiếp nối tiếp động bộ/ không đồng bộ USART

- Có các bộ chuyển đổi ADC 10/12 bit

- Có các bộ so sánh điện áp (voltage Comparators)

- Có các bộ capture/compare/pwm

- Có hỗ trợ giao tiếp LCD

- Có MSSP peripheral dùng cho các giao tiếp I2C, SPI, và I2S

- Có bộ nhớ nội EEPROM, có thể ghi xóa tới 1 triệu lần

- Có khối điều khiển động cơ, đọc encoder

- Có hỗ trợ giao tiếp USB

- Có hỗ trợ điều khiển Ethernet

- Có hổ trợ giao tiếp CAN

Trang 23

o Giao tiếp nối tiếp :SSP,USART

o Module chuyển đổi A/D 10 bit : 9 kênh ngõ vào

o Reset (và delay ) : POR,BOR,reset lệnh,PWRT,OST,MCLR,WDT

o Bộ lệnh : 75

o Số chân : 40 chân PDIP,44 chân TQFP,44 chân QFN

2.5.2 Chức năng các chân PIC 18F4431:

o RA7 : Chân vào ra

• Chân OSC2/CLKO/RA6 (14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock

o OSC2: ngõ ra dao động thạch anh kết nối đến thạch anh hoặc bộ cộng hưởng

o CLK0: ở chế độ RC , ngõ ra của OSC2 ,bằng ¼ tần số của OSC1 và chính là tốc độ của chu kì lệnh

o RA6 : Chân vào ra

Trang 24

• Chân MCLR/Vpp/RE3 (1): có 2 chức năng:

o MCLR: là ngõ vào reset tích cực mức thấp

o Vpp: khi lập trình cho pic thì đóng vai trò là ngõ nhận điện áp lập trình

o RE3:Ngõ vào số,được dùng khi MCLR bị cấm

• Chân RA0 /AN0 (2): có 2 chức năng:

o AN2: ngõ vào tương tự của kênh thứ 2

o VREF-: ngõ vào điện áp chuẩn (thấp) của bộ A/D

o CAP1:chân ngõ vào capture 1

o INDX: chân ngõ vào chân Z giao tiếp

• Chân RA3/AN3/VREF+/CAP2/QEA (5) :

o RA3: xuất/nhập số

o AN3: ngõ vào tương tự của kênh thứ 3

o VREF+ :ngõ vào điện áp chuẩn (cao) của bộ A/D

o CAP2:chân vào capture 2

o QEA:chân ngõ vào kênh A giao tiếp

• Chân RA4/AN4/CAP3/QEB (6):

o RA4: xuất/nhập số

o AN4: ngõ vào tương tự của kênh thứ 4

o CAP3: chân vào capture 3

o QEB:chân ngõ vào kênh B giao tiếp

• Chân RA5/AN5/LVDIN(7):

o RA5: xuất/nhập số

o AN5: ngõ vào tương tự của kênh thứ 5

o LVDIN:ngõ vào phát hiện điện áp thấp

Trang 25

o KBI2:chân thay đổi ngắt

o PGC: mạch gỡ rối và xung clock lập trình ICSP

• Chân RB7/KIB3/PGD(40)

o RB7: xuất nhập số

o KBI3:chân thay đổi ngắt

o PGD: mạch gỡ rối và dữ liệu lập trình ICSP

• Chân RC0/T1OSO/T1CKI(15):

Trang 26

o RCO: xuất/nhập số

o T1OSO: ngõ ra bộ dao động timer1

o T1CKI: ngõ vào xung clock bên ngoài timer 1

• Chân RC1/T1OSI/CCP2/FLTA(16):

o RC1: xuất/ nhập số

o T1OSI: ngõ vào bộ dao động timer 1

o CCP2: ngõ vào capture 2,ngõ ra compare 2,ngõ ra PWM2

o FLTA:ngõ vào chân ngắt đứt quãng

• Chân RC2/CCP1/FLTB(17):

o RC2: xuất /nhập số

o CCP1: ngõ vào capture 1,ngõ ra compare 1,ngõ ra PWM1

o FLTB:ngõ vào chân ngắt đứt quãng

• Chân RC3/T0CKI/T5CKI/INT0 (18):

o RC3:xuất/ nhập số

o TOCKI: ngõ vào xung clock bên ngoài cho timer0

o T5CKI: ngõ vào xung clock bên ngoài cho timer5

o INT0: ngõ vào nhận tính hiệu ngắt ngoài 0

• Chân RC4/INT1/SDI/SDA (23):

o RC4:xuất/ nhập số

o INT1: ngõ vào nhận tính hiệu ngắt ngoài 1

o SDI:dữ liệu vào SPI

o SDA:xuất nhập dữ liệu I2C

• Chân RC5/INT2/SCK/SCL:(24)

o RC5: xuất/ nhập số

o INT2: ngõ vào nhận tính hiệu ngắt ngoài 2

o SCK:ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra cua chế độ SPI

o SCL:ngõ vào xung clock nối tiếp đồng bộ/ngõ ra chế độ I2C

• Chân RC6/TX/CK/SS (25):

o RC6:xuất/ nhập số

o TX:truyền bát đồng bộ USART

o CK:xung đồng bộ USART

Trang 27

o SS: ngõ vào chọn lựa spi phụ

o TOCKI: ngõ vào xung clock bên ngoài cho timer0

o T5CKI: ngõ vào xung clock bên ngoài cho timer5

o SDI:dữ liệu vào SPI

o SDO: dữ liệu ra SPI

• Chân RD3/SCK/SCL (22):

o RD3:xuát/ nhập số

o SCK:ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra cua chế độ SPI

o SCL:ngõ vào xung clock nối tiếp đồng bộ/ngõ ra chế độ I2C

Trang 28

o AN8: ngõ vào tương tự kênh thứ 8

• Chân Vdd(11,32)va Vss (12,31): là các chân nguồn của pic

2.5.3 PORTA và thanh ghi TRISA :

PORTA là port hai chiều có 8 bit, thanh ghi định hướng dữ liệu tương ứng là TRISA Khi bit TRISA bằng 1 thì PORTA là port nhập và khi bit TRISA bằng 0 thì PORTA là port xuất dữ liệu

Đọc thanh ghi PORTA là đọc trang thái ở các chân, nhưng ngược lại khi ghi thì

dữ liệu sẽ vào mạch chốt port Tất cả hoạt động ghi gồm 3 giai đoạn: đọc – hiệu chỉnh – ghi Do đó ghi dữ liệu vào 1 port được hiểu ngầm là đọc dữ liệu từ port rồi hiệu chỉnh và sau cùng là ghi dữ liệu vào mạch chốt dữ liệu

Chân RA2, RA3, RA4 được đa hợp với ba ngõ vào chân Capture và các chân encoder Chân RA6 và RA7 được đa hợp với các chân ngõ vào chính của xung thạch anh

Những chân khác của PORTA được đa hợp với các ngõ vào tương tự và ngõ vào tương tự VREF cho các bộ chuyển đổi A/D và các bộ so sánh Hoạt động của mỗi chân được lựa chọn bằng cách xóa/lập các bit điều khiển cho phù hợp trong thanh ghi ANSEL0 hoặc thanh ghi ANSEL1

Trang 29

Thanh ghi TRISA điều khiển hướng các chân của port ngay cả khi chúng được sử dụng như là ngõ vào tương tự Người sử dụng phải đảm bảo rằng các bit ở thanh ghi TRISA được duy trì ở mức 1 khi sử dụng chúng là ngõ vào tương tự

2.5.4 PORTB và thanh ghi TRISB:

PORTB là port hai chiều 8 bit Thanh ghi định hướng là TRISB Khi bit TRISB bằng 1 thì port nhập, khi TRISB bằng 0 thì PORTB là port xuất

Thanh ghi chốt dữ liệu LATB dùng để chốt giá trị ngõ ra của PORTB

Ba chân của PORTB được đa hợp với mạch điện gỡ rối bên trong và chức năng lập trình điện áp thấp: RB3/PGM, RB6/PGC và RB7/PGD

Bốn chân của PORTB RB4:RB7 có cấu trúc ngắt thay đổi Chỉ có những chân được thiết lập ở cấu hình là ngõ vào thì mới có chức năng ngắt Các chân ngõ vào (RB7:RB4) được so sánh với giá trị đã được chốt trong lần đọc trước của PORTB Các ngõ ra không trùng nhau của các chân RB4:RB7 được OR lại với nhau để tạo ngắt ở PORTB với bit cờ báo ngắt RBIF

Ngắt này có thể kích hoạt vi điều khiển trở lại trạng thái hoạt động khi nó đang ở chế độ SLEEP Trong chương trình phục vụ ngắt thì người dùng có thể xóa ngắt bằng các cách sau:

o Bất kì lệnh đọc hay ghi PORTB sẽ kết thúc điều kiện không thích ứng

o Xóa bit cờ RBIF

Điều kiện không tương thích sẽ tiếp tục làm cờ báo ngắt RBIF bằng 1 Khi đọc PORTB sẽ chấm dứt điều kiện không tương thích và cho phép xóa bit cờ báo ngắt RBIF

Cấu trúc ngắt thay đổi dùng để thoát khỏi chế độ nghỉ khi có nhấn phím và các hoạt động mà PORTB chỉ được dùng cho cấu trúc thay đổi ngắt

Cấu trúc ngắt không tương thích kết hợp với 4 chân có cấu hình điện trở kéo lên bằng phần mền dễ dàng cho phép giao tiếp với bàn phím

Trang 30

2.5.5 PORTC và thanh ghi TRISC:

PORTC là port hai chiều 8 bit Thanh ghi định hướng là TRISC Khi bit TRISC bằng 1 thì PORTC là port nhập, khi bit TRISC bằng 0 thì PORTC là port xuất

PORTC là port được đa hợp với vài chức năng ngoại vị Các chân của PORTC

có mạch đệm Schmitt trigger ở ngõ vào

Khi khối I2C được cho phép thì các chân PORTC(các chân 4 và 5) có thể được định cấu hình ở các mức I2C hoặc mức SMBUS bằng cách sử dụng bit CKE

Khi cho phép các chức năng ngoài vi, nên chú ý đến các bit TRIS cho mỗi chân của PORTC Một vài thiết bị ngoại vi ghi neon lên bit TRIS để làm một chân như là 1 ngõ ra, trong khi đó các thiết bị ngoại vi khác ghi neon lên bit TRISB để làm một chân như là 1 ngõ vào Khi ghi đè bit TRIS thì không ảnh hưởng đến các thiết bị đã cho phép, các lệnh đọc – hiệu chỉnh – ghi (BSF, BCF, XORWF) với TRISC là đích đến phải tránh dùng Người sử dụng tham chiếu tới phần thiết bị ngoại vi tương ứng để thiết lập cho đúng bit TRIS

2.5.6 PORTE và thanh ghi TRISE:

PORTE là port hai chiều 4 bit Thanh ghi định hướng là TRISE Khi bit TRISE bằng 1 thì port nhập, khi TRISE bằng 0 thì PORTE là port xuất

2.5.7 Bộ định thời timer 0:

a./ Đặc điểm:

o Là timer/counter 8 bit hoặc 16 bit được lựa chọn băng phần mềm

o Có thể đọc và ghi

o Có bộ chia trước 8 bit có thể lập trình băng phần mềm

o Cho phép lựa chọn nguồn xung clock bên trong hoặc bên ngoài

o Phát sinh ngắt khi bị tràn từ FFh đến 00h đối với timer/counter 8 bit và

từ FFFFh đến 0000h đối với timer/counter 16 bit

o Cho phép lựa chọn tác động cạnh cho xung clọck bên ngoài

o Thanh ghi T0CON là thanh ghi có thể đọc và ghi để điều khiển timer 0

và lựa chọn bộ chia trước

Trang 31

b./ Hoạt động của timer 0:

Chế độ định thời được chọn bởi việc xóa bit TOSC trong chế độ định thời timer

thì timer 0 sẽ tăng giá trị sau mỗi chu kì lệnh ( không có bộ chia) nếu thanh ghi TMR0

bị ghi giá trị mới thi quá trình tăng sẽ bị cấm trong 2 chu kì theo sau.Người sử dụng có

thể làm tròn giá trị này bằng cách ghi giá trị có điều chỉnh vào thanh ghi TMR0

Nếu bit TOSC bằng 1 thì chọn chế độ đếm counter Trong bộ đếm counter thì

timer 0 sẽ tăng giá trị đếm mỗi khi có xung tác động cạnh lên hoặc cạnh xuống ở chân

RC3/TOCKI cạnh tác động của xung được lựa chọn bởi bit TOSE TOSE = 0 chọn

cạnh lên,ngược lại thì chọn cạnh xuống

Bộ chia trước không thể đọc, ghi và có quan hệ với timer 0 và WDT

c./ Ngắt của timer 0:

Ngắt TMR0 được kích hoặc khi thanh ghi TMR0 tràn từ 00h đến FFh khi tràn

xảy ra sẽ làm bit TMR0IF lên mức 1,ngắt có thể che( cấm) bằng cách xóa bit TMR0IE.Bit TMR0IF phải được xóa bằng phần mềm bởi chương trình con phục ngắt

của timer 0 trước khi cho phép ngăt trở lại.ngắt tmr0 không thể kích thich vi xử lý

thoát khỏi chế độ sleep vì bộ định thời sẽ ngừng khi ở chế độ sleep

d./ Timer 0 với nguồn xung đếm từ bên ngoài:

Khi không sử dụng bộ chia trước thì ngõ vào xung clock bên ngòai giống như

ngõ ra bộ chia trước Sự đồng hóa của TOCKI với các xung clock bên trong được thưc

hiện bằng cách lấy mẫu ngõ ra bộ chia ở những chu kì Q2 và Q4 của xung clock bên

trong Do đó , nó rất cần thiết cho TOCKI ở trạng thái mức cao ít nhất 2 Tocsvà ở

trạng thái mức thấp ít nhất 2 Tosc

e./ Bộ chia trước :

Chỉ có 1 bộ chia có tác dụng mà nó có quan hệ với Timer0 và WDT Khi gán bộ

chia trước cho timer0 thì sẽ không có bộ chia cho Watchdog Timer và ngược lại Bộ

chia trước thì không thể đọc hoặc ghi Các bit PSA và PS2:PSO xác định gán của bộ

chia và tỉ lệ chia

Khi được gán cho Timer0 thì tất cả các lệnh ghi cho thanh ghi TMR0 ( ví dụ

CLRF 1, MOVWF 1, BSF 1, …) sẽ xóa bộ chia trước

Trang 32

Khi được gán cho WDT thì lệnh CLRWDT sẽ xóa bộ chia trước cùng với Watchdog Timer Bộ chia trước cũng không thể đọc hoặc ghi

2.5.8 Bộ định thời timer 1:

a./ Đặc điểm:

o Là bộ timer/counter 16bit gồm 2 thanh ghi 8 bit (TMRH và TMRL )

o Có thể đọc và ghi

o Cho phép lựa chọn nguồn xung clock từ bên trong hoặc bên ngoài

o Phát sinh ngắt khi xảy ra tràn từ FFFFh đến 0000h

o Ngõ vào reset có thể được tạo bởi khối CCP

b./ Hoạt động của timer 1 ở chế độ định thời :

Nếu bit TMR1CS (bit thứ nhất của T1CON)=0 thì timer 1 làm việc ở chế độ định thời và tâng sô xung đồng hồ đưa đén bộ đém bằng fosc/4

c./ Hoạt động của timer 1 ở chế độ counter:

Timer1 có thể hoạt động đồng bộ hoặc bất đồng bộ tùy thuộc vào bit TMR1CS Timer 1 tăng lên 1 khi có cạnh lên của xung bên ngoài sau khi timer 1 được phép bắt đầu hoạt động ở chế độ counter thì counter phải nhận 1 xung cạnh xuống trước khi có xung đếm

d./ Hoạt động của timer 1 ở chế độ counter đồng bộ:

Khi bit TMR1CS = 1 thi timer 1 hoạt động ở chế độ counter và sẽ tăng giá trị nếu :

*Có cạnh xung lên đưa ngõ vào ở chân RC1/T1OSI/CCP2 và bit T1OSCEN bằng 1

*Có xung cạnh lên đưa đền ngõ vào ở chân RC0/T1OSO /T1CKI và bit T1OSCEN bằng 0

e./ Hoạt động của timer 1 ở chế độ counter bất đồng bộ :

Trang 33

Nếu bit T1SYNC(bit thứ 2 T1CON)bằng 1 thì xung ngõ vào từ bên ngoài không được đồng bộ bộ đếm tiếp tục tăng bất đồng bộ với xung bên trong.bộ đếm sẽ tiếp tục đếm khi ở trong chế độ sleep và có thể phát sinh ngắt tràn để khởi động lại bộ xử lý, tuy nhiên các phòng ngừa đặc biệt trong phần mềm thì cần phải đọc ghi bộ định thời

Ở chế độ đếm không đồng bộ thì timer 1 không thể dùng bộ tạo thời gian chuẩn để bắt kịp hoạt các hoạt động so sánh

f./ Đọc và ghi timer 1 trong chế độ không đồng bộ:

Đọc các thanh ghi TMR1H và TMR1L trong khi timer đang hoạt động đếm xung bất đồng bộ bên ngoài thì giá trị đọc có hiệu lực

Khi ghi thì nguời dùng nên ngừng timer lại rồi mới ghi giá trị mong muốn vào các thanh ghi.nội dung ghi vào timer có thể thực hiện khi timer đang đếm nhưng có thể tạo ra 1 giá trị không thể dự đoán được ở các thanh ghi của timer

g./ Bộ dao động của timer1 :

Mạch dao động thạch anh được thiết kế và tích hợp bên trong giữ các chân T1OSI (ngõ vào ) và T1OSO (ngõ ra có khuếch đại bộ dao động được phép hoạt động bằng cách làm bit điều khiển T1OSCEN (bit thứ 3 của T1CON)lên mức 1 bộ dao động là dao động công suất thấp ,tốc độ 200 khz bộ dao động vẫn tiếp tục chạy ở trong chế độ sleep ,bộ dao động dự đinh chủ yếu dùng thạch anh 32khz

Hình 2.8:Lựa chọn tụ cho bộ dao động h./ Reset timer 1 sử dụng ngõ ra ccp trigger:

Nếu khối ccp1 và ccp2 được định cấu hình ở chế độ so sánh để tạo ra xung kích

sự kiện đặc biệt (CCP1M3:CCP1M0=1011), tín hiệu này sẽ reset timer 1

Chú ý: ‘xung kích sự kiện đặc biệt ‘ từ chối CCP1 và CCP2 sẽ không làm bit cờ ngắt TMR1IF bằng 1

Trang 34

Timer phải định cấu hình ở chế độ định thời hoặc bộ đém đồng bộ để tạo ra tiện ích cho cấu trúc này.nếu timẻ 1 đang hoạt động ở chế độ đếm bất động bộ thì hoạt động reset không thể thực hiện được

i./ Ngắt của timer 1:

Ngắt của timer 1 nếu được cho phép sẽ phát sinh ngắt khi tràn và được chốt vào bit cờ ngắt TMR1IF.ngắt này có thể cho phép/cấm khi bit TMR1IE (bit thứ 0 của PIE1) có giá trị 1/0 tương ứng

2.5.9 Bộ dịnh thời timer 2:

Timer 2 là timer 8 bit ,có bộ chia trước và có potscaler Timer 2 có thể sử dụng như bộ tạo xung có PWM cho chế độ họat động PWM của khối CCP Thanh ghi TMR2 có thể đọc và ghi và có thể xóa khi bị reset

Ngõ vào xung clock (fosc/4) có tùy chọn hệ số cho trước là 1:1, 1:4, 1:6

Được lựa chọn bằng các bit điều khiển T2CKPS1:T2CKPS0

Timer 2 có một thanh ghi có chu kì 8 bit PR2 Timer 2 tăng giá trị từ 00h cho đến khi bằng PR2 và sau đó reset về 00h ở chu kì kế tiếp.PR2 là thanh ghi có thể đọc và ghi khi hệ thống bị reset thì thanh ghi PR được khởi tạo giá trị FFh

Ngõ ra của TMR2 đi qua postcaler 4 bit để tạo ra yêu cầu ngắt TMR2 được chốt trong bit cờ TMR2IF Có thể tắt TMR2 bằng cách xóa bit điều khiển TMR2ON để giảm công suất tiêu thụ

2.5.10 Bộ định thời timer 5:

Timer 5 là bộ timer/counter tổng quát nhằm kết hợp với việc sử dụng chế độ hồi tiếp chuyển động nó có thể sử dụng như một bộ định thời cơ bản hoặc bộ delay “xung kích các sự kiện đặc biệt”.khi sử dụng như bộ định thời tổng quát nó có thể phát sinh delay cho “xung kích sự kiện đặc biệt “(như ngắt ADC) bằng chương trình được lập trình sẵn

Timer 5 được điều khiển bằng thanh ghi T5CON timer 5 có thể được cho phép hoặc cấm bằng cách set hoặc xóa bit TMR5ON

Trang 35

2.5.11 MODULE ADC:

Module chuyển đổi tương tự - số tốc độ cao cho phép chuyển đổi 1 tín hiệu tương

tự sang 1 số 10bit tương ứng PIC18F4331/4431 có đến 9 kênh ngõ vào

Module A/D 10bit tốc độ cao bao gồm những đặc điểm sau:

+ Tối đa 200k mẫu mỗi giây

+ Hai mẫu và giữ các ngõ vào cho việc lấy mẫu đồng thời trên kênh đôi

+ Cho phép chọn chế độ lấy mẫu đồng thời hoặc tuần tự

+ Bộ đệm dữ liệu 4 – word cho kết quả bộ chuyển đổi A/D

+ Cho phép chọn hoạt động định thời thu nhận dữ liệu

+ Cho phép chọn bộ khởi động sự kiện A/D

+ Hoạt động ở chế độ chờ bằng việc sử dụng bộ dao động nội

Những đặc điểm này làm cho chúng có nhiều ứng dụng bao gồm điều khiển động

cơ, giao tiếp với sensor, tiếp nhận dữ liệu và điều khiển quá trình Trong nhiều trường hợp, những đặc điểm này sẽ làm giảm các phần mềm ban đầu liên kết với module A/D chuẩn

Module có 9 thanh ghi:

+ A/D Result High Register (ADRESH)

+ A/D Result Low Register (ADRESL)

+ A/D Control Register 0 (ADCON0)

+ A/D Control Register 1 (ADCON1)

+ A/D Control Register 2 (ADCON2)

+ A/D Control Register 3 (ADCON3)

Trang 36

+ Analog I/O Select Register 0 (ANSEL0)

2.5.12 Ngắt:

a./ Giới thiệu về ngắt:

o PIC 18F4431có 35 nguồn ngắt và tính năng ngắt ưu tiên , mỗi nguồn ngắt thì được gán cho một level ưu tiên cao or level ưu tiên thấp , vecter ngắt ưu tiên cao có địa chỉ 000008h, vecter ngắt ưu tiên thấp có địa chỉ là 000018h

o Có 13 thanh ghi liên quan đến điều khiển hoạt động ngắt :

RCON

INTCON

INTCON2

INTCON3

PIR1, PIR2, PIR3

PIE1, PIE2, PIE3

IPR1, IPR2, IPR3

o Nhìn chung , mỗi nguồn ngắt thì có 3 bít điều khiển hoạt động của nó

Bít cờ thông báo có ngắt rảy ra

Bit ưu tiên lựa chọn ưu tiên thấp hay cao

Bit cho phép chương trình chạy đến vectơ ngắt khi bit cờ lên 1

o Tính năng ngắt ưu tiên đựoc thiết lập bởi bit IPEN trên thanh ghi RCON

o Khi ngắt ưu tiên cho phép, có 2 bit cho phép ngắt toàn cục, nếu bit GIEH n(INTCON<7>) được thiết lập cho phép tất cả các nguồn ngắt, khi có bit ưu tiên =1 Nếu GIEL (INTCON<6>) được thiết lập cho phép tất cả các nguồn ngắt, khi có bit ưu tiên =0

o Khi bit IPEN bị xoá thì tính năng ngắt ưu tiên sẽ vô hiệu hoá

Trang 37

o Khi có một ngắt được đáp ứng, bit cho phép ngắt toàn cục sẽ bị xoá, vô hiệu hoá tính năng ngắt

o Ngắt ở chân RC3/INT0, RC4/INT1, RC5/INT2 khi có thay đổi trạng thái portB, ngắt khi có cờ tràng của timer TMR0

o Ngắt PORTB thay đổi: bất kỳ một thay đổi nào trên PORTB<7-4> thì bit cờ RBIF(INTCON<0>) set lên, ngắt này cho phép hoặc cấm bằng cách set/clear bit cho phép ngắt RBIE(INTCON<3>) Ngắt ưu tiên của PORTB thay đổi được quyết định bởi giá trị chứa trong bit cho phép ngắt RBIP(INTCON2<0>)

o Ngắt ngoài: là ngắt xảy ra trên các chân RC3/INT0, RC4/INT1, RC5/INT2: kích bằng cạch lên , cạch xuống đều được, lựa chọn cạch ngắt do bit INTEDGx trên thanh ghi INTCON2, kích bằng cạch lên nếu bit INTEDGx=1, kích bằng cạch suống nếu INTEDGx=0,khi có cạch tích cực xuất hiện trên chân RC3/INT0 thì bít cờ tương ứng INTxIF set lên Đây là ngắt có thể bị vô hiệu hoá bởi bit cho phép tương ứng bị

o Xoá(INTxIE).Bit cờ INTxIF có thể được xoá bởi phần mềm trước tập tin thi hành cho phép ngắt

2.5.13 Khối capture/compare/pwm (CCP):

CCP bao gồm các thao tác trên các xung đếm cung cấp bởi các bộ đếm Timer1 và Timer2 Trong PIC18F4431 có hai khối Capture, compare, PWM (CCP1,2) Chế độ capture có độ rộng 16 bit, độ phân giải 12,5ns Chế độ compare có độ rộng 16 bit, độ phân giải 200ns Độ phân giải lớn nhất của PWM là 10 bit, chân điều khiển dùng cho khối CCPx là RC2/CCP1 và RC1/T2OSI/CCP2

Mỗi khối capture/compare/PWM (CCP1,2) bao gồm một thanh ghi 16 bit, thanh

Trang 38

o Thanh ghi 16 bit cho chế độ capture

o Thanh ghi 16 bit cho chế độ compare

o Thanh ghi cho hoạt động PWM

Cả hai module CCP1 và CCP2 đều có nguyên tắc hoạt động giống nhau và chức năng của từng khối là khá độc lập Tuy nhiên trong một số trường hợp ngoại lệ CCP1

và CCP2 có khả ngăng phối hợp với nhau để tạo ra các sự kiện đặc biệt (special event trigger) hoặc các tác động lên Timer1 và Timer2 Các trường hợp này được liêt kê trong bảng 1.1:

Bảng 1.1 : Các chức năng của CCPx và CCPy

Capture Capture Dùng chung nguồn xung clock từ TMR1

Capture Compare Tạo ra sự kiện đặc biệt làm xóa Timer1

Compare Compare Tạo ra sự kiện đặc biệt làm xóa Timer1

PWM PWM Dùng chung tần số xung clock và cùng chịu tác động

ngắt TMR2

Thanh ghi CCPR(1,2)(capture/compare/PWM (1,2)) là sự kết hợp của 2 thanh ghi

8 bit: CCPR(1,2)L (byte thấp) và CCPR1,2H (byte cao) Thanh ghi CCP(1,2)CON điều khiển hoạt động của module CCP1,2

a./ Chế độ capture:

Trong chế độ capture CCPR1H:CCPR1L thu nạp giá trị 16 bit của thanh ghi TMR1 khi có sự kiện xảy ra trên chân RC2/CCP1 Có các loại sự kiện sau đây:

o Mỗi khi có cạnh xuống

o Mỗi khi có cạnh lên

o 4 lần cạnh lên

Trang 39

o 16 lần cạnh lên

Các sự kiện trên được điều khiển việc set các bit CCP1M3:CCP1M0 (CCPxCON<3:0>) Khi capture làm việc sẽ xảy ra ngắt, cờ báo ngắt CCP1IF(PIR1<2>) được set lên 1, cờ báo ngắt phải được xóa bằng phần mềm, nếu một capture khác xuất hiện trước khi giá trị trong thanh ghi CCPR1 đọc, giá trị của capture cũ sẽ được ghi chồng lên giá trị mới Trong chế độ capture, chân RC2/CCP1 phải được thiết lập trạng thái đầu vào bằng cách set TRISC

Chú ý: nếu chân RC2/CCP1 được thiết lập ở trang thái xuất , ghi dữ liệu vào port

có thể là nguyên nhân điều kiện của capture

Set Timer1 phải được chạy như trong trạng thái timer hoặc chế độ counter đồng

bộ để module CCP sử dụng ở chế độ capture Trong chế độ counter đồng bộ, sự hoạt động của capture có thể không làm việc Khi chế độ capture thay đổi, một báo ngắt capture sai có thể xuất hiện Người sử dụng nên giữ xóa bit CCP1IE (PIE1<2>) để tránh ngắt sai và nên xóa bit cờ báo ngắt CCP1IF

Có 4 cách cài đặt tỉ lệ chia, đặc biêt bởi 4 bit CCP1M3:CCP1M0 Bất cứ khi nào module CCP tắt hoặc module CCP không ở chế độ capture, tỉ lệ chia counter bị xóa, mỗi khi có reset sẽ xóa tỉ lệ chia counter Chuyển đổi từ một cái chia tỉ lệ cho capture sang xuất hiện một ngắt, tỉ lệ chia counter sẽ không bị xóa, cho nên capture đầu tiên có thể tỉ lệ chia là 00

b./ Chế độ compare:

Trong chế độ compare, giá trị của thanh ghi 16 bit CCPR1 sẽ được so sánh thanh ghi TMR1, khi hai giá trị này bằng nhau thì tín hiệu ở chân RC2/CCP1(RC1/CCP2) sẽ

có các trường hợp xảy ra:

o Luôn chạy ở mức cao

o Luôn chạy ở mức thấp

o Giữ nguyên trạng thái

Trang 40

Các họat động trên chân là cơ bản sẽ được điều khiển bởi giá trị các bit CCP1M3:CCP1M0 (CCP1CON<3:0>) Tại cùng thời điểm cờ ngắt CCP1IF sẽ được set

Trong chế độ capture, chân RC2/CCP1 phải được thiết lập trạng thái đầu vào bằng cách set TRISC

Set Timer1 phải được chạy như trong trạng thái timer hoặc chế độ counter đồng

bộ để module CCP sử dụng ở chế độ capture Trong chế độ counter đồng bộ, sự hoạt động của capture có thể không làm việc Khi một chương trình ngắt xuất hiện được chọn, thì chân CCP1 sẽ không thiết lập Bit CCPIF được set, là ngắt CCP (nếu được cho phép) Trong chế độ này, kích bởi phần cứng bên ngoài xuất hiện sự kiện này thường được dùng để bắt đầu làm việc

Kích bởi sự kiện đặc biệt bên ngoài của CCP1 làm reset cặp thanh ghi TMR1, sự cho phép thanh ghi CCPR1 mang lại hiệu quả như một thanh ghi khoảng thời gian chương trình 16 bit cho Timer1 Kích bởi sự kiện đặc biệt bên ngoài của CCP1 làm reset cặp thanh ghi TMR1 và bắt đầu một khối chuyển đổi A/D (nếu khối chuyển đổi

AD cho được phép)

c./ Chế độ PWM:

Trong chế độ PWM thì chân CCPx xuất ra độ phân giải, bởi vì chân CCP1 được tích hợp chung với PORTC chốt dữ liệu Bit TRISC<2> phải được xóa để làm cho chân CCP1 như một chân ra

Một ngõ ra PWM có một khoảng thời gian cơ bản (chu kỳ) và một khoảng thời gian tồn tại ở mức cao (độ rộng của xung) Tần số của PWM bằng nghịch đảo với period (1/period)

2.5.14 Bộ đọc tín hiệu hồi tiếp (QEI):

Ngày đăng: 19/07/2018, 08:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w