Chương 4: Lập trình cho hệ
vi điều khiển
Nội dung
4.1 Cơ bản về lập trình C cho VĐK
4.2 Các lệnh rẽ nhánh và vòng lặp
4.3 Sử dụng con trỏ và mảng trong C
4.4 Các hàm và chương trình con
4.5 Chèn Assembly code trong C
4.6 Mô hình bộ nhớ Keil C51
4.7 Điều khiển ngoại vi
–Timer
–Cổng nối tiếp
–Ngắt
Nội dung
4.1 Cơ bản về lập trình C cho VĐK
4.2 Các lệnh rẽ nhánh và vòng lặp
4.3 Sử dụng con trỏ và mảng trong C
4.4 Các hàm và chương trình con
4.5 Chèn Assembly code trong C
4.6 Mô hình bộ nhớ Keil C51
4.7 Điều khiển ngoại vi
–Timer
–Cổng nối tiếp
–Ngắt
4.1 Giới thiệu
• C là ngôn ngữ gần ngôn ngữ Assembly nhất trong tất cả
các ngôn ngữ cấp cao
– Lệnh tính toán trên bit
– Con trỏ (định địa chỉ gián tiếp)
• Phần lớn các VĐK đều có C compiler
• Việc phát triển các ứng dụng dùng C sẽ nhanh chóng và
DATAB: bộ nhớ dữ liệu có thể địa chỉ bit, trong DATA
IDATA: 128byte cao (chỉ có ở 1 số VĐK)
PDATA: bộ nhớ ngoài 256byte, truy cập bởi địa chỉ trên P0
XDATA: bộ nhớ dữ liệu ngoài, dung lượng đến 64KB, truy cập bởi địa
chỉ đặt trên P0 và P2
Các loại biến trong C
• Định nghĩa lại kiểu dữ liệu:
– Cú pháp: typedef kiểu_dữ_liệu tên_biến;
tên_biến sau đó được dùng như một kiểu dữ liệu mới và
có thể dùng để khai báo các biến khác
– Ví dụ: typedef int m5[5];
Dùng tên m5 khai báo 2 biến a, b có kiểu dữ liệu là mảng 1
chiều 5 phần tử:
m5 a,b;
• Chú ý:
– bit: dùng để khai báo các biến có giá trị 0/1, hay các biến
logic trên vùng RAM của VĐK. Khi khai báo Keil C mặc định
là vùng BDATA
– sbit, sfr,sfr16: dùng định nghĩa cho các thanh ghi có chức
năng hoặc cổng trên vđk dùng để truy nhập các đoạn dữ
liệu 1bit, 8bit,16bit
Các loại biến trong C
• Mảng:
– Cú pháp: tên_kiểu vùng_nhớ tên_mảng[số_phẩn
tử_mảng]
Khi bỏ trống số phần tử mảng ta sẽ có số phần tử bất
kỳ
– Ví dụ: unsigned int data a[5],b[2] [3];
Khai báo mảng a một chiều 5 phần tử; mảng b là
mảng hai chiều, tổng số 6 phần tử
thước
3byte
2byte
2byte
1byte
1byte
1byte
Các biến mở rộng trong Keil C
Nội dung
4.1 Cơ bản về lập trình C cho VĐK
4.2 Các lệnh rẽ nhánh và vòng lặp
4.3 Sử dụng con trỏ và mảng trong C
4.4 Các hàm và chương trình con
4.5 Chèn Assembly code trong C
4.6 Mô hình bộ nhớ Keil C51
4.7 Điều khiển ngoại vi
–Timer
–Cổng nối tiếp
–Ngắt
Các lệnh rẽ nhánh
Các lệnh rẽ nhánh
Ví dụ