HƯỚNG DẪN VIẾT CHƯƠNG TRÌNH PICC CÔNG NGHỆ CAO
Chuẩn bị bởi: Hasan ARSLAN - Cảm ơn bạn
Loạt PIC được sản xuất bởi công nghệ cao Picc Microchip là một trình biên dịch C cho UC của tiêu chuẩn Ansi-C.
Hi-Tech có trình biên dịch C khác nhau cho các dòng PIC khác nhau. Tôi có một trình biên dịch PICC cho PIC10, PIC12 và PIC16 series. Có một trình biên dịch PICC-18 cho loạt PIC18. Nó cũng có một trình biên dịch cho 16 bit và 32 PIC. Hi-Tech không chỉ có trình biên dịch C cho uC của Microchip, mà còn là trình biên dịch C trong chiper mà nhà sản xuất UC khác sản xuất. Trình biên dịch có sẵn cho các phiên bản Windows, Mac và Linux.
Bởi vì công nghệ cao là một trình biên dịch chuyên nghiệp, giá cả rất đắt. Tuy nhiên, cũng có một phiên bản giới hạn PICC-lite miễn phí. Một số bộ vi xử lý cung cấp 2k ROM và 2 Bank. Điều này là đủ cho nhiều dự án.
Tôi sẽ cho bạn biết cách cài đặt phiên bản Hi-Tech 8.35PL2 và cách tích hợp nó vào Mplab.
Đầu tiên tải về và cài đặt Mplab từ trang web Microchip . Sau đó chạy chương trình picc-setup v8.05PL2.exe . Sau khi cài đặt xong, nó sẽ cài đặt vào thư mục C: \ HT-PIC . Khi bạn chạy picc_mplab6_setup.exe trong thư mục này, nó tích hợp trình biên dịch công nghệ cao vào bản thân Mplab tự động. activate.exe được sử dụng để lập trình chương trình.
Sau khi các quá trình này được hoàn thành, tôi sẽ thực hiện một dự án đơn giản dưới Mplab.
Hãy để tôi tạo một dự án theo Mplab. Project -> Project Wizard.

Nhấn Chuyển tiếp.

Chọn bộ xử lý bạn sẽ sử dụng. Chúng tôi hiện đang là giáo sư PIC16F628A. Nhấn về phía trước

Hãy chọn trình soạn thảo mà chúng tôi sẽ sử dụng ngay bây giờ. Chúng tôi sẽ viết tùy chọn sau đây để bạn viết trong PICC công nghệ cao

Sau khi quá trình này, dự án sẽ tạo ra sẽ được yêu cầu chọn thư mục vào một thư mục cụ thể có thể Duyệt bởi chính chúng ta hoặc chúng ta có thể tạo một thư mục mới. Bây giờ chúng ta tạo một thư mục mới.
Hãy đặt tên cho dự án này vào thư mục chúng ta đã tạo và nhấn phím 'lưu'.

Giả sử rằng cửa sổ xuất hiện tiếp theo.

Cửa sổ này là để thêm các thư viện khác đã sẵn sàng để được cung cấp.

