Trước khi một bộ vi điều khiển có thể hoạt động để thực hiện các lệnh và điều khiển thiết bị trong các hệ thống, thì chip này cần phải được nạp chương trình. Bộ vi điều khiển PIC16F877 có 8Kbytes bộ nhớ Flash. Đây là nơi lưu giữ chương trình được viết bởi người sử dụng. Chương trình được viết bằng ngôn ngữ lập trình hợp ngữ (assembly) và tất cả các tập lệnh có thể được sử dụng cho lập trình PIC.
Có nhiều phần mềm được bán trên thị trường, đó là những phần mềm cung cấp khả năng viết chương trình cho vi điều khiển PIC. MPLAP là một trong số đó. MPLAP được phát triển bởi công ty Microchip Inc. MPLAP là một môi trường trường lập trình, nó có khả năng gỡ rối và biên dịch chương trình hợp ngữ sử dụng trong PIC.
Để ghi mã chương trình vào trong vi điều khiển PIC, cần phải có một mạch nạp. Quá trình nạp diễn ra như sau: đầu tiên chương trình được viết bằng ngôn ngữ lập trình hợp ngữ (assembly), sau đó mã lệnh của chương trình viết bằng hợp ngữ được chuyển thành mã máy. Mã máy là những dãy số thập lục phân (số thuộc hệ cơ số 16, gồm có các số từ 0 đến 9 và các chữ cái A, B, C, D, E, F). Sau đó mã máy được nạp vào vi điều khiển PIC bằng mạch nạp.
Viết chương trình bằng hợp ngữ là một công việc hết sức phức tạp. Hơn nữa, do tính phức tạp của hợp ngữ nên người viết chương trình rất dễ mắc lỗi, và việc phát hiện và sửa lỗi thực sự không đơn giản. Có một cách khác để viết các chương trình là sử dụng ngôn ngữ lập trình C. Có rất nhiều phần mềm miễn phí có khả năng tạo môi trường lập trình cho vi điều khiên sử dụng ngôn ngữ C. Source Boost IDE là một trong số đó. Source Boost IDE được triển bởi SourceBoost Technology. Bằng cách sử dụng Source Boost IDE, chương trình có thể được viết bằng C. sau đó Source Boost IDE sẽ chuyển đổi các mã lệnh (code) của chương trình viết bằng C thành hợp ngữ và mã máy để nạp vào vi điều khiển.
Sơ đồ lập trình cho PIC16F877
Khi một nút (button) trên giao diện đồ họa người sử dụng (GUI – Graphical user interface) được nhấn, máy tính sẽ tạo ra dữ liệu dạng nối tiếp và gửi đi trên
đường dây điện (tín hiệu được gửi trên đường dây là tín hiệu tương tự được điều chế ASK). Ở phía nhận, tín hiệu tương tự sẽ được giải điều chế thành tín hiệu số nối tiếp và đi tới cổng USART để vào vi điều khiển PIC.
Hình 3.11: Sơ đồ hoạt động của vi điều khiển PIC16F877
Nếu dữ liệu nhận được chính xác thì bộ vi xử lý sẽ thực thi lệnh trong khối dữ liệu nhận được.