PIC 16F877A VÀ VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO LED 7 THANH

18 379 0
PIC 16F877A VÀ VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO LED 7 THANH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH CCS VỀ PIC 16F877A VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO LED 7 THANH.BAO GỒM CẢ CODE CẢ BẢN PROTES .MUỐN LẤY FULL liên hệ gmail dinhanbaby1998gmail.com CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip. Chương trình là sự tích hợp của 3 trình biên dich riêng biết cho 3 dòng PIC khác nhau đó là: ‐ PCB cho dòng PIC 12‐bit opcodes ‐ PCM cho dòng PIC 14‐bit opcodes ‐ PCH cho dòng PIC 16 và 18‐bit

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA ĐIỆN –ĐIỆN TỬ BÀI TẬP LỚN: LẬP TRÌNH VI XỬ LÝ NÂNG CAO ĐỀ TÀI:TÌM HIỂU PIC 16F877A VÀ VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO LED THANH GIÁO VIÊN BỘ MÔN : SINH VIÊN THỰC HIỆN: VŨ HỒNG SƠN NGUYỄN ĐÌNH ÂN Hưng Yên, ngày tháng năm 2020 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Hưng Yên, ngày tháng năm 2020 MỤC LỤC LỜI MỞ ĐẦU Ngày kỹ thuật vi điều khiển trở nên quen thuộc ngành kỹ thuật dân dụng Các vi điều khiển có khả xử lý nhiều hoạt động phức tạp mà cần chip vi mạch nhỏ, thay tủ điều khiển lớn phức tạp mạch điện gọn nhẹ, dễ dàng thao tác sử dụng Vi điều khiển góp phần vào kỹ thuật điều khiển mà cịn góp phần to lớn vào việc phát triển thơng tin Chính lý trên, việc tìm hiểu, khảo sát vi điều khiển điều mà sinh viên ngành điện mà đặc biệt chuyên ngành kỹ thuật điệnđiện tử phải quan tâm Đó nhu cầu cần thiết cấp bách sinh viên, đề tài thực đáp ứng nhu cầu Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng đươc lại điều phức tạp Phần cơng việc xử lý phụ thuộc vào người, chương trình hay phần mềm Nếu khơng có tham gia người hệ thống vi điều khiển vật vơ tri Do nói đến vi điều khiển giống máy tính bao gồm phần phần cứng phần mềm Mặc dù vi điều khiển bước dài để tiếp cận với kỹ thuật khơng thể việc có sớm chiều Để tìm hiểu vi điều khiển cách khoa học mang lại hiệu cao làm tản cho việc xâm nhập vào hệ thống tối tân Việc trang bị kiến thức vi điều khiển cho sinh viên cần thiết Hưng yên, ngày tháng năm 2020 CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu khái quát vi điều khiển Bộ Vi xử lý có khả vượt bậc so với hệ thống khác khả tính tốn, xử lý, thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu toán hệ thống lớn.Tuy nhiên ứng dụng nhỏ, tầm tính tốn khơng địi hỏi khả tính tốn lớn việc ứng dụng vi xử lý cần cân nhắc Bởi hệ thống dù lớn hay nhỏ, dùng vi xử lý địi hỏi khối mạch điện giao tiếp phức tạp Các khối bao gồm nhớ để chứa liệu chương trình thực hiện, mạch điện giao tiếp ngoại vi để xuất nhập điều khiển trở lại, khối liên kết với vi xử lý thực cơng việc Để kết nối khối địi hỏi người thiết kế phải hiểu biết tinh tường thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo phức tạp, chiếm nhiều không gian, mạch in phức tạp vấn đề trình độ người thiết kế.kết giá thành sản phẩm cuối cao, không phù hợp để áp dụng cho hệ thống nhỏ Vì số nhược điểm nên nhà chế tạo tích hợp nhớ số mạch giao tiếp ngoại vi với vi xử lý vào IC gọi MicrocontrollerVi điều khiển Một số đặc điểm khác vi xử lí (VXL)và VĐK: - Về phần cứng: VXL cần ghép thêm thiết bị ngoại vi bên nhớ, thiết bị ngoại vi khác, … để tạo thành mạch hồn chỉnh Đối với VĐK thân hệ máy tính hồn chỉnh với CPU, nhớ, mạch giao tiếp, định thời mạch điều khiển ngắt tích hợp bên mạch - Về đặc trưng tập lệnh: Do ứng dụng khác nên VXL VĐK có yêu cầu khác tập lệnh chúng Tập lệnh VXL thường mạnh kiểu định địa với lệnh cung cấp hoạt động lượng liệu lớn 1byte, ½ byte, word, double word, Ở VĐK, tập lệnh mạnh việc xử lý kiêu liệu nhỏ bit vài bit - Do VĐK cấu tạo phần cứng khả xử lí thấp nhiều soi với VXL nên giá thành VĐK rẻ nhiều Tuy nhiên đủ khả đáp ứng tất yêu cầu người dùng.Vi điều khiển ứng dụng dây chuyền tự động loại nhỏ, robot có chức đơn giản, máy giặt, ôtô v.v * Phân loại -Độ dài ghi Dựa vào độ dài ghi lệnh VĐK mà người ta chia loại VĐK 8bit, 16bit, hay 32bit Các loại VĐK 16bit có độ dài lệnh lớn nên tập lệnh nhiều hơn, phong phú Tuy nhiên chương trình viết VĐK 16bit viết VDK 8bit với chương trình thích hợp -Kiến trúc CISC RISC VXL VĐK CISC VĐK có tập lệnh phức tạp.Các VĐK có số lượng lớn lệnh nên giúp cho người lập trình linh hoạt dễ dàng viết chương trình VĐK RISC VĐK có tập lệnh đơn giản Chúng có số lương nhỏ lệnh đơn giản DO đó, chúng địi hỏi phần cứng hơn, giá thành thấp hơn, nhanh so với CISC Tuy nhiên địi hỏi người lập trình phải viết chương trình phức tạp hơn, nhiều lệnh -Kiến trúc Harvard kiến trúc Vonneumann: Kiến trúc Harvard sử dụng nhớ riêng biệt cho chương trình liệu Bus địa bus liệu độc lập với nên trình truyền nhận liệu đơn giản Kiến trúc Vonneumann sử dụng chung nhớ cho chương trình liệu Điều làm cho VĐK gọn nhẹ hơn, giá thành nhẹ Một số loại VĐK có thị trường: - VĐK MCS-51: 8031, 8032, 8051, 8052, - VĐK ATMEL: 89Cxx, AT89Cxx51 - VĐK AVR AT90Sxxxx - VĐK PIC 16C5x, 17C43 1.2 Cấu trúc tổng quan VĐK 1.2.1 CPU: Là trái tim hệ thống Là nơi quản lí tất hoạt động VĐK Bên CPU gồm: - ALU phận thao tác liệu - Bộ giải mã lệnh điều khiển, xác định thao tác mà CPU cần thực - Thanh ghi lệnh IR, lưu giữ opcode lệnh thực thi - Thanh ghi PC, lưu giũ địa lệnh cần thực thi - Một tập ghi dùng để lưu thông tin tạm thời 1.2.2 ROM: ROM nhớ dùng để lưu giữ chương trình.ROM cịn dùng để chứa số liệu bảng, tham số hệ thống, số liệu cố định hệ thống.Trong trình hoạt động nội dung ROM cố định, thay đổi, nội dung ROM thay đổi ROM chế độ xóa nạp chương trình 1.2.3 RAM: RAM nhớ liệu Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ kết trung gian kết cuối phép toán, xử lí thơng tin Nó dùng để tổ chức vùng đệm liệu, thao tác thu phát, chuyển đổi liệu d BUS: BUS đường dẫn dùng để di chuyển liệu Bao gồm: bus địa chỉ, bus liệu , bus điều khiển e.BỘ ĐỊNH THỜI: Được sử dụng cho mục đích chung thời gian WATCHDOG: Bộ phận dùng để reset lại hệ thống hệ thống gặp “bất thường” ADC: Bộ phận chuyển tín hiệu analog sang tín hiệu digital Các tín hiệu bên ngồi vào VDK thường dạng analog.ADC chuyển tín hiệu dạng tín hiệu digital mà VDK hiểu 1.3 Khái quát vi điều khiển PIC 1.3.1 Khái niệm PIC viết tắt “Programable Intelligent Computer”, tạm dịch “máy tinh thơng minh khả trình” hãng Genenral Instrument đặt tên cho vi điều khiển họ: PIC1650 thiết kế để dùng làm thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau nghiên cứu phát triển thêm từ hình thành nên dịng vi điều khiển PIC ngày 1.3.2 Cấu trúc PIC Cấu trúc phần cứng vi điều khiển thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman kiến trúc Havard.0 Hình 1.1: Kiến trúc Havard kiến trúc Von-Neuman Tổ chức phần cứng PIC thiết kế theo kiến trúc Havard Điểm khác biệt kiến trúc Havard kiến trúc Von-Neuman cấu trúc nhớ liệu nhớ chương trình Vi điều khiển tổ chức theo kiến trúc Havard gọi vi điều khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút gọn Vi điều khiển thiết kế theo kiến trúc Von-Neuman gọi vi điều khiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức tạp mã lệnh khơng phải số cố định mà bội số bit (1 byte) 1.3.3 PIPELINING Đây chế xử lí lệnh vi điều khiển PIC Một chu kì lệnh vi điều khiển bao gồm xung clock Ví dụ ta sử dụng oscillator có tần số MHZ, xung lệnh có tần số MHz (chu kì lệnh us) Giả sử ta có đoạn chương trình sau: MOVLW MOVWF 55h PORTB CALL SUB_1 BSF PORTA,BIT3 instruction @ address SUB_1 d Các dòng PIC Các kí hiệu vi điều khiển PIC: - PIC12xxxx: độ dài lệnh 12 bit - PIC16xxxx: độ dài lệnh 14 bit C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) F: PIC có nhớ flash LF: PIC có nhớ flash hoạt động điện áp thấp LV: tương tự LF, kí hiệu cũ- PIC18xxxx: độ dài lệnh 16 bit Bên cạnh số vi điệu khiển có kí hiệu xxFxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, cịn PIC16F877A flash) Ngồi cịn có thêm dịng vi điều khiển PIC dsPIC -Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất Cách lựa chọn vi điều khiển PIC phù hợp: - Trước hết cần ý đến số chân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, chí có vi điều khiển có chân, ngồi cịn có vi điều khiển 28, 40, 44, … chân - Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chương trình nhiều lần Tiếp theo cần ý đến khối chức tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên - Sau cần ý đến nhớ chương trình mà vi điều khiển cho phép - Ngồi thơng tin cách lựa chọn vi điều khiển PIC tìm thấy sách “Select PIC guide” nhà sản xuất Microchip cung cấp 1.3.4 Ngơn ngữ lập trình PIC Ngơn ngữ lập trình cho PIC đa dạng Ngơn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí nhà sản xuất Microchip), ngơn ngữ lập trình cấp cao bao gồm C, Basic, Pascal, … Ngồi cịn có số ngơn ngữ lập trình phát triển dành riêng cho PIC PICBasic, MikroBasic,… 1.3.5 Mạch nạp PIC Đây dòng sản phẩm đa dạng dành cho vi điều khiển PIC Có thể sử dụng mạch nạp cung cấp nhà sản xuất hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng sản phẩm để nạp cho vi điều khiển khác thơng qua chương trình MPLAB Dịng sản phẩm thống có ưu nạp cho tất vi điều khiển PIC, nhiên giá thành cao thường gặp nhiều khó khăn q trình mua sản phẩm Ngồi tính cho phép nhiều chế độ nạp khác nhau, cịn có nhiều mạch nạp thiết kế dành cho vi điều khiển PIC Có thể sơ lược số mạch nạp cho PIC sau: - JDM programmer: mạch nạp dùng chương trình nạp Icprog cho phép nạp vi điều khiển PIC có hỗ trợ tính nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) - WARP-13A MCP-USB: hai mạch nạp giống với mạch nạp PICSTART PLUS nhà sản xuất Microchip cung cấp, tương thích với trình biên dịch MPLAB, nghĩa ta trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà không cần sử dụng chương trình nạp khác, chẳng hạn ICprog - P16PRO40: mạch nạp Nigel thiết kế tiếng Ơng cịn thiết kế chương trình nạp, nhiên ta sử dụng chương trình nạp Icprog - Mạch nạp Universal Williem: mạch nạp chuyên dụng dành cho PIC P16PRO40 Các mạch nạp kể có ưu điểm lớn đơn giản, rẻ tiền, hồn tồn tự lắp ráp cách dễ dàng, thông tin sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra chương trình nạp dễ dàng tìm download miễn phí thơng qua mạng Internet Tuy nhiên mạch nạp có nhược điểm hạn chế số vi điều khiển hỗ trợ, bên cạnh mạch nạp cần sử dụng với chương trình nạp thích hợp 10 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT GIỚI THIỆU VỀ KHÁI QUÁT PIC16F877A 2.1 Hình dạng ,cấu tạo Hình 2.1 Hình ảnh thực tế PIC16F877A Hình 2.2 Sơ đồ chân vi điều khiển PIC16F877A/PIC16F874A 11 2.2 Sơ đồ khối vi điều khiển PIC16F877A Hình 2.3 Sơ đồ khối vi điều khiển pic 16F877A Sơ đồ khối gồm khối : Khối ALU – Arithmetic Logic Unit - Khối nhớ chứa chương trình – Flash Program Memory - Khối nhớ chứa liệu EPROM – Data EPROM - Khối nhớ file ghi RAM – RAM file Register - Khối giải mã lệnh điều khiển – Instruction Decode Control - Khối ghi đặc biệt - Khối ngoại vi timer - Khối giao tiếp nối tiếp - Khối chuyển đổi tín hiệu tương tự sang số - ADC - Khối port xuất nhập c, Chức chân điều khiển PIC16F877A • Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh ngõ vào nhận xung clock từ bên • Chân OSC2/CLK2(14): ngõ dao động thạch anh ngõ cấp xung clock • Chân MCLD/VPP (1) có chức - MCLR ngõ vào reset tích cực mức thấp - Vpp: ngõ vào nhận điện áp lập trình lập trình cho PIC • Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có chức - RA0,1,2: xuất/ nhập số - AN 0,1,2: ngõ vào tương tự kênh thứ 0,1,2 • Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự kênh thứ 2/ nhõ vào điện áp chuẩn thấp AD/ ngõ vào điện áp chẩn cao AD • Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp chuẩn (cao) AD • Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên cho Timer 0/ ngõ so sánh • Chân RA5/AN4/SS / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào chọn lựa SPI phụ/ ngõ so sánh • Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngồi • Chân RB1(34), RB2(35): xuất nhập số • Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP • Chân RB4(37), RB5(38): xuất nhập số • Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối xung clock lập trình ICSP • Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối liệu lập trình ICSP • Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào giao động Timer1/ ngõ vào xung clock bên ngồi Timer • Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào dao động Timer 1/ ngõ vào Capture2, ngõ compare2, ngõ PWM2 • Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ compare1, ngõ PWM1 • Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ chế độ I2C • Chân RC4/SDI/SDA(23): xuất nhập số/ liệu vào SPI/ xuất nhập liệu I2C • Chân RC5/SDO(24): xuất nhập số/ liệu SPI • Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng USART/ xung đồng USART • Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng USART • Chân RD0-7/PSP0-7(19-30): xuất nhập số/ liệu port song song • Chân RE0/RD /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương tự • Chân RE1/WR /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương tự kênh thứ • Chân RE2/CS /AN7(10): xuất nhấp số/ Chân chọn lụa điều khiển port song song/ ngõ vào tương tự kênh thứ • Chân VDD(11, 32) VSS(12, 31): chân nguồn PIC CHƯƠNG 3: SƠ ĐỒ KHỐI VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN 3.1 Sơ đồ khối Khối Nguồn Khối Vi xử lý trung tâm 3.2 Lưu đồ thuật tốn Sơ đồ mơ Hình ảnh mơ Khối hiển thị Sơ đồ thuật tốn 3.4 Chương trình điều khiển #INCLUDE // KHAI BÁO THU VIEN #FUSES NOWDT, PUT, HS, NOPROTECT, NOLVP #USE DELAY(CLOCK=1M) CONST UNSIGNED CHAR MA7DOAN[16]= {0XC0,0XF9,0xA4,0XB0,0X99,0X92,0X82,0XF8, 0X80,0X90,0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E}; UNSIGNED INT8 L; UNSIGNED INT16 I; VOID HIENTHI() { FOR(L=0;L

Ngày đăng: 10/07/2020, 12:56

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • CHƯƠNG 1: TỔNG QUAN

    • 1.1 Giới thiệu khái quát về vi điều khiển

    • 1.2 Cấu trúc tổng quan về VĐK

      • 1.2.1 CPU:

      • 1.2.2 ROM:

      • 1.3 Khái quát về vi điều khiển PIC

        • 1.3.1 Khái niệm

        • 1.3.2 Cấu trúc PIC

        • 1.3.3 PIPELINING

        • 1.3.4 Ngôn ngữ lập trình của PIC

        • 1.3.5 Mạch nạp PIC

        • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT GIỚI THIỆU VỀ KHÁI QUÁT PIC16F877A

          • 2.1 Hình dạng ,cấu tạo

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

          • CHƯƠNG 3: SƠ ĐỒ KHỐI VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN

            • 3.1 Sơ đồ khối

            • 3.2 Lưu đồ thuật toán và Sơ đồ mô phỏng

            • 3.4 Chương trình điều khiển

Tài liệu cùng người dùng

Tài liệu liên quan