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

thiết kế hệ thống điều khiển từ xa bằng sóng hồng ngoại

65 243 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 65
Dung lượng 2,15 MB
File đính kèm dieu-khien-tu-xa-bang-song-hong-ngoai.rar (2 MB)

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

Nội dung

MỤC LỤC Trang LỜI CÁM ƠN 1 TÓM TẮT ĐỒ ÁN 2 LỜI MỞ ĐẦU 3 Chương 1 4 LÝ THUYẾT ĐIỀU KHIỂN XA 4 1.1GIỚI THIỆU VỀ HỆ THỐNG ĐIỀU KHIỂN TỪ XA 4 1.1.1Một số vấn đề cơ bản trong hệ thống điều khiển từ xa 4 1.1.2Các phương pháp mã hóa trong điều khiển từ xa 5 1.1.3Sơ đồ khối của một hệ thống điều khiển từ xa 6 1.1.4 Các phương pháp điều chế tín hiệu trong hệ thống điều khiển từ xa 7 Kết Luận : 10 1.2 ĐIỀU KHIỂN TỪ XA DÙNG TIA HỒNG NGOẠI 10 1.2.1 Khái niệm về tia hồng ngoại 10 1.2.2 Nguồn phát hồng ngoại 11 1.2.3 Linh kiện thu sóng hồng ngoại 11 1.2.4 Sơ đồ khối hệ thống điều khiển từ xa dùng hồng ngoại 11 Chương 2 15 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 15 2.1 GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN PIC 15 2.1.1 PIC là gì? 15 2.1.2 Tại sao dùng vi điều khiển PIC 15 2.1.3 Kiến trúc PIC 16 2.1.4 RISC và CISC 17 2.1.5 PIPELINING 17 2.1.6Các dòng PIC và cách lựa chọn vi điều khiển PIC 18 2.1.7 Ngôn ngữ lập trình cho PIC 18 2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC 16F877A 18 2.2.1Sơ đồ khối vi điều khiển PIC16F877A 20 2.2.2 Tổ chức bộ nhớ 21 2.2.3Các cổng xuất nhập của PIC16F877A 24 2.2.4TIMER 0 26 2.2.5 TIMER1 28 2.2.6 TIMER 2 29 2.2.7 ADC 30 2.2.8 COMPARATOR 32 2.2.9 Bộ tạo điện áp so sánh 34 2.2.10 CCP 35 2.2.11 Ngắt (interrupt) 39 Chương 3 41 THIẾT KẾ, THI CÔNG HỆ THỐNG ĐIỀU KHIỂN TỪ XA BẰNG SÓNG HỒNG NGOẠI 41 3.1 THIẾT BỊ THU, PHÁT VÀ RƠ LE 43 3.1.2Chuẩn giao tiếp của Remote TV Sony 45 3.1.3Thiết bị thu 47 3.1.4 Thiết bị đóng ngắt rơ le 48 3.2THIẾT KẾ MẠCH 50 3.2.1 Các khối và sơ đồ nguyên lý 50 3.2.2 Các linh kiện sử dụng trong mạch 52 3.2.3 Mạch in 53 3.2.4Mạch điều khiển và mô hình đã thi công 53 PHỤ LỤC 58

Trang 1

LỜI CÁM ƠN

Em xin gửi lời cám ơn thầy Nguyễn Phúc Ngọc đã tận tình hướng dẫn và địnhhướng em trong thời gian nghiên cứu và thực hiện đề tài này Em xin chân thànhcám ơn các thầy cô giáo trong khoa Điện Tử Viễn Thông đã nhiệt tình dạy dỗ, cungcấp cho em những kiến thức nền vững chắc trong suốt 5 năm học qua

Thời gian thực hiện đồ án có hạn nên mặc dù cố gắng rất nhiều nhưng đồ ánkhông tránh khỏi những thiếu sót Kính mong các thầy cô trong khoa tận tình chỉbảo và góp ý kiến để đồ án này được hoàn thiện hơn

Em xin chân thành cám ơn

Sinh viên thực hiện

Trang 2

TÓM TẮT ĐỒ ÁN

Nội dung đồ án được chia thành 3 chương chính:

Chương 1: Lý thuyết điều khiển từ xa

Chương 2: Tổng quan về vi điều khiển PIC

Chương 3: Thiết kế, thi công hệ thống điều khiển từ xa bằng sóng hồng ngoại

Hệ thống điều khiển thiết bị từ xa bằng sóng hồng ngoại thông qua việc phátsóng hồng ngoại từ remote TV Sony, nhận sóng hồng ngoại bằng mắt thu irm

56384, xử lý tín hiệu của Pic 16f877A, thiết bị ngắt rơ le để điều khiển tắt/mở cácthiết bị trong gia đình như: đèn, Tivi, quạt…

Với việc thiết kế, thi công và hoàn thiện hệ thống điều khiển từ xa bằng sónghồng ngoại thảnh công, tôi hy vọng đồ án này sẽ góp phần tiện nghi hoá cuộc sống

và tạo niềm tin cho tôi tạo dựng tương lai sự nghiệp

ABSTRACT

The content of this plan is divided into three main parts:

Part 1: Far-distance controlling theories

Part 2: Overview about programmable controller’s theory PIC

Part 3: Design and execute the far-distance controlling by Infrared radiation

The far-distance controlling system by Infrared radiation is used by radiatingInfrared from Sony remote control, receiving infrared receiver led by irm

