1. Trang chủ
  2. » Thể loại khác

BÀI GIẢNG KỸ THUẬT LẬP TRÌNH VI ĐIỀU KHIỂN (Bậc đại học 2 tín chỉ) Ngành công nghệ kỹ thuật cơ khí. GIẢNG VIÊN: ThS. PHẠM TRƯỜNG TÙNG

20 9 0
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

Định dạng
Số trang 20
Dung lượng 435,41 KB

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

Nội dung

Chính vì vậy, với mong muốn cung cấp một cách khái quát nhất, đơn giản nhất cho sinh viên ngành công nghệ cơ khí tiếp cận đến lĩnh vực vi điều khiển, trên cơ sở đề cương chi tiết đã được

Trang 1

UBND TỈNH QUẢNG NGÃI TRƯỜNG ĐH PHẠM VĂN ĐỒNG

BÀI GIẢNG

KỸ THUẬT LẬP TRÌNH VI ĐIỀU KHIỂN

(Bậc đại học 2 tín chỉ) Ngành công nghệ kỹ thuật cơ khí

GIẢNG VIÊN: ThS PHẠM TRƯỜNG TÙNG

Quảng Ngãi, 2017

Trang 2

MỤC LỤC

MỤC LỤC 2

LỜI NÓI ĐẦU 1

CHƯƠNG 1 NGÔN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN 2

1.1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ C 2

1.1.1 Giới thiệu 2

1.1.2 Các thành phần trong ngôn ngữ C 2

1.2 CÁC BIẾN 5

1.2.1 Tên biến 5

1.2.2 Khai báo biến 6

1.2.3 Khai báo và gán giá trị cho biến 6

1.2.4 Phạm vi của biến: 6

1.3 CÁC HÀM 6

1.3.1 Khai báo và định nghĩa hàm 7

1.3.2 Lời gọi hàm 8

1.3.3 Tham số hình thức, tham số thực và biến cục bộ 8

1.3.4 Quy tắc hoạt động của hàm 8

1.4 CÁC PHÉP TOÁN 9

1.4.1 Phép toán số học 9

1.4.2 Phép toán quan hệ 9

1.4.3 Phép toán logic 9

1.4.4 Phép toán trên bit (bitwise) 10

1.4.5 Phép gán hợp 10

1.4.6 Phép toán tăng giảm 10

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

1.5 CÁC LỆNH ĐIỀU KHIỂN CHƯƠNG TRÌNH 11

1.5.1 Khái niệm câu lệnh 11

1.5.2 CÁC LỆNH ĐƠN 12

1.5.3 Lệnh if 12

Trang 3

1.5.4 Cấu trúc if …else if 13

1.5.5 Lệnh switch 14

1.5.6 Lệnh for: 14

1.5.7 Lệnh while 15

1.5.8 Lệnh do-while 16

1.6 MẢNG VÀ CHUỖI 17

1.6.1 Mảng một chiều 17

1.6.2.Mảng nhiều chiều 18

1.6.3 Chuỗi 18

1.7 CON TRỎ 21

1.7.1 Khai báo biến con trỏ 21

1.7.2 Con trỏ với mảng 21

BÀI TẬP CHƯƠNG 1 21

CHƯƠNG 2 CẤU TRÚC CỦA HỆ VI ĐIỀU KHIỂN 23

2.1 CẤU TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN CƠ BẢN 23

2.2 CẤU TRÚC BỘ NHỚ 25

2.3 ĐỊA CHỈ 25

2.4 MỘT SỐ GIAO TIẾP NGOẠI VI CƠ BẢN 26

BÀI TẬP CHƯƠNG 2 26

CHƯƠNG 3 PHẦN CỨNG HỆ VI ĐIỀU KHIỂN PIC 27

3.1 SƠ ĐỒ VÀ CHỨC NĂNG CHÂN 27

3.1.1 Giới thiệu 27

3.1.2 Các thành phần cơ bản của một mạch ứng dụng vi điều khiển PIC29 3.2 XUNG NHỊP VÀ CHU KỲ MÁY 31

3.3 RESET 31

3.4 XUẤT NHẬP DỮ LIỆU 32

BÀI TẬP CHƯƠNG 3 33

CHƯƠNG 4 BỘ ĐỊNH THỜI VÀ BỘ ĐẾM 34

Trang 4

4.1 CẤU TRÚC BỘ ĐỊNH THỜI 35

