Giáo Trình Vi Điều Khiển PIC: Kiến Thức Cơ Bản và Ứng Dụng

Khám phá lý thuyết vi điều khiển PIC phiên bản 2018 mới nhất, cung cấp kiến thức và ứng dụng thực tiễn cho người học và nghiên cứu.

Chuyên ngành

Điện

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2017

414
11
0

Phí lưu trữ

75 Point

Tóm tắt

I. Tổng quan về Giáo Trình Vi Điều Khiển PIC Kiến Thức Cơ Bản

Giáo trình vi điều khiển PIC cung cấp kiến thức cơ bản về cấu trúc và chức năng của các vi điều khiển, đặc biệt là dòng vi điều khiển 8 bit của hãng Microchip. Nội dung giáo trình được thiết kế để giúp sinh viên và người mới bắt đầu có thể nắm bắt nhanh chóng các khái niệm và ứng dụng thực tiễn của vi điều khiển trong các hệ thống điều khiển tự động.

1.1. Ứng dụng của Vi Điều Khiển PIC trong Thực Tiễn

Vi điều khiển PIC được ứng dụng rộng rãi trong các thiết bị điện tử dân dụng và công nghiệp. Các ứng dụng này bao gồm điều khiển đèn LED, LCD, và các thiết bị cảm biến, giúp nâng cao hiệu quả và tính tự động hóa trong sản xuất.

1.2. Lợi ích của Vi Điều Khiển PIC trong Hệ Thống Điều Khiển

Vi điều khiển PIC mang lại nhiều lợi ích như tính linh hoạt, khả năng lập trình dễ dàng và tích hợp nhiều chức năng trong một chip. Điều này giúp giảm thiểu chi phí và kích thước của hệ thống điều khiển.

II. Thách thức trong Việc Lập Trình Vi Điều Khiển PIC

Mặc dù vi điều khiển PIC có nhiều ưu điểm, nhưng việc lập trình và thiết kế hệ thống điều khiển vẫn gặp phải nhiều thách thức. Những thách thức này bao gồm việc hiểu rõ cấu trúc phần cứng, ngôn ngữ lập trình và các giao thức giao tiếp.

2.1. Khó Khăn trong Việc Hiểu Cấu Trúc Vi Điều Khiển

Cấu trúc của vi điều khiển PIC có thể phức tạp đối với người mới bắt đầu. Việc nắm vững các thành phần như port, thanh ghi và bộ nhớ là rất quan trọng để lập trình hiệu quả.

2.2. Thách Thức trong Lập Trình Ngôn Ngữ C

Ngôn ngữ lập trình C là một trong những ngôn ngữ phổ biến nhất để lập trình vi điều khiển. Tuy nhiên, việc làm quen với cú pháp và các thư viện có thể gây khó khăn cho người học.

III. Phương Pháp Lập Trình Vi Điều Khiển PIC Hiệu Quả

Để lập trình vi điều khiển PIC hiệu quả, cần áp dụng các phương pháp và công cụ phù hợp. Việc sử dụng phần mềm lập trình và các thư viện hỗ trợ sẽ giúp đơn giản hóa quá trình phát triển ứng dụng.

3.1. Sử Dụng Phần Mềm MPLAB cho Lập Trình

MPLAB là phần mềm lập trình phổ biến cho vi điều khiển PIC, cung cấp nhiều công cụ hữu ích cho việc viết, biên dịch và gỡ lỗi chương trình.

3.2. Thư Viện CCS C và Ứng Dụng của Nó

Thư viện CCS-C cung cấp nhiều hàm và lệnh hữu ích cho việc lập trình vi điều khiển PIC, giúp giảm thiểu thời gian phát triển và tăng tính hiệu quả của mã nguồn.

IV. Ứng Dụng Thực Tiễn của Vi Điều Khiển PIC trong Dự Án

Việc áp dụng vi điều khiển PIC trong các dự án thực tiễn đã chứng minh được tính khả thi và hiệu quả. Các dự án này không chỉ giúp sinh viên thực hành mà còn tạo ra các sản phẩm có giá trị thực tế.

4.1. Dự Án Điều Khiển Đèn LED và LCD

Các dự án điều khiển đèn LED và LCD giúp sinh viên hiểu rõ hơn về cách thức hoạt động của vi điều khiển và cách lập trình để điều khiển các thiết bị ngoại vi.

4.2. Dự Án Cảm Biến Nhiệt Độ và Ứng Dụng Thực Tế