56384, signal processing of the pic 16f877A, breaker relays to control on / offhousehold appliances such as lights, TV, fan

Through designing, executing and completing this Far-distance controllingsystem successfully, I hope that this plan will help our lives conveniently and build

up my own career in the future

Trang 3

LỜI MỞ ĐẦU

Do yêu cầu về lĩnh vực tự động hóa trong sinh hoạt ngay càng cao Các thiết

bị sinh hoạt ngày càng hiện đại, do đó việc điều khiển từ xa ngày càng trở nên cầnthiết và là một yêu cầu không thể thiếu trong xã hội hiện nay

Điều khiển từ xa là việc điều khiển một mô hình ở một khoảng cách nào đó

mà con người không cần thiết đến trực tiếp nơi đặt hệ thống Khoẳng cách đó tùythuộc vào từng hệ thống có mức phức tạp khác nhau, chẳng hạn như để điều khiển

từ xa một phi thuyền ta cần phải có hệ thống phát và thu mạnh, ngược lại, để điềukhiển một trò chơi điện tử từ xa ta chỉ cần một hệ thống phát và thu đơn giản côngsuất nhỏ…Những đối tượng được điều khiển có thể ở trên không trung, ở dưới đáybiển hay ở một vùng xa xôi nào đó

Thế giới càng phát triển thì lĩnh vực điều khiển cần được mở rộng hơn Việcứng dụng điều khiển từ xa vào thông tin liên lạc đã mang lại nhiều thuận lợi cho xãhội loài người, thông tin được cập nhập hơn nhờ sự chính xác và nhanh chóng củaquá trình điều khiển từ xa

Ngoài ra, điều khiển từ xa còn được ứng dụng trong kỹ thuật đo lường Trướcđây muốn đo độ phóng xạ của lò hạt nhân thì hết sức khó khăn, phức tạp và nguyhiểm, nhưng giờ đây con người có thể ở một nơi an toàn cũng có thể đo được độphóng xạ của lò phản ứng hạt nhân Như vậy, hệ thống hệ thống điều khiển từ xa đãhạn chế được mức độ phức tạp của công việc và đảm bảo an toàn cho con người.Trong sinh hoạt hằng ngày của con người như những trò chơi giải trí (robot,

xe điều khiển từ xa….) cho đến các thiết bị gần gũi với con người cũng được cảitiến cho phù hợp với việc sử dụng và đạt mức tiện lợi nhất có thể được Điều khiển

từ xa đã xâm nhập vào lĩnh vực này và cho ra những Tivi, đầu máy Video… Đếncác thiết bị như quạt máy, điều hòa… Xuất phát từ những ý tưởng đó và nhu cầucuộc sống nên em đã chọn đề tài “thiết kế hệ thống điều khiển từ xa bằng sóng hồngngoại”

Trang 4

Chương 1

LÝ THUYẾT ĐIỀU KHIỂN XA 1.1 GIỚI THIỆU VỀ HỆ THỐNG ĐIỀU KHIỂN TỪ XA

Hệ thống điều khiển từ xa là một hệ thống cho phép ta điều khiển các thiết bị

từ một khoảng cách xa Ví dụ, hệ thống điều khiển bằng sóng vô tuyến, hệ thốngđiều khiển bằng hồng ngoại, hệ thống điều khiển xa bằng cáp quang dây dẫn… Ởđây, trong khuôn khổ đề tài được giao ta chỉ nói đến hệ thống điều khiển xa bằnghồng ngoại

- Thiết bị phát: biến đổi lệnh điều khiển thành tín hiệu và phát đi

- Đường truyền: đưa tín hiệu điều khiển từ thiết bị phát đến thiết bị thu

- Thiết bị thu: nhận tín hiệu điều khiển từ đường truyền, qua quá trình biếnđổi, biến dịch để tái hiện lại lệnh điều khiển rồi đưa đến các thiết bị thi hành

Hình 1.1: Sơ đồ kết cấu hệ thống điều khiển từ xa.

- Phát tín hiệu điều khiển

- Sản sinh ra xung hoặc hình thành các xung cần thiết

- Phát các tổ hợp mã đến điểm chấp hành

- Ở điểm chấp hành (thiết bị thu) sau khi nhận được mã phải biến đổi các

mã nhận được thành các lệnh điều khiển và đưa đến các thiết bị, đồng thời kiểm tra

sự chính xác của mã mới nhận.[3]

1.1.1 Một số vấn đề cơ bản trong hệ thống điều khiển từ xa

Trang 5

Do hệ thống điều khiển từ xa có những đường truyền dẫn xa nên ta cầnphải nghiên cứu về kết cấu của hệ thống để đảm bảo tín hiệu được truyền đi chínhxác và nhanh chóng theo những yêu cầu sau:

 Kết cấu tin tức

Trong hệ thống điều khiển từ xa độ tin cậy truyền dẫn tin tức có quan hệ rấtnhiều đến kết cấu tin tức Nội dung về kết cấu tin tức có hai phần: về lượng và vềchất Về lượng có các biến lượng điều khiển và lượng điều khiển thành từng loạixung gì cho phù hợp, và những xung đó cần áp dụng những phương pháp nào đểhợp thành tin tức, để có dung lượng lớn nhất và tốc độ truyền dẫn nhanh nhất

 Về kết cấu hệ thống

Để đảm bảo các yêu cầu về kết cấu tin tức, hệ thống điều khiển từ xa có các