4.2 THIẾT LẬP CÁC BỘ ĐỊNH THỜI 36

4.2.1 Timer 0 36

4.2.2 Timer 1 39

4.2.3 Các lệnh CCS liên quan đến Timer 1 40

4.3 CẤU TRÚC BỘ ĐẾM 40

BÀI TẬP CHƯƠNG 4 41

CHƯƠNG 5 NGẮT 42

5.1 NGẮT BỘ ĐỊNH THỜI/BỘ ĐẾM 44

5.1.1 Ngắt Timer 0 44

5.2 NGẮT NGOÀI 45

5.2.1 Ngắt ngoài 45

BÀI TẬP CHƯƠNG 5 47

CHƯƠNG 6 CÁC KHỐI ĐIỀU KHIỂN CHUYÊN DỤNG 48

6.1 BỘ CHUYỂN ĐỔI A/D 48

6.1.1 Giới thiệu 48

6.1.2 ADC của vi điều khiển PIC 18Fxx31 48

6.2 MÔ ĐUN ĐIỀU CHẾ ĐỘ RỘNG XUNG 59

6.2.1 Giới thiệu 59

6.2.2 Chu kỳ xung và độ rộng xung 60

6.2.3 Độ rộng xung 61

6.2.4 chương trình demo 61

BÀI TẬP CHƯƠNG 6 61

CHƯƠNG 7 CÁC GIAO TIẾP CƠ BẢN 63

7.1 GIAO TIẾP RS232/RS485 63

7.1.1 Phần cứng giao tiếp 63

.7.1.2 Truyền thông với RS232 với trình biên dịch CCS 64

7.2 GIAO TIẾP I2C 66

Trang 5

7.3 GIAO TIẾP SPI 71

7.3.1 Các cách kết nối cơ bản 72

7.3.2 Tên và chức năng của các chân 72

7.3.3 Các kiểu kết nối trong SPI 74

7.4 CÁC GIAO TIẾP KHÁC 76

7.4.1 Giao tiếp USB 76

BÀI TẬP CHƯƠNG 7 85

CHƯƠNG 8 LẬP TRÌNH ỨNG DỤNG 86

8.1 LẬP TRÌNH HIỂN THỊ VỚI LED 7 ĐOẠN 86

8.1.1 Cấu tạo của led 7 đoạn 86

8.1.2 Hiển thị 1 led 7 đoạn dùng vi điều khiển: 87

8.1.3 Hiển thị nhiều led 7 đoạn dùng vi điều khiển: 88

8.2 GIAO TIẾP VỚI MÀN HÌNH LCD 90

8.2.1 Hiển thị dùng LCD 90

8.2.2 Các chân cơ bản của LCD 2 dòng 16 kí tự 90

8.2.3 Khởi tạo LCD 91

8.2.4 Ghi kí tự lên LCD để hiển thị 93

8.2.5 Giới thiệu một thư viện cho LCD 4 bit và bài tập ứng dụng 94

8.3 ĐIỀU KHIỂN PID CHO ĐỘNG CƠ DC 97

BÀI TẬP CHƯƠNG 8 99

TÀI LIỆU THAM KHẢO 101

PHỤC LỤC: CƠ BẢN VỀ CCS 102

1 Cơ bản về ngôn ngữ lập trình CCS 102

1.1 Ví dụ về một chương trình viết trên ngôn ngữ CCS 102

1.2 Cấu trúc của một chương trình viết bằng CCS: 103

2 Các cấu trúc thuật toán của ngôn ngữ CCS 106

3 Các toán tử cơ bản trong CCS: 107

4 Các hàm số học cơ bản trong CCS 108

Trang 6

5 Các hàm vào ra cơ bản trong CCS 108

6 Các hàm tạo trễ 109

Trang 7

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 1

LỜI NÓI ĐẦU

Vi điều khiển hiện nay là một thiết bị không thể thiếu trong lĩnh vực điều khiển các hệ thống có yêu cầu về giá thành thấp Trên thị trường hiện nay có rất nhiều các dòng vi điều khiển khác nhau như họ 8051, PIC, ARM, Adruino… Mỗi loại vi điều khiển đều có các ưu và nhược, được sử tập lệnh riêng để lập trình

Họ vi điều khiển PIC là dòng vi điều khiển được sử dụng nhiều trong thực

tế do các ưu điểm vượt trội của nó Việc lập trình nó cũng đơn giản do sử dụng ngôn ngữ lập trình C và có một tập lệnh trên CCS rất phong phú với nhiều chương trình mẫu