Dự án sử dụng cảm biến nhiệt độ để đo và hiển thị thông tin trên LCD là một ví dụ điển hình về ứng dụng vi điều khiển trong thực tế, giúp sinh viên nắm bắt kiến thức về cảm biến và lập trình.

V. Kết Luận và Tương Lai của Vi Điều Khiển PIC

Vi điều khiển PIC sẽ tiếp tục đóng vai trò quan trọng trong các hệ thống điều khiển tự động trong tương lai. Sự phát triển không ngừng của công nghệ sẽ mở ra nhiều cơ hội mới cho việc ứng dụng vi điều khiển trong các lĩnh vực khác nhau.

5.1. Xu Hướng Phát Triển Vi Điều Khiển trong Tương Lai

Với sự phát triển của Internet vạn vật (IoT), vi điều khiển PIC sẽ ngày càng được sử dụng nhiều hơn trong các ứng dụng thông minh và tự động hóa.

5.2. Cơ Hội Nghiên Cứu và Phát Triển Mới

Các nghiên cứu mới về vi điều khiển sẽ mở ra nhiều cơ hội cho sinh viên và nhà nghiên cứu trong việc phát triển các ứng dụng sáng tạo và hiệu quả hơn.

11/07/2025
Gt lý thuyết vi điều khiển pic edited 2018 moi nhat

Trích đoạn nội dung tài liệu