yêu cầu sau:

- Tốc độ làm việc nhanh

- Thiết bị phải an toàn tin cậy

- Kết cấu phải đơn giản

Hệ thống điều khiển từ xa có hiệu quả cao là hệ thống đạt tốc độ điều khiểncực đại đồng thời đảm bảo độ chính xác trong phạm vi cho phép.[3]

1.1.2 Các phương pháp mã hóa trong điều khiển từ xa

Trong hệ thống truyền thông tin rời rạc hoặc truyền thông tin liên tục nhưng đãđược rời rạc hóa tin tức thường phải được biến đổi thông qua một phép biến đổithành số (thường là số nhị phân) rồi mã hóa và được phát đi từ máy phát Ở máythu, tín hiệu phải thông qua các phép biến đổi ngược lại với các phép biến đổi trên:giải mã, liên tục hóa…

Sự mã hóa tín hiệu điều khiển nhằm tăng tính hữu hiệu và độ tin cậy của hệthống điều khiển từ xa, nghĩa là tăng tốc độ truyền và khả năng chống nhiễu

Trong điều khiển từ xa ta thường dùng mã nhị phân tương ứng với hệ gồm có

2 phần tử [0] và [1]

Trang 6

Do yêu cầu về độ chính xác cao trong các tín hiệu điều khiển được truyền đi

để chống lại nhiễu ta dùng loại mã tín hiệu và sữa sai

Mã phát tín hiệu và sữa sai thuộc loại mã đồng đều bao gồm các loại mã: mãphát hiện sai, mã sữa sai, mã phát hiện và sữa sai

Dạng sai nhầm của các mã được truyền đi tùy thuộc tính chất của kênh truyền,chúng có thể phân thành 2 loại:

- Sai độc lập: Trong quá trình truyền, do nhiều tác động, một hoặc nhiều kýhiệu trong các tổ hợp mã có thể bị sai nhầm, nhưng những sai nhầm đó không liênquan nhau

- Sai tương quan: Được gây ra bởi nhiều nhiễu tương quan, chúng hay xẩy

ra trong từng chùm, cụm ký hiệu kế cận nhau

Sự lựa chọn của cấu trúc mã chống nhiễu phải dựa trên tính chất phân bố xácsuất mắc sai nhầm trong kênh truyền

Hiện nay lý thiết mã hóa phát triển rất nhanh, nhiều loại mã phát hiện và sữasai được nghiên cứu như: mã Hamming, mã chu kỳ, mã nhiều cấp

1.1.3 Sơ đồ khối của một hệ thống điều khiển từ xa

Sau đây là sơ đồ khối cơ bản của một hệ thống điều khiển từ xa

Hình 1.2: Sơ đồ khối máy phát

Hình 1.3: Sơ đồ khối máy thu

Tín hiệu

điều khiển

Tín hiệusóng mang

Khuyếch

Trang 7

1.1.4 Các phương pháp điều chế tín hiệu trong hệ thống điều khiển từ xa

Trong kỹ thuật điều khiển từ xa, tín hiệu gốc không thể truyền đi xa được Do

đó, để thực hiện việc truyền tín hiệu điều khiển từ máy phát đến máy thu ta cần phảiđiều chế (mã hóa) tín hiệu

Có nhiều phương pháp điều chế tín hiệu Tuy nhiên điều chế tín hiệu dạngxung có nhiều ưu điểm hơn Vì ở đây chúng ta sử dụng linh kiện kỹ thuật số nênlinh kiện gọn nhẹ, công suất tiêu tán nhỏ và có tính chống nhiễu cao

Các phương pháp điều chế tín hiệu ở dạng xung như:

- Điều chế biên độ xung (PAM)

- Điều chế độ rộng xung (PWM)

- Điều chế vị trí xung (PPM)

- Điều chế mã xung (PCM)

Hình 1.4 : Các dạng xung

Trang 8

 Điều chế biên độ xung (PAM)

Sơ đồ khối

Hình 1.5: Hệ thống điều chế PAM

Điều chế biên độ xung là dạng điều chế đơn giản nhất trong các dạng điều chếxung Biên độ của mỗi xung được tạo ra tỉ lệ với biên độ tức thời của tín hiệu điềuchế

Xung lớn nhất biểu thị cho biên độ dương của tín hiệu mẫu lớn nhất

Giải thích sơ đồ khối

-Khối tín hiệu điều chế : Tạo ra tín hiệu điều chế đưa vào khối dao động đa hài-Dao động đa hài một trạng thái bền :Trộn xung với tín hiệu điều chế

-Bộ phát xung : Phát xung với tần số không đổi để thực hiện việc điều chế tínhiệu đã được điều chế có biên độ tăng giảm thay đổi theo tín hiệu điều chế

 Điều chế độ rộng xung (PWM)

Phương pháp điều chế này sẽ tạo ra các xung có biên độ không đổi, nhưng bềrộng của mỗi xung sẽ thay đổi tương ứng với biên độ tức thời của tín hiệu điều chế.Trong cách điều chế này, xung có độ rộng lớn nhất biểu thị phần biên độ dương lớnnhất của tín hiệu điều chế, xung có độ rộng hẹp nhất biểu thị phần biên độ âm nhấtcủa tín hiệu điều chế

Trong điều chế độ rộng xung, tín hiệu cần được lấy mẫu phải được chuyển đổithành dạng xung có độ rộng xung tỉ lệ với biên độ tín hiệu lấy mẫu Để thực hiệnđiều chế độ rộng xung, ta có thể thực hiện theo sơ đồ khối sau:

