điều khiển - thiết bị tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc ·...

210
BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM điều khiển - thiết bị Tổng quan Các PIC16F887 là một trong những sản phẩm mới nhất của Microchip. Nó có tính năng tất cả các thành phần vi điều khiển hiện đại thường có, giá thấp, hàng loạt các ứng dụng, chất lượng cao và sẵn có dễ dàng, nó là một giải pháp lý tưởng trong các ứng dụng như: kiểm soát các quá trình khác nhau trong ngành công nghiệp, thiết bị điều khiển máy, đo lường các giá trị khác nhau vv Một số tính năng chính của nó là được liệt kê dưới đây. Kiến trúc RISC o Chỉ có 35 hướng dẫn để học o Tất cả các đơn chu kỳ hướng dẫn ngoại trừ ngành Tần số hoạt động 0-20 MHz Độ chính xác dao động nội bộ o Bộ phát tín hiệu chuẩn o Cho phép lựa chọn nhiều tần số 8MHz đến 31mKHz Nguồn cung cấp điện áp 2.0-5.5V o Tiêu thụ: 220uA (2.0V, 4MHz), 11uA (2,0 V, 32 KHz) 50nA (chế độ chờ) Tiết kiệm điện năng Sleep Mode Brown-out Reset (BOR) với các tùy chọn phần mềm điều khiển 35 đầu vào / đầu ra o Cao trở nội tại nguồn o Cho phép từng chân lập trình kéo lên điện trở o Ngắt-on-Thay đổi pin 8K ROM bộ nhớ trong công nghệ FLASH o Chip có thể được lập trình lại lên đến 100.000 lần In-Circuit Serial trình Lựa chọn o Chip có thể được lập trình ngay cả khi nhúng trong thiết bị mục tiêu 256 byte bộ nhớ EEPROM o Dữ liệu có thể được viết hơn 1.000.000 lần 368 byte bộ nhớ RAM A / D chuyển đổi: o 14-kênh o Độ phân giải 10-bit 3 bộ đinh thời Watch-dog hẹn giờ Tương tự so sánh với các mô-đun o Hai tương tự so sánh o Cố định điện áp tham chiếu (0.6V) o Lập trình trên chip điện áp tham chiếu Chỉ đạo kiểm soát đầu ra PWM Nâng cao module USART o Hỗ trợ RS-485, RS-232 và LIN2.0 o Auto-Detect Baud Giao tiếp đồng bộ Serial Port (MSSP) o hỗ trợ chế độ SPI và I2C [email protected] - 1 - Call 01266020790

Upload: nguyenbao

Post on 31-Mar-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM điều khiển - thiết bị Tổng quan

Các PIC16F887 là một trong những sản phẩm mới nhất của Microchip. Nó có tính năng tất cả các thành phần vi điều khiển

hiện đại thường có, giá thấp, hàng loạt các ứng dụng, chất lượng cao và sẵn có dễ dàng, nó là một giải pháp lý tưởng trong

các ứng dụng như: kiểm soát các quá trình khác nhau trong ngành công nghiệp, thiết bị điều khiển máy, đo lường các giá trị

khác nhau vv Một số tính năng chính của nó là được liệt kê dưới đây. Kiến trúc RISCo Chỉ có 35 hướng dẫn để họco Tất cả các đơn chu kỳ hướng dẫn ngoại trừ ngành

Tần số hoạt động 0-20 MHz Độ chính xác dao động nội bộo Bộ phát tín hiệu chuẩno Cho phép lựa chọn nhiều tần số 8MHz đến 31mKHz

Nguồn cung cấp điện áp 2.0-5.5Vo Tiêu thụ: 220uA (2.0V, 4MHz), 11uA (2,0 V, 32 KHz) 50nA (chế độ chờ)

Tiết kiệm điện năng Sleep Mode Brown-out Reset (BOR) với các tùy chọn phần mềm điều khiển 35 đầu vào / đầu rao Cao trở nội tại nguồn o Cho phép từng chân lập trình kéo lên điện trởo Ngắt-on-Thay đổi pin

8K ROM bộ nhớ trong công nghệ FLASHo Chip có thể được lập trình lại lên đến 100.000 lần

In-Circuit Serial trình Lựa chọno Chip có thể được lập trình ngay cả khi nhúng trong thiết bị mục tiêu

256 byte bộ nhớ EEPROMo Dữ liệu có thể được viết hơn 1.000.000 lần

368 byte bộ nhớ RAM A / D chuyển đổi:o 14-kênho Độ phân giải 10-bit

3 bộ đinh thời Watch-dog hẹn giờ Tương tự so sánh với các mô-đuno Hai tương tự so sánho Cố định điện áp tham chiếu (0.6V)o Lập trình trên chip điện áp tham chiếu

Chỉ đạo kiểm soát đầu ra PWM Nâng cao module USARTo Hỗ trợ RS-485, RS-232 và LIN2.0o Auto-Detect Baud

Giao tiếp đồng bộ Serial Port (MSSP)o hỗ trợ chế độ SPI và I2C

[email protected] - 1 - Call 01266020790

Page 2: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 1-1 PIC16F887 PDIP 40 vi điều khiển

Hình. 1-2 PIC16F887 QFN 44 vi điều khiển

[email protected] - 2 - Call 01266020790

Page 3: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. Sơ đồ 1-3 PIC16F887 BlockPin mô tả

Như đã thấy trong hình. 1-1 trên, các chân nhất là đa chức năng. Ví dụ, định danh RA3/AN3/Vref + / C1IN + cho pin thứ năm

xác định các chức năng sau: RA3 Port Một phần ba số đầu vào / đầu ra AN3 analog đầu vào thứ ba VREF + Tích cực điện áp tham chiếu C1IN + sánh C1positive đầu vào

Thủ thuật nhỏ này thường được sử dụng bởi vì nó làm cho các gói phần mềm vi điều khiển nhỏ gọn hơn mà không ảnh

hưởng đến chức năng của nó. Các chức năng này pin khác nhau có thể không được sử dụng đồng thời, nhưng có thể thay

đổi bất kỳ điểm nào trong quá trình hoạt động.

Các bảng sau đây, tham khảo các vi điều khiển 40 PDIP.

[email protected] - 3 - Call 01266020790

Page 4: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

[email protected] - 4 - Call 01266020790

Page 5: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Bảng 1-1 Phân Pin

Bảng 1-1 tiếp. Pin nhượng

[email protected] - 5 - Call 01266020790

Page 6: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 1-1 tiếp. Pin nhượngĐơn vị xử lý trung tâm (CPU)

Tôi sẽ không khoan bạn với những hoạt động của CPU ở giai đoạn này, tuy nhiên điều quan trọng là nhà nước là CPU đã

được sản xuất với một yếu tố quan trọng trong công nghệ RISC khi quyết định mà bộ vi xử lý sử dụng.

RISC Giảm Instruction Set Computer, mang đến cho các PIC16F887 hai lợi thế rất lớn: CPU này có thể nhận ra chỉ có 35 hướng dẫn đơn giản (Để chương trình một số vi điều khiển khác, nó là cần thiết để

biết hơn 200 hướng dẫn của trái tim). Thời gian thực hiện là như nhau cho tất cả các lệnh ngoại trừ hai và kéo dài 4 chu kỳ đồng hồ (tần số dao động được

ổn định bởi một tinh thể thạch anh). Các Bước và Chi nhánh hướng dẫn thực hiện thời gian là 2 chu kỳ đồng hồ. Nó

[email protected] - 6 - Call 01266020790

Page 7: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM có nghĩa là nếu tốc độ hoạt động của vi điều khiển là 20MHz, thực hiện thời gian của từng tion instruc sẽ được 200nS, tức chương trình sẽ được thực hiện ở tốc độ 5 triệu lệnh trong một giây!

Hình. 1-4 CPU MemoryBộ nhớ

vi điều khiển này có ba loại bộ nhớ ROM, RAM và EEPROM. Tất cả họ sẽ được thảo luận từ mỗi một cách riêng biệt có chức

năng cụ thể, tính năng và tổ chức.Bộ nhớ ROM

bộ nhớ ROM được sử dụng để lưu vĩnh viễn chương trình đang được thực thi. Đây là lý do tại sao nó thường được gọi là

"chương trình bộ nhớ". Các PIC16F887 có 8KB ROM (trong tổng số 8.192 địa điểm). Kể từ ROM này được thực hiện với công

nghệ FLASH, nội dung của nó có thể được thay đổi bằng cách cung cấp một điện áp lập trình đặc biệt (13V).

Dù sao, không cần phải giải thích cụ thể vì nó được tự động thực hiện bằng phương tiện của một chương trình đặc biệt trên

máy tính và một thiết bị điện tử đơn giản gọi là Lập trình viên.

[email protected] - 7 - Call 01266020790

Page 8: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. Khái niệm bộ nhớ ROM 1-5Bộ nhớ EEPROM

Tương tự như bộ nhớ chương trình, nội dung của EEPROM là vĩnh viễn lưu lại, thậm chí còn bị cúp điện tắt. Tuy nhiên, không

giống như ROM, các nội dung của EEPROM có thể được thay đổi trong hoạt động của vi điều khiển. Đó là lý do tại sao bộ

nhớ này (256 điểm) là một hoàn hảo cho tiết kiệm vĩnh viễn kết quả tạo ra và được sử dụng trong quá trình hoạt động.Bộ nhớ RAM

Đây là thứ ba và phần phức tạp nhất của vi điều khiển bộ nhớ. Trong trường hợp này, nó bao gồm hai phần: thanh ghi mục

đích chung và thanh ghi chức năng đặc biệt (SFR).

Mặc dù cả hai nhóm của sổ đăng ký sẽ bị xóa khi có điện sẽ tắt và ngay cả khi chúng được sản xuất trong cùng một cách và

hành động theo cách tương tự, các chức năng của họ không có nhiều điểm chung.

[email protected] - 8 - Call 01266020790

Page 9: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 1-6 ĐỊnh địa chỉ và Thanh ghi mục đích chung-Mục đích chung Thanh ghi

Tất cả -thanh ghi đa mục đích được sử dụng để lưu trữ dữ liệu tạm thời và kết quả tạo ra trong quá trình hoạt động. Ví dụ, nếu

chương trình thực hiện một tính (ví dụ, kể sản phẩm trên dây chuyền lắp ráp), cần phải có một đăng ký mà là viết tắt của

những gì chúng ta trong cuộc sống hàng ngày gọi là "tổng hợp". Kể từ khi vi điều khiển không phải là sáng tạo ở tất cả, nó là

cần thiết để xác định địa chỉ của một số mục đích chung đăng ký và gán cho nó một chức năng mới. Một chương trình đơn

giản để tăng giá trị của các đăng ký này bằng 1, sau khi mỗi sản phẩm đi qua cảm biến, nên được tạo ra.

Do đó, các vi điều khiển có thể thực hiện chương trình vì nó bây giờ biết được những gì và ở đâu tổng phải được tăng lên

được. Tương tự như ví dụ đơn giản, mỗi biến chương trình phải được preassigned một số mục đích chung đăng ký.SFR Đăng ký

Đặc biệt--thanh ghi chức năng cũng được các vị trí bộ nhớ RAM, nhưng không giống như -thanh ghi đa mục đích, mục đích

của họ là xác định trước trong quá trình sản xuất và không thể thay đổi. Kể từ khi bit của họ được kết nối vật lý với các mạch

[email protected] - 9 - Call 01266020790

Page 10: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM cụ thể trên chip (A / D chuyển đổi, nối tiếp truyền thông module, vv), bất kỳ thay đổi nội dung của họ trực tiếp ảnh hưởng đến

hoạt động của vi điều khiển hoặc một số các mạch của nó. Ví dụ, bằng cách thay đổi thanh ghi TRISA, chức năng của mỗi

cổng A pin có thể thay đổi theo cách nó hoạt động như đầu vào hay đầu ra. Một tính năng trong các vị trí bộ nhớ được rằng họ

có tên của họ (thanh ghi và bit của họ), mà đáng kể tạo điều kiện cho chương trình bằng văn bản. Từ cấp cao ngôn ngữ lập

trình có thể sử dụng danh sách của tất cả các đăng ký với địa chỉ chính xác của họ, đó là đủ để xác định tên đăng ký để đọc

hoặc thay đổi nội dung của nó.Bộ nhớ RAM các ngân hàng

Các bộ nhớ dữ liệu được phân chia thành bốn ngân hàng. Trước khi truy cập vào một số đăng ký trong chương trình bằng

văn bản (theo thứ tự để đọc hoặc thay đổi nội dung của nó), nó là cần thiết để lựa chọn ngân hàng đó có thể đăng ký. Hai bit

của đăng ký TÌNH TRẠNG được sử dụng để lựa chọn các ngân hàng, sẽ được thảo luận sau này. Để tạo điều kiện hoạt động,

SFR thường được sử dụng có địa chỉ giống nhau ở tất cả các ngân hàng cho phép họ được dễ dàng truy cập.

[email protected] - 10 - Call 01266020790

Page 11: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 1-2 Địa chỉ ngăn

[email protected] - 11 - Call 01266020790

Page 12: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 1-3 SFR Bank 0

[email protected] - 12 - Call 01266020790

Page 13: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 1-4 SFR Bank 1

[email protected] - 13 - Call 01266020790

Page 14: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 1-5 SFR Bank 2

Bảng 1-6 SFR Bank 3Cây rơm

Một phần của RAM được sử dụng cho ngăn xếp bao gồm tám-bit đăng ký 13. Trước khi vi điều khiển bắt đầu thực hiện một

(chương trình con CALL hướng dẫn) hoặc khi gián đoạn xảy ra, địa chỉ của lệnh tiếp theo đang được thực thi đầu tiên được

đẩy lên ngăn xếp, tức là vào một trong sổ đăng ký của mình. Bằng cách đó, khi hay gián đoạn thực hiện chương trình con, vi

điều khiển biết từ đâu để tiếp tục thực hiện chương trình thường xuyên. Địa chỉ này được xóa sau khi trở về chương trình

chính vì không có cần phải lưu lại lâu hơn nữa, và vị trí một trong các ngăn xếp được tự động có sẵn để sử dụng tiếp.

[email protected] - 14 - Call 01266020790

Page 15: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Điều quan trọng là phải hiểu rằng dữ liệu luôn luôn tròn đẩy lên ngăn xếp. Nó có nghĩa là sau khi chồng đã được đẩy tám lần,

đẩy thứ chín ghi đè các giá trị đã được lưu trữ với đẩy đầu tiên. Sự thúc đẩy thứ mười ghi đè đẩy thứ hai và như vậy. Ghi đè

dữ liệu theo cách này là không thể phục hồi. Ngoài ra, các lập trình viên không thể truy cập các đăng ký để viết hoặc đọc và

không có chút tình trạng để cho biết stack stack tràn hoặc tràn dưới điều kiện. Vì lý do đó, ta nên quan tâm đặc biệt của nó

trong thời gian viết chương trình.

NGĂN SẾP

Việc đầu tiên mà vi điều khiển không khi một yêu cầu gián đoạn đến là để thực hiện các hướng dẫn hiện hành và sau đó

ngừng chương trình thực hiện thường xuyên. Ngay sau đó, các chương trình hiện tại địa chỉ bộ nhớ sẽ tự động được đẩy lên

ngăn xếp và địa chỉ mặc định (được xác định trước bởi nhà sản xuất) được ghi vào chương trình truy cập. Đó là vị trí từ nơi

thực hiện chương trình tiếp tục được gọi là các vector ngắt. Đối với các vi điều khiển PIC16F887, địa chỉ này là 0004h. Như đã

thấy trong hình. 1-7 dưới đây, các vị trí có chứa vector ngắt được đi qua trong quá trình thực hiện chương trình thường xuyên.

Một phần của chương trình được kích hoạt khi một yêu cầu gián đoạn đến được gọi là thường bị gián đoạn. hướng dẫn đầu

tiên của nó là nằm ở vector ngắt. Chương trình con này bao lâu sẽ được và những gì nó sẽ như thế nào phụ thuộc vào các kỹ

năng của người lập trình cũng như nguồn tự ngắt. Một số vi điều khiển có thêm các vector ngắt (mỗi yêu cầu ngắt có vector

của nó), nhưng trong trường hợp này chỉ có một. Do đó, phần đầu tiên của thói quen ngắt bao gồm công nhận nguồn ngắt.

Cuối cùng, khi các nguồn ngắt được công nhận và thường xuyên bị gián đoạn được thực hiện, vi điều khiển đạt

đến RETFIE hướng dẫn, hiện ra địa chỉ từ stack và tiếp tục thực hiện chương trình từ nơi mà nó để lại.

Hình 1-7 hệ thống ngắtLàm thế nào để sử dụng SFR

Bạn đã mua bộ vi điều khiển và có một ý tưởng tốt như thế nào để sử dụng nó ... Có một danh sách dài các SFR với tất cả

các bit. Mỗi người trong số họ kiểm soát một số quá trình. Tất cả trong tất cả, nó giống như một bảng điều khiển lớn với rất

nhiều dụng cụ và thiết bị chuyển mạch. Bây giờ bạn đang quan tâm về việc bạn sẽ quản lý để tìm hiểu làm thế nào để sử

dụng tất cả? Bạn sẽ có lẽ không phải, nhưng đừng lo lắng, bạn không phải! vi điều khiển mạnh mẽ như vậy là tương tự như

một siêu thị: họ cung cấp rất nhiều điều với giá thấp và chỉ vào bạn để lựa chọn. Vì vậy, chọn trường mà bạn quan tâm và

nghiên cứu những gì bạn cần biết. Sau đó, khi bạn đã hiểu rõ hoạt động phần cứng, SFR nghiên cứu được kiểm soát của nó

[email protected] - 15 - Call 01266020790

Page 16: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM (có thường là một vài trong số họ). Để nhắc lại, trong chương trình bằng văn bản và trước khi thay đổi một số bit của các sổ

đăng ký, không quên chọn Bank thích hợp. Đây là lý do tại sao họ được liệt kê trong các bảng ở trên.

Chương 2: SFR CoreCác tính năng và chức năng

Công việc thanhghi chức năng đặc biệt có thể được phân thành hai loại: Core (CPU) đăng ký - Kiểm soát và giám sát hoạt động và các quá trình trong bộ xử lý trung tâm. Mặc dù chỉ có một

vài người trong số họ, các hoạt động của toàn bộ vi điều khiển phụ thuộc vào nội dung của họ. SFR ngoại vi kiểm soát các hoạt động của các thiết bị ngoại vi (module giao tiếp nối tiếp, A / D chuyển đổi, vv.)Mỗi sổ

đăng ký chủ yếu là chuyên ngành đối với một mạch và cho rằng lý do họ sẽ được mô tả cùng với mạch họ kiểm soát được.

Các lõi (CPU) đăng ký của các vi điều khiển PIC16F887 được mô tả trong chương này. Kể từ khi bit của họ kiểm soát một số

mạch khác nhau trong con chip, không thể để phân loại chúng thành một số nhóm đặc biệt. Những bit này được mô tả cùng

với các quy trình mà họ kiểm soát.THANG GHI TRÁNG THÁI

Hình. 2-1 THANH GHI TRẠNG THÁI

Việc thanh ghi TRẠNG THÁI chứa: tình trạng số học của các thanh ghi W, tình trạng RESET và chọn ngân hàng bit cho dữ

liệu bộ nhớ. Một nên cẩn thận khi viết một giá trị để thanh ghi này bởi vì nếu bạn làm điều đó không đúng, kết quả có thể khác

với mong đợi. Ví dụ, nếu bạn cố gắng để xóa tất cả các bit bằng cách sử dụng CLRF STATUS hướng dẫn, kết quả vào sổ

đăng ký sẽ được 000xx1xx thay vì dự kiến 00000000. lỗi này xảy ra vì một số bit của các thanh ghi này được thiết lập hoặc

xóa theo các phần cứng cũng như bởi các bit 3 và 4 có thể được đọc mà thôi. Đối với những lý do này, nếu có yêu cầu thay

đổi nội dung của nó (ví dụ, để thay đổi ngân hàng đang hoạt động), bạn nên sử dụng chỉ dẫn mà không ảnh hưởng đến bất kỳ

bit trạng thái (C, DC và Z). Hãy tham khảo "Hướng dẫn thiết lập Tóm tắt". IRP - Bit chọn thanh ghi Bank. Nó được sử dụng để gián tiếp giải quyết.o 1 - Các Bank 0 và 1 đang hoạt động (bộ nhớ vị trí 00h-FFh)o 0 - Bank 2 và 3 đang hoạt động (bộ nhớ vị trí 100h-1FFh)

RP1, RP0 - Bits chọn thanh ghi Bank. Chúng được sử dụng để trực tiếp giải quyết.

R P 1 R P 0 N G Â N H À N G H O Ạ T Đ Ộ N G

0 0 Bank00 1 Bank11 0 Bank21 1 Bank3

Bảng 2-1 TO - Thời gian-out bit.o 1 - Sau khi điện về hoặc sau khi thực hiện CLRWDT hướng dẫn đó thiết lập lại đồng hồ hẹn giờ hoặc hướng

dẫn con chó SLEEP mà bộ vi điều khiển vào chế độ tiêu thụ thấp.

[email protected] - 16 - Call 01266020790

Page 17: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM o 0 - Sau khi con chó trong thời gian hẹn giờ đồng hồ đã xảy ra.

PD - Công suất xuống bit.o 1 - Sau khi điện về hoặc sau khi thực hiện CLRWDT hướng dẫn mà xem, con chó reset bộ đếm thời gian.o 0 - Sau khi thực hiện SLEEP hướng dẫn mà bộ vi điều khiển vào chế độ tiêu thụ thấp.

Z - Zero bito 1 - Các kết quả của một phép toán số học hoặc logic là số không.o 0 - Các kết quả của một phép toán số học hoặc logic là khác nhau từ số không.

DC - chữ số thực hiện / mượn bit được thay đổi trong khi cộng và trừ nếu một "tràn" hay "mượn" của các kết quả xảy ra.o 1 - Một thực-hiện từ các bit thấp để lần thứ 4 kết quả đã xảy ra.o 0 - Không có thực-hiện từ bit thấp để lần thứ 4 kết quả đã xảy ra.

C - Thực / Mượn chút thay đổi trong cộng và trừ nếu một "tràn" hay "mượn" của các kết quả xảy ra, tức là nếu kết quả là lớn hơn 255 hoặc nhỏ hơn 0.o 1 - Một thực-hiện từ bit quan trọng nhất của kết quả đã xảy ra.o 0 - Không có thực-hiện từ bit quan trọng nhất của kết quả đã xảy ra.

OPTION_REG thanh ghi

Hình 2-2

THANH ghi OPTION_REG chứa bit điều khiển khác nhau để cấu hình: prescaler Timer0/WDT, TMR0 hẹn giờ, bên ngoài bị

gián đoạn và kéo-up trên PORTB.

RBPU - Port B Kéo lên Enable bit.o 1 - PortB pull-up bị vô hiệu hóa.o 0 - PortB pull-up được kích hoạt.

Hình 2-3

INTEDG - ngắt bit Edge chọn.o 1 - ngắt về tăng cạnh của pin RB0/INT.o 0 - Gián đoạn trên rơi xuống cạnh của RB0/INT pin.

Hình 2-4

[email protected] - 17 - Call 01266020790

Page 18: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

T0CS - TMR0 Clock Nguồn Chọn bit.o 1 - Chuyển đổi về pin TOCKI.o 0 - chu trình hướng dẫn nội bộ đồng hồ (Fosc / 4).

Hình 2-5

T0SE - Nguồn TMR0 bit Edge Chọn lựa chọn cạnh xung (tăng hoặc giảm) tính theo TMR0 hẹn giờ thông qua các pin RA4/T0CKI.o 1 - Tăng on-to-thấp chuyển tiếp cao TOCKI pin.o 0 - Tăng lên đến cao chuyển tiếp thấp TOCKI pin.

Hình 2-6

PSA - prescaler Phân bit gán prescaler (chỉ có một tồn tại) để hẹn giờ hoặc hẹn giờ cơ quan giám sát.o 1 - prescaler được gán cho WDT này.o 0 - prescaler được gán cho TMR0 này.

Hình 2-7

PS2, PS1, PS0 prescaler giá Chọn bit

tỷ lệ prescaler được chọn bằng cách kết hợp ba bit. Mô tả, như trong bảng dưới đây, prescaler tỷ lệ phụ thuộc vào việc

prescaler được gán (TMR0) hoặc xem-dog timer (WDT).

P S 2 P S 1 P S 0 T M R 0 W D T

0 0 0 01:02 01:010 0 1 01:04 01:020 1 0 01:08 01:040 1 1 01:16 01:081 0 1 1:64 01:321 1 0 1:128 1:64

[email protected] - 18 - Call 01266020790

Page 19: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 1 1 1 1:256 1:128

Bảng 2-2

Để đạt được tỷ lệ 01:01 prescaler khi TMR0 hẹn giờ đếm xung, prescaler nên được giao cho WDT này. Theo kết quả của điều

này, các TMR0 hẹn giờ không sử dụng prescaler, nhưng trực tiếp đếm xung tạo ra bởi các bộ dao động, đó là mục tiêu!Hệ thống ngắt Đăng ký

Khi một yêu cầu gián đoạn đến nó không có nghĩa là sẽ tự động ngắt xảy ra, bởi vì nó cũng phải được cho phép bởi người sử

dụng (từ trong chương trình).Do đó, có bit đặc biệt được sử dụng để kích hoạt hay vô hiệu hóa ngắt. Nó rất dễ dàng để nhận

ra những thứ này bằng IE có trong tên của họ (viết tắt của Interrupt Enable). Bên cạnh đó, ngắt từng được kết hợp với một

chút gọi là lá cờ mà chỉ ra rằng đã đến yêu cầu ngắt bất kể nó được kích hoạt hay không. Họ cũng dễ dàng nhận biết được hai

chữ cái cuối cùng có trong tên của họ-IF (Interrupt Flag).

Như đã thấy, mọi thứ đều dựa trên một ý tưởng đơn giản và hiệu quả. Khi một yêu cầu gián đoạn đến, các bit cờ sẽ được đặt

đầu tiên.

Hình. 2-8 Hệ thống ngắt Đăng ký

Nếu thích hợp IE bit không được thiết lập (0), sự kiện này sẽ hoàn toàn bỏ qua. Nếu không, gián đoạn xảy ra! Trong trường

hợp nhiều nguồn ngắt được kích hoạt, nó là cần thiết để phát hiện một trong những hoạt động trước khi thực hiện gián đoạn

bắt đầu thường xuyên. Nguồn phát hiện được thực hiện bằng cách kiểm tra bit cờ.

Điều quan trọng là phải hiểu rằng các bit cờ không tự động xóa, nhưng bằng phần mềm trong quá trình thực hiện thường

xuyên bị gián đoạn. Nếu chi tiết này bị bỏ quên, một gián đoạn sẽ xảy ra ngay lập tức sau khi trở về chương trình này, mặc dù

không có nhiều yêu cầu để thực hiện nó! Đơn giản chỉ cần đặt, cờ cũng như IE bit vẫn thiết lập.

Tất cả các nguồn ngắt điển hình của bộ vi điều khiển PIC16F887 được hiển thị trên trang kế tiếp. Lưu ý một vài điều: Giẻ bit - cho phép tất cả các ngắt và vô hiệu hóa tất cả các hé lộ ngắt đồng thời. PEIE bit - cho phép tất cả các ngắt hé lộ thiết bị ngoại vi và vô hiệu hóa tất cả các ngắt ngoại vi (Điều này không quan

tâm TMR0 Timer và ngắt nguồn cổng B).

Để kích hoạt tính gián đoạn gây ra bằng cách thay đổi trạng thái logic trên cổng B, nó là cần thiết để kích hoạt nó cho mỗi bit

riêng biệt. Trong trường hợp này, bit của IOCB đăng ký có chức năng để kiểm soát IE bit.

[email protected] - 19 - Call 01266020790

Page 20: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 2-9 ngắt SFRINTCON Đăng ký

Việc đăng ký INTCON chứa khác nhau cho phép và bit cờ cho đăng ký tràn TMR0, thay đổi PORTB và ngắt INT pin bên

ngoài.

Hình. 10/02 INTCON Đăng ký Giẻ - Global Interrupt Enable bit - kiểm soát tất cả các nguồn ngắt có thể cùng một lúc.o 1 - Cho phép tất cả các ngắt hé lộ.o 0 - Vô hiệu hóa tất cả các ngắt.

PEIE - Kích hoạt tính năng ngắt ngoại vi bit hành vi tương tự như Giẽ, nhưng điều khiển ngắt được kích hoạt bằng thiết bị ngoại vi. Nó có nghĩa là nó không ảnh hưởng gián đoạn kích hoạt bởi các TMR0 hẹn giờ hoặc bằng cách thay đổi trạng thái trên cổng B hoặc pin RB0/INT.o 1 - Cho phép tất cả các hé lộ ngắt ngoại vi.

[email protected] - 20 - Call 01266020790

Page 21: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM o 0 - Vô hiệu hóa tất cả các ngắt ngoại vi.

T0IE - Kích hoạt tính năng ngắt Overflow TMR0 bit điều khiển ngắt được kích hoạt bởi tràn TMR0.o 1 - Cho phép các TMR0 gián đoạn.o 0 - Vô hiệu hóa các TMR0 gián đoạn.

Inte - RB0/INT ngoài bit Kích hoạt tính năng ngắt điều khiển gián đoạn gây ra bằng cách thay đổi trạng thái logic về pin RB0/IN (bên ngoài bị gián đoạn).o 1 - Cho phép các INT ngắt ngoài.o 0 - Vô hiệu hóa các INT ngắt ngoài.

RBIE - Thay đổi ngắt RB Port Bật bit. Khi cấu hình như đầu vào, cổng B chân có thể gây ra gián đoạn bằng cách thay đổi trạng thái logic của họ (không có vấn đề cho dù đó là thấp highto chuyển tiếp hoặc ngược lại, thực tế là một cái gì đó thay đổi các vấn đề chỉ). bit này quyết định ngắt được để xảy ra hay không.o 1 - Cho phép các cổng B thay đổi gián đoạn.o 0 - Vô hiệu hóa các cổng B thay đổi gián đoạn.

T0IF - TMR0 ngắt Overflow Flag bit đăng ký các TMR0 đăng ký tràn bộ đếm thời gian, khi đếm bắt đầu từ số không.o 1 - đăng ký TMR0 tràn (bit phải được trừ trong phần mềm).o 0 - đăng ký TMR0 không tràn.

INTF - RB0/INT ngắt bên ngoài Cờ bit đăng ký thay đổi trạng thái logic trên chân RB0/INT.o 1 - Các bên ngoài ngắt INT xảy ra (phải được xóa trong phần mềm).o 0 - Các INT ngắt ngoài không xảy ra.

RBIF - RB Port Interrupt Flag bit thay đổi đăng ký thay đổi trạng thái logic của một số chân vào cổng B.o 1 - Có ít nhất một trong những mục đích chung B cổng I / O pins có nhà nước thay đổi. Khi đọc portB, RBIF

(cờ bit) phải được trừ vào phần mềm.o 0 - Không có mục đích chung B cổng I / O pins đã thay đổi trạng thái.

PIE1 Đăng ký

Việc đăng ký PIE1 chứa các ngắt bit ngoại vi cho phép.

Hình. 11/02 PIE1 đăng ký ADIE - A / D Converter Kích hoạt tính năng ngắt bit.o 1 - Cho phép ngắt ADC.o 0 - Vô hiệu hóa các ADC gián đoạn.

RCIE - Kích hoạt tính năng ngắt EUSART Nhận bit.o 1 - Cho phép các EUSART nhận được ngắt.o 0 - Vô hiệu hóa các EUSART nhận được ngắt.

TXIE - Kích hoạt tính năng ngắt Transmit EUSART bit.o 1 - Cho phép các EUSART truyền gián đoạn.o 0 - Vô hiệu hóa các EUSART truyền gián đoạn.

SSPIE - Thạc sĩ đồng bộ Serial Port (MSSP) Kích hoạt tính năng ngắt bit - cho phép một yêu cầu ngắt để được tạo ra sau mỗi lần chuyển dữ liệu thông qua module giao tiếp nối tiếp đồng bộ (SPI hay I2C chế độ).o 1 - Cho phép các MSSP gián đoạn.o 0 - Vô hiệu hóa các MSSP gián đoạn.

CCP1IE - Kích hoạt tính năng ngắt CCP1 bit cho phép một yêu cầu ngắt được tạo ra trong module CCP1 sử dụng để xử lý tín hiệu PWM.o 1 - Cho phép ngắt CCP1.o 0 - Vô hiệu hóa các ngắt CCP1.

TMR2IE - TMR2 để PR2 Phù hợp ngắt Bật bito 1 - Cho phép các TMR2 để PR2 gián đoạn trận đấu.o 0 - Vô hiệu hóa các TMR2 để PR2 gián đoạn trận đấu.

TMR1IE - Kích hoạt tính năng ngắt Overflow TMR1 bit cho phép một yêu cầu ngắt được tạo ra sau khi TMR1 đăng ký hẹn giờ mỗi tràn, tức là khi đếm bắt đầu từ số không.

[email protected] - 21 - Call 01266020790

Page 22: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM o 1 - Cho phép tràn TMR1 gián đoạn.o 0 - Vô hiệu hóa tràn TMR1 gián đoạn.

PIE2 Đăng ký

Việc đăng ký PIE2 cũng chứa các ngắt bit khác nhau cho phép.

Hình. 12/02 PIE2 Đăng ký OSFIE - Oscillator Không ngắt Bật bit.o 1 - Cho phép dao động không bị gián đoạn.o 0 - Vô hiệu hóa những dao động không bị gián đoạn.

C2IE - Kích hoạt tính năng ngắt sánh C2 bit.o 1 - Cho phép so sánh C2 gián đoạn.o 0 - Vô hiệu hóa sánh C2 gián đoạn.

C1IE - Kích hoạt tính năng ngắt sánh C1 bit.o 1 - Cho phép so sánh C1 gián đoạn.o 0 - Vô hiệu hóa sánh C1 gián đoạn.

EEIE - EEPROM Viết Hoạt động ngắt Bật bit.o 1 - Cho phép ghi EEPROM hoạt động gián đoạn.o 0 - Vô hiệu hóa EEPROM viết hoạt động gián đoạn.

BCLIE - Bus Collision Kích hoạt tính năng ngắt bit.o 1 - Cho phép xe buýt va chạm gián đoạn.o 0 - Vô hiệu hóa xe buýt va chạm gián đoạn.

ULPWUIE - Ultra Low-Power Wake-up Kích hoạt tính năng ngắt bit.o 1 - Cho phép Ultra Low-Power Wake-up gián đoạn.o 0 - Vô hiệu hóa Ultra Low-Power Wake-up gián đoạn.

CCP2IE - Kích hoạt tính năng ngắt CCP2 bit.o 1 - Cho phép CCP2 gián đoạn.o 0 - Vô hiệu hóa CCP2 gián đoạn.

PIR1 Đăng ký

Việc đăng ký PIR1 chứa các bit cờ ngắt.

Hình. 13/02 PIR1 Đăng ký ADIF - A / D Converter Interrupt Flag bit.o 1 - A / D chuyển đổi hoàn tất (bit phải được trừ trong phần mềm).o 0 - A / D chuyển đổi không hoàn thành hoặc không bắt đầu.

RCIF - EUSART Nhận bit Cờ ngắt.o 1 - Các EUSART bộ đệm nhận đã đầy. Bit là xóa bằng cách đọc các ký RCREG.o 0 - Các EUSART bộ đệm nhận không đầy đủ.

[email protected] - 22 - Call 01266020790

Page 23: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM TXIF - EUSART Phát bit Cờ ngắt.o 1 - Các EUSART bộ đệm truyền rỗng. Bit là xóa bằng văn bản cho người đăng ký TXREG.o 0 - Các EUSART truyền đệm đầy.

SSPIF - Thạc sĩ đồng bộ Serial Port (MSSP) Interrupt Flag bit.o 1 - Các MSSP gián đoạn điều kiện trong quá trình dữ liệu truyền / nhận đã xảy ra. Các điều kiện này khác

nhau tùy thuộc vào chế độ hoạt động MSSP (SPI hay I2C) bit này được trừ vào phần mềm trước khi trở về từ các dịch vụ thường xuyên bị gián đoạn.

o 0 - Không có tình trạng gián đoạn MSSP đã xảy ra. CCP1IF - CCP1 Interrupt Flag bit.o 1 - CCP1 đã xảy ra tình trạng gián đoạn (CCP1 là đơn vị để chụp hình, so sánh và tạo ra các tín hiệu

PWM). Tùy thuộc vào chế độ hoạt động, nắm bắt hoặc so sánh kết hợp đã xảy ra. Trong cả hai trường hợp, các bit được trừ vào phần mềm. bit này không được sử dụng trong chế độ PWM.

o 0 - Không có tình trạng gián đoạn CCP1 đã xảy ra. TMR2IF - Timer2 để PR2 Interrupt Flag bito 1 - TMR2 (8-bit đăng ký) để phù hợp PR2 đã xảy ra. bit này phải được xóa trong phần mềm trước khi trở về

từ các dịch vụ thường xuyên bị gián đoạn.o 0 - Không có TMR2 để phù hợp PR2 đã xảy ra.

TMR1IF - timer1 ngắt Overflow Flag bito 1 - Việc đăng ký TMR1 đã tràn. bit này phải được trừ vào phần mềm.o 0 - Việc đăng ký TMR1 đã không tràn.

PIR2 Đăng ký

Việc đăng ký PIR2 chứa các bit cờ ngắt.

Hình. 14/02 PIR2 đăng ký OSFIF - Oscillator Không bit Cờ ngắt.o 1 - Hệ thống dao động không thành công và đầu vào đồng hồ đã thay đổi để INTOSC bộ dao động nội bộ. bit

này phải được trừ vào phần mềm.o 0 - Hệ thống dao động hoạt động bình thường.

C2IF - sánh C2 ngắt Flag bit.o 1 - C2 sánh sản lượng đã thay đổi (bit C2OUT). bit này phải được trừ vào phần mềm.o 0 - C2 sánh sản lượng không thay đổi.

C1IF - sánh C1 ngắt Flag bit.o 1 - C1 sánh sản lượng đã thay đổi (bit C1OUT). bit này phải được trừ vào phần mềm.o 0 - sánh C1 đầu ra đã không thay đổi.

EEIF - EE Viết bit hoạt động Cờ ngắt.o 1 - EEPROM viết hoàn thành. bit này phải được trừ vào phần mềm.o 0 - EEPROM viết không hoàn thành hoặc không bắt đầu.

BCLIF - Bus Collision Interrupt Flag bit.o 1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình cho chế độ Master I2C. bit này phải được trừ

vào phần mềm.o 0 - Không có vụ va chạm xe buýt đã xảy ra.

ULPWUIF - Ultra Low-điện Wake-up Interrupt Flag bit.o 1 - Wake-up điều kiện đã xảy ra. bit này phải được trừ vào phần mềm.o 0 - Không có điều kiện Wake-up đã xảy ra.

CCP2IF - CCP2 Interrupt Flag bit.o 1 - CCP2 gián đoạn điều kiện đã xảy ra (đơn vị để chụp hình, so sánh và tạo ra các tín hiệu PWM). Tùy thuộc

vào chế độ hoạt động, nắm bắt hoặc so sánh kết hợp đã xảy ra. Trong cả hai trường hợp, các bit phải được trừ vào phần mềm. bit này không được sử dụng trong chế độ PWM.

[email protected] - 23 - Call 01266020790

Page 24: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM o 0 - Không có tình trạng gián đoạn CCP2 đã xảy ra.

PCON đăng ký

Việc đăng ký PCON chỉ chứa hai bit cờ được sử dụng để phân biệt giữa một: điện-on thiết lập lại, màu nâu-ra thiết lập lại,

Watchdog Timer và đặt lại thiết lập lại bên ngoài (thông qua MCLR pin).

Hình. 15/02 PCON đăng ký ULPWUE - Ultra Low-Power Kích hoạt tính năng Wake-up bito 1 - Ultra Low-Power Wake-up bật.o 0 - Ultra Low-Power Wake-up bị vô hiệu hoá.

SBOREN - Phần mềm BOR Bật bito 1 - Brown-out Reset được kích hoạt.o 0 - Brown-out Reset tàn tật.

POR - Power-on bit trạng thái Thiết lập lạio 1 - Không có điện, về thiết lập lại đã xảy ra.o 0 - Power-on đặt lại đã xảy ra. bit này phải được thiết lập trong phần mềm sau khi một Power-on Reset xảy ra.

BOR - Brown-out Reset Tình trạng bito 1 - Không-ra thiết lập lại Brown đã xảy ra.o 0 --ra thiết lập lại Brown đã xảy ra. bit này phải được thiết lập trong phần mềm sau khi một trong-Brown Đặt lại

xảy ra.PCL và PCLATH Đăng ký

Kích thước của bộ nhớ chương trình của PIC16F887 là 8K. Vì vậy, nó có 8.192 địa điểm cho chương trình lưu trữ. Vì lý do

này, truy cập chương trình phải được 13-bit rộng (2 ^ 13 = 8192). Để nội dung của vị trí một số có thể được thay đổi trong

phần mềm trong khi hoạt động, địa chỉ của nó phải được truy cập thông qua một số định canh định cư. Vì tất cả các SFR là 8-

bit rộng, đăng ký này là "giả tạo" được tạo ra bằng cách chia 13 của nó bit thành hai đăng ký độc lập: PCLATH và PCL.

Nếu việc thực hiện chương trình không ảnh hưởng đến chương trình truy cập, giá trị đăng ký này là tự động và không ngừng

tăng lên 1, +1, +1, +1 ... Theo cách đó, chương trình được thực hiện chỉ vì nó là hướng dẫn, bằng văn bản của hướng dẫn,

theo sau là một địa chỉ liên tục tăng.

Hình. 16/02 PCL và PCLATH Đăng ký

Nếu truy cập chương trình được thay đổi trong phần mềm, sau đó có nhiều điều cần được lưu ý để tránh các vấn đề: Tám bit thấp hơn (các byte thấp) đến từ các đăng ký PCL mà có thể đọc và ghi, trong khi năm bit trên đến từ các đăng

ký chỉ được ghi PCLATH. Việc đăng ký PCLATH là xóa trên bất kỳ thiết lập lại. Trong ngôn ngữ lắp ráp, giá trị của các truy cập chương trình được đánh dấu với PCL, nhưng rõ ràng đề cập đến 8 bit

chỉ thấp hơn. Người ta phải cẩn thận khi sử dụng "ADDWF PCL"hướng dẫn. Đây là một chỉ dẫn nhảy mà xác định vị trí mục tiêu bằng cách thêm vào một số con số về địa chỉ hiện hành. Nó thường được dùng khi nhảy vào một bảng-up nhìn hay bảng chi nhánh chương trình để đọc chúng. Một vấn đề phát sinh nếu địa chỉ hiện tại là như vậy mà Ngoài nguyên nhân thay đổi trên một số bit thuộc byte cao của PCLATH đăng ký. Bạn có thấy những gì đang xảy ra?Thực hiện bất kỳ chỉ dẫn khi đăng ký PCL đồng thời làm cho ram Prog bit truy cập được thay thế bằng các nội dung

[email protected] - 24 - Call 01266020790

Page 25: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM của PCLATH đăng ký. Tuy nhiên, việc đăng ký PCL có quyền truy cập chỉ có 8 bit thấp của kết quả giảng dạy và nhảy những điều sau đây sẽ hoàn toàn không chính xác. Vấn đề được giải quyết bằng cách thiết lập các hướng dẫn đó tại địa chỉ kết thúc bằng xx00h. Điều này cho phép chương trình để nhảy lên tới 255 địa điểm. Nếu nhảy còn được thực hiện bằng cách hướng dẫn này, người đăng ký PCLATH phải được tăng thêm 1 cho mỗi đăng ký tràn PCL.

Trên thực hiện cuộc gọi chương trình con hoặc nhảy (hướng dẫn CALL và GOTO), vi điều khiển có thể cung cấp chỉ 11-bit địa chỉ. Vì lý do này, tương tự như bộ nhớ RAM được chia trong "ngân hàng", ROM được chia thành bốn "trang" trong kích thước của mỗi 2K. hướng dẫn này được thực hiện trong các trang này mà không có bất kỳ vấn đề. Đơn giản, vì bộ xử lý được cung cấp với 11-bit địa chỉ từ các chương trình, nó có thể địa chỉ bất kỳ vị trí trong 2KB. Hình 2-17 dưới đây mô tả tình hình này như là một bước nhảy tới địa chỉ PP1 chương trình con.Tuy nhiên, nếu một chương trình con hoặc địa chỉ nhảy không phải là trong cùng một trang với vị trí từ đâu nhảy là, hai "mất tích" - bit cao hơn nên được cung cấp bởi các văn bản cho PCLATH đăng ký. Nó được minh họa trong hình 2-17 bên dưới như là một bước nhảy tới địa chỉ PP2 chương trình con.

Hình. 17/02 PCLATH Đăng kýTrong cả hai trường hợp, khi chương trình con người đạt đến hướng dẫn RETURN, RETLW hoặc RETFIE (để trở về chương

trình chính), các vi điều khiển chỉ đơn giản là sẽ tiếp tục thực hiện chương trình từ nơi nó rời đi vì địa chỉ trả về là đẩy và lưu

vào ngăn xếp mà, như đã đề cập , gồm 13 bit ghi-.Gián tiếp giải quyết

Ngoài việc trực tiếp giải quyết đó là hợp lý và rõ ràng của chính nó (đó là đủ để xác định địa chỉ của một số đăng ký để đọc nội

dung của nó), vi điều khiển này có thể thực hiện gián tiếp giải quyết bằng phương tiện của Sổ đăng ký INDF và FSR. Nó đôi

khi đơn giản hoá việc viết chương trình đáng kể. Toàn bộ quy trình được kích hoạt bởi vì đăng ký INDF là không đúng một

trong (cơ thể không tồn tại), nhưng chỉ xác định đăng ký có địa chỉ nằm trong sổ đăng ký FSR.Bởi vì điều này, viết hoặc đọc

[email protected] - 25 - Call 01266020790

Page 26: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM trong sổ đăng ký INDF thực sự có nghĩa viết hoặc đọc trong sổ đăng ký có địa chỉ nằm trong sổ đăng ký FSR. Nói cách khác,

ghi "địa chỉ được quy định trong sổ đăng ký FSR, và nội dung của họ được lưu trong sổ đăng ký INDF. Sự khác biệt giữa trực

tiếp và gián tiếp giải quyết được minh họa trong hình 2-18 bên dưới:

Như đã thấy, vấn đề với các "bit mất tích giải quyết" được giải quyết bằng cách "mượn" từ đăng ký khác. Thời gian này, nó là

bit thứ bảy gọi là IRP trong sổ đăng ký TÌNH TRẠNG.

Hình. 18/02 trực tiếp và gián tiếp giải quyếtChương 3: I / O PortsCác tính năng và chức năng

Một trong những tính năng quan trọng nhất của vi điều khiển là một số chân cắm đầu vào đầu ra / được sử dụng để kết nối với

thiết bị ngoại vi. Trong trường hợp này, có tổng số mục đích chung của ba mươi lăm I / O pins có sẵn, mà là khá đủ cho các

ứng dụng nhất.

Trong hoạt động chân để "có thể kết hợp nội bộ 8-bit, tổ chức, tất cả chúng đều, tương tự như đăng ký, được nhóm lại thành

năm cảng như vậy gọi là ký hiệu bằng A, B, C, D và E. Tất cả đều có chung một số tính năng: Vì lý do thực tế, nhiều I / O pins có hai hoặc ba chức năng. Nếu pin được sử dụng như bất kỳ chức năng khác, nó có

thể không được sử dụng như là một mục đích chung đầu vào / đầu ra pin; và Mỗi cảng có của nó "vệ tinh", tức là Tris tương ứng đăng ký: TRISA, TRISB, TRISC vv mà quyết định thực hiện,

nhưng không phải là nội dung của các bit cổng.

[email protected] - 26 - Call 01266020790

Page 27: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Bằng cách thanh toán bù trừ một số bit của các đăng ký Tris (bit = 0), các chân cổng tương ứng được cấu hình như đầu

ra. Tương tự như vậy, bằng cách thiết lập một số bit của Tris đăng ký (bit = 1), các chân cổng tương ứng được cấu hình như

đầu vào. Quy luật này là dễ nhớ 0 = đầu ra, 1 = Input.

Hình. 3-1 I / O PortsPort A và TRISA Đăng ký

Port A là một 8-bit, hai hướng cổng. Bit của Ansel TRISA và kiểm soát các chân Porta. Tất cả các cổng A làm chân kỹ thuật số

đầu vào / đầu ra. Năm người trong số họ cũng có thể được đầu vào tương tự (ký hiệu là An):

[email protected] - 27 - Call 01266020790

Page 28: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 3-2 Port A TRISA và Đăng ký

Tương tự như các bit của TRISA đăng ký trong đó xác định đó của các chân sẽ được cấu hình như là đầu vào và đó là đầu ra,

các bit thích hợp của Ansel đăng ký xác định xem liệu các chân sẽ hoạt động như đầu vào tương tự hoặc kỹ thuật số đầu

vào / đầu ra. RA0 = AN0 (được xác định bởi ANS0 bit của Ansel đăng ký); RA1 = AN1 (xác định bằng bit ANS1 của Ansel đăng ký); RA2 = AN2 (được xác định bởi ANS2 bit của Ansel đăng ký); RA3 = AN3 (được xác định bởi ANS3 bit của Ansel đăng ký); và RA5 = AN4 (được xác định bởi ANS4 bit của Ansel đăng ký).

Mỗi bit của cổng này có một chức năng bổ sung liên quan đến một số được xây dựng trong các đơn vị ngoại vi. Những chức

năng bổ sung sẽ được mô tả trong chương sau. Chương này chỉ bao gồm các chức năng bổ sung các chân RA0 kể từ khi nó

có liên quan đến cảng A chỉ.Đơn vị ULPWU

Các vi điều khiển thường được sử dụng trong các thiết bị đó có hoạt động định kỳ và, hoàn toàn độc lập bằng cách sử dụng

một nguồn cung cấp năng lượng pin. Trong trường hợp này, điện năng tiêu thụ tối thiểu là một trong những ưu tiên. ví dụ điển

hình của các ứng dụng như là: nhiệt kế, cảm biến để phát hiện cháy và tương tự. Được biết, việc giảm tần số đồng hồ làm

giảm điện năng tiêu thụ, vì vậy một trong những giải pháp thuận tiện nhất cho vấn đề này là để làm chậm đồng hồ xuống (sử

dụng 32KHz thạch anh tinh thể, thay vì 20MHz).

Thiết lập các vi điều khiển chế độ ngủ là một bước trong cùng một hướng. Tuy nhiên, ngay cả khi cả hai biện pháp được áp

dụng, vấn đề phát sinh khác. Làm thế nào để đánh thức các vi điều khiển và đặt nó vào chế độ bình thường. Nó rõ ràng là cần

thiết để có một tín hiệu bên ngoài để thay đổi trạng thái logic về một số chân. Như vậy, vấn đề vẫn còn tồn tại. Tín hiệu này

phải được tạo ra bởi các điện tử bổ sung, gây tiêu thụ điện năng cao hơn của toàn bộ thiết bị.

[email protected] - 28 - Call 01266020790

Page 29: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Các giải pháp lý tưởng sẽ là bộ vi điều khiển thức dậy định kỳ của chính nó, mà không phải là không thể cả. Mạch cho phép

được hiển thị trong hình bên phải.

Hình. 03/03 đơn vị ULPWU

Nguyên tắc hoạt động rất đơn giản:

pin A được cấu hình như sản lượng và logic một (1) được đưa đến nó. Điều đó làm cho tụ điện được tính phí. Ngay sau đó,

cùng một pin được cấu hình như là đầu vào một. Việc thay đổi trạng thái logic cho phép một ngắt và vi điều khiển được thiết

lập để ngủ thức. Sau đó, không có gì khác để được thực hiện ngoại trừ chờ cho tụ điện rò rỉ, xả thải của các dòng chảy ra

ngoài qua các chân đầu vào. Khi nó xảy ra, làm gián đoạn một diễn ra và vi điều khiển tiếp tục với việc thực hiện chương trình

trong chế độ bình thường. Toàn bộ trình tự được lặp lại ...

Về mặt lý thuyết, đây là một giải pháp hoàn hảo. Vấn đề là tất cả các chân có thể gây ra một sự gián đoạn theo cách này là kỹ

thuật số và có tương đối hiện rò rỉ lớn khi điện áp của họ là không gần gũi với giới hạn giá trị VDD (1) hoặc VSS (0). Trong

trường hợp này, các tụ điện được thải ra trong một thời gian ngắn kể từ khi số tiền hiện tại để vài trăm microamperes. Đây là

lý do tại sao các mạch ULPWU thể đăng ký giảm chậm với mức tiêu thụ điện áp cực thấp sức mạnh được thiết kế. Đầu ra của

nó tạo ra một ngắt, trong khi đầu vào của nó được kết nối với một trong các chân vi điều khiển. Đây là chân RA0. Đề cập đến

hình. 3-4 (R = 200 Ohm, C = 1nF), thời gian xả khoảng 30mS, trong khi tổng số tiêu thụ của vi điều khiển là 1000 lần thấp hơn

(vài trăm nanoamperes).

Hình. 3-4 Sleep ModePort B và TRISB Đăng ký

Port B là một 8-bit, hai hướng cổng. Bit của TRISB đăng ký xác định các chức năng của các chân của nó.

[email protected] - 29 - Call 01266020790

Page 30: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hình. 3-5 Port B và TRISB đăng ký

Tương tự như Port A, một logic (1) vào sổ đăng ký TRISB cấu hình các chân cổng thích hợp như là đầu vào và ngược lại. Sáu

chân trên cổng này có thể hoạt động như các đầu vào analog (AN). Các bit của ANSELH đăng ký xác định xem những chân

hoạt động như đầu vào tương tự hoặc kỹ thuật số đầu vào / đầu ra: RB0 = AN12 (được xác định bởi ANS12 bit của ANSELH đăng ký); RB1 = AN10 (được xác định bởi ANS10 bit của ANSELH đăng ký); RB2 = AN8 (được xác định bởi ANS8 bit của ANSELH đăng ký); RB3 = AN9 (được xác định bởi ANS9 bit của ANSELH đăng ký); RB4 = AN11 (xác định bằng bit ANS11 của ANSELH đăng ký); và RB5 = AN13 (được xác định bởi ANS13 bit của ANSELH đăng ký).

Mỗi Port B pin có một chức năng bổ sung liên quan đến một số được xây dựng trong các đơn vị ngoại vi, mà sẽ được giải

thích trong chương sau. Tất cả các chân cổng đã xây dựng trong lên kéo- điện trở, làm cho chúng lý tưởng cho các kết nối push-nút, chuyển

mạch và optocouplers. Để kết nối các điện trở đến các cổng vi điều khiển, các bit thích hợp của WPUB đăng ký nên được đặt .*

Hình. 3-6 WPUB đăng ký

Có một mức độ cao của kháng (vài chục ohms kg), các "ảo" điện trở không ảnh hưởng đến các chân cấu hình như kết quả

đầu ra, mà còn là một hữu ích bổ sung cho đầu vào. Như vậy, họ được kết nối với đầu vào mạch logic CMOS. Nếu không, họ

sẽ hành động như thể họ đang nổi vì kháng đầu vào cao của họ.

[email protected] - 30 - Call 01266020790

Page 31: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 3-7 Pull-up điện trở

* Ngoài các bit của WPUB đăng ký, có một chút ảnh hưởng đến điện trở kéo lên cài đặt. Nó là RBPU chút OPTION_REG

này. Nó là một chút mục đích chung vì nó ảnh hưởng đến cài đặt của tất cả các điện trở Port. Nếu kích hoạt, mỗi Port B bit cấu hình như một đầu vào có thể gây ra một ngắt bởi changeing nhà nước logic của

nó.Để cho phép các chân để gây gián đoạn, các bit thích hợp của IOCB đăng ký phải được thiết lập.

Hình. 3-8 IOCB đăng ký

Bởi vì các tính năng này, các chân cổng B thường được sử dụng để kiểm tra push-nút trên bàn phím, vì họ unerringly đăng ký

bất kỳ nút bấm. Vì vậy, không có cần phải "quét" các yếu tố đầu vào tất cả các thời gian.

[email protected] - 31 - Call 01266020790

Page 32: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. Ví dụ 3-9 Bàn phím

Khi X, Y và Z chân được cấu hình như đầu ra thiết lập một logic (1), nó chỉ là cần thiết để chờ đợi một yêu cầu ngắt mà đến

khi nào nhấn nút. Bằng cách kết hợp số không và các đơn vị trên những kết quả đầu ra nó được kiểm tra có nút push-được

nhấn.Pin RB0/INT

Các pin RB0/INT là một "sự thật" gián đoạn nguồn bên ngoài. Nó có thể được cấu hình để phản ứng với tín hiệu cạnh nâng

cao (zero-to-một quá trình chuyển đổi) hoặc tín hiệu rơi xuống cạnh (một-đối-không chuyển tiếp). Các bit INTEDG của

OPTION_REG đăng ký lựa chọn tín hiệu.RB6 và RB7 Pins

Bạn có thể nhận thấy rằng các vi điều khiển PIC16F887 không có bất kỳ chân đặc biệt cho các lập trình (viết chương trình cho

ROM). Các chân cổng có sẵn như là mục đích chung I / O trong chân hoạt động bình thường được sử dụng cho mục đích này

(đồng hồ Port B chân (RB6) và chuyển dữ liệu (RB7) trong quá trình tải chương trình). Ngoài ra, nó là cần thiết để áp dụng

một năng lượng cung cấp điện áp VDD (5V) và VSS (0V), cũng như điện áp cho FLASH VPP lập trình bộ nhớ (12-14V). Trong

thời gian lập trình, điện áp VPP được áp dụng cho các pin MCLR. Mọi chi tiết liên quan đến quá trình này, cũng như có một

trong các điện áp được áp dụng đầu tiên, là bên cạnh điểm này, các lập trình điện tử phụ trách đó. Vấn đề là chương trình có

thể được nạp vào vi điều khiển ngay cả khi nó được hàn vào các thiết bị mục tiêu. Thông thường, chương trình nạp cũng có

thể được thay đổi trong cùng một cách. Chức năng này được gọi là ICSP (In-Circuit Serial Programming). Nó là cần thiết để

kế hoạch trước khi sử dụng nó.

[email protected] - 32 - Call 01266020790

Page 33: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Nó không phải là phức tạp ở tất cả! Nó chỉ là cần thiết để cài đặt một kết nối 4-pin vào thiết bị mục tiêu để các điện áp lập trình

cần thiết có thể được áp dụng cho vi điều khiển. Để có các điện áp không ảnh hưởng tới thiết bị điện tử khác, thiết kế một số

loại vi phạm vào các mạch kết nối này (sử dụng điện trở hoặc jumper).

Hình. 3-10 Kết nối ICSP

Các điện áp được áp dụng cho các chân cắm trong đó vi điều khiển sẽ được đặt.

Hình. 3-11 Lập trình On-Board ConnectionsPort C và Đăng ký TRISC

Port C là một 8-bit, hai hướng cổng. Bit của Cục Đăng kiểm TRISC xác định chức năng của các chân của nó. Tương tự như

các cảng khác, một logic (1) trong Sổ đăng ký TRISC cấu hình các chân cổng thích hợp như là đầu vào một.

Hình. 12/03 Port C và Đăng ký TRISC

Tất cả các chức năng bổ sung của các bit của cảng này sẽ được giải thích sau.Port D và TRISD Đăng ký

Port D là một 8-bit, hai hướng cổng. Bit của TRISD đăng ký xác định các chức năng của các chân của nó. Một một logic (1)

vào sổ đăng ký TRISD cấu hình các chân cổng thích hợp như là đầu và[email protected] - 33 - Call 01266020790

Page 34: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 13/03 Port D và TRISD Đăng kýPort E và TRISE Đăng ký

Port E là một 4-bit, hai hướng cổng. Việc đăng ký của TRISE bit xác định chức năng của các chân của nó. Tương tự như các

cảng khác, một logic (1) vào sổ đăng ký TRISE cấu hình các chân cổng thích hợp như là đầu vào. ngoại lệ là RE3 mà chỉ là

đầu vào và Tris bit của nó là luôn luôn đọc là "1".

Hình. 14/03 Port E và TRISE Đăng ký

Tương tự như cổng A và B, ba chân có thể được cấu hình như đầu vào tương tự trong trường hợp này. Các ANSELH bit

đăng ký xác định xem một pin sẽ hoạt động như đầu vào tương tự (AN) hoặc kỹ thuật số đầu vào / đầu ra: RE0 = AN5 (được xác định bởi ANS5 bit của ANSELregister); RE1 = AN6 (được xác định bởi ANS6 bit của ANSELregister); và RE2 = AN7 (xác định bằng bit ANS7 của ANSELregister).

Ansel và Đăng ký ANSELH

Các Ansel và ANSELH đăng ký được sử dụng để cấu hình các chế độ đầu vào của một chân I / O gửi tín hiệu tương tự hoặc

kỹ thuật số.

[email protected] - 34 - Call 01266020790

Page 35: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 15/03 Ansel và Đăng ký ANSELH

Ta được:

Để cấu hình một pin như là một đầu vào tương tự, các bit thích hợp của Ansel hoặc ANSELH đăng ký phải được thiết lập

(1). Để cấu hình kỹ thuật số pin như là đầu vào / đầu ra, các bit thích hợp phải được xóa (0).

Tình trạng của các bit Ansel không có ảnh hưởng đến chức năng đầu ra kỹ thuật số. Kết quả của nỗ lực nào để đọc cổng một

số pin được cấu hình như đầu vào tương tự sẽ là 0.

Hình. 16/03 Ansel và cấu hình ANSELHTrong ngắn hạn:

[email protected] - 35 - Call 01266020790

Page 36: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Bạn sẽ có lẽ không bao giờ viết một chương trình mà sử dụng đầy đủ tất cả các cảng một cách hiệu quả để biện minh cho

việc học tất cả để có biết về các cảng. Tuy nhiên, họ có thể là các module đơn giản trong vi điều khiển. Đây là cách chúng

được sử dụng: Khi thiết kế một thiết bị, chọn một cổng thông qua đó các vi điều khiển sẽ giao tiếp với môi trường ngoại vi. Nếu bạn

dự định chỉ sử dụng kỹ thuật số đầu vào / đầu ra, chọn bất kỳ cổng bạn muốn. Nếu bạn có ý định sử dụng một số các đầu vào tương tự, chọn các cổng thích hợp hỗ trợ như các chân cấu hình (AN0-AN13);

Mỗi chân cổng có thể được cấu hình như một trong hai đầu vào hay đầu ra. Bit của TRISA, TRISB, TRISC, TRISD và TRISE đăng ký xác định các cổng thích hợp chân-Porta, PORTB, PORTC, PORTD và Porte sẽ hành động;

Nếu bạn sử dụng một số các đầu vào tương tự, thiết lập các bit thích hợp của Ansel và ANSELH đăng ký vào đầu chương trình;

Nếu bạn sử dụng thiết bị chuyển mạch và push-nút như là nguồn tín hiệu vào, kết nối chúng vào chân Port B bởi vì chúng có điện trở kéo lên. Việc sử dụng các điện trở được kích hoạt bởi các bit RBPU của OPTION_REG đăng ký, trong khi việc cài đặt của điện trở cá nhân được kích hoạt bởi các bit của WPUB đăng ký; và

Nó thường là cần thiết để phản ứng ngay sau khi các chân đầu vào thay đổi trạng thái logic của họ. Làm thế nào bao giờ hết, nó không phải là cần thiết để viết một chương trình để thay đổi trạng thái logic chân. Nó là đơn giản hơn nhiều để kết nối đầu vào như vậy để các chân PORTB và cho phép các ngắt về mọi thay đổi điện áp. Bit của IOCOB INTCON được đăng ký và chịu trách nhiệm về điều đó.

Chương 4: Timers

Các tính giờ của các vi điều khiển PIC16F887 có thể được mô tả ngắn gọn chỉ trong một câu. Có ba giờ hoàn toàn độc lập /

quầy đánh dấu là TMR0, TMR1 và TMR2. Nhưng nó không đơn giản như vậy.Timer TMR0

Các TMR0 giờ có một phạm vi rộng các ứng dụng trong thực tế. Rất ít các chương trình không sử dụng nó một cách nào

đó. Nó rất tiện lợi và dễ sử dụng để viết các chương trình, chương trình con để tạo ra các xung thời gian tùy ý, đo thời gian

hoặc đếm xung bên ngoài (sự kiện) với gần như không có giới hạn.

Các module TMR0 giờ là một bộ đếm thời gian 8-bit / truy cập với các tính năng sau đây: 8-bit timer / counter; 8-bit prescaler (chung với Watchdog timer); Lập trình nội bộ hay bên ngoài đồng hồ nguồn; Gián đoạn về tràn, và Lập trình bên ngoài cạnh đồng hồ chọn lựa.

Hình 4-1 dưới đây đại diện cho TMR0 giờ đồ với tất cả các bit trong đó xác định hoạt động. Những bit này được lưu giữ trong

Sổ đăng ký OPTION_REG.

[email protected] - 36 - Call 01266020790

Page 37: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 4-1 Timer TMR0OPTION_REG Đăng ký

Hình. 4-2 Đăng ký OPTION_REG RBPU - PORTB Pull-up cho phép bito 1 - PORTB điện trở kéo lên là người khuyết tật; vào 0 - PORTB pins có thể được kết nối với điện trở kéo lên.

INTEDG - ngắt Edge Chọn bito 1 - ngắt trên cạnh của pin tăng INT (0-1); vào 0 - Gián đoạn trên rơi xuống cạnh của pin INT (1-0).

T0CS - TMR0 Clock Chọn bito 1 - xung được đưa đến TMR0 hẹn giờ / truy nhập thông qua các RA4 pin; vào 0 - đồng hồ vòng nội bộ (Fosc / 4).

T0SE - Nguồn TMR0 bit Edge Chọno 1 - Tăng về chuyển tiếp cao đến thấp trên TMR0 pin; vào 0 - Tăng về quá trình chuyển đổi từ thấp đến cao trên pin TMR0.

[email protected] - 37 - Call 01266020790

Page 38: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM PSA - prescaler Phân bito 1 - prescaler được giao cho các bộ đếm thời gian TMR0 / truy cập, vào 0 - prescaler được gán cho WDT này.

PS2, PS1, PS0 - prescaler giá Chọn bito prescaler suất được điều chỉnh bằng cách kết hợp các bit này

Như đã thấy trong bảng 4-1, cùng một kết hợp của tốc độ bit cho prescaler khác nhau chotimer / counter và hẹn giờ đồng hồ-chó tương ứng.

P S 2 P S 1 P S 0 T M R 0 W D T

0 0 0 01:02 01:010 0 1 01:04 01:020 1 0 01:08 01:040 1 1 01:16 01:081 0 0 01:32 01:161 0 1 1:64 01:321 1 0 1:128 1:641 1 1 1:256 1:128

Bảng 4-1 prescaler giá

Chức năng của các bit PSA được thể hiện trong hai con số dưới đây:

Hình. 4-3 Các chức năng của các bit PSA 0

[email protected] - 38 - Call 01266020790

Page 39: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 4-4 Các chức năng của các bit PSA 1

Như đã thấy, các nhà logic của bit PSA xác định xem prescaler là để được giao cho các bộ đếm thời gian / truy cập hoặc xem-

chó hẹn giờ.

Ngoài ra nó cũng đáng nói: Khi prescaler được gán cho Timer / counter, bất cứ ghi vào sổ đăng ký TMR0 sẽ xóa prescaler; Khi prescaler được gán để xem-chó hẹn giờ, một chỉ dẫn CLRWDT sẽ rõ ràng cả prescaler và WDT; Viết cho TMR0 sổ đăng ký sử dụng như hẹn giờ, sẽ không gây ra xung đếm để bắt đầu ngay lập tức, nhưng với hai trì

hoãn chu kỳ chỉ thị. Theo đó, nó là cần thiết để điều chỉnh giá trị bằng văn bản cho TMR0 đăng ký; Khi vi điều khiển được thiết lập trong giấc ngủ chế độ, các bộ dao động bị tắt. Tràn không thể xảy ra vì không có xung

đếm. Đây là lý do tại sao tràn TMR0 gián đoạn có thể không đánh thức xử lý từ chế độ ngủ; Khi sử dụng như một đồng hồ bên ngoài truy cập mà không prescaler, xung chiều dài tối thiểu hoặc tạm dừng giữa hai

xung phải là 2 Tosc + 20 ns. Tosc là tín hiệu dao động thời kỳ; Khi được sử dụng như là một truy cập đồng hồ bên ngoài với prescaler, xung chiều dài tối thiểu hoặc tạm dừng giữa

hai xung là 10nS; Việc đăng ký prescaler 8-bit là không có sẵn cho người sử dụng, có nghĩa là nó không thể được đọc trực tiếp hoặc

bằng văn bản; Khi thay đổi giao prescaler từ TMR0 đến giờ xem, chó, trình tự hướng dẫn sau đây phải được thực thi để tránh lập lại: Tương tự như vậy, khi thay đổi việc phân prescaler từ WDT để TMR0, các trình tự hướng dẫn sau đây phải được

thực hiện:

Để sử dụng TMR0 đúng cách, nó là cần thiết:

Để chọn chế độ: chế độ hẹn giờ là lựa chọn bởi các bit T0CS của OPTION_REG đăng ký, (T0CS: 0 = hẹn giờ, 1 = truy cập); Khi sử dụng, prescaler nên được giao cho các bộ đếm thời gian / truy cập bằng cách xóa bit PSA của OPTION_REG

đăng ký. Tỷ lệ prescaler được thiết lập bằng cách sử dụng các bit PS2-PS0 của cùng một đăng ký; và Khi sử dụng ngắt, các bit Giẽ và TMR0IE của INTCON đăng ký phải được thiết lập.

Để đo thời gian: Thiết lập lại các TMR0 đăng ký hoặc viết một số giá trị nổi tiếng với nó; Thời gian đã qua (trong micro giây khi sử dụng thạch anh 4MHz) được đo bằng cách đọc các TMR0 đăng ký; và Các bit cờ TMR0IF của INTCON đăng ký được tự động thiết lập mỗi lần đăng ký tràn TMR0. Nếu kích hoạt, làm gián

đoạn xảy ra.

[email protected] - 39 - Call 01266020790

Page 40: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để đếm xung:

Các phân cực của xung sẽ được tính là lựa chọn trên chân RA4 được lựa chọn bởi các bit Tose của đăng ký OPTION (T0SE: 0 = dương tính, 1 = xung âm); và

Số lượng các xung có thể được đọc trong sổ đăng ký TMR0. Các prescaler và ngắt được sử dụng theo cách tương tự như trong chế độ hẹn giờ.

Timer TMR1

Timer TMR1 module là một bộ đếm thời gian 16-bit / truy cập, có nghĩa là nó bao gồm hai đăng ký (TMR1L và TMR1H). Nó có

thể đếm lên 65,535 xung trong một chu trình duy nhất, tức là trước khi bắt đầu kể từ số không.

Hình. 4-5 Timer TMR1

Tương tự như TMR0 hẹn giờ, các sổ đăng ký có thể được đọc hoặc ghi vào bất cứ lúc nào. Trong trường hợp tràn xảy ra, một

ngắt được tạo ra.

Các module bộ đếm thời gian TMR1 có thể hoạt động ở một trong hai chế độ cơ bản-là một giờ hoặc một truy cập. Tuy nhiên,

không giống như các TMR0 hẹn giờ, mỗi một module có chức năng bổ sung.

Các bộ phận của các đăng ký T1CON đang kiểm soát hoạt động của bộ đếm thời gian TMR1.

Hình. 4-6 Timer TMR1 Tổng quanTimer TMR1 prescaler

Timer TMR1 có prescaler hoàn toàn riêng biệt cho phép 1, 2, 4 hoặc 8 bộ phận của đầu vào đồng hồ. prescaler là không trực

tiếp có thể đọc hoặc ghi. Tuy nhiên, việc truy cập prescaler được tự động xóa khi viết thư cho TMR1L TMR1H hoặc đăng ký.

[email protected] - 40 - Call 01266020790

Page 41: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Timer TMR1 Oscillator

RC0/T1OSO và RC1/T1OSI chân được sử dụng để đăng ký các xung đến từ các thiết bị điện tử ngoại vi, nhưng họ cũng có

một chức năng bổ sung. Như đã thấy trong hình 4-7, chúng được đồng thời cấu hình như cả hai đầu vào (pin RC1) và đầu ra

(pin RC0) của bộ dao động thạch anh thêm LP (công suất thấp).

Mạch này bổ sung được thiết kế chủ yếu cho các hoạt động ở tần số thấp (có thể lên tới 200 KHz), chính xác hơn, để sử dụng

các tinh thể thạch anh 32.768 KHz. tinh thể này được sử dụng trong đồng hồ thạch anh vì nó rất dễ dàng để có được xung

một giây dài bằng cách phân chia tần số này.

Kể từ bộ dao động này không phụ thuộc vào clocking nội bộ, nó có thể hoạt động ngay cả trong giấc ngủ chế độ. Nó được

kích hoạt bằng cách thiết lập các bit kiểm soát T1OSCEN của T1CON đăng ký. Người sử dụng phải cung cấp một sự chậm

trễ thời gian phần mềm (một vài phần nghìn giây) để bảo đảm dao động khởi động.

Bảng dưới đây cho thấy các giá trị được đề nghị của tụ điện để phù hợp với các bộ dao động thạch anh. Những giá trị này

không phải là chính xác. Tuy nhiên, các nguyên tắc chung là: càng cao của tụ điện công suất cao ổn định, trong đó, đồng thời,

kéo dài thời gian cần thiết cho sự ổn định dao động.

O S C I L L A T O R T Ầ N S Ố C 1 C 2

LP32 kHz 33 pF 33 pF

100 kHz 15 pF 15 pF200 kHz 15 pF 15 pF

Hình. 4-7 Timer TMR1 OscillatorTimer TMR1 Gate

Hẹn giờ 1 cổng nguồn là phần mềm cấu hình được các pin T1G hoặc đầu ra của C2 so sánh. Cổng này cho phép thời gian

hẹn giờ để trực tiếp các sự kiện bên ngoài bằng cách sử dụng luận lý nhà nước về pin T1G hoặc các sự kiện tương tự bằng

cách sử dụng các so sánh sản lượng C2. Hãy tham khảo số 4-7 ở trên. Để thời gian một thời gian các tín hiệu đó là đủ để cho

phép cửa khẩu như vậy và xung đếm có đi qua nó.TMR1 trong chế độ hẹn giờ

Để chọn chế độ này, nó là cần thiết để xóa bit TMR1CS. Sau đó, đăng ký 16-bit sẽ được tăng lên trên tất cả các xung đến từ

các bộ dao động nội bộ. Nếu các tinh thể thạch anh 4MHz đang sử dụng, nó sẽ được tăng lên mỗi micro.

Trong chế độ này, các bit T1SYNC không ảnh hưởng đến giờ vì nó đếm xung đồng hồ nội bộ. Kể từ khi toàn bộ thiết bị điện tử

sử dụng các xung, không có nhu cầu đồng bộ hóa.

[email protected] - 41 - Call 01266020790

Page 42: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 4-8 trong chế độ hẹn giờ TMR1

bộ dao động đồng hồ của bộ vi điều khiển không chạy trong chế độ ngủ nên tràn bộ đếm thời gian đăng ký có thể không gây

ra bất kỳ gián đoạn.Timer TMR1 Oscillator

Tiêu thụ điện năng của bộ vi điều khiển được giảm xuống mức thấp nhất trong giấc ngủ chế độ. Vấn đề là để ngăn chặn các

bộ dao động.Dù sao, nó rất dễ dàng để đặt hẹn giờ trong chế độ này bằng cách viết một hướng dẫn SLEEP cho chương

trình. Một vấn đề xảy ra khi nó là cần thiết để đánh thức vi điều khiển bởi vì chỉ có một ngắt có thể làm điều đó. Kể từ khi vi

điều khiển "ngủ", một ngắt phải được kích hoạt bởi điện tử bên ngoài. Tất cả đều có thể nhận được cực kỳ phức tạp nếu cần

thiết các "thức dậy" xảy ra tại các khoảng thời gian thường xuyên ...

Hình. 4-9 Timer TMR1 Oscillator

[email protected] - 42 - Call 01266020790

Page 43: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để giải quyết vấn đề này, một hoàn toàn độc lập Low Power thạch anh dao động, có thể hoạt động ở chế độ ngủ, được xây

dựng vào vi điều khiển PIC16F887. Đơn giản, những gì trước đó đã được một mạch điện riêng biệt, hiện nay được xây dựng

vào vi điều khiển và giao cho các bộ đếm thời gian TMR1. bộ dao động được kích hoạt bằng cách thiết lập bit T1OSCEN của

T1CON đăng ký. Sau đó, các bit TMR1CS của cùng một đăng ký sau đó được sử dụng để xác định rằng giờ TMR1 sử dụng

chuỗi xung từ bộ dao động đó. Các tín hiệu từ bộ dao động thạch anh được đồng bộ với đồng hồ vi điều khiển bằng cách xóa bit T1SYNC. Trong

trường hợp đó, các bộ đếm thời gian không thể hoạt động trong giấc ngủ chế độ. Bạn tự hỏi tại sao? Bởi vì các mạch để đồng bộ hóa sử dụng các đồng hồ của bộ vi điều khiển và!;

Việc đăng ký tràn TMR1 gián đoạn có thể được kích hoạt. ngắt như vậy sẽ xảy ra trong giấc ngủ thức là tốt.TMR1 trong chế độ truy cập

Timer TMR1 bắt đầu hoạt động như một truy cập bằng cách thiết lập bit TMR1CS. Nó có nghĩa là các bộ đếm thời gian TMR1

được tăng lên trên góc lên của đồng hồ đầu vào T1CKI bên ngoài. Nếu kiểm soát bit T1SYNC của đăng ký T1CON được xóa

bỏ, đầu vào đồng hồ bên ngoài sẽ được đồng bộ trên đường đến các đăng ký TMR1. Nói cách khác, bộ hẹn giờ TMR1 được

đồng bộ đồng hồ hệ thống vi điều khiển và được gọi là truy cập đồng bộ.

Khi các vi điều khiển, điều hành theo cách này, được đặt trong giấc ngủ chế độ, các TMR1H và đăng ký hẹn giờ TMR1L

không tăng lên ngay cả khi xung đồng hồ xuất hiện trên các chân đầu vào. Đơn giản, vì các hệ thống vi điều khiển đồng hồ

không chạy trong chế độ này, không có đầu vào đồng hồ để sử dụng cho đồng bộ hóa. Tuy nhiên, prescaler sẽ tiếp tục chạy

nếu có xung đồng hồ trên các chân kể từ khi nó chỉ là một bộ chia tần số đơn giản.

Hình. Chế độ truy cập 11/04

Đây truy cập đăng ký một một logic (1) vào chân đầu vào. Điều quan trọng là phải hiểu rằng ít nhất một cạnh thuộc phải đăng

ký trước khi tăng đầu tiên trên tăng cạnh. Hãy tham khảo hình bên trái. Các mũi tên biểu thị trong hình 4-11 gia truy cập.

[email protected] - 43 - Call 01266020790

Page 44: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM T1CON Đăng ký

Hình. 12/04 T1CON Đăng ký

T1GINV - timer1 Gate Đảo ngược bit hành vi như biến tần nhà nước logic trên cửa pin T1G hoặc C2 so sánh sản lượng

(C2OUT) cửa khẩu.Nó cho phép hẹn giờ để mea trong khi thời gian chắc chắn cửa là cao hay thấp. 1 - Timer 1 đếm khi T1G pin hoặc bit C2OUT cửa cao (1); và 0 - Timer 1 đếm khi T1G pin hoặc bit C2OUT cửa thấp (0).

TMR1GE - timer1 Gate bit Kích hoạt tính năng xác định xem các T1G pin hoặc so sánh sản lượng C2 (C2OUT) cửa khẩu sẽ

được hoạt động hay không. bit này là chức năng duy nhất trong trường hợp các bộ đếm thời gian TMR1 là (1 = bit

TMR1ON). Nếu không, bit này được bỏ qua. 1 Timer TMR1 là chỉ khi cửa hẹn giờ 1 là không hoạt động; và 0 Gate không ảnh hưởng đến giờ TMR1.

T1CKPS1, T1CKPS0 - timer1 đầu vào đồng hồ prescale Chọn bit xác định tỷ giá của các prescaler giao cho các bộ đếm thời

gian TMR1.

T 1 C K P S 1 T 1 C K P S 0 P R E S C A L E R G I Á

0 0 01:010 1 01:021 0 01:041 1 01:08

Bảng 4-2 prescaler giá

T1OSCEN - LP Oscillator bit Kích hoạt tính năng kiểm soát 1 - LP dao động được kích hoạt cho đồng hồ TMR1 hẹn giờ (dao động với mức tiêu thụ điện năng thấp và tần số

32,768 kHz); và 0 - LP dao động bị tắt.

T1SYNC - timer1 ngoài vào Đồng bộ hóa đồng hồ kiểm soát bit cho phép đồng bộ hóa đầu vào dao động LP hoặc đầu vào pin

T1CKI với đồng hồ nội bộ vi điều khiển. Khi đếm xung từ nguồn đồng hồ địa phương (bit TMR1CS = 0), bit này được bỏ qua. 1 - Không được đồng bộ hóa đầu vào đồng hồ bên ngoài; và 0 - Đồng bộ hóa đồng hồ bên ngoài vào.

TMR1CS - Timer TMR1 Clock Nguồn Chọn bit 1 - Đếm xung trên chân T1CKI (trên cạnh tăng 0-1); và 0 - Đếm xung của đồng hồ nội bộ vi điều khiển.

TMR1ON - timer1 Ngày bit 1 - Cho phép Timer TMR1; và 0 - Dừng Timer TMR1.

Để sử dụng chức năng hẹn giờ TMR1 đúng cách, nó là cần thiết để thực hiện những điều sau đây: Vì nó là không thể tắt prescaler, tỷ lệ của nó nên được điều chỉnh bằng cách sử dụng bit T1CKPS1 và T1CKPS0 của

T1CON đăng ký (xem bảng 4-2);

[email protected] - 44 - Call 01266020790

Page 45: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hình thức này cần được lựa chọn bởi các bit TMR1CS của cùng một đăng ký (TMR1CS: 0 = các nguồn đồng hồ là

thạch anh dao động, 1 = các nguồn đồng hồ được cung cấp bên ngoài); Bằng cách thiết lập các bit T1OSCEN của cùng một đăng ký, bộ hẹn giờ TMR1 được bật và sổ đăng ký TMR1H và

TMR1L đang tăng lên trên tất cả các đầu vào đồng hồ. Đếm dừng lại bằng cách xóa bit này; prescaler được xóa bằng cách xóa hoặc viết trong sổ đăng ký truy cập, và Bằng cách điền vào sổ đăng ký hẹn giờ cả hai, lá cờ TMR1IF được thiết lập và bắt đầu đếm từ số không.

Timer TMR2

Timer TMR2 module là một bộ đếm thời gian 8-bit mà hoạt động trong một cách rất cụ thể.

Hình. Thơi gian 4-13 TMR2

Các xung từ bộ dao động thạch anh đi đầu tiên thông qua các prescaler có tỷ lệ có thể được thay đổi bằng cách kết hợp các

bit T2CKPS1 và T2CKPS0. Đầu ra của prescaler là sau đó sử dụng để tăng các TMR2 đăng ký bắt đầu từ 00h. Các giá trị của

TMR2 và PR2 không ngừng so sánh và việc đăng ký TMR2 vẫn không ngừng được tăng lên cho đến khi nó phù hợp với giá trị

trong PR2. Khi trận đấu diễn ra, đăng ký TMR2 được tự động xóa đến 00h. Các TMR2 giờ Postscaler được tăng lên và sản

lượng của nó được sử dụng để tạo ra một ngắt nếu nó được bật.

Việc đăng ký TMR2 và PR2 là cả hai hoàn toàn có thể đọc và ghi. Tính có thể được ngừng lại bằng cách xóa bit TMR2ON,

góp phần tiết kiệm điện năng.

Như một lựa chọn đặc biệt, thời điểm thiết lập lại TMR2 có thể cũng được sử dụng để xác định tốc độ giao tiếp nối tiếp đồng

bộ baud.

Các TMR2 hẹn giờ được điều khiển bởi một vài bit của T2CON đăng ký.T2CON Đăng ký

[email protected] - 45 - Call 01266020790

Page 46: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 14/04 T2CON Đăng ký

TOUTPS3 - TOUTPS0 - Timer2 ra Postcaler bit Chọn được sử dụng để xác định tỷ lệ postscaler theo bảng sau:

T O U T P S 3 T O U T P S 2 T O U T P S 1 T O U T P S 0 T Ỷ L Ệ P O S T S C A L E R

0 0 0 0 01:010 0 0 1 01:020 0 1 0 01:030 0 1 1 01:040 1 0 0 01:050 1 0 1 01:060 1 1 0 01:070 1 1 1 01:081 0 0 0 01:091 0 0 1 01:101 0 1 0 01:111 0 1 1 01:121 1 0 0 01:131 1 0 1 01:141 1 1 0 01:151 1 1 1 01:16

Bảng 4-3 Postscaler giá

TMR2ON - Timer2 Ngày bit biến TMR2 hẹn giờ về. 1 - Timer T2 là ngày; và 0 - Thơi gian T2 là tắt.

T2CKPS1, T2CKPS0 - prescale Timer2 Đồng hồ tốc độ bit xác định prescaler:

T 2 C K P S 1 T 2 C K P S 0 P R E S C A L E R G I Á

0 0 01:010 1 01:041 x 01:16

Bảng 4-4 prescaler giá

Khi sử dụng bộ hẹn giờ TMR2, ta nên biết một số chi tiết cụ thể mà phải làm với đăng ký của mình: Khi quyền lực trên, các đăng ký PR2 FFh chứa giá trị;

[email protected] - 46 - Call 01266020790

Page 47: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Cả hai prescaler và postscaler được thông qua bằng văn bản cho TMR2 đăng ký; Cả hai prescaler và postscaler được thông qua bằng văn bản cho T2CON đăng ký; và Ngày thiết lập lại bất kỳ, cả hai prescaler và postscaler bị xóa.

Chương 5: Modules ĐCSTQ

Các chữ viết tắt của ĐCSTQ là viết tắt của Capture / Compare / PWM.

Các module ĐCSTQ là một thiết bị ngoại vi cho phép người sử dụng thời gian và kiểm soát các sự kiện khác nhau.

Capture Mode, cho phép thời gian trong suốt thời gian của một sự kiện. mạch này cung cấp cái nhìn sâu sắc vào tình trạng

hiện tại của một đăng ký mà liên tục thay đổi giá trị của nó. Trong trường hợp này, đó là hẹn giờ TMR1 đăng ký.

So sánh chế độ so sánh các giá trị chứa trong hai sổ đăng ký tại một số điểm. Một trong số đó là hẹn giờ TMR1 đăng

ký. mạch này cũng cho phép người dùng kích hoạt một sự kiện bên ngoài khi một số tiền định trước thời gian đã hết hạn.

PWM - Pulse Width Modulation có thể tạo ra các tín hiệu tần số khác nhau và chu kỳ nhiệm vụ.

Các vi điều khiển PIC16F887 có hai mô-đun như vậy - CCP1 và CCP2.

Cả hai đều là giống hệt nhau trong chế độ bình thường, ngoại trừ của PWM nâng cao tính năng có sẵn trên CCP1 chỉ. Đây là

lý do tại sao chương này mô tả các module CCP1 cụ thể. Về CCP2, chỉ có các tính năng phân biệt nó từ CCP1 sẽ được bảo

hiểm.

Phức tạp? Tất cả điều này chỉ là một lời giải thích đơn giản hóa hoạt động của họ. Mọi thứ đều rất phức tạp hơn trong thực tế

bởi vì các phân hệ có thể hoạt động trong các chế độ khác nhau. Hãy thử để phân tích hoạt động của họ trên cơ sở các bảng

mô tả chức năng bit.Nếu bạn sử dụng bất kỳ thành phần ĐCSTQ, đầu tiên chọn chế độ mà bạn cần, phân tích các con số

thích hợp và sau đó bắt đầu bit thay đổi của Sổ đăng ký hoặc người nào khác ...CCP1 Module

Một phần trung tâm của mạch này là một đăng ký 16-bit CCPR1, trong đó bao gồm sổ đăng ký CCPR1L và CCPR1H. Nó

được sử dụng để chụp hay so sánh với số nhị phân được lưu trữ trong bộ đếm thời gian đăng ký TMR1 (TMR1H và TMR1L).

Hình. 5-1 CCP1 Module

Trong so sánh chế độ, nếu được kích hoạt bằng phần mềm, các thiết lập lại bộ đếm thời gian TMR1 có thể xảy ra vào trận

đấu. Bên cạnh đó, các module có thể tạo ra các tín hiệu CCP1 PWM của tần số khác nhau và chu kỳ nhiệm vụ.

Bit của CCP1CON đăng ký điều khiển mô-đun CCP1.CCP1 trong chế độ chụp

Trong chế độ này, các bộ đếm thời gian đăng ký TMR1 (bao gồm TMR1H và TMR1L) được sao chép vào sổ đăng ký CCP1

(bao gồm CCPR1H và CCPR1L) trong các trường hợp sau đây: Mỗi cạnh rơi (1 »0) trên RC2/CCP1 pin; Mỗi góc lên (0 »1) trên RC2/CCP1 pin; Mỗi tăng 4 cạnh (0 »1) trên RC2/CCP1 pin; và Mỗi tăng 16 cạnh (0 »1) trên chân RC2/CCP1.

Sự kết hợp của bốn bit (CCP1M3 - CCP1M0) của Kiểm soát đăng ký xác định những sự kiện này sẽ kích hoạt 16-bit dữ

liệu. Ngoài ra, các điều kiện sau đây phải được đáp ứng: pin RC2/CCP1 phải được cấu hình như là đầu vào; và TMR1 module phải hoạt động như hẹn giờ hoặc truy cập đồng bộ.

[email protected] - 47 - Call 01266020790

Page 48: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-2 CCP1 trong chế độ chụp

Các bit cờ CCP1IF được thiết lập khi chụp ảnh chụp được thực hiện. Nếu điều đó xảy ra và nếu các bit CCP1IE của PIE đăng

ký được thiết lập, sau đó ngắt xảy ra.

Khi chế độ chụp được thay đổi, một ngắt không mong muốn có thể nắm bắt được tạo ra. Để tránh điều đó, cả một chút cho

phép CCP1IE bit ngắt và cờ CCP1IF nên được xóa trước khi thay đổi xảy ra trong sự kiểm soát đăng ký.

gián đoạn không mong muốn có thể cũng tạo ra bằng cách chuyển từ một prescaler chụp khác. Để tránh điều này, các module

CCP1 nên được tạm thời tắt trước khi thay đổi các prescaler.

Các chuỗi chương trình sau đây được đề nghị:CCP1 trong chế độ so sánh

Trong chế độ này, giá trị trong sổ đăng ký CCP1 là liên tục so với giá trị trong bộ đếm thời gian đăng ký TMR1. Khi trận đấu

diễn ra, sản lượng pin lý nhà nước RC2/CCP1 có thể được thay đổi, mà phụ thuộc vào trạng thái của các bit trong đăng ký

kiểm soát (CCP1M3 - CCP1M0). Các CCP1IF flag-bit sẽ được đồng thời thiết lập.

[email protected] - 48 - Call 01266020790

Page 49: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-3 CCP1 trong chế độ so sánh

Để thiết lập CCP1 module để hoạt động trong chế độ này, hai điều kiện phải được đáp ứng: Pin RC2/CCP1 phải được cấu hình như sản lượng, và Timer TMR1 phải được đồng bộ với đồng hồ nội bộ.

CCP1 trong chế độ PWM

Tín hiệu của tần số khác nhau và chu kỳ hành công vụ có một ứng dụng rộng rãi trong tự động hóa. Một ví dụ điển hình là một

điều khiển mạch điện đơn giản mà hoạt động được thể hiện trong hình 5-4 dưới đây. Nếu logic một số không (0) đại diện cho

off-switch và một logic (1) đại diện cho switchon, sức mạnh mà tiêu thụ tải sẽ được tỷ lệ thuận với thời gian xung. Chỉ số này

thường được gọi là Duty Cycle.

Hình. 5-4 CCP1 trong chế độ PWM

Một ví dụ khác, phổ biến trong thực tế, là việc sử dụng tín hiệu PWM trong mạch điện để tạo ra các tín hiệu của dạng sóng tùy

ý, ví dụ, dạng sóng hình sin. Xem hình 5-5 dưới đây:

[email protected] - 49 - Call 01266020790

Page 50: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-5 CCP1 trong PWM với chế độ lọc

Thiết bị hoạt động theo cách này thường được sử dụng trong thực tế là chuyển mạch điều đó kiểm soát hoạt động của động

cơ (tốc độ, gia tốc, giảm tốc độ, vv.)

[email protected] - 50 - Call 01266020790

Page 51: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-6 module PWM

Con số trên cho thấy sơ đồ khối của thiết lập module CCP1 trong chế độ PWM. Để tạo ra một xung mẫu tùy ý trên chân đầu ra

của nó, nó là cần thiết để xác định chỉ có hai giá trị-xung tần số và thời gian.

Fig.5-7 PWM ModeThời kỳ PWM

Xung đầu ra thời kỳ (T) được quy định bởi các đăng ký PR2 của TMR2 hẹn giờ. Thời kỳ PWM có thể được tính bằng công

thức sau đây:

PWM Period (T) = (PR2 +1) * * 4Tosc TMR2 prescale giá trị

Nếu thời kỳ PWM (T) được biết đến sau đó, nó rất dễ dàng để xác định tần số tín hiệu F vì hai giá trị có liên quan của phương

trình F = 1 / T.PWM Duty Cycle

[email protected] - 51 - Call 01266020790

Page 52: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Chu kỳ PWM nhiệm vụ được quy định bằng cách sử dụng trong tổng cộng 10 bit: tám MSB tìm thấy trong các đăng ký

CCPR1L và hai LSbs thêm hàng vào sổ đăng ký CCP1CON (DC1B1 và DC1B0). Kết quả là số 10-bit có trong công thức:

Pulse Width = (CCPR1L, DC1B1, DC1B0) * * Tosc TMR2 prescale giá trị

Bảng sau đây cho thấy làm thế nào để tạo ra các tín hiệu PWM của tần số khác nhau nếu vi điều khiển sử dụng 20 MHz thạch

anh tinh thể (Tosc = 50nS).

T Ầ N S Ố [ K H Z ] 1 . 2 2 4 . 8 8 1 9 . 5 3 7 8 . 1 2 1 5 6 . 3 2 0 8 . 3

TMR2 prescaler 16 4 1 1 1 1PR2 Đăng ký FFh FFh FFh 3Fh 1Fh 17giờ

Bảng 5-1 PWM Duty Cycle

Cuối cùng, hai ghi chú: chân đầu ra sẽ được liên tục thiết lập trong trường hợp độ rộng xung là do sơ suất được xác định là lớn hơn so với

thời kỳ PWM; và Trong ứng dụng này, các TMR2 Postscaler giờ không thể được sử dụng để tạo ra khoảng thời gian còn PWM.

Nghị quyết PWM

Tín hiệu PWM là gì khác hơn chuỗi xung với nhiệm vụ chu kỳ khác nhau. Đối với các tần số quy định một (số xung / giây), có

một số giới hạn của chu trình kết hợp nhiệm vụ. Con số này được gọi là độ phân giải đo bằng bit. Ví dụ, một độ phân giải 10-

bit sẽ cho kết quả 1.024 chu kỳ nhiệm vụ rời rạc, trong khi độ phân giải 8-bit sẽ cho kết quả 256 vv rời rạc chu kỳ nhiệm vụ

Liên quan đến vi điều khiển này, độ phân giải là quy định của đăng ký PR2. Giá trị tối đa là thu được bằng cách viết số FFh.

PWM tần số và độ phân giải (Fosc = 20MHz):

T Ầ N P W M 1 . 2 2 K H Z 4 . 8 8 K H Z 1 9 . 5 3 K H Z 7 8 . 1 2 K H Z 1 5 6 . 3 K H Z 2 0 8 . 3 K H Z

Timer prescale 16 4 1 1 1 1Giá trị PR2 FFh FFh FFh 3Fh 1Fh 17giờ

Độ phân giải tối đa 10 10 10 8 7 6

Bảng 5-2 Tần số PWM và Nghị quyết

PWM tần số và độ phân giải (Fosc = 8MHz):

T Ầ N P W M 1 . 2 2 K H Z 4 . 9 0 K H Z 1 9 . 6 1 K H Z 7 6 . 9 2 K H Z 1 5 3 . 8 5 K H Z 2 0 0 . 0 K H Z

Timer prescale 16 4 1 1 1 1Giá trị PR2 65h 65h 65h 19giờ 0Ch 09h

Độ phân giải tối đa 8 8 8 6 5 5

Bảng 5-3 Tần số PWM và Nghị quyếtCCP1CON Đăng ký

Hình. 5-8 Đăng ký CCP1CON

[email protected] - 52 - Call 01266020790

Page 53: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM P1M1, P1M0 - PWM ra bit cấu hình - Trong tất cả các chế độ, ngoại trừ PWM, các pin P1A là Capture / So sánh các mô-đun

đầu vào. P1B, P1C và P1D chân hoạt động như đầu vào / đầu ra cổng chân D. Trong chế độ PWM, những thứ này ảnh

hưởng đến các module CCP1 như thể hiện trong bảng 5-4 dưới đây:

P 1 M 1 P 1 M 0 M O D E

0 0PWM với đầu ra duy nhất

Pin P1A kết quả đầu ra tín hiệu điều chế.Pins P1B, P1C và P1D là cổng D đầu vào / đầu ra

0 1Toàn Cầu - Chuyển tiếp cấu hình

Pin P1D kết quả đầu ra tín hiệu điều chếPin P1A đang hoạt động

Pins P1B và P1C không hoạt động

1 0Một nửa cấu hình Bridge

Pins P1A và đầu ra tín hiệu điều chế P1BPinsP1C và P1D là cổng D đầu vào / đầu ra

1 1Toàn Cầu - Reverse cấu hình

Pin P1B kết quả đầu ra tín hiệu điều chếPin P1C đang hoạt động

Pins P1A và P1D không hoạt động

Bảng 5-4 CCP1CON Đăng ký

DC1B1, DC1B0 - PWM Duty Cycle nhất bit đáng kể - chỉ được sử dụng trong chế độ PWM mà họ đại diện cho hai ít nhất là bit

có ý nghĩa của một số 10 bit. Con số này xác định nhiệm vụ của chu kỳ tín hiệu PWM. Phần còn lại của các bit (8 trong tổng

số) được lưu trong sổ đăng ký CCPR1L.

CCP1M3 - CCP1M0 - CCP1 Mode Chọn bit xác định chế độ của các module CCP1.

C C P 1 M 3 C C P 1 M 2 C C P 1 M 1 C C P 1 M 0 M O D E

0 0 0 0 Module bị vô hiệu hóa (reset)0 0 0 1 Không sử dụng

0 0 1 0So sánh chế độ

CCP1IF bit được thiết lập trên phù hợp0 0 1 1 Không sử dụng

0 1 0 0Chế độ chụp

Mỗi cạnh rơi xuống trên chân CCP1

0 1 0 1Chế độ chụp

Mỗi góc lên trên chân CCP1

0 1 1 0Chế độ chụp

Mỗi tăng 4 cạnh trên chân CCP1

0 1 1 1Chế độ chụp

Mỗi tăng 16 cạnh trên chân CCP1

1 0 0 0So sánh chế độ

Sản lượng và bit CCP1IF được thiết lập vào trận đấu

[email protected] - 53 - Call 01266020790

Page 54: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

1 0 0 1So sánh chế độ

Kết quả là xóa và CCP1IF bit được thiết lập trên phù hợp

1 0 1 0So sánh chế độ

Ngắt yêu cầu đến và bit CCP1IF được đặt trên phù hợp

1 0 1 1So sánh chế độ

Bit CCP1IF được thiết lập và giờ 1 hoặc 2 đăng ký sẽ bị xóa

1 1 0 0Chế độ PWM

Pins P1A và P1C đang hoạt động caoPins P1B và P1D đang hoạt động cao

1 1 0 1Chế độ PWM

Pins P1A và P1C đang hoạt động caoPins P1B và P1D đang hoạt động thấp

1 1 1 0Chế độ PWM

Pins P1A và P1C đang hoạt động thấpPins P1B và P1D đang hoạt động cao

1 1 1 1Chế độ PWM

Pins P1A và P1C đang hoạt động thấpPins P1B và P1D đang hoạt động thấp

Bảng 5-5 Phương thức hoạt độngCCP2 Module

Loại trừ các tên gọi khác nhau của các đăng ký và bit, mô-đun này là một bản sao rất tốt về việc thiết lập module CCP1 trong

chế độ bình thường (trước đây thảo luận). Chỉ có một sự thật khác biệt giữa các chế độ của họ khi CCP2 hoạt động trong chế

độ so sánh.

sự khác biệt đó đề cập đến tín hiệu bộ đếm thời gian T1 đặt lại. Cụ thể, nếu A chuyển đổi / D được kích hoạt tại thời điểm các

giá trị của việc đăng ký TMR1 và CCPR2 phù hợp, các bộ đếm thời gian T1 thiết lập lại tín hiệu tự động sẽ bắt đầu chuyển đổi

A / D.

[email protected] - 54 - Call 01266020790

Page 55: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-9 CCP2 Module

Tương tự như các module thấm nước, mạch này là dưới sự kiểm soát của các bit của Kiểm soát đăng ký. Thời gian này, đó là

CCP2CON đăng ký.CCP2CON Đăng ký

Hình. 10/05 CCP2CON Đăng ký

DC2B1, DC2B0 - PWM Duty Cycle nhất bit đáng kể - chỉ được sử dụng trong chế độ PWM đại diện cho hai ít nhất là bit có ý

nghĩa của một số 10 bit. Con số này xác định nhiệm vụ của chu kỳ tín hiệu PWM. Phần còn lại của các bit (8 trong tổng số)

được lưu trong sổ đăng ký CCPR2L.

CCP2M3 - CCP2M0 - CCP2 Mode Chọn bit chọn chế độ CCP2.

C C P 2 M 3 C C P 2 M 2 C C P 2 M 1 C C P 2 M 0 M O D E

0 0 0 0 Module bị vô hiệu hóa (reset)0 0 0 1 Không sử dụng0 0 1 0 Không sử dụng0 0 1 1 Không sử dụng

0 1 0 0Chế độ chụp

Mỗi cạnh rơi xuống trên chân CCP2

[email protected] - 55 - Call 01266020790

Page 56: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

0 1 0 1Chế độ chụp

Mỗi cạnh nâng cao trên chân CCP2

0 1 1 0Chế độ chụp

Mỗi tăng 4 cạnh trên chân CCP2

0 1 1 1Chế độ chụp

Mỗi tăng 16 cạnh trên chân CCP2

1 0 0 0So sánh chế độ

Sản lượng và bit CCP2IF được thiết lập vào trận đấu

1 0 0 1So sánh chế độ

Kết quả là xóa và CCP2IF bit được thiết lập trên phù hợp

1 0 1 0So sánh chế độ

Ngắt được tạo ra, CCP2IF bit được thiết lập và CCP2 pin không bị ảnh hưởng về trận đấu

1 0 1 1So sánh chế độ

CCP2IF bit được thiết lập, Timer 1 đăng ký sẽ bị xóa, A / D chuyển đổi được bắt đầu nếu các A / D chuyển đổi là vào

ngày trận đấu1 1 x x Chế độ PWM

Bảng 5-6 CCP2CON Đăng kýTrong ngắn hạn: Thiết lập CCP1 module cho PWM hoạt động

Để cài đặt các module ĐCSTQ cho PWM hoạt động, các bước sau đây cần được thực hiện: Vô hiệu hoá các pin ra CCP1. Nó sẽ được cấu hình như là đầu vào; Đặt thời gian PWM bằng cách tải các PR2 đăng ký; Cấu hình module ĐCSTQ cho chế độ PWM bằng cách kết hợp các bit của CCP1CON đăng ký; Đặt nhiệm vụ chu kỳ tín hiệu PWM bằng cách tải đăng ký và sử dụng các bit CCPR1L DC1B1 và DC1B0 của

CCP1CON đăng ký; Cấu hình và TMR2 giờ bắt đầu:o Xóa TMR2IF ngắt lá cờ bit của PIR1 đăng ký;o Thiết lập các giá trị giờ TMR2 prescale bằng cách tải các bit T2CKPS1 và T2CKPS0 của T2CON đăng ký;o Bắt đầu TMR2 hẹn giờ bằng cách thiết lập bit TMR2ON của T2CON đăng ký;

Kích hoạt tính năng các chân PWM ra sau một chu kỳ PWM đã được hoàn thành:o Đợi cho TMR2 tràn bộ đếm thời gian (TMR2IF bit của PIR1register được thiết lập); vào Cấu hình chân thích hợp như đầu ra bằng cách xóa bit của Tris đăng ký.

CCP1 trong chế độ nâng cao

Chế độ nâng cao có sẵn trên CCP1 chỉ. Về cơ bản, mô-đun này không khác biệt với một mô tả trước đây và nâng cao dùng

để truyền tín hiệu PWM để các chân đầu ra. Tại sao nó lại quan trọng? Bởi vì có nhiều vi điều khiển thường được sử dụng

trong các hệ thống điều khiển cho động cơ điện. Các thiết bị này không được mô tả ở đây, nhưng nếu bạn đã có cơ hội để

làm việc về phát triển của các thiết bị tương tự, bạn sẽ nhận ra các yếu tố đó, cho đến gần đây, đã được sử dụng như là

những người bên ngoài. Thông thường, tất cả những yếu tố này đang tích hợp vào bộ vi điều khiển và có thể hoạt động trong

các chế độ khác nhau.Single đầu ra PWM Mode

Chế độ này được kích hoạt chỉ trong trường hợp các bit P1M1 và P1M0 của CCP1CON đăng ký sẽ bị xóa. Trong trường hợp

này, chỉ có một tín hiệu PWM có thể đồng thời có sẵn trên một tối đa là bốn chân đầu ra khác nhau. Bên cạnh đó, các tín hiệu

[email protected] - 56 - Call 01266020790

Page 57: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM PWM có thể xuất hiện ở dạng sóng cơ bản hoặc ngược. phân phối tín hiệu được xác định bởi các bit của PSTRCON đăng ký,

trong khi phân cực của nó được xác định bởi các bit CCP1M1 và CCP1M0 của CCP1CON đăng ký.

Khi một đầu ra đảo đang sử dụng, các chân được thấp đang hoạt động và xung có cùng một dạng sóng luôn luôn tạo ra trong

các cặp: trên P1A và P1C chân và P1B và P1D chân, tương ứng.

Hình. 11/05 đơn đầu ra PWM ModeHalf-Bridge Mode

Trong chế độ này, tín hiệu PWM là đầu ra trên chân P1A, trong khi đồng thời bổ sung các tín hiệu PWM là đầu ra trên chân

P1B. Những xung kích hoạt trình điều khiển MOSFET trong Half-Bridge mode cho phép / vô hiệu hóa dòng điện qua điện

thoại.

[email protected] - 57 - Call 01266020790

Page 58: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hình. 12/05 Half-Bridge Mode

Liên quan đến mạch này, nó là rất nguy hiểm để chuyển trên cả hai trình điều khiển MOSFET cùng một lúc. Các ngắn mạch

gây ra trong thời điểm đó sẽ được gây tử vong. Để tránh điều đó, nó là cần thiết để cung cấp một sự chậm trễ ngắn giữa các

chuyển mạch điều khiển và tắt. sự chậm trễ này được đánh dấu là "td" trong hình 5-13 bên dưới. Vấn đề được giải quyết bằng

cách sử dụng PDC6 PDC0-bit của PWM1CON đăng ký.

Hình. 13/05 Half Bridge Mode

Như được thể hiện trong hình 5-14, cùng một chế độ có thể được dùng để kích hoạt trình điều khiển MOSFET trong toàn cầu:

Hình. 14/05 Kích hoạt trình điều khiển MOSFETFull-Bridge Mode

Trong chế độ toàn cầu, tất cả bốn chân được sử dụng như đầu ra. Trong thực tế, chế độ này thường được sử dụng để chạy

động cơ, cung cấp và kiểm soát hoàn toàn đơn giản về tốc độ và hướng xoay vòng. Có hai cấu hình như vậy: toàn cầu-

Chuyển tiếp và toàn cầu-Reverse.

[email protected] - 58 - Call 01266020790

Page 59: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 5-15 Full-Bridge ModeToàn Cầu - Chuyển tiếp Configuration

Trong Chuyển tiếp chế độ sau xảy ra: Logic một (1) xuất hiện trên các pin P1A (pin là cao hoạt động); Pulse trình tự xuất hiện trên các P1D pin; và Logic số không (0) xuất hiện trên các chân P1B và P1C (chân là thấp đang hoạt động).

Hình dưới đây cho thấy tình trạng của các chân P1A-P1D trong một chu kỳ PWM đầy đủ.

Hình. 5-16 Chuyển tiếp ModeToàn Cầu - Reverse Configuration

Điều tương tự cũng xảy ra ở Reverse chế độ, ngoại trừ các chức năng chân: Logic một (1) xuất hiện trên các pin P1C (pin đang hoạt động cao); Pulse trình tự xuất hiện trên các P1B pin; và Logic số không (0) xuất hiện trên các chân P1A và P1D (chân đang hoạt động thấp).

[email protected] - 59 - Call 01266020790

Page 60: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 17/05 Reverse ModePWM1CON Đăng ký - Khởi động lại Kích hoạt tính năng PWM STRC bit

1 - Khi tắt máy tự động, các mô-đun PWM được tự động thiết lập lại, trong khi các bit ECCPASE của ECCPAS đăng ký là xóa.

0 - Để khởi động lại mô-đun PWM khi tắt máy tự động, các bit ECCPASE phải được trừ vào phần mềm.

PDC6 - PDC0 - PWM Delay Count bit. chữ số nhị phân số-7 xác định số chu kỳ lệnh (4 * Tosc) thêm vào như là thời gian trễ

trong quá trình kích hoạt của các chân ra PWM.

Hình. 18/05 PWM1CON Đăng kýPSTRCON Đăng ký

STRSYNC - Chỉ đạo Sync bit xác định thời điểm chỉ đạo xung PWM: 1 - Chỉ đạo xảy ra khi PSTRCON đã được thay đổi, nhưng chỉ khi một dạng sóng PWM được hoàn thành; và 0 - Chỉ đạo xảy ra khi đăng ký PSTRCON đã được thay đổi. Tín hiệu PWM trên chân đầu ra là ngay lập tức thay đổi

mà không có liên quan đến việc chu kỳ trước đó được hoàn thành hay không. hoạt động này rất hữu ích khi nó là cần thiết để ngay lập tức loại bỏ một tín hiệu PWM từ chân.

STRD - Chỉ đạo Bật bit D xác định chức năng pin P1D. 1 - P1D pin có dạng sóng PWM có cực điều khiển bởi các CCP1M0 và CCP1M1 bit; và 0 - Pin được cấu hình như là đầu vào chung D Port / đầu ra.

Kích hoạt tính năng chỉ đạo STRC bit C xác định chức năng pin P1C. 1 - P1C pin có dạng sóng PWM có cực điều khiển bởi các CCP1M0 và CCP1M1 bit; và 0 - Pin được cấu hình như là đầu vào chung D cổng / đầu ra.

STRB - Chỉ đạo Bật bit B xác định chức năng pin P1B. 1 - P1B pin có dạng sóng PWM có cực điều khiển bởi các CCP1M0 và CCP1M1 bit; và 0 - Pin được cấu hình như là đầu vào chung D cổng / đầu ra.

Stra - Chỉ đạo Bật bit A xác định chức năng pin [email protected] - 60 - Call 01266020790

Page 61: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 1 - P1D pin có dạng sóng PWM có cực điều khiển bởi các CCP1M0 và CCP1M1 bit; và 0 - Pin được cấu hình như Ainput cảng tổng hợp / đầu ra.

ECCPAS Đăng ký

Hình. 19/05 ECCPAS Đăng ký

ECCPASE - ECCP Auto-Shutdown Sự kiện Tình trạng bit cho biết dù đóng cửa của ĐCSTQ module đã xảy ra (tắt máy nhà

nước): 1 - ĐCSTQ module là ở Shutdown nhà nước; và 0 - ĐCSTQ module hoạt động bình thường.

ECCPAS2 - ECCPAS0 - ECCP Auto-Shutdown Nguồn Chọn bit chọn nguồn tắt máy tự động:

E C C P A S 2 E C C P A S 1 E C C P A S 0 S H U T H O W N N H À N Ư Ớ C N G U Ồ N

0 0 0 Tắt máy nhà nước tàn tật0 0 1 C1 sánh sản lượng thay đổi0 1 0 C2 sánh sản lượng thay đổi0 1 1 C1 hay C2 sánh sản lượng thay đổi1 0 0 Logic số không (0) vào INT pin

1 0 1 Logic số không (0) trên chân INT hoặc so sánh sản lượng C1 thay đổi

1 1 0 Logic số không (0) trên chân INT hoặc sản lượng thay đổi so sánh C2

1 1 1 Logic số không (0) trên chân INT hoặc so sánh C1 hay C2 sản lượng thay đổi

Bảng 5-7 ECCPAS Đăng ký

PSSAC1, PSSAC0 - Pins P1A, P1C Shutdown Nhà nước kiểm soát bit logic xác định nhà nước về đầu ra chân P1A và

P1C khi ĐCSTQ module là ở trạng thái tắt máy.

P S S A C 1 P S S A C 0 C H Â N L Ý N H À N Ư Ớ C

0 0 00 1 11 X Trở kháng cao (Tri-nhà nước)

Bảng 5-8 Hoa Logic A & C

PSSBD1, PSSBD0 - Pins P1B, P1D Shutdown Nhà nước kiểm soát bit logic xác định nhà nước về đầu ra chân P1B và

P1D khi ĐCSTQ module là ở trạng thái tắt máy.

P S S B D 1 P S S B D 0 C H Â N L Ý N H À N Ư Ớ C

0 0 0

[email protected] - 61 - Call 01266020790

Page 62: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 0 1 11 X Trở kháng cao (Tri-nhà nước)

Bảng 5-9 B & Hoa Logic DChương 6: Serial Truyền thông ModulesEUSART

Việc nâng cao Universal đồng bộ không đồng bộ thu phát (EUSART) module là một nối tiếp I / O giao tiếp ngoại vi. Nó còn

được gọi là giao diện truyền thông nối tiếp (SCI). Nó chứa tất cả các máy phát điện đồng hồ, đăng ký thay đổi và bộ đệm dữ

liệu cần thiết để thực hiện một đầu vào hay đầu ra dữ liệu nối tiếp chuyển giao độc lập của chương trình thực hiện thiết

bị. Như tên gọi của các quốc gia, ngoài việc sử dụng đồng hồ để đồng bộ hóa, module này cũng có thể thiết lập kết nối không

đồng bộ, mà làm cho nó không thể thay thế trong một số ứng dụng.

Ví dụ, trong trường hợp rất khó hoặc không thể cung cấp các kênh đặc biệt cho đồng hồ và chuyển dữ liệu (ví dụ, điều khiển

vô tuyến từ xa hoặc hồng ngoại), các module EUSART trình bày chính nó như là một giải pháp tiện lợi.

Hình. 6-1 Điều khiển từ xa và máy bay

Hệ thống EUSART tích hợp vào bộ vi điều khiển PIC16F887 có các tính năng sau đây: Full-duplex không đồng bộ truyền và nhận; Lập trình 8 - hoặc 9-bit chiều dài ký tự; Địa chỉ phát hiện trong 9-bit, chế độ; Đầu vào phát hiện lỗi tràn bộ đệm; và Half-duplex truyền thông trong chế độ đồng bộ (chủ hay nô lệ).

Chế độ không đồng bộ EUSART

EUSART Việc truyền và nhận dữ liệu bằng cách sử dụng tiêu chuẩn không trở về-to-zero (NRZ) định dạng. Như đã thấy trong

hình 6-2 dưới đây, chế độ này không sử dụng tín hiệu đồng hồ, trong khi các định dạng dữ liệu được chuyển giao là rất đơn

giản:

Hình. 6-2 Chế độ không đồng bộ EUSART

[email protected] - 62 - Call 01266020790

Page 63: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Tóm lại, mỗi dữ liệu được chuyển giao theo cách sau:

Trong trạng thái nhàn rỗi, dòng dữ liệu có mức logic cao (1); Mỗi truyền dữ liệu bắt đầu bằng START bit mà luôn luôn là một số không (0); Mỗi dữ liệu là 8 - hoặc 9-bit (bit LSB là lần đầu tiên được chuyển giao); và Mỗi truyền dữ liệu kết thúc với STOP bit mà luôn luôn có mức logic mà luôn luôn là một một (1).

EUSART phát không đồng bộ

Hình. 6-3 EUSART phát không đồng bộ

Để cho phép truyền dữ liệu qua EUSART module, nó là cần thiết để cấu hình nó để hoạt động như một máy phát. Nói cách

khác, nó là cần thiết để xác định trạng thái của các bit sau đây:

TXEN = 1 - EUSART máy phát được kích hoạt bằng cách thiết lập này bit của TXSTA đăng ký;

SYNC = 0 - EUSART được cấu hình để hoạt động ở chế độ không đồng bộ bằng cách xóa bit này của TXSTA đăng ký; và

SPEN = 1 - Bằng cách đặt bit này của đăng ký RCSTA, EUSART được kích hoạt và các TX / pin CK được tự động cấu hình

như đầu ra. Nếu bit này được đồng thời sử dụng cho một số chức năng tương tự, nó phải được vô hiệu hóa bằng cách xóa bit

tương ứng của Ansel đăng ký.

Phần trung tâm của truyền EUSART là đăng ký thay đổi TSR mà không phải là truy cập trực tiếp bởi người sử dụng. Để bắt

đầu truyền tải, module phải được kích hoạt bằng cách thiết lập bit TXEN của TXSTA đăng ký. Dữ liệu được gửi đi phải được

ghi vào sổ đăng ký TXREG, sẽ làm theo trình tự sau các sự kiện: Byte sẽ ngay lập tức chuyển sang dịch chuyển đăng ký TSR; TXREG đăng ký vẫn còn trống rỗng, mà là chỉ bằng cách thiết lập bit cờ TXIF của PIR1 đăng ký. Nếu bit TXIE của

PIE1 đăng ký được thiết lập, một gián đoạn sẽ được tạo ra. Bên cạnh đó, lá cờ được thiết lập bất kể một ngắt được kích hoạt hay không. Ngoài ra, nó không thể được xóa bằng phần mềm, nhưng bằng cách ghi dữ liệu mới cho TXREG đăng ký;

Điều khiển điện tử "đẩy" dữ liệu đối với các chân TX trong nhịp điệu với đồng hồ nội bộ: START bit (0) ... dữ liệu ...STOP bit (1);

Khi bit cuối cùng rời khỏi đăng ký TSR, các bit TRMT của ter Regis TXSTA được tự động thiết lập, và

[email protected] - 63 - Call 01266020790

Page 64: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Nếu đăng ký TXREG đã nhận được dữ liệu một nhân vật mới trong khi chờ đợi, toàn bộ thủ tục được lặp lại ngay sau

khi các bit STOP của các nhân vật trước đó đã được truyền đi.

Đang gửi dữ liệu 9-bit được kích hoạt bằng cách thiết lập bit TX9 của TXSTA đăng ký. Các bit TX9D của TXSTA đăng ký là

dữ liệu thứ chín và quan trọng nhất bit. Khi chuyển 9-bit dữ liệu, các bit dữ liệu TX9D phải được viết trước khi viết trong 8 bit

quan trọng nhất vào Sổ đăng ký TXREG. Tất cả chín bit dữ liệu sẽ được chuyển giao cho các ca TSR đăng ký ngay sau khi

TXREG viết hoàn tất.EUSART không đồng bộ thu

Hình. 6-4 EUSART không đồng bộ thu

Tương tự như kích hoạt các EUSART phát, để cho phép người nhận nó là cần thiết để xác định các bước sau:

CREN = 1 - EUSART nhận được kích hoạt bằng cách thiết lập này bit của RCSTA đăng ký;

SYNC = 0 - EUSART được cấu hình để hoạt động ở chế độ không đồng bộ bằng cách xóa bit này được lưu trữ trong các

TXSTA đăng ký; và

SPEN = 1 - Bằng cách đặt bit này của đăng ký RCSTA, EUSART được kích hoạt và RX / pin DT được tự động cấu hình như

đầu vào. Nếu bit này được đồng thời sử dụng cho một số chức năng tương tự, nó phải được vô hiệu hóa bằng cách xóa bit

tương ứng của Ansel đăng ký.

Khi bước đầu tiên và cần thiết được thực hiện và START bit được phát hiện, dữ liệu được chuyển giao cho đăng ký chuyển

RSR thông qua các pin RX. Khi bit STOP đã được nhận, sau xảy ra: Dữ liệu được tự động chuyển sang đăng ký RCREG (nếu có sản phẩm nào); Các bit cờ RCIF được thiết lập và một ngắt, nếu được kích hoạt bởi các bit RCIE của đăng ký PIE1, xảy ra. Tương tự

như máy phát, các bit cờ được xóa bằng phần mềm chỉ, tức là bằng cách đọc các ký RCREG. Ghi nhớ rằng đây là một FIFO bộ nhớ nhân vật hai (lần đầu vào, đầu ra) cho phép tiếp nhận của hai nhân vật cùng một lúc;

Nếu đăng ký RCREG là chiếm đóng (chứa hai byte) và đăng ký thay đổi phát hiện mới bit STOP, các OERR tràn bit sẽ được thiết lập. Trong trường hợp này, một đến dữ liệu mới bị mất, và các bit OEER phải được xóa bằng phần mềm. Nó được thực hiện bằng cách bù trừ và cài đặt lại các bit CREN.Lưu ý: bạn không thể nhận được dữ liệu mới như xa như các bit OERR được thiết lập;

Nếu bit STOP là số không (0), các bit FERR của RCSTAregister phát hiện được lỗi sẽ được thiết lập; và

[email protected] - 64 - Call 01266020790

Page 65: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để nhận dữ liệu 9-bit nó là cần thiết để thiết lập các bit RX9 của RCSTA đăng ký.

Nhận diện lỗi

Có hai loại lỗi mà các vi điều khiển tự động có thể phát hiện. Người đầu tiên được gọi là khung báo lỗi và xuất hiện khi người

nhận không phát hiện các bit STOP tại thời gian dự kiến. lỗi như vậy được chỉ định thông qua các bit FERR của RCSTA đăng

ký. Nếu bit này được thiết lập, nó có nghĩa là các dữ liệu mới nhất nhận được có thể không đúng. Điều quan trọng là biết một

vài điều: Một lỗi khung không tạo ra một ngắt của chính nó; Nếu bit này được thiết lập, việc nhận được dữ liệu mới nhất có một lỗi; Một lỗi khung (bit quy định) không ngăn cản tiếp nhận dữ liệu mới; Các bit FERR là xóa bằng cách đọc dữ liệu nhận được, có nghĩa là kiểm tra phải được thực hiện trước khi đọc dữ

liệu; và Các bit FERR không thể được xóa bằng phần mềm. Nếu cần thiết, nó có thể được xóa bằng cách xóa bit SPEN của

RCSTA đăng ký. Nó đồng thời sẽ gây ra thiết lập lại hệ thống EUSART toàn.

Một loại được gọi là lỗi tràn Lỗi. Các nhận FIFO có thể chứa hai ký tự. Một lỗi tràn sẽ được tạo ra nếu các nhân vật thứ ba là

nhận được.Đơn giản, không có không gian cho một byte một và một lỗi là không thể tránh khỏi! Khi điều này xảy ra các bit

OERR của RCSTA đăng ký được thiết lập. Hậu quả là sau đây: Dữ liệu đã được lưu giữ trong sổ đăng ký FIFO (hai byte) có thể được bình thường đọc; Không có dữ liệu bổ sung sẽ được nhận cho đến khi bit OERR là xóa; và bit này không trực tiếp truy cập. Để xóa nó, nó là cần thiết để xóa bit CREN của RCSTA hoặc đăng ký để đặt lại toàn

bộ hệ thống EUSART bằng cách xóa bit SPEN của RCSTA đăng ký.Nhận dữ liệu 9-bit

Ngoài việc nhận được tiêu chuẩn 8-bit dữ liệu, hệ thống hỗ trợ tiếp nhận dữ liệu EUSART 9-bit. Ở bên chuyển giao, các bit

thứ chín là "gắn" vào các byte ban đầu trước khi các bit STOP. Về mặt nhận được, khi bit RX9 của RCSTA đăng ký được thiết

lập, các bit dữ liệu thứ chín sẽ tự động được ghi vào RX9D bit của cùng một đăng ký. Khi byte này là nhận được, ta nên quan

tâm làm thế nào để đọc các bit của nó-bit RX9D dữ liệu phải được đọc trước khi đọc trong 8 bit quan trọng nhất của RCREG

đăng ký. Nếu không, các bit dữ liệu thứ chín sẽ được tự động xóa.

[email protected] - 65 - Call 01266020790

Page 66: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 6-5 Nhận 9-bit dữ liệuĐịa chỉ phát hiện

Khi bit ADDEN của RCSTAregister được thiết lập, các module EUSART có thể chỉ nhận được 9-bit dữ liệu, trong khi tất cả các

dữ liệu 8-bit sẽ bị bỏ qua. Mặc dù nó có vẻ như hạn chế, các chế độ như vậy cho phép giao tiếp nối tiếp giữa vi điều khiển

khác nhau. Nguyên tắc hoạt động rất đơn giản. Các thiết bị chủ sẽ gửi dữ liệu 9-bit đại diện cho địa chỉ của một vi điều

khiển. Tất cả các vi điều khiển nô lệ chia sẻ cùng một đường truyền, nhận dữ liệu này. Tất nhiên, mỗi người phải có các bit

ADDEN thiết lập bởi vì nó cho phép xác định địa chỉ.

[email protected] - 66 - Call 01266020790

Page 67: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Khi nhận được dữ liệu này mỗi nô lệ kiểm tra nếu địa chỉ phù hợp riêng của mình. Phần mềm, trong đó có địa chỉ phù hợp xảy

ra, phải vô hiệu hóa địa chỉ phát hiện bởi thanh toán bù trừ ADDEN của nó bit. Các thiết bị chủ giữ về gửi dữ liệu 8-bit. Tất cả

các dữ liệu đi qua các đường dây truyền tải sẽ được nhận module "được công nhận" EUSART chỉ. Khi nhận được các byte

cuối, thiết bị nô lệ nên thiết lập các bit ADDEN để cho phép phát hiện địa chỉ mới.

Hình. 6-7 gửi dữ liệuTXSTA Đăng ký

Fig.6-8 TXSTA Đăng ký

CSRC - Đồng hồ Nguồn Chọn bit - xác định nguồn đồng hồ. Nó chỉ được sử dụng trong chế độ đồng bộ. 1 - Master mode. Đồng hồ được tạo ra trong nội bộ từ Tốc độ Baud phát điện; và 0 - Slave chế độ. Đồng hồ được tạo ra từ nguồn bên ngoài.

TX9 - 9-bit Phát Bật bit 1-9-bit dữ liệu truyền tải qua hệ thống EUSART; và 0-8-bit dữ liệu truyền tải qua hệ thống EUSART.

TXEN - Phát Bật bit 1 - truyền kích hoạt, và 0 - truyền động vô hiệu hóa.

SYNC - Chọn chế độ EUSART bit 1 - EUSART hoạt động ở chế độ đồng bộ; và 0 - EUSART hoạt động ở chế độ không đồng bộ.

SENDB - Gửi Break bit Ký tự chỉ được sử dụng trong chế độ không đồng bộ và chỉ trong trường hợp nó là cần thiết để thực

hiện tiêu chuẩn xe buýt LIN. 1 - Gửi Break nhân vật được kích hoạt, và 0 - Break truyền nhân vật được hoàn tất.

[email protected] - 67 - Call 01266020790

Page 68: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM BRGH - Tốc độ Baud cao Chọn bit xác định tốc độ truyền trong chế độ không đồng bộ. Nó không ảnh hưởng đến EUSART

trong chế độ đồng bộ. 1 - EUSART hoạt động ở tốc độ cao; và 0 - EUSART hoạt động ở tốc độ thấp.

TRMT - Phát Shift Đăng ký bit trạng thái 1 - TSR đăng ký có sản phẩm nào, và 0 - TSR đăng ký đầy.

TX9D - lần thứ IX Phát bit của dữ liệu có thể được sử dụng như địa chỉ hoặc bit chẵn lẻ.RCSTA Đăng ký

Fig.6-9 RCSTA Đăng ký

SPEN - Serial Port Bật bit 1 - Serial cổng bật. RX / DT và TX / CK chân được tự động cấu hình như đầu vào và đầu ra tương ứng; và 0 - Serial cổng tàn tật.

RX9 - 9-bit Kích hoạt tính năng nhận bit 1 - Nhận dữ liệu 9-bit qua EUSART hệ thống; và 0 - Nhận dữ liệu 8-bit thông qua hệ thống EUSART.

SREN - đơn bit ReceiveEnable chỉ được sử dụng trong chế độ đồng bộ khi vi điều khiển các hoạt động làm chủ. 1 - đơn nhận được kích hoạt, và 0 - đơn nhận được vô hiệu hóa.

CREN - Liên tiếp nhận Bật bit hành vi khác nhau tùy thuộc vào chế độ EUSART.

Chế độ không đồng bộ: 1 - nhận được kích hoạt, và 0 - nhận tàn tật.

Chế độ đồng bộ: 1 - Cho phép liên tục nhận được cho đến khi các bit CREN là xóa; và 0 - Vô hiệu hóa liên tục nhận được.

ADDEN - Địa chỉ Phát hiện bit Kích hoạt tính năng chỉ được sử dụng tại địa chỉ phát hiện các chế độ. 1 - Cho phép địa chỉ phát hiện trên dữ liệu 9-bit nhận được, và 0 - Vô hiệu hóa địa chỉ phát hiện. Các bit thứ chín có thể được sử dụng làm bit chẵn lẻ.

FERR - khung lỗi bit 1 - Về tiếp nhận, khung Lỗi được phát hiện; và 0 - Không có lỗi khung.

OERR - Lỗi tràn ngập bit. 1 - Về tiếp nhận, tràn Lỗi được phát hiện; và 0 - Không có lỗi tràn.

RX9D - IX chút nhận được dữ liệu có thể được sử dụng như địa chỉ hoặc bit chẵn lẻ.Tốc độ Baud EUSART Generator (BRG)

[email protected] - 68 - Call 01266020790

Page 69: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Nếu bạn cẩn thận xem xét các nhận EUSART không đồng bộ hoặc sơ đồ phát, bạn sẽ thấy, trong cả hai trường hợp, có đồng

hồ tín hiệu từ BRG giờ địa phương được sử dụng để đồng bộ hóa. Nguồn đồng hồ này còn được sử dụng trong chế độ đồng

bộ.

giờ này bao gồm hai ghi 8-bit bao gồm một 16-bit đăng ký.

Hình. Tốc độ Baud 6-10 EUSART Generator (BRG)

Một số văn bản đăng ký hai quyết định tốc độ truyền. Bên cạnh đó, cả hai bit BRGH của TXSTA đăng ký và bit các BRGH16

của BAUDCTL đăng ký ảnh hưởng đến tần số đồng hồ.

Công thức dùng để xác định Tốc độ Baud được đưa ra trong bảng dưới đây.

B I TB R G / E U S A R T M O D E T Ố C Đ Ộ B A U D T H Ứ C

SYNC BRG1G BRGH

0 0 0 8-bit / không đồng bộ Fosc / [64 (n + 1)]0 0 1 8-bit / không đồng bộ Fosc / [16 (n + 1)]0 1 0 16-bit / không đồng bộ Fosc / [16 (n + 1)]0 1 1 16-bit / không đồng bộ Fosc / [4 (n + 1)]1 0 X 8-bit / không đồng bộ Fosc / [4 (n + 1)]1 1 X 16-bit / không đồng bộ Fosc / [4 (n + 1)]

Bảng 6-1 Tốc độ Baud

Các bảng sau đây chứa các giá trị đó phải được ghi vào các bit-16 đăng ký SPBRG và giao cho các SYNC, BRGH và

BRGH16 bit để có được một số các mức độ truyền đạt tiêu chuẩn.

Các công thức được sử dụng để xác định giá Baud là:

[email protected] - 69 - Call 01266020790

Page 70: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

[email protected] - 70 - Call 01266020790

Page 71: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

[email protected] - 71 - Call 01266020790

Page 72: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bảng 6-2 Xác định giá BaudBAUDCTL Đăng ký

Hình. 11/06 BAUDCTL Đăng ký

ABDOVF - Auto-Detect bit Overflow Baud chỉ được sử dụng trong chế độ không đồng bộ trong quá trình phát hiện tốc độ

truyền. 1 - Auto-bốt tràn bộ đếm thời gian, và 0 - Auto-bốt giờ đã không tràn.

RCIDL - Nhận Idle bit Flag chỉ được sử dụng trong chế độ không đồng bộ. 1 - nhận được nhàn rỗi, và 0 - START bit đã được nhận và nhận được tiến hành.

[email protected] - 72 - Call 01266020790

Page 73: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM SCKP - đồng bộ đồng hồ phân cực Chọn bit hành vi khác nhau tùy thuộc vào chế độ EUSART.

Chế độ không đồng bộ: 1 - Truyền dữ liệu ngược với RC6/TX/CK pin; và 0 - Phát không đảo ngược dữ liệu vào cùng một pin.

Chế độ đồng bộ: 1 - Đồng bộ về tăng cạnh đồng hồ, và 0 - Đồng bộ hóa trên rơi xuống cạnh đồng hồ.

WUE Wake-up Bật bit 1 - nhận chờ đợi cho một cạnh thuộc vào pin RC7/RX/DT để bắt đầu thức dậy vi điều khiển từ chế độ ngủ; và 0 - nhận hoạt động bình thường.

ABDEN - Auto-Detect Baud bit Kích hoạt tính năng được sử dụng trong chế độ không đồng bộ chỉ. 1 - Auto-bốt phát hiện các chế độ được kích hoạt. Bit được tự động xóa về tốc độ truyền phát hiện; và 0 - chế độ Auto-bốt phát hiện được vô hiệu hóa.

Trong ngắn hạn:

Đang gửi dữ liệu thông qua giao tiếp EUSART không đồng bộ:1. Tốc độ baud mong muốn được thiết lập bằng cách sử dụng bit BRGH (TXSTA đăng ký) và BRG16 (BAUDCTL đăng ký)

và đăng ký SPBRGH và SPBRG;2. Các bit SYNC (TXSTA đăng ký) phải được xóa và các bit SPEN nên được thiết lập (RCSTA đăng ký) để kích hoạt cổng

nối tiếp;3. Ngày truyền dữ liệu 9-bit, các bit TX9 của TXSTA đăng ký phải được thiết lập;4. truyền dữ liệu được kích hoạt bằng cách thiết lập TXEN bit của TXSTA đăng ký. Bit TXIF của PIR1 đăng ký được tự

động thiết lập;5. Nếu cần thiết các bit TXEN gây ra, làm gián đoạn Giẽ và PEIE bit của INTCON đăng ký phải được thiết lập;6. Ngày truyền dữ liệu 9-bit, giá trị của bit thứ chín nên được ghi vào bit TX9D của TXSTA đăng ký; và7. Truyền bắt đầu bằng cách viết 8-bit dữ liệu vào sổ đăng ký TXREG.

Tiếp nhận dữ liệu thông qua giao tiếp EUSART không đồng bộ:1. Tốc độ Baud nên được thiết lập bằng cách sử dụng bit BRGH (TXSTA đăng ký) và BRG16 (BAUDCTL đăng ký) và đăng

ký SPBRGH và SPBRG;2. Các bit SYNC (TXSTA đăng ký) phải được xóa và các bit SPEN nên được thiết lập (RCSTA đăng ký) để kích hoạt cổng

nối tiếp;3. Nếu cần các dữ liệu nhận được nguyên nhân gây gián đoạn, cả hai bit RCIE của PIE1 đăng ký và bit Giẽ và PEIE của

INTCON đăng ký phải được thiết lập;4. Ngày 9-bit dữ liệu nhận được, các bit RX9 của RCSTA đăng ký phải được thiết lập;5. Dữ liệu nhận được sẽ được kích hoạt bằng cách thiết lập bit CREN của RCSTA đăng ký;6. Việc đăng ký RCSTA phải được đọc để có được thông tin về lỗi có thể đã xảy ra trong quá trình truyền. Ngày 9-bit dữ

liệu nhận được, các bit thứ chín sẽ được lưu trữ trong đăng ký; và7. Đã nhận được 8-bit dữ liệu được lưu vào sổ đăng ký RCREG phải được đọc.

Thiết lập chế độ phát hiện Địa chỉ:1. Tốc độ Baud nên được thiết lập bằng cách sử dụng bit BRGH (TXSTA đăng ký) và BRG16 (BAUDCTL đăng ký) và đăng

ký SPBRGH và SPBRG;2. Các bit SYNC (TXSTA đăng ký) phải được xóa và các bit SPEN nên được thiết lập (RCSTA đăng ký) để kích hoạt cổng

nối tiếp;3. Nếu cần các dữ liệu nhận được gây ra, làm gián đoạn các bit RCIE của PIE1 bit cũng như các bit Giẽ và PEIE của

INTCON đăng ký phải được thiết lập;4. Các bit RX9 của RCSTA đăng ký phải được thiết lập;5. Các ADDEN của RCSTA đăng ký phải được thiết lập, cho phép dữ liệu được hiểu là địa chỉ;6. Dữ liệu nhận được được kích hoạt bằng cách thiết lập bit CREN của RCSTA đăng ký;7. Ngay sau khi dữ liệu 9-bit nhận được, các bit RCIF của PIR1 đăng ký sẽ tự động được thiết lập. Nếu kích hoạt, làm gián

đoạn xảy ra;8. Việc đăng ký RCSTA phải được đọc để có được thông tin về lỗi có thể đã xảy ra trong quá trình truyền. Các RX9D bit

thứ chín luôn luôn là quy định; và9. Đã nhận được 8-bit được lưu giữ trong sổ đăng ký RCREG phải được đọc. Nó cần được kiểm tra có sự kết hợp của các

bit này phù hợp với địa chỉ được xác định trước. Nếu trận đấu diễn ra, nó là cần thiết để xóa bit ADDEN của RCSTA đăng ký, cho phép thêm 8-bit dữ liệu nhận được.

Thầy đồng bộ Serial Port Module

[email protected] - 73 - Call 01266020790

Page 74: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM MSSP module (Master đồng bộ Serial Port) là rất hữu ích, nhưng tại một thời điểm của các mạch phức tạp nhất trong vi điều

khiển. Nó cho phép giao tiếp tốc độ cao giữa một vi điều khiển và thiết bị ngoại vi khác hoặc các thiết bị vi điều khiển bằng

cách sử dụng ít đầu vào / đầu ra dòng (tối đa hai hoặc ba). Do đó, nó thường được dùng để kết nối các vi điều khiển cho màn

hình LCD, A / D chuyển đổi, EEPROMs nối tiếp, thay đổi đăng ký vv Các tính năng chính của loại giao tiếp là nó là đồng bộ và

phù hợp để sử dụng trong các hệ thống với một tổng thể duy nhất và một hoặc một nô lệ. Một thiết bị chủ chứa các mạch điện

cần thiết cho thế hệ tốc độ truyền và cung cấp đồng hồ cho tất cả các thiết bị trong hệ thống. Thiết bị nô lệ cách có thể là trong

loại bỏ các mạch đồng hồ thế hệ nội bộ. Các module MSSP có thể hoạt động theo một trong hai chế độ: Chế độ SPI (Serial Peripheral Interface) I ² C chế độ (Inter-vi mạch)

Như đã thấy trong hình 6-12 bên dưới, một đại diện MSSP module chỉ là một nửa của phần cứng cần thiết để thiết lập giao

tiếp nối tiếp, trong khi một nửa khác được lưu trữ trong thiết bị dữ liệu được trao đổi với. Mặc dù các mô-đun trên cả hai đầu

của dòng giống nhau, phương thức của họ về cơ bản là khác nhau tùy thuộc vào việc chúng hoạt động như một Master hoặc

một nô lệ:

Nếu vi điều khiển được lập trình điều khiển một thiết bị hay mạch (thiết bị ngoại vi), nó sẽ hoạt động như một thiết bị chủ. Một

module được định nghĩa như vậy sẽ tạo ra đồng hồ khi cần thiết, nghĩa là chỉ khi dữ liệu nhận được và truyền tải là yêu cầu

của phần mềm. Nó phụ thuộc vào chủ có kết nối sẽ được thiết lập hay không. Nếu không, nếu vi điều khiển được lập trình là

một phần của một số thiết bị ngoại vi thuộc một số thiết bị phức tạp hơn (ví dụ máy tính), sau đó nó sẽ hoạt động như một

thiết bị nô lệ. Như vậy, nó luôn luôn phải chờ đợi yêu cầu để truyền dữ liệu từ thiết bị chủ.

Fig.6-12 MSSP ModuleSPI Mode

Các chế độ SPI cho phép 8 bit dữ liệu được truyền và nhận đồng thời sử dụng 3 đầu vào / đầu dòng xuất: Vua Pháp Thuật - Serial Data Out - truyền dòng; SDI - Serial Data Trong - nhận hàng; và

[email protected] - 74 - Call 01266020790

Page 75: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM SCK - Serial Clock - đồng bộ hóa dòng.

Ngoài ba dòng, nếu các vi điều khiển trao đổi dữ liệu với nhiều thiết bị ngoại vi, đường ra (SS) có thể cũng được sử dụng. Hãy

tham khảo con số 6-13 bên dưới.

SS - Slave Chọn - là thêm pin sử dụng để lựa chọn thiết bị cụ thể. Đây là hoạt động chỉ trong trường hợp vi điều khiển ở chế

độ nô lệ, tức là khi bên ngoài - thiết bị tổng thể yêu cầu trao đổi dữ liệu.

Khi hoạt động trong chế độ SPI, MSSP module sử dụng trong tổng số 4 đăng ký: SSPSTAT tình trạng đăng ký; Kiểm soát SSPCON đăng ký; SSPBUF đệm đăng ký; và SSPSR thay đổi đăng ký (không trực tiếp có sẵn)

Ba đăng ký đầu tiên được ghi / đọc được và có thể thay đổi bất cứ lúc nào, trong khi ra đăng ký, vì không có sẵn, được sử

dụng để chuyển đổi dữ liệu sang định dạng "nối tiếp".

Hình. 13/06 SPI Mode

Như đã thấy trong hình 6-14, phần trung tâm của các module SPI bao gồm hai sổ đăng ký kết nối với chốt để tiếp nhận, truyền

tải và đồng bộ hóa.

Shift đăng ký (SSPRS) là trực tiếp kết nối với các chân vi điều khiển và được sử dụng để truyền dữ liệu ở định dạng nối

tiếp. Các SSPRS đăng ký có đầu vào và đầu ra của nó và thay đổi các dữ liệu vào và ra khỏi thiết bị. Nói cách khác, mỗi bit

xuất hiện trên đầu vào (nhận hàng) đồng thời thay đổi một chút về hướng đầu ra (chuyển line).

Các SSPBUF đăng ký (Buffer) là một phần của bộ nhớ được sử dụng để tạm giữ các dữ liệu bằng văn bản cho SSPRS cho

đến khi các dữ liệu nhận được là đã sẵn sàng. Khi nhận được tất cả 8 bit dữ liệu, mà byte được chuyển đến đăng ký

SSPBUF. Điều này đôi đệm của dữ liệu nhận được (SSPBUF) cho phép các byte tiếp theo để bắt đầu tiếp nhận trước khi đọc

dữ liệu đó chỉ là nhận được. Bất cứ ghi vào sổ đăng ký SSPBUF trong quá trình truyền / nhận dữ liệu sẽ bị bỏ qua. Kể từ khi

có được các truy cập nhất, đăng ký này được xem là quan trọng nhất của lập trình điểm 'của xem.

Cụ thể, nếu cài đặt chế độ được bỏ qua, dữ liệu chuyển qua SPI thực sự có nghĩa là để viết và đọc dữ liệu từ các đăng ký

này, trong khi một "nhào lộn" như di chuyển đăng ký sẽ tự động được thực hiện bởi phần cứng.

[email protected] - 75 - Call 01266020790

Page 76: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 14/06 SPI ModeTrong ngắn hạn:

Trước khi khởi tạo các SPI, nó là cần thiết để xác định một số tùy chọn: Master mode (SCK pin là sản phẩm đồng hồ); Chế độ nô lệ (SCK pin là đầu vào đồng hồ); Dữ liệu đầu vào giai đoạn giữa hoặc cuối thời gian đầu ra dữ liệu (SMP bit); Đồng hồ cạnh (CKE bit); Tốc độ Baud (chỉ ở chế độ Master); và Chọn chế độ nô lệ (chỉ chế độ nô lệ).

Bước 1.

Số liệu để truyền tải nên được ghi vào bộ đệm ghi SSPBUF. Ngay sau đó, nếu các module SPI hoạt động trong chế độ tổng

thể, các vi điều khiển tự động sẽ thực hiện các bước sau đây 2, 3 và 4. Nếu các module SPI hoạt động như nô lệ, các vi điều

khiển sẽ không thực hiện các bước sau cho đến khi pin SCK phát hiện tín hiệu đồng hồ.

Hình. Bước 1 15/06

Bước 2.

Dữ liệu này hiện đang chuyển sang đăng ký và đăng ký SSPSR SSPBUF sẽ không bị xóa.

Hình. Bước 2 16/06

[email protected] - 76 - Call 01266020790

Page 77: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Bước 3.

Đồng bộ với tín hiệu đồng hồ, dữ liệu này được chuyển sang chân đầu ra (MSB bit đầu tiên) trong khi đăng ký đồng thời là

được làm đầy với các bit thông qua pin đầu vào. Trong chế độ Master, các vi điều khiển chính nó tạo ra đồng hồ, trong khi chế

độ nô lệ sử dụng đồng hồ bên ngoài (pin SCK).

Hình. 6-17 Bước 3

Bước 4.

Việc đăng ký SSPSR đầy một lần trong 8 bit dữ liệu đã được nhận. Nó được thể hiện bằng cách thiết lập các bit BF và

SSPIF. Các dữ liệu nhận được (mà byte) được tự động chuyển từ SSPSR các đăng ký trong sổ đăng ký SSPBUF. Kể từ khi

truyền dữ liệu qua giao tiếp nối tiếp được thực hiện tự động, phần còn lại của chương trình là bình thường thực hiện trong khi

dữ liệu chuyển giao được tiến hành. Trong trường hợp đó, chức năng của các bit SSPIF là tạo ra một ngắt khi truyền byte

được hoàn tất.

Hình. 6-18 Bước 4

Bước 5.

Cuối cùng, dữ liệu được lưu giữ trong sổ đăng ký SSPBUF đã sẵn sàng cho sử dụng và di chuyển đến bất kỳ đăng ký sẵn.

Hình. 6-19 Bước 5I ² C chế độ

I ² C chế độ (Inter IC Bus) là đặc biệt thích hợp khi các vi điều khiển và mạch tích hợp, trong đó bộ vi điều khiển cần trao đổi

dữ liệu với, đang trong cùng một thiết bị. Nó thường về một vi điều khiển hoặc tích hợp chuyên ngành, các mạch giá rẻ thuộc

thế hệ mới của cái gọi là "thành phần ngoại vi thông minh" (kỷ niệm, cảm biến nhiệt độ, đồng hồ thời gian thực, vv)

Tương tự như giao tiếp nối tiếp trong chế độ SPI, chuyển dữ liệu trong I ² C chế độ đồng bộ và hai chiều. Thời gian này chỉ có

hai chân được sử dụng để truyền dữ liệu. Đây là những SDA (Serial Data) và SCL (Serial Clock) chân. Người dùng phải cấu

hình các chân như đầu vào hay đầu ra thông qua các bit TRISC.

[email protected] - 77 - Call 01266020790

Page 78: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Có lẽ nó không phải là trực tiếp nhìn thấy được. Bằng cách quan sát quy tắc cụ thể (giao thức), chế độ này cho phép lên tới

122 thành phần khác nhau sẽ được kết nối cùng lúc một cách đơn giản bằng cách chỉ sử dụng hai tôi có giá trị / O pins. Tóm

lại, mọi thứ hoạt động như sau: Đồng hồ cần thiết để đồng bộ hóa các hoạt động của cả hai thiết bị là luôn luôn tạo ra bởi các

thiết bị tổng thể (vi điều khiển) và tần số của nó trực tiếp ảnh hưởng đến tốc độ truyền. Có các giao thức cho phép tần số đồng

hồ tối đa 3,4 MHz (được gọi là tốc độ cao I ² C xe buýt), nhưng tần số đồng hồ của giao thức được sử dụng thường xuyên

nhất là hạn chế tới 100 KHz. Không có giới hạn trong trường hợp tần số tối thiểu.

Khi chủ và nô lệ thành phần được đồng bộ hóa bởi đồng hồ, mọi trao đổi dữ liệu luôn luôn được khởi tạo bởi chủ. Một khi các

module MSSP đã được kích hoạt, nó chờ đợi một điều kiện bắt đầu xảy ra. Đầu tiên các thiết bị chủ sẽ gửi các bit START

(logic số không) thông qua các chân SDA, sau đó các-bit địa chỉ 7 của thiết bị nô lệ đã chọn, và cuối cùng, các bit dữ liệu đòi

hỏi phải viết (0) hoặc đọc (1) đến thiết bị đó. Theo đó, sau các điều kiện bắt đầu, tám bit được chuyển vào Sổ đăng ký

SSPSR. Tất cả các thiết bị nô lệ chia sẻ cùng một đường truyền và tất cả cùng một lúc sẽ nhận được các byte đầu tiên, nhưng

chỉ một trong số họ có địa chỉ cho phù hợp.

Hình. 6-20 Master và Slave Cấu hình

Một khi các byte đầu tiên đã được gửi (chỉ 8-bit dữ liệu được truyền đi), chủ đi vào nhận thức và chờ xác nhận từ thiết bị nhận

được địa chỉ phù hợp đã xảy ra. Nếu thiết bị nô lệ gửi nhận dữ liệu bit (1), chuyển dữ liệu sẽ được tiếp tục cho đến khi các

thiết bị tổng thể (vi điều khiển) sẽ gửi các bit Stop.

Đây là lời giải thích đơn giản về cách giao tiếp phần hai. Nếu cần thiết, vi điều khiển này có thể kiểm soát tình hình phức tạp

hơn khi 1.024 thành phần khác nhau, được chia sẻ bởi các thiết bị tổng thể khác nhau, được kết nối. thiết bị này ít được sử

dụng trong thực tế và không có cần phải thảo luận với chiều dài lớn hơn.

[email protected] - 78 - Call 01266020790

Page 79: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 6-21 Truyền dữ liệu

Hình dưới đây cho thấy sơ đồ khối của module MSSP trong I ² C chế độ.

[email protected] - 79 - Call 01266020790

Page 80: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 22/06 MSSP sơ đồ khối trong tôi Mode C ²

Các module MSSP sử dụng sáu đăng ký cho tôi hoạt động ² C. Một số của chúng được in hình trên: SSPCON; SSPCON2; SSPSTAT; SSPBUF; SSPSR; và SSPADD.

SSPSTAT Đăng ký

[email protected] - 80 - Call 01266020790

Page 81: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 23/06 SSPSTAT Đăng ký

SMP mẫu bit

SPI chế độ điều khiển - bit này xác định dữ liệu đầu vào giai đoạn. 1 - Nhà nước Logic được đọc vào cuối thời gian dữ liệu đầu ra; và 0 - nhà nước Logic được đọc ở giữa dữ liệu thời gian đầu ra.

Chế độ nô lệ SPI bit này được trừ khi SPI được sử dụng trong chế độ nô lệ.

I ² C chế độ (chủ hay nô lệ) 1 - Tốc độ đáp ứng điều khiển tốc độ vô hiệu hóa cho chế độ tiêu chuẩn (100kHz); và 0 - Tốc độ đáp ứng điều khiển kích hoạt cho các chế độ tốc độ cao (400kHz).

CKE - Đồng hồ Edge Chọn bit chọn chế độ đồng bộ hóa.

CKP = 0: 1 - Dữ liệu được truyền đi trên góc lên của xung đồng hồ (0 - 1); và 0 - Dữ liệu được truyền đi trên bờ xuống của xung đồng hồ (1 - 0).

CKP = 1: 1 - Dữ liệu được truyền đi trên bờ xuống của xung đồng hồ (1 - 0); và 0 - Dữ liệu được truyền đi trên góc lên của xung đồng hồ (0 - 1).

D / A - Dữ liệu / bit Địa chỉ được sử dụng trong chế độ I ² C chỉ. 1 - Chỉ ra rằng byte cuối cùng nhận được hoặc truyền được dữ liệu; và 0 - Chỉ ra rằng byte cuối cùng nhận được hoặc truyền được địa chỉ.

P - bit Stop được sử dụng trong chế độ I ² C chỉ. 1 - bit STOP đã được phát hiện trước; và 0 - bit STOP đã không được phát hiện cuối cùng.

S - bit bắt đầu được sử dụng trong chế độ I ² C chỉ. 1 - START bit đã được phát hiện trước; và 0 - bit START đã không được phát hiện cuối cùng.

R / W - Đọc Viết bit được sử dụng trong chế độ I ² C chỉ. bit này giữ R / W bit thông tin sau trận địa chỉ cuối cùng. bit này chỉ

có giá trị từ các địa chỉ phù hợp với các bit bắt đầu tiếp theo, bit Stop hay không ACK bit.

Trong chế độ nô lệ I ² C 1 - Dữ liệu đọc, và 0 - Số liệu ghi.

Trong chế độ master Tôi ² C 1 - Phát hiện trong tiến trình, và 0 - Phát không tiến hành.

UA - Thông tin Địa chỉ bit được sử dụng trong bit-10 I ² C chế độ chỉ. 1 - Chỉ ra rằng nó là cần thiết để cập nhật các địa chỉ trong SSPADD đăng ký; và 0 - Địa chỉ vào sổ đăng ký SSPADD là chính xác và không cần phải được cập nhật.

BF đệm bit trạng toàn

Trong dữ liệu nhận được (trong SPI và tôi ² C chế độ)[email protected] - 81 - Call 01266020790

Page 82: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 1 - Nhận hoàn tất. Việc đăng ký SSPBUF đầy; và 0 - Nhận được hoàn thiện. Việc đăng ký SSPBUF trống.

Trong quá trình truyền dữ liệu (trong I ² C chế độ chỉ) 1 - Dữ liệu truyền trong tiến trình (không bao gồm các bit ACK và STOP); và 0 - truyền dữ liệu hoàn chỉnh (không bao gồm các ACK bit và STOP).

SSPCON Đăng ký

Hình. 24/06 SSPCON Đăng ký

Viết WCOL Collision Detect bit 1 - Collision phát hiện. Một ghi vào sổ đăng ký SSPBUF đã cố gắng trong khi I ² C điều kiện là không hợp lệ cho một

truyền để bắt đầu, và 0 - Không có va chạm.

Nhận SSPOV Chỉ số bit Overflow 1 - Một byte mới nhận được trong khi đăng ký SSPSR vẫn giữ các dữ liệu trước đó. Vì không có không gian cho dữ

liệu mới nhận được, một trong hai byte phải được xóa. Trong trường hợp này, dữ liệu trong SSPSR bị mất, và 0 - dữ liệu nối tiếp là một cách chính xác nhận.

SSPEN - Kích hoạt tính năng đồng bộ Serial Port bit xác định các vi điều khiển các chân chức năng và khởi MSSP module:

Trong chế độ SPI 1 - Cho phép MSSP module và cấu hình các chân SCK, SDO, SDI và SS là nguồn của các chân cổng nối tiếp, và 0 - Vô hiệu hóa các module MSSP và cấu hình các chân như I / O port chân.

Trong chế độ I ² C 1 - Cho phép MSSP module và cấu hình các chân SDA và SCL là nguồn của các chân cổng nối tiếp, và 0 - Vô hiệu hóa các module MSSP và cấu hình các chân như I / O port chân.

CKP - Đồng hồ bit Chọn phân cực không được sử dụng trong I ² C chế độ master.

Trong chế độ SPI 1 - Idle nhà nước đối với đồng hồ là một cấp độ cao; và 0 - Idle nhà nước đối với đồng hồ là một cấp độ thấp.

Trong chế độ nô lệ I ² C 1 - Cho phép đồng hồ, và 0 - Giữ đồng hồ thấp. Được sử dụng để cung cấp thêm thời gian để ổn định dữ liệu.

SSPM3-SSPM0 - đồng bộ Serial Port Mode Chọn bit. chế độ SSP được xác định bằng cách kết hợp các bit này:

S S P M 3 S S P M 2 S S P M 1 S S P M 0 M O D E

0 0 0 0 SPI chế độ điều khiển, đồng hồ = Fosc / 40 0 0 1 SPI chế độ điều khiển, đồng hồ = Fosc/160 0 1 0 SPI chế độ điều khiển, đồng hồ = Fosc/640 0 1 1 SPI chế độ điều khiển, đồng hồ = (đầu ra TMR) / 20 1 0 0 Chế độ nô lệ SPI, SS pin điều khiển kích hoạt

0 1 0 1 Chế độ nô lệ SPI, SS kiểm soát pin tàn tật, SS có thể được sử dụng như là I / O pin

[email protected] - 82 - Call 01266020790

Page 83: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 0 1 1 0 I ² C chế độ slaver, 7-bit địa chỉ sử dụng0 1 1 1 I ² C chế độ slaver, 10-bit địa chỉ sử dụng1 0 0 0 Tôi ² chế độ master C, đồng hồ = Fosc / [4 (SSPAD +1)]1 0 0 1 Mặt nạ sử dụng trong chế độ nô lệ, tôi ² C1 0 1 0 Không được sử dụng1 0 1 1 I ² C chế độ kiểm soát tổng thể1 1 0 0 Không được sử dụng1 1 0 1 Không được sử dụng

1 1 1 0 I ² C chế độ nô lệ, 7-bit địa chỉ được sử dụng, START và STOP bit cho phép ngắt

1 1 1 1 I ² C chế độ nô lệ, 10-bit địa chỉ được sử dụng, START và STOP bit cho phép ngắt

Bảng 6-3 Chế độ đồng bộ Serial Port Bits ChọnSSPCON2 Đăng ký

Hình. 25/06 SSPCON2 Đăng ký

GCEN - Tổng Liên Bật bit

Trong chế độ nô lệ I ² C chỉ 1 - Cho phép làm gián đoạn khi một địa chỉ gọi chung chung (0000h) là nhận được trong SSPSR sự; và 0 - Tổng gọi địa chỉ vô hiệu hóa.

ACKSTAT - Thừa nhận bit trạng thái

Trong I ² C Master Phát chỉ chế độ 1 - Thừa nhận đã không nhận được từ nô lệ, và 0 - Thừa nhận đã nhận được từ nô lệ.

ACKDT - Ghi nhận dữ liệu bit

Trong I ² C Master nhận chế độ chỉ 1 - Không phải Thừa nhận; và 0 - Thừa nhận.

ACKEN - Thừa nhận tình trạng Bật bit

Trong I ² C Master Nhận thức 1 - Tiến hành xác nhận điều kiện về SDA và SCL chân và truyền tải dữ liệu ACKDT bit. Nó được tự động xóa bằng

phần cứng; và 0 - Thừa nhận tình trạng không phải là bắt đầu.

RCEN - Nhận Bật bit

Trong I ² C chỉ ở chế độ Master 1 - Cho phép dữ liệu nhận được trong I ² C chế độ; và

[email protected] - 83 - Call 01266020790

Page 84: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 0 - Nhận được vô hiệu hóa.

PEN - STOP điều kiện Enable bit

Trong I ² C chỉ ở chế độ Master 1 - những Kẻ STOP điều kiện về chân SDA và SCL. Sau đó, bit này được tự động xóa bằng phần cứng; và 0 - STOP điều kiện không khởi xướng.

RSEN - Điều kiện lặp đi lặp lại START Bật bit

Trong chế độ I ² C chỉ có chủ 1 - những Kẻ START điều kiện về chân SDA và SCL. Sau đó, bit này được tự động xóa bằng phần cứng; và 0 - lặp đi lặp lại tình trạng START không phải là bắt đầu.

SEN - START Điều kiện Bật / Stretch Bật bit

Trong I ² C chỉ ở chế độ Master 1 - Bắt đầu START điều kiện về chân SDA và SCL. Sau đó, bit này được tự động xóa bằng phần cứng; và 0 - START điều kiện không khởi xướng.

I ² C trong chế độ Master

Các trường hợp phổ biến nhất là khi vi điều khiển hoạt động như một tổng thể và thành phần ngoại vi như là một nô lệ. Đây là

lý do tại sao cuốn sách này chỉ bao gồm chế độ này. Nó cũng được coi là địa chỉ gồm có 7 bit và chỉ có một thiết bị vi điều

khiển (một tổng thể thiết bị).

Để kích hoạt MSSP module trong chế độ này, nó là cần thiết để làm như sau:

Thiết lập tốc độ baud (SSPADD đăng ký), tắt điều khiển tốc độ quay (bằng cách thiết lập bit SMP của SSPSTAT đăng ký) và

chế độ master chọn (SSPCON đăng ký). Sau khi chuẩn bị đã được hoàn thành và module đã được kích hoạt (SSPCON đăng

ký: SSPEN bit), ta nên chờ đợi tín hiệu điện tử nội bộ cho tất cả mọi thứ đã sẵn sàng để truyền dữ liệu, tức là các bit SSPIF

của PIR1 đăng ký được thiết lập.

bit này cần được xóa bằng phần mềm và sau đó, vi điều khiển đã sẵn sàng để bắt đầu "giao tiếp" với thiết bị ngoại vi.

[email protected] - 84 - Call 01266020790

Page 85: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 27/06 Tôi ² C trong chế độ MasterTruyền dữ liệu trong I ² Chế độ Master C

Mỗi tình trạng đồng hồ trên chân SDA bắt đầu với logic số không (0) sẽ xuất hiện khi cài đặt các bit SEN của SSPCON2 đăng

ký. Ngay cả khi kích hoạt, vi điều khiển đã phải chờ đợi một thời gian nhất định trước khi nó bắt đầu truyền thông. Đây là "điều

kiện bắt đầu" để gọi, trong đó các chế nội bộ và kiểm tra được thực hiện. Nếu có đủ điều kiện, các bit SSPIF của PIR1 được

thiết lập và truyền dữ liệu bắt đầu ngay khi đăng ký SSPBUF được tải.

Kể từ tối đa 112 mạch tích hợp đồng thời có thể chia sẻ cùng một đường truyền, các byte dữ liệu đầu tiên phải có địa chỉ mà

trận đấu chỉ có một thiết bị nô lệ. Mỗi thành phần có địa chỉ riêng của mình được liệt kê trong bảng dữ liệu thích hợp. Các bit

thứ tám của byte dữ liệu đầu tiên xác định hướng của dữ liệu truyền tải, vi điều khiển này là để gửi hoặc nhận dữ liệu. Trong

trường hợp này, đó là tất cả về dữ liệu nhận được và do đó bit thứ tám là logic không (0).

Hình. 6-28 Truyền số liệu trong I ² Chế độ Master C

[email protected] - 85 - Call 01266020790

Page 86: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Khi địa chỉ phù hợp xảy ra, vi điều khiển phải chờ cho nhận dữ liệu bit. Các thiết bị nô lệ xác nhận địa chỉ phù hợp bằng cách

xóa bit ASKSTAT của SSPCON2 đăng ký. Nếu trận đấu diễn ra đúng cách, tất cả các byte dữ liệu được truyền đại diện trong

cùng một cách.

Truyền dữ liệu kết thúc bằng cách thiết lập bit SEN của SSPCON2 đăng ký. Các STOP cái gọi là tình trạng xảy ra, cho phép

các chân SDA để nhận được tình trạng xung: Start - Địa chỉ - Ghi nhận - Dữ liệu - Ghi nhận dữ liệu .... - Ghi nhận - Dừng lại!

Fig.6-29 truyền dữ liệu trong I ² Chế độ Master CTiếp nhận dữ liệu trong I ² Chế độ Master C

Chuẩn bị cho dữ liệu nhận được tương tự như để truyền dữ liệu, với ngoại lệ là các bit cuối cùng của byte gửi đầu tiên (có địa

chỉ) là logic một (1). Nó xác định tổng thể mà hy vọng sẽ nhận được dữ liệu từ thiết bị nô lệ giải quyết. Đối với vi điều khiển,

các sự kiện sau đây xảy ra:

Sau khi chế nội bộ được hoàn thành và START bit được thiết lập, thiết bị nô lệ bắt đầu gửi một byte tại một thời điểm. Các

byte được lưu trữ trong các SSPSR đăng ký nối tiếp. Mỗi dữ liệu, sau khi nhận được bit cuối cùng thứ tám, nạp vào sổ đăng

ký SSPBUF từ nơi nó có thể được đọc. Bằng cách đọc này đăng ký, việc xác nhận bit được tự động gửi đi, có nghĩa là thiết bị

chủ đã sẵn sàng để nhận dữ liệu mới.

Cuối cùng, tương tự như truyền dữ liệu, dữ liệu nhận kết thúc bằng cách thiết lập bit STOP:

[email protected] - 86 - Call 01266020790

Page 87: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 60-30 Tiếp nhận dữ liệu trong I ² Chế độ Master C

Start - Địa chỉ - Ghi nhận - Dữ liệu - Ghi nhận .... Dữ liệu - Ghi nhận - Dừng lại!

Trong điều kiện này xung, sự thừa nhận bit được gửi tới thiết bị nô lệ.Tốc độ Baud Generator

Để đồng bộ hóa dữ liệu truyền dẫn, tất cả các sự kiện diễn ra trên chân SDA phải được đồng bộ với đồng hồ được tạo ra

trong thiết bị chủ.đồng hồ này được tạo ra bởi một bộ dao động có tần số đơn giản phụ thuộc vào tần số dao động chính của

vi điều khiển, giá trị ghi vào sổ đăng ký SSPADD và chế độ SPI hiện hành.

Các tần số đồng hồ của chế độ mô tả trong cuốn sách này phụ thuộc vào tinh thể thạch anh chọn và đăng ký SPADD. Các

công thức được sử dụng để tính toán nó được hiển thị trong hình dưới đây.

[email protected] - 87 - Call 01266020790

Page 88: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 6-31 Tốc độ Baud GeneratorGhi chú hữu ích ...

Khi vi điều khiển giao tiếp với các thành phần ngoại vi, có thể xảy ra là chuyển dữ liệu không vì lý do nào. Trong trường hợp

đó, bạn nên kiểm tra tình trạng của một số bit có thể làm rõ vấn đề. Trong thực tế, nhà nước của các bit này được kiểm tra

bằng cách thực hiện một chương trình con ngắn sau mỗi byte truyền tải và tiếp nhận (chỉ trong trường hợp).

WCOL (SPCON, 7) - Nếu bạn cố gắng viết một dữ liệu mới cho đăng ký SSPBUF trong khi một dữ liệu truyền / nhận là tiến

bộ, các bit WCOL sẽ được thiết lập và các nội dung của đăng ký SSPBUF không thay đổi. Viết không xảy ra. Sau này, các bit

WCOL phải được trừ vào phần mềm.

BF (SSPSTAT, 0) - Trong chế độ truyền, bit này được thiết lập khi CPU ghi vào sổ đăng ký SSPBUF và vẫn còn đặt cho đến

khi các byte ở dạng nối tiếp là chuyển từ việc đăng ký SSPSR. Trong nhận thức, bit này được thiết lập khi dữ liệu hoặc địa chỉ

được nạp vào đăng ký SSPBUF. Nó được xóa khi đăng ký SSPBUF được đọc.

SSPOV (SSPCON, 6) - Trong nhận thức, bit này được thiết lập khi một byte mới nhận được sổ đăng ký SSPSR qua giao tiếp

nối tiếp, trong khi nhận được dữ liệu trước đó đã không được đọc từ SSPBUF chưa đăng ký.

SDA và SCL Pins - Khi SPP module được kích hoạt, các chân này biến thành mở ra Drain. Nó có nghĩa là những chân phải

được kết nối với các điện trở đó, ở đầu kia, được kết nối để cung cấp năng lượng tích cực.

[email protected] - 88 - Call 01266020790

Page 89: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hình. 6-32 Open Drain Điện trở đầu ra

Trong ngắn hạn:

Để thiết lập giao tiếp nối tiếp trong chế độ I ² C, sau đây nên được thực hiện:Module Thiết lập và địa chỉ gửi:

Giá trị để xác định tốc độ truyền sẽ được ghi vào SSPADD đăng ký; Kiểm soát SlewRate nên được tắt bằng cách thiết lập bit SMP của SSPSTAT đăng ký; Để chọn chế độ Master, giá trị nhị phân 1000 nên được ghi vào các bit SSPM3-SSPM0 của SSPCON1 đăng ký; Các bit SEN của SSPCON2 đăng ký phải được thiết lập (START điều kiện); Các bit SSPIF được tự động đặt ở cuối START điều kiện khi mô-đun đã sẵn sàng để hoạt động. Nó sẽ được trừ; địa chỉ nô lệ nên được ghi vào SSPBUF đăng ký; và Khi byte được gửi, các bit SSPIF (ngắt) được tự động thiết lập khi xác nhận bit đã được nhận được từ các thiết bị nô

lệ.Truyền dữ liệu:

Dữ liệu được gửi sẽ được ghi vào SSPBUF đăng ký; Khi byte được gửi, các bit SSPIF (ngắt) được tự động thiết lập khi xác nhận bit đã được nhận được từ thiết bị phụ; và Để thông báo cho các thiết bị phụ mà truyền được hoàn tất, điều kiện STOP nên bắt đầu bằng cách thiết lập bit PEN

của SSPCON đăng ký.Nhận dữ liệu:

Để cho phép nhận các bit RSEN của SSPCON2 đăng ký phải được thiết lập; Các bit dữ liệu nhận được tín hiệu SSPIF. Khi dữ liệu được đọc trong sổ đăng ký SSPBUF, các bit ACKEN của

SSPCON2 đăng ký phải được thiết lập để cho phép gửi nhận bit; và Để thông báo cho thiết bị nô lệ mà truyền tải được hoàn tất, các điều kiện STOP nên bắt đầu bằng cách thiết lập bit

PEN của SSPCON đăng ký.

Email: [email protected] chủCông cụ phát triểnTrình biên dịchPhụ kiện đồngĐặc biệtDễ MuaẤn phẩmHỗ trợCác dự ánTải vềSách: bộ vi điều khiển PICTOCGiới thiệuCh. 1Ch. 2Ch. 3Ch 4.Ch. 5Ch. 6Ch. 7Ch. 8Ch. 9App. AApp. BApp. CChương 7: Module Analog

Ngoài một số lượng lớn các I / O dòng, các PIC16F887 bao gồm 14 đầu vào tương tự. Chúng cho phép các vi điều khiển để nhận ra, không chỉ có một pin được thúc đẩy để logic hoặc một số không (0 hoặc +5 V), nhưng chính xác đo điện áp của nó và chuyển đổi nó thành một giá trị số, tức là định dạng kỹ thuật số. Toàn bộ quy trình diễn ra trong / Một mô-đun chuyển đổi D trong đó có các tính năng sau đây:

chuyển đổi này tạo ra một kết quả nhị phân 10-bit bằng cách sử dụng các phương pháp xấp xỉ liên tục và lưu trữ các kết quả chuyển đổi vào sổ đăng ký ADC (ADRESL và ADRESH);Có 14 đầu vào riêng biệt tương tự;Các A / D chuyển đổi cho phép chuyển đổi một tín hiệu đầu vào tương tự với một đại diện nhị phân 10-bit của tín hiệu đó; vàBằng cách chọn tài liệu tham khảo điện áp VREF và VREF +, độ phân giải tối thiểu hoặc chất lượng của chuyển đổi có thể được điều chỉnh theo nhu cầu khác nhau.ADC Mode và Đăng ký

Mặc dù việc sử dụng một bộ chuyển đổi D / có vẻ là rất phức tạp, nó là cơ bản rất đơn giản, đơn giản hơn giờ sử dụng và module giao tiếp nối tiếp, anyway.

Hình. 7-1 Chế độ ADC và Đăng ký

Module này là dưới sự kiểm soát của các bit của bốn đăng ký:

ADRESH - Có chứa byte cao kết quả chuyển đổi;ADRESL - Có chứa byte thấp của kết quả chuyển đổi;ADCON0 - Kiểm soát đăng ký 0; và[email protected] - 89 - Call 01266020790

Page 90: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ADCON1 kiểm soát đăng ký 1ADRESH và Đăng ký ADRESL

Khi chuyển đổi một giá trị tương tự thành một kỹ thuật số một, kết quả của các A 10-bit chuyển đổi D / sẽ được lưu trữ trong hai sổ đăng ký. Để đối phó với giá trị này dễ dàng hơn, nó có thể xuất hiện trong hai định dạng trái và bên phải hợp lý hợp lý. Các bit ADFM của ADCON1 đăng ký xác định định dạng của kết quả chuyển đổi (xem hình 7-2). Trong trường hợp A / D chuyển đổi không được sử dụng, những đăng ký có thể được sử dụng như đăng ký mục đích chung.

Hình. 7-2 ADRESH và Đăng ký ADRESL

A / D Yêu cầu thu

Đối với Trung tâm để đáp ứng chính xác theo quy định của nó, nó là cần thiết để cung cấp một sự chậm trễ thời gian nhất định giữa các lựa chọn cụ thể và đo lường đầu vào tương tự chính nó. thời gian này được gọi là "mua thời gian" và chủ yếu phụ thuộc vào các trở kháng nguồn. Có một phương trình được sử dụng để tính toán chính xác thời gian này, mà trong số trường hợp xấu nhất với khoảng 20uS. Tóm lại, sau khi chọn (hoặc thay đổi) các đầu vào tương tự và trước khi bắt đầu chuyển đổi đó là cần thiết để cung cấp ít nhất 20uS trì hoãn thời gian để cho phép chuyển đổi tối đa độ chính xác ACD.

Đồng hồ thời kỳ ADC

Thời gian cần thiết để hoàn tất chuyển đổi một bit được định nghĩa là TAD. Các TAD yêu cầu phải có ít nhất 1,6 chúng tôi. Một toàn 10-bit A / D chuyển đổi lâu hơn một chút so với dự kiến và số tiền đến 11 giai đoạn TAD. Tuy nhiên, kể từ khi cả hai đồng hồ chuyển đổi tần số và mã nguồn được xác định bởi phần mềm, một trong những sự kết hợp sẵn các bit ADCS1 và ADCS0 cần được lựa chọn trước khi đo điện áp trên một số bắt đầu vào tương tự. Những bit này được lưu giữ trong sổ đăng ký ADCON0.

NGUỒN ĐỒNG HỒ ADC ADCS1 ADCS0 THIẾT BỊ TẦN SỐ (FOSC)20 Mhz 8 Mhz 4 Mhz 1 MhzFosc / 20 0 100 ns 250 ns 500 ns 2 chúng tôiFosc / 80 1 400 ns 1 chúng tôi 2 chúng tôi 8 chúng tôiFosc/321 0 1,6 chúng tôi 4 chúng tôi 8 chúng tôi 32 chúng tôiFRC 1 1 2-6 chúng tôi 2-6 chúng tôi 2-6 chúng tôi 2-6 chúng tôiBảng 7-1 ADC Đồng hồ thời kỳ

Bất kỳ sự thay đổi trong tần số đồng hồ hệ thống sẽ ảnh hưởng đến tần số đồng hồ ADC, mà bất lợi có thể ảnh hưởng đến kết quả ADC. Thiết bị đặc tính tần số được hiển thị trong bảng trên. Các giá trị trong các tế bào được tô đậm là ngoài giới hạn khuyến cáo.

Làm thế nào để sử dụng A / D Converter?

Để kích hoạt các A / D chuyển đổi để chạy mà không có vấn đề cũng như để tránh những kết quả bất ngờ, nó là cần thiết để xem xét sau đây:

A / D chuyển đổi không khác biệt giữa điện áp kỹ thuật số và analog. Để tránh sai sót trong đo lường, hư hỏng chip, các chân nên được cấu hình như đầu vào tương tự trước khi bắt đầu chuyển đổi. Các bit được sử dụng cho mục đích này được lưu trong sổ đăng ký Tris và ANSELH;Khi các cổng với đầu vào analog đánh dấu là CH0 CH13-được đọc, các bit tương ứng sẽ được đưa tới logic số không (0); vàKhoảng nói, điện áp đo lường trong chuyển đổi dựa trên so sánh điện áp đầu vào với quy mô nội bộ trong đó có 1.024 điểm (210 = 1024). Các nhãn hiệu quy mô thấp nhất là viết tắt của các VREF điện áp, trong khi điểm cao nhất là viết tắt của các VREF + điện áp. Hình 7-3 dưới đây cho thấy điện áp ám chỉ lựa chọn và tối thiểu và giá trị tối đa là tốt.

Hình. 7-3 Làm thế nào để sử dụng A / D Converter

ADCON0 Đăng ký

Hình. 7-4 Đăng ký ADCON0

[email protected] - 90 - Call 01266020790

Page 91: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ADCS1, ADCS0 - A / D chuyển đổi đồng hồ Chọn bit chọn tần số đồng hồ được sử dụng để đồng bộ hóa nội bộ của A chuyển đổi D /. Nó cũng ảnh hưởng đến thời gian chuyển đổi.

ADCS1 ADCS2 ĐỒNG HỒ0 0 Fosc / 20 1 Fosc / 81 0 Fosc/321 1 RC *Bảng 7-2 A / D chuyển đổi Bits Chọn

* Đồng hồ được tạo ra bởi bộ dao động nội bộ được xây dựng trong chuyển đổi.

CHS3-CHS0 - Analog Channel Chọn bit chọn một chân hoặc một kênh analog để chuyển đổi, tức là điện áp đo lường:

CHS3 CHS2 CHS1 CHS0 CHANNEL GHIM0 0 0 0 0 RA0/AN00 0 0 1 1 RA1/AN10 0 1 0 2 RA2/AN20 0 1 1 3 RA3/AN30 1 0 0 4 RA5/AN40 1 0 1 5 RE0/AN50 1 1 0 6 RE1/AN60 1 1 1 7 RE2/AN71 0 0 0 8 RB2/AN81 0 0 1 9 RB3/AN91 0 1 0 10 RB1/AN101 0 1 1 11 RB4/AN111 1 0 0 12 RB0/AN121 1 0 1 13 RB5/AN131 1 1 0 CVref1 1 1 1 VREF = 0.6VBảng 7-3 Tình trạng tương tự Channel Bits

GO / DONE - A / D chuyển đổi trạng thái bit xác định tình trạng hiện tại của chuyển đổi:

1 - A / D chuyển đổi được tiến; và0 - A / D chuyển đổi hoàn tất. bit này được tự động xóa bởi phần cứng khi các A / D chuyển đổi hoàn tất.Adon - A / D Ngày bit cho phép chuyển đổi A D /.

1 - A / D chuyển đổi được kích hoạt, và0 - A / D chuyển đổi là vô hiệu.ADCON1 Đăng ký

Hình. 7-5 Đăng ký ADCON1

ADFM - A / D Kết quả bit Format Chọn

1 - Chuyển đổi kết quả phải hợp lý. Sáu bit quan trọng nhất của ADRESLH không được sử dụng; và0 - Kết quả chuyển đổi trái lý. Sáu bit quan trọng nhất của ADRESL không được sử dụng.VCFG1 - Điện áp tham khảo bit chọn điện áp nguồn tham khảo tiêu cực cần thiết cho hoạt động chuyển đổi A D /.

1 - Phủ định tham chiếu điện áp trên pin-VREF; và0 - Điện áp cung cấp điện năng VSS được sử dụng như nguồn tham khảo điện áp âm.VCFG0 - Điện áp tham khảo bit chọn điện áp nguồn tham khảo tích cực cần thiết cho hoạt động chuyển đổi A D /.

1 - Tích cực tham chiếu điện áp được áp dụng trên VREF các + pin; và0 - Điện áp cung cấp điện VDD được sử dụng như là nguồn tích cực tham chiếu điện áp.Trong ngắn hạn:

[email protected] - 91 - Call 01266020790

Page 92: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để đo điện áp trên pin đầu vào của A chuyển đổi D / sau đây nên được thực hiện:

Bước 1 - Cấu hình cổng:

Viết một logic (1) để các bit tương ứng của Tris đăng ký để cấu hình nó như là đầu vào; vàViết một logic (1) để các bit tương ứng của Ansel đăng ký để cấu hình nó như là đầu vào tương tự.Bước 2 - Định cấu hình các module ADC:

Cấu hình điện áp tham chiếu trong ADCON1 đăng ký;Chọn ADC chuyển đổi đồng hồ trong ADCON0 đăng ký;Chọn một trong các kênh đầu vào CH0-CH13 của ADCON0 đăng ký;Chọn định dạng dữ liệu bằng cách sử dụng các bit ADFM của ADCON1 đăng ký; vàKích hoạt tính năng A / D chuyển đổi bằng cách thiết lập bit Adon của ADCON0 đăng ký.Bước 3 - Cấu hình ADC gián đoạn (tùy chọn):

Xóa bit ADIF; vàĐặt ADIE, PEIE và Giẻ bit.Bước 4 - Chờ cho thời gian mua lại yêu cầu (khoảng 20uS) để vượt qua.

Bước 5 - Bắt đầu chuyển đổi bằng cách thiết lập các GO / DONE chút ADCON0 sổ đăng ký.

Bước 6 - Chờ cho ADC chuyển đổi để hoàn thành.

Nó là cần thiết để kiểm tra trong vòng lặp chương trình xem các GO / pin Làm được xóa hoặc chờ một A / D gián đoạn (trước đây phải được kích hoạt).Bước 7 - Đọc ADC kết quả:

Đọc ADRESH và ADRESL đăng ký.Analog sánh

Ngoài Một chuyển đổi D /, có thêm một module, mà cho đến gần đây đã được nhúng chỉ trong mạch tích hợp, thuộc cái gọi là điện tử tương tự. Do thực tế là nó là khó có thể tìm thấy bất kỳ thiết bị tự động phức tạp hơn mà trong một số cách không sử dụng các mạch điện, hai so sánh chất lượng cao cùng với các thiết bị điện tử khác được tích hợp vào bộ vi điều khiển và kết nối với các chân của nó.

Làm thế nào mà so sánh hoạt động? Về cơ bản, những so sánh tương tự là một bộ khuếch đại mà so sánh độ lớn của điện áp hai đầu vào. Nhìn vào các tính năng vật lý của nó, nó có hai đầu vào và đầu ra một. Tùy thuộc vào đầu vào có điện áp cao hơn (giá trị tương tự), một logic không (0) hoặc một logic (1) (kỹ thuật số giá trị) sẽ xuất hiện trên đầu ra của nó:

Hình. 7-6 Analog sánh

Khi điện áp tương tự tại Vin-là cao hơn so với điện áp tương tự tại Vin +, đầu ra của bộ so sánh là mức thấp kỹ thuật số; vàKhi điện áp tương tự tại Vin + là cao hơn so với điện áp tương tự tại Vin-, đầu ra của bộ so sánh là một mức độ cao kỹ thuật số.Các vi điều khiển PIC16F887 có hai so sánh như thế mà đầu vào được kết nối với I / O pins RA0-RA3, trong khi đầu ra được kết nối với các chân RA4 và RA5. Ngoài ra đó cũng là một ám chỉ nguồn nội bộ chip điện áp trên chính nó, nhưng nó sẽ được thảo luận sau này.

Hai mạch được dưới sự kiểm soát của các bit được lưu giữ trong sổ đăng ký sau đây:

CM1CON0 là kiểm soát được so sánh C1;CM2CON0 là trong kiểm soát của C2 so sánh, vàCM2CON1 là trong kiểm soát của C2 so sánh.

Nguồn điện áp tham khảo nội bộ

Một trong hai điện áp tương tự được cung cấp trên các đầu vào so sánh là ổn định và không thay đổi thường. Bởi vì trong những tính năng nó được gọi là "điện áp tham chiếu" (VREF). Để tạo ra nó, cả bên ngoài và đặc biệt bên trong nguồn điện thế có thể được sử dụng. Sau khi chọn nguồn điện áp, VREF có nguồn gốc từ nó bằng phương tiện của mạng bậc thang gồm 16 [email protected] - 92 - Call 01266020790

Page 93: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM điện trở có hình thức chia điện áp. Các nguồn điện thế là lựa chọn thông qua cả hai đầu của chia rằng thông qua các bit VRSS của VRCON đăng ký.

Ngoài ra, phần điện áp cung cấp bởi mạng bậc thang điện trở có thể được lựa chọn thông qua các bit VR0-VR3 và sử dụng làm tài liệu tham khảo điện áp. Xem hình dưới đây.

Hình. 7-7 VREF

Các tham chiếu so sánh điện áp có 2 dãy với 16 cấp điện áp trong phạm vi từng. Phạm vi lựa chọn được điều khiển bởi các bit VRR của VRCON đăng ký. Các lựa chọn điện áp tham chiếu có thể được đầu ra cho các pin RA2/AN2.

Mặc dù các ý tưởng chính là để có được điện áp khác nhau tham chiếu cho hoạt động của mô-đun tương tự, một đơn giản A / D chuyển đổi thu được bằng cách đó quá. chuyển đổi này rất hữu ích trong một số tình huống.

Nó hoạt động dưới sự kiểm soát của VRCON đăng ký.

So sánh và hoạt động ngắt

Các bit cờ CMIF của PIR đăng ký được đặt trên tất cả các thay đổi của nhà nước về đầu ra có logic của bộ so sánh. Những thay đổi này cũng gây ra một ngắt nếu các bit được thiết lập sau đây:

CMIE bit của PIE đăng ký;PEIE chút INTCON sổ đăng ký; vàGiẻ bit của INTCON đăng ký.

Nếu ngắt được kích hoạt, bất kỳ thay đổi trên so sánh sản lượng của các vi điều khiển có thể thức dậy từ chế độ ngủ nếu nó được cài đặt trong chế độ đó.

CM1CON0 Đăng ký

Hình. 7-8 CM1CON0 Regsiter

Bit đăng ký này là kiểm soát được các so sánh C1. Nó chủ yếu là ảnh hưởng đến cấu hình của các đầu vào của nó. Để hiểu được nó tốt hơn, hãy nhìn vào con số 7-9 dưới đây cho thấy chỉ là một phần của điện tử trực tiếp bị ảnh hưởng bởi các bit của các đăng ký này.

Hình. 7-9 sánh C1 Enable Bit

C1ON - sánh C1 bit Kích hoạt tính năng cho phép so sánh C1.

1 - C1 sánh được kích hoạt, và0 - sánh C1 bị vô hiệu hóa.C1OUT - sánh C1 bit đầu ra là so sánh bit C1.

Nếu C1POL = 1 (đầu ra so sánh là ngược lại)

1 - điện áp tương tự tại C1Vin + là thấp hơn so với điện áp tương tự tại C1Vin; và0 - điện áp tương tự tại C1Vin + là cao hơn so với điện áp tương tự tại C1Vin-.Nếu C1POL = 0 (so sánh đầu ra là không đảo ngược)

1 - điện áp tương tự tại C1Vin + là cao hơn so với điện áp tương tự tại C1Vin; và0 - điện áp tương tự tại C1Vin + là thấp hơn so với điện áp tương tự tại C1Vin-.C1OE sánh C1 ra Enable bit.

1 - sánh sản lượng C1OUT được kết nối với pin C1OUT .*; và0 - sánh sản lượng nội bộ.

[email protected] - 93 - Call 01266020790

Page 94: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM * Để cho phép các bit C1OUT có mặt trên chân, hai điều kiện phải được đáp ứng: C1ON = 1 (so sánh phải được trên) và Tris tương ứng với bit = 0 (pin phải được cấu hình như đầu ra).

C1POL - sánh C1 đầu ra Chọn bit phân cực cho phép C1 đưa ra so sánh nhà nước để được đảo ngược.

1 - sánh C1 đầu ra là ngược lại; và0 - sánh C1 đầu ra là không đảo ngược.C1R - Chọn sánh C1 tham khảo bit

1 - không đảo ngược đầu vào C1Vin + được kết nối với C1Vref điện áp tham chiếu; và0 - không đảo ngược đầu vào C1Vin + được kết nối với pin + C1IN.C1CH1, C1CH0 - Channel Chọn sánh C1 bit

C1CH1 C1CH0 C1VIN-ĐẦU VÀO SO SÁNH0 0 Nhập C1Vin-được kết nối với pin-C12IN00 1 Nhập C1Vin-được kết nối với pin-C12IN11 0 Nhập C1Vin-được kết nối với pin-C12IN21 1 Nhập C1Vin-được kết nối với pin-C12IN3Bảng 7-4 sánh C1

CM2CON0 Đăng ký

Hình. 10/07 CM2CON0 Regsiter

Bit đăng ký này là kiểm soát được C2 so sánh. Tương tự như trường hợp trước, con số 7-11 cho thấy một đơn giản hóa sơ đồ của mạch bị ảnh hưởng bởi các bit của các đăng ký này.

Hình. 11/07 sánh C2 Sơ đồ

C2ON - Kích hoạt tính năng so sánh bit C2 C2 cho phép so sánh.

1 - C2 sánh được kích hoạt, và0 - C2 sánh bị vô hiệu hóa.C2OUT - bit đầu ra C2 sánh được so sánh sản lượng C2.

Nếu C2POL = 1 (so sánh đầu ra đảo ngược)

1 - điện áp tương tự tại C1Vin + là thấp hơn so với điện áp tương tự tại C1Vin; và0 - điện áp tương tự tại C1Vin + là cao hơn so với điện áp tương tự tại C1Vin-.Nếu C2POL = 0 (so sánh đầu ra không đảo ngược)

1 - điện áp tương tự tại C1Vin + là cao hơn so với điện áp tương tự tại C1Vin; và0 - điện áp tương tự tại C1Vin + là thấp hơn so với điện áp tương tự tại C1Vin-.C2OE - Kích hoạt tính năng sánh C2Output bit

1 - sánh sản lượng C2OUT được kết nối với pin C2OUT .*; và0 - sánh sản lượng nội bộ.* Để cho phép các bit C2OUT có mặt trên chân, hai điều kiện phải được đáp ứng: C2ON = 1 (so sánh phải được trên) và Tris tương ứng với bit = 0 (pin phải được cấu hình như đầu ra).

C2POL - sánh C2 ra Chọn bit Polarity C2 cho phép so sánh nhà nước đưa ra được đảo ngược.

1 - C2 sánh đầu ra là ngược lại; và0 - C2 sánh đầu ra là không đảo ngược.C2R - Chọn sánh C2 tham khảo bit

1 - không đảo ngược đầu vào C2Vin + được kết nối với C2Vref điện áp tham chiếu; và0 - không đảo ngược đầu vào C2Vin + được kết nối với pin + [email protected] - 94 - Call 01266020790

Page 95: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM C2CH1, C2CH0 sánh C2 Channel Chọn bit

C2CH1 C2CH0 C2VIN-ĐẦU VÀO SO SÁNH0 0 Nhập C2Vin-được kết nối với pin-C12IN00 1 Nhập C2Vin-được kết nối với pin-C12IN11 0 Nhập C2Vin-được kết nối với pin-C12IN21 1 Nhập C2Vin-được kết nối với pin-C12IN3Bảng 7-5 sánh C2 Channel Chọn Bit

CM2CON1 Đăng ký

Hình. 12/07 CM2CON1 Đăng ký

MC1OUT Mirror Bản sao bit C1OUT

MC2OUT Mirror Bản sao bit C2OUT

C1RSEL sánh C1 tham khảo Chọn bit

1 - Lựa chọn CVref điện áp được sử dụng trong nguồn điện thế C1Vref tham chiếu; và0 - 0.6V tham chiếu cố định điện áp được sử dụng trong nguồn điện thế C1Vref tham khảo.C2RSEL - Chọn sánh C2 tham khảo bit

1 - Lựa chọn CVref điện áp được sử dụng trong nguồn điện thế C2Vref tham chiếu; và0 - 0.6V tham chiếu cố định điện áp được sử dụng trong nguồn điện thế C2Vref tham khảo.T1GSS - Nguồn Chọn timer1 Gate bit

1 - Timer T1gate nguồn T1G; và0 - Timer T1gate nguồn là so sánh SYNCC2OUT.C2SYNC - sánh C2 ra đồng bộ hóa bit

1 - sánh sản lượng C2 được đồng bộ để giảm cạnh đồng hồ TMR1 Timer và0 - sánh đầu ra là tín hiệu không đồng bộ.VRCON Đăng ký

Hình. 13/07 VRCON Đăng ký

VREN C1 sánh điện áp tham khảo Bật bit

1 - Điện áp nguồn tham khảo CVref được bật lên, và0 - Điện áp nguồn tham khảo CVref đang tắt.VROE C2 sánh điện áp tham khảo Bật bit

1 - Điện áp CVref tham chiếu được kết nối với pin; và0 - Điện áp CVref tham chiếu là bị ngắt kết nối từ chân.VRR - CVref Phạm vi lựa chọn bit

1 - Điện áp nguồn tham khảo được thiết lập là phạm vi thấp; và0 - Điện áp nguồn tham khảo được thiết lập là phạm vi cao.VRSS - Phạm vi lựa chọn sánh VREF bit

1 - nguồn điện áp tham chiếu là trong khoảng VREF + để VREF; và0 - nguồn điện áp tham chiếu là trong phạm vi của VDD - VSS (Nguồn cung cấp điện áp).VR3 - VR0 CVref giá trị lựa chọn

Nếu VRR = 1 (ít nhiều)

Điện áp tham chiếu được tính bằng công thức: CVref = ([VR3: VR0] / 24) [email protected] - 95 - Call 01266020790

Page 96: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Nếu VRR = 0 (cao tầm)

Điện áp tham chiếu được tính bằng công thức: CVref = VDD / 4 + ([VR3: VR0] / 32) VDD

Trong ngắn hạn:

Để sử dụng đúng cách xây dựng trong so sánh, nó là cần thiết để làm như sau:

Bước 1 - Cấu hình module:

Để chọn chế độ thích hợp, các bit của CM1CON0 đăng ký và CM2CON0 nên được cấu hình. Gián đoạn nên được vô hiệu hoá trên bất kỳ thay đổi của chế độ.Bước 2 - Cấu hình tham khảo nội bộ VREF nguồn điện áp (chỉ khi sử dụng). Trong VRCON đăng ký nó là cần thiết để:

Chọn một trong hai dãy điện áp bằng cách sử dụng các bit VRR;Cấu hình cần thiết VREF sử dụng bit VR3 - VR0;Đặt VROE bit, nếu cần thiết; vàKích hoạt tính năng mã nguồn VREF điện áp bằng cách thiết lập bit VREN.Công thức dùng để tính toán điện áp tham khảo:

VRR = 1 (ít nhiều)CVref = ([VR3: VR0] / 24) VLADDER

VRR = 0 (cao tầm)CVref = (VLADDER / 4) + ([VR3: VR0] VLADDER/32)

Vladder = VDD hoặc ([VREF +] - [VREF-]) hoặc VREF +

Bước 3 - Bắt đầu hoạt động:

Kích hoạt tính năng gián đoạn bằng cách thiết lập bit CMIE (PIE đăng ký), PEIE và Giẽ (cả hai vào sổ đăng ký INTCON);Tìm hiểu bit C1OUT và C2OUT của CMCON đăng ký; vàĐọc cờ bit CMIF của PIR đăng ký. Sau khi được thiết lập, bit này được trừ vào phần mềm.Chương 8: Các mạch của MCUDao động

Như đã thấy trong hình dưới đây, tín hiệu đồng hồ có thể được tạo ra bởi một trong hai được xây dựng trong dao động.

[email protected] - 96 - Call 01266020790

Page 97: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 8-1 Hai xây dựng máy tạo dao động

Một bộ dao động bên ngoài được cài đặt trong vi điều khiển và kết nối với các chân và OSC2 OSC1. Nó được gọi là "bên

ngoài" bởi vì nó dựa trên mạch điện bên ngoài để các tín hiệu đồng hồ và ổn định tần số, chẳng hạn như một bộ dao động một

mình đứng, lít tinh thể, cộng hưởng gốm hoặc tụ điện mạch điện trở. Các chế độ dao động được chọn bởi các bit của byte

được gửi trong lập trình, như vậy gọi là cấu hình Word.

Bộ dao động nội bộ bao gồm hai riêng biệt, máy tạo dao động nội bộ:

HFINTOSC là một nội bộ dao động tần số cao mà hoạt động ở 8MHz. Các vi điều khiển có thể sử dụng nguồn đồng hồ được

tạo ra ở tần số đó hoặc sau khi được chia prescaler; và

LFINTOSC là thấp tần số dao động nội bộ mà hoạt động tại 31 kHz. nguồn đồng hồ của nó được sử dụng cho chó-xem và

thời gian điện-up nhưng nó cũng có thể được sử dụng như một nguồn đồng hồ cho các hoạt động của toàn bộ vi điều khiển.

Đồng hồ hệ thống có thể được chọn từ các nguồn bên ngoài hoặc bên trong đồng hồ qua các bit (SCS) Hệ thống đồng hồ

chọn của OSCCON đăng ký.OSCCON Đăng ký

Việc đăng ký OSCCON điều khiển đồng hồ hệ thống và các tùy chọn lựa chọn tần số. Nó bao gồm các bước sau: tần số bit

lựa chọn (IRCF2, IRCF1, IRCF0), tần số bit trạng thái (HTS, LTS), hệ thống điều khiển đồng hồ bit (OSTA, SCS).

[email protected] - 97 - Call 01266020790

Page 98: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 8-2 Đăng ký OSCCON

IRCF2-0 - Chọn tần số dao động bit. Nội kết hợp của ba bit xác định tỷ lệ chia. Các tần số đồng hồ của bộ dao động nội bộ

cũng được xác định theo cách này.

I R C F 2 I R C F 1 I R C F 0 T Ầ N S Ố O S C .

1 1 1 8 MHz HFINTOSC1 1 0 4 MHz HFINTOSC1 0 1 2 MHz HFINTOSC1 0 0 1 MHz HFINTOSC0 1 1 500 kHz HFINTOSC0 1 0 250 kHz HFINTOSC0 0 1 125 kHz HFINTOSC0 0 0 31 kHz LFINTOSC

Bảng 8-1 Tần số dao động nội Bits Chọn

OSTS - Oscillator Start-up Thời gian-hiện trạng bit chỉ có nguồn đồng hồ hiện đang sử dụng. bit này có thể đọc được mà

thôi. 1 - đồng hồ bên ngoài bộ dao động đang được sử dụng; và 0 - Một trong những dao động đồng hồ sinh học được sử dụng (HFINTOSC hoặc LFINTOSC).

HTS - HFINTOSC Tình trạng bit (8 MHz - 125 kHz) cho thấy có tần số cao dao động nội bộ hoạt động trong một cách ổn

định. 1 - HFINTOSC là ổn định; và 0 - HFINTOSC không ổn định.

LTS - LFINTOSC ổn định bit (31 kHz) cho thấy có tần số thấp dao động nội bộ hoạt động trong một cách ổn định. 1 - LFINTOSC là ổn định; và 0 - LFINTOSC không ổn định.

SCS - Hệ thống đồng hồ Chọn bit xác định dao động được sử dụng như một nguồn đồng hồ. 1 - bộ dao động nội bộ được sử dụng cho đồng hồ hệ thống; 0 - bộ dao động bên ngoài được sử dụng cho đồng hồ hệ thống; và 

Các chế độ dao động được thiết lập bởi các bit trong cấu hình Word mà được ghi vào bộ nhớ trong quá trình lập trình vi điều khiển.

Chế độ đồng hồ bên ngoài

Để kích hoạt các bộ dao động bên ngoài để hoạt động ở tốc độ khác nhau và sử dụng các thành phần khác nhau để ổn định

tần số, nó có thể được cấu hình để hoạt động trong một vài chế độ. lựa chọn chế độ được thực hiện sau khi chương trình viết

và biên soạn. Trước hết, nó là cần thiết để kích hoạt chương trình trên máy tính được sử dụng để lập trình. Trong trường hợp

[email protected] - 98 - Call 01266020790

Page 99: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM này, PICflash. Nhấp vào Combox dao động và chọn một tùy chọn từ danh sách thả xuống. Sau đó, các bit thích hợp sẽ được

thiết lập theo cách đó trở thành một phần của một vài byte có cùng hình thức cấu hình Word.

Trong thời gian lập trình, các byte của Config Word được ghi vào bộ nhớ ROM của vi điều khiển và lưu giữ trong sổ đăng ký

đặc biệt mà không có sẵn cho người dùng. Trên cơ sở của các bit, vi điều khiển "biết" phải làm gì, mặc dù nó không rõ ràng

quy định trong chương trình (bằng văn bản).

Hinh8-3 Chương trình PICflash

Ngoài chế độ dao động trong TMĐT

Các đồng hồ bên ngoài (EC) chế độ sử dụng các nguồn đồng hồ hệ thống cấu hình từ bộ dao động bên ngoài. Các tần số của

nguồn đồng hồ là không giới hạn (0 - 20MHz).

[email protected] - 99 - Call 01266020790

Page 100: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hình. 8-4 ngoài Oscillator

Hình thức này có ưu điểm sau: Nguồn đồng hồ bên ngoài được kết nối với các đầu vào OSC1 và OSC2 có sẵn cho mục đích chung I / O; Nó có thể đồng bộ hóa các hoạt động của vi điều khiển với phần còn lại của hội đồng quản trị về điện tử; Trong chế độ này, vi điều khiển bắt đầu hoạt động ngay lập tức sau khi điện được bật lên. Không có sự chậm trễ cần

thiết để ổn định tần số; và Tạm dừng đầu vào đồng hồ bên ngoài có tác dụng ngăn chặn điện thoại trong khi để lại tất cả dữ liệu còn nguyên

vẹn.Sau khi khởi động lại đồng hồ bên ngoài, thiết bị các hồ sơ hoạt động như không có gì đã xảy ra.

Hình. 8-5 ngoài dao động trong chế độ ECBên ngoài dao động trong LP, XT hoặc chế độ HS

Hình. 8-6 Hai loại Oscillators ngoài

Các LP, XT và HS các chế độ hỗ trợ việc sử dụng bộ dao động nội bộ cho các cấu hình nguồn đồng hồ. Tần số của nguồn

này được xác định bằng tinh thể thạch anh hoặc cộng hưởng gốm kết nối với các chân OSC1 và OSC2. Tùy thuộc vào tính

năng của các thành phần trong sử dụng, chọn một trong các phương thức sau đây:

Chế độ LP (Low Power) được sử dụng với tần số thạch anh tinh thể chỉ thấp. Chế độ này được thiết kế để lái xe chỉ 32,768

kHz tinh thể thường được nhúng trong đồng hồ thạch anh. Nó rất dễ dàng nhận ra chúng bởi kích thước nhỏ và hình dạng

hình trụ cụ thể. Việc tiêu thụ hiện nay là ít nhất trong ba chế độ:

[email protected] - 100 - Call 01266020790

Page 101: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM chế độ XT được sử dụng với tần số thạch anh tinh thể trung cấp lên tới 8 MHz. Việc tiêu thụ hiện nay là phương tiện của ba

chế độ, và

Chế độ HS (High Speed) được sử dụng với tần số thạch anh tinh thể cao hơn 8 MHz. Việc tiêu thụ hiện tại là cao nhất trong

ba chế độ.

Hinh8-7 đồ của dao động bên ngoài và thành phần bên ngoài bổ sung

Gạch cộng hưởng trong XT hoặc chế độ HS

Hinh8-8 Gạch tiê ng kêu vang

Gạch được cộng hưởng bởi tính năng của chúng tương tự như tinh thể thạch anh. Đây là lý do tại sao họ được kết nối trong

cùng một cách.Không giống như các tinh thể thạch anh, họ đang rẻ hơn và dao động có chứa các chất có những đặc điểm

một chút tồi tệ hơn. Chúng được sử dụng cho các tần số đồng hồ khác nhau, từ 100 kHz và 20 MHz.Bên ngoài dao động ở chế độ RC và RCIO

Có rất nhiều lợi thế nhất định trong việc sử dụng các yếu tố để ổn định tần số, nhưng đôi khi họ có thực sự không cần

thiết. Nó là chủ yếu là đủ mà dao động các hoạt động ở tần số không xác định chính xác để nhúng các phần tử đó có nghĩa là

một sự lãng phí đắt tiền. Các giải pháp đơn giản và rẻ nhất trong các tình huống này là sử dụng một điện trở và một tụ điện

cho hoạt động của bộ dao động. Có hai chế độ:

[email protected] - 101 - Call 01266020790

Page 102: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

chế độ RC. Trong chế độ RC, mạch RC được kết nối với pin OSC1 như thể hiện trong hình. Các pin OSC2 đầu ra tần số dao

động RC chia cho 4. Tín hiệu này có thể được sử dụng để đồng bộ, hiệu chuẩn hoặc các yêu cầu ứng dụng khác.

Hình. 8-9 Chế độ RC

RCIO chế độ. Tương tự như trường hợp trước, các mạch RC được kết nối với pin OSC1. Thời gian này, các OSC2 pin có

sẵn được sử dụng như mục đích chung thêm I / O pin.

Hình. Chế độ 8-10 RCIO

Trong cả hai trường hợp, bạn nên sử dụng các thành phần như trong hình.

Các tần số dao động đó được tính theo công thức f = 1 / T trong đó:

f = tần số [Hz]

T = R * C = thời gian cố định [s]

R = điện trở kháng [Ω]

C = tụ điện công suất [F]Chế độ đồng hồ nội bộ

Các mạch dao động nội bộ bao gồm hai dao động riêng biệt mà có thể được chọn là nguồn đồng hồ hệ thống:

Các HFINTOSC dao động là nhà máy kiểm định và hoạt động ở 8 MHz. tần số của nó có thể được người dùng điều chỉnh

thông qua phần mềm bằng cách sử dụng bit của OSCTUNE đăng ký; và

Các LFINTOSC dao động không phải là nhà máy hiệu chuẩn và hoạt động ở 31kHz.

Tương tự như các bộ dao động bên ngoài, một trong những nội bộ cũng có thể hoạt động trong nhiều chế độ. Hình thức này

được chọn trong cùng một cách như trong trường hợp bên ngoài bằng cách sử dụng bộ dao động-bit của Word Config đăng

ký. Nói cách khác, tất cả mọi thứ được thực hiện trong phần mềm máy tính, ngay lập tức trước khi viết chương trình cho vi

điều khiển bắt đầu.

[email protected] - 102 - Call 01266020790

Page 103: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Nội bộ dao động trong chế độ INTOSC

Trong chế độ này, các pin OSC1 có sẵn như là mục đích chung I / O trong khi pin OSC2 kết quả đầu ra được lựa chọn tần số

dao động nội bộ chia cho 4.

Hình. 11/08 INTOSC Mode

Nội bộ dao động trong chế độ INTOSCIO

Trong chế độ này, cả hai chân có sẵn cho mục đích chung I / O.

Hình. 12/08 INTOSCIO ModeCài đặt nội Oscillator

Các bộ dao động nội bộ bao gồm hai mạch riêng biệt.

1. Các cao tần số dao động nội bộ HFINTOSC được kết nối với các postscaler (tần số chia). Đây là nhà máy hiệu chuẩn và

hoạt động ở 8MHz. Sử dụng postscaler, bộ dao động này có thể sản xuất các nguồn đồng hồ tại một trong bảy tần số có thể

được lựa chọn thông qua phần mềm sử dụng IRCF2, IRCF1 và chân IRCF0 của OSCCON đăng ký.

Các HFINTOSC được kích hoạt bằng cách chọn một trong bảy tần số (từ 8 MHz và kHz 125) và thiết lập hệ thống đồng hồ

Source (SCS) bit của OSCCON đăng ký sau đó. Như đã thấy trong hình dưới đây, tất cả mọi thứ được thực hiện bằng cách

sử dụng bit của OSCCON đăng ký.

[email protected] - 103 - Call 01266020790

Page 104: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 13/08 dao động nội bộ cài đặt

2. Các bộ dao động tần số thấp LFINTOSC là uncalibrated và hoạt động tại 31 kHz. Nó được kích hoạt bằng cách chọn tần số

này (bit của OSCCON đăng ký) và thiết lập các bit SCS của cùng một đăng ký.Hai tốc độ đồng hồ Start-up Mode

Hai chế độ đồng hồ tốc độ khởi động được sử dụng để cung cấp tiết kiệm năng lượng bổ sung khi vi điều khiển các hoạt động

trong chế độ ngủ. Đây là gì tất cả về?

Khi cấu hình để hoạt động trong LP, XT hoặc HS các chế độ, các bộ dao động bên ngoài sẽ được tắt về quá trình chuyển đổi

vào giấc ngủ để giảm tiêu thụ điện năng tổng thể của thiết bị.

Khi điều kiện để thức tỉnh được đáp ứng, các vi điều khiển sẽ không ngay lập tức bắt đầu hoạt động bởi vì nó có phải chờ tín

hiệu tần số đồng hồ để trở thành ổn định. Như sự chậm trễ kéo dài chính xác các xung 1024. Sau đó, số tiền thu được vi điều

khiển với chương trình thực hiện. Vấn đề là rất thường xuyên chỉ là một vài hướng dẫn được thực hiện trước khi các vi điều

khiển được thiết lập để chế độ ngủ lại.Nó có nghĩa là phần lớn thời gian cũng như năng lượng lấy từ pin là lãng phí. Vấn đề

này được giải quyết bằng cách sử dụng bộ dao động nội bộ để thực hiện chương trình, trong khi các xung 1024 được

tính. Sau đó, ngay khi tần số dao động bên ngoài trở nên ổn định, nó sẽ tự động tiến hành "vai trò hàng đầu". Toàn bộ quá

trình được kích hoạt bằng cách thiết lập một bit của từ cấu hình. Để chương trình vi điều khiển nó là cần thiết để chọn Int-Ext

chuyển mạch tùy chọn trong phần mềm.

[email protected] - 104 - Call 01266020790

Page 105: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hinh8-14 Kích hoạt tính năng chuyển mạch Int-Ext

Fail-Safe Clock Monitor

Các Fail-Safe Clock Monitor (FSCM) giám sát hoạt động của bộ dao động bên ngoài và cho phép bộ vi điều khiển để tiến hành

thực hiện chương trình ngay cả các bộ dao động bên ngoài không vì lý do nào. Trong trường hợp này, các bộ dao động nội bộ

mất hơn vai trò của mình.

[email protected] - 105 - Call 01266020790

Page 106: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Hình. 15/08 Fail-Safe Clock Monitor

Màn hình đồng hồ không an toàn phát hiện một bộ dao động không bằng cách so sánh các nguồn đồng hồ bên trong và bên

ngoài. Trong trường hợp phải mất hơn 2ms cho đồng hồ dao động bên ngoài tới, các nguồn đồng hồ sẽ được tự động chuyển

sang. Các bộ dao động nội bộ do đó sẽ tiếp tục hoạt động kiểm soát bởi các bit của OSCCON đăng ký. Khi bit OSFIE của

PIE2 đăng ký được thiết lập, một gián đoạn sẽ được tạo ra. Đồng hồ hệ thống sẽ tiếp tục được lấy từ đồng hồ nội bộ cho đến

khi thành công thiết bị khởi động lại các bộ dao động bên ngoài và chuyển trở lại hoạt động bên ngoài.

Tương tự như vậy với các trường hợp trước đó, module này được kích hoạt bằng cách thay đổi cấu hình từ trước khi bắt đầu

các chương trình của chip. Thời gian này, nó được thực hiện bằng cách chọn CLK Fail-Safe. Màn hình tùy chọn.

Hình. 16/08 Kích hoạt Màn hình đồng hồ Fail-SafeOSCTUNE Đăng ký

Sửa đổi trong đăng ký OSCTUNE ảnh hưởng đến tần số HFINTOSC, nhưng không phải tần số LFINTOSC. Hơn nữa, không

có dấu hiệu cho thấy trong khi hoạt động mà sự thay đổi đã xảy ra.

Hình. 17/08 OSCTUNE Đăng ký

TUN4 - TUN0 Tần số Tuning bit. Bằng cách kết hợp những năm bit, tần số dao động thay đổi 8MHz. Bằng cách này, các tần

số thu được bằng cách phân chia của nó trong sự chuyển đổi postscaler quá.

T U N 4 T U N 3 T U N 2 T U N 1 T U N 0 T Ầ N S Ố

0 1 1 1 1 Tối đa0 1 1 1 0

[email protected] - 106 - Call 01266020790

Page 107: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 0 1 1 0 1  0 0 0 0 10 0 0 0 0 Hiệu chuẩn1 1 1 1 1  1 0 0 1 01 0 0 0 11 0 0 0 0 Tối thiểu

Bảng 8-2 Tần số Tuning BitsEEPROM

EEPROM không phải là một phần của bộ nhớ chương trình (ROM), cũng không nhớ dữ liệu (RAM), nhưng bộ nhớ một đoạn

đặc biệt. Ngay cả các địa điểm này bộ nhớ không phải là dễ dàng và nhanh chóng truy cập như sổ khác, họ có tầm quan trọng

rất lớn bởi vì các dữ liệu EEPROM là vĩnh viễn lưu (sau khi có điện sẽ tắt). dữ liệu EEPROM có thể cũng thay đổi bất cứ lúc

nào. Vì những tính năng đặc biệt, mỗi byte của EEPROM có giá trị.

Các vi điều khiển PIC16F887 có 256 địa điểm của dữ liệu EEPROM kiểm soát bởi các bit của các thanh ghi sau đây: EECON1 (Kiểm soát đăng ký); EECON2 (Kiểm soát đăng ký); EEDAT (lưu dữ liệu đã sẵn sàng để viết và đọc), và EEADR (lưu địa chỉ của EEPROM vị trí để được truy cập).

Ngoài ra, EECON2 là không đúng đăng ký, nó không thể chất tồn tại. Nó được sử dụng trong trình tự viết chương trình duy

nhất.

Các EEDATH và EEADRH đăng ký thuộc cùng một nhóm như là đăng ký sử dụng trong EEPROM viết và đọc. Cả hai người

trong số họ do đó được sử dụng cho chương trình (FLASH) bộ nhớ viết và đọc.

Từ này được xem là một khu vực có nguy cơ (bạn chắc chắn không muốn vi điều khiển của bạn vô tình xóa chương trình của

bạn), chúng tôi sẽ không thảo luận về nó nữa, nhưng khuyên bạn hãy cẩn thận.EECON1 Đăng ký

Hinh8-18 EECON1 Đăng ký

EEPGD - Chương trình / bit dữ liệu EEPROM Chọ[email protected] - 107 - Call 01266020790

Page 108: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM 1 - Chương trình truy cập bộ nhớ, và 0 - truy cập bộ nhớ EEPROM.

WRERR - EEPROM Lỗi Flag bit 1 - Viết hoạt động là quá sớm chấm dứt và lỗi đã xảy ra, và 0 - truy cập bộ nhớ EEPROM.

Wren - EEPROM Viết Enable bit. 1 - Viết cho dữ liệu EEPROM cho phép; và 0 - Viết thư cho dữ liệu EEPROM tàn tật.

WR - Viết bit kiểm soát 1 - những Kẻ viết thư cho dữ liệu EEPROM; và 0 - Viết cho EEPROM dữ liệu hoàn tất.

RD - Đọc bit kiểm soát 1 - những Kẻ đọc từ dữ liệu EEPROM; và 0 - Đọc từ dữ liệu EEPROM tàn tật.

Đọc từ bộ nhớ EEPROM

Để đọc được bộ nhớ EEPROM dữ liệu, thực hiện theo các thủ tục dưới đây:

Bước 1: Viết một địa chỉ (00h - FFh) cho EEADR đăng ký;

Bước 2: Chọn bộ nhớ EEPROM chặn bằng cách xóa bit EEPGD của EECON1 đăng ký;

Bước 3: Để biết vị trí, thiết lập các bit RD của cùng một đăng ký; và

Bước 4: Dữ liệu được lưu trữ trong EEDAT đăng ký và sẵn sàng để sử dụng.

Ví dụ sau đây minh họa dữ liệu EEPROM đọc:

BSF STATUS, RP1; BCF STATUS, RP0; truy cập ngân hàng 2 MOVF ĐỊA CHỈ, W; Di chuyển địa chỉ cho đăng ký W MOVWF EEADR; Viết địa chỉ BSF STATUS, RP0; truy cập ngân hàng 3 BCF EECON1, EEPGD; Chọn EEPROM BSF EECON1, RD; Đọc dữ liệu BCF STATUS, RP0; truy cập ngân hàng 2 MOVF EEDATA, W, dữ liệu được lưu trữ trong đăng ký W

Viết thư cho bộ nhớ dữ liệu EEPROM

Để ghi dữ liệu vào bộ nhớ EEPROM, trước tiên là cần thiết để ghi các địa chỉ cho đăng ký EEADR dữ liệu đầu tiên và đến

EEDAT đăng ký sau đó. Sau đó, bạn phải tuân theo một trình tự đặc biệt để bắt đầu viết cho mỗi byte. Ngắt phải được vô hiệu

hóa trong quá trình này.

Dữ liệu EEPROM viết được minh họa trong ví dụ dưới đây:

BSF STATUS, RP1 STATUS BSF, RP0 BTFSC EECON, WR1; Chờ cho trước đây viết để hoàn thành GOTO $ -1; BCF STATUS, RP0; Ngân hàng 2 MOVF ĐỊA CHỈ, W; Di chuyển địa chỉ để W MOVWF EEADR; Viết địa chỉ MOVF DATA, W ; Di chuyển dữ liệu đến W MOVWF EEDATA; Ghi dữ liệu BSF STATUS, RP0; Ngân hàng 3 BCF EECON1, EEPGD; Chọn EEPROM BSF EECON1, Wren; Viết thư cho EEPROM kích hoạt BCF INCON, Giẻ; Tất cả các ngắt bị vô hiệu hoá MOVLW 55h; Yêu cầu trình tự bắt đầu MOVWF MOVLW EECON2 aah MOVWF EECON2; yêu cầu kết thúc chuỗi BSF EECON1, WR BSF INTCON, Giẻ; ngắt kích hoạt EECON1 BCF, Wren; Viết thư cho EEPROM tàn tật

Thiết lập lại! Black-out, Brown-out hoặc Tiếng ồn?

Ngày thiết lập lại, vi điều khiển ngay lập tức ngừng hoạt động và xóa sổ đăng ký của mình. Thiết lập tín hiệu có thể được tạo

ra bên ngoài ở bất kỳ thời điểm (mức logic thấp trên chân MCLR). Nếu cần thiết nó cũng có thể được tạo ra bởi logic kiểm

soát nội bộ. Power-on luôn gây được đặt lại. Cụ thể, vì nhiều sự kiện chuyển tiếp đó diễn ra khi nguồn cung cấp được trên

(chuyển liên hệ với nhấp nháy và lấp lánh, điện áp tăng chậm, dần dần ổn định tần số đồng hồ vv), nó là cần thiết để cung cấp

một sự chậm trễ thời gian nhất định trước khi bắt đầu hành vi điều khiển. Hai giờ nội bộ-PWRT và OST phụ trách đó. Người

đầu tiên có thể được kích hoạt hay vô hiệu hóa bằng văn bản trong chương trình. Kịch bản như sau:

[email protected] - 108 - Call 01266020790

Page 109: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Khi điện áp cung cấp điện đạt 1,2 - 1.7V, một mạch điện gọi là Power-upgiờ reset lại vi điều khiển trong vòng khoảng

72mS. Ngay sau khi thời gian này đã hết, tín hiệu đặt lại tạo ra một bộ đếm thời gian gọi là bắt đầu dao động lên bộ đếm

thời gian trong giai đoạn 1024 bộ dao động thạch anh.Khi sự chậm trễ này là hơn (đánh dấu là T thiết lập lại trong hình) và

các chân MCLR được đặt cao, vi điều khiển bắt đầu thực hiện lệnh đầu tiên trong chương trình.

Hình. 19/08 dao động Start-Up Thời gian trễ

Bên cạnh đó điều khiển "thiết lập lại" xảy ra tại thời điểm quyền lực diễn ra, có thêm hai thiết lập lại được gọi là Black-

out và Brown ra- có thể xảy ra trong quá trình hoạt động cũng như tại thời điểm điện sẽ tắt.Black-out reset

Black-ra thiết lập lại diễn ra khi nguồn điện thông thường sẽ tắt. Trong trường hợp đó, vi điều khiển không có thời gian để làm

bất cứ điều gì không thể đoán trước một cách đơn giản bởi vì điện áp giảm xuống rất nhanh bên dưới giá trị tối thiểu của

nó.Trong các từ khác, ánh sáng sẽ tắt, rèm rơi xuống và hiển thị là hơn!

Hình. 20/08 Black-Out Reset tại Loss Of PowerBrown-out reset

[email protected] - 109 - Call 01266020790

Page 110: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Khi điện áp cung cấp điện năng giảm xuống từ từ (ví dụ điển hình đó là pin xả mặc dù vi điều khiển những kinh nghiệm đến

nay thả nhanh hơn điện áp là một tiến trình chậm), các thiết bị điện tử nội bộ dần dần ngừng hoạt động và như vậy gọi là

Brown-ra thiết lập lại xảy ra. Trong trường hợp đó, trước khi ngừng hoạt động vi điều khiển có một mối nguy hiểm nghiêm

trọng mà các mạch hoạt động ở điện áp cao hơn bắt đầu thực hiện không thể đoán trước. Nó có thể cũng gây ra những thay

đổi nghiêm trọng trong chương trình chính nó bởi vì nó được lưu trong bộ nhớ flash on-chip.

Hình. 21/08 Brown-Out Reset tại Mất dần Of PowerTiếng ồn

Đây là một loại đặc biệt của Brown-out reset xảy ra trong môi trường công nghiệp khi nguồn điện cung cấp điện áp "nhấp

nháy" cho một thời điểm và giá trị của nó giảm xuống dưới mức tối thiểu. Ngay cả ngắn, chẳng hạn tiếng ồn trong đường dây

điện catastrophically thể ảnh hưởng đến hoạt động của thiết bị.

Hình. Tiếng ồn 8-22MCLR pin

Logic số không (0) trên chân MCLR nguyên nhân thiết lập lại ngay lập tức và thường xuyên. Đó là đề nghị được kết nối như

trong hình dưới đây. Chức năng của các thành phần bổ sung là để duy trì một logic "tinh khiết" (1) trong khi hoạt động bình

thường. Nếu giá trị của họ là như vậy để cung cấp mức logic cao trên pin chỉ khi T thiết lập lại kết thúc, các vi điều khiển ngay

lập tức sẽ bắt đầu hoạt động. Tính năng này có thể rất hữu dụng khi nó là cần thiết để đồng bộ hóa các hoạt động của vi điều

khiển với các thiết bị điện tử bổ sung hoặc hoạt động của một số vi điều khiển.

[email protected] - 110 - Call 01266020790

Page 111: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Để tránh bất kỳ lỗi nào có thể xảy ra trên Brown-ra thiết lập lại, các PIC 16F887 đã xây dựng "cơ chế bảo vệ trong. Nó là một

mạch đơn giản nhưng hiệu quả mà phản ứng mỗi lần cung cấp năng lượng điện áp giảm xuống dưới 4V và cho rằng mức độ

cho hơn 100 micro giây. Trong trường hợp đó, mạch này tạo ra tín hiệu thiết lập lại và kể từ thời điểm đó các vi điều khiển

toàn bộ hoạt động như thể nó vừa mới được bật lên.

Hình. 8-23 Master Clear Pin

Email: [email protected] chủCông cụ phát triểnTrình biên dịchPhụ kiện đồngĐặc biệtDễ MuaẤn phẩmHỗ trợCác dự ánTải vềSách: bộ vi điều khiển PICTOCGiới thiệuCh. 1Ch. 2Ch. 3Ch 4.Ch. 5Ch. 6Ch. 7Ch. 8Ch. 9App. AApp. BApp. CChương 9: Tập lệnh

Nó đã được đã được đề cập đến việc vi điều khiển khác với các mạch tích hợp khác. Hầu hết trong số họ đã sẵn sàng để cài đặt vào thiết bị mục tiêu giống như họ đang có, đây không phải là trường hợp với các vi điều khiển. Để các vi điều khiển có thể hoạt động, cần hướng dẫn chính xác về những gì phải làm. Nói cách khác, một chương trình vi điều khiển cần thực hiện phải được viết và nạp vào vi điều khiển. Chương này bao gồm các lệnh đó vi điều khiển "hiểu". Các hướng dẫn đặt ra cho các 16FXX bao gồm 35 hướng dẫn trong tổng số. Như một số nhỏ các hướng dẫn cụ thể cho các vi điều khiển RISC bởi vì họ cũng được tối ưu hóa từ các khía cạnh của tốc độ hoạt động, đơn giản trong kiến trúc và mã chặt. Những bất lợi duy nhất của kiến trúc RISC là lập trình dự kiến sẽ đối phó với những hướng dẫn này.

HƯỚNG DẪN MÔ TẢ HOẠT ĐỘNG FLAG CLK *Hướng dẫn chuyển giao dữ liệuMOVLW k Di chuyển liên tục để W k -> w 1MOVWF f Di chuyển W để f W -> f 1MOVF f, d Di chuyển f để d f -> d Z 1 1, 2CLRW Clear W 0 -> W Z 1CLRF f Rõ ràng f 0 -> f Z 1 2SWAPF f, d Trao đổi Nibbles trong e f (07:04), (3:00) -> f (03:00), (07:04) 1 1, 2Số học-logic Hướng dẫnADDLW k Thêm W và liên tục W + k -> W C, DC, Z 1ADDWF f, d Thêm W và f W + f -> d C, DC, Z 1 1, 2SUBLW k Trừ W từ không đổi kW -> W C, DC, Z 1SUBWF f, d Trừ W từ f FW -> dC, DC, Z 1 1, [email protected] - 111 - Call 01266020790

Page 112: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ANDLW k Hợp lý và với W với hằng số W và k -> W Z 1ANDWF f, d Hợp lý và với W với f W và e -> d Z 1 1, 2ANDWF f, d Hợp lý và với W với f W và e -> d Z 1 1, 2IORLW k Hợp lý hoặc với W với hằng số W hoặc k -> W Z 1IORWF f, d Hợp lý hoặc với W với f W hoặc e -> d Z 1 1, 2XORWF f, d Hợp lý độc quyền hoặc với W với hằng số W XOR k -> W Z 1 1, 2XORLW k Hợp lý độc quyền hoặc với W với f W XOR f -> d Z 1INCF f, d F tăng lên 1 f 1 -> f Z 1 1, 2DECF f, d Lượng giảm f bằng 1 f-1 -> f Z 1 1, 2RLF f, dXoay trái e qua CARRY bit C 1 1, 2RRF f, d Xoay phải e qua CARRY bit C 1 1, 2COMF f, d Bổ sung f f -> d Z 1 1, 2Bit định hướng dẫnBCF f, b Clear bit b trong f 0 -> f (b) 1 1, 2BSF f, b Clear bit b trong f 1 -> f (b) 1 1, 2Chương trình kiểm soát Hướng dẫnBTFSC f, b Kiểm tra bit b của f. Bỏ qua các hướng dẫn sau đây nếu rõ ràng. Bỏ qua nếu f (b) = 0 1 (2) 3BTFSS f, b Kiểm tra bit b của f. Bỏ qua các hướng dẫn sau đây nếu đặt. Bỏ qua nếu f (b) = 1 1 (2) 3DECFSZ f, d F. lượng giảm Bỏ qua các hướng dẫn sau đây nếu rõ ràng. f-1 -> d bỏ qua nếu Z = 1 1 (2)

1, 2, 3INCFSZ f, d F. tăng Bỏ qua các hướng dẫn sau đây nếu đặt. f 1 -> d bỏ qua nếu Z = 0 1 (2) 1, 2, 3GOTO k Chọn địa chỉ k -> PC 2CALL k Gọi chương trình con PC -> TOS, k -> PC 2RETURN Trở về từ chương trình con TOS -> PC 2RETLW k Quay trở lại với liên tục trong W k -> W, TOS -> PC 2RETFIEQuay trở lại từ gián đoạn TOS -> PC, 1 -> Giẽ 2Các hướng dẫnNOP Không hoạt động TOS -> PC, 1 -> Giẽ 1CLRWDT Rõ ràng cơ quan giám sát hẹn giờ 0 -> WDT, 1 -> ĐẾN, 1 -> PD TO, PD 1SLEEP Đi vào chế độ ngủ 0 -> WDT, 1 -> ĐẾN, 0 -> PD TO, PD 1Bảng 9-1 16Fxx Instruction Set

* 1 Khi một I / O được thay đổi đăng ký như là một chức năng của chính nó, giá trị sử dụng sẽ được rằng giá trị hiện tại trên các chân mình.* 2 Nếu lệnh được thực hiện trên sổ đăng ký TMR và nếu d = 1, prescaler sẽ bị xóa.* 3 Nếu máy tính bị sửa đổi hoặc kiểm tra kết quả là logic một (1), hướng dẫn các yêu cầu hai chu kỳ.

Hướng dẫn chuyển giao dữ liệu

Truyền dữ liệu trong vi điều khiển diễn ra giữa lao động đăng ký W (gọi là ắc) và đăng ký một đại diện cho bất kỳ vị trí của RAM nội bộ bất kể đó là về chức năng đặc biệt hoặc đăng ký mục đích chung.

Thứ nhất ba hướng dẫn di chuyển chữ đến W đăng ký (MOVLW là viết tắt của di chuyển Literal để W), di chuyển dữ liệu từ W đăng ký để RAM và từ RAM để W đăng ký (hoặc đến vị trí RAM cùng với sự thay đổi trên Z cờ chỉ). Hướng dẫn CLRF xóa e đăng ký, trong khi CLRW W xóa đăng ký. SWAPF hướng dẫn giao dịch hoán đổi Nibbles trong e đăng ký (một nibble chứa bốn bit).

Số học-logic Hướng dẫn

Tương tự như hầu hết các vi điều khiển, PIC chỉ hỗ trợ hai số học hướng dẫn, cộng và trừ. Cờ C, DC, Z sẽ được tự động thiết lập tùy thuộc vào kết quả của việc thêm hoặc trừ. Ngoại lệ duy nhất là lá cờ C. Từ khi trừ được thực hiện như ngoài với giá trị âm, C cờ là ngược lại sau khi trừ. Nó có nghĩa là các C flag được thiết lập nếu nó có thể thực hiện các hoạt động và xóa nếu số lượng lớn hơn là trừ một nhỏ hơn. Logic một (1) của PIC là có thể thực hiện các phép AND, OR, EX-OR, đảo ngược (COMF) và xoay (RLF và RRF).

Hướng dẫn mà xoay đăng ký thực sự xoay bit của mình thông qua các C cờ bởi một chút trái (đối với bit 7) hoặc phải (đối với bit 0). Các bit chuyển từ đăng ký được chuyển sang C cờ đó được tự động chuyển đến chút về phía đối diện của đăng ký.

Bit định hướng dẫn

[email protected] - 112 - Call 01266020790

Page 113: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hướng dẫn BCF và BSF rõ ràng, hoặc thiết lập bất kỳ bit trong bộ nhớ. Mặc dù nó có vẻ là một hoạt động đơn giản, nó không phải như thế. CPU đầu tiên đọc byte toàn bộ, thay đổi một chút của mình và viết lại toàn bộ các byte vào cùng vị trí.

Chương trình kiểm soát Hướng dẫn

Các PIC16F887 thực hiện các lệnh GOTO, CALL, RETURN trong cùng một cách như tất cả các vi điều khiển khác làm. Một sự khác biệt là ngăn xếp được độc lập từ RAM nội bộ và có 8 cấp. Các 'RETLW k' hướng dẫn trùng với chỉ dẫn RETURN, với ngoại lệ là một hằng số được xác định bởi toán hạng hướng dẫn được ghi vào W đăng ký trước khi trở về từ chương trình con. hướng dẫn này cho phép tra cứu bảng để thể dễ dàng tạo ra bằng cách tạo ra một bảng như là một chương trình con bao gồm RETLWk 'hướng dẫn', nơi mà các chữ "k" thuộc bảng. Bước tiếp theo là viết các vị trí của các chữ k (0, 1, 2, 3 ... n) để W đăng ký và gọi chương trình con (bảng) bằng cách sử dụng lệnh CALL. Bảng dưới đây bao gồm các chữ sau đây: k0, k1, k2 ... kn.

Chính movlw 2; viết số 2 để gọi ắc Lookup; nhảy vào bảng tra cứu Lookup addwf PCL, f; thêm ắc và hiện chương trình; địa chỉ thuê (PCL) retlw k0; trở về từ chương trình con (ắc chứa k0) retlw k1; .. ;. retlw k2 ... ... ; ... ... ; ... Retlw kn; trở về từ chương trình con (ắc chứa vi)Dòng đầu tiên của chương trình con (hướng dẫn ADDWF PCL, f ) chỉ cần thêm một "nghĩa chữ" k từ W đăng ký và địa chỉ bắt đầu bảng này được lưu trong sổ đăng ký PCL. Kết quả là dữ liệu thực tế địa chỉ trong bộ nhớ chương trình. Khi trở về từ chương trình con, các đăng ký W sẽ có các giải nghĩa chữ k. Trong trường hợp này, nó là "k2" theo nghĩa đen.

RETFIE (trở về từ ngắt) đại diện cho một trở về từ thường xuyên bị gián đoạn. Trái ngược với sự hướng dẫn RETURN, nó sẽ tự động có thể thiết lập các bit Giẽ (Global Interrupt Enable). Khi ngắt xảy ra bit này được tự động xóa. Chỉ có truy cập chương trình được đẩy vào ngăn xếp, điều đó có nghĩa rằng không có tự động tiết kiệm của 'tình trạng đăng ký và hiện tại tình trạng một trong hai. Vấn đề là giải quyết bằng cách tiết kiệm tình trạng của tất cả các đăng ký quan trọng vào đầu thường xuyên bị gián đoạn. Những giá trị này được lấy để đăng ký những ngay trước khi rời khỏi thói quen ngắt.

nhảy có điều kiện được thực hiện bởi hai hướng dẫn: BTFSC và BTFSS. Tùy thuộc vào trạng thái của bit đang được thử nghiệm trong đăng ký 'f', những chỉ dẫn dưới đây sẽ bị bỏ qua hay không.

Hướng dẫn thi Thời gian

Tất cả các hướng dẫn được hướng dẫn chu trình đơn. Ngoại lệ duy nhất có thể được hướng dẫn chi nhánh có điều kiện (nếu điều kiện được đáp ứng) hoặc hướng dẫn được thực hiện khi các chương trình truy cập. Trong cả hai trường hợp, hai chu kỳ là cần thiết để thực hiện lệnh mà chu trình thứ hai được thực hiện như là một NOP (không hoạt động). A-chu kỳ lệnh đơn bao gồm bốn chu kỳ đồng hồ. Nếu dao động 4MHz được sử dụng, một thời gian đáng kể để thực hiện hướng dẫn là 1μS. Trong trường hợp nhảy, thời gian thực hiện lệnh là 2μS.

Hướng dẫn

Legend

f - Các vị trí bộ nhớ (đăng ký);W - Làm việc đăng ký (ắc quy);b - bit địa chỉ trong vòng một 8-bit đăng ký;d - Điểm đến bit;[Nhãn] - Bộ chỉ 8 ký tự đầu của địa chỉ cụ thể trong chương trình;TOS - Top của chồng;[] - Tùy chọn;<> - Bit lĩnh vực đăng ký (địa chỉ một số bit);C - Thực / Mượn bit của STATUS đăng ký;DC - Digit Carry bit của STATUS đăng ký; vàZ - Zero bit của STATUS đăng ký.

ADDLW - Thêm chữ và W

Cú pháp: [nhãn] ADDLW k

Mô tả: Nội dung của sổ đăng ký W được thêm vào chữ 8-bit k. Kết quả là lưu trữ trong W đăng ký.

Hoạt động: (W) + k -> [email protected] - 113 - Call 01266020790

Page 114: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: C, DC, Z

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] ADDLW 0x15Trước khi hướng dẫn thực hiện: W = 0x10 Sau khi hướng dẫn: W = 0x25 C = 0 (kết quả là không lớn hơn 0xFF, có nghĩa là Carry đã không xảy ra).ADDWF - Thêm W và f

Cú pháp: [nhãn] ADDWF f, d

Mô tả: Thêm các nội dung của W và e đăng ký.Nếu d = w hoặc d = 0 kết quả được lưu trữ trong các W đăng ký.Nếu d = f hay d = 1 kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (W) + (e) -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: C, DC, Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] ADDWF REG, wTrước khi hướng dẫn thực hiện: W = 0x17 REG = 0xC2 Sau khi hướng dẫn: W = 0xD9 REG = 0xC2 C = 0 (thực hiện không xảy ra, tức là kết quả là tối đa 8-bit dài).Ví dụ 2:

.... [Nhãn] ADDWF INDF, fTrước khi hướng dẫn thực hiện: W = 0x17 FSR = 0xC2 Đăng ký tại địa chỉ 0xC2 chứa 0x20 giá trị Sau khi hướng dẫn: W = 0x17 FSR = 0xC2, 0xC2 Đăng ký tại địa chỉ chứa giá trị 0x37ANDLW - và đen với W

Cú pháp: [nhãn] ANDLW k

Mô tả: Nội dung của sổ đăng ký W là AND'ed với 8-bit chữ k. Nó có nghĩa rằng kết quả sẽ có một (1) chỉ khi cả hai bit tương ứng của các toán hạng là những người thân (1). Kết quả là lưu trữ trong W đăng ký.

Hoạt động: (W) và k -> W

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] ANDLW 0x5FTrước khi hướng dẫn thực hiện: W = 0xA3; 1010 0011 (0xA3) 0101 1111 (0x5F) ------------------ Sau khi hướng dẫn: W = 0x03; 0000 0011 (0x03) Z = 0 (kết quả không phải là 0)Ví dụ 2:

[email protected] - 114 - Call 01266020790

Page 115: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM .... [Nhãn] ANDLW 0x55Trước khi hướng dẫn thực hiện: W = 0xAA; 1010 1010 (0xAA); 0101 0101 (0x55) ------------------ Sau khi hướng dẫn: W = 0x00; 0000 0000 (0x00) Z = 1 (kết quả là 0)ANDWF - và W với f

Cú pháp: [nhãn] ANDWF f, d

Mô tả: và các W đăng ký với đăng ký f.Nếu d = w hoặc d = 0, kết quả là lưu trữ trong W đăng ký.Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (W) và (e) -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] ANDWF REG, fTrước khi hướng dẫn thực hiện: W = 0x17, REG = 0xC2; 0001 0111 (0x17); 1100 0010 (0xC2) ------------------ Sau khi hướng dẫn: W = 0x17, REG = 0x02; 0000 0010 (0x02)Ví dụ 2:

.... [Nhãn] ANDWF FSR, wTrước khi hướng dẫn thực hiện: W = 0x17, FSR = 0xC2; 0001 0111 (0x17); 1100 0010 (0xC2) ------------------ Sau khi hướng dẫn: W = 0x02, FSR = 0xC2; 0000 0010 (0x02)BCF - Bit Clear f

Cú pháp: [nhãn] BCF f, b

Mô tả: Bit b của đăng ký e là xóa.

Hoạt động: (0) -> f (b)

Toán hạng: 0 ≤ f ≤ 127, 0 ≤ b ≤ 7

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] BCF REG, 7Trước khi hướng dẫn thực hiện: REG = 0xC7; 1100 0111 (0xC7) Sau khi hướng dẫn: REG = 0x47; 0100 0111 (0x47)Ví dụ 2:

.... [Nhãn] BCF INDF, 3Trước khi hướng dẫn thực hiện: W = 0x17 FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị Sau khi hướng dẫn 0x2F: W = 0x17 FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị 0x27BSF - Bit đặt f

Cú pháp: [nhãn] BSF f, b

Mô tả: Bit b của đăng ký f được thiết lập.

Hoạt động: 1 -> f (b)

[email protected] - 115 - Call 01266020790

Page 116: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Toán hạng: 0 ≤ f ≤ 127, 0 ≤ b ≤ 7

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] BSF REG, 7Trước khi hướng dẫn thực hiện: REG = 0x07; 0000 0111 (0x07) Sau khi hướng dẫn: REG = 0x87; 1000 0111 (0x87)Ví dụ 2:

.... [Nhãn] BSF INDF, 3Trước khi hướng dẫn thực hiện: W = 0x17 FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị 0x20 Sau khi hướng dẫn: W = 0x17 FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị 0x28BTFSC - Bit kiểm tra e, Bỏ qua nếu Clear

Cú pháp: [nhãn] BTFSC f, b

Mô tả: Nếu bit b của đăng ký e là 0, các chỉ dẫn tiếp theo là bỏ đi và một NOP được thực hiện thay vào đó, làm cho hai chu kỳ này hướng dẫn một.

Hoạt động: Loại bỏ các lệnh tiếp theo nếu f (b) = 0

Toán hạng: 0 ≤ f ≤ 127, 0 ≤ b ≤ 7

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1 hoặc 2 tùy theo bit b

Ví dụ:

.... LAB_01 BTFSC REG, 1; Test bit 1 của REG LAB_02 .... ; Dòng này Bỏ qua nếu bit LAB_03 1 = .... ; Bước đây nếu bit = 0Trước khi thực hiện lệnh: Chương trình truy cập được tại địa chỉ LAB_01 -. Sau khi hướng dẫn: nếu bit 1 của REG là xóa, truy cập điểm chương trình để giải quyết LAB_03 LAB_02. - Nếu bit 1 của REG được đặt chương trình truy cập, các điểm đến địa chỉ.BTFSS - Bit kiểm tra e, Bỏ qua nếu Set

Cú pháp: [nhãn] BTFSS f, b

Mô tả: Nếu bit b của đăng ký e là 1, các chỉ dẫn tiếp theo là bỏ đi và một NOP được thực hiện thay vào đó, làm cho hai chu kỳ này hướng dẫn một.

Hoạt động: Loại bỏ các lệnh tiếp theo nếu f (b) = 1

Toán hạng: 0 ≤ f ≤ 127, 0 ≤ b ≤ 7

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1 hoặc 2 tùy theo bit b

Ví dụ:

.... LAB_01 BTFSS REG, 3; Test bit 3 / REG LAB_02 .... ; Dòng này Bỏ qua nếu bit LAB_03 0 = .... ; Bước đây nếu bit = 1Trước khi thực hiện lệnh: Chương trình truy cập được tại địa chỉ LAB_01 Sau khi hướng dẫn: - nếu bit 3 của REG là xóa, truy cập điểm chương trình để giải quyết LAB_03 LAB_02. - Nếu bit 3 của REG là xóa chương trình truy cập, các điểm đến địa chỉ.CALL - Gọi chương trình con

Cú pháp: [nhãn] CALL [email protected] - 116 - Call 01266020790

Page 117: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Mô tả: Gọi chương trình con. Đầu tiên là địa chỉ của lệnh tiếp theo để thực hiện được đẩy lên ngăn xếp. Đây là PC 1 địa chỉ. Sau đó, các địa chỉ chương trình con được ghi vào chương trình truy cập.

Hoạt động: (PC) + 1 -> (Top Of Stack - TOS)k -> PC (10: 0), (PCLATH (4: 3)) -> PC (12: 11)

Toán hạng: 0 ≤ k ≤ 2047

Flag: -

Tình trạng bị ảnh hưởng: 2

Ví dụ:

.... LAB_01 CALL LAB_02; Gọi chương trình con .... .... LAB_02 LAB_02 ....Trước khi hướng dẫn thực hiện: PC = địa chỉ LAB_01 TOS (trên cùng của ngăn xếp) = x Sau khi hướng dẫn: PC địa chỉ TOS = LAB_02 (trên cùng của ngăn xếp) = LAB_01CLRF - Clear f

Cú pháp: [nhãn] CLRF f

Mô tả: Nội dung đăng ký e là xóa và cờ Z của đăng ký TÌNH TRẠNG được thiết lập.

Hoạt động: 0 -> f

Toán hạng: 0 ≤ f ≤ 127

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] CLRF TRISBTrước khi hướng dẫn thực hiện: TRISB = 0xFF Sau khi hướng dẫn: TRISB = 0x00 Z = 1Ví dụ 2:

Trước khi hướng dẫn thực hiện: FSR = 0xC2 Đăng ký tại địa chỉ 0xC2 chứa 0x33 giá trị Sau khi hướng dẫn: FSR = 0xC2 Đăng ký tại địa chỉ 0xC2 chứa giá trị 0x00 Z = 1CLRW - Clear W

Cú pháp: [nhãn] CLRW

Mô tả: Đăng ký W là xóa và cờ Z của đăng ký TÌNH TRẠNG được thiết lập.

Hoạt động: 0 -> W

Toán hạng: -

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] CLRWTrước khi hướng dẫn: W = 0x55 Sau khi hướng dẫn: W = 0x00 Z = 1CLRWDT - Clear Watchdog Timer

[email protected] - 117 - Call 01266020790

Page 118: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Cú pháp: [nhãn] CLRWDT

Mô tả: Đặt lại các cơ quan giám sát thời gian và WDT prescaler này. Tình trạng bit TO và PD được thiết lập.

Hoạt động: 0 -> WDT 0 -> WDT prescaler 1 -> ĐẾN 1 -> PD

Toán hạng: -

Tình trạng bị ảnh hưởng: TO, PD

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] CLRWDTTrước khi hướng dẫn thực hiện: WDT truy cập = x WDT prescaler = 1:128 Sau khi hướng dẫn: WDT truy cập = 0x00 WDT prescaler = 0 TO = 1 PD = prescaler WDT 1 = 1: 128COMF - Bổ sung f

Cú pháp: [nhãn] COMF f, d

Mô tả: Nội dung đăng ký e được bổ sung (logic số không (0) được thay thế bởi những người thân (1) và ngược lại). Nếu d = w hoặc d = 0 kết quả được lưu trữ trong W. Nếu d = f hay d = 1 kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f) -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] COMF REG, wTrước khi hướng dẫn thực hiện: REG = 0x13; 0001 0011 (0x13); bổ sung ------------------ Sau khi hướng dẫn: REG = 0x13; 1110 1100 (0xEC) W = 0xECVí dụ 2:

.... [Nhãn] COMF INDF, fTrước khi hướng dẫn thực hiện: FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị 0xAA Sau khi hướng dẫn: FSR = 0xC2 Đăng ký tại địa chỉ (FSR) chứa giá trị 0x55DECF - f lượng giảm

Cú pháp: [nhãn] DECF f, d

Mô tả: lượng giảm đăng ký e một. Nếu d = w hoặc d = 0, kết quả là lưu trữ trong W đăng ký. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f) - 1 -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] DECF REG, [email protected] - 118 - Call 01266020790

Page 119: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Trước khi hướng dẫn thực hiện: REG = 0x01 Z = 0 Sau khi hướng dẫn: REG = 0x00 Z = 1Ví dụ 2:

.... [Nhãn] DECF REG, wTrước khi hướng dẫn thực hiện: REG = 0x13 W = x, Z = 0 Sau khi hướng dẫn: REG = 0x13 W = 0x12, Z = 0DECFSZ - lượng giảm f, bỏ qua nếu 0

Cú pháp: [nhãn] DECFSZ f, d

Mô tả: lượng giảm e đăng ký một. Nếu d = w hoặc d = 0, kết quả là lưu trữ trong W đăng ký. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f. Nếu kết quả là 0, sau đó một NOP được thực hiện thay vào đó, làm cho hai chu kỳ này hướng dẫn một.

Hoạt động: (f) - 1 -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1 hoặc 2 tùy thuộc vào kết quả.

Ví dụ 1:

.... MOVLW MOVWF CNT 0,10; 10 -> CNT Loop ...... ...... ; Hướng dẫn chặn ...... DECFSZ CNT, f ; lượng giảm REG bởi một GOTO Loop; Bỏ dòng này nếu = 0 LAB_03 ....... ; Bước đây nếu = 0Trong ví dụ này, khối lệnh được thực thi nhiều lần giá trị ban đầu của CNT biến, mà trong ví dụ này là 10.

GOTO - vô điều kiện Chi nhánh

Cú pháp: [nhãn] GOTO k

Mô tả: vô điều kiện chuyển đến các địa chỉ k.

Hoạt động: (k) -> PC (10:00), (PCLATH (4:3)) - PC> (12:11)

Toán hạng: 0 ≤ k ≤ 2047

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 2

Ví dụ:

.... LAB_00 GOTO LAB_01 ; Bước tới LAB_01 ..... ..... ..... LAB_01 ; Chương trình tiếp tục từ đâyTrước khi hướng dẫn thực hiện: PC = LAB_00 địa chỉ Sau khi hướng dẫn: PC = LAB_01 địa chỉINCF - Tăng f

Cú pháp: [nhãn] INCF f, d

Mô tả: Tăng đăng ký e một.Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W.Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f) + 1 -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: [email protected] - 119 - Call 01266020790

Page 120: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Ví dụ 1:

.... [Nhãn] INCF REG, wTrước khi hướng dẫn thực hiện: REG = 0x10 W = x, Z = 0 Sau khi hướng dẫn: REG = 0x10 W = 0x11, Z = 0Ví dụ 2:

.... [Nhãn] INCF REG, fTrước khi hướng dẫn thực hiện: REG = 0xFF Z = 0 Sau khi hướng dẫn: REG = 0x00 Z = 1INCFSZ - Tăng f, bỏ qua nếu 0

Cú pháp: [nhãn] INCFSZ f, d

Mô tả: Đăng ký e được tăng lên một. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f. Nếu kết quả là 0, sau đó một NOP được thực hiện thay vào đó, làm cho hai chu kỳ này hướng dẫn một.

Hoạt động: (f) + 1 -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1 hoặc 2 tùy thuộc vào kết quả.

Ví dụ:

.... LAB_01 INCFSZ REG, f ; Tăng REG bởi một LAB_02 ....... ; Bỏ dòng này nếu kết quả là 0 LAB_03 ....... ; Bước đây nếu kết quả là 0Nội dung của chương trình truy cập Trước khi thực hiện lệnh, máy tính = LAB_01address.

Nội dung của REG sau khi hướng dẫn, REG = REG +1. Nếu REG = 0, các điểm chương trình truy cập tới địa chỉ của LAB_03 nhãn. Nếu không, những điểm chương trình truy cập đến địa chỉ của lệnh tiếp theo, tức là địa chỉ LAB_02.

IORLW - hòa nhập hoặc đen với W

Cú pháp: [nhãn] IORLW k

Mô tả: Nội dung của W đăng ký là OR'ed với 8-bit chữ k. Kết quả được lưu giữ trong sổ đăng ký W.

Hoạt động: (W) OR (k) -> W

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] IORLW 0x35Trước khi hướng dẫn thực hiện: W = 0x9A Sau khi hướng dẫn: W = 0xBF Z = 0IORWF - hòa nhập hoặc W với f

Cú pháp: [nhãn] IORWF f, d

Mô tả: Nội dung đăng ký e là OR'ed với nội dung của W đăng ký. Nếu d = w hoặc d = 0, kết quả là lưu trữ trong W đăng ký. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (W) hoặc (f) -> [email protected] - 120 - Call 01266020790

Page 121: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Toán hạng: 0 ≤ f ≤ 127, d -> [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] IORWF REG, wTrước khi hướng dẫn thực hiện: REG = 0x13, W = 0x91 Sau khi hướng dẫn: REG = 0x13, W = 0x93 Z = 0Ví dụ 2:

.... [Nhãn] IORWF REG, fTrước khi hướng dẫn thực hiện: REG = 0x13, W = 0x91 Sau khi hướng dẫn: REG = 0x93, W = 0x91 Z = 0MOVF - Di chuyển f

Cú pháp: [nhãn] MOVF f, d

Mô tả: Nội dung đăng ký e được chuyển đến một địa điểm được xác định bởi toán hạng d. Nếu d = w hoặc d = 0, nội dung được chuyển đến đăng ký W. Nếu d = f hay d = 1, nội dung vẫn còn trong đăng ký f. Lựa chọn d = 1 được sử dụng để kiểm tra nội dung đăng ký e bởi vì lệnh này ảnh hưởng đến lá cờ Z của đăng ký TÌNH TRẠNG.

Hoạt động: (f) -> d

Toán hạng: 0 ≤ f ≤ 127, d -> [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] MOVF FSR, wTrước khi hướng dẫn thực hiện: FSR = 0xC2 W = 0x00 Sau khi hướng dẫn: W = 0xC2 Z = 0Ví dụ 2:

.... [Nhãn] MOVF INDF, fTrước khi hướng dẫn thực hiện: W = 0x17 FSR = 0xC2, đăng ký tại địa chỉ 0xC2 chứa 0x00 giá trị Sau khi hướng dẫn: W = 0x17 FSR = 0xC2, đăng ký tại địa chỉ 0xC2 chứa giá trị 0x00, Z = 1MOVLW - Di chuyển nghĩa chữ để W

Cú pháp: [nhãn] MOVLW k

Mô tả: 8-bit chữ k được chuyển đến đăng ký W.

Hoạt động: k -> (W)

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] MOVLW 0x5ASau khi hướng dẫn: W = 0x5AVí dụ 2:

[email protected] - 121 - Call 01266020790

Page 122: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Const equ 0x40 [nhãn] MOVLW XDTrước khi hướng dẫn thực hiện: W = 0x10 Sau khi hướng dẫn: W = 0x40MOVWF - Di chuyển W để f

Cú pháp: [nhãn] MOVWF f

Mô tả: Nội dung của W đăng ký được chuyển đến đăng ký f.

Hoạt động: (W) -> f

Toán hạng: 0 ≤ f ≤ 127

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] MOVWF OPTION_REGTrước khi hướng dẫn thực hiện: OPTION_REG = 0x20 W = 0x40 Sau khi hướng dẫn: OPTION_REG = 0x40 W = 0x40Ví dụ 2:

.... [Nhãn] MOVWF INDFTrước khi hướng dẫn thực hiện: W = 0x17 FSR = 0xC2, đăng ký tại địa chỉ 0xC2 chứa 0x00 giá trị Sau khi hướng dẫn: W = 0x17 FSR = 0xC2, đăng ký tại địa chỉ 0xC2 chứa giá trị 0x17NOP - Không hoạt động

Cú pháp: [nhãn] NOP

Mô tả: Không có hoạt động.

Hoạt động: -

Toán hạng: -

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] NOP ; 1us chậm trễ (dao động 4MHz)Trước khi hướng dẫn thực hiện: PC = x Sau khi hướng dẫn: PC = x + 1RETFIE - Trả lại từ ngắt

Cú pháp: [nhãn] RETFIE

Mô tả: Trở về từ chương trình con. Giá trị là popped từ ngăn xếp và nạp vào chương trình truy cập. Ngắt được kích hoạt bằng cách thiết lập Giẻ bit của INTCON đăng ký.

Hoạt động: TOS -> PC, 1 -> Giẽ

Toán hạng: -

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 2

Ví dụ:

[email protected] - 122 - Call 01266020790

Page 123: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM .... [Nhãn] RETFIETrước khi hướng dẫn thực hiện: PC = x Giẽ (bit cho phép ngắt của đăng ký SATUS) = 0 Sau khi hướng dẫn: PC = TOS (trên cùng của ngăn xếp) Giẻ = 1RETLW - Quay trở lại với chữ trong W

Cú pháp: [nhãn] RETLW k

Mô tả: 8-bit chữ k được nạp vào đăng ký W. Các giá trị từ trên stack được nạp vào chương trình truy cập.

Hoạt động: (k) -> W; đầu stack (TOP) -> PC

Toán hạng: -

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 2

Ví dụ:

.... [Nhãn] RETLW 0x43Trước khi hướng dẫn thực hiện: W = x PC = x TOS (trên cùng của ngăn xếp) = x Sau khi hướng dẫn: W = 0x43 PC = TOS (trên cùng của ngăn xếp) TOS (trên cùng của ngăn xếp) = TOS - 1RETURN - Quay trở lại từ chương trình con

Cú pháp: [nhãn] RETURN

Mô tả: Trở về từ chương trình con. Các giá trị từ trên stack được nạp vào chương trình truy cập. Đây là một chu trình giảng dạy hai.

Hoạt động: TOS -> truy cập máy tính chương trình.

Toán hạng: -

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 2

Ví dụ:

.... [Nhãn] RETURN= TOS (trên cùng của ngăn xếp) TOS (trên cùng của ngăn xếp) = TOS - 1 PC Trước khi hướng dẫn thực hiện: PC = x TOS (trên cùng của ngăn xếp) = x Sau khi hướng dẫn:RLF - Xoay lại e qua Carry

Cú pháp: [nhãn] RLF f, d

Mô tả: Nội dung đăng ký e có thể xoay một chút để các trái qua cờ Carry. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f (n)) -> d (n +1), f (7) -> C, C -> d (0);

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: C

Số chu kỳ: 1

Hình. 9-1 e Đăng ký

[email protected] - 123 - Call 01266020790

Page 124: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Ví dụ 1:

.... [Nhãn] RLF REG, wTrước khi hướng dẫn thực hiện: REG = 1110 0110 C = 0 Sau khi hướng dẫn: REG = 1110 0110 1100 1100 W = C = 1Ví dụ 2:

.... [Nhãn] RLF REG, fTrước khi hướng dẫn thực hiện: REG = 1110 0110 C = 0 Sau khi hướng dẫn: REG = 1100 1100 C = 1RRF - Xoay phải e qua Carry

Cú pháp: [nhãn] RRF f, d

Mô tả: Nội dung đăng ký e có thể xoay một chút quyền thông qua các lá cờ Carry. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f (n)) -> d (n-1), f (0) -> C, C -> d (7);

Toán hạng: 0 ≤ f ≤ 127, d -> [0,1]

Tình trạng bị ảnh hưởng: C

Số chu kỳ: 1

Hình. 9-2 e Đăng ký

Ví dụ 1:

.... [Nhãn] RRF REG, wTrước khi hướng dẫn thực hiện: REG = 1110 0110 W = x C = 0 Sau khi hướng dẫn: REG = 1110 0110 0111 0011 W = C = 0Ví dụ 2:

.... [Nhãn] RRF REG, fTrước khi hướng dẫn thực hiện: REG = 1110 0110, C = 0 Sau khi hướng dẫn: REG = 0111 0011, C = 0SLEEP - Nhập chế độ Sleep

Cú pháp: [nhãn] SLEEP

Mô tả: Bộ xử lý vào chế độ ngủ. bộ dao động là dừng lại. PD bit (Power Down) của đăng ký TÌNH TRẠNG là xóa. TO bit của cùng một đăng ký được thiết lập. Các WDT và prescaler của nó sẽ bị xóa.

Hoạt động: 0 -> WDT, 0 -> WDT prescaler, 1 -> ĐẾN, 0 -> PD

Toán hạng: -

Tình trạng bị ảnh hưởng: TO, PD

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] SLEEPTrước khi hướng dẫn thực hiện: WDT truy cập = x WDT prescaler = x Sau khi hướng dẫn: WDT truy cập = prescaler WDT 0x00 = 0 TO = 1 PD = 0SUBLW - Trừ W từ chữ

Cú pháp: [nhãn] SUBLW k

Mô tả: Nội dung đăng ký W được trừ vào chữ k. Kết quả được lưu giữ trong sổ đăng ký W.

[email protected] - 124 - Call 01266020790

Page 125: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Hoạt động: k - (W) -> W

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: C, DC, Z

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] SUBLW 0x03Trước khi hướng dẫn thực hiện: W = 0x01, C = x, Z = x Sau khi hướng dẫn: W = 0x02, C = 1, Z = 0 kết quả là dương tính Trước khi thực hiện lệnh: W = 0x03, C = x, Z = x Sau khi hướng dẫn: W = 0x00, C = 1, Z = 1 kết quả là 0 Trước khi thực hiện lệnh: W = 0x04, C = x, Z = x Sau khi hướng dẫn: W = 0xFF, C = 0, Z = 0 kết quả là âm tínhSUBWF - Trừ W từ f

Cú pháp: [nhãn] SUBWF f, d

Mô tả: Nội dung đăng ký W là trừ đăng ký f. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (f) - (W) -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: C, DC, Z

Số chu kỳ: 1

Ví dụ:

.... [Nhãn] SUBWF REG, fTrước khi hướng dẫn thực hiện: REG = 3, W = 2, C = x, Z = x Sau khi hướng dẫn: REG = 1, W = 2, C = 1, Z kết quả là 0 = là tích cực Trước khi thực hiện lệnh: REG = 2, W = 2, C = x, Z = x Sau khi hướng dẫn: REG = 0, W = 2, C = 1, Z = 1 kết quả là 0 Trước khi thực hiện lệnh: REG = 1, W = 2, C = x, Z = x Sau khi hướng dẫn: REG = 0xFF, W = 2, C = 0, Z = 0 kết quả là âm tínhSWAPF - Trao đổi Nibbles trong e

Cú pháp: [nhãn] SWAPF f, d

Mô tả: Các và thấp hơn Nibbles đăng ký trên của f được đổi chỗ. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: f (00:03) -> d (04:07), f (04:07) -> d (00:03);

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: -

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] SWAPF REG, wTrước khi hướng dẫn thực hiện: REG = 0xF3 Sau khi hướng dẫn: REG = 0xF3 W = 0x3FVí dụ 2:

.... [Nhãn] SWAPF REG, fTrước khi hướng dẫn thực hiện: REG = 0xF3 Sau khi hướng dẫn: REG = 0x3FXORLW - độc quyền hoặc đen với [email protected] - 125 - Call 01266020790

Page 126: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Cú pháp: [nhãn] XORLW k

Mô tả: Nội dung đăng ký W là XOR'ed với 8-bit chữ k . Kết quả được lưu giữ trong sổ đăng ký W.

Hoạt động: (WXOR..) k -> W

Toán hạng: 0 ≤ k ≤ 255

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] XORLW 0xAFTrước khi hướng dẫn thực hiện: W = 0xB5; 1011 0101 (0xB5); 1010 1111 (0xAF) ------------------ Sau khi hướng dẫn: W = 0x1A; 0001 1010 (0x1A) Z = 0Ví dụ 2:

Const equ 0x37 [nhãn] XORLW XDTrước khi hướng dẫn thực hiện: W = 0xAF; 1010 1111 (0xAF) XD = 0x37; 0011 0111 (0x37) ---------------------------- --- Sau khi hướng dẫn: W = 0x98; 1001 1000 (0x98) Z = 0XORWF - độc quyền hoặc W với f

Cú pháp: [nhãn] XORWF f, d

Mô tả: Nội dung đăng ký e là XOR'ed với nội dung của đăng ký W. Một chút kết quả được thiết lập chỉ khi các bit tương ứng của các toán hạng là khác nhau. Nếu d = w hoặc d = 0, kết quả được lưu giữ trong sổ đăng ký W. Nếu d = f hay d = 1, kết quả được lưu giữ trong sổ đăng ký f.

Hoạt động: (WXOR..) k -> d

Toán hạng: 0 ≤ f ≤ 127, d [0,1]

Tình trạng bị ảnh hưởng: Z

Số chu kỳ: 1

Ví dụ 1:

.... [Nhãn] XORWF REG, fTrước khi hướng dẫn thực hiện: REG = 0xAF, W = 0xB5; 1010 1111 (0xAF); 1011 0101 (0xB5) ------------------ Sau khi hướng dẫn: REG = 0x1A, W = 0xB5; 0001 1010 (0x1A)Ví dụ 2:

.... [Nhãn] XORWF REG, wTrước khi hướng dẫn thực hiện: REG = 0xAF, W = 0xB5; 1010 1111 (0xAF); 1011 0101 (0xB5) ------------------ Sau khi hướng dẫn: REG = 0xAF, W = 0x1A; 0001 1010 (0x1A)Ngoài các hướng dẫn trên đây, Microchip cũng đã giới thiệu một số hướng dẫn khác. Để được chính xác hơn, họ không được hướng dẫn như vậy, nhưng các macro được hỗ trợ bởi MPLAB. Microchip gọi họ là "Hướng dẫn đặc biệt" vì tất cả chúng đều trong thực tế thu được bằng cách kết hợp đã được hướng dẫn hiện có.

HƯỚNG DẪN MÔ TẢ HƯỚNG DẪN TƯƠNG ĐƯƠNG TÌNH TRẠNG BỊ ẢNH HƯỞNGADDCF f, d Thêm với thực BTFSC INCF TÌNH TRẠNG, CADDDCF f, d Thêm với chữ số Carry BTFSC INCF TÌNH TRẠNG, DCB k Chi nhánh GOTOBC k Chi nhánh trên Carry BTFSC [email protected] - 126 - Call 01266020790

Page 127: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM GOTO TÌNH TRẠNG, CBDC k Ngành về chữ số Carry BTFSC GOTO TÌNH TRẠNG, DCBNC k Không có chi nhánh trên Carry BTFSS GOTO TÌNH TRẠNG, CBNDC k Chi nhánh về số chữ số Carry BTFSS GOTO TÌNH TRẠNG, DCBNZ k Không có chi nhánh trên Zero BTFSS GOTO STATUS, ZBZ k Ngành về Zero BTFSC GOTO STATUS, ZCLRC Clear Carry BCF TÌNH TRẠNG, CCLRDC Thực chữ số rõ ràng BCF TÌNH TRẠNG, DCCLRZ Clear Zero BCF STATUS, ZMOVFW f Di chuyển tập tin để W MOVFSETC f Đặt Carry BSF TÌNH TRẠNG, CSETDC Đặt chữ số Carry BSF TÌNH TRẠNG, DCSETZ Đặt Zero BSF STATUS, ZSKPC Bỏ vào Carry BTFSS TÌNH TRẠNG, CSKPDC Bỏ qua về chữ số Carry BTFSS TÌNH TRẠNG, DCSKPNC Bỏ qua về Không Carry BTFSC STATUS, ZSKPNDC Bỏ qua về số chữ số Carry BTFSC TÌNH TRẠNG, DCSKPNZ Bỏ qua trên Không Zero BTFSC STATUS, ZSKPZ Bỏ qua về Zero BTFSS STATUS, ZSUBCF f, d Trừ Carry từ Tập BTFSC DECF TÌNH TRẠNG, CSUBDCF f, d Trừ chữ số Carry từ Tập BTFSC DECF TÌNH TRẠNG, DCTSTF f Test File MOVF

Vi điều khiển và con người giao tiếp thông qua các phương tiện của các ngôn ngữ lập trình được gọi là hội ngôn ngữ. Từ Assembler chính nó không có bất kỳ ý nghĩa sâu xa, nó tương ứng với tên của các ngôn ngữ khác như tiếng Anh hoặc tiếng Pháp. Chính xác hơn, hợp ngữ chỉ là một giải pháp đi qua. Để các vi điều khiển có thể hiểu một chương trình được viết bằng ngôn ngữ lắp ráp, nó phải được biên dịch sang một ngôn ngữ của số không và những người thân. Hội ngôn ngữ và Assembler không có cùng ý nghĩa. Người đầu tiên đề cập đến các bộ quy tắc dùng để viết chương trình cho vi điều khiển, trong khi sau này dùng để chỉ một chương trình trên một máy tính cá nhân dùng để dịch phát biểu ngữ sang ngôn ngữ của số không và những người thân. Một chương trình biên dịch cũng được gọi là Máy luật. Một "Chương trình" là một tập tin dữ liệu được lưu trữ trên một đĩa cứng máy tính (hoặc trong bộ nhớ của vi điều khiển, nếu được nạp) và bằng văn bản theo các quy tắc của hội đồng hoặc lập trình một số ngôn ngữ khác. Ngôn ngữ hội là điều dễ hiểu đối với con người bởi vì nó bao gồm các từ có ý nghĩa và biểu tượng của bảng chữ cái. Hãy để chúng tôi, ví dụ như lệnh "RETURN" được, như tên của nó ngụ ý, được sử dụng để trả về vi điều khiển từ một chương trình con. Trong mã máy, cùng một lệnh được biểu diễn bằng một mảng 14-bit của số không và những người dễ hiểu bởi vi điều khiển. Tất cả lắp ráp các lệnh tương tự như ngôn ngữ được dịch thành các mảng tương ứng của số không và những người thân. Một tập tin dữ liệu được sử dụng để lưu trữ các chương trình biên dịch được gọi là một "tập tin điều hành", nghĩa là "HEX tập tin dữ liệu". Tên đến từ các bài trình bày thập lục của một tập tin dữ liệu và có một hậu tố của "thập lục" là tốt, cho "probe.hex" ví dụ. Sau khi đã được tạo ra, các file dữ liệu được nạp vào bộ vi điều khiển bằng cách sử dụng một lập trình viên. chương trình hội ngôn ngữ có thể được viết bằng bất kỳ chương trình để xử lý văn bản (biên tập) có thể tạo ra ASCII tập tin dữ liệu trên một đĩa cứng hoặc trong một môi trường làm việc chuyên ngành như MPLAB mô tả sau.

YẾU TỐ CỦA HỘI NGÔN NGỮ

Một chương trình viết bằng hợp ngữ bao gồm một số yếu tố khác nhau đang được giải thích trong khi biên dịch chương trình thành một file dữ liệu thực thi. Việc sử dụng các yếu tố này đòi hỏi phải có quy tắc nghiêm ngặt và nó là cần thiết đặc biệt chú ý đến họ trong chương trình bằng văn bản để tránh lỗi.

HỘI NGÔN NGỮ cú pháp

[email protected] - 127 - Call 01266020790

Page 128: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Như đã đề cập, đó là cần thiết để thực hiện một số quy tắc cụ thể để kích hoạt quá trình biên dịch thành mã HEX điều hành chạy mà không có lỗi. Bắt buộc các quy tắc giải thích cách trình tự của các biểu thức được đặt cùng nhau để tạo thành các báo cáo tạo nên một chương trình hợp ngữ được gọi là cú pháp. Chỉ có một vài người trong số họ:

Mỗi dòng chương trình có thể bao gồm tối đa là 255 ký tự;Mỗi dòng chương trình đó là để được biên dịch phải bắt đầu bằng một, biểu tượng nhãn hiệu, giúp trí nhớ, Chỉ thị;Văn bản sau dấu "," trong một chương trình đại diện cho một dòng bình luận đó là bị bỏ qua bởi các nhà lắp ráp (không biên dịch); vàTất cả các yếu tố của một dòng chương trình (nhãn hiệu, hướng dẫn, vv) phải được phân cách bởi ít nhất một nhân vật không gian. Vì lợi ích của độ sắc nét tốt hơn, một TAB push-nút thường được sử dụng thay vì nó, để nó được dễ dàng để phân định các cột với các nhãn, vv chỉ trong một chương trình.NHÃN

nhãn Một đại diện cho một phiên bản nguyên văn của một số địa chỉ trong ROM hoặc bộ nhớ RAM. Mỗi nhãn phải bắt đầu trong cột đầu tiên với một chữ cái của bảng chữ cái hoặc "_" và có thể bao gồm tối đa 32 ký tự. Bên cạnh đó, nó có thể dễ dàng sử dụng:

Nó là đủ để nhập vào tên của một nhãn hiệu thay vì một địa chỉ 16-bit trong hướng dẫn mà các cuộc gọi một số chương trình con hoặc nhảy một. Các nhãn hiệu cùng tên cũng cần phải được viết vào đầu của một dòng chương trình trong đó một chương trình con bắt đầu hoặc khi nhảy nên được thực thi. Như một quy luật chung, nhãn có tên dễ nhận biết.Trong chương trình biên soạn, các nhà lắp ráp tự động sẽ thay thế các nhãn của các địa chỉ tương ứng.

GÓP Ý

Acomment thường là một văn bản giải trình bằng văn bản của lập trình để thực hiện một chương trình rõ ràng và dễ hiểu hơn. Nó không phải là cần thiết để bình luận tất cả các dòng. Khi ba hoặc bốn dòng mã làm việc với nhau để thực hiện một số nhiệm vụ cấp cao hơn, tốt hơn để có một mức độ cao hơn bình luận duy nhất cho các nhóm ngành nghề. Do đó, nó được thêm vào nếu cần thiết và phải bắt đầu với ";". Bình luận thêm vào mã nguồn lắp ráp không được biên dịch thành mã máy.

HƯỚNG DẪN

Các hướng dẫn được xác định cho mỗi gia đình vi điều khiển bởi nhà sản xuất. Vì vậy, nó là đến người sử dụng để thực hiện theo các quy tắc của việc sử dụng của họ. Cách viết hướng dẫn cũng là cú pháp lệnh gọi. Các hướng dẫn "movlp"và"gotto", trong ví dụ sau đây, được công nhận bởi các vi điều khiển PIC16F887 như là một lỗi vì chúng là không chính xác bằng văn bản.

Toán hạng

toán hạng An là một giá trị (một đối số) khi mà chỉ thị, được đặt tên bằng cách ghi nhớ, hoạt động. Các toán hạng có thể là một đăng ký, một biến, một hằng số chữ, nhãn hoặc địa chỉ một bộ nhớ.

CHỈ THỊ

Không giống như hướng dẫn được viết vào bộ nhớ chương trình on-chip sau khi biên dịch, chỉ thị, là các lệnh của ngôn ngữ tự lắp ráp và không trực tiếp ảnh hưởng đến hoạt động của vi điều khiển. Một số người trong số họ phải được sử dụng trong chương trình mỗi khi những người khác chỉ được sử dụng để hỗ trợ hoặc tăng cường các hoạt động. Chỉ thị được ghi vào cột dành cho hướng dẫn. Các quy tắc phải được quan sát chỉ cho phép một chương trình chỉ thị trên mỗi dòng.

Phần này bao gồm chỉ là một vài trong số các thường được sử dụng chỉ thị nhất. Nó chắc chắn sẽ mất quá nhiều không gian và thời gian để mô tả tất cả các chỉ thị được công nhận bởi các chương trình MPLAB. Dù sao, một danh sách hoàn chỉnh có chứa tất cả các chỉ thị mà các nhà lắp ráp MPLAB có thể hiểu được quy định tại Trợ giúp.

Chỉ thị Processor

Chỉ thị này phải được viết vào đầu mỗi chương trình. Nó định nghĩa các loại vi điều khiển mà chương trình được viết cho. Ví dụ:

[email protected] - 128 - Call 01266020790

Page 129: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Bộ vi xử lý 16f887Equ chỉ thị

Chỉ thị này được sử dụng để thay thế một giá trị số của một biểu tượng. Bằng cách này, một số vị trí cụ thể trong bộ nhớ được phân công một tên. Ví dụ:

TỐI ĐA equ H'25 'Điều này có nghĩa là một vị trí bộ nhớ tại địa chỉ 25 (hex.) được chỉ định tên "tối đa". Tất cả các xuất hiện của các nhãn "tối đa" trong chương trình này sẽ được giải thích bởi hợp ngữ như là địa chỉ 25 (tối đa = H'25 '). Biểu tượng có thể được định nghĩa theo cách này chỉ một lần trong một chương trình. Điều đó chỉ thị này chủ yếu được sử dụng vào đầu của chương trình.

ORG chỉ thị

Chỉ thị này quy định một vị trí trong bộ nhớ chương trình mà các chương trình sau đây chỉ là để được đặt. Ví dụ:

ORG 0x100 START ... ... ... ORG 0x1000 BẢNG ... ...Chương trình này bắt đầu tại vị trí 0x100. Các bảng chứa dữ liệu được lưu trữ tại vị trí 1024 (1000H).

END chỉ thị

Mỗi chương trình phải được kết thúc bằng cách sử dụng chỉ thị này. Sau khi chương trình một cuộc gặp gỡ này chỉ thị, lắp ráp ngay lập tức dừng lại biên soạn. Ví dụ:

... END; Kết thúc chương trình\ $ Bao gồm những chỉ thị

Tên của Chỉ thị này cho biết đầy đủ mục đích của nó. Trong quá trình biên soạn, nó cho phép lắp ráp để sử dụng dữ liệu chứa trong một tập tin khác trên đĩa cứng máy tính. Ví dụ:

... # Bao gồm <p16f887.inc>CBLOCK và ENDC chỉ thị

Tất cả các biến (tên và địa chỉ của họ) sẽ được sử dụng trong một chương trình phải được xác định tại đầu của chương trình. Bởi vì điều này không cần thiết để xác định địa chỉ của mỗi biến quy định trong chương trình. Thay vào đó, nó là đủ để xác định địa chỉ của một trong những đầu tiên bằng cách sử dụng chỉ thị CBLOCK và danh sách tất cả những người khác sau đó. Trình biên dịch tự động gán các biến này các địa chỉ tương ứng theo thứ tự mà chúng được liệt kê. Cuối cùng, chỉ thị cho thấy ENDC cuối của danh sách các biến.

CBLOCK 0x20 START; địa chỉ 0x20 RELE; 0x21 địa chỉ STOP, địa chỉ 0x22 trái; địa chỉ 0x23 quyền; 0x24 ENDC địa chỉ ...IF, ELSE endif và chỉ thị

Các chỉ thị được sử dụng để tạo ra cái gọi là khối điều kiện trong chương trình. Mỗi khối bắt đầu với các chỉ thị IF và kết thúc với endif chỉ thị hoặc ELSE. Một tuyên bố hoặc một biểu tượng (trong ngoặc đơn) theo chỉ thị IF đại diện cho một điều kiện mà quyết định đó là một phần của chương trình là để được biên dịch:

Nếu tuyên bố là chính xác hoặc giá trị của một biểu tượng bằng một chương trình biên dịch tất cả các hướng dẫn bằng văn bản trước khi ELSE chỉ thị hoặc endif; vàNếu tuyên bố đó không đúng hoặc giá trị của một ký hiệu được bằng số không, chỉ hướng dẫn bằng văn bản sau khi chỉ thị ELSE hoặc endif đang được biên soạn.Ví dụ 1:

IF (VERSION> 3) CALL Table_2 endif CALL ...Nếu chương trình được phát hành sau khi phiên bản 3 (báo cáo là đúng), sau đó chương trình con "Bảng 2" và "mở rộng" được thực thi. Nếu câu trong dấu ngoặc đơn là sai (VERSION <3), hai hướng dẫn cách gọi chương trình con được bỏ qua và sẽ không được biên dịch do.

Ví dụ 2:

[email protected] - 129 - Call 01266020790

Page 130: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Nếu giá trị của biểu tượng "mẫu" bằng một trong hai hướng sau đó đầu tiên sau khi chỉ thị IF được biên dịch cũng như các hướng dẫn sau khi chỉ thị endif (tất cả các hướng dẫn giữa ELSE và endif được bỏ qua). Nếu không, nếu Model = 0 sau đó hướng dẫn giữa IF và ELSE sẽ được bỏ qua, trong khi các hướng dẫn sau ELSE chỉ thị được biên dịch.

IF (Model) MOVFW MOVWF TỐI ĐA ĐỆM ELSE MOVFW BUFFER1 endif TỐI ĐA MOVWF ...BANKSEL chỉ thị

Để truy cập một SFR đăng ký nó là cần thiết để lựa chọn ngân hàng thích hợp trong bộ nhớ RAM bằng cách sử dụng bit RP0 và RP1 của đăng ký TÌNH TRẠNG. Chỉ thị này được sử dụng trong trường hợp này. Đơn giản, vì "inc" tập tin dữ liệu chứa danh sách của tất cả các đăng ký cùng với địa chỉ của họ, lắp ráp biết mà ngân hàng tương ứng với đó đăng ký. Sau khi gặp chỉ thị này, lắp ráp chọn RP0 bit và RP1 cho đăng ký quy định về riêng của mình. Ví dụ:

... BANKSEL CLRF TRISB TRISB BANKSEL PORTB MOVLW 'PORTB MOVWF B'01001101 ...VÍ DỤ CÁCH VIẾT Một CHƯƠNG TRÌNH

Ví dụ sau đây minh họa những gì một chương trình đơn giản viết bằng ngôn ngữ lắp ráp như thế nào.

Ngoài các quy tắc thông thường của ngôn ngữ lắp ráp, cũng có một vài quy tắc bất thành văn mà nên được quan sát trong chương trình bằng văn bản. Một trong số đó là viết trong một vài từ lúc bắt đầu của một chương trình nào của chương trình tên là, những gì nó được sử dụng cho, phiên bản, ngày phát hành, loại vi điều khiển nó được viết cho và tên của người lập trình. Kể từ khi thông tin này không quan trọng cho lắp ráp, nó được viết như một bình luận mà luôn luôn bắt đầu bằng dấu chấm phẩy ";" và có thể được viết bằng một dòng mới hoặc ngay sau khi lệnh.

Sau khi viết bình luận nói chung, đó là thời gian để lựa chọn vi điều khiển bằng cách sử dụng Processor chỉ thị. Chỉ thị này được theo sau bởi một số khác được sử dụng để bao gồm tất cả các định nghĩa về đăng ký nội bộ vi điều khiển PIC16F887 trong chương trình. Những định nghĩa là gì, nhưng khả năng đăng ký địa chỉ cổng B và khác như PORTB thay vì 06h, do đó chương trình rõ ràng và dễ đọc hơn.

Để các vi điều khiển sẽ hoạt động đúng cách, một vài thông số như các loại dao động, nhà nước của các con chó, xem và thiết lập lại mạch nội bộ phải được xác định. Nó được thực hiện bằng cách sử dụng các chỉ thị sau đây:

_CONFIG _CP_OFF & _WDT_OFF & PWRTE_ON & XT_OSCKhi tất cả các yếu tố cần thiết được xác định, quá trình viết các chương trình có thể bắt đầu. Trước hết, nó là cần thiết để xác định địa chỉ mà từ đó vi điều khiển bắt đầu khi bị cúp điện trên (0x00 org) cũng như địa chỉ mà từ đó số tiền thu được chương trình với thực hiện nếu gián đoạn xảy ra (org 0x04). Kể từ khi chương trình này rất đơn giản, đó là đủ để sử dụng lệnh "goto chính"để chỉ đạo các vi điều khiển vào đầu của chương trình. Lệnh tiếp theo lựa chọn ngân hàng bộ nhớ 1 để cho phép truy cập vào các TRISB đăng ký để cấu hình cổng B như đầu ra (banksel TRISB). Các chương trình chính kết thúc bằng cách chọn ngân hàng bộ nhớ 0 và cài đặt tất cả các chân cổng B để logic một (1) (0xFF movlw, movwf PORTB).

Nó là cần thiết để tạo ra một vòng để giữ cho chương trình từ "lấy mất" trong trường hợp lỗi xảy ra. Với mục đích này, có một vòng lặp vô tận thực hiện tất cả các thời gian trong khi vi điều khiển được bật.

"kết thúc"là bắt buộc vào cuối mỗi chương trình để thông báo cho các nhà lắp ráp rằng không có nhiều lệnh được biên soạn.

THÔNG TIN TỪ CHƯƠNG TRÌNH Lập

Kết quả của việc biên soạn một chương trình được viết bằng ngôn ngữ lắp ráp là các tập tin dữ liệu. Các dữ liệu quan trọng nhất và thường được sử dụng tập tin được:

Điều hành tập tin dữ liệu (Program_Name.HEX);Lỗi dữ liệu tập tin (Program_Name.ERR); vàDanh sách các tập tin dữ liệu (Program_Name.LST).Các file đầu tiên có chương trình biên dịch mà được nạp vào vi điều khiển. nội dung của nó cho không có thông tin quan trọng để lập trình để nó sẽ không được thảo luận ở đây. Các tập tin thứ hai chứa những sai sót trong quá trình viết và phát hiện bởi các trình biên dịch trong quá trình biên soạn. Lỗi có thể được phát hiện trong danh sách các tập tin dữ liệu, mà phải mất nhiều thời gian hơn, do đó, tập tin lỗi dữ liệu là phù hợp hơn cho các chương trình dài.

Các tập tin thứ ba là hữu ích nhất cho các lập trình viên. Nó chứa rất nhiều thông tin về các lệnh và biến vị trí trong bộ nhớ on-chip cũng như signalization lỗi. Có một bảng biểu tượng ở cuối mỗi danh sách tập tin dữ liệu chứa tất cả các biểu tượng được [email protected] - 130 - Call 01266020790

Page 131: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM sử dụng trong chương trình. Các yếu tố khác hữu ích của tập tin dữ liệu danh sách là bộ nhớ sử dụng các bản đồ và thống kê lỗi được cung cấp ở cuối của danh sách.

Macro và chương trình con

Cùng trình tự hướng dẫn tính toán thường được sử dụng nhiều lần trong một chương trình. Ngôn ngữ hội là rất khó khăn. lập trình là cần thiết để chăm sóc những chi tiết nhỏ nhất khi viết một chương trình, bởi vì chỉ có một sai lệnh hoặc tên nhãn có thể gây ra các chương trình không hoạt động đúng hoặc nó có thể không hoạt động. Do đó, nó ít mệt mỏi hơn và ít lỗi dễ bị sử dụng một chuỗi các hướng dẫn như một tuyên bố chương trình duy nhất mà các công trình đúng cho chắc chắn. Để thực hiện ý tưởng này, macro và các chương trình con được sử dụng.

Macro

vĩ mô A có định nghĩa biểu tượng lập trình mà đứng cho một chuỗi các dòng văn bản. Nó được định nghĩa bằng cách sử dụng chỉ thị vĩ mô mà tên vĩ mô và các đối số nếu cần thiết. Vĩ mô phải được xác định trước khi nó được sử dụng. Khi vĩ mô đã được xác định, tên của nó có thể được sử dụng trong các cuộc gặp gỡ program.When lắp ráp tên vĩ mô, thay thế nó bằng các trình tự phù hợp các hướng dẫn và xử lý chúng chỉ như thể chúng đã xuất hiện trong chương trình. Nhiều vĩ mô khác nhau hướng dẫn có sẵn cho các mục đích khác nhau, loại bỏ một số các repetitiveness của chương trình này, cũng như đơn giản hóa các văn bản, đọc và hiểu biết của chương trình. Việc sử dụng đơn giản nhất của các macro có thể được cho một tên cho một chuỗi các chỉ thị được lặp đi lặp lại. Chúng ta hãy lấy ví dụ, thủ tục cho phép ngắt toàn cầu, ngân hàng lựa chọn 'SFR.

macro_name vĩ mô đối_số1, đối_số2 ... ... chuỗi các hướng dẫn ... endmVí dụ sau đây cho thấy bốn macro. Hai macro đầu tiên chọn ngân hàng, một phần ba cho phép gián đoạn, trong khi một trong vô hiệu hóa thứ tư gián đoạn.

bank0 vĩ mô ; Macro bank0 bcf STATUS, RP0; Thiết lập lại RP0 bit bcf STATUS, RP1; Reset bit RP1 endm; Cuối vĩ môvĩ mô bank1 ; Macro bank1 BSF STATUS, RP0; Đặt RP0 bit bcf STATUS, RP1; Reset bit RP1 endm; End các vĩ môvĩ mô enableint ; cho phép ngắt toàn cầu BSF INTCON, 7; Set bit endm; Cuối vĩ môdisableint vĩ mô ; toàn vô hiệu hóa INTCON bcf gián đoạn, 7; endm bit Thiết lập lại; Cuối vĩ môMacro được định nghĩa theo cách này được lưu trong một tập tin dữ liệu đặc biệt với INC gia hạn mà là viết tắt của tập tin dữ liệu bao gồm những. Như đã thấy, bốn macro không có đối số. Tuy nhiên, các macro có thể bao gồm các đối số nếu cần thiết.

Ví dụ sau đây cho thấy các macro với đối số. Pin được cấu hình như là đầu vào nếu bit tương ứng của Tris đăng ký được thiết lập để logic một (bank1). Nếu không, nó được cấu hình như đầu ra.

đối_số1 vĩ mô đầu vào, đối_số2 ; Macro vào bank1; Ngân hàng có đăng ký Tris BSF đối_số1, đối_số2; Đặt bit quy định (1 = Input) bank0; Macro trong 0 endm lựa chọn ngân hàng; Cuối vĩ mô vĩ mô sản lượng đối_số1, đối_số2 ; Macro ra bank1; Ngân hàng có đăng ký Tris bcf đối_số1, đối_số2; Xóa bit quy định (0 = ra) bank0; Macro trong 0 endm lựa chọn ngân hàng; Cuối vĩ môMacro với các đối số có thể được gọi theo cách sau:

...sản lượng TRISB, 7 ; Pin RB7 được cấu hình như sản lượng ...Khi gọi này vĩ mô, các quy định đầu tiên đối số TRISB được thay thế bằng các tham số đầu tiên đối_số1 trong định nghĩa macro. Tương tự như vậy, số 7 được thay thế bằng các đối số đối_số2, và các mã sau đây được tạo ra:

... BSF STATUS, RP0; Đặt RP0 bit = TRẠNG bcf BANK1, RP1; Thiết lập lại RP0 bit = BANK1 bcf TRISB, 7; Cấu hình RB7 là bcf STATUS đầu ra, RP0; Clear RP0 bit = BANK0 bcf STATUS, RP1; Clear bit RP1 = BANK0 ...Rõ ràng ngay từ cái nhìn đầu tiên mà chương trình trở nên dễ đọc hơn và linh hoạt bằng cách sử dụng các macro. Nhược điểm chính của vĩ mô là nó chiếm rất nhiều không gian bộ nhớ bởi vì mỗi tên vĩ mô trong một chương trình được thay thế bằng mã được xác định trước của nó. Do thực tế là chương trình thường sử dụng các macro, tất cả mọi thứ phức tạp hơn nếu nó được lâu dài.

callc nhãn vĩ mô; callc địa phương thoát vĩ mô; Xác định Nhãn địa phương trong xuất bnc vĩ mô; Nếu C nhảy 0 = đến nhãn gọi xuất; Nếu C = chương trình con gọi số 1 tại Nhãn địa chỉ (trong số vĩ mô) xuất; địa phương Label trong endm vĩ mô; End các vĩ mô

[email protected] - 131 - Call 01266020790

Page 132: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Trong trường hợp một macro có nhãn, chúng phải được định nghĩa là những địa phương bằng cách sử dụng chỉ thị địa phương. Các ví dụ đã nêu có các macro mà các cuộc gọi một chương trình con (gọi nhãn hiệu trong trường hợp này) nếu Carry bit của đăng ký TÌNH TRẠNG được thiết lập. Nếu không, sau lệnh đầu tiên được thực hiện.

Chương trình con

Asubroutine chứa một chuỗi các hướng dẫn, bắt đầu với một nhãn (subroutine_name) và kết thúc bằng lệnh trả lại hoặc retlw. Sự khác biệt chính so với vĩ mô là chương trình con không được thay thế bằng mã số của mình trong chương trình, nhưng chương trình nhảy đến chương trình con để thực hiện nó. Nó xảy ra mỗi khi lắp ráp các cuộc gặp gỡ lệnh Subroutine_name gọi trong chương trình. Trên lệnh trở về, nó để lại một chương trình con và tiếp tục thực hiện từ nơi nó rời khỏi chương trình chính. Chương trình con có thể được định nghĩa cả trước hoặc sau khi cuộc gọi.

Như đã thấy, liên quan đến các macro, các tham số đầu vào và đầu ra có tầm quan trọng rất lớn. Liên quan đến chương trình con, nó không thể định nghĩa các đối số trong các chương trình con riêng của mình. Tuy nhiên, các biến được xác định trước trong chương trình chính có thể được sử dụng như là đối số chương trình con.

Một trình tự hợp lý của các sự kiện như sau: xác định các biến, gọi chương trình con trong đó sử dụng chúng và ở cuối đọc biến đổi khi thực hiện các chương trình con.

Các chương trình trong ví dụ sau đây thực hiện thêm hai biến 2-byte ARG1 và ARG2 và kết quả chuyển đến các RES biến. Khi biến 2-byte được sử dụng, nó là cần thiết để xác định byte cao hơn và thấp hơn cho mỗi người trong số họ. Chương trình chính nó là rất đơn giản. Nó đầu tiên thêm byte thấp của các biến ARG1 và ARG2 và cao hơn sau đó. Nếu số tiền bổ sung của hai byte thấp hơn lớn hơn 255 (tối đa giá trị byte) phần còn lại được thêm vào biến RESH.

; Chương trình thêm hai-bit số 16; Phiên bản: 1.0 Ngày: ngày 25 tháng 4 năm 2007 MCU: PIC16F887 Processor 16f887; Xác định xử lý # include "p16f887.inc"; INC cơ sở dữ liệu Microchip __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC Cblock 0x20; Bắt đầu RAM ARG1H; Đối số 1 byte cao hơn ARG1L; Đối số 1 byte thấp ARG2H; Đối số 2 byte cao hơn ARG2L; Đối số 2 byte thấp RESH; kết quả cao hơn byte RESL; Kết quả byte thấp endc; Kết thúc của các biến ORG 0x00; Thiết lập lại vector goto Start Start; Viết giá trị cho biến movlw 0x01; ĐỐI_SỐ1 = 0x0104 movwf movlw 0x04 movwf ARG1H ARG1L movlw 0x07; ARG2 = 0x0705 movwf movlw 0x05 movwf ARG2H ARG2L chính; chính chương trình gọi Add16; Gọi chương trình con Add16 goto Loop Loop; Duy trì ở đây Add16; chương trình con thêm hai 16-bit số clrf RESH; RESH = 0 movf ARG1L, w, w = ARG1L addwf ARG2L, w, w = ARG2L movwf RESL + w; = btfsc RESL TRẠNG w, C; các kết quả lớn hơn 255? là incf RESH, f ; Nếu lớn hơn, RESH tăng bởi một movf ARG1H, w, w = ARG1H addwf ARG2H, w, w = w + ARG2 addwf RESH, f; RESH = w trở lại; Trở lại từ đầu chương trình con; Kết thúc chương trìnhTrong ngắn hạn

Sự khác biệt chính giữa các macro và chương trình con là vĩ mô đó là sau khi biên dịch thay thế bằng mã của nó (cho phép các lập trình để loại ít hơn). Nó cũng có thể có đối số, trong khi chương trình con sử dụng ít bộ nhớ, nhưng không có đối số.

MPLAB

MPLAB là một chương trình Windows gói cho phép chương trình dễ dàng bằng văn bản cũng như phát triển chương trình dễ dàng. Nó là tốt nhất để mô tả nó như là môi trường phát triển cho một ngôn ngữ chương trình tiêu chuẩn thiết kế cho các lập trình máy tính. MPLAB kỹ thuật đơn giản hóa một số hoạt động bao gồm rất nhiều thông số, trong đó, cho đến khi môi trường * IDE xuất hiện, đã được thực hiện từ dòng lệnh. Tuy nhiên, thị hiếu khác nhau và có một số người thích các biên tập viên lập trình tiêu chuẩn và trình biên dịch dòng lệnh. Mỗi chương trình được viết bằng MPLAB là rõ ràng, nhưng cũng có những tài liệu trợ giúp, chỉ trong trường hợp.

Cài đặt MPLAB

MPLAB bao gồm các phần:

Chương trình mà các loại tập tin dữ liệu của cùng một dự án vào một nhóm (Project Manager);chương trình để tạo ra các văn bản và chế biến (Text Editor); vàmô phỏng được sử dụng để mô phỏng hoạt động của một chương trình được nạp vào vi điều khiển.Bên cạnh đó, cũng có xây dựng trong lập trình chẳng hạn như PICStart Plus và ICD (Trong Circuit Debugger) có thể được sử dụng để chương trình phần mềm trong thiết bị vi điều khiển PIC. Vì không phải là chủ đề của cuốn sách này, chúng được đề cập như là lựa chọn duy nhất.

[email protected] - 132 - Call 01266020790

Page 133: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để bắt đầu MPLAB, máy tính của bạn cần có:

Máy tính tương thích máy tính thuộc lớp 486 hoặc tốt hơn;Bất kỳ hệ điều hành Windows;VGA card đồ họa;8MB bộ nhớ (32 MB đề nghị);200 MB có sẵn đĩa cứng, vàMột con chuột.MPLAB cài đặt đến trước. tập tin dữ liệu từ đĩa CD MPLAB cần được sao chép vào một đĩa cứng. Quá trình cài đặt cũng tương tự như hầu hết các cài đặt chương trình Windows khác. Đầu tiên của một cửa sổ chào đón tất cả các xuất hiện, sau đó lựa chọn để chọn và cài đặt mới nhất của chính nó. Một thông điệp thông báo rằng chương trình được cài đặt thành công và sẵn sàng để sử dụng xuất hiện. Bạn đã sẵn sàng?

Các bước tiếp theo trước khi cài đặt:

Bắt đầu Microsoft Windows;Đưa đĩa CD vào ổ đĩa CD ROM;Click START và chọn tùy chọn RUN chọn;Click BROWSE và chọn ổ đĩa CD ROM vàTìm thư mục MPLAB trên đĩa CD ROM.Mọi thứ đã sẵn sàng ngay bây giờ để bắt đầu cài đặt. Những hình ảnh sau đây mô tả các bước cài đặt.

Click vào biểu tượng này để bắt đầu quá trình ...

Một cái gì đó đang xảy ra ... Những hình ảnh sắp tới cho thấy quá trình cài đặt đã chỉ mới bắt đầu!

Tiếp theo cửa sổ chứa các chữ "Chào mừng". Cần giải thích?

Trên thực tế, chương trình nhắc nhở bạn để đóng tất cả chương trình hoạt động để không ảnh hưởng đến quá trình cài đặt. Tiếp theo của khóa học!

Trước khi tiếp tục, bạn phải chấp nhận điều kiện MPLAB giấy phép phần mềm. Chọn tùy chọn "Tôi chấp nhận" và bấm vào KẾ TIẾP.

Bạn có muốn cài đặt phần mềm toàn bộ? Có. Tiếp theo ...

Tương tự như các chương trình khác, MPLAB cần được cũng được cài đặt vào một thư mục. Nó có thể là bất kỳ thư mục trên bất kỳ đĩa cứng. Nếu nó không phải là cần thiết để thực hiện thay đổi, chọn địa chỉ định và click Next.

Một giấy phép, chấp nhận các tùy chọn khác theo quy định của máy tính ... Tiếp theo, tiếp theo ...

Hãy kiên nhẫn!

Cuối cùng! Đây là những gì bạn đã được chờ đợi. Nhấp vào Finish. Các máy tính sẽ được khởi động cùng với các chương trình được lưu trên đĩa cứng. Mọi thứ đều OK!

Nhấp vào biểu tượng máy tính để bàn MPLAB để bắt đầu chương trình và tìm hiểu về nó.

Như đã thấy, MPLAB cũng tương tự như hầu hết các chương trình Windows. Ngoài khu vực làm việc, có các menu (chứa các tùy chọn: File, Edit, vv), thanh công cụ (chứa các biểu tượng khác nhau) và một thanh trạng thái phía dưới cửa sổ. Tương tự như Windows, có một quy định phải có các phím tắt cho các tùy chọn chương trình thường được sử dụng tạo ra để dễ dàng [email protected] - 133 - Call 01266020790

Page 134: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM truy cập chúng và tăng tốc độ hoạt động do. Những phím tắt thật sự biểu tượng dưới thanh menu. Nói cách khác, tất cả tùy chọn có trong thanh công cụ nằm trong trình đơn quá.

DỰ ÁN LÀM

Thực hiện theo các bước sau để chuẩn bị chương trình để nạp vào vi điều khiển:

Thực hiện một dự án;Viết chương trình; vàBiên dịch nó.Để thực hiện một dự án, cần nhấp vào tùy chọn "DỰ ÁN" và sau đó "DỰ ÁN WIZARD". Một cửa sổ chào mừng xuất hiện.

Tiếp tục thực hiện dự án bằng cách nhấp vào NEXT. Sau đó, chọn bộ vi điều khiển, bạn sẽ được sử dụng.

Trong trường hợp của chúng tôi, đó là vi điều khiển PIC16F887.

Cuối cùng, dự án được phân công một tên mà thường chỉ ra mục đích và nội dung của chương trình được viết. Dự án sẽ được di chuyển đến thư mục mong muốn. Nó là tốt nhất mà các liên kết thư mục với vi điều khiển PIC (Xem hình).

Các tài liệu có trong dự án không luôn luôn cần phải được viết bằng MPLAB. Tài liệu được viết bởi một số chương trình khác cũng có thể được bao gồm trong dự án. Trong ví dụ này, không có văn bản đó. Chỉ cần nhấp vào Next.

Click FINISH để hoàn thành dự án. Các cửa sổ chính nó chứa các thông số dự án.

Một VIẾT CHƯƠNG TRÌNH MỚI

Khi dự án được tạo ra, một cửa sổ hiển thị trong hình dưới đây xuất hiện.

Bước tiếp theo là viết một chương trình. Mở một tài liệu mới bằng cách nhấp vào tập tin mới>. Text Editor trong MPLAB môi trường xuất hiện.

Lưu tài liệu trong thư mục D: \ dự án PIC bằng cách sử dụng File> Save As lệnh và đặt tên là "Blink.asm" cho thấy rằng chương trình này là một ví dụ của diode cổng nhấp nháy. Rõ ràng là bạn có thể xác định vị trí bạn tập tin bất cứ nơi nào bạn muốn, ở bất cứ ổ cứng bạn muốn. Sử dụng một thư mục thông thường để lưu trữ tất cả các dự án khác nhau và thư mục con trong làm cho cảm giác tốt.

Ví dụ:

D: \ Pic dự án LED Flash dự án Tất cả các file có liên quan tổ chức sự kiện Số dự án Tất cả các file liên quan LED quét dự án Tất cả các tập tin liên quan

Sau khi "Blink.asm" được tạo ra và lưu lại, nó cần được bao gồm trong dự án bằng cách click chuột phải vào tùy chọn "Source Files" trong cửa sổ "Proba.mcw". Sau đó, một cửa sổ nhỏ với hai lựa chọn xuất hiện. Chọn một trong những đầu tiên "Add Files".

Click vào tùy chọn mở ra một cửa sổ chứa các PIC thư mục cùng với các Blink.asm tài liệu. Xem hình dưới đây.

Nhấp vào "Blink" để bao gồm các Blink.asm tài liệu vào dự án.

Ví dụ chương trình bằng văn bản

Các chương trình bằng văn bản thủ tục không thể bắt đầu cho đến khi tất cả các hoạt động trước đó đã được thực hiện. Chương trình được viết dưới đây là một minh họa đơn giản của dự án làm.

[email protected] - 134 - Call 01266020790

Page 135: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ; Chương trình đặt chân cổng B để một logic (1) 16f887.; Phiên bản: 1.0 Ngày: April 25,2007 MCU: PIC16F887 Lập trình viên: John Smith ;***** Tuyên bố và cấu hình của bộ vi điều khiển ***** Processor # include "p16f887.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;***** biến khai ***** Cblock 0x20, vị trí đầu tiên miễn phí RAM endc; Không có biến ;;***** Chương trình cấu trúc bộ nhớ * **** ORG 0x00; Thiết lập lại vector goto chính; Sau khi nhảy đặt lại vị trí này ORG 0x04; ngắt vector goto chính; Không có thường xuyên bị gián đoạn chính; Bắt đầu chương trình banksel TRISB; ngân hàng Chọn chứa TRISB clrf TRISB; Port B được cấu hình như đầu ra banksel PORTB; Chọn ngân hàng có chứa movlw 0xFF PORTB; W = FF movwf PORTB; Di chuyển W đến cổng B goto Loop Loop; Bước tới nhãn Loop EndChương trình này nên được ghi vào "Blink.asm 'cửa sổ hoặc sao chép từ đĩa qua các tùy chọn sao chép / dán. Khi sao chép, chương trình phải được lập thành định dạng HEX thực thi bằng cách sử dụng tùy chọn DỰ ÁN -> BUILD TẤT CẢ. Một cửa sổ mới xuất hiện. Câu cuối cùng là quan trọng nhất bởi vì nó cho chúng ta rằng liệu biên soạn đã thành công hay không. Rõ ràng, 'BUILD thành côngthông điệp có nghĩa là không xảy ra lỗi và biên dịch đã được thực hiện thành công.

Trong trường hợp lỗi xảy ra, nó là cần thiết để nhấp đúp chuột vào thông báo đề cập đến nó trong cửa sổ 'đầu ra', tự động chuyển bạn qua chương trình lắp ráp, trực tiếp đến đường dây, nơi các lỗi đã xảy ra.

MÔ PHỎNG

Asimulator là một phần của môi trường MPLAB cung cấp cái nhìn sâu sắc hơn vào các hoạt động của vi điều khiển. Nói chung, mô phỏng là một cố gắng để mô hình một cuộc sống thực hoặc tình huống giả định để nó có thể được nghiên cứu để xem cách các công trình hệ thống. Bằng phương tiện mô phỏng, nó cũng có thể theo dõi các giá trị hiện tại của các biến, đăng ký và cảng chân nước là tốt. Thành thật mà nói, giả lập không phải là tầm quan trọng như nhau cho tất cả các chương trình. Nếu một chương trình đơn giản (như trong ví dụ của chúng tôi), mô phỏng không phải là quan trọng bởi vì đặt chân cổng B để logic một (1) không phải là phức tạp cả. Tuy nhiên, trong các chương trình phức tạp hơn có tính giờ, điều kiện khác nhau và yêu cầu (đặc biệt là toán học hoạt động), các mô phỏng có thể được sử dụng rất lớn. Như tên chính cho biết, mô phỏng một phương tiện để mô phỏng hoạt động của vi điều khiển. Giống như các vi điều khiển, mô phỏng một hướng dẫn thi hành cái khác (từng dòng) và liên tục cập nhật tình trạng của tất cả các đăng ký. Bằng cách này, người dùng chỉ cần theo dõi thực hiện chương trình. Khi kết thúc chương trình bằng văn bản, người sử dụng đầu tiên cần phải thử nghiệm nó trong các mô phỏng trước khi thực hiện nó trong một môi trường thực tế. Thật không may, đây là một trong nhiều điều tốt đẹp đang được bỏ qua bởi các lập trình viên vì nhân vật của mình như vậy và sự thiếu mô phỏng chất lượng cao là tốt.

Simulator được kích hoạt bằng cách nhấp vào gỡ rối> SELECT TOOL> MPLAB SIM, như trong hình. Kết quả là, một số các biểu tượng liên quan đến giả lập các chỉ xuất hiện. ý nghĩa của chúng như sau:

Bắt đầu thực hiện chương trình ở tốc độ cao. Trong ví dụ này, giả lập thực thi các chương trình ở tốc độ (bình thường) đầy đủ cho đến khi nó phải dừng lại bằng cách nhấn vào biểu tượng dưới đây.

Tạm dừng thực hiện chương trình. Chương trình có thể tiếp tục thực hiện từng bước hoặc ở tốc độ cao một lần nữa.

Bắt đầu thực hiện chương trình ở tốc độ tùy chọn. Tốc độ thực hiện được đặt trong hộp thoại Debugger / Settings / Animation / thời gian thực thông tin cập nhật.

Bắt đầu từng bước thực hiện chương trình. Các hướng dẫn được thực hiện một. Hơn nữa, cách nhấp vào biểu tượng này cho phép bạn để bước vào chương trình con và macro.

Biểu tượng này có chức năng tương tự như trước đó, ngoại trừ nó có khả năng để bước vào chương trình con.

Đặt lại vi điều khiển. Bằng cách nhấn vào biểu tượng này, chương trình truy cập được đặt tại đầu của chương trình và mô phỏng có thể bắt đầu.

Tương tự như môi trường thực tế, điều đầu tiên cần được thực hiện là thiết lập lại các vi điều khiển bằng cách sử dụng tùy chọn gỡ rối> RESET hoặc bằng cách nhấp vào biểu tượng thiết lập lại. Như là hậu quả của điều này, một đường màu xanh lá

[email protected] - 135 - Call 01266020790

Page 136: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM cây được đặt ở đầu của chương trình và chương trình PCL truy cập được xóa về không. Hãy tham khảo những cửa sổ đặc biệt Đăng ký chức năng hiển thị dưới đây.

Ngoài SFR, nó là tốt để có một cái nhìn sâu sắc trong Tập tin Đăng ký. Một cửa sổ có chứa chúng xuất hiện bằng cách nhấn vào -> FILE XEM SỔ tùy chọn.

Nếu chương trình có chứa các biến, nó là tốt để theo dõi các giá trị của họ. Mỗi biến được chỉ định một cửa sổ (Xem Windows) bằng cách nhấp vào VIEW-> WATCH tùy chọn.

Nếu chương trình có chứa các biến, nó là tốt để theo dõi các giá trị của họ. Mỗi biến được chỉ định một cửa sổ (Watch Windows) bằng cách nhấp vào VIEW-> WATCH tùy chọn.

Sau khi tất cả các biến và đăng ký sự quan tâm trở thành có sẵn trên các khu vực làm việc mô phỏng, mô phỏng quá trình có thể bắt đầu. Các chỉ lệnh kế tiếp có thể là bước vào hoặc Bước qua tùy thuộc vào việc bạn muốn bước vào chương trình con hay không. Các hướng dẫn tương tự có thể được thiết lập bằng cách sử dụng bàn phím-push-nút <F7> hoặc <F8> (nói chung, tất cả các chỉ dẫn quan trọng có các nút bấm tương ứng trên bàn phím).

Email: [email protected] ToolsCompilersAccessory BoardsSpecial OffersEasy BuyPublicationsSupportProjectsDownloadSách: bộ vi điều khiển PICTOCGiới thiệuCh. 1Ch. 2Ch. 3Ch 4.Ch. 5Ch. 6Ch. 7Ch. 8Ch. 9App. AApp. BApp. CPhụ lục B: Ví dụ

Mục đích của chương này là cung cấp các thông tin cơ bản về vi điều khiển mà một người cần phải biết để có thể sử dụng chúng thành công trong thực tế. Chương này, do đó, không chứa bất kỳ chương trình siêu thú vị hoặc thiết bị đồ với các giải pháp tuyệt vời. Thay vào đó, các ví dụ sau đây có nhiều bằng chứng cho thấy chương trình bằng văn bản không phải là một đặc ân và cũng không đưa ra một tài năng nhưng khả năng của đơn giản là đặt mảnh ghép với nhau bằng cách sử dụng chỉ thị. Hãy yên tâm rằng thiết kế và phát triển của các thiết bị chủ yếu bao gồm những điều sau đây phương pháp "thử nghiệm lặp lại đúng". Tất nhiên, càng có nhiều bạn đang ở trong nó phức tạp hơn nó sẽ trở thành từ những mảnh ghép được đặt cùng nhau bởi cả trẻ em và các kiến trúc sư hạng nhất ...

Kết nối cơ bản

Như đã thấy trong hình dưới đây, để kích hoạt các vi điều khiển hoạt động đúng nó là cần thiết để cung cấp:

Nguồn cung cấp;Thiết lập lại tín hiệu, vàTín hiệu đồng hồ.

Rõ ràng, đó là về các mạch đơn giản, nhưng nó không phải lúc nào cũng được như thế. Nếu các thiết bị mục tiêu được sử dụng cho việc kiểm soát các máy đắt tiền hoặc duy trì các chức năng quan trọng, tất cả mọi thứ được nhiều hơn và phức tạp hơn! Tuy nhiên, giải pháp này là đủ cho thời gian được ...

Nguồn điện

Mặc dù các PIC16F887 có thể hoạt động ở điện áp cung cấp khác nhau, tại sao lại để kiểm tra "của Murphy thấp"? Một nguồn điện 5DC được hiển thị ở trên. Mạch, sử dụng một bộ điều chỉnh ba-ga giá rẻ tích hợp tích cực, LM7805, cung cấp chất lượng cao và khá ổn định điện áp đủ để cho phép hiện hành vi điều khiển và điện tử ngoại vi để hoạt động bình thường (đủ trong trường hợp này có nghĩa là 1Amp).

RESET SIGNAL

[email protected] - 136 - Call 01266020790

Page 137: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Để các vi điều khiển có thể hoạt động đúng cách, một logic (VCC) phải được áp dụng trên các pin thiết lập lại nó giải thích các kết nối pin-điện trở 10K-VCC. The-nhấn nút kết nối MCLR pin thiết lập lại để GND là không cần thiết. Tuy nhiên, nó gần như luôn luôn được cung cấp bởi vì nó cho phép sự trở lại vi điều khiển an toàn với điều kiện hoạt động bình thường khi gặp sự cố. Bằng việc nhấn nút này, 0V được đưa đến chân, vi điều khiển được thiết lập lại và thực hiện chương trình bắt đầu từ đầu. Các điện trở 10K là có cho phép 0V được áp dụng cho các chân MCLR, thông qua các nút đẩy, mà không shorting đường sắt 5VDC xuống đất.

CLOCK SIGNAL

Mặc dù vi điều khiển đã được xây dựng trong bộ dao động, nó không thể hoạt động mà không có các thành phần bên ngoài mà hoạt động ổn định và xác định tần số của nó (hoạt động tốc độ của bộ vi điều khiển). Tùy thuộc vào các yếu tố được sử dụng cũng như tần số của mình, các bộ dao động có thể chạy trong bốn chế độ khác nhau:

LP - Low Power Crystal;XT - Crystal / tiê ng kêu vang;HS - tốc độ cao Crystal / tiê ng kêu vang; vàRC - Điện trở / Tụ.

Tại sao các chế độ này rất quan trọng? Do thực tế là nó gần như không thể thực hiện một bộ dao động ổn định, hoạt động trên một dải tần số rộng, các vi điều khiển phải biết được tinh thể được kết nối theo thứ tự mà nó có thể điều chỉnh hoạt động của các thiết bị điện tử nội bộ của mình cho nó. Đây là lý do tại sao tất cả các chương trình được sử dụng để nạp chip có chứa một tùy chọn để lựa chọn chế độ dao động. Xem ở trên hình.

Thạch anh cộng hưởng

Khi một tinh thể thạch anh được sử dụng để ổn định tần số, được xây dựng trong bộ dao động hoạt động ở một tần số rất chính xác đó là cô lập từ những thay đổi về nhiệt độ và điện áp cung cấp điện năng là tốt. tần số này thường được gắn nhãn trên bao bì vi điều khiển.

Ngoài các tinh thể, tụ điện C1 và C2 phải có thêm kết nối theo sơ đồ dưới đây. điện dung của họ không phải là quan trọng, do đó, các giá trị được cung cấp trong bảng có thể được coi như là một đề nghị hơn là một quy tắc nghiêm ngặt.

Gạch cộng hưởng

Gạch cộng hưởng là rẻ hơn, nhưng rất tương tự như thạch anh bởi chức năng của nó và cách hoạt động. Đây là lý do tại sao các sơ đồ minh họa kết nối của họ để vi điều khiển là giống nhau. Tuy nhiên, giá trị tụ điện là một chút khác nhau trong trường hợp này do các tính năng khác nhau điện. Tham khảo bảng.

Những dao động được sử dụng khi nó không phải là cần thiết để có tần số cực kỳ chính xác.

Bộ dao động RC

Nếu tần số hoạt động không phải là quan trọng thì không cần cho các thành phần bổ sung đắt đối với sự ổn định. Thay vào đó, một mạng RC đơn giản, như thể hiện trong hình dưới đây, sẽ là đủ. Vì chỉ có đầu vào của đầu vào dao động địa phương được sử dụng ở đây, tín hiệu đồng hồ với / 4 Fosc tần số sẽ xuất hiện trên các pin OSC2. Hơn nữa, tần số sẽ trở thành hoạt động thường xuyên của vi điều khiển, tức là tốc độ thực hiện lệnh.

Bộ dao động bên ngoài

Nếu nó là cần thiết để đồng bộ hóa các hoạt động của một số vi điều khiển hoặc nếu vì lý do nào đó không thể sử dụng bất kỳ sơ đồ trước đó, một tín hiệu đồng hồ có thể được tạo ra bởi một bộ dao động bên ngoài. Hãy tham khảo những con số dưới đây.

CÁC LINH

[email protected] - 137 - Call 01266020790

Page 138: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Bất kể một thực tế là vi điều khiển là một sản phẩm của công nghệ hiện đại, nó là không sử dụng mà không được kết nối với các thành phần bổ sung. Đơn giản, sự xuất hiện của điện áp trên các chân vi điều khiển là vô nghĩa nếu không được sử dụng để thực hiện các hoạt động nhất định (một cái gì đó bật / tắt, thay đổi, hiển thị, vv.)

Phần này cố ý chỉ bao gồm phổ biến nhất được sử dụng thành phần bổ sung trong thực tế chẳng hạn như điện trở, bóng bán dẫn, điốt LED, màn hình LED, màn hình LCD và mạch giao tiếp RS232.

TẮC VÀ PUSH-NÚT

Không có gì đơn giản hơn chuyển mạch và push-nút! Điều này chắc chắn là cách đơn giản phát hiện sự xuất hiện của một điện áp trên chân đầu vào vi điều khiển và không có nhu cầu giải thích thêm về cách các thành phần này hoạt động. Tuy nhiên, nó không phải là đơn giản như vậy trong thực tế ... Sau đó, đó là những gì tất cả về?

Đó là việc liên hệ với thư bị trả lại-một vấn đề phổ biến với các thiết bị chuyển mạch cơ khí. Khi cuộc đình công liên lạc với nhau, động lực của họ và hành động đàn hồi với nhau để gây ra thư bị trả lại. Kết quả là một cách nhanh chóng xung dòng điện thay vì một quá trình chuyển đổi sạch từ số không đến đầy đủ hiện nay. Nói chung, nó chủ yếu xảy ra do sự rung động, các điểm thô nhẹ và bụi bẩn giữa địa chỉ liên lạc. Hiệu ứng này thường là không đáng kể khi sử dụng các thành phần trong cuộc sống hàng ngày vì bị trả xảy ra quá nhanh làm ảnh hưởng đến thiết bị nhất, nhưng gây ra vấn đề trong một số mạch tương tự và logic mà đáp ứng đủ nhanh để hiểu sai các xung vào-ra như là một luồng dữ liệu. Dù sao, toàn bộ quá trình này không kéo dài lâu (một vài micro-hoặc mili giây), nhưng đủ lâu để được đăng ký của vi điều khiển. Khi sử dụng chỉ một nút ấn là một xung truy cập, sai sót xảy ra ở gần như 100% các trường hợp!

Vấn đề này có thể dễ dàng giải quyết bằng cách kết nối một mạch RC đơn giản để ngăn chặn những thay đổi nhanh chóng điện áp. Kể từ thời kỳ bị trả không xác định, các giá trị của các thành phần không xác định chính xác. Trong hầu hết trường hợp, bạn nên sử dụng các giá trị như trong hình dưới đây.

Nếu ổn định hoàn toàn là cần thiết sau đó các biện pháp cấp tiến phải được thực hiện! Các đầu ra của mạch, được thể hiện trong hình dưới đây (RS flip-flop), sẽ thay đổi trạng thái logic của nó chỉ sau khi phát hiện xung đầu tiên kích hoạt bởi trả lại liên lạc. Giải pháp này là tốn kém hơn (SPDT switch), nhưng vấn đề là chắc chắn được giải quyết!

Ngoài các giải pháp phần cứng, đó cũng là một giải pháp phần mềm đơn giản. Khi một chương trình kiểm tra trạng thái của một pin vào và phát hiện một thay đổi, việc kiểm tra nên được thực hiện một lần nữa sau khi một sự chậm trễ nhất định. Nếu chương trình xác nhận việc thay đổi, nó có nghĩa là một chuyển đổi / nút ấn, đã thay đổi vị trí của nó. Ưu điểm của giải pháp đó là hiển nhiên: đó là miễn phí, ảnh hưởng của tiếng ồn được loại bỏ và nó có thể được áp dụng cho các số liên lạc có chất lượng kém hơn là tốt.

RELAY

relay là một công tắc điện đóng mở dưới sự kiểm soát của một mạch điện. Do đó, kết nối với các chân ra của vi điều khiển và được sử dụng để bật / tắt các thiết bị năng lượng cao như động cơ, máy biến áp, máy sưởi, bóng đèn, vv Các thiết bị này hầu như luôn luôn được đặt ra từ Hội đồng thành phần nhạy cảm. Có nhiều loại chuyển tiếp, nhưng tất cả đều hoạt động trong cùng một cách. Khi một dòng điện chạy qua cuộn dây, chuyển tiếp được điều hành bởi một điện từ để mở hoặc đóng một hoặc nhiều nhóm liên lạc. Tương tự như optocouplers, không có kết nối galvanic (điện liên hệ) giữa các mạch đầu vào và đầu ra. Rơle thường yêu cầu cả hai cao hơn điện áp và hiện tại để bắt đầu hoạt động nhưng cũng có những thu nhỏ mà có thể được kích hoạt bởi một thấp hiện trực tiếp thu được từ một pin vi điều khiển.

Con số này cho thấy giải pháp thông dụng nhất.

Để ngăn chặn sự xuất hiện của cảm ứng điện áp cao tự do dừng lại đột ngột của dòng điện qua cuộn dây, một diode phân cực ngược được kết nối song song với cuộn dây. Mục đích của diode này là để "cắt bỏ" các cao điểm điện áp.

LED diode

Bạn có thể biết tất cả các bạn cần biết điốt về LED, nhưng chúng ta cũng nên suy nghĩ của thế hệ trẻ ... Làm thế nào để tiêu diệt một LED? Vâng ... Rất đơn giả[email protected] - 138 - Call 01266020790

Page 139: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

Nhanh chóng đốt cháyGiống như bất kỳ diode khác, đèn LED có hai kết thúc một cực dương và cực âm một. Kết nối nó đúng với một điện áp cung cấp điện. Các diode phát ra ánh sáng hạnh phúc sẽ. Biến nó lộn ngược và áp dụng các điện áp cung cấp điện năng như nhau (thậm chí cho một thời điểm). Nó sẽ không phát ra ánh sáng, không bao giờ LẠI!

Chậm cháyCó một, tối đa tức là danh nghĩa hiện hành xác định cho mỗi LED mà không được vượt quá. Nếu điều đó xảy ra, các đi-ốt sẽ phát ra nhiều ánh sáng chuyên sâu, nhưng không phải trong một thời gian dài!

Một cái gì đó để nhớTương tự như ví dụ trước, tất cả các bạn cần làm là để loại bỏ một điện trở hạn chế hiện hành được hiển thị dưới đây. Tùy thuộc vào điện áp cung cấp điện, hiệu quả có thể là ngoạn mục!

Màn hình LED

Về cơ bản, đèn LED hiển thị là gì khác hơn một số đèn LED đúc nhựa trong trường hợp tương tự. Có nhiều loại màn hình bao gồm vài chục xây dựng trong các điốt có thể hiển thị các biểu tượng khác nhau. Việc phổ biến nhất được sử dụng là như vậy gọi là 7-phân đoạn hiển thị. Nó bao gồm 8 đèn LED-7 phân đoạn được bố trí như hình chữ nhật cho biểu tượng hiển thị và có một phần bổ sung cho các điểm thập phân hiển thị. Để đơn giản hóa kết nối, cực dương hoặc cực âm của tất cả các điốt được kết nối với các pin thông thường để có màn hình cực dương phổ biến và hiển thị âm cực phổ biến, tương ứng. Các phân đoạn được đánh dấu bằng các ký tự từ một đến g, cộng với dp, như trong hình dưới đây. Về kết nối, mỗi diode là xử lý riêng, có nghĩa là phải có quy hiện hành của mình trở giới hạn.

Dưới đây là một vài điều quan trọng mà ta nên chú ý khi mua màn hình LED:

Tuỳ thuộc vào việc cực dương hoặc cực âm được kết nối với các pin thông thường, có hiển thị cực dương thông thường và hiển thị cực âm chung. Con số trên cho thấy một màn hình cực dương thông thường. Nhìn vào các tính năng vật lý, không có sự khác biệt giữa các màn hình này ở tất cả vì vậy bạn nên kiểm tra cẩn thận cài đặt trước đó của họ đang được sử dụng;Đối với mỗi chân vi điều khiển, có một hạn chế tối đa hiện tại nó có thể nhận hoặc gửi. Do đó, nếu một số hiển thị được kết nối với vi điều khiển nó là rec ommended sử dụng như vậy gọi là thấp hiện nay chỉ sử dụng đèn LED 2mA cho hoạt động; vàHiển thị các đoạn thường được đánh dấu bằng các ký tự từ một đến g, nhưng không có quy tắc nhanh chóng chỉ ra mà vi điều khiển chân họ nên được kết nối. Vì lý do này là rất quan trọng để kiểm tra kết nối trước khi bắt đầu chương trình bằng văn bản hoặc thiết kế một thiết bị.Hiển thị kết nối với vi điều khiển thường chiếm một số lượng lớn của tôi có giá trị / chân O, có thể là một vấn đề lớn, đặc biệt là khi nó là cần thiết để hiển thị con số đa số. Vấn đề là nhiều hơn rõ ràng nếu, ví dụ, nó là cần thiết để hiển thị hai số 6 chữ số (một phép tính đơn giản cho thấy rằng 96 chân ra là cần thiết trong trường hợp này)! Vấn đề này đã có một giải pháp được gọi là ghép kênh.

Đây là một ảo ảnh quang học như thế nào dựa trên nguyên tắc hoạt động như máy quay phim được thực hiện. Chỉ có một chữ số tại một thời điểm đang hoạt động, nhưng chúng thay đổi trạng thái của họ một cách nhanh chóng là một trong những bị ấn tượng rằng tất cả các chữ số của một số đang hoạt động đồng thời.

Dưới đây là một lời giải thích về các con số trên. Lần đầu tiên một byte đại diện đơn vị được áp dụng trên một cổng vi điều khiển và một transistor T1 được kích hoạt đồng thời. Sau một lúc, các bóng bán dẫn T1 bị tắt, một byte đại diện cho hàng chục được áp dụng trên một cổng và T2 bóng bán dẫn được kích hoạt. Quá trình này đang được cyclically lặp đi lặp lại ở tốc độ cao cho tất cả các chữ số và các bóng bán dẫn tương ứng.

Một thực tế đáng thất vọng mà chỉ ra rằng vi điều khiển chỉ là một loại máy tính thu nhỏ được thiết kế chỉ để hiểu ngôn ngữ của số không và những người hoàn toàn thể hiện khi hiển thị bất kỳ con số. Cụ thể, các vi điều khiển không biết các đơn vị, hàng chục hoặc hàng trăm được, cũng không phải những gì mười chữ số chúng ta sử dụng như thế nào. Vì vậy, mỗi con số được hiển thị phải đi qua các thủ tục sau đây:

Trước hết, trong một chương trình con đặc biệt một số đa số phải được phân chia thành các đơn vị, hàng chục vv Sau đó, chúng phải được lưu trữ trong mỗi byte đặc biệt. Chữ số có được định dạng dễ nhận biết bằng cách thực hiện "mặt nạ". Nói cách khác, một định dạng nhị phân của từng con số được thay thế bởi một sự kết hợp khác nhau của các bit bằng cách sử [email protected] - 139 - Call 01266020790

Page 140: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM dụng một chương trình con đơn giản. Ví dụ, các chữ số 8 (0000 1000) được thay thế bằng số nhị phân 0111 1111 để kích hoạt tất cả các đèn LED hiển thị chữ số 8. Các diode duy nhất còn lại không hoạt động trong trường hợp này được dành riêng cho các điểm thập phân.

Nếu một cổng vi điều khiển được kết nối với màn hình trong một cách mà bit 0 kích hoạt đoạn "a", bit 1 sẽ kích hoạt đoạn "b", bit 2 phân khúc "c", vv, sau đó bảng dưới đây cho thấy mặt nạ cho mỗi chữ số.

CHỮ SỐ ĐỂ HIỂN THỊ HIỂN THỊ CÁC PHÂN ĐOẠNdp một b c d e f g0 0 1 1 1 1 1 1 01 0 0 1 1 0 0 0 02 0 1 1 0 1 1 0 13 0 1 1 1 1 0 0 14 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 16 0 1 0 1 1 1 1 17 0 1 1 1 0 0 0 08 0 1 1 1 1 1 1 19 0 1 1 1 1 0 1 1Ngoài các chữ số từ 0 đến 9, có một số chữ cái-A, C, E, J, F, c U, H, L, b, d, o, r, t-mà có thể cũng được hiển thị bằng phương tiện các mặt nạ thích hợp.

Trong trường hợp các màn hình cực dương thông thường được sử dụng, tất cả những người có trong bảng trước đó nên được thay thế bằng số không và ngược lại. Ngoài ra, các transistor NPN được sử dụng như các trình điều khiển là tốt.

OPTOCOUPLER

optocoupler An là một thiết bị thường được sử dụng để vi điều khiển điện tử galvanically riêng biệt từ bất kỳ khả năng nguy hiểm hiện tại hoặc điện áp trong môi trường xung quanh. Optocouplers thường có một, hai hoặc bốn nguồn ánh sáng (LED diode) trên đầu vào của họ trong khi đầu ra của mình, đối diện với điốt, có cùng một số yếu tố nhạy cảm với ánh sáng (phototransistors, hình ảnh hoặc hình ảnh thyristors triacs). Vấn đề là optocoupler một sử dụng một đường truyền dẫn ngắn quang học để truyền tín hiệu giữa các thành phần của mạch điện, trong khi vẫn giữ chúng bằng điện cô lập. cô lập này có ý nghĩa chỉ khi điốt và các yếu tố hình ảnh nhạy cảm được cấp nguồn riêng. Bằng cách này, các vi điều khiển và điện tử đắt tiền bổ sung là hoàn toàn được bảo vệ từ điện áp cao và tiếng ồn mà là nguyên nhân phổ biến nhất của hoạt động phá hoại, làm hư hỏng hoặc không ổn định của các thiết bị điện tử trong thực tế. Các optocouplers thường xuyên nhất được sử dụng là những người có phototransistors về kết quả đầu ra của họ. Ngoài ra, optocouplers với nội bộ cơ sở-to-pin 6 Kết nối Internet (cũng có optocouplers mà không có nó), các cơ sở có thể được để lại chưa được nối.

The R / C được đại diện bởi mạng lưới đường gãy trong hình trên biểu thị tùy chọn kết nối mà làm giảm các tác động của tiếng ồn bằng cách loại bỏ các xung ngắn.

Màn hình LCD

Thành phần này đặc biệt được sản xuất để được sử dụng với vi điều khiển, có nghĩa là nó không thể được kích hoạt theo tiêu chuẩn của các mạch IC. Nó được sử dụng để hiển thị thông điệp khác nhau trên một màn hình tinh thể lỏng nhỏ. Các mô hình mô tả ở đây là giá thấp và khả năng lớn thường xuyên nhất được sử dụng trong thực tế. Nó dựa trên bộ vi điều khiển HD44780 (Hitachi) và có thể hiển thị tin nhắn trong hai dòng với 16 ký tự. Nó hiển thị tất cả các ký tự của bảng chữ cái, chữ cái Hy Lạp, dấu chấm câu, các ký hiệu toán học, vv Ngoài ra, nó có thể hiển thị các biểu tượng được tạo thành bởi người dùng. tính năng hữu dụng khác bao gồm thay đổi tin nhắn tự động (trái và phải), con trỏ xuất hiện, đèn nền LED, vv

Cùng một mặt của một hội đồng in nhỏ có chân được sử dụng để kết nối với vi điều khiển. Có tổng cộng là 14 chân được đánh dấu bằng số (16 nếu đèn nền được xây dựng). Chức năng của chúng được mô tả trong bảng dưới đây:

CHỨC NĂNG PIN SỐ TÊN LOGIC NHÀ NƯỚC MÔ TẢGround 1 VSS - 0VNguồn cung cấp 2 Vdd - +5 VTương phản 3 Vee - 0 - [email protected] - 140 - Call 01266020790

Page 141: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Kiểm soát các hoạt động 4 RS 01 D0 - D7 được hiểu là các lệnhD0 - D7 được hiểu như dữ liệu5 R / W 01 Ghi dữ liệu (từ bộ điều khiển cho màn hình LCD)Đọc dữ liệu (từ màn hình LCD để điều khiển)6 E 01Từ 1-0 Truy cập vào LCD tàn tậtHoạt động bình thườngDữ liệu / lệnh được chuyển giao cho LCDDữ liệu / lệnh 7 D0 0 / 1 Bit 0 LSB8 D1 0 / 1 Bit 19 D2 0 / 1 Bit 210 D3 0 / 1 Bit 311 D4 0 / 1 Bit 412 D5 0 / 1 Bit 513 D6 0 / 1 Bit 614 D7 0 / 1 Bit 7 MSBMàn hình LCD

Màn hình LCD bao gồm hai dòng với 16 ký tự. Mỗi nhân vật bao gồm 5x8 hoặc 5x11 dot-ma trận. Cuốn sách này bao gồm màn hình hiển thị ký tự 5x8, đó thực sự là thông dụng nhất.

Màn hình độ tương phản phụ thuộc vào điện áp cung cấp điện và có thông điệp được hiển thị trong một hoặc hai dòng. Vì lý do này, thay đổi điện áp 0-VDD được áp dụng trên chân đánh dấu là Vee. Trimmer chiết thường được sử dụng cho mục đích đó. Một số màn hình LCD đã xây dựng trong ánh sáng nền (màu xanh hoặc màu xanh lá cây diode). Khi được sử dụng trong quá trình hoạt động, một hạn chế hiện nay trở nên được tuần tự kết nối với một trong các chân cho đèn nền (tương tự như điốt LED).

Nếu không có các ký tự hiển thị hoặc nếu tất cả chúng đều bị làm mờ đi khi màn hình được bật, điều đầu tiên cần thực hiện là kiểm tra các chiết áp điều chỉnh độ tương phản. Có phải điều chỉnh đúng? cũng áp dụng nếu các phương thức hoạt động đã được thay đổi (bằng văn bản trong một hoặc hai dòng).

LCD Memory

LCD hiển thị có ba khối bộ nhớ:

DDRAM - Hiển thị dữ liệu RAM;CGRAM - Ký tự phát RAM; vàCGROM - Ký tự phát ROM.Bộ nhớ DDRAM

bộ nhớ DDRAM được sử dụng cho các nhân vật lưu trữ đó sẽ được hiển thị. Kích thước của bộ nhớ này là đủ để lưu trữ 80 ký tự. Một số vị trí bộ nhớ được kết nối trực tiếp với các nhân vật trên màn hình.

Nó hoạt động khá đơn giản: đó là đủ để cấu hình hiển thị địa chỉ tự động tăng (phải thay đổi) và thiết lập địa chỉ khởi đầu cho những tin nhắn đó sẽ được hiển thị (đối với hex 00 chẳng hạn).

Sau đó, tất cả các ký tự được gửi qua đường D0-D7 sẽ được hiển thị như là một định dạng thông điệp chúng tôi được sử dụng để-từ trái sang phải. Trong trường hợp này rất, hiển thị bắt đầu từ trường đầu tiên của dòng đầu tiên bởi vì địa chỉ là 00 hex. Nếu có nhiều hơn 16 ký tự được gửi đi sau đó tất cả chúng sẽ được ghi nhớ, nhưng chỉ có mười sáu ký tự đầu tiên sẽ được hiển thị. Để hiển thị phần còn lại của họ, một lệnh chuyển đổi nên được sử dụng. Hầu như, tất cả mọi thứ có vẻ như màn hình hiển thị LCD là một cửa sổ mà phải thay đổi lại vị trí bộ nhớ trong có chứa các ký tự khác nhau. Trong thực tế, đây là cách tác động của tin nhắn dịch chuyển trên màn hình đã được tạo ra.

[email protected] - 141 - Call 01266020790

Page 142: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Nếu con trỏ vào, nó sẽ xuất hiện ở vị trí mà hiện nay đang giải quyết. Nói cách khác, khi nhân vật xuất hiện tại vị trí con trỏ, nó sẽ tự động di chuyển đến vị trí giải quyết tiếp theo.

Đây là một loại bộ nhớ RAM để dữ liệu có thể được viết và đọc từ nó, nhưng nội dung của nó là vĩnh viễn các file bị mất khi nguồn điện sẽ tắt.

CGROM Memory

CGROM bộ nhớ chứa các bản đồ ký tự mặc định với tất cả các ký tự có thể được hiển thị trên màn hình. Mỗi nhân vật được giao cho một vị trí bộ nhớ:

Các địa chỉ của các vị trí bộ nhớ CGROM phù hợp với nhân vật của ASCII. Nếu chương trình đang được thực hiện gặp một lệnh "gửi nhân vật P đến cổng" giá trị nhị phân 0101 0000 sau đó xuất hiện trên cảng. Giá trị này là tương đương với các ký tự ASCII P. Sau đó nó được ghi vào màn hình LCD, kết quả là hiển thị các biểu tượng từ vị trí của CGROM 0101 0000. Nói cách khác, các ký tự "P" được hiển thị. Điều này áp dụng cho tất cả các chữ cái của bảng chữ cái (thủ đô và nhỏ), nhưng không phải để các con số!

Như đã thấy trên bản đồ trước đây, địa chỉ của tất cả các chữ số được đẩy về phía trước bằng 48 so với giá trị của mình (địa chỉ 0 chữ số là 48, địa chỉ 1 chữ số là 49, địa chỉ 2 chữ số là 50, vv.) Theo đó, để hiển thị con số chính xác nó là cần thiết để thêm một số thập phân 48 đến mỗi người trong số họ trước khi gửi cho LCD.

ASCII là gì? Từ khi thành lập của họ cho đến ngày nay, máy tính có thể nhận ra con số chỉ, nhưng không phải chữ cái. Nó có nghĩa là tất cả các dữ liệu một giao dịch hoán đổi máy tính với một thiết bị ngoại vi có một định dạng nhị phân mặc dù cùng được công nhận bởi người đàn ông như là chữ cái (bàn phím này là một ví dụ tuyệt vời)! Nó đơn giản như vậy, mỗi nhân vật phù hợp với sự kết hợp độc đáo của zero và những người thân. ASCII là ký tự mã hóa dựa trên bảng chữ cái tiếng Anh. Mã ASCII chỉ định một nhân vật biểu tượng tương ứng giữa tiêu chuẩn và tương đương số của họ.

LCD lệnh cơ bản

Tất cả các dữ liệu chuyển giao cho màn hình LCD thông qua các D0-D7 đầu ra sẽ được hiểu là một lệnh hoặc một dữ liệu, mà phụ thuộc vào trạng thái pin RS logic:

RS = 1 - bit D0 - D7 là địa chỉ của các ký tự được hiển thị. LCD xử lý các địa chỉ một ký tự từ bản đồ ký tự và hiển thị nó. Địa chỉ DDRAM xác định vị trí mà nhân vật sẽ được hiển thị. Địa chỉ được xác định chuyển nhân vật trước hoặc địa chỉ của các chuyển nhân vật trước đây được tự động tăng lên.

RS = 0 - bit D0 - D7 là các lệnh trong đó xác định chế độ hiển thị.

Các lệnh công nhận bởi các màn hình LCD được liệt kê trong bảng dưới đây:

COMMAND RS RW D7 D6 D5 D4 D3 D2 D1 D0 THỜI GIAN THỰC HIỆNHiển thị rõ ràng 0 0 0 0 0 0 0 0 0 1 1.64mSCursor nhà 0 0 0 0 0 0 0 0 1 x 1.64mSThiết lập chế độ nhập 0 0 0 0 0 0 0 1 I / D S 40uSHiển thị bật / tắt kiểm soát 0 0 0 0 0 0 1 D U B 40uSCursor / Hiển thị Shift 0 0 0 0 0 1 D / C R / L x x 40uSChức năng thiết lập 0 0 0 0 1 DL N F x x 40uSThiết lập địa chỉ CGRAM 0 0 0 1 Địa chỉ CGRAM 40uSThiết lập địa chỉ DDRAM 0 0 1 DDRAM địa chỉ 40uSĐọc "BUSY" cờ (BF) 0 1 BF DDRAM địa chỉ -Viết thư cho CGRAM hoặc DDRAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0

40uSTìm hiểu từ CGRAM hoặc DDRAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0

40uSI / D 1 = Tăng (bằng 1) R / L 1 = Shift bên phải 0 = lượng giảm (1) 0 = Shift trái S 1 = Hiển thị sự thay đổi về DL 1 = 8-bit 0 = Hiển thị giao diện chuyển ra 0 = 4 - bit giao diện D 1 = Hiển thị trên N 1 = Hiển thị trong hai dòng 0 = Hiển thị ra 0 = Hiển thị trong một dò[email protected] - 142 - Call 01266020790

Page 143: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM U 1 = Cursor về F 1 = Ký tự định dạng 5x10 chấm 0 = Cursor ra 0 = Ký tự định dạng dấu chấm 5x7

B 1 = Cursor nhấp nháy trên D / C 1 Hiển thị thay đổi = 0 = con trỏ nhấp nháy 0 = Cursor caBận flag là gì?

So với vi điều khiển, màn hình LCD là thành phần cực kỳ chậm. Bởi vì điều này, nó là cần thiết để cung cấp một tín hiệu mà có thể, khi thực hiện lệnh, chỉ ra rằng màn hình là đã sẵn sàng cho phần tiếp theo của dữ liệu. Đó là tín hiệu, gọi là cờ bận rộn, có thể được đọc từ dòng D7. Khi điện áp trên đường dây này là 0V (BF = 0), hiển thị đã sẵn sàng để nhận dữ liệu mới.

Kết nối LCD

Tùy thuộc vào cách nhiều dòng được sử dụng để kết nối các màn hình LCD với vi điều khiển, có 8-bit và 4-bit LCD chế độ. Các chế độ thích hợp được chọn vào đầu hoạt động trong quá trình này gọi là "khởi động". chế độ màn hình LCD 8-bit sử dụng kết quả đầu ra D0-D7 để chuyển dữ liệu như được giải thích ở trang trước.

Mục đích chính của chế độ LED 4-bit là để tiết kiệm tôi có giá trị / O chân của vi điều khiển. Chỉ có 4 bit cao hơn (D4-D7) được sử dụng để giao tiếp, trong khi những người khác có thể được nối thông. Mỗi phần dữ liệu được gửi đến các màn hình LCD theo hai bước bốn bit cao hơn được gửi đầu tiên (thường thông qua các đường D4-D7) và bốn bit thấp được gửi sau đó. Cho phép khởi tạo màn hình LCD để liên kết và giải thích các bit nhận được một cách chính xác.

Hiếm khi đọc dữ liệu từ các màn hình LCD (nó là chủ yếu chuyển từ vi điều khiển để LCD) vì vậy nó thường có thể tiết kiệm một tôi thêm / O pin bằng cách đơn giản kết nối R / W pin to the Ground. Như vậy tiết kiệm có giá của nó. Tin nhắn sẽ được hiển thị bình thường, nhưng nó sẽ không thể đọc lá cờ bận rộn vì nó không thể đọc màn hình hiển thị như là tốt. May mắn thay, có một giải pháp đơn giản. Sau khi gửi một nhân vật hay một lệnh quan trọng là phải cho thời gian LCD, đủ để làm công việc của mình. Do thực tế là việc thực hiện lệnh chậm nhất kéo dài trong khoảng 1.64mS, nó sẽ là đủ để chờ khoảng 2ms cho LCD.

LCD khởi

Màn hình LCD được tự động trừ khi nguồn điện. Nó kéo dài trong khoảng 15ms. Sau này, hiển thị là sẵn sàng hoạt động. Các phương thức hoạt động được thiết lập theo mặc định. Nó có nghĩa là:

Hiển thị là xóa.ModeDL = 1 Truyền thông qua 8-bit giao diệnN = 0 Tin nhắn được hiển thị trong một dòngF = 0 Ký tự font 5 x 8 điểmHiển thị / Cursor on / offD = 0 hiển thị raU = 0 Cursor offB = 0 Con trỏ nhấp nháyKý tự nhậpID = 1 địa chỉ hiển thị sẽ tự động được tăng thêm 1S = 0 Hiển thị chuyển điTự động thiết lập lại chủ yếu là thực hiện mà không có bất kỳ vấn đề. Hầu hết, nhưng không phải luôn luôn! Nếu vì lý do nào điện áp cung cấp điện không đạt tới giá trị đầy đủ trong vòng 10ms, hiển thị sẽ bắt đầu thực hiện hoàn toàn thất thường. Nếu đơn vị cung cấp điện áp không có khả năng đáp ứng là tình trạng hoặc nếu nó là cần thiết để cung cấp hoàn toàn hoạt động an toàn, quá trình khởi tạo được áp dụng. Khởi tạo, trong số những thứ khác, gây ra một thiết lập lại mới cho phép hiển thị để hoạt động bình thường.

Hãy tham khảo những con số dưới đây cho các thủ tục trên 8-bit khởi tạo:

Nó không phải là một sai lầm! Trong thuật toán này, cùng giá trị được chuyển ba lần liên tiếp.

Trong trường hợp của 4-bit khởi tạo, thủ tục như sau:

[email protected] - 143 - Call 01266020790

Page 144: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Ví dụ 1

Viết tiêu đề và cấu hình I / O pins

Mục đích duy nhất của chương trình này là để bật một điốt LED số trên cổng B. Không có gì đặc biệt. Dù sao, sử dụng ví dụ này để nghiên cứu những gì một chương trình thực tế như thế nào. Hình dưới đây cho thấy một chương trình kết nối, trong khi chương trình có trên trang kế tiếp.

Khi chuyển đi, mỗi diode LED khác trên cổng ánh sáng phát ra B. Đó là đủ để cho biết rằng vi điều khiển được kết nối đúng và hoạt động bình thường.

Ví dụ này cho phép sự mô tả của một tiêu đề một cách chính xác bằng văn bản và một chỉ thị ban đầu ít. Họ đại diện cho một phần của chương trình được sử dụng trong tất cả các chương trình được mô tả trong cuốn sách này. Để bỏ qua repetitiveness, nó sẽ không được viết trong các ví dụ sau đây, nhưng được coi là vào đầu của mỗi chương trình (được đánh dấu như là một "Tiêu đề").

Mục đích của tiêu đề, chỉ thị ban đầu là mô tả ngắn gọn dưới đây.

Tiêu đề:

tiêu đề được đặt ở đầu của chương trình và các thông tin cơ bản ở dạng ý kiến (tên của chương trình, ngày phát hành, vv.) Đừng sai lầm nghĩ rằng sau một vài tháng, bạn sẽ biết những gì chương trình đó là về và tại sao nó được lưu trong máy tính của bạn.

Ban đầu chỉ thị:

danh sách p = 16f887Chỉ thị này quy định xử lý để thực hiện một chương trình.

# Bao gồm <p16f887.inc>Nó cho phép trình biên dịch để truy cập vào p16f887.inc tài liệu (Nếu bạn có cài đặt MPLAB, nó được đặt theo mặc định vào C: \ Program Files \ Microchip \ MPASM Suite). Mỗi SFR đăng ký có trong tài liệu này, cũng như mỗi bit, có tên riêng của mình và địa chỉ. Nếu chương trình đọc ví dụ:

BSF INTCON, GiẻNó có nghĩa là các bit Giẻ của INTCON đăng ký phải được thiết lập. Chỉ dẫn, như vậy, làm cho không có ý nghĩa với trình biên dịch. Nó có để truy cập vào "inc." Tài liệu để biết rằng bit thứ bảy của SFR tại địa chỉ 000B hex nên được thiết lập.

errorlevel -302Đây là một chỉ thị "thẩm mỹ" mà vô hiệu hóa các tin nhắn khó chịu "Đăng ký trong toán hạng không có trong ..." xuất hiện vào cuối mỗi quá trình biên soạn. Nó không phải là cần thiết, nhưng hữu ích.

__configChỉ thị này được sử dụng để bao gồm các cấu hình từ trong chương trình khi biên dịch. Nó không phải là cần thiết vì các hoạt động tương tự được thực hiện bởi các phần mềm để nạp chương trình vào chip. Tuy nhiên, bạn có bất kỳ ý tưởng đó phần mềm sẽ được sử dụng bởi người dùng? Những tùy chọn sẽ được thiết lập mặc định? Bạn là người dùng cuối? Bạn có biết chương trình bạn sẽ được sử dụng cho MCU lập trình trong năm tới? Làm cho cuộc sống dễ dàng hơn cho chính mình, đi này như là một chỉ thị cần thiết một và đưa nó vào chương trình của bạn.

VÍ DỤ 2

Sử dụng vòng lặp chương trình và bộ dao động nội LFINTOSC

Đây là một sự tiếp nối của ví dụ trước, nhưng giao dịch với một chút phức tạp hơn vấn đề ... Ý tưởng là để làm cho các điốt LED nhấp nháy B vào cảng. Một điều đơn giản ở cái nhìn đầu tiên! Nó là đủ để định kỳ thay đổi trạng thái logic trên cổng B. Trong trường hợp này, số 01010101 và 10101010 được lựa chọn để thay đổi theo cách sau:

[email protected] - 144 - Call 01266020790

Page 145: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Thiết lập kết hợp nhị phân 01010101 trên cổng B;Vẫn còn trong loop1;Thay thế những bit kết hợp trên cổng B với 10101010;Vẫn còn trong loop2; vàQuay trở lại bước 1 và lặp lại toàn bộ thủ tục.Bạn có biết làm thế nào nhanh chóng này nên được thực hiện? Nó sẽ có thể quan sát những thay đổi về cổng B chỉ nếu, ngoài những sự trì hoãn cung cấp trong loop1 và loop2, toàn bộ quá trình là giảm xuống khoảng 250 lần. Bởi vì điều này, vi điều khiển sử dụng bộ dao động nội bộ LFINTOSC với tần số 31kHz thay cho bộ dao động bên ngoài với các tinh thể thạch anh (8MHz).

Bạn có nhận thấy rằng các nguồn tín hiệu đồng hồ đã thay đổi "trên bay". Nếu bạn muốn chắc chắn của nó, loại bỏ các tinh thể thạch anh trước khi chuyển đổi các vi điều khiển trên. Điều gì sẽ xảy ra? Các vi điều khiển sẽ không bắt đầu hoạt động vì từ config tải với chương trình này đòi hỏi việc sử dụng các tinh thể trên chuyển về. Nếu bạn loại bỏ các tinh thể sau này trong quá trình hoạt động, nó sẽ không ảnh hưởng đến các vi điều khiển ở tất cả!

Mã Sorce

;************************************************* ***********************; Header ;************************ ************************************************ * ************ định BIẾN ************************************ *** cblock 0x20; Block của các biến bắt đầu từ địa chỉ 20H counter1; biến "counter1" lúc 20h endc địa chỉ ;************************** ********************************************** org 0x0000; Địa chỉ các hướng dẫn chương trình đầu tiên banksel OSCCON; chọn ngân hàng có chứa bộ nhớ; đăng ký OSCCON bcf OSCCON, 6; Chọn nội bộ dao động LFINTOSC với OSCCON bcf, 5; các tần số 31KHz OSCCON bcf, 4 BSF OSCCON, 0; vi điều khiển sử dụng bộ dao động nội bộ TRISB banksel; Chọn ngân hàng có đăng ký TRISB clrf TRISB; Tất cả các chân B cổng được cấu hình như kết quả đầu ra banksel PORTB; chọn ngân hàng có đăng ký PORTB vòng movlw B'01010101 '; số nhị phân 01010101 được ghi vào W movwf PORTB; Số là chuyển đến h'FF movlw PORTB '; Số HFF được chuyển đến W movwf counter1; Số là chuyển đến biến "counter1" decfsz loop1 counter1; biến "counter1" bị giảm đi 1 goto loop1; Nếu kết quả là 0, tiếp tục. Nếu không,; vẫn có loop1 B'10101010 movlw '; số nhị phân 10101010 được chuyển đến W movwf PORTB; Số là chuyển đến PORTB h'FF movlw'; Số HFF được chuyển đến W movwf counter1; Số là chuyển đến biến "counter1 "loop2 decfsz counter1; biến" counter1 "bị giảm đi 1 goto loop2; Nếu kết quả là 0, tiếp tục. Nếu không,; vẫn còn trong vòng lặp goto loop2; Chuyển đến nhãn kết thúc vòng lặp; Kết thúc chương trìnhVÍ DỤ 3

Sử dụng vòng lặp lồng nhau

Đề án kết nối một lần nữa như vậy. Để thực hiện điều này một chút thú vị hơn, một sự kết hợp khác nhau của cổng B bit thay đổi lẫn nhau. Và, đó không phải tất cả các khóa học. Như đã thấy từ các ví dụ trước, vi điều khiển rất nhanh và thường xuyên, nó cần phải được giảm xuống. Việc sử dụng được xây dựng trong LF dao động, như trong ví dụ 2, là biện pháp cuối cùng mà sẽ được áp dụng. Vấn đề là thường giải quyết bằng cách sử dụng vòng lặp lồng nhau trong một chương trình. Trong ví dụ này, biến "counter1" bị giảm đi 255 lần bằng 1 trong loop1 ngắn hơn. Trước khi rời khỏi vòng lặp này, chương trình sẽ đếm ngược 255 lần 255-0. Nó có nghĩa là giữa LED nhấp nháy của diode chỉ có hai cổng, có 255x255 xung đến từ các bộ dao động thạch anh. Nói một cách chính xác, số lượng xung cho khoảng 196 000 vì nó cũng mất một thời gian để thực hiện hướng dẫn nhảy và hướng dẫn giảm. Có, đó là sự thật, vi điều khiển chủ yếu là chờ đợi và không làm gì ...

Mã nguồn

;******************* Header ***************************** ****************** ;************* định BIẾN **************** ************************* cblock 0x20; Block của các biến bắt đầu từ địa chỉ 20H counter1; biến "counter1" tại địa chỉ 20H counter2; biến "counter2" lúc 21giờ endc địa chỉ ;********************************************* ***************************** org 0x0000; Địa chỉ của chương trình banksel TRISB lệnh đầu tiên, chọn ngân hàng có đăng ký TRISB clrf TRISB; Xóa banksel PORTB TRISB; chọn ngân hàng có đăng ký PORTB B'11110000 movlw vòng lặp '; số nhị phân 11110000 được chuyển đến W movwf PORTB; Số là chuyển đến PORTB h'FF movlw'; Số HFF được chuyển đến W movwf counter2; Số là chuyển đến biến "counter2" loop2 movlw h'FF '; Số HFF được chuyển đến W movwf counter1; Số là di chuyển tới "counter1" decfsz loop1 counter1; Decrements "counter1" của 1. Nếu kết quả là 0 goto loop1; bỏ qua lệnh kế tiếp decfsz counter2; Decrements "counter2" của 1. Nếu kết quả là 0 goto loop2; bỏ qua lệnh kế tiếp movlw B'00001111 '; số nhị phân 00001111 được chuyển đến W movwf PORTB; Số là chuyển đến PORTB h'FF movlw'; Số HFF được chuyển đến W movwf counter2; Số là chuyển đến biến "counter2" loop4 movlw h'FF '; Số HFF được chuyển đến W movwf counter1; Số là chuyển đến biến "counter1" decfsz loop3 counter1; Decrements "counter1" của 1. Nếu kết quả là 0; bỏ qua lệnh kế tiếp loop3 goto decfsz counter2; Decrements "counter2" của 1. Nếu kết quả là 0 goto loop4; bỏ lệnh goto vòng tiếp theo; Bước tới nhãn kết thúc vòng lặp; Kết thúc chương trì[email protected] - 145 - Call 01266020790

Page 146: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Ví dụ 4

Sử dụng bộ đếm thời gian và Ngắt TMR0

Nếu bạn đã đọc các ví dụ trước, bạn đã có thể nhận thấy một bất lợi của việc cung cấp chậm trễ bằng cách sử dụng các vòng lặp. Trong tất cả các trường hợp này, vi điều khiển này là "giam cầm" và không làm gì cả. Nó chỉ đơn giản là chờ đợi một thời gian để vượt qua. Như lãng phí thời gian là một sang trọng không thể chấp nhận và một số phương pháp khác được áp dụng.

Bạn có nhớ câu chuyện về những giờ? Giới thiệu về các ngắt? Ví dụ này làm cho mối liên kết giữa chúng trong một cách thiết thực. sơ đồ này vẫn còn tương tự cũng như thách thức. Nó là cần thiết để cung cấp chậm trễ lâu dài, đủ để thông báo thay đổi trên một cổng. Thời gian này, các TMR0 hẹn giờ với prescaler được giao được sử dụng cho mục đích đó. Gián đoạn xảy ra vào giờ mỗi đăng ký tràn và gia tăng số thường xuyên bị gián đoạn tại cổng B bằng 1. Toàn bộ quy trình được thực hiện "hậu trường" của toàn bộ quá trình, cho phép bộ vi điều khiển để làm những việc khác.

Chú ý đến một vài chi tiết:

Mặc dù nó là không cần thiết trong trường hợp này, các nội dung của sổ đăng ký quan trọng nhất (W, STATUS và PCLATH) phải được lưu vào đầu ngắt thường xuyên;Gây gián đoạn các bit cờ thích hợp được tự động thiết lập và các bit Giẽ được tự động xóa. Vào cuối những thói quen ngắt lời, không quên để lại những thứ này với nhà nước họ đã có trước khi ngắt xảy ra, vàVào cuối những rutine gián đoạn, đăng ký quan trọng cần được các nội dung ban đầu.Mã nguồn

;********************** Header ************************** ******************** ;**************** định BIẾN *********** ***************************** cblock 0x20; Block của các biến bắt đầu từ w_temp 20H địa chỉ; biến tại pclath_temp 20H địa chỉ; biến tại địa chỉ 21giờ status_temp; biến tại endc 22h địa chỉ ;************************ START CHƯƠNG TRÌNH ************** ******************** org 0x0000; Địa chỉ của lệnh goto chương trình đầu tiên chính; Chuyển đến nhãn "chính" ;*********** ************* gián đoạn THƯỜNG ********************************* org 0x0004 ; ngắt vector movwf w_temp; Lưu giá trị trong đăng ký TÌNH TRẠNG movf W; Lưu giá trị trong đăng ký TÌNH TRẠNG status_temp movf movwf PCLATH; Lưu giá trị trong đăng ký PCLATH banksel pclath_temp movwf PORTB; chọn ngân hàng có chứa PORTB incf PORTB; gia đăng ký PORTB bởi 1 INTCON banksel; chọn ngân hàng có chứa INTCON bcf INTCON, TMR0IF; Xóa cờ ngắt TMR0IF pclath_temp movf, w; PCLATH được cho nội dung ban đầu của nó movwf PCLATH status_temp movf, w; STATUS được đưa ra ban đầu của nó movwf STATUS w_temp swapf nội dung, f; W được cho swapf nội dung ban đầu của nó w_temp, w BSF INTCON, Giẻ; toàn cầu ngắt retfie kích hoạt, trở lại từ thường xuyên bị gián đoạn ;************************ CHƯƠNG TRÌNH CHÍNH ****** ******************************** chính; bắt đầu của chương trình banksel Ansel chính, Ngân hàng có đăng ký Ansel clrf Ansel; Xóa Ansel đăng ký và ANSELH clrf ANSELH; Tất cả các chân là kỹ thuật số banksel TRISB; chọn ngân hàng có đăng ký TRISB clrf TRISB; Tất cả các chân B cổng được cấu hình như kết quả đầu ra banksel OPTION_REG; Ngân hàng có đăng ký OPTION_REG bcf OPTION_REG, T0CS; TMR0 đếm xung từ OPTION_REG bcf dao động, PSA; prescaler được gán cho bộ đếm thời gian OPTION_REG TMR0 BSF, PS0; prescaler tỷ lệ 1:256 BSF OPTION_REG, BSF OPTION_REG PS1, PS2 banksel INTCON; Ngân hàng có đăng ký INTCON BSF INTCON, TMR0IE; TMR0 kích hoạt ngắt tràn BSF INTCON, Giẻ; toàn cầu bị gián đoạn kích hoạt banksel PORTB; Ngân hàng có đăng ký clrf PORTB PORTB; Xóa cổng B vòng goto loop; Duy trì ở đây kết thúc; Kết thúc chương trìnhVí dụ 5

Sử dụng chương trình con, bằng cách sử dụng push-nút

Trong các ví dụ trước vi điều khiển thực thi các chương trình mà không bị ảnh hưởng theo bất kỳ cách xung quanh của nó. Trong thực tế, thiết bị hoạt động theo cách này là rất hiếm (ví dụ, các dấu hiệu neon đơn giản). Bạn đoán, trong số các thành phần khác, các chân đầu vào cũng sẽ được sử dụng trong ví dụ này. Có một sơ đồ trong hình bên dưới, trong khi chương trình có trên trang kế tiếp. Mọi thứ vẫn còn rất đơn giản.

Khi bắt đầu chương trình, ngay sau khi xác định các biến, các * vi điều khiển chân được cấu hình bằng cách sử dụng ghi TRISA và TRISB.

Trong chương trình chính, một chút về cổng B được đặt đầu tiên. Sau đó, các nội dung đăng ký này là liên tục di chuyển theo một nơi bên trái (PORTB rlf hướng dẫn). Nó cho chúng ta những ấn tượng rằng các điốt LED chiếu sáng đang chuyển động. Để làm cho nó có thể nhìn thấy, toàn bộ quá trình phải được làm chậm đủ. Nhấn vào nút "push" STOP "ngừng chuyển động

[email protected] - 146 - Call 01266020790

Page 147: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM và chương trình vẫn còn trong loop3. Delay được cung cấp bởi phương tiện của một vòng lặp lồng nhau. Thời gian này, nó được đặt trong một chương trình con ngắn "DELAY".

* Nó không phải là cần thiết cho chân Porta kể từ khi họ được tự động cấu hình như đầu vào sau khi thiết lập lại hàng.

Mã nguồn

;************************************************* ***************************; Header ;******************** ************************************************** ****** ;************* định BIẾN **************************** *************** cblock 0x20; Block của các biến bắt đầu từ địa chỉ 20H counter1; biến "counter1" tại địa chỉ 20H counter2; biến "counter2" tại địa chỉ 21giờ endc; Block của các biến kết thúc; CHƯƠNG TRÌNH CHÍNH ************************ ************************ ************** org 0x0000; Địa chỉ của chương trình banksel Ansel lệnh đầu tiên, chọn ngân hàng có đăng ký Ansel clrf Ansel; Xóa sổ đăng ký Ansel và ANSELH để clrf ANSELH; cấu hình tất cả các đầu vào như banksel TRISB kỹ thuật số ; chọn ngân hàng có đăng ký TRISB clrf TRISB; Tất cả các chân B cổng được cấu hình như kết quả đầu ra movlw B'00000010 'movwf TRISA; Pin RA1 là đầu vào banksel PORTB; chọn ngân hàng có đăng ký TRISB movlw B'00000001'; Viết 1 đến đăng ký W movwf PORTB ; Số là chuyển đến PORTB PORTB rlf vòng lặp; Port B bit quay bởi một nơi trái TRÌ HOÃN gọi; cuộc gọi chương trình con "DELAY" loop3 btfss Porta, 1; Kiểm tra các cổng firs Một chút goto loop3; "0" được áp dụng cho pin.Go để nhãn "loop3" loop goto, "1" được áp dụng cho pin.Go để nhãn "vòng" ;************************ chương trình con ** ************************************* TRÌ HOÃN clrf counter2; Xóa biến "counter2" loop1 clrf counter1; xóa biến "counter1" loop2 decfsz counter1; Decrements biến "counter1" bởi 1 goto loop2; Kết quả là không phải 0. Tới nhãn loop2 decfsz counter2; Decrements biến "counter2" bởi 1 goto loop1; Kết quả là không phải 0. Đi để trở về phòng thí nghiệm loop1; Quay trở lại từ chương trình con DELAY "kết thúc"; Kết thúc chương trìnhVÍ DỤ 6

TMR0 như một, truy cập xác định các biến mới, sử dụng rơle

Thời gian này, TMR0 được sử dụng như một truy cập. Ý tưởng là để kết nối các đầu vào truy cập vào một Nút để nó đếm một xung vào một thời điểm khi tất cả các nút bấm. Khi số lượng các xung tính trở nên bằng với số trong TEST đăng ký, logic một điện áp (5V) sẽ được áp dụng cho các PORTD, 3 pin. Kể từ khi điện áp này kích hoạt một rơle điện cơ khí, bit này được gọi là-cùng "tiếp sức".

Trong ví dụ này, việc đăng ký TEST chứa số 5. Đương nhiên, nó có thể là bất kỳ số lượng và có thể được tính toán hoặc nhập vào qua bàn phím. Thay vì chuyển tiếp một, các vi điều khiển có thể kích hoạt một số thiết bị khác và thay vì push-nút nó có thể sử dụng bộ cảm biến. Ví dụ này minh họa một trong những sử dụng phổ biến nhất của các vi điều khiển trong công nghiệp. Khi một cái gì đó được thực hiện nhiều lần khi cần thiết, sau đó cái gì khác nên được bật hoặc tắt ...

Mã nguồn

;************************************************* ***************************; Header ;******************** ************************************************** ****** ;************* định BIẾN **************************** *************** TEST equ B'00000101 '; số nhị phân 00000101 = TEST # define RELAY PORTD, 3; Pin PORTD, 3 = RELAY ;********* CHƯƠNG TRÌNH CHÍNH *************** ********************************* ***** org 0x0000; Địa chỉ của lệnh banksel chương trình đầu tiên TRISB; ngân hàng chọn đăng ký có chứa TRISB clrf TRISB; Tất cả các chân B cổng được cấu hình như kết quả đầu ra clrf TRISD; Tất cả các chân D cổng được cấu hình như movlw B'00010000 đầu ra '; Con số này được ghi vào đăng ký W movwf TRISA; Chỉ ra chân của cổng A là đầu vào banksel OPTION_REG; Ngân hàng có đăng ký OPTION_REG BSF OPTION_REG, T0CS; Pin RA4 được cung cấp với OPTION_REG BSF xung, PSA; prescaler tỷ lệ là 1:1 banksel PORTB ; chọn ngân hàng có đăng ký PORTB TMR0 clrf; giờ Xóa đăng ký bcf PORTD, 3; Pin PORTD, 3 = 0 vòng lặp movfw TMR0; đăng ký hẹn giờ được chuyển đến đăng ký W movwf PORTB; đăng ký W được chuyển đến TEST xorlw PORTB; hoạt động độc quyền hoặc giữa ; W đăng ký và số TEST (00000101) btfsc STATUS, Z; Nếu số lượng bằng nhau, kết quả là 0 và BSF PORTD, 3; TRẠNG bit, Z = 1. Bit PORTD, 3 được đặt vòng goto, và nhảy đến nhãn vòng lặp được thực thi kết thúc; Kết thúc chương trìnhVÍ DỤ 7

Sử dụng macro trong chương trình, bằng cách sử dụng thường xuyên trễ

Bạn có thể nhận thấy trong ví dụ trước đó vi điều khiển không luôn luôn hoạt động như mong đợi. Cụ thể, bằng cách nhấn nút-push, số lượng trên cổng B không phải luôn luôn tăng thêm 1. Cơ push-nút làm cho một số địa chỉ liên lạc ngắn kế tiếp khi họ đã được kích hoạt. Bạn đoán, vi điều khiển và tính sổ đăng ký tất cả những gì ...

[email protected] - 147 - Call 01266020790

Page 148: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Có nhiều cách để giải quyết vấn đề này. Chương trình này sử dụng chương trình gọi là sự chậm trễ trễ. Về cơ bản, nó là một thủ tục đơn giản. Khi phát hiện thay đổi đầu vào (nút bấm), một sự chậm trễ chương trình ngắn được cung cấp và chương trình chờ đợi một sự thay đổi (nút phát hành). Chỉ sau này, chương trình đi đến kết luận là nút kích hoạt.

Trong trường hợp này rất, nút-đẩy được kiểm tra bằng phương tiện được gọi là vĩ mô nút. Bên cạnh đó, macro này có một sự chậm trễ chương trình được cung cấp bởi các phương tiện khác vĩ mô pausems.

Các chương trình chính là tương đối đơn giản và cho phép biến "cnt" để được tăng lên và giảm đi bằng cách sử dụng hai push-nút. Biến này là sau đó sao chép vào cổng B và ảnh hưởng đến các LED (logic một (1) lượt đi-ốt LED trên, trong khi logic không (0) lượt đi-ốt LED off).

Mã nguồn

;********************** Header **********************; *** ********** định BIẾN ************************* cblock 0x20; Block của các biến bắt đầu từ địa chỉ 20hex HIcnt LOcnt LOOPcnt cnt endc; Cuối chặn các biến ;***************************************** ***************************** ORG 0x000; Thiết lập lại vector nop goto chính; Go để bắt đầu chương trình (nhãn "chính"); * ************************************************** ******************* bao gồm "pause.inc" bao gồm "button.inc" ;****************** ************************************************** ** chính banksel Ansel; chọn ngân hàng có chứa Ansel clrf Ansel; Tất cả các chân là kỹ thuật số clrf ANSELH banksel TRISB BSF TRISA, 0 BSF TRISA, 1 clrf banksel PORTB TRISB clrf cnt nút Loop PORT, 0,0, nút Tăng PORT, 1,0 , lượng giảm goto Loop Tăng incf cnt, e movf cnt, w movwf PORTB goto Loop lượng giảm decf cnt, e movf cnt, w movwf PORTB goto vòng cuối; Kết thúc chương trìnhMacro "pausems"

;************************************************* ********************* pausems MACRO đối_số1 địa phương Loop1 địa phương dechi địa phương Delay1ms địa phương Loop2 địa phương movlw High End (đối_số1); cao hơn byte của tham số được di chuyển; để HIcnt movwf HIcnt movlw thấp (đối_số1); Hạ byte của tham số được di chuyển; để LOcnt movwf LOcnt LOcnt movf Loop1, f; Decrements HIcnt và LOcnt khi TRẠNG btfsc, Z; cần thiết và gọi chương trình con Delay1ms goto dechi gọi Delay1ms decf LOcnt, f goto dechi Loop1 movf HIcnt, e btfsc STATUS, Z goto Kết thúc cuộc gọi Delay1ms decf HIcnt, e decf LOcnt, f goto Delay1ms Loop1:; Delay1ms cung cấp chậm trễ của movlw 0,100, 100 * 10us = 1ms movwf LOOPcnt; LOOPcnt <-100 Loop2: nop nop nop nop nop nop nop decfsz LOOPcnt, f goto Loop2; Thi thời gian trả lại Loop2; là 10 chúng tôi Cuối ENDM ;*************************** *******************************************Macro "nút"

;************************************************* *** MACRO nút cổng, pin, Hilo, nhãn địa phương Pressed1; tất cả các nhãn địa phương Pressed2 địa phương địa phương Exit1 địa phương Exit2 IFNDEF debouncedelay; Cho phép thời gian trễ được xác định, trong chương trình chính # define debouncedelay 0,10 endif IF (Hilo == 0 ); Nếu kéo lên được sử dụng cổng btfsc, pin; Nếu "1", nhấn nút được nhấn goto Exit1 pausems debouncedelay; Chờ cho 10ms trễ Pressed1 btfss cổng, pin goto Pressed1 pausems debouncedelay; Chờ cho đến khi và goto nhãn phát hành; nhảy quy định địa chỉ Exit1 ELSE; Nếu kéo xuống được sử dụng btfss cổng, pin Exit2 goto; Nếu "0", push-nút được phát hành pausems debouncedelay; Chờ cho Pressed2 trễ cảng btfsc 10ms, pin goto Pressed2 pausems debouncedelay; Chờ cho đến khi và goto nhãn phát hành ; chuyển đến địa chỉ quy định endif Exit2 ENDM ;***************************************** *****************************Ví dụ: 8

Sử dụng bộ đếm thời gian TMR1 và sử dụng gián đoạn

16-bit TMR1 hẹn giờ được sử dụng trong ví dụ này. Bằng cách đăng ký chiếm đóng của nó TMR1L và TMR1H, ngắt xảy ra và số trên cổng B được tăng lên. Điều này đã được thấy trong các ví dụ trước. Sự khác biệt là trong chương trình đó là sự chậm trễ lâu hơn một chút thời gian này vì tỷ lệ prescaler là 01:08.

Mã nguồn

;*************************** Header ********************* ******************** ;************* định BIẾN ************** ***************************** cblock 0x20; Block của các biến bắt đầu từ w_temp 20H địa chỉ; biến tại pclath_temp 20H địa chỉ; biến tại địa chỉ 21giờ status_temp; biến tại địa chỉ 22h endc START CHƯƠNG TRÌNH ;************************ *************** ********* org 0x0000; Địa chỉ của lệnh goto chương trình đầu tiên chính; Bước tới nhãn "chính" ;********************** ** gián đoạn THƯỜNG ********************************** org 0x0004; ngắt w_temp movwf vector; Lưu đăng ký W movf STATUS; Lưu đăng ký TÌNH TRẠNG status_temp movf movwf PCLATH; Lưu đăng ký movwf PCLATH banksel pclath_temp PORTB; ngân hàng đã chọn có chứa PORTB incf PORTB; Đăng ký PORTB là tăng thêm 1 pclath_temp movf, w; PCLATH được cho nội dung ban đầu của nó movwf PCLATH status_temp movf, w; TÌNH TRẠNG được đưa ra ban đầu của nó movwf STATUS [email protected] - 148 - Call 01266020790

Page 149: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM w_temp swapf nội dung, f; W được cho, nó swapf nội dung ban đầu w_temp w banksel PIR1; chọn ngân hàng có chứa PIR1 bcf PIR1, TMR1IF; Xóa cờ ngắt TMR1IF BSF INTCON, Giẻ; kích hoạt toàn cầu retfie gián đoạn; Quay trở lại từ gián đoạn thường ;************************ CHƯƠNG TRÌNH CHÍNH ********************* ****************** chính; bắt đầu của chính Ansel banksel chương trình, chọn ngân hàng có đăng ký Ansel clrf Ansel; Xóa sổ đăng ký Ansel và ANSELH clrf ANSELH; Tất cả các chân là kỹ thuật số banksel TRISB; Chọn ngân hàng có đăng ký TRISB clrf TRISB; Tất cả các chân B cổng được cấu hình như kết quả đầu ra banksel T1CON; chọn ngân hàng có đăng ký T1CON bcf T1CON, TMR1CS; đếm xung TMR1 T1CON BSF được tạo ra bởi bộ dao động, T1CKPS0; prescaler tỷ lệ là 01:08 BSF T1CON, T1CKPS1 BSF T1CON, TMR1ON; Lượt về banksel TMR1 giờ PIE1; chọn ngân hàng có đăng ký PIE1 BSF PIE1, TMR1IE; TMR1 kích hoạt ngắt tràn BSF INTCON, PEIE; ngoại vi làm gián đoạn các module được kích hoạt; Timer TMR1 thuộc về các module ngoại vi BSF INTCON, Giẻ; toàn cầu bị gián đoạn kích hoạt banksel PORTB; chọn ngân hàng có đăng ký clrf PORTB PORTB; Xóa cổng B vòng goto loop; Duy trì ở đây kết thúc; Kết thúc chương trìnhVÍ DỤ 9

Sử dụng TMR2 hẹn giờ, cấu hình bộ dao động thạch anh

Ví dụ này minh họa việc sử dụng các TMR2 hẹn giờ. vi điều khiển sử dụng bộ dao động nội HFINTOSC với các tần số từ 500 kHz. Toàn bộ chương trình làm việc như sau: Sau thời gian thời gian xác định bởi prescaler đăng ký, PR và postscaler đã hết hạn, ngắt xảy ra. Gián đoạn thường decrements nội dung của đăng ký PR và đồng thời gia tăng các nội dung của cổng B. Vì số trong PR đăng ký, mà quyết định khi ngắt được để xảy ra liên tục giảm đi, làm gián đoạn sẽ xảy ra trong thời gian ngắn hơn và ngắn hơn thời gian. Nói cách khác, kể sẽ được thực hiện nhanh hơn. Một chu kỳ mới bắt đầu tăng tốc kể sau mỗi lần đăng ký tràn PR.

Mã nguồn

;********************** Header ************************** ************************* ;************* định BIẾN ********* *************************************** cblock 0x20; Block của các biến bắt đầu từ địa chỉ 20H w_temp ; biến tại địa chỉ 20H pclath_temp; biến tại status_temp 21giờ địa chỉ; biến tại địa chỉ 22h endc START CHƯƠNG TRÌNH ;************************ ***** ************************************* org 0x0000; Địa chỉ của lệnh goto chương trình đầu tiên chính; Bước để nhãn "chính" ;************************ gián đoạn THƯỜNG ****************** ******************** org 0x0004; ngắt movwf w_temp vector; Lưu đăng ký TÌNH TRẠNG movf W; Lưu đăng ký TÌNH TRẠNG status_temp movf movwf PCLATH; Lưu PCLATH đăng ký movwf PORTB banksel pclath_temp; Chọn ngân hàng có chứa PORTB incf PORTB; gia PORTB đăng ký bởi 1 PR2 banksel; chọn ngân hàng có chứa PR2 decf PR2; PR2 bị giảm đi 1 pclath_temp movf, w; PCLATH được cho trạng thái ban đầu movwf PCLATH status_temp movf, w; STATUS được đưa ra ban đầu của nó nhà nước movwf STATUS swapf w_temp, f; W được cho, nó swapf trạng ban đầu w_temp w banksel PIR1; chọn ngân hàng có chứa PIR1 bcf PIR1, TMR2IF; Xóa cờ ngắt TMR2IF BSF INTCON, Giẻ; kích hoạt toàn cầu retfie gián đoạn; Quay trở lại từ gián đoạn thường xuyên; * CHƯƠNG TRÌNH CHÍNH *********************** ************************* ****************** chính; bắt đầu của chương trình chính banksel OSCCON; ngân hàng chọn đăng ký có chứa OSCCON bcf OSCCON, 6; Chọn nội bộ dao động HFINTOSC với OSCCON BSF, 5; tần số BSF 500KHz OSCCON, 4 BSF OSCCON, 0; vi điều khiển sử dụng bộ dao động nội bộ Ansel banksel; chọn ngân hàng có đăng ký Ansel clrf Ansel; Xóa sổ đăng ký Ansel và ANSELH clrf ANSELH; Tất cả các chân là TRISB banksel kỹ thuật số; chọn ngân hàng có đăng ký TRISB clrf TRISB; Tất cả các cổng chân B được cấu hình như kết quả đầu ra clrf T2CON PR2 banksel; chọn ngân hàng có đăng ký T2CON movlw H'FF '; Bộ điều khiển tất cả các đăng ký T2CON movwf bit; prescaler = 1:16, postscaler = 1:16 TMR2 = ON clrf PORTB banksel PIE1; chọn ngân hàng có đăng ký PIE1 BSF PIE1, TMR2IE; TMR2 BSF gián đoạn kích hoạt NTCON, PEIE; ngoại vi làm gián đoạn các module được kích hoạt; Timer TMR2 thuộc về các module ngoại vi BSF INTCON, Giẻ; toàn cầu ngắt vòng lặp loop goto cho phép; Duy trì ở đây kết thúc; Kết thúc chương trìnhVí dụ: 10

Module CCP1 là PWM tạo tín hiệu

Từ các mô-đun ĐCSTQ có một loạt các khả năng họ thường được sử dụng trong thực tế. Ví dụ này minh họa việc sử dụng các module CCP1 trong chế độ PWM. Bit của CCP1CON đăng ký xác định rằng mô-đun hoạt động như một PWM đơn đầu ra. Cùng các bit xác định tần số PWM là 4,88 kHz. Để làm cho những điều thú vị hơn, trong thời gian đầu ra P1A (PORTC, 2) xung có thể được thay đổi bằng cách đẩy nút tượng trưng gọi là "Dark" và "BRIGHT". Push-nút sẽ được kiểm tra thường xuyên bị gián đoạn bắt đầu của bộ đếm thời gian TMR1. Bất kỳ thay đổi ảnh hưởng đến các đi-ốt LED để nó thay đổi cường độ ánh sáng. Lưu ý rằng cổng B không sử dụng điện trở bên ngoài bởi vì nội bộ kéo lên điện trở được kích hoạt. Toàn bộ quá trình tạo ra các tín hiệu PWM được thực hiện "hậu trường", cho phép bộ vi điều khiển để làm những việc khác.

Source Code

;********************** Header **********************************************[email protected] - 149 - Call 01266020790

Page 150: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ;************* DEFINING VARIABLES ******************************************* cblock 0x20 ; Block of variables starts at address 20h w_temp ; Variable at address 20h pclath_temp ; Variable at address 21h status_temp ; Variable at address 22h endc #define DARK PORTB,0 ; Push-button "DARK" is connected ; to PORTB,0 pin #define BRIGHT PORTB,1 ; Push-button "BRIGHT" is connected ; to PORTB,1 pin;************************ PROGRAM START *************************************

org 0x0000 ; First program instruction address goto main ; Jump to label "main"

;************************ INTERRUPT ROUTINE *********************************

org 0x0004 ; Interrupt vector movwf w_temp ; Save register W movf STATUS ; Save register STATUS movwf status_temp movf PCLATH ; Save register PCLATH movwf pclath_temp banksel CCPR1L btfss DARK ; Tests push-button "DARK" decf CCPR1L ; Push-button is pressed - decrement CCP1L by 1 btfss BRIGHT ; Testing push-button "BRIGHT" incf CCPR1L ; Push-button is pressed - increment CCP1L by 1 movf pclath_temp,w ; PCLATH is given its original content movwf PCLATH movf status_temp,w ; STATUS is given its original content movwf STATUS swapf w_temp,f ; W is given its original content swapf w_temp,w banksel PIR1 ; Selects bank containing PIR1 bcf PIR1,TMR1IF ; Clears interrupt flag TMR1IF bsf TMR1H,7 ; Accelerates timer TMR0 counting bsf TMR1H,6 ; bsf INTCON,GIE ; Global interrupt enabled retfie ; Return from interrupt routine ;************************ MAIN PROGRAM **************************************

main ; Start of the main program banksel ANSEL ; Selects bank containing register ANSEL clrf ANSEL ; Clears registers ANSEL and ANSELH clrf ANSELH ; All pins are digital banksel OPTION_REG ; Selects bank containing register ANSEL bcf OPTION_REG,7 ; Pull-up resistors enabled bsf WPUB,0 ; Pull-up resistors enabled bsf WPUB,1 ; on port B pins 0 and [email protected] - 150 - Call 01266020790

Page 151: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM banksel TRISC ; Selects bank containing register TRISC clrf TRISC ; All port C pins are configured as outputs banksel T1CON ; Selects bank containing register T1CON bcf T1CON,TMR1CS ; TMR1 operates as a timer bcf T1CON,T1CKPS0 ; Prescaler rate is 1:8 bcf T1CON,T1CKPS1 bsf T1CON,TMR1ON ; Activates timer TMR1 banksel PIE1 ; Selects bank containing register PIE1 bsf PIE1,TMR1IE ; Interrupt TMR1 is enabled bsf INTCON,PEIE ; Peripheral modules interrupts are ; enabled bsf INTCON,GIE ; Global interrupt enabled movlw B'11111101' ; Prescaler TMR2 = 1:4 banksel T2CON movwf T2CON movlw B'11111111' ; Number in register PR2 banksel PR2 movwf PR2 banksel CCP1CON movlw B'00001100' ; Bits to configure CCP1 module movwf CCP1CONloop goto loop ; Remain here end ; End of programEXAMPLE 11

Using A/D converter

PIC16F887 A/D converter is used in this example. Everything is quite simple. A variable analog signal is applied on the AN2 pin while the result of conversion is shown on port B as a binary number. In order to simplify the program as much as possible, only 8 lower bits of the result of conversion are shown. GND is used as a negative voltage reference Vref-, while positive voltage reference is applied on the AN3 pin. It enables voltage measurement scale to "stretch and shrink".

To make this clear, the A/D converter always generates a 10-bit binary result, which means that it detects a total of 1024 voltage levels (210=1024). The difference between two voltage levels is not always the same. The less the difference between Vref+ and Vref, the less the difference will be between two of 1024 levels. Accordingly, the A/D converter is able to detect slight changes in voltage.

Source Code

;*********************** Header *********************************************;************************ PROGRAM START *************************************

org 0x0000 ; Address of the first program instruction

banksel TRISB ; Selects bank containing register TRISB clrf TRISB ; All port B pins are configured as outputs movlw B'00001100' movwf TRISA ; Pins RA2 and RA3 are configured as inputs banksel ANSEL ; Selects bank containing register ANSEL movlw B'00001100' ; Inputs AN2 and AN3 are analog while movwf ANSEL ; all other pins are digital clrf [email protected] - 151 - Call 01266020790

Page 152: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM banksel ADCON1 ; Selects bank including register ADCON1 bsf ADCON1,ADFM ; Right justification of result bcf ADCON1,VCFG1 ; Voltage Vss is used as Vref bsf ADCON1,VCFG0 ; RA3 pin voltage is used as Vref+ banksel ADCON0 ; Selects bank containing register ADCON0 movlw B'00001001' ; AD converter uses clock Fosc/2, AD channel movwf ADCON0 ; on RA2 pin is used for conversion and ; AD converter is enabledloop banksel ADCON0 btfsc ADCON0,1 ; Tests bit GO/DONE goto loop ; Conversion in progress, remain in ; loop banksel ADRESL movf ADRESL,w ; Lower byte of conversion result is ; copied to W banksel PORTB movwf PORTB ; Byte is copied to PORTB bsf ADCON0,1 ; Starts new conversion goto loop ; Jump to label "loop" end ; End of programEXAMPLE 12

Using EEPROM memory

This example demonstrates write to and read from built-in EEPROM memory. The program works as follows. The main loop constantly reads EEPROM memory location at address 5 (decimal). This number is displayed on port D. The same loop tests the state of three push-buttons connected to port A. The push-buttons "INCREMENT" and "DECREMENT" have the same purpose like in example 7 - increment and decrement the variable "cnt" which is thereafter displayed on port B. The push-button "MEMO" enables that variable to be written to EEPROM memory. In order to check it, it is enough to press this push-button and switch off the device. On the next switch on, the program displays the value of the variable on port D (at the moment of writing, this value was displayed on port B).

Source Code

;********************** Header **********************************************;*********** Defining variables in program ********************************** cblock 0x20 ; Block of variables starts at address 20h HIcnt LOcnt LOOPcnt cnt endc ; End of block ;**************************************************************************** ORG 0x000 ; Reset vector nop goto main ; Go to start of the program (label "main");**************************************************************************** include "pause.inc" include "button.inc";****************************************************************************main banksel ANSEL ; Selects bank containing ANSEL clrf ANSEL clrf ANSELH ; All pins are [email protected] - 152 - Call 01266020790

Page 153: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM banksel TRISB bsf TRISA, 0 ; Input pin bsf TRISA, 1 ; Input pin bsf TRISA, 2 ; Input pin clrf TRISB ; All port B pins are outputs clrf TRISD ; All port D pins are outputs banksel PORTB clrf PORTB ; PORTB=0 clrf PORTD ; PORTD=0 clrf cnt ; cnt=0Loop banksel PORTA button PORTA,0,0,Increment button PORTA,1,0,Decrement button PORTA,2,0,Save banksel EEADR movlw .5 ; Reads EEPROM memory location movwf EEADR ; at address 5 banksel EECON1 bcf EECON1,EEPGD bsf EECON1,RD ; Reads data from EEPROM memory banksel EEDATA movfw EEDATA ; Moves data to W banksel PORTD movwf PORTD ; Data is moved from W to PORTD goto LoopIncrement ; Increments number on port B incf cnt, f movf cnt, w movwf PORTB goto LoopDecrement ; Decrements number on port B decf cnt, f movf cnt, w movwf PORTB goto LoopSave ; Copies data from port B to EEPROM banksel EEADR ; memory location at address 5 movlw .5 movwf EEADR ; Writes address banksel PORTB movfw PORTB ; Copies port B to register W banksel EEDAT movwf EEDAT ; Writes data to temporary register banksel EECON1 bcf EECON1,EEPGD bsf EECON1,WREN ; Write enabled bcf INTCON,GIE ; All interrupts disabled btfsc INTCON,GIE goto $-2 movlw 55h movwf EECON2 movlw H'AA' movwf EECON2 bsf EECON1,WR

[email protected] - 153 - Call 01266020790

Page 154: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM btfsc EECON1,WR ; Wait for write to complete goto $-1 bsf INTCON,GIE ; Interrupt enabled bcf EECON1,WREN goto Loop ; Tests push-buttons again end ; End of programEXAMPLE 13

Two-digit LED counter, multiplexing

In this example, the microcontroller operates as a two-digit counter. Concretely, the variable Dval is decremented (slow enough to be visible) and its value is displayed on twodigit LED display (99-0). The challenge is to enable binary number to be converted in decimal one and split it in two digits (tens and ones). Besides, since the LED display segments are connected in parallel, it is necessary to ensure that they change fast in order to make impression of simultaneous light emission (time-division multiplexing). Remember that in electronics, multiplexing allows several analog signals to be processed by one analog-todigital converter (ADC). In this very case, time-division multiplexing is performed by the timer TMR0, while binary to decimal number conversion is performed in macro "digbyte". Counter may be reset to its starting value (99) at any moment by pressing the pushbutton "COUNTER RESET".

Source Code

;************************* Header *******************************************;****************************************************************************; DEFINING VARIABLES IN PROGRAM w_temp EQU 0x7D ; Variable for saving W register status_temp EQU 0x7E ; Variable for saving STATUS register pclath_temp EQU 0x7F ; Variable for saving PCLATH register CBLOCK 0x20 ; Block of variables starts at address 20h Digtemp Dig0 ; Variables for displaying digits - LSB Dig1 Dig2 Dig3 ; Variables for displaying digits - MSB Dval ; Counter value One ; Auxiliary variable which determines which ; display is to be switched on ENDC ; End of block of variables poc_vr EQU .99 ; Initial counter value is 99

include "Digbyte.inc"

;**************************************************************************** ORG 0x0000 ; First instruction address goto main ; Jump to label "main";**************************************************************************** ORG 0x0004 ; Interrupt vector address movwf w_temp ; Move w register to w_temp register movf STATUS,w ; Move STATUS register to status_temp movwf status_temp ; [email protected] - 154 - Call 01266020790

Page 155: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM movf PCLATH,w ; Move PCLATH register to pclath_temp movwf pclath_temp ; register ; Start of interrupt routine...

BANKSEL TMR0 movlw .100 movwf TMR0 bcf INTCON, T0IF bcf PORTA, 0 bcf PORTA, 1 btfsc One, 0 goto Lsdon goto Msdon Lsdon incf One, f movlw HIGH (Bcdto7seg) movwf PCLATH digbyte Dval movf Dig1, w call Bcdto7seg ; Place L1 mask on the PORTD movwf PORTD bsf PORTA, 1 goto ISR_end Msdon incf One, f movlw HIGH (Bcdto7seg) movwf PCLATH digbyte Dval movf Dig0, w call Bcdto7seg ; Place LO mask on the PORTD movwf PORTD bsf PORTA, 0 goto ISR_end ; End of interrupt routine...

ISR_end movf pclath_temp,w ; PCLATH register is given its original movwf PCLATH ; state movf status_temp,w ; STATUS register is given its original movwf STATUS ; state swapf w_temp,f ; W register is given its original ; state swapf w_temp,w retfie ; Return from interrupt routinemain banksel ANSEL ; Selects bank containing ANSEL clrf ANSEL ; All pins are digital clrf ANSELH

BANKSEL TRISA movlw b'11111100' ; RA0 and RA1 are configured as outputs and ; used for 7-segment display [email protected] - 155 - Call 01266020790

Page 156: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ; RA2 is input push-button for initializa ; tion movwf TRISA clrf TRISD BANKSEL OPTION_REG movlw b'10000110' ; TMR0 is incremented each 32us (Fclk=8MHz) movwf OPTION_REG BANKSEL PORTA movlw poc_vr movwf Dval ; Dval contains counter value movlw b'00000001' ; Initializes variable specifying display movwf One ; to switch on movwf PORTA movlw .100 movwf TMR0 ; TMR0 interrupt appr.every 10ms bsf INTCON, GIE ; Global interrupt enabled bsf INTCON, T0IE ; Timer TMR0 interrupt enabled bcf INTCON, T0IFLoop btfss One, 3 ; Falling edge encountered? goto Dec ; Yes! Go to Dec btfss PORTA, 2 ; Counter reset button pressed? goto Reset ; Yes! Go to Reset goto Loop ; Decrement Dval counter by 1Dec btfss One, 3 goto Dec movf Dval, f btfsc STATUS, Z ; Is Dval equal to 0? goto Loop ; If it is, go to loop and wait for T2 decf Dval, f ; If Dval not equal to 0, decrement it by 1 goto LoopReset btfss PORTA, 2 ; Wait for rising edge goto Reset movlw poc_vr movwf Dval ; Write initial value to counter goto Loop;**************************************************************************** ORG 0x0300 ; Lookup table is at the top of third page, but ; can be placed at some other place, it is impor ; tant to have it all on one pageBcdto7seg addwf PCL, f DT 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f;**************************************************************************** END ; End of programMacro "digbyte":

digbyte MACRO arg0 LOCAL Exit0 LOCAL Exit1 LOCAL Exit2 clrf Dig0 clrf [email protected] - 156 - Call 01266020790

Page 157: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM clrf Dig2 clrf Dig3 movf arg0, w movwf Digtemp movlw .100Exit2 incf Dig2, f subwf Digtemp, f btfsc STATUS, C goto Exit2 decf Dig2, f addwf Digtemp, fExit1 movlw .10 incf Dig1, f subwf Digtemp, f btfsc STATUS, C goto Exit1 decf Dig1, f addwf Digtemp, fExit0 movf Digtemp, w movwf Dig0 ENDMMacro digbyte is used to convert the number from digital to decimal format. Besides, digits of such decimal number are stored into special registers in order to enable them to be displayed on LED displays.

EXAMPLE 14

Sound generating, using macros

The generation of sound is a task commonly assigned to the microcontroller. Basically, it all comes to generating a pulse sequence on one output pin. While doing so, the proportion of logic zero (0) to logic one (1) duration determines the tone pitch and by changing different tones, different melodies arise.

In this example, any press on push-buttons T1 and T2 generates a sound. The appropriate instructions are stored in macro "beep" containing two arguments.

Source Code

;*********************** Header ***************************************;******************* Defining variables in program ******************** cblock 0x20 HIcnt ; Auxiliary variables for macro pausems LOcnt LOOPcnt PRESCwait Beep_TEMP1 ; Belongs to macro "BEEP" Beep_TEMP2 Beep_TEMP3 endc #define BEEPport PORTD, 2 ; Speaker pin#define BEEPtris TRISD, 2

expand

[email protected] - 157 - Call 01266020790

Page 158: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ;********************************************************************** ORG 0x0000 ; RESET vector address goto main ; Jump to program start (label - main);**********************************************************************; remaining code goes here

include "pause.inc" include "button.inc" include "beep.inc"main banksel ANSEL ; Selects bank containing ANSEL clrf ANSEL ; All outputs are digital clrf ANSELH banksel TRISD movlw b'11111011' ; PORTA D initialization movwf TRISD banksel PORTD BEEPinit ; Macro "Beep"Loop button PORTD,0,0,Play1 ; Push-button 1 button PORTD,1,0,Play2 ; Push-button 2 goto Loop Play1 ; First tone BEEP 0xFF, 0x02 BEEP 0x90, 0x05 BEEP 0xC0, 0x03 BEEP 0xFF, 0x03 goto Loop Play2 ; Second tone BEEP 0xBB, 0x02 BEEP 0x87, 0x05 BEEP 0xA2, 0x03 BEEP 0x98, 0x03 goto Loop;********************************************************************** END ; End of programMacro "beep":

BEEPinit MACRO bcf STATUS, RP0 bcf STATUS, RP1 bcf BEEPport bsf STATUS, RP0 bcf STATUS, RP1 bcf BEEPtris movlw b'00000111' ; TMR0 prescaler rate 1:256 movwf OPTION_REG ; OPTION <- W bcf STATUS, RP0 bcf STATUS, RP1 ENDMBEEP MACRO freq, duration bcf STATUS, RP0 bcf STATUS, RP1 movlw freq movwf Beep_TEMP1 movlw duration movwf [email protected] - 158 - Call 01266020790

Page 159: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM call BEEPsub ENDM;**********************************************************************; Subroutines

BEEPsub clrf TMR0 ; Counter initialization bcf INTCON, T0IF bcf BEEPportBEEPa bcf INTCON, T0IF ; Clears TMR0 Overflow FlagBEEPb bsf BEEPport call B_Wait ; Logic one "1" duration bcf BEEPport call B_Wait ; Logic zero "0" duration btfss INTCON, T0IF ; Check TMR0 Overflow Flag, goto BEEPb ; skip next if set decfsz Beep_TEMP2, f ; Is Beep_TEMP2 = 0 ? goto BEEPa ; Go to BEEPa again returnB_Wait movf Beep_TEMP1, w movwf Beep_TEMP3B_Waita decfsz Beep_TEMP3, f goto B_Waita returnEXAMPLE 15

Using LCD display

This example illustrates the use of the alphanumeric LCD display. The program itself is very simple because macros are used (usually the effort of creating Macros pays off in the end).

Two messages written on two lines change on display. The second message is intended to display the current temperature. Since no sensor is installed, the measurement is not really carried out, the variable "temp" appears on the display instead of the measured temperature.

In reality, the current temperature or some other measured value would be displayed.

Source Code

;*********************** Header *********************************** ; DEFINING VARIABLES IN PROGRAM CBLOCK 0x20 ; Block of variables starts at address 20h HIcnt ; Belongs to macro "pausems" LOcnt LOOPcnt LCDbuf ; Belongs to functions "LCDxxx" LCDtemp LCDportBuf ; LCD Port Buffer Digtemp ; Belongs to macro "digbyte" Dig0 [email protected] - 159 - Call 01266020790

Page 160: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Dig2 Dig3 temp ENDC ; End of block LCDport EQU PORTB ; LCD is on PORTB (4 data lines on RB0-RB3)RS EQU 4 ; RS line connected to RB4EN EQU 5 ; EN line connected to RB5

;********************************************************************** ORG 0x0000 ; Reset vector address nop goto main ; Go to beginning of the program (label "main");********************************************************************** include "LCD.inc" include "digbyte.inc" include "pause.inc";**********************************************************************main banksel ANSEL ; Selects bank containing ANSEL clrf ANSEL ; All pins are digital clrf ANSELH bcf STATUS,RP0 ; Bank0 active only bcf STATUS,RP1 movlw .23 movwf temp ; Move arbitrary value to variable ; is to be displayed on LCD lcdinit ; LCD initializationLoop lcdcmd 0x01 ; Instruction to clear LCD lcdtext 1, "mikroelektronika" ; Write text from the begin ; ning of the first line lcdtext 2, "Beograd" ; Write text from the beginning of ; the second line pausems .2000 ; 2 sec. delay lcdcmd 0x01 ; Instruction to clear LCD lcdtext 1, "Temperatura1" ; Write text from the begin ; ning of the first line lcdtext 2, "temp=" ; Write text from the beginning of ; the second line lcdbyte temp ; Write variable (dec.) lcdtext 0, " C" ; Write text after cursor pausems .2000 ; 2 sec. delay goto Loop;********************************************************************** end ; End of programLCD.inc

;**********************************************************************; Initialization must be done by using macro lcdinit before access; ing LCD;**********************************************************************lcdinit MACRO bcf STATUS, RP0 ; Bank0 bcf STATUS, RP1 clrf LCDportBuf movf LCDportBuf, w movwf [email protected] - 160 - Call 01266020790

Page 161: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM bsf STATUS, RP0 ; Bank1 bcf STATUS, RP1 clrf TRISB ; LCDport with output LCD bcf STATUS, RP0 ; Bank0 bcf STATUS, RP1 ; Function set (4-bit mode change) movlw b'00100000' movwf LCDbuf swapf LCDbuf, w movwf LCDportBuf bcf LCDportBuf, RS movf LCDportBuf, w movwf LCDport bsf LCDportBuf, EN movf LCDportBuf, w movwf LCDport bcf LCDportBuf, EN movf LCDportBuf, w movwf LCDport call Delay1ms ; 1 ms delay ; Function set (display mode set) lcdcmd b'00101100' call Delay1ms ; 1 ms delay ; Display ON/OFF Control lcdcmd b'00001100' call Delay1ms ; 1 ms delay ; Entry Mode Set lcdcmd b'00000110' call Delay1ms ; 1 ms delay ; Display Clear lcdcmd b'00000001' pausems .40 ; 40 ms delay ; Function set (4-bit mode change) movlw b'00100000' movwf LCDbuf swapf LCDbuf, w movwf LCDportBuf bcf LCDportBuf, RS movf LCDportBuf, w movwf LCDport bsf LCDportBuf, EN movf LCDportBuf, w movwf LCDport bcf LCDportBuf, EN movf LCDportBuf, w movwf LCDport call Delay1ms ; 1 ms delay ; Function set (display mode set) lcdcmd b'00101100' call Delay1ms ; 1 ms delay ; Display ON/OFF Control lcdcmd b'00001100'[email protected] - 161 - Call 01266020790

Page 162: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM call Delay1ms ; 1 ms delay ; Entry Mode Set lcdcmd b'00000110' call Delay1ms ; 1 ms delay ; Display Clear lcdcmd b'00000001' pausems .40 ; 40 ms delay ENDM

;**********************************************************************; lcdcmd sends command to LCD (see the table on the previous page); lcdclr is the same as lcdcmd 0x01;**********************************************************************lcdcmd MACRO LCDcommand ; Send command to LCD movlw LCDcommand call LCDcomd ENDM LCDcomd movwf LCDbuf bcf LCDportBuf, RS movf LCDportBuf, w movwf LCDport goto LCDwrLCDdata movwf LCDbuf bsf LCDportBuf, RS movf LCDportBuf, w movwf LCDport goto LCDwrLCDwr swapf LCDbuf, w call SendW movf LCDbuf, w call SendW returnSendW andlw 0x0F movwf LCDtemp

movlw 0xF0 andwf LCDportBuf, f movf LCDtemp, w iorwf LCDportBuf, f movf LCDportBuf, w movwf LCDport call Delay1ms bsf LCDportBuf, EN movf LCDportBuf, w movwf LCDport bcf LCDportBuf, EN movf LCDportBuf, w movwf LCDport call Delay1ms return ;**********************************************************************[email protected] - 162 - Call 01266020790

Page 163: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM ; lcdtext writes text containing 16 characters which represents a; macro argument. The first argument select selects the line in which; text writing is to start. If select is 0, text writing starts from; cursor current position.;**********************************************************************lcdtext MACRO select, text ; This macro writes text from cursor ; current position. Text is specified ; in argument consisting of 16 charac ; ters local Message local Start local Exit local i=0 goto Start Message DT text ; Create lookup table from arguments DT 0Start IF (select == 1) lcdcmd b'10000000' ELSE IF (select == 2) lcdcmd b'11000000' ENDIF ENDIF WHILE (i<16) ; Repeat conditional program compiling 16 times call Message+i ; Read lookup table and place value in W addlw 0 bz Exit ; until 0 is read call LCDdata ; Call routine displaying W on LCD i=i+1 ENDWExit ENDM ;**********************************************************************; This macro writes value in size of 1 byte on LCD; excluding leading zeros;**********************************************************************lcdbyte MACRO arg0 digbyte arg0 ; A hundred is in Dig2, ; A ten is in Dig1 and one in Dig0 movf Dig2, w addlw 0x30 call LCDdata movf Dig1, w ; If digit is 0 move cursor addlw 0x30 call LCDdata movf Dig0, w ; If digit is 0 move cursor addlw 0x30 call LCDdata ENDM;**********************************************************************; 1ms DelayDelay1ms: movlw .200 movwf LOOPcntDelay10us: nop ;1us nop ;[email protected] - 163 - Call 01266020790

Page 164: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us decfsz LOOPcnt, f ;1us goto Delay10us ;2us returnEXAMPLE 16

RS232 serial communication

This example illustrates the use of the microcontroller's EUSART module. Connection to the PC is enabled through RS232 standard. The program works in the following way: Every byte received via the serial communication is displayed using LED diodes connected to port B and is automatically returned to the transmitter thereafter. If an error occurs on receive, it will be signalled by switching the LED diode on. The easiest way to test device operation in practice is by using a standard Windows program called Hyper Terminal.

Source Code

;*********************** Header ***************************************; DEFINING VARIABLES IN PROGRAM

w_temp EQU 0x7D ; Variable for saving W register status_temp EQU 0x7E ; Variable for saving STATUS register pclath_temp EQU 0x7F ; Variable for saving PCLATH w register

cblock 0x20 ; Block of variables starts at address 20 h Port_A ; Variable at address 20 h Port_B ; Variable at address 21 h RS232temp ; Variable at address 22 h RXchr ; Variable at address 23 h endc ; End of block of variables;********************************************************************** ORG 0x0000 ; Reset vector nop goto main ; Go to beginning of program (label "main");********************************************************************** ORG 0x0004 ; Interrupt vector address movwf w_temp ; Save value of W register movf STATUS,w ; Save value of STATUS register movwf status_temp movf PCLATH,w ; Save value of PCLATH register movwf pclath_temp;**********************************************************************; This part of the program is executed in interrupt routine banksel PIE1 btfss PIE1, RCIE goto ISR_Not_RX232int banksel PIE1 btfsc PIR1, RCIF call RX232_int_proc ISR_Not_RX232int movf pclath_temp,w movwf PCLATH ; PCLATH is given its original value [email protected] - 164 - Call 01266020790

Page 165: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM movf status_temp,w movwf STATUS ; STATUS is given its original value swapf w_temp,f swapf w_temp,w ; W is given its original value retfie ; Return from interrupt routine;**********************************************************************RX232_int_proc ; Check if error has occurred banksel RCSTA movf RCSTA, w movwf RS232temp btfsc RS232temp, FERR goto RX232_int_proc_FERR btfsc RS232temp, OERR goto RX232_int_proc_OERR goto RX232_int_proc_Cont RX232_int_proc_FERR bcf RCSTA, CREN ; To clear FERR bit, receiver is first ; switched off and on afterwards nop ; Delay ... nop bsf RCSTA, CREN movf RCREG, w ; Reads receive register and clears FERR bit bsf Port_A, 0 ; Switches LED on ( UART error indicator) movf Port_A, w movwf PORTA goto RS232_exit RX232_int_proc_OERR bcf RCSTA, CREN ; Clears OERR bit nop ; Delay ... nop bsf RCSTA, CREN movf RCREG, w ; Reads receive register and clears FERR bit bsf Port_A, 1 ; Switches LED on ( UART error indicator) movf Port_A, w movwf PORTA goto RS232_exit RX232_int_proc_Cont movf RCREG, W ; Reads received data movwf RXchr movwf PORTB movwf TXREG ; Sends data back to PC RS232_exit return ; Return from interrupt routine;**********************************************************************; Main program

main banksel ANSEL ; Selects bank containing ANSEL clrf ANSEL ; All inputs are digital clrf ANSELH ;--------------------------------------- ; Port configuration ;--------------------------------------- banksel [email protected] - 165 - Call 01266020790

Page 166: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM movlw b'11111100' movwf TRISA movlw b'00000000' movwf TRISB ;--------------------------------------- ; Setting initial values ;--------------------------------------- banksel PORTA movlw b'11111100' movwf PORTA movwf Port_A movlw b'00000000' movwf PORTB movwf Port_B ;--------------------------------------- ; USART - setting for 38400 bps ;--------------------------------------- banksel TRISC bcf TRISC, 6 ; RC6/TX/CK = output bsf TRISC, 7 ; RC7/RX/DT = input banksel BAUDCTL bsf BAUDCTL, BRG16 banksel SPBRG movlw .51 ; baud rate = 38400 ; ( Fosc/(4*(SPBRG+1)) ) Error +0.16% movwf SPBRG clrf SPBRGH banksel TXSTA bcf TXSTA, TX9 ; Data is 8-bit wide bsf TXSTA, TXEN ; Data transmission enabled bcf TXSTA, SYNC ; Asynchronous mode bsf TXSTA, BRGH ; High-speed Baud rate banksel RCSTA bsf RCSTA, SPEN ; RX/DT and TX/CK outputs configuration bcf RCSTA, RX9 ; Select mode for 8-bit data receive bsf RCSTA, CREN ; Receive data enabled bcf RCSTA, ADDEN ; No address detection, ninth bit may be ; used as parity bit movf RCSTA, W movf RCREG, W ;--------------------------------------- ; Interrupts enabled ;--------------------------------------- banksel PIE1 bsf PIE1, RCIE ; USART Rx interrupt enabled bsf INTCON, PEIE ; All peripheral interrupts enabled bsf INTCON, GIE ; Global interrupt enabled ;--------------------------------------- ; Remain here ;--------------------------------------- goto $ end ; End of program

[email protected] - 166 - Call 01266020790

Page 167: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Phụ lục C: Phát triển hệ thốngLàm thế nào để bắt đầu làm việc?

vi điều khiển là một tốt bụng "thần trong chai" và không có kiến thức bổ sung là cần thiết để sử dụng nó.

Để tạo một thiết bị điều khiển bởi vi điều khiển, nó là cần thiết để cung cấp các máy tính đơn giản, chương trình để biên soạn

và thiết bị đơn giản để chuyển mã từ máy tính đến chip của chính nó.

Mặc dù quá trình này là khá hợp lý, thường có một số truy vấn, không phải vì nó là phức tạp, nhưng đối với các biến thể rất

nhiều. Chúng ta hãy nhìn ...CHƯƠNG TRÌNH NGÔN NGỮ LẬP HỘI TRONG

Để viết một chương trình cho vi điều khiển, một chương trình chuyên ngành trong môi trường Windows có thể được sử

dụng. Bất kỳ chương trình để xử lý văn bản có thể được sử dụng cho mục đích này. Vấn đề là để viết bài hướng dẫn trong

một trật tự như vậy, họ phải được thực hiện bởi vi điều khiển, thực hiện các quy tắc của ngôn ngữ lắp ráp và viết hướng dẫn

chính xác như chúng được xác định. Nói cách khác, bạn chỉ cần làm theo các ý tưởng chương trình! Đó là tất cả! Khi sử dụng

phần mềm tùy chỉnh, có rất nhiều công cụ mà cũng được cài đặt để hỗ trợ trong quá trình phát triển. Một trong những công cụ

là các mô phỏng. Điều này cho phép người dùng để kiểm tra mã trước khi ghi nó MCU này.

Để kích hoạt các trình biên dịch để thực hiện nhiệm vụ của mình thành công, cần có một tài liệu có chứa các chương trình này

có phần mở rộng, asm trong tên của nó, ví dụ:. Program.asm

Khi một chương trình chuyên ngành (MPLAB) được sử dụng, phần mở rộng này sẽ được tự động thêm vào. Nếu bất kỳ

chương trình khác để xử lý văn bản (Notepad) được sử dụng sau đó văn bản cần được lưu lại và đổi tên. Ví dụ: Program.txt -

> Program.asm.

Lưu ý cho những người lười biếng: bỏ qua thủ tục này, mở một tài liệu asm mới trong MPLAB và chỉ cần sao chép / dán văn

bản của chương trình được viết bằng ngôn ngữ lắp ráp..Chương trình biên dịch

Các vi điều khiển không hiểu ngôn ngữ lắp ráp như vậy. Đây là lý do tại sao nó là cần thiết để biên dịch chương trình sang

ngôn ngữ máy.Nó là nhiều hơn đơn giản khi sử dụng một chương trình chuyên ngành (MPLAB) bởi vì trình biên dịch là một

phần của phần mềm! Chỉ cần một cú nhấp chuột vào biểu tượng thích hợp giải quyết vấn đề và tài liệu mới với. Hex mở rộng

bật ra ngoài. Nó thực sự là chương trình tương tự, nhưng được biên dịch sang ngôn ngữ máy tính có bộ vi điều khiển hoàn

toàn hiểu được. tài liệu này thường được đặt tên là "mã thập lục" và dường như vô nghĩa đại diện cho một dãy số trong hệ

thống số thập lục phân.

: Trong trường hợp các phần mềm cho chương trình viết bằng ngôn ngữ assembly được sử dụng, phần mềm đặc biệt để biên soạn chương trình phải được cài đặt và sử dụng như sau: thiết lập các trình biên dịch, mở tài liệu có phần mở rộng asm và biên dịch.. Kết quả là, cùng một tài liệu mới với. hex mở rộng. Vấn đề duy nhất mà bạn có bây giờ là nó được lưu trữ trong máy tính của bạn.

CHƯƠNG TRÌNH Một vi điều khiển

Để kích hoạt tính năng "hex mã" truyền cho bộ vi điều khiển nó là cần thiết để cung cấp một cáp cho truyền thông nối tiếp và

một thiết bị đặc biệt gọi là lập trình với phần mềm thích hợp. Có một số cách để làm điều đó.

Rất nhiều chương trình và các mạch điện tử có mục đích này có thể được tìm thấy trên Internet. Làm được như sau: tài liệu

mở mã hex, thiết lập một vài thông số và nhấn vào biểu tượng để biên soạn. Sau một lúc, một chuỗi các số không và những

người sẽ được lập trình trong vi điều khiển thông qua cáp kết nối nối tiếp và lập trình phần cứng. Không có gì khác để được

[email protected] - 167 - Call 01266020790

Page 168: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM thực hiện ngoại trừ việc đặt các chip được lập trình trong thiết bị mục tiêu. Trong trường hợp cần thiết để thực hiện một số

thay đổi trong chương trình, các thủ tục trước đó có thể được lặp đi lặp lại không giới hạn số lần.Đây có phải là một kết thúc có hậu?

Phần này mô tả ngắn gọn việc sử dụng phần mềm lập trình MPLAB và phát triển bởi Mikroelektronika. Mọi thứ đều rất đơn

giản ...

Bạn đã cài đặt MPLAB, havenâ € ™ t không? Mở một dự án mới và một tài liệu mới với extension.asm.

OK. Bạn đã viết một chương trình và thử nghiệm nó với mô phỏng. Các chương trình đã không báo cáo bất kỳ lỗi nào trong

quá trình biên dịch? Có vẻ như mọi thứ mà là dưới sự kiểm soát ...

[email protected] - 168 - Call 01266020790

Page 169: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM Chương trình được viết và biên soạn thành công. Tất cả những gì còn lại là để đổ vào chương trình vi điều khiển. Với mục

đích này cần phải có phần mềm đó có các chương trình viết và biên soạn và chuyển nó vào vi điều khiển (PIC Flash chẳng

hạn). Bắt đầu lên chương trình này ...

Việc cài đặt rất đơn giản và không có nhu cầu giải trình bổ sung (các loại tần số, vi điều khiển và bộ dao động đồng hồ, vv.) Kết nối các máy tính và lập trình thông qua cáp USB; Load lệnh HEX mã bằng cách sử dụng: File -> Load HEX; và Nhấp vào "Write" push-nút và chờ đợi ...

Vậy đó! vi điều khiển được lập trình và tất cả mọi thứ đã sẵn sàng cho hoạt động. Nếu bạn không hài lòng, làm cho một số

thay đổi trong chương trình và lặp lại các thủ tục. Cho đến khi nào? Cho đến khi bạn cảm thấy hài lòng ...Phát triển hệ thống

Một thiết bị, mà trong chương trình giai đoạn thử nghiệm, có thể mô phỏng bất kỳ môi trường được gọi là một hệ thống phát

triển. Ngoài các lập trình, cung cấp năng lượng đơn vị và các s microcontrollerâ € ™ ổ cắm, hệ thống phát triển bao gồm các

yếu tố để kích hoạt pin vào và theo dõi sản lượng pin. Các phiên bản đơn giản có mỗi pin kết nối với một nút nhấn và một LED

là tốt. Một phiên bản chất lượng cao, có đèn LED hiển thị, màn hình LCD, cảm biến nhiệt độ và tất cả các yếu tố khác mà các

thiết bị mục tiêu có thể được cung cấp. Những thiết bị ngoại vi có thể được kết nối với các MCU thông qua jumper thu

nhỏ. Bằng cách này, toàn bộ chương trình có thể được thử nghiệm trong thực tế, trong giai đoạn phát triển của nó, bởi vì các

vi điều khiển không biết, hoặc chăm sóc, cho dù đầu vào của nó được kích hoạt bằng một nút nhấn hoặc cảm biến tích hợp

trong máy thực sự.

[email protected] - 169 - Call 01266020790

Page 170: điều khiển - thiết bị Tổng quandaokhanh.weebly.com/uploads/7/2/2/7/7227583/pic.doc · Web view1 - Một vụ va chạm xe buýt đã xảy ra trong MSSP khi cấu hình

BIÊN SOẠN: ĐÀO NGUYÊN KHÁNH ĐẠI HỌC HÀNG HẢI VIÊT NAM

[email protected] - 170 - Call 01266020790