Tải bản đầy đủ (.pptx) (13 trang)

C trong vi điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (103.14 KB, 13 trang )

C trong vi điều khiển
Ôn lại tập lệnh và cấu trúc của ngôn ngữ lập trình c


Các nội dung chính


Các chỉ thị trước xử lý



Các kiểu dữ liệu



Toán tử



Cấu trúc cơ bản của một chương trình



Các cấu trúc điều khiển





Cấu trúc rẽ nhánh




Cấu trúc lặp



Break và Continue

Hàm


Các chỉ thị
•#include “tên thư viện.h” hoặc #include <tên thư viện.h> :
o
o

Nhập nội dung (bao gồm hàm và biến) từ một tệp khác và chèn vào chương trình hiện tại.
Ví dụ : #include <stdio.h>, #include <msp430.h>

•#define tên dãy ký tự
o
Thay thế tên bằng dãy ký tự đằng sau
o



Ví dụ : #define N 100, #define LED_ON 1, #define data P1OUT

#ifdef và ifndef
o Nếu đã định nghĩa và nếu chưa định nghĩa

#ifndef _GRANDPARENT_H
#define _GRANDPARENT_H
// Nội dung của grandparent.h
#endif



#prasma: biên dịch chương trình theo một số tùy chọn đặc biệt, phụ thuộc vào từng compiler khác nhau


Các kiểu dữ liệu
Các kiểu dữ liệu chuẩn
Tên

Dung lượng (byte)

Độ lớn dữ liệu

char

1

-128 đến 127

unsigned char

1

0 đến 255


enum

2

-32768 đến 32767

short

2

-32768 đến 32767

unsigned short

2

0 đến 65535

int

2

-32768 đến 32767

unsigned int

2

0 đến 65535


long

4

-2^31 đến 2^31-1

unsigned long

4

0 đến 2^32-1


Toán tử
Toán tử số học

Toán tử phức hợp

Toán tử thao tác bit

Toán tử quan hệ

Toán tử logic

Cộng +

Gán =

AND các bit &


==

NOT !

Trừ -

Cộng rồi gán +=

OR các bit |

!=

AND &&

Nhân *

Trừ rồi gán -=

XOR các bit ^

>

OR ||

Chia /

Nhân rồi gán *=

NOT bit ~


<

Lấy phần dư %

Chia rồi gán /=

Dịch trái <<

<=

Lấy dư rồi gán %=

Dịch phải >>

>=

Cộng thêm 1 ++
Trừ đi 1 --


Toán tử thao tác bit
char a = 0x01, b = 0x0f; // 0x01 = 0000 0001, 0x0f = 0000 1111


a & b = 0x01 = 0000 0001



a | b = 0x0f = 0000 1111




a ^ b = 0x0e = 0000 1110



a << 1 = 0x02 = 0000 0010



b >> 2 = 0x03 = 0000 0011

Các phép toán thao tác bit quan trọng trong vi điều khiển


Set bit: P1DIR |= 0x01: Cho bit tại vị trí 0 lên giá trị bằng 1, các bit còn lại không đổi



Clear bit: P1OUT &=~ 0x08: Cho bit tại vị trí 3 xuống giá trị bằng 0, các bit còn lại không đổi



Reverse bit: P2OUT ^= 0x02: Đảo bit tại vị trí 1, các bit còn lại không đổi


Cấu trúc cơ bản của một chương
trình C
#include <msp430.h>
#define IN P1OUT

int bien1, bien2;
int ham(){
//Nội dung hàm
}
int main(){
bien1 = ham();
//Nội dung chương trình
}


Cấu trúc cơ bản của một chương
trình C
#include <msp430.h>
#define IN P1OUT
int bien1, bien2;
int ham();
int main(){
bien1 = ham();
//Nội dung chương trình
}
int ham(){
//Nội dung hàm
}


Cấu trúc điều khiển – rẽ nhánh
if (điều kiện) thực hiện lệnh…
◦ Ví dụ: if(x < 3) x = 5;

if (điều kiện) thực hiện lệnh 1… else thực hiện lệnh 2

◦ Ví dụ: if(a < b) max = b; else max = a;

Switch(biến) case Giá trị 1: thực hiện lệnh 1; case Giá trị 2: thực hiện lệnh 2
◦ Ví dụ: switch(a){
case 0: num0 ++; break;
case 1: num1 ++; break;
}


Cấu trúc lặp
while(điều kiện) {
// Khối lệnh lặp
}
Ví dụ: while(1) { P1OUT ^= 0x01; delay(); }
for(khởi tạo; điều kiện; câu lệnh sau mỗi lần lặp) { khối lệnh lặp };
Ví dụ: for(i = 0; i < 100; i++){ if (i %2 == 0) countEven ++; }


Break và Continue
break và continue được sử dụng trong khối lệnh lặp
◦ break có tác dụng dừng ngay lập tức vòng lặp đang thực hiện
◦ continue có tác dụng tiếp tục vòng lặp và bỏ qua tất cả các lệnh ở sau nó


Bài tập
In ra màn hình tất cả các số nguyên tố trong khoảng từ 1 đến 100


Bài tập 1




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×