Chương 1 .1 VI ĐIỀU KHIỂN PIC 16F887: ĐẶT TÍNH, CẤU TRÚC, CHỨC NĂNG CÁC PORT .2 KHẢO SÁT VI ĐIỀU KHIỂN MICROCHIP .3 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM – BÀI TẬP .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm .21 VI ĐIỀU KHIỂN PIC 16F887:.21 TỔ CHỨC BỘ NHỚ, THANH GHI .2 KIẾN TRÚC BỘ NHỚ .3 TỔ CHỨC BỘ NHỚ CỦA VI ĐIỀU KHIỂN PIC 16F887.1 Tổ chức bộ nhớ chương trình và ngăn xếp .3 Cấu trúc Pipeline .4 Khảo sát bộ nhớ dữ liệu và thanh ghi trạng thái .5 Bộ nhớ dữ liệu Eeprom .4 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM - BÀI TẬP .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm .39 xvii Chương 3 .43 VI ĐIỀU KHIỂN PIC 16F887: LỆNH HỢP NGỮ .2 NGÔN NGỮ LẬP TRÌNH HỢP NGỮ .1 Phần mềm lập trình hợp ngữ.2 Chương trình hợp ngữ cơ bản .3 Trình biên dịch cho hợp ngữ .3 LỆNH HỢP NGỮ CỦA VI ĐIỀU KHIỂN PIC 16F887 .2 Khảo sát tập lệnh tóm tắt vi điều khiển PIC 16F887 .3 Tập lệnh chi tiết .4 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM – BÀI TẬP .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm .67 VI ĐIỀU KHIỂN PIC 16F887:.67 NGÔN NGỮ LỆNH TRÌNH C .2 CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ C .1 Các kiểu dữ liệu của biến .4 Cấu trúc của chương trình C.5 Các thành phần của chương trình C .6 Con trỏ dữ liệu .3 TRÌNH BIÊN DỊCH C, THƯ VIỆN .1 Trình biên dịch C .2 Thư viện PIC16F887 của trình biên dịch C .4 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM - BÀI TẬP .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm .99 VI ĐIỀU KHIỂN PIC 16F887: GIAO TIẾP LED, LCD, PHÍM ĐƠN, MA TRẬN PHÍM .2 CHỨC NĂNG CÁC PORT CỦA VI ĐIỀU KHIỂN .3 CÁC PORT CỦA PIC 16F887.1 Port A và thanh ghi trisa .2 Port B và thanh ghi TRISB.3 Port C và thanh ghi TRISC .4 Port D và thanh ghi TRISD .5 Port E và thanh ghi TRISE.4 LỆNH TRUY XUẤT PORT DÙNG NGÔN NGỮ CCS-C .1 Lệnh set_tris_x() .3 Lệnh output_high(pin) .4 Lệnh output_low(pin) .5 Lệnh output_toggle(pin) .6 Lệnh output_bit(pin,value) .7 Lệnh value = get_tris_x() .8 Lệnh value = input(pin) .9 Lệnh input_state() .11 Lệnh output_drive(pin).12 Lệnh output_float(pin).13 Lệnh port_b_pullup( ).5 CẤU HÌNH ĐẶC BIỆT CỦA CPU .1 Cấu hình reset CPU .2 Cấu hình các ngắt đánh thức CPU .3 Cấu hình các dạng dao động của CPU .4 Cấu hình bảo vệ code .5 Bộ định thời giám sát (Watch dog timer) .6 Mạch nạp nối tiếp bên trong .6 CÁC ỨNG DỤNG ĐIỀU KHIỂN LED ĐƠN .7 CÁC ỨNG DỤNG ĐIỀU KHIỂN LED 7 ĐOẠN TRỰC TIẾP 143 5.8 CÁC ỨNG DỤNG ĐIỀU KHIỂN LED 7 ĐOẠN QUÉT .9 CÁC ỨNG DỤNG GIAO TIẾP VỚI NÚT NHẤN, BÀN PHÍM 157 5.1 Hệ thống ít phím .2 Hệ thống nhiều phím.10 CÁC ỨNG DỤNG ĐIỀU KHIỂN LCD .1 Giới thiệu LCD.2 Sơ đồ chân của LCD .3 Bộ điều khiển LCD và các vùng nhớ .4 Các lệnh điều khiển LCD .5 Các hoạt động đọc ghi LCD .7 Vùng nhớ hiển thị DDRAM .8 Lưu đồ khởi tạo LCD .9 Các chương trình hiển thị trên LCD dùng bus dữ liệu 8 bit 193 xx 5.10 Các chương trình hiển thị trên LCD dùng bus dữ liệu 4 bit 200 5.11 CÂU HỎI ÔN TẬP – BÀI TẬP – TRẮC NGHIỆM .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm. 214 VI ĐIỀU KHIỂN PIC 16F887:.1 Ngắt của Timer0.2 Timer0 đếm xung ngoại .3 Bộ chia trước .3 KHẢO SÁT TIMER1 CỦA PIC 16F887 .1 Timer1 ở chế độ định thời .2 Timer1 ở chế độ đếm xung ngoại .3 Hoạt động của timer1 ở chế độ counter đồng bộ .4 Hoạt động của timer1 ở chế độ counter bất đồng bộ .5 Đọc và ghi timer1 trong chế độ đếm không đồng bộ .6 Bộ dao động của timer1 .7 Reset timer1 sử dụng ngõ ra CCP trigger .8 Reset cặp thanh ghi TMR1H, TMR1L của timer1 .4 KHẢO SÁT TIMER2 CỦA PIC16F887 .1 Bộ chia trước và chia sau của timer2 .2 Ngõ ra của Timer2 .5 CÁC LỆNH CỦA TIMER – COUNTER TRONG NGÔN NGỮ PIC-C .1 Lệnh setup_timer_0(MODE) .2 Lệnh setup_timer_1(mode) .3 Lệnh setup_timer_2(mode) .4 Lệnh set_timerx(value) .5 Lệnh get_timerx().6 Lệnh setup_wdt() .7 Lệnh restart_wdt() .6 CÁC ỨNG DỤNG ĐỊNH THỜI DÙNG TIMER.1 Định thời dùng timer T1 .2 Định thời dùng timer T0 .3 Định thời dùng timer T2 .7 CÁC ỨNG DỤNG ĐẾM XUNG NGOẠI DÙNG COUNTER 242 6.1 Đếm xung ngoại dùng counter T0 .2 Đếm xung ngoại dùng counter T1 .8 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng. 256 VI ĐIỀU KHIỂN PIC 16F887:. 256 CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ .2 ADC CỦA VI ĐIỀU KHIỂN PIC 16F887 .1 Khảo sát ADC của PIC 16F887 .2 Khảo sát các thanh ghi của PIC 16F887.

258 xxii Cặp thanh ghi 16 bit ADRESH: ADRESL dùng để lưu kết quả chuyển đổi 10 bit của ADC sau khi chuyển đổi xong. Do kết quả chỉ có 10 bit nhưng lưu trong cặp thanh ghi 16 bit nên có 2 kiểu định dạng tùy thuộc vào bit ADFM (ADC Format). 260 Hình sau trình bày 2 kiểu định dạng của cặp thanh ghi kết quả:. 260 Chức năng của canh lề phục vụ cho 2 khả năng xử lý kết quả: nếu lấy kết quả 10 bit để xử lý thì nên chọn chế độ canh lề phải, còn nếu lấy kết quả 8 bit thì chọn chế độ canh lề trái và chỉ lấy kết quả của thanh ghi byte cao ADRESH, bỏ đi 2 bit có trọng số thấp nhất của thanh ghi ADRESL và chú ý đến tính toán giá trị, trong chương trình C nếu không khai báo thuộc tính ADC 10 bit thì phần mềm tự động lấy giá trị 8 bit cao.3 Trình tự thực hiện chuyển đổi ADC.