Bộ phát hàm RAMP

So sánh

Trang 9

Trong sơ đồ khối, tín hiệu điều chế được đưa đến khối so sánh điện áp cùngvới tín hiệu phát ra từ bộ phát hàm RAMP.

 Điều chế vị trí xung (PPM)

Với phương pháp điều chế vị trí xung thì các xung được điều chế có biên độ

và độ rộng xung không thay đổi theo biên độ của tín hiệu điều chế

Hình thức đơn giản của điều chế vị trí xung là quá trình điều chế độ rộngxung Điều chế vị trí xung có ưu điểm là sử dụng ít năng lượng hơn điều chế độrộng xung nhưng có nhược điểm là quá trình giải điều biến ở máy thu phức tạp hơncác dạng điều chế khác

Chỉ có thể biểu thị trên 16 biên độ khác nhau của biên độ tín hiệu (mã 4 bít) vìvậy nó không được chính xác Độ chính xác có thể được cải thiện bằng cách tăng sốbít Mỗi mã n bít có thể biểu thị được 2n mức riêng biệt của tín hiệu

Trong phương pháp điều chế mã xung, tần số được quyết định bởi tín hiệu caonhất trong quá trình xử lý Điều này cho thấy rằng nếu như mẫu thử được lấy ở mứclớn hơn hai lần tần số tín hiệu thì tần số tín hiệu mẫu được phục hồi

Tuy nhiên trong thực tế thường lấy tín hiệu ở mức độ nhỏ nhất khoảng 10 lần

so với tín hiệu lớn nhất Vì vậy tần số càng cao thì thời gian lấy mẫu càng nhỏ (mứclấy mẫu càng nhiều) dẫn đến linh kiện chuyển mạch có tốc độ xử lý cao Ngược lạinếu sử dụng tần số lấy mẫu thấp thời gian lấy mẫu càng rộng,nhưng độ chính xáckhông cao Thông thường người ta chỉ sử dụng khoảng 10 lần tín hiệu nhỏ nhất

Trang 10

Kết Luận :

Điểm thuận lợi của các phương pháp điều biến xung là mặc dù tín hiệu AM rấtyếu, chúng hầu như mất hẳn trong nhiễu ồn xung quanh Nếu phương pháp điều chếPPM, PWM, PCM là tín hiệu điều chế bằng cách tách ra khỏi tiếng ồn Với phươngpháp như vậy, điều chế mã xung PCM sẽ cho kết quả tốt nhất,vì nó chỉ cần quyếtđịnh xung nào hiện diện, xung nào không hiện diện

Các phương pháp điều chế xung như PWM, PPM, PAM phần nào cũng theokiểu tương tự Vì các dạng xung ra sau khi điều chế có sự thay đổi về biên độ, độrộng xung, vị trí xung theo tín hiệu lấy mẫu Đối với phương pháp biến đổi mã xungPCM thì dạng xung ra là dạng nhị phân chỉ có 2 mức [0] và [1]

Để mã hóa tín hiệu tương tự sang tín hiệu số, người ta chia trục thời gian ranhững khoảng bằng nhau và biên độ trục ra 2n khảng cho 1 bít Nếu số mức càngnhiều thì thời gian càng nhỏ, độ chính xác càng cao Tại mỗi thời điểm lấy mẫu biên

độ được đo, rồi lấy mức tương ứng với biên độ và chuyển đổi mã nhị phân Kết quả

ở ngỏ ra thu được một chuổi xung (dạng nhị phân) [1]

1.2 ĐIỀU KHIỂN TỪ XA DÙNG TIA HỒNG NGOẠI

1.2.1 Khái niệm về tia hồng ngoại

Hình 1.7: Dạng sóng hồng ngoại

Ánh sáng hồng ngoại (tia hồng ngoại) là ánh sáng không thể nhìn thấy đượcbằng mắt thường, có bước sóng khoảng 0,8µm đến 0,9µm tia hồng ngoại có vận tốctruyền bằng vận tốc ánh sáng Tuy nhiên như chúng ta biết mặc dù không nhìn thấytần số âm thanh nhưng chúng ta biết rằng nó tồn tại và có thể nhận biết được chúng

từ sự cảm ứng nhiệt trên da Khi bạn đưa tay đến gần ngọn lửa hoặc nhưng vậtnóng, bạn có thể cảm thấy nhiệt mặc dù bạn không nhìn thấy Bạn nhìn thấy ngọnlửa là vì nó phát ra nhiều loại bức xạ, mắt ta có thể nhìn thấy,đồng thời nó cũng phát

Trang 11

Tia hồng ngoại có thể truyền đi được nhiều kênh tín hiệu Nó ứng dụng rộngrãi trong công nghiệp Lượng thông tin có thể đạt được 3Mbit/s Trong kỹ thuậttruyền tin bằng sợi quang dẫn không cần các trạm khuyết đại giữa chừng, người ta

có thể truyền một lúc 15000 điện thoại hay 12 kênh truyền hình qua một sợi tơquang học có đường kính 0,13mm với khoảng cách 10 – 20km Lượng thông tinđược truyền đi với ánh sáng hồng ngoại lớn gấp nhiều lần so với sóng điện từ màngười ta vẫn dùng

Tia hồng ngoại dễ bị hấp thụ, khả năng xuyên thấu kém Trong điều khiển từ

