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

Đo nhiệt độ sử dụng DS18B20 hiển thị LCD 8051

43 503 2

Đ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 43
Dung lượng 2,21 MB

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

Nội dung

Bài tập lớn vi xử lí trong đo lường và điều khiển Haui Chương 1: Tổng quan về Vi xử lý trong Đo lường và Điều khiển 1 1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý. 1 1.1.1 Vi xử lý. 1 1.1.2 Cấu trúc của một hệ vi xử lý. 2 1.1.2.1 Khối xử lý trung tâm (CPU) 3 1.1.2.2. Hệ thống bus 4 1.2 Cấu trúc chung họ 8051 và AT89S51. 5 1.2.1 Bộ vi điều khiển 8051 5 1.2.2 Sơ lược về AT89S52 6 1.2.3 Các thanh ghi cơ bản 11 1.2.3.1 Thanh ghi TMOD ( Timer Mode) 11 1.2.3.2 Thanh ghi TCON ( Timer Control) 13 1.2.3.3 Thanh ghi cho phép ngắtcấm ngắt ngoài: IE (Interrupt Enable) 15 1.2.4 Trình phục vụ ngắt 15 1.3. Ngôn ngữ C cho vi điều khiển 16 1.3.1 Giới thiệu ngôn ngữ C 16 1.3.2 Các hàm trong C 16 1.3.3 Kiểu dữ liệu 18 Chương 2: Cảm biến 18B20 và giao tiếp 1W 20 2.1. Cấu tạo và đặc điểm của 18B20 20 2.2. Nguyên lý giao tiếp Vi điều khiển theo chuẩn 1W 22 2.3 Màn hình LCD 25 2.3.1 Cấu trúc của LCD 25 2.3.2 Cách kết nối, lập trình để sử dụng LCD 26 Chương 3: Xây dựn ứng dụng trên cơ sở 8051 27 3.1 Lưu đồ thuật toán 27 3.2 Chương trình điều khiển xây dựng trên keil C 28 3.3. Kết quả mô phỏng 39

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BỘ CÔNG THƯƠNG



BÀI TẬP LỚN : HỌC PHẦN VI XỬ LÍ TRONG ĐO LƯỜNG

VÀ ĐIỀU KHIỂN

Tên đề tài:

Đo và điều khiển nhiệt độ dùng DS18B20 hiển thị LCD

Hà Nội-2019

Trang 2

Mục lục

Chương 1: Tổng quan về Vi xử lý trong Đo lường và Điều khiển 1

1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý 1

1.1.1 Vi xử lý 1

1.1.2 Cấu trúc của một hệ vi xử lý 2

1.1.2.1 Khối xử lý trung tâm (CPU) 3

1.1.2.2 Hệ thống bus 4

1.2 Cấu trúc chung họ 8051 và AT89S51 5

1.2.1 Bộ vi điều khiển 8051 5

1.2.2 Sơ lược về AT89S52 6

1.2.3 Các thanh ghi cơ bản 11

1.2.3.1 Thanh ghi TMOD ( Timer Mode) 11

1.2.3.2 Thanh ghi TCON ( Timer Control) 13

1.2.3.3 Thanh ghi cho phép ngắt/cấm ngắt ngoài: IE (Interrupt Enable) 15

1.2.4 Trình phục vụ ngắt 15

1.3 Ngôn ngữ C cho vi điều khiển 16

1.3.1 Giới thiệu ngôn ngữ C 16

1.3.2 Các hàm trong C 16

1.3.3 Kiểu dữ liệu 18

Chương 2: Cảm biến 18B20 và giao tiếp 1W 20

2.1 Cấu tạo và đặc điểm của 18B20 20

2.2 Nguyên lý giao tiếp Vi điều khiển theo chuẩn 1W 22

2.3 Màn hình LCD 25

2.3.1 Cấu trúc của LCD 25

2.3.2 Cách kết nối, lập trình để sử dụng LCD 26

Chương 3: Xây dựn ứng dụng trên cơ sở 8051 27

3.1 Lưu đồ thuật toán 27

3.2 Chương trình điều khiển xây dựng trên keil C 28

3.3 Kết quả mô phỏng 39

Trang 3

Chương 1: Tổng quan về Vi xử lý trong Đo lường và Điều khiển 1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý

1.1.1 Vi xử lý

Vi xử lý (viết tắt là µP hay uP), đôi khi còn được gọi là bộ vi xử lý, là một linh kiện điện tử được chế tạo từ các tranzito thu nhỏ tích hợp lên trên một vi mạch tích hợp hơn Khối xử lý trung tâm (CPU) là một bộ vi xử lý được nhiều người biết đến nhưng ngoài ra nhiều thành phần khác trong máy tính cũng có

bộ vi xử lý riêng của nó, ví dụ trên card màn hình (video card) chúng ta cũng

có một bộ vi xử

Trước khi xuất hiện các bộ vi xử lý, các CPU được xây dựng từ các mạch tích hợp cỡ nhỏ riêng biệt, mỗi mạch tích hợp chỉ chứa khoảng vào chục tranzito Do đó, một CPU có thể là một bảng mạch gồm hàng ngàn hay hàng triệu vi mạch tích hợp ngày nay, công nghệ tích hợp đã phát triển, một CPU

có thể tích hợp lên một hoặc vài vi mạch tích hợp cỡ lớn, mỗi vi mạch tích hợp

cỡ lớn chứa hàng ngàn hoặc hàng triệu tranzito Nhờ đó công suất tiêu thụ và giá thành của bộ vi xử lý đã giảm đáng kể

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được

sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như

bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số, Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài

Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v Hầu hết các vi điều khiển ngày nay được xây dựng dựa trên kiến trúc Harvard, kiến trúc này định nghĩa bốn thành phần cần thiết của một hệ thống nhúng Những thành phần này là lõi CPU, bộ nhớ chương trình (thông thường

là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ định thời

và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môi trường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tích hợp Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt động chỉ với vài

vi mạch hỗ trợ bên ngoài

Trang 4

1.1.2 Cấu trúc của một hệ vi xử lý

Sơ đồ khối một máy tính cổ điển

- ALU (đơn vị logic số học): thực hiện các bài toán cho máy tính bao gồm: +,

*, /,-, phép toán logic, …

- Control (điều khiển): điều khiển, kiểm soát các đường dữ liệu giữa các thành phần của máy tính

- Memory (bộ nhớ): lưu trữ chương trình hay các kết quả trung gian

- Input (nhập), Output (Xuất): xuất nhập dữ liệu (còn gọi là thiết bị ngoại vi)

Về cơ bản kiến trúc của một vi xử lý gồm những phần cứng sau:

Ports))

Ngoài ra với mỗi loại vi điều khiển cụ thể còn có thể có thêm một số phần cứng khác như bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, các mạch điều chế dạng sóng WG, điều chế độ rộng xung PWM…Bộ não của mỗi vi xử lý chính là CPU, các phần cứng khác chỉ là các cơ quan chấp hành dưới quyền của CPU Mỗi cơ quan này đều có một cơ chế hoạt động nhất định mà CPU phải tuân theo khi giao tiếp với chúng

Trang 5

Sơ đồ khối hệ vi xử lý

Để có thể giao tiếp và điều khiển các cơ quan chấp hành (các ngoại vi), CPU sử dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu (Data) và tín hiệu điều khiển (Control) Về mặt vật lý thì các tín hiệu này

là các đường nhỏ dẫn điện nối từ CPU đến các ngoại vi hoặc thậm chí là giữa các ngoại vi với nhau Tập hợp các đường tín hiệu có cùng chức năng gọi là các bus Như vậy ta có các bus địa chỉ, bus dữ liệu và bus điều khiển

1.1.2.1 Khối xử lý trung tâm (CPU)

CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic (ALU), các thanh ghi, các khối lôgic và các mạch giao tiếp Chức năng của CPU là tiến hành các thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua các lệnh (Instructions)

Trang 6

Khối xử lý trung tâm

1 CPU với n đường địa chỉ sẽ có thể địa chỉ hoá được 2n ô nhớ Ví dụ, 1 Cpu có 16 đường địa chỉ có thể địa chỉ hoá được 216 hay 65,536 (64K) ô nhớ

a Bus dữ liệu - Data bus

Là các đường tín hiệu song song 2 chiều, nhiều thiết bị khác nhau có thể được nối với bus dữ liệu; nhưng tại một thời điểm, chỉ có 1 thiết bị duy nhất có thể được phép đưa dữ liệu lên bus dữ liệu

Độ rộng Bus: 4, 8, 16, 32 hay 64 bits

Bất kỳ thiết bị nào được kết nối đến bus dữ liệu phải có đầu ra ở dạng 3 trạng thái, sao cho nó có thể ở trạng thái treo (trở kháng cao) nếu không được

sử dụng

Trang 7

b Bus điều khiển - Control bus

Bao gồm 4 đến 10 đường tín hiệu song song

CPU gửi tín hiệu ra bus điều khiển để cho phép các đầu ra của ô nhớ hay các cổng I/O đã được địa chỉ hoá Các tín hiệu điều khiển thường là: đọc/ ghi

bộ nhớ - memory read, memory write, đọc/ ghi cổng vào/ra - I/O read, I/O write

Ví dụ, để đọc 1 byte dữ liệu từ ô nhớ sẽ cần đến các hoạt động sau: CPU đưa ra địa chỉ của ô nhớ cần đọc lên bus địa chỉ

CPU đưa ra tín hiệu đọc bộ nhớ - Memory Read trên bus điều khiển Tín hiệu điều khiển này sẽ cho phép thiết bị nhớ đã được địa chỉ hoá đưa byte dữ liệu lên bus dữ liệu Byte dữ liệu từ ô nhớ sẽ được truyền tải qua bus dữ liệu đến CPU

1.2 Cấu trúc chung họ 8051 và AT89S51

1.2.1 Bộ vi điều khiển 8051

 Vcc (40): Chân cung cấp điện (5V)

 GND (20): Chân nối đất (0V)

 Port 0 (32-39): Port 0 là port xuất

nhập 8-bit hai chiều

 Port 1(1-8):Port 1 là port xuất nhập

8-bit hai chiều

 Port 2 là port xuất nhập 8-bit hai chiều

 Trong bất kỳ hệ thống nào sử dụng

8751, 89C51 hoặc DS5000 ta thường nối

cổng P0 tới các điện trở kéo

 Port 3 là Port xuất nhập 8-bit hai chiều Port 3 cũng còn làm các chức năng khác của AT89C51

Sơ đồ chân của IC 8501

Trang 8

Hình: Cấu trúc vi điều khiển 8051

Các thành viên họ 8501

1.2.2 Sơ lược về AT89S52

AT89S52 có các đặc tính như sau:

Trang 9

+ 8 KB PEROM (Flash Programmable and Erasable Read Only

Memory), có khả năng tới 1000 chu kỳ ghi xoá

+ Tần số hoạt động từ: 0Hz đến 24

+ 3 mức khóa bộ nhớ lập trình

+ 256 Byte RAM nội

+ 4 Port xuất /nhập I/O 8 bit

Trang 10

(Power-Sơ đồ chân AT89S52

- Nhóm chân nguồn:

+ VCC: chân 40, điện áp cung cấp 5VDC

Trang 11

+ GND: chân 20(hay nối Mass)

- Nhóm chân dao động: gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2),

cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển, được

sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định

XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong

XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo

+ Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại

- Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển -Chân 31 nối VCC: sử dụng bộ nhớ chương trình (8Kb) bên trong vi điều khiển RST(Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy

+ Chân cho phép bộ nhớ chương trình PSEN: PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE (output enable) của ROM ngoài Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1)

(Không cần kết nối chân này khi không sử dụng đến)

Chân ALE :(chân cho phép chốt địa chỉ-chân 30)

Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng

là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào

Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống

*Ghi chú : khi không sử dụng có thể bỏ trống chân này

Trang 12

+ Nhóm chân điều khiển vào/ra:

Ø Port 0:

Gồm 8 chân (từ chân 32 đến 39) có hai chức năng:

-Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu

để điều khiển led đơn sáng tắt

- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với

bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài

Ø Port 1 (P1): gồm 8 chân (từ chân 1 đến chân , chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác

Ø Port 2 (P2) : gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:

- Chức năng xuất/nhập

- Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao do P2 này đảm nhận

Ø Port 3 (P3): gồm 8 chân (từ chân 10 đến 17): Chức năng xuất/nhập

Với mỗi chân có một chức năng riêng:

P3.0 RxD : Ngõ vào nhận dữ liệu nối tiếp

P3.1 TxD : Ngõ xuất dữ liệu nối tiếp

P3.2 INT0: Ngõ vào ngắt cứng thứ 0

P3.3 INT1: Ngõ vào ngắt cứng thứ 1

P3.4 T0 : Ngõ vào của Timer/Counter thứ 0

P3.5 T1 : Ngõ vào của Timer/Counter thứ 1

P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài

P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài

P1.0 T2 : Ngõ vào của Timer/Counter thứ 2

P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2

Trang 13

1.2.3 Các thanh ghi cơ bản

1.2.3.1 Thanh ghi TMOD ( Timer Mode)

Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung một thanh ghi được gọi là TMOD: để thiết lập các chế độ làm việc khác nhau của bộ định thời

Thanh ghi TMOD là thanh ghi 8 bit gồm có:

+ 4 bit thấp để thiết lập cho bộ Timer 0

+ 4 bit cao để thiết lập cho Timer 1

Trong đó:

+2 bit thấp của chúng dùng để thiết lập chế độ của bộ định thời

+ 2 bit cao dùng để xác định phép toán

Hình: Thanh ghi TMOD

Các chế độ của thanh ghi TMOD

Là các bit chế độ của các bộ Timer 0 và Timer 1 Chúng chọn chế độ của các bộ định thời: 0, 1, 2 và 3 như bảng dưới Chúng ta chỉ tập chung vào các chế độ thường được sử dụng rộng rãi nhất là chế độ 1 và chế độ 2 Chúng ta sẽ sớm khám phá ra các đặc tính của các chế độ này sau khi khám phần còn lại của thanh ghi TMOD Các chế độ được thiết lập theo trạng thái của M1 và M0 như sau:

Trang 14

M1 M0 Chế

đặt trước

Timer 0 được tách thành 2 Timer 8 bit -Timer 8 bit TL0 được điều khiển bởi các bit của mode Timer0

-Timer 8 bit TH0 được điều khiển bởi các bit của mode Timer1

-Timer 1 không hoạt động ở mode 3

Bảng: Các chế độ hoạt động của bộ đếm/bộ định thời Bit C/T (Counter/Timer)

Bit này trong thanh ghi TMOD được dùng để quyết định xem bộ định thời được dùng như một máy tạo độ trễ hay bộ đếm sự kiện Nếu bit C/T = 0 thì nó được dùng như một bộ định thời tạo độ trễ thời gian

Ví dụ 1:

TMOD = 0000 0001 (01H) : chế độ 1 của bộ định thời Timer 0 được chọn TMOD = 0010 0000 (20H) : chế độ 2 của bộ định thời Timer 1 được chọn TMOD = 0001 0010 (12H) : chế độ 1 của bộ định thời Timer 1 và chế độ 2 của Timer 0 được chọn

Nguồn đồng hồ cho chế độ trễ thời gian là tần số thạch anh của 8051 Điều

đó có nghĩa là độ lớn của tần số thạch anh đi kèm với 8051 quyết định tốc độ nhịp của các bộ định thời trên 8052 Tần số của bộ định thời luôn bằng 1/12 tần

số của thạch anh gắn với 8052

Các giá trị đếm được của Timer/Counter thì được lưu trong thanh ghi THx

và TLx Nếu ta không thiết lập giá trị bắt đầu đếm cho các thanh ghi TLx và THx là 0000h thì Timer sẽ bắt đầu đếm từ giá trị 0000H đến giá trị FFFFH

Trang 15

lẻ như vậy là tốc độ baud đối với truyền thông nối tiếp của 8052 Tần số XTAL

= 11,0592MHz cho phép hệ thống 8052 truyền thông với PC mà không có lỗi

1.2.3.2 Thanh ghi TCON ( Timer Control)

Thanh ghi TCON

Thanh ghi TCON chứa các bit điều khiển và trạng thái của bộ định thời 0

và bộ định thời 1 ( xem bảng 4.4 ) Bốn bit cao trong TCON(TCON.4 -

TCON.7 ) được dùng để điều khiển các bộ định thời hoạt động hoặc ngừng ( TR0, TR1 ) hoặc để báo các bộ định thời tràn (TF0, TF1) Các bit này được dùng rộng rãi trong các thí dụ của chương này

Bốn bit thấp của TCON ( TCON.0 - TCON.3 ) không dùng để điều khiến các

bộ định thời, chúng được dùng để phát hiện và khởi động các ngắt ngoài

Trang 16

Cờ báo tràn TFx

Nếu ta thiết lập giá trị bắt đầu đếm cho các thanh ghi TLx và THx là khác 0000h thì Timer sẽ bắt đầu đếm từ giá trị ta gán đến giá trị FFFFH Nhưng khi chuyển từ giá trị FFFFh đến 0000h thì sẽ sinh ra tràn làm cho bit TFx = 1 rồi tiếp tục đếm từ giá trị 0000h Để cho Tiner luôn bắt đầu đếm từ giá trị ta gán thì ta có thể lập trình chờ sau mỗi lần tràn ta sẽ cho xóa cờ TFx và gán lại giá trị cho TLx/THx để Timer luôn bắt đầu đếm từ giá trị khởi gán lên

Thanh ghi điều khiển TRx

Thanh ghi này có tác dụng cho Timer được hay không được phép đếm xung Nếu TRx = 1 thì Timer được phép đếm xung

Nếu TRx = 0 thì timer không được phép đếm xung

Trang 17

1.2.3.3 Thanh ghi cho phép ngắt/cấm ngắt ngoài: IE (Interrupt Enable)

Thanh ghi IE

Chức năng các bit:

- EA: Bit cho phép ngắt/cấm ngắt toàn cục Khi EA = 0 thì không một tín hiệu ngắt nào được chấp nhận Khi EA = 1 thì các tín hiệu ngắt sẽ được chấp nhận nếu như bit điều khiển ngắt của các nguồn ngắt đó được bật

- ET2: Bit điều khiển ngắt tràn Timer 2 Nếu ET2 = 0, ngắt tràn Timer 2

bị cấm, nếu ET2 = 1, ngắt tràn Timer 2 được chấp nhận

- ES: Bit điều khiển ngắt UART

- ET1: Bit điều khiển ngắt tràn Timer 1

- EX1: Bit điều khiển ngắt ngoài 1

- ET0: Bit điều khiển ngắt tràn Timer 0

- EX0: Bit điều khiển ngắt ngoài 0

1.2.4 Trình phục vụ ngắt

Đối với mỗi ngắt thì phải có một trình phục vụ ngắt (ISR) hay trình quản lý ngắt để đưa ra nhiệm vụ cho bộ vi điều khiển khi được gọi ngắt Khi một ngắt được gọi thì bộ vi điều khiển sẽ chạy trình phục vụ ngắt Đối với mỗi ngắt thì

có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của nó Nhóm vị trí bộ nhớ được dành riêng để lưu giữ địa chỉ của các ISR được gọi là bảng vector ngắt

Hình 1: Bảng vector ngắt của 8051

Trang 18

Trong lập trình C trên Keil c cho 8052, chúng ta khai báo trình phục vụ

ngắttheo cấu trúc sau:

Void Name (void) interrupt X //( X: là số thứ tự của ngắt )

1.3 Ngôn ngữ C cho vi điều khiển

1.3.1 Giới thiệu ngôn ngữ C

Trong kỹ thuật lập trình vi điều khiển nói chung, ngôn ngữ lập trình được

sử dụng thường chia làm 2 loại: Ngôn ngữ bậc thấp và Ngôn ngữ bậc cao Ngôn ngữ bậc cao là các ngôn ngữ gần vơi ngôn ngữ con người hơn, do đó việc lập trình bằng các ngôn ngữ này trở nên dễ dàng và đơn giản hơn Có thể

kể đến một số ngôn ngữ lập trình bậc cao như C, Basic, Pascal… trong dó C là ngôn

ngữ thông dụng hơn cả trong kỹ thuật vi điều khiển Về bản chất, sử dụng các ngôn ngữ này thay cho ngôn ngữ bậc thấp là giảm tải cho lập trình viên trong việc nghiên cứu các tập lệnh và xây dựng các cấu trúc giải thuật Chương trình viết bằng ngôn ngữ bậc cao cũng sẽ được một phần mềm trên máy tính gọi là trình biên dịch (Compiler) chuyển sang dạng hợp ngữ trước khi chuyển sang

mã máy

Khi sử dụng ngôn ngữ C người lập trình không cần hiểu sâu sắc về cấu trúc của bộ vi điều khiển Có nghĩa là với một người chưa quen với một vi điểu khiển cho trước sẽ xây dựng được chương trình một cách nhanh chóng hơn, do không phải mất thời gian tìm hiểu kiến trúc của vi điều khiển đó Và việc sử dụng lại các chương trình đã xây dựng trước đó cũng dễ dàng hơn, có thể sử

dụng toàn bộ hoặc sửa chữa một phần

Trang 19

{

// Các câu lệnh xử lý

}

VD;

unsigned char cong(unsigned char x, unsigned char y)

+ Hàm không trả lại giá trị

void Tên hàm( Biến truyền vào hàm)

(*) Hàm có thể có biến truyền vào hoặc không

+ Hàm không có biến truyền vào

unsigned char Tên hàm(void)

{

//câu lệnh

}

+ Hàm có biến truyền vào

void Tên hàm(unsigned char x)

VD: void Tên hàm(unsigned char x,unsigned char y,unsigned char z)

(***) Ngoài ra trong Keil C còn co một loại hàm là hàm ngắt:

Trang 21

- bit : dùng để khai báo các biến có giá trị 0 hoặc một hay các biến logic trên vùng RAM của vi điều khiển Khi khai báo biến kiểu bit trình dịc Keil C sẽ mặc định vùng nhớ sử dụng là BDATA

-sbit, sfr, sfr16: dùng để định nghĩa các cho các thanh ghi chức năng hoặc các

cổng trên vi điều khiển dùng để truy nhập các đoạn dữ liệu 1 bit, 8 bit, 16 bit

Ngày đăng: 04/05/2019, 22:14

TỪ KHÓA LIÊN QUAN

w