261 Để thực hiện chuyển đổi ADC thì phải thực hiện các bước sau:. 261 Bước 1: Cấu hình cho port:. 261 Bước 2: Cấu hình cho module ADC:. 261 Bước 3: Thiết lập cấu hình ngắt ADC nếu sử dụng:.

261 Bước 7: Đọc cặp thanh ghi kết quả (ADRESH: ADRESL), xóa bit ADIF nếu dùng ngắt. 261 Bước 8: Thực hiện chuyển đổi kế tiếp.4 Lựa chọn nguồn xung cho chuyển đổi ADC.3 CÁC LỆNH CỦA ADC TRONG NGÔN NGỮ CCS-C .1 Lệnh setup_adc(mode) .2 Lệnh setup_adc_port(value) .3 Lệnh set_adc_channel(chan) .4 Lệnh value=read_adc(mode) .4 ỨNG DỤNG ADC CỦA PIC 16F887 .1 Đo nhiệt độ dùng cảm biến LM35 .2 Đo nhiệt độ có điều khiển tái bóng đèn bằng relay .3 Đo nhiệt độ hiển thị trên led 7 đoạn quét .5 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM - BÀI TẬP .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm. 280 VI ĐIỀU KHIỂN PIC16F887: NGẮT .2 TỔNG QUAN VỀ NGẮT .3 NGẮT CỦA VI ĐIỀU KHIỂN PIC16F887 .1 Các nguồn ngắt của PIC16F887 .2 Cấu trúc mạch điện ngắt của PIC16F887 .3 Các thanh ghi ngắt của PIC16F887 .4 CÁC LỆNH NGẮT CỦA PIC16F887 TRONG NGÔN NGỮ PIC-C .1 Lệnh enable_interrupts(level) .2 Lệnh disable_interrupts(level) .3 Viết chương trình con phục vụ ngắt .5 CÁC ỨNG DỤNG NGẮT CỦA PIC 16F887 .1 Ứng dụng ngắt của timer T1.2 Ứng dụng ngắt của ADC .3 Ứng dụng 2 ngắt của timer và ADC .6 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng. 312 VI ĐIỀU KHIỂN PIC 16F887:.

312 ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM .1 Nguyên lý điều chế độ rộng xung PWM .2 Cấu trúc khối điều chế độ rộng xung PWM .3 Tính chu kỳ xung PWM.4 Tính hệ số chu kỳ xung PWM .3 KHẢO SÁT PWM NÂNG CAO.1 Cấu trúc khối PWM nâng cao .2 Các chế độ hoạt động khối PWM nâng cao .4 CÁC LỆNH ĐIỀU KHIỂN .1 Lệnh định cấu hình khối CCP .2 Lệnh thiết lập hệ số chu kỳ .3 Lệnh setup_timer_2 – lệnh định cấu hình cho timer_2 .4 Lệnh set_timerx(value) – lệnh thiết lập giá trị cho timer 323 9.5 CÁC CHƯƠNG TRÌNH ỨNG DỤNG PWM – BÀI TẬP .1 Điều khiển độ sáng của đèn cấp 1/10 dùng PWM .2 Điều khiển độ sáng của đèn 10 cấp dùng PWM .3 Điều khiển thay đổi tốc độ động cơ DC dùng PWM .6 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng. 344 VI ĐIỀU KHIỂN PIC 16F887:. 344 TRUYỀN DỮ LIỆU .2 TỔNG QUAN VỀ CÁC KIỂU TRUYỀN DỮ LIỆU .3 TRUYỀN DỮ LIỆU NỐI TIẾP ĐỒNG BỘ VÀ KHÔNG ĐỒNG BỘ .4 TRUYỀN DỮ LIỆU CỦA VI ĐIỀU KHIỂN PIC 16F887.1 Giới thiệu truyền dữ liệu EUSART .2 Khối phát dữ liệu ESUART của PIC16F887.3 Các thanh ghi TXSTA và RCSTA của PIC16F887 .4 Khối nhận dữ liệu ESUART của PIC16F887 .5 Thanh ghi tạo tốc độ baud của PIC16F887 .5 CÁC LỆNH TRUYỀN DỮ LIỆU EUSART CỦA PIC16F887 358 10.1 Lệnh setup_uart(BAUD, STREAM) .3 Lệnh Value = Getc(),Value = Fgetc(Stream), Value = Getch(), Value = Getchar() .4 Lệnh value = KBHIT() .6 ỨNG DỤNG TRUYỀN DỮ LIỆU EUSART CỦA PIC16F887 359 10.1 Truyền dữ liệu giữa PIC16F887 và máy tính điều khiển led 359 10.2 Phần mềm truyền dữ liệu terminal trên máy tính .3 Truyền dữ liệu giữa PIC16F887 và máy tính hiển thị LCD 363 10.4 Truyền và nhận dữ liệu giữa PIC16F887 và máy tính.5 Truyền và nhận dữ liệu giữa PIC16F887 và máy tính dùng ngắt để nhận dữ liệu .2 Tổng quan về truyền dữ liệu chuẩn I2C .3 Dạng sóng truyền dữ liệu chuẩn I2C .4 Quy trình truyền dữ liệu chuẩn I2C.8 KHẢO SÁT VÀ LẬP TRÌNH GIAO TIẾP IC REALTIME DS1307 .1 Khảo sát IC DS1307 .2 Giao tiếp PIC 16F887 với DS1307 .3 Lập trình giao tiếp PIC 16F887 với DS1307 .9 CÂU HỎI ÔN TẬP – TRẮC NGHIỆM .1 Câu hỏi ôn tập .2 Câu hỏi mở rộng .3 Câu hỏi trắc nghiệm. 384 TÀI LIỆU THAM KHẢO.

386 xxvii Chương 1 VI ĐIỀU KHIỂN PIC 16F887: ĐẶT TÍNH, CẤU TRÚC, CHỨC NĂNG CÁC PORT 1.1 GIỚI THIỆU Vi xử lý có rất nhiều loại bắt đầu từ 4 bit cho đến 32 bit, vi xử lý 4 bit hiện nay không còn nhưng vi xử lý 8 bit vẫn còn mặc dù đã có vi xử lý 64 bit. Lý do sự tồn tại của vi xử lý 8 bit là phù hợp với một số yêu cầu điều khiển trong công nghiệp. Các vi xử lý 32 bit, 64 bit thường sử dụng cho các máy tính vì khối lượng dữ liệu của máy tính rất lớn nên cần các vi xử lý càng mạnh càng tốt. Các hệ thống điều khiển trong công nghiệp sử dụng các vi xử lý 8 bit hay 16 bit như hệ thống điện của xe hơi, hệ thống điều hòa, hệ thống điều khiển các dây chuyền sản xuất, … Hình 1- 1.

Các thiết bị sử dụng vi xử lý Khi sử dụng vi xử lý thì phải thiết kế một hệ thống gồm có: Vi xử lý, có bộ nhớ, các ngoại vi.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Giáo Trình Vi Điều Khiển PIC: Kiến Thức Cơ Bản và Ứng Dụng" cung cấp một cái nhìn tổng quan về vi điều khiển PIC, từ những kiến thức cơ bản đến các ứng dụng thực tiễn. Nội dung của giáo trình không chỉ giúp người đọc hiểu rõ về cấu trúc và hoạt động của vi điều khiển, mà còn hướng dẫn cách lập trình và ứng dụng chúng trong các dự án thực tế. Điều này rất hữu ích cho sinh viên, kỹ sư và những ai đang tìm hiểu về công nghệ vi điều khiển.

Để mở rộng thêm kiến thức của bạn, bạn có thể tham khảo tài liệu Giáo trình kỹ thuật vi điều khiển đã chỉnh sửa, nơi cung cấp những thông tin cập nhật và chi tiết hơn về kỹ thuật vi điều khiển. Ngoài ra, tài liệu Giáo trình kỹ thuật vi điều khiển nghề điện công nghiệp cao đẳng cũng là một nguồn tài liệu quý giá, giúp bạn nắm vững kiến thức chuyên sâu trong lĩnh vực này. Những tài liệu này sẽ giúp bạn có cái nhìn toàn diện hơn và phát triển kỹ năng trong lĩnh vực vi điều khiển.