Quantcast
Channel: Blog ngohaibac» Lập trình
Viewing all articles
Browse latest Browse all 10

Lập trình C cho vi điều khiển

$
0
0

Mình tham gia các diễn đàn từ lâu lắm rồi và cũng giải đáp nhiều thắc mắc về lập trình C cho các vi điều khiển thông dụng như 8051, PIC. Mình viết bài này để giải đáp thắc mắc cho các bạn mới bước vào học lập trình cho vi điều khiển dùng ngôn ngữ C.

Mình xin nói theo ý hiểu của mình về lập trình C cho vi điều khiển.

Để có thể lập trình C cho vi điều khiển, cần học những gì ở ngôn ngữ C:

  • Cách khai báo biến, các hàm
  • Cách phân biệt các kiểu dữ liệu, và dùng trong trường hợp nào: các kiểu cơ bản có dấu, không có dấu, khoảng dữ liệu, kiểu cấu trúc, kiểu con trỏ, struct ..
  • Cách viết một hàm và gọi 1 hàm
  • Cách qui hoạch hàm: phân chương trình thành các hàm nhỏ và cho vào thư viện (thực ra là file .h, .c để sau này gọi )
  • Các lệnh gán, so sánh <=, >=, ==
  • Các vòng lặp if .. then , if  .. then ... else, while

Ngôn ngữ C cho vi điều khiển tuân theo chuẩn C, ngoài ra bổ sung thêm các kiểu dữ liệu khác phụ thuộc riêng vào từng loại vi điều khiển. Nên khi nói đến khái niệm "tệp lệnh" trong khi lập trình  C thì nó bao hàm tất cả các lệnh cơ bản của C và các kiểu dữ liệu này mà thôi, nên đừng đi hỏi là tệp lệnh là gì ? mà hãy xem trong manual của trình biên dịch đó xem.

Nói đến trình biên dịch mới nhớ là: các định nghĩa, kiểu dữ liệu, ... nó phụ thuộc thêm vào các trình biên dịch  C riêng biệt. Ví dụ với PIC16 thì khi viết bằng HTPIC thì khai báo configuration khác với khi viết bằng CCS, cái này được nói trong mỗi manual của trình biên dịch.

Các bạn có thể xem bài viết  Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18 thì những kiến thức để viết được nó rất đơn giản, chẳng có gì cả. Cái quan trọng là viết cái gì ở trong đó. Câu trả lời nằm ở datasheet của từng module của vi điều khiển. Các tên đặc biệt trong đó là nằm trong thư viện của trình biên dịch đó thôi. Bao giờ mỗi trình biên dịch cũng có các file header định nghĩa các thanh ghi của vi điều khiển, thường là giống với tên trong datasheet, nhưng có thể là không giống nên chỉ cần mở cái đó ra là được.

Thông thường, các vi điều khiển hiện nay khi giao tiếp với một cái gì đó thì nó có riêng một module và có riêng một chương trong mỗi datasheet của vi điều khiển hướng dẫn đầy đủ, cách active module thế nào, cách giao tiếp như thế nào.

Kết luận

Để có thể viết 1 chương trình cho vi điều khiển cần có các yếu tố sau:

  • Những kiến thức lập trình C căn bản.
  • Đọc kĩ manual của trình biên dịch, mở header file của vi điều khiển liên quan.
  • Datasheet của vi điều khiển để đọc từng module.

Vì thế nên hãy có khái niệm đầy đủ và đừng hỏi những câu hỏi không cần thiết ở các diễn đàn nhé.


Viewing all articles
Browse latest Browse all 10

Trending Articles