xa chùm tia hồng ngoại phát đi hẹp, có hướng do đó khi thu phải đúng hướng

1.2.2 Nguồn phát hồng ngoại

Các nguồn sáng nhân tạo thường chứa nhiều ánh sáng hồng ngoại Sóng hồngngoại có đặc tính quang học giống như ánh sáng (sự hội tụ qua thấu kính, tiêucự…) Ánh sáng và sóng hồng ngoại khác nhau rất rõ trong sự xuyên suốt qua vậtchất Có những vật mắt ta thấy “phản chiếu sáng” nhưng đối với hồng ngoại thì nó

là những vật “phản chiếu tối” Có những vật ta thấy nó dưới một màu xám đụcnhưng với ánh sáng hồng ngoại nó trở nên trong suốt Điều này giải thích vì saoLED hồng ngoại cho hiệu suất cao hơn so với LED cho màu xanh lá cây hay màuđỏ… Vì rằng, vật liệu bán dẫn “trong suốt” đối với ánh sáng hồng ngoại, tia hồngngoại không bị yếu đi khi nó phải vượt qua các lớp bán dẫn để đi ra ngoài Đời sốngcủa LED hồng ngoại dài đến 100.000 giờ (hơn 11 năm), LED hồng ngoại khôngphát sáng cho lợi điểm trong các thiết bị kiểm soát vì không gây sự chú ý

1.2.3 Linh kiện thu sóng hồng ngoại

Người ta có thể dùng quang điện trở, phototransistor, photodiode để thu sónghồng ngoại gần Để thu sóng hồng ngoại trung bình và xa phát ra từ cơ thể conngười, vật nóng… Loại detector với vật liệu Lithiumtitanat hay tấm chất dẻoPolyviny-Lidendifuorid (PVDF) Cơ thể con người phát ra tia hồng ngoại với độ dàisóng từ 8ms-10ms

1.2.4 Sơ đồ khối hệ thống điều khiển từ xa dùng hồng ngoại

 Hệ thống phát

Trang 12

Hình 1.8: Sơ đồ khối hệ thống phát.

Giải thích sơ đồ khối máy phát: Máy phát có nhiệm vụ tạo ra lệnh điều khiển,

mã hóa và phát tín hiệu đến máy thu, lệnh truyền đi đã được điều chế

*Khối phát lệnh điều khiển: Khối này có nhiệm vụ tạo ra lệnh điều khiển từ

nút bấm (phím điều khiển) Khi một phím được ấn tức là một lệnh đã được tạo ra.Các nút ấn này có thể là một phím bấm, hay một ma trận phím bấm Lệnh điềukhiển được đưa đến bộ mã hóa dưới dạng các bit nhị phân tương ứng với từng phímđiều khiển

* Khối mã hóa: Để truyền các tín hiệu khác nhau đến máy thu mà chúng

không lẫn lộn nhau, ta phải tiến hành mã hóa các tín hiệu (lệnh điều khiển) Khối

mã hóa này có nhiệm vụ biến đổi các lệnh điều khiển thành các bit nhị phân, hiệntượng biến đổi này gọi là mã hóa Có nhiều phương pháp mã hóa khác nhau:

- Điều chế biên độ xung

* Khối dao động sóng mang: Khối này có nhiệm vụ tạo ra sóng mang tần số

ổn định, sóng mang này sẽ mang tín hiệu điều khiển khi truyền ra môi trường

* Khối điều chế: Khối này có nhiệm vụ kết hợp tín hiệu điều khiển đã mã hóa

sóng mang để đưa đến khối khuếch đại

Phát lệnh

Dao động tạo sóng mang

Trang 13

* Khối khuếch đại: Khuếch đại tín hiệu đủ lớn để LED phát hồng ngoại phát

tín hiệu ra môi trường

* Khối LED phát: Biến đổi tín hiệu điện thành tín hiệu hồng ngoại phát ra môi

trường

 Hệ thống thu

Hình 1.9: Sơ đồ khối hệ thống thu

Giải thích sơ đồ khối máy thu: Chức năng của khối máy thu là thu được tínhiệu điều khiển từ máy phát, loại bỏ sóng mang, giải mã tín hiệu điều khiển thànhcác lệnh riêng biệt, từ đó mỗi lệnh sẽ đưa đến khối chấp hành cụ thể

* LED thu: thu tín hiệu hồng ngoại do máy phát truyền tới và biến đổi thành

tín hiệu điều khiển

* Khối khuếch đại: Có nhiệm vụ khuyết đại tín hiệu điều khiển lớn lên từ LED

thu hồng ngoại để việc xử lý được dễ dàng

* Khối tách sóng mang: Khối này có chức năng triệt tiêu sóng mang, chỉ giữ

lại tín hiệu điều khiển như tín hiệu gửi đi từ máy phát

* Khối giải mã: Khối này có nhiệm vụ giải mã tín hiệu điều khiển thành các

lệnh điều khiển dưới dạng các bit nhị phân hay các dạng khác để đưa đến khối chấphành cụ thể Do đó nhiệm vụ của khối này là rất quan trọng

* Khối chốt: Khối này có nhiệm vụ giữ nguyên trạng thái tác động khi tín hiệu

điều khiển không còn, điều này có nghĩa là khi phát lệnh điều khiển ta chỉ tác độngvào phím bấm 1 lần, trạng thái mạch chỉ thay đổi khi tác động vào nút thực hiệnđiều khiển lệnh khác