Chúng ta sẽ tạo ra một dự án trống. Hãy nói tiên tiến. Chúng tôi sẽ có thông tin về dự án mới nhất. Sau khi chúng tôi nhấn phím cuối cùng, chúng tôi có một dự án mới.
Mplab bây giờ sẽ trông như thế này
Tệp nguồn và tệp tiêu đề trống vì không có mã và tệp tiêu đề ở đây.
TẠO MỘT TỆP MÃ CÔNG NGHỆ CAO
Vì tính đơn giản của nó, tôi sẽ đưa ra một ví dụ từ các mẫu ` trong thư mục HT-PIC . Hãy làm một mạch flasher LED đơn giản.
Bạn cần mã vòng lặp thời gian cho việc này. Chúng tôi sao chép mã vòng lặp trong thư mục Mẫu trong thư mục dự án của chính chúng ta.
C: \ HT-PIC \ samples \ chậm trễ \
Sao chép các tập tin delay.c và delay.h trong thư mục mà tôi có dự án sau.
C: \ Hi-tech_egit tôi \ Project 1 \
Sau đó, hãy đưa những tệp này vào dự án của tôi. Hãy nhấn vào tập tin nguồn và nhấn nút phải của chuột. Ngoài menuden Thêm tệp ... secelim.
Khi chúng tôi nhấp vào hai tệp và chọn ac, chúng hiện được đưa vào dự án của riêng chúng trong các tệp này.
Bây giờ chúng ta cần một tập tin với chương trình chính và chúng ta sẽ tạo ra nó bởi vì nó không có ở đó. Khi chúng ta nhấn nút New files ở góc trên bên trái, nó sẽ tạo một tập tin mới.
Hãy đặt tên cho tệp mới này và đưa nó vào dự án của tôi. Nhưng bạn không cần phải viết bất cứ điều gì vào nó trước khi nó ghi lại tập tin trống.
Chúng tôi gọi Lưu tệp . Lưu tệp mới của bạn vào cùng thư mục với dự án.
Các tệp Soure den Thêm tệp den cho phép dự án này bao gồm dự án.
Bây giờ chúng tôi đã thêm dự án của tôi vào tệp này.
Bây giờ chúng ta sẽ viết mã mà không có dự án của chúng tôi.
VIẾT MÃ TRONG CÔNG NGHỆ CAO
Bây giờ chúng ta bắt đầu viết mã trong tệp main_program.c . Đầu tiên chúng ta cần thêm một số tập tin tiêu đề. Chúng tôi thực hiện các cài đặt cầu chì trong mã. Sau đó, chúng tôi bắt đầu viết chương trình chính.
Ví dụ 1: Chương trình đầu tiên là logic của công việc. Một đầu vào, một đầu ra sẽ giống như đầu ra trung tâm, sẽ là trung tâm đầu ra. Chúng tôi có Portb0 như máng lối vào , Porta0 như máng thoát .
// main_program.c // Tệp chương trình chính #include#include "delay.h" // IDLOC __ (0123); // Đặt nơi thực hiện cài đặt bảo hiểm __CONFIG (BẢO VỆ & CPD & INTIO & MCLRDIS & WDTDIS & LVPDIS & PWRTEN & BOREN); void main (void) // Chương trình chính { TRISA = 0b00000000; TRISB = 0b00000001; PORTA = 0b00000000; PORTB = 0b00000001; OPTION = 0b00000000; // Pullup đặt các điện trở có hiệu lực. CMCON = 0x07; // Đóng các chốt analog PORTA. Chuyển đổi sang PortA Digitale. trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. if (RB0) // nếu RB0 không bằng 0. RA0 = 1; khác RA0 = 0; // Nếu RB0 bằng không. } } // main_program end
Chế độ xem Mplab của chương trình ảnh sau
Bạn có thể biên dịch chương trình với Build All trực tiếp CRTL + F10 nơi chuột được hiển thị .
Thông tin biên dịch sẽ được hiển thị trên màn hình sau khi biên dịch. Nếu nó nói BUILD SUCCEEDED, điều đó có nghĩa là quá trình biên dịch đã được thực hiện đúng cách. Trong trường hợp này, không có thông báo lỗi xuất hiện.
Khi kết thúc quá trình này, trình biên dịch tạo ra một số tệp mới.
Project_1.hex: Mã máy, mã để tải pic
Các tệp * .cce mở rộng cung cấp thông báo lỗi và cảnh báo của tệp mã tương ứng.
Vì tệp của bạn rỗng, không có thông báo lỗi hoặc cảnh báo. Bây giờ chúng ta hãy làm mô phỏng tại ISIS để kiểm tra nó.
Tôi đã vẽ ví dụ sau.
Bây giờ hãy ghi lại cùng một thư mục dự án này và thêm mã mà chúng ta đã viết trong Mô phỏng. Nếu bạn đến PIC và nhấp chuột 2 lần, một cửa sổ của PIC sẽ bật lên.
Vì chúng tôi đã chọn tinh thể bên trong của PIC16F628, tần số tinh thể sẽ là 4MHz .Tệp chương trình: chúng tôi đang thêm mã của mình vào.
chúng tôi có hai tùy chọn tệp khác nhau để mô phỏng. Chúng tôi có thể chạy chương trình bằng cách chọn Project_1.hex . Nhưng chúng tôi không thể chạy mã của chúng tôi từng bước. Để chạy từng mã một, chúng ta phải chạy tệp Project_1.cof .
Chúng tôi xác nhận với mũi tên này. Để bắt đầu mô phỏng, chúng tôi nhấn nút Phátở góc dưới cùng bên trái . Mô phỏng bắt đầu. Yêu cầu màn hình chụp ảnh.
Như bạn có thể thấy, RB0 là logic 1 và RA0 là logic 1. Khi chúng ta nhấn nút, logic 0 sẽ được cấp cho RA0, vì RB0 sẽ được kéo tới logic 0.
Nếu chúng ta nhấn phím Pause , chúng ta sẽ dừng chương trình.
Ví dụ 2: Bây giờ chúng ta hãy viết một mã ví dụ khác lần này chỉ dẫn flash.
// main_program.c // Tệp chương trình chính #include#include "delay.h" // IDLOC __ (0123); // Đặt nơi thực hiện cài đặt bảo hiểm __CONFIG (BẢO VỆ & CPD & INTIO & MCLRDIS & WDTDIS & LVPDIS & PWRTEN & BOREN); void main (void) // Chương trình chính { TRISA = 0b00000000; TRISB = 0b00000001; PORTA = 0b00000000; PORTB = 0b00000001; OPTION = 0b00000000; // Pullup đặt các điện trở có hiệu lực. CMCON = 0x07; // Đóng các chốt analog PORTA. Chuyển đổi sang PortA Digitale. trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. RA0 = 1; // XOR với RA0. Hành động này sẽ ghi đè chân RA0. delayms (250); // đợi 250 ms. 1 theo giá trị tấn cho đêm 255 delayms (250); // chúng ta không thể cho một số lớn. Cùng 3 lần cùng chức năng delayms (250); // Tôi gọi. Tổng độ trễ trung bình là 750ms. } } // main_program end
Chúng tôi đã thực hiện các bước đầu tiên bằng văn bản một chương trình như vậy. Tôi sẽ cố gắng giải thích các mã mẫu C chi tiết hơn. Thành tựu trong công việc của bạn,
Hasan ARSLAN
BÀI HỌC ĐÀO TẠO VỀ CÔNG NGHỆ CAO CỦA PICC BÀI 2
Chúng tôi sẽ tiếp tục viết mã.
Ví dụ 3: Thay đổi trạng thái Led mỗi lần chúng ta nhấn phím. Bây giờ tôi chỉ viết các mã trong chu trình chương trình chính vì vậy tôi không phải lặp lại các mã khác. Tôi đang viết
trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. if (RB0) {// nếu RB0 không bằng 0. RA0 = 1; // Đảo ngược tiêu đề. delayms (50); // chờ thời gian để xem ký sinh trùng. trong khi (RB0); // Đợi đến khi thỏ xử lý nó } }
Thao tác này đảo ngược đầu ra sau khi nhấn phím Nếu chúng ta muốn đầu ra bị gián đoạn, chúng ta cần thực hiện một thay đổi nhỏ cho mã.
trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. if (! RB0) {// nếu RB0 bằng 0. RA0 = 1; // Đảo ngược tiêu đề. delayms (50); // chờ thời gian để xem ký sinh trùng. trong khi (! RB0); // Đợi đến khi còng tay bị kéo. } }
Trong trường hợp này, mỗi khi bạn nhấn phím, đầu ra sẽ được đảo ngược. Dấu chấm than ! Ý nghĩa của dấu hiệu không hợp lý. Vì vậy, nó có thể được sử dụng để có một nghịch đảo logic của một cái gì đó. Sau đó, chúng ta có thể viết một mã như thế này để tránh đường.
trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. if (! RB0) {// nếu RB0 bằng 0. RA0 = Ra0; // Đảo ngược tiêu đề. delayms (50); // chờ thời gian để xem ký sinh trùng. trong khi (! RB0); // Đợi đến khi còng tay bị kéo. } }
Mã sẽ trông giống nhau theo một cách khác.
Ví dụ 4: Chúng ta hãy làm một màn hình đơn giản với các Led hiện tại. Vì vậy, chúng ta cần tăng số lượng led. Tôi hủy chai và gắn đèn LED vào tất cả chân của Portb.
Bây giờ chúng ta đã thiết lập đầu nối Portb0 làm đầu vào, bây giờ chúng ta cần thiết lập nó làm đầu ra. Thanh ghi Tris chỉ định các chân nào sẽ là đầu vào và đầu ra.
Chúng tôi đã làm chúng đầu tiên trong mở.
Mã số:
TRISA = 0b00000000; TRISB = 0b00000001; // RB0 đã được nhập. PORTA = 0b00000000; PORTB = 0b00000001;
Để giữ đầu vào và đầu ra của bạn đơn giản, bạn có thể kết hợp INPUT chữ cái đầu tiên I, OUTPUT chữ cái đầu tiên O. Đó là, nếu nó là 1, nó là INPUT, nếu nó là 0 nó là OUTPUT. Trong trường hợp này, chúng ta đặt thanh ghi TRISB là 0, sau đó tất cả chúng đều là đầu ra. Chúng tôi đang viết một mã như sau.
void main (void) // Chương trình chính { TRISA = 0b00000000; TRISB = 0b00000000; PORTA = 0b00000000; PORTB = 0b00000000; OPTION = 0b00000000; // Pullup đặt các điện trở có hiệu lực. CMCON = 0x07; // Đóng các chân analog của PORTA. Chuyển đổi sang Prota kỹ thuật số. trong khi (1) {// Chúng tôi sẽ viết chương trình của chúng tôi vào một chương trình vòng lặp vô hạn. unsigned char sayac = 0; // đăng ký tạm thời để xử lý //. làm { PORTB = (1 << số ++); // thao tác này sẽ đặt giá trị là 1 thành giá trị của bộ đếm // sang trái. Dấu + ở bên phải bộ đếm // Sau thao tác dịch chuyển, bộ đếm // Tăng biến bằng 1. delayms (250); // chu kỳ chờ delayms (250); } trong khi (sayac <8 font="">// Làm điều này 8 lần.8> } }
Bây giờ chúng ta hãy viết một mã trình bày từ phải sang trái.
void main (void) // Chương trình chính { TRISA = 0b00000000; TRISB = 0b00000000; PORTA = 0b00000000; PORTB = 0b00000000; OPTION = 0b00000000; // Pullup đặt các điện trở có hiệu lực. CMCON = 0x07; // Đóng các chốt analog PORTA. Chuyển đổi kỹ thuật số prota. trong khi (1) {// Chúng tôi sẽ viết chương trình vòng lặp vô hạn vào đó. unsigned char sayac = 0; // đăng ký tạm thời để xử lý // chúng tôi sử dụng. làm { PORTB = (1 << số ++); // thao tác này sẽ đặt giá trị là 1 thành giá trị của bộ đếm // sang trái. Dấu + ở bên phải bộ đếm // Sau thao tác dịch chuyển, bộ đếm // Tăng biến bằng 1. delayms (100); } trong khi (sayac <8 font="">// Làm điều này 8 lần.8> làm { PORTB = (0b10000000 >> đếm ++); // hoạt động này sẽ là 0b10000000 nhiều như giá trị của bộ đếm // shift right. Dấu + ở bên phải bộ đếm // Sau thao tác dịch chuyển, bộ đếm // Tăng biến bằng 1. delayms (100); // Thời gian chờ } trong khi (sayac <8 font="">// Làm điều này 8 lần.8> } }
Chúng tôi có một chương trình chống sét đen. Như bạn có thể thấy, viết mã trong C là cả hai dễ dàng và không khó như nó âm thanh. Bây giờ chúng ta đã biết về việc sử dụng các cổng cho các hoạt động đầu vào và đầu ra. Sau quá trình này, chúng tôi sẽ đi xa hơn.
Thêm trình biên dịch PIC18 theo MPLAP
Đầu tiên chúng ta xem xét liệu PICC-18 có được thiết lập dưới Mplab hay không.
Chúng ta sẽ thấy "Project -> Set Location Tool Location" khi chúng ta mở nó.
Cửa sổ gửi đi sẽ trông mỏng hơn bên trong Công cụ công nghệ cao PICC-18. Nó cho thấy nơi nó được cài đặt trong phần "Vị trí". Nếu phần "Vị trí" trống thì trình biên dịch này không được khai báo theo MPLAP. Thay vì phải tự động thực hiện việc này, bạn có thể chỉ định vị trí của mình theo cách thủ công. Tôi sử dụng phiên bản "PICC-18 8.35 PL2" tại đây.
Thay vì làm điều đó, trình biên dịch PICC-18, như PICC, có một chương trình làm cho nó tự động.
"C: \ HTSOFT \ PIC18 \" thư mục bên trong chương trình "picci-18_mplab6_setup.ex" nếu bạn chạy MPLAB sẽ tự động tích hợp bản thân dưới.
Các tập tin hướng dẫn viết chương trình PICC công nghệ cao: Hướng dẫn viết chương trình PICC công nghệ cao
Tệp tải xuống danh sách LINK (ở định dạng TXT) link-3989.zip mật khẩu-pass: 320volt.com
Post a Comment