1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình hệ thống nhúng

33 856 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập trình hệ thống nhúng
Trường học Trường Đại Học Nha Trang
Chuyên ngành Công Nghệ Kỹ Thuật Cơ Điện Tử
Thể loại Bài giảng
Thành phố Nha Trang
Định dạng
Số trang 33
Dung lượng 147,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình hệ thống nhúng

Trang 2

Hệ thống nhúng ( embedded system )

n Một hệ thống có khả năng tự trị được nhúng vào

trong một môi trường hay một hệ thống mẹ.

n Một hệthống nhúng thường không phải làmột khối

riêng biệt mà là một hệ thống các thiết bị

n Phần mềm được viết cho các hệthống nhúng được gọi

là firmware và được lưu trữtrong các chip bộ nhớ chỉ

đọc (read-only memory) hoặc bộ nhớ flash chứkhông

phải là trong một ổ đĩa

Trang 3

n Ngôn ngữ lập trình phải thỏa mãn được hai

điều kiện cơ bản là:

n Nóphải dễ hiểu và dễ sử dụng đối với người lập

trình, để con người có thểdùng nó giải quyết các

bài toán khác

n Nóphải miêu tả một cách đầy đủvà rõ ràng các

tiến trình (process), để có thể chạy được trên các

máy tínhkhác

Trang 4

Ngôn ngữ lập trình ( tiếp )

n Ngôn ngữ máy - Machine languages

n Ngôn ngữ duy nhất của máy tính – CPU

n Tại sao lại chọn C

n Từ khóa ít (khoảng 32 từkhóa)

n Thông dụng (hầu hết code đều viết bằng C)

n Tính ổn định (không thay đổi nhiều lắm theo thời

gian)

n Tốc độ thực thi nhanh

n Là nền tảng nhiều ngôn ngữkhác ( Java, C++,

awk, Perl)

Trang 5

Ngôn ngữ C ( tiếp )

n Từ khóa

_SP_SI

_DI

_BP

_DX_DL

_DH_CX

_CL

_CH

_BX_BL

_BH_AX

_AL

_AH

_ss_es

_ds

_cs

whilevolatile

voidunsigne

d

union

typedefswitch

structstatic

sizeof

short

returnregister

longint

if

goto

forfloat

externelse

double

do

defaultcontinue

charcase

break

auto

Flow chart

Start • Start /Begin bắt đầu giải thuật Chỉ có 1 và chỉ 1 điểm START.

• Input / Output dữ liệu xuất/nhập

Trang 6

Flow chart ( tiếp )

Chú thích

Giá trị trả về của một hàm Bắt đầu và kết thúc một khối lệnh

Trang 7

Ch02: Kiểu dữ liệu, biến và hằng

Array Struct File

Trang 8

Biến và hằng, các phép gán cơ bản

n Tên biến và hằng là một chuỗi kí tự liên tục gồm: Kí tự, chữ,

số, dấu gạch dưới Khi đặt tên biến, cần phải tuân theo những

quy định sau:

n Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới.

n Trong tên biến không được có các khoảng trống ở giữa tên.

n Không được đặt tên biến trùng với từ khóa.

n Ví du:

n name_1, _name2, sample32… là các tên biến hợp lệ.

n name 1, char, 34sample,… là các tên biến không hợp lệ

nKiểu_dữ_liệu: tên kiểu dữ liệu của các biến cần khai báo.

nTên_các_biến: Các biến có cùng kiểu dữ liệu có thể được

khai báo bằng cách liệt kê danh sách tên các biến Các biến

được phân cách nhau bởi dấu phẩy (,), cuối danh sách các

biến cần khai báo là dấu chấm phẩy

n Ví dụ

n char ten1, ten2;

n int a, b, c;

Trang 9

Biến và hằng, … ( tiếp )

n Khai báo hằng:

n const Kiểu_dữ_liệu tên_các_hằng = giá_trị_hằng;

n Ví dụ

n const int he_so = 123;

n const float gia_sp = 1,23;

Biến và hằng, … ( tiếp )

n Phép gán:

n Lệnh gán (assignment statement) dùng để gán giá trị

của một biểu thức cho một biến

Trang 10

Kiểu số nguyên

0 ÷ 4294967295 4

unsigned long Unsigned long integer

0 ÷ 65535 2

unsigned short Unsigned short integer

0 ÷ 65535

2 unsigned int

Unsigned integer

0 ÷ 255

1 unsigned char Unsigned character

-2147483648 ÷ 2147483647

4 long

Long integer

-32768 ÷ 32767

2 short

Short integer

-32768 ÷ 32767

2 int

Integer

-128 ÷ 127

1 char

Character

Dải giá trị

Số byte

Từ khóa Kiểu dữ liệu

Kiểu số nguyên (tiếp)

x or x

Giảm

x++ or ++x++

Tăng

x / y/

Lấy phần nguyên

x % y

%Lấy phần dư

x / y/

Chia

x * y

*Nhân

x – y-

Trừ

x + y+

Cộng

Vídụ

Ký hiệuPhép toán

Trang 11

Kiểu số thực

3.4E-4932 ÷ 3.4E4932 10

long float

Số thực có độ chính xác kép độ

dài lớn

2.2E-308 ÷ 1.8E308 8

double

Số thực có độ chính xác kép

1.2E-38 ÷ 3.4E38 4

n Phép tính

n Cộng, trừ, nhân, chia, phép tăng giảm

n Phép chia sẽ cho số thực, không có phép %

Trang 12

Kiểu Boolean

n Trong C không định nghĩa rõ, nó tồn tại dưới

dạng số nguyên.

n Giá trị 0 được hiểu là FALSE, giá trị khác 0

được hiểu là TRUE.

Trang 13

Kiểu ký tự

0 ÷ 125 2

unsigned char Kiểu không dấu

128 ÷ 127 1

char Kiểu có dấu

Dải giá trị

Số byte

Từ khóa Kiểu dữ liệu

Trang 14

Khai báo các hằng tượng trưng

n Mẫu khai báo

#define tên_ban_đầu dãy_thay_thế

n Ví dụ

Trang 15

Ch03: Câu lệnh, biểu thức và toán tử

n Câu lệnh là một chỉ thị hoàn chỉnh, ra lệnh cho

máy thực hiện công việc nào đó.

n Ví dụ

n n = i + j;

n lcd_putsf(“48CDT -DHNT”);

n Chaythang(5);

Trang 17

Việc sử dụng đôi khi gây khó hiểu, nhưng có nhiều chương

trình dịch tạo ra mã tối ưu hơn nếu ta sử dụng nó

n Phép tăng/giảm

n i = i + 1; ó i++ hoặc ++i

n i = i - 1; ó i hoặc i

n a = ++i; ó i = i + 1; a = i;

Trang 18

n Toán tử điều kiện

n biểu_thức_1 ? biểu_thức_2 : biểu_thức_3

n a = b>c ? m:n;

Thứ tự ưu tiên giữa các phép toán

n Các phép toán có mức ưu tiên khác nhau

n Nếu không nhớ thứ tự thì ta có thể dùng dấu

ngoăc đơn

n Ví dụ

n f = 2*(a+b) –( (x + y)/(a+x) );

n f = 3* ( n – (2*m) );

Trang 19

Sự hiệu chỉnh khi tính toán

n Trong C cho phép sự trộn lẫn các toán hạng

thuộc các kiểu dữ liệu khác nhau.

n Việc chuyển đổi dữ liệu tự động có thể mất dữ

liệu trong quá trình chuyển đổi.

n Ưu tiên chuyển đổi về kiểu dữ liệu số nguyên

chuẩn

n Chuyển đổi các ký tự về số nguyên dựa vào

bảng mã ASCII

Ép kiểu

n Chủ động việc chuyển đổi, không bị mất dữ

liệu khi thực hiện các phép toán

Trang 20

Các hàm chuẩn số học

n Các hàm số học nằm trong thư viện “ math.h

n int abs(int i);

n double sin(double d)

Trang 21

n int scanf(“xâu định dạng”, dãy địa chỉc c biến);

n scanf(“%d%d”, &a, &ch);

Trang 22

n void textcolor(int newcolor);

n textcolor(0); textcolor(15)

n void textbackground(int color);

n textbackground(0); textbackground(5);

n …

Trang 23

Ch05: Các câu lệnh điều khiển

Trang 25

Cấu trúc lựa chọn

n Cú pháp

switch (<biểu thức>)

{

case giá trị 1: khối lệnh 1; break;

case giá trị 2: khối lệnh 2; break;

case giá trị 3: khối lệnh 3; break;

.

case 0: printf("%d la so chan ",songuyen); break;

case 1: printf("%d la so le ",songuyen); break;

}

getch();

Trang 26

printf("\n Day so tu 1 den 10 :");

for (i=1; i<=10; i++)

printf("%d ",i);

getch();

return 0;

}

Trang 28

Cấu trúc vòng lặp (do … while)

Trang 29

Khi gặp lệnh này trong các vòng lặp, chương trình sẽ

bỏ qua phần còn lại trong vòng lặp và tiếp tục thực

hiện lần lặp tiếp theo

Trang 31

n Khái niệm: hàm là một đoạn chương trình cótên và

được gọi thực hiện ở nhiều nơi trong chương trình.

n Tại sao phải dùng chương trình con:

n Phân đoạn, module chương trình đểthuận tiện trong

quản lý, trình bày và phát triển (“chia đểtrị”)

n Cócông việc cần phải được thực hiện tại nhiều nơi

trong chương trình => tách công việc đó thành

chương trình con

n Các loại chương trình con: Function

Trang 32

printf(“\nNhap chieu dai:”);scanf(“%d”,&x);

printf(“\nNhap chieu rong:”);scanf(“%d”,&y);

Ngày đăng: 28/03/2013, 09:13

TỪ KHÓA LIÊN QUAN

w