Khuếch

KhuếchđạiMạch chấp

hành

Trang 14

* Khối khuếch đại: Khuếch đại tín hiệu điều khiển đủ lớn để tác động được

vào mạch chấp hành

* Khối chấp hành: Có thể là rơle hay một linh kiện nào đó, đây là khối cuối

cùng tác động trực tiếp vào thiết bị thực hiện nhiệm vụ điều khiển mong muốn.[2]

Trang 15

Chương 2

TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 2.1 GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN PIC

2.1.1 PIC là gì?

PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là

“máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điềukhiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho

vi điều khiển CP1600 Vi điều khiển này sau đó được nghiên cứu phát triển thêm và

từ đó hình thành nên dòng vi điều khiển PIC ngày nay

2.1.2 Tại sao dùng vi điều khiển PIC

Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola68HC, AVR, ARM, Ngoài họ 8051 được hướng dẫn một cách căn bản ở môitrường đại học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốnkiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:

Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam

Giá thành không quá đắt

Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập

Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điềukhiển mang tính truyền thống: họ vi điều khiển 8051

Số lượng người sử dụng họ vi điều khiển PIC Hiện nay tại Việt Nam cũngnhư trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi Điều này tạonhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượngtài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi,học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…

Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạpchương trình từ đơn giản đến phức tạp,…

Trang 16

Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này khôngngừng được phát triển.

2.1.3 Kiến trúc PIC

Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiếntrúc: Von Neuman và kiến trúc Havard

Hình 2.1: Kiến trúc Havard và kiến trúc Von-Neuman

Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard Điểm khácbiệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và

bộ nhớ chương trình Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớchương trình nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối mộtcách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu Tuy nhiên điều này chỉ có ýnghĩa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thờiđiểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình Nhưvậy có thể nói kiến trúc Von-Neuman không thích hợp với cấu trúc của một vi điềukhiển

Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thànhhai bộ nhớ riêng biệt Do đó trong cùng một thời điểm CPU có thể tương tác với cảhai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể

Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưutùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữliệu Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi dữ

CPUCPU

Trang 17

liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neuman, độ dài lệnhluôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte)

2.1.4 RISC và CISC

Như đã trình bày ở trên, kiến trúc Havard là khái niệm mới hơn so với kiếntrúc Von-Neuman Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi củamột vi điều khiển Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, buschương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ chươngtrình và bộ nhớ dữ liệu, giúp tăng tốc độ xử lí của vi điều khiển lên gấp đôi Đồngthời cấu trúc lệnh không còn phụ thuộc vào cấu trúc dữ liệu nữa mà có thể linh độngđiều chỉnh tùy theo khả năng và tốc độ của từng vi điều khiển Và để tiếp tục cảitiến tốc độ thực thi lệnh, tập lệnh của họ vi điều khiển PIC được thiết kế sao chochiều dài mã lệnh luôn cố định (ví dụ đối với họ 16Fxxxx chiều dài mã lệnh luôn là

14 bit) và cho phép thực thi lệnh trong một chu kì của xung clock (ngoại trừ một sốtrường hợp đặc biệt như lệnh nhảy, lệnh gọi chương trình con … cần hai chu kìxung đồng hồ) Điều này có nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Havard

sẽ ít lệnh hơn, ngắn hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một

số lượng bit nhất định

Vi điều khiển được tổ chức theo kiến trúc Havard còn được gọi là vi điềukhiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rútgọn Vi điều khiểnđược thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điềukhiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phứctạp vì mã lệnh của nó không phải là một số cố định mà luôn là bội số của 8 bit (1byte)

2.1.5 PIPELINING

Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC Một chu kì lệnh của

vi điều khiển sẽ bao gồm 4 xung clock

Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh đó, vàmột chu kì xung clock nữa để giải mã và thực thi lệnh Với cơ chế pipelining đượctrình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì lệnh Đối với

Trang 18

các lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC (ProgramCounter) cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉthanh ghi PC chỉ tới Sau khi đã xác định đúng vị trí lệnh trong thanh ghi PC, mỗilệnh chỉ cần một chu kì lệnh để thực thi xong.

2.1.6 Các dòng PIC và cách lựa chọn vi điều khiển PIC

Các kí hiệu của vi điều khiển PIC:

PIC12xxxx: độ dài lệnh 12 bit

PIC16xxxx: độ dài lệnh 14 bit

PIC18xxxx: độ dài lệnh 16 bit

C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)

F: PIC có bộ nhớ flash

LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp

LV: tương tự như LF, đây là kí hiệu cũ

Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêmchữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash).Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC

Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sảnxuất

2.1.7 Ngôn ngữ lập trình cho PIC

Ngôn ngữ lập trình cho PIC rất đa dạng Ngôn ngữ lập trình cấp thấp cóMPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lậptrình cấp cao

hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ lập trìnhđược phát triển dành riêng cho PIC như PICBasic, MikroBasic,…

2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC 16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài

Trang 19

14 bit.

Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối

đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng256x8 byte Số PORT I/O là 5 với 33 pin I/O

Hình 2.2: Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân

Các đặc tính ngoại vi bao gồm các khối chức năng sau:

- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit

Trang 20

- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếmdựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler

- Hai bộ Capture/so sánh/điều chế độ rông xung

- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C

- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ

- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển

RD, WR, CS ở bên ngoài