Chính vì vậy, với mong muốn cung cấp một cách khái quát nhất, đơn giản nhất cho sinh viên ngành công nghệ cơ khí tiếp cận đến lĩnh vực vi điều khiển, trên cơ sở đề cương chi tiết đã được thông qua, bằng việc tham khảo các tài liệu

từ các nguồn khác nhau, tôi đã biên soạn tài liệu này để các sinh viên sử dụng trong quá trình học tập và tham khảo về vi điều khiển PIC

Trong quá trình biên soạn, không tránh những thiếu sót, mong nhận được

sự góp ý của các đồng nghiệp và sinh viên

Trang 8

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 2

CHƯƠNG 1 NGÔN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN

Mục tiêu:

Sinh viên hiểu được các khái niệm về biến, hàm, chuỗi, mảng, con trỏ cách thức sử dụng chúng

Sinh viên hiểu và vận dụng được các phép toán trong C

1.1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ C 1.1.1 Giới thiệu

Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất

để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng Ngoài ra, C cũng thường được dùng làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngôn ngữ này không được thiết kế dành cho người nhập môn (wikipedia Tiếng Việt)

1.1.2 Các thành phần trong ngôn ngữ C

1.1.2.1 Từ khóa

Từ khóa là từ có ý nghĩa xác định, nó được dùng để khai báo dữ liệu, viết câu lệnh…Trong ngôn ngữ C sử dụng trong CCS có sử dụng các loại từ khóa sau:

ASM/ENDASM : là từ khóa dùng để liệt kê/kết thúc liệt kê cấu trúc ngôn ngữ assembly khi lập trình

BREAK: Từ khóa được sử dụng để thoát khỏi vòng lặp CASE: từ khóa dùng để lựa chọn trong cấu trúc lựa chọn

CHAR: từ khóa dùng định nghĩa kiểu biến là kiểu ký tự

CONST: từ khóa dùng để định nghĩa hằng

CONTINUE: là từ khóa cho phép thực hiện bước tiếp theo của vòng lặp DEFAULT: là từ khóa sử dụng trong cấu trúc chọn lựa switch, sử dụng để chọn lựa trong trường hợp tất cả các trường hợp sử dụng từ khóa case không hợp

lệ

Trang 9

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 3

DO: từ khóa sử dụng trong vòng lặp do…while DOUBLE: từ khóa định nghĩa kiểu biến

ELSE: từ khóa rẽ nhánh trong cấu trúc lựa chọn if…else ENUM: từ khóa tạo danh sách các hằng kiểu integer FLOAT: từ khóa định nghĩa kiểu dữ liệu

FOR: từ khóa định nghĩa vòng lặp for GOTO: từ khóa cho phép nhảy đến một vị trí được gắn nhãn

IF: từ khóa định nghĩa cấu trúc rẽ nhánh if…else INT: từ khóa định nghĩa kiểu biến

INTERRUPT: từ khóa định nghĩa hàm cho phép điều khiển thủ tục ngắt của vi điều khiển

LONG: từ khóa định nghĩa kiểu biến

RETURN: từ khóa cho phép ngay lập tức thoát ra khỏi vòng lặp, cấu trúc lựa chọn hoặc một hàm và trả về một giá trị

SHORT: từ khóa định nghĩa kiểu biến

STRUCT: từ khóa định nghĩa cấu trúc

SIGNED: từ khóa định nghĩa kiểu biến có dấu

SIZEOF: từ khóa xác định kích thước byte của toán hạng

SWITCH: từ khóa định nghĩa cấu trúc chọn lựa switch…case UNSIGNED: từ khóa định nghĩa kiểu biến không dấu

VOID: Từ khóa sử dụng để khai báo chương trình chính và các thủ tục

1.1.2.2 Tên

Tên được dùng để xác định các đại lượng khác nhau trong chương trình Tên dùng để đặt cho biến, hằng, hàm, con trỏ, nhãn…Tên thường được đặt để mang tính gợi nhớ ý nghĩa của các đại lượng Chiều dài tối đa của tên là 32 ký

tự Tên hợp lệ phải là một chuỗi liên tục (không có khoảng trắng) gồm các chữ,

số, gạch dưới (không sử dụng các ký tự đặc biệt như -,#, &,>,<,!,~…), ký tự đầu của tên phải là chữ hoặc dấu gạch dưới Tên không được trùng với từ khóa, mỗi

tên chỉ được sử dụng cho một đối tượng Trong ngôn ngữ C có phân biệt chữ

hoa và chữ thường (ví dụ tên ―Bien‖ khác với ―bien‖)

Trang 10

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 4

1.1.2.3 Kiểu dữ liệu

Trong mục này giới thiệu các kiểu dữ liệu cơ bản và đặc biệt dùng trong lập trình C bằng phần mềm CCS

a Các kiểu cơ bản

32767

đến 2147483647

b Các kiểu đặc biệt

Kiểu enum: tạo một danh sách các biến hằng

enum id{[id[=biểu thức hằng]]}

id phải là kiểu đủ lớn để chứa hằng lớn nhất trong danh sách Các id trong danh sách đƣợc tạo là một kiểu hằng Mặc định, id đầu tiên là bằng không và id sau sẽ tăng lên một đơn vị Nếu biến a bằng biểu thức hằng và id có giá trị bằng biểu thức hằng thì các id sau sẽ bằng biểu thức hằng tăng lên 1

Trang 11

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 5

Ví dụ: enum day_so{a,b,c=5,d}; //điều này có nghĩa là a=0, b=1 và c=5

và d=6

c Kiểu cấu trúc

Tạo ra một tập hợp có một hoặc nhiều biến, có thể khác nhau về kiểu, được nhóm lại với nhau như là một đơn vị riêng lẻ

Struct[*][id]{ kiểu của[*] id [:bit];}[id]

Ví dụ:

Struct data_record{

int a[2];

int b:2; //biến b có 2 bit int c:3; //biến c 3 bit int d;

}data_var //data_record là kiểu cấu trúc, data_var là biến

d Kiểu union

Giữ các đối tượng khác kiểu và kích cỡ, trình biên dịch sẽ lưu giữ yêu cầu

về kích thước và sắp xếp Nó cũng cung cấp cách thức thao tác trên các dữ liệu khác nhau trên cùng một vị trí lưu trữ

e Kiểu typedef

được sử dụng với bất kỳ kiểu đặc biệt hoặc cơ bản để tạo một kiểu mới để

có thể sử dụng khai báo

1.1.2.4 Ghi chú:

Khi lập trình cần phải ghi chú để giải thích các biến, hằng, chương trình con, câu lệnh để người lập trình dễ theo dõi, người đọc dễ hiểu, trong C có kiểu ghi chú sau: //nội dung ghi chú: để ghi chú một hàng ; hoặc /* nội dung ghi chú

*/: để ghi chú nhiều hàng Khi trình biên dịch, các nội dung sau dấu // và ở giữa /*…*/ được bỏ qua

1.2 CÁC BIẾN 1.2.1 Tên biến

Đặt tên biến theo quy định đặt tên ở mục 1.1.2.2

Trang 12

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 6

1.2.2 Khai báo biến

Cú pháp: Kiểu dữ liệu danh sách biến;

Kiểu dữ liệu: như ở mục trên

Danh sách biến là liệt kê các biến có cùng kiểu dữ liệu, cách nhau bằng dấu ―,‖ Cuối danh sách có dấu ―;‖

Ví dụ:

Int8 a,b,c; // các biến a,b,c đều có cùng kiểu int8

1.2.3 Khai báo và gán giá trị cho biến

Có thể khai báo trước rồi gán giá trị sau hoặc khai báo và gán giá trị cùng lúc

1.2.4 Phạm vi của biến:

Khi khai báo, bạn cần nắm được phạm vi của biến Nếu khai báo và sử dụng không đúng sẽ nảy sinh nhiều vấn để rắc rối có thể dẫn đến không kiểm soát được chương trình Vì vậy bạn cần chắc chắn phạm vi của biến trước khi sử dụng Phạm vi của biến gồm:

Biến toàn cục: biến được sử dụng trong tất cả các chương trình chính và chương trình con Biến này đặt ngoài tất cả các cấu trúc, các hàm (kể cả hàm chính Chu trình sống của nó bắt đầu từ khi chạy chương trình đến khi kết thúc chương trình

Biến cục bộ: biến đặt trong hàm, cấu trúc, chỉ ảnh hưởng trong phạm vi hàm và cấu trúc đó Biến sẽ được khởi tạo khi bắt đầu hàm đó và giải phóng khi kết thúc hàm

1.3 CÁC HÀM

Một chương trình viết trong ngôn ngữ C là một dãy các hàm, trong đó có

một hàm chính (hàm main()) Hàm chia các bài toán lớn thành các công việc nhỏ

hơn, giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình Thứ tự các hàm trong chương trình là bất

kỳ, song chương trình bao giờ cũng đi thực hiện từ hàm main() Trong C chương trình con chỉ tồn tại dới dạng hàm chứ không có thủ tục

Trang 13

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 7

Hàm có thể xem là một đơn vị độc lập của chương trình Các hàm có vai trò ngang nhau, vì vậy không có phép xây dựng một hàm bên trong các hàm khác

1.3.1 Khai báo và định nghĩa hàm

Xây dựng một hàm bao gồm: khai báo kiểu hàm, đặt tên hàm, khai báo các đối và đưa ra câu lệnh cần thiết để thực hiện yêu cầu đề ra cho hàm Một

<Kiểu_trả_về> <tên_hàm> ( [khai báo các tham số hình thức])

Ví dụ:

{ [Khai báo các biến cục bộ]

[Các câu lệnh]

[return[biểu thức];]

}

Giải thích:

- <Kiểu_trả_về>: giá trị kiểu dữ liệu của dữ liệu sẽ trả về cho hàm

- <tên_hàm>: tên của hàm mà bạn muốn định nghĩa, được đặt theo qui tắc đặt tên của C

- [khai báo các tham số hình thức]: các tham số hình thức và kiểu của chúng

- [Khai báo các biến cục bộ]: khai báo các biến cục bộ, các biến này chỉ có tác dụng trong nội bộ hàm

- [return]: là lệnh thực hiện gán giá trị trả về cho hàm

- [biểu thức]: là giá trị trả về cho hàm, có thể là biến, hằng, biểu thức nhưng phải có giá trị xác định và có kiểu dữ liệu là kiểu đã khai báo cho hàm

Lưu ý:

- Hàm có thể có giá trị trả về hoặc không, giá trị trả về phải cùng kiểu với kiểu trả về đã khai báo hàm Nếu hàm không có giá trị trả về thì đặt từ

Trang 14

Bài giảng kỹ thuật lập trình vi điều khiển

Trang 8

- Khi hàm khai báo không có kiểu ở trước nó thì nó được mặc định là kiểu int

- Không nhất thiết phải khai báo nguyên mẫu hàm Nhưng nói chung nên

có vì nó cho phép chương trình biên dịch phát hiện lỗi khi gọi

- Nguyên mẫu của hàm thực chất là dòng đầu tiên của hàm thêm vào dấu

―;‖ Tuy nhiên, trong nguyên mẫu có thể bỏ tên các tham số hình thức

1.3.2 Lời gọi hàm

Cú pháp:

tên hàm ([Danh sách các tham số thực])

Danh sách các tham số thực phải bằng số tham số hình thức và lần lượt chúng có kiểu tương ứng với nhau

1.3.3 Tham số hình thức, tham số thực và biến cục bộ

Các tham số dùng khi khai báo hàm được gọi là tham số hình thức Các tham số được cung cấp cho hàm khi gọi hàm là tham số thực Tham số thực có thể là một biểu thức, trong khi tham số hình thức thì không thể là 1 biểu thức Dãy các tham số thực phải tương ứng về kiểu với tham số hình thức

Có những hàm không cần có tham số Vì vậy, khi khai báo ta có thể dùng

từ khóa void để báo rằng hàm không cần tham số

1.3.4 Quy tắc hoạt động của hàm

Khi gặp một lời gọi hàm thì nó sẽ bắt đầu được thực hiện Nói cách khác, khi máy gặp lời gọi hàm ở một vị trí nào đó trong chương trình, máy sẽ tạm dời chỗ đó và chuyển đến hàm tương ứng Quá trình đó diễn ra theo trình tự sau:

- Cấp phát bộ nhớ cho các biến cục bộ

- Gán giá trị của các tham số thực cho các tham số hình thức tương ứng

- Thực hiện các câu lệnh trong thân hàm

- Khi gặp câu lệnh return hoặc dấu } cuối cùng của thân hàm thì máy sẽ xoá các tham số hình thức, biến cục bộ và ra khỏi hàm

Nếu trở về từ một câu lệnh return có chứa biểu thức thì giá trị của biểu thức được gán cho hàm Giá trị của hàm sẽ được sử dụng trong các biểu thức chứa nó

Ngày đăng: 03/08/2022, 07:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w