1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

65 600 15
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 cho hệ vi điều khiển
Trường học Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Lập trình cho vi điều khiển
Thể loại Giáo trình
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 65
Dung lượng 2,41 MB

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

Nội dung

tài liệu về vi xử lý

Trang 1

Chương 4: Lập trình cho hệ

vi điều khiển

Trang 2

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

Trang 3

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

Trang 4

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à thuận lợi hơn Assembly

• C là ngôn ngữ lập trình có cấu trúc (không phải là

hướng đối tượng)

• Mỗi tác vụ có thể đóng gói trong một hàm

• Chương trình chính được đóng gói trong hàm main

Trang 5

Cấu trúc một chương trình trong C

Trang 6

Các loại biến trong C

Trang 7

Các loại biến trong C

• Khai báo biến:

– Cú pháp kiểu_dữ_liệu Vùng_nhớ tên_biến

– Ví dụ: unsigned char data x;

unsigned int x,y,z,t;

• Vùng nhớ: chỉ ra vùng nhớ sử dụng trong chương trình, gồm CODE,

DATA, DATAB, IDATA, PDATA, XDATA Khi không khai báo vùng nhớ

thì Keil C mặc định là vùng DATA

CODE: bộ nhớ mã nguồn chương trình

DATA: bộ nhớ dữ liệu 128byte thấp trong RAM

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

Trang 8

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

Trang 9

Các loại biến trong C

– 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ử

– Chú ý: Chỉ số mảng bắt đầu từ 0, mảng có bao nhiêu

chiều phải cung cấp đầy đủ bấy nhiêu chỉ số: VD mảng b*0+ *1+ là đúng; khi viết b*0+ là sai

Trang 10

Các loại biến trong C

• Con trỏ: là một biến dùng để chứa địa chỉ mà không chứa giá trị hay giá trị con trỏ chính là địa chỉ khoảng nhớ mà nó trỏ tới

• Khai báo:

– Cú pháp: kiểu_dữ_liệu vùng_nhớ *tên_biến

– Ví dụ: int *int_ptr

long data *long_ptr

Chú ý: khi không chỉ rõ vùng nhớ thì con trỏ sẽ được coi là con trỏ tổng quát

Loại con trỏ

Tổng quát XDATA CODE DATA IDATA PDATA

Kích thước 3byte 2byte 2byte 1byte 1byte 1byte

Trang 11

Các biến mở rộng trong Keil C

Trang 12

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

Trang 13

Các lệnh rẽ nhánh

Trang 14

Các lệnh rẽ nhánh

Trang 15

Các lệnh vòng lặp

Trang 16

Các lệnh vòng lặp

Trang 18

Con trỏ trong Assembly

Trang 19

Con trỏ trong C

Trang 20

Con trỏ trong C

Trang 21

Mảng trong C

Trang 22

Con trỏ và mảng

Trang 23

Ví dụ

Trang 24

Ví dụ

Trang 25

Ví dụ

Trang 26

Ví dụ

Trang 28

Giới thiệu

Trang 29

Ví dụ

Trang 30

Sử dụng hàm

Trang 33

Truyền đối số bằng giá trị và bằng

tham khảo

Trang 34

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

Trang 35

Inline assembly

Trang 36

Ví dụ:

Trang 37

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

Trang 38

Mô hình bộ nhớ C51

Trang 39

Mô hình bộ nhớ C51

Trang 40

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

Trang 42

Giới thiệu

Trang 43

Giới thiệu

Trang 44

Giới thiệu

Trang 45

Ví dụ 1

Trang 46

Ví dụ 2

Trang 47

Ví dụ 2

Trang 48

Ví dụ 3

Trang 49

Counter – Ví dụ 4

Trang 50

Counter – Ví dụ 4

Trang 52

Giới thiệu (nhắc lại)

Trang 53

Hoạt động

Trang 54

Ví dụ

Trang 56

Giới thiệu

Trang 57

Thanh ghi IE và IP

Trang 58

Địa chỉ vector ngắt

Trang 59

Ngắt Timer

Trang 60

Ngắt Timer

Trang 61

Ngắt Timer

Trang 62

Ngắt Timer và cổng nối tiếp

Trang 63

Code VD3

Trang 64

Một số bài tập

Trang 65

3 Bài tập 3: Viết chương trình tạo xung 1Khz, duty cycle là

40% trên chân P1.7, trong khi đó liên tục phát chuỗi ký tự

“Hello world” ra LCD 16x2

4 Bài tập 4: Viết chương trình nhận một ký tự từ cổng nối tiếp

– Nếu k{ tự này từ a – z thì chuyển sang hoa A – Z rồi phát ra cổng nối tiếp

– Ngược lại thì phát nó ra cổng nối tiếp

– Trong khi đó liên tục tao xung vuông 500Hz trên chân P1.3

Yêu cầu dùng ngắt cổng nối tiếp, thạch anh 12Mhz, tốc độ baud

9600

Ngày đăng: 22/04/2014, 12:46

TỪ KHÓA LIÊN QUAN

w