Các đặc tính Analog:

- 8 kênh chuyển đổi ADC 10 bit

- Hai bộ so sánh

- Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần

- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần

- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm

- Khả năng tự nạp chương trình với sự điều khiển của phần mềm

- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit SerialProgramming) thông qua 2 chân

- Watchdog Timer với bộ dao động trong

- Chức năng bảo mật mã chương trình

- Chế độ Sleep Có thể hoạt động với nhiều dạng Oscillator khác nhau

2.2.1 Sơ đồ khối vi điều khiển PIC16F877A

Trang 21

Hình 2.3: Sơ đồ khối vi điều khiển PIC16F877A

2.2.2 Tổ chức bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình(Program memory) và bộ nhớ dữ liệu (Data Memory)

 Bộ nhớ chương trình

Trang 22

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dunglượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page 0đến page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit) Để mã hóa đượcđịa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13bit (PC<12:0>)

Khi vi điều khiển được reset, bộ đếmtrình sẽ chỉ đến địa chỉ 0000h (Resetvector)

Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉđến địa chỉ 0004h (Interruptvector) Bộ nhớ chương trình không bao gồm bộ nhớ stack và được địa chỉ hóa bởi

Trang 23

byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register )nằm ở vùng địa chỉ thấp và các thanh ghi mục đích chung GPR ( General PurposeRegister ) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyênđược sử dụng ( ví dụ như thanh ghi STATUS ) sẽ được đặt ở tất cả các bank của bộnhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh củachương trình Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau :

Hình 2.5 : Sơ đồ bộ nhớ dữ liệu PIC16F877A

Trang 24

2.2.3 Các cổng xuất nhập của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng đểtương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quátrình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theocách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượngchân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợpsẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuấtnhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thểhiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chứcnăng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điềukhiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó

Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,PORTC, PORTD và PORTE Cấu trúc và chức năng của từng cổng xuất nhập sẽđược đề cập cụ thể trong phần sau

PORTA (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectionalpin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởithanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trongPORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghiTRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output,

ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tácnày hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứngTRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC làTRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE) Bên cạnh đóPORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clockcủa Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port) Các thanh ghi SFR liên quan đến PORTA bao gồm :

PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA

Trang 25

TRISA (địa chỉ 85h) : điều khiển xuất nhập

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện

PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISB.Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạpchương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quanđến ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéolên được điều khiển bởi chương trình.Các thanh ghi SFR liên quan đến PORTB baogồm:

PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB

TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0

PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng

là TRISC.Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộTimer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART

Các thanh ghi điều khiển liên quan đến PORTC:

PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 87h) : điều khiển xuất nhập

PORTE (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tươngứng là TRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn làcác chân điều khiển của chuẩn giao tiếp PSP

Các thanh ghi liên quan đến PORTE bao gồm:

PORTE : chứa giá trị các chân trong PORTE

Trang 26

TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếpPSP.

ADCON1 : thanh ghi điều khiển khối ADC

2.2.4 TIMER 0

Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A.Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúccủa Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xungclock Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE (INTCON<5>) làbit điều khiển của Timer0.TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 như sau:

Hình 2.6 : Sơ đồ khối của Timer0

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC(OPTION_REG<5>), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kì xungđồng hồ (tần số vào Timer0 bằng ¼tần số oscillator) Khi giá trị thanh ghi TMR0 từFFh trở về 00h, ngắt Timer0 sẽ xuất hiện.Thanh ghi TMR0 cho phép ghi và xóađược giúp ta ấn định thời điểm ngắt Timer0 xuất hiện một cách linh động

Trang 27

Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC(OPTION_REG<5>) Khi đó xung tác động lên bộ đếm được lấy từ chânRA4/TOCK1 Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vàobột đếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnhxuống nếu TOSE=1.

Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON<2>) sẽ được set Đâychính là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trướckhi bộ đếm

bắt đầu thực hiện lại quá trình đếm Ngắt Timer0 không thể “đánh thức” viđiều khiển từ chế độ sleep

Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (WatchdogTimer) Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽkhông có được hỗ trợ của prescaler và ngược lại Prescaler được điều khiển bởithanh ghi OPTION_REG Bit PSA (OPTION_REG<3>) xác định đối tượng tácđộng của prescaler Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỉ số chia tần

số của prescaler Xem lại thanh ghi OPTION_REG để xác định lại một cách chi tiết

về các bit điều khiển trên

Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động củaprescaler Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽxóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler Khi đốitượng tác động là WDT,lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽngưng tác vụ hỗ trợ cho WDT

Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:

TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE vàPEIE)

OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler

2.2.5 TIMER1

Trang 28

Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanhghi (TMR1H:TMR1L) Cờ ngắt của Timer1 là bit TMR1IF (PIR1<0>) Bit điềukhiển của

Timer1 sẽ là TMR1IE (PIE<0>)

Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động: chế độ định thời(timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần sốcủa oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiệncần đếm lấy từ bên ngoài hông qua chân RC0/T1OSO/T1CKI (cạnh tác động làcạnh lên) Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạtđộng là timer hay counter) được điều khiển bởi TMR1CS (T1CON<1>) Sau đây là

sơ đồ khối của Timer1:

Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bởimột trong hai khối CCP (Capture/Compare/PWM) Khi bit T1OSCEN(T1CON<3>) được set, Timer1 sẽ lấy xung clock từ hai chân RC1/T1OSI/CCP2 vàRC0/T1OSO/T1CKI làm xung đếm Timer1 sẽ bắt đầu đếm sau cạnh xuống đầutiên của xung ngõ vào Khi đó PORTC sẽ bỏ qua sự tác động của hai bitTRISC<1:0> và PORTC<2:1> được gán giá trị 0 Khi clear bit T1OSCEN Timer1

sẽ lấy xung đếm từ oscillator hoặc từ chân RC0/T1OSO/T1CKI

Hình 2.7 : Sơ đồ khối của Timer1

Trang 29

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler vàpostscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắtTimer2 tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF(PIR1<1>) Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chiatần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điềukhiển bởi các bit T2CKPS1:T2CKPS0(T2CON<1:0>))

Hình 2.8 : Sơ đồ khối Timer2

Timer2 còn được hỗ trợ bởi thanh ghi PR2 Giá trị đếm trong thanh ghi TMR2

sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h Kh Ireset thanh ghi PR2 được nhận giá trị mặc định FFh

Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ1:1 đến 1:16 Postscaler được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0 Ngõ racủa postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt

Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 cònđóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP

Các thanh ghi liên quan đến Timer2 bao gồm:

- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE

và PEIE)

- PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)

- PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE)

Trang 30

- TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2.

- T2CON (địa chỉ 12h): xác lập các thông số cho Timer2

- PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2

Ta có một vài nhận xét về Timer0, Timer1 và Timer2 như sau:

Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1

là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh) Timer0, Timer1 và Timer2 đều có haichế độ hoạt động là timer và counter Xung clock có tần số bằng ¼ tần số củaoscillator Xung tác động lên Timer0 được hỗ trợ bởi prescaler và có thể được thiếtlập ở nhiều chế độ khác nhau (tần số tác động, cạnh tác động) trong khi các thông

số của xung tác động lên Timer1 là cố định Timer2 được hỗ trợ bởi hai bộ chia tần

số prescaler và postcaler độc lập, tuy nhiên cạnh tác động vẫn được cố định là cạnhlên Timer1 có quan hệ với khối CCP, trong khi Timer2 được kết nối với khối SSP

2.2.7 ADC

ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạngtương tự và số PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0) Hiệuđiện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩnđược xác lập trên hai chân RA2 và RA3 Kết quả chuyển đổi từ tín tiệu tương tựsang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghiADRESH:ADRESL Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này cóthể được sử dụng như các thanh ghi thông thường khác Khi quá trình chuyển đổihoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit(ADCON0<2>) được xóa về 0 và cờ ngắt ADIF được set.Qui trình chuyển đổi từtương tự sang số bao gồm các bước sau:

1 Thiết lập các thông số cho bộ chuyển đổi ADC:

* Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanhghi ADCON1)

* Chọn kênh chuyển đổi AD (thanh ghi ADCON0)

* Chọn xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0)

Trang 31

* Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0).

2 Thiết lập các cờ ngắt cho bộ AD

* Clear bit ADIF

* Set bit ADIE

* Set bit PEIE

* Set bit GIE

3 Đợi cho tới khi quá trình lấy mẫu hoàn tất

4 Bắt đầu quá trình chuyển đổi (set bit )

5 Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:

Kiểm tra bit Nếu =0, quá trình chuyển đổi đã hoàn tất

Trang 32

Cần chú ý là có hai cách lưu kết quả chuyển đổi AD, việc lựa chọn cách lưuđược điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau:

Hình 2.10: Các cách lưu kết quả chuyển đổi AD

Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm: INTCON (địa chỉ0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE) PIR1 (địa chỉ 0Ch):chứa cờ ngắt AD (bit ADIF) PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE).ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quảchuyển đổi AD ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập cácthông số cho bộ chuyển đổi AD PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liênquan đến các ngõ vào analog ở PORTA

PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ vàoanalog ở PORTE

2.2.8 COMPARATOR

Bộ so sánh bao gồm hai bộ so so sánh tín hiệu analog và được đặt ở PORTA.Ngõ vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và RA5 Thanhghi điều khiển bộ so sánh là CMCON Các bit CM2:CM0 trong thanh ghi CMCONđóng vai trò chọn lựa các chế độ hoạt động cho bộ comparator Cơ chế hoạt độngcủa bộ Comparator như sau:

Tín hiệu analog ở chân VIN + sẽ được só sánh với điện áp chuẩn ở chân

VIN-và tín hiệu ở ngõ ra bộ so sánh sẽ thay đổi tương ứng như hình vẽ Khi điện áp ởchân VIN+ lớn hơnđiện áp ở chân VIN+ ngõ ra sẽ ở mức 1 và ngược lại

Dựa vào hình vẽ ta thấy đáp ứng tại ngõ ra không phải là tức thời so với thay

Ngày đăng: 17/08/2019, 16:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Nguyễn Mạnh Giang,Các vi điều khiển PIC, NXB Khoa học và Kỹ Thuật, 2009 Sách, tạp chí
Tiêu đề: Các vi điều khiển PIC
Nhà XB: NXB Khoa học và Kỹ Thuật
[2] Phạm Hùng Kim Khánh – Tài liệu lập trình hệ thống Khác
[6] Microchip technology Inc. - PIC16F877A datasheet Khác
[7] Hope microelectronic Co.ltd – HMTR Transparent Wireless datalink module Khác
[8] Trang web www.dientuvietnam.com www.picvietnam.com [9] các trang web và diễn đàn khác Khác

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