1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Dtcn gt lap rap lap trinh vi xu ly docx 9587

66 0 0

Đ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 Ráp, Lập Trình Vi Xử Lý
Tác giả Lê Tấn Hòa
Trường học Trường Cao Đẳng Kỹ Thuật Công Nghệ Quy Nhơn
Chuyên ngành Điện Tử Công Nghiệp
Thể loại giáo trình mô đun
Năm xuất bản 2018
Thành phố Quy Nhơn
Định dạng
Số trang 66
Dung lượng 1,98 MB

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

Cấu trúc

  • BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC (6)
    • 1.1. Giới thiệu về vi điều khiển PIC 18F4550 (6)
    • 1.2. Tạo project trên phần mềm lập trình PIC C complier (CCS) (8)
    • 1.3. Lập trình ứng dụng đơn giản (11)
  • BÀI 2: ĐIỀU KHIỂN HIỂN THỊ SỬ DỤNG VI ĐIỀU KHIỂN PIC (18)
    • 2.1. Lập trình điểu khiển hiển thị 1 Led đơn sáng tắt (18)
    • 2.2. Lập trình điểu khiển hiển thị 2 Led đơn sáng tắt luân phiên (19)
    • 2.3. Lập trình điểu khiển hiển thị 8 Led đơn (20)
    • 2.4. Lập trình điểu khiển hiển thị số trên 1 Led 7 đoạn (22)
    • 2.5. Lập trình điều khiển hiển thị số trên 2 led 7 đoạn (25)
    • 2.6. Lập trình điều khiển hiển thị ký tự trên Led ma trận 8x8 (27)
    • 2.7. Lập trình điều khiển hiển thị ký tự trên màn hình LCD 1602 (31)
  • BÀI 3: SỬ DỤNG BỘ ĐỊNH THỜI TIMER (35)
    • 3.1. Cài đặt chế độ cho bộ định thời (35)
    • 3.2. Lập trình ứng dụng sử dụng bộ định thời (38)
  • BÀI 4: SỬ DỤNG NGẮT (43)
    • 4.1. Lập trình điều khiển hoạt động ngắt timer (43)
    • 4.2. Lập trình ứng dụng sử dụng ngắt ngoài (48)
    • 4.3. Lập trình hiển thị số lượng sản phẩm đếm được sử dụng ngắt ngoài (49)
    • 4.4. Lập trình hệ thống đo tốc độ quay động cơ sử dụng ngắt ngoài INT2 và ngắt timer (52)
  • BÀI 5: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM, ADC (56)
    • 5.1. Lập trình điều chế độ rộng xung (56)
    • 5.2. Lập trình đọc giá trị nhiệt độ từ cảm biến nhiệt LM35 (59)
  • BÀI 6: LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ TỪ MÁY TÍNH (64)
    • 6.1. Lý thuyết liên quan (64)
    • 6.2. Trình tự thực hiện (64)
    • 6.3. Thực hành (64)
    • 6.4. Câu hỏi ôn tập (65)

Nội dung

LỜI GIỚI THIỆUĐể thực hiện biên soạn giáo trình đào tạo nghề Điện tử công nghiệp ở trình độ Cao Đẳng, giáo trình Lắp ráp, lập trình vi xử lý là một trong những giáo trình mô đun đào tạo

Trang 1

UBND TỈNH BÌNH ĐỊNH TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ QUY NHƠN

GIÁO TRÌNH

MÔ ĐUN: LẮP RÁP, LẬP TRÌNH VI XỬ LÝ

NGHỀ: ĐIỆN TỬ CÔNG NGHIỆP TRÌNH ĐỘ: CAO ĐẲNG

Ban hành kèm theo Quyết định số: 99/QĐ-CĐKTCNQN ngày 14 tháng 3 năm 2018

của Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ Quy Nhơn

Bình Định, năm 2018

Trang 2

TUYÊN BỐ BẢN QUYỀN

Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đượcphép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và thamkhảo

Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinhdoanh thiếu lành mạnh sẽ bị nghiêm cấm

Trang 3

LỜI GIỚI THIỆU

Để thực hiện biên soạn giáo trình đào tạo nghề Điện tử công nghiệp ở

trình độ Cao Đẳng, giáo trình Lắp ráp, lập trình vi xử lý là một trong những giáo

trình mô đun đào tạo chuyên ngành được biên soạn theo nội dung chương trìnhkhung được Bộ Lao động Thương binh Xã hội và Tổng cục Dạy Nghề phêduyệt Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức và kỹ năng chặtchẽ với nhau, logíc

Khi biên soạn, nhóm biên soạn đã cố gắng cập nhật những kiến thức mới

có liên quan đến nội dung chương trình đào tạo và phù hợp với mục tiêu đào tạo,nội dung lý thuyết và thực hành được biên soạn gắn với nhu cầu thực tế trongsản xuất đồng thời có tính thực tiển cao

Trong quá trình sử dụng giáo trình, tuỳ theo yêu cầu cũng như khoa học

và công nghệ phát triển có thể điều chỉnh thời gian và bổ sung những kiên thứcmới cho phù hợp Trong giáo trình, chúng tôi có đề ra nội dung thực tập củatừng bài để người học cũng cố và áp dụng kiến thức phù hợp với kỹ năng Tuynhiên, tùy theo điều kiện cơ sở vật chất và trang thiết bị, các trường có thề sửdụng cho phù hợp Mặc dù đã cố gắng tổ chức biên soạn để đáp ứng được mụctiêu đào tạo nhưng không tránh được những khiếm khuyết

Rất mong nhận được đóng góp ý kiến của các thầy, cô giáo, bạn đọc đểnhóm biên soạn sẽ hiệu chỉnh hoàn thiện hơn Các ý kiến đóng góp xin gửi vềTrường Cao Đẳng Kỹ thuật công nghệ Quy Nhơn, 172 An Dương Vương, TP.Quy Nhơn

Tham gia biên soạn

1 Lê Tấn Hòa

Trang 4

MỤC LỤC

Trang

LỜI GIỚI THIỆU 1

BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC 5

1.1 Giới thiệu về vi điều khiển PIC 18F4550 5

1.2 Tạo project trên phần mềm lập trình PIC C complier (CCS) 7

1.3 Lập trình ứng dụng đơn giản 10

BÀI 2: ĐIỀU KHIỂN HIỂN THỊ SỬ DỤNG VI ĐIỀU KHIỂN PIC 17

2.1 Lập trình điểu khiển hiển thị 1 Led đơn sáng tắt 17

2.2 Lập trình điểu khiển hiển thị 2 Led đơn sáng tắt luân phiên 18

2.3 Lập trình điểu khiển hiển thị 8 Led đơn 19

2.4 Lập trình điểu khiển hiển thị số trên 1 Led 7 đoạn 21

2.5 Lập trình điều khiển hiển thị số trên 2 led 7 đoạn: 24

2.6 Lập trình điều khiển hiển thị ký tự trên Led ma trận 8x8 25

2.7 Lập trình điều khiển hiển thị ký tự trên màn hình LCD 1602 29

BÀI 3: SỬ DỤNG BỘ ĐỊNH THỜI TIMER 33

3.1 Cài đặt chế độ cho bộ định thời 33

3.2 Lập trình ứng dụng sử dụng bộ định thời 36

BÀI 4: SỬ DỤNG NGẮT 41

4.1 Lập trình điều khiển hoạt động ngắt timer: 41

4.2 Lập trình ứng dụng sử dụng ngắt ngoài 45

4.3 Lập trình hiển thị số lượng sản phẩm đếm được sử dụng ngắt ngoài 47

4.4 Lập trình hệ thống đo tốc độ quay động cơ sử dụng ngắt ngoài INT2 và ngắt timer 50

BÀI 5: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM, ADC 53

5.1 Lập trình điều chế độ rộng xung 53

5.2 Lập trình đọc giá trị nhiệt độ từ cảm biến nhiệt LM35 56

BÀI 6: LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ TỪ MÁY TÍNH 60

6.1 Lý thuyết liên quan: 60

6.2 Trình tự thực hiện 60

6.3 Thực hành: 60

6.4 Câu hỏi ôn tập: 61

Trang 5

GIÁO TRÌNH MÔN ĐUN Tên mô đun: Lắp ráp, lập trình vi xử lý

Mã mô đun: MĐ 21

Vị trí, tính chất, ý nghĩa và vai trò của mô đun:

- Vị trí: Mô đun được bố trí dạy sau khi học xong môn Lắp ráp, sửa chữamạch xung - số;

- Tính chất: là mô – đun trang bị kiến thức và kỹ năng lập trình ứng dụng

sử dụng vi điều khiển PIC

Mục tiêu của mô đun:

- Kiến thức:

+ Trình bày được kiến thức cơ bản về vi điều khiển PIC+ Trình bày được ứng dụng của các khối chức năng trong vi điềukhiển PIC

1 Bài 1: Nhập môn vi điều khiển PIC 6 2 4

2 Bài 2: Điều khiển hiển thị sử dụng vi điềukhiển PIC 30 10 19 1

3 Bài 3: Sử dụng bộ định thời Timer 12 4 8

5 Bài 5: Điều chế độ rộng xung PWM, ADC 12 4 8

6 Bài 6: Lập trình điều khiển thiết bị từ máytính 6 2 4

Trang 6

BÀI 1: NHẬP MÔN VI ĐIỀU KHIỂN PIC

Mã bài: MĐ21-01

Thời gian: 06 giờ (LT: 01, TH: 03, Tự học:02)

Mục tiêu thực hiện:

- Mô tả được cấu trúc họ vi điều khiển PIC

- Trình bày được cấu trúc của một chương trình viết bằng CCS PIC

1.1 Giới thiệu về vi điều khiển PIC 18F4550

PIC là một họ vi điều khiển RISC được sản xuất bởi công ty MicrochipTechnology PIC bắt nguồn từ chữ viết tắt của “Programmable IntelligentComputer”(Máy tính khả trình thông minh) Ngày nay rất nhiều dòng PIC đượcxuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn(như USART, PWM,ADC…), với bộ nhớ chương trình từ 512 Word đến 32K Word

Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưngchúng ta có thể điểm qua một vài nét như sau:

- 8/16 bit CPU, xây dựng theo kiến truc Harvard có sửa đổi

- Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte

- Các cổng Xuất/ Nhập(I/O)(mức logic thường từ 0V đến 5.5V, ứng vớilogic 0 và logic 1)

- 8/16 bit Timer

- Các chuẩn giao tiếp nối tiếp đồng bộ/ khung đồng bộ USART

- Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit

- Bộ so sánh điện áp(Voltage Comparator)

- Các module Capture/ Compare/ PWM

- LCD

- MSSP Peripheral dựng cho các giao tiếp I2C, SPI

- Bộ nhớ nội EPROM – có thể ghi/xoá tới 1 triệu lần

- Module Điều khiển động cơ, đọc encoder

- Hỗ trợ giao tiếp USB, CAN, LIN, IrDA

- Một số dòng có tích hợp bộ RF(PIC16f639, và RFPIC)

- KEELOQ mờ hoá và giải mờ

- DSP những tính năng xử lý tín hiệu số(dsPIC) Đặc điểm thực thi tốc độcao của RISC CPU của họ vi diều khiển PIC16F87XA

Những đặc tính ngoại vi:

- Timer0: 8-bit định thời/đếm với 8-bit PreScaler

- Timer1: 16-bit định thời/đếm với PreScaler, có thể được tăng lên trongsuốt chế độ Sleep qua thạch anh/ xung clock bên ngoài

Trang 7

- Timer2: 8-bit định thời/đếm với 8-bit, PreScaler và postscaler

- Hai module Capture, Compare, PWM

+ Capture có độ rộng 16 bit, độ phân giải 12.5ns+ Compare có độ rộng 16 bit, độ phân giải 200ns+ Độ phân giải lớn nhất của PWM là 10bit

- Có 13 ngõ I/O có thể điều khiển trực tiếp

- Dòng vào và dòng ra lớn :

+ 25mA dòng vào cho mỗi chân+ 20mA dòng ra cho mỗi chân

Các dòng PIC và cách lựa chọn vi điều khiển PIC:

- PIC 12xxxx: độ dài lệnh 12 bit

- PIC 16xxxx: độ dài lệnh 14 bit

- PIC 18xxxx: độ dài lệnh 16 bit

- C: PIC có bộ nhớ EPROM(chỉ có 16C84 là EEPROM)

- F: PIC có bộ nhớ FLASH

- LF: PIC có bộ nhớ FLASH hoạt động ở mức điện áp thấp

- LV: tương tự LF, đây là ký hiệu cũ

Bên cạnh đó có một số ký hiệu xxFxxxx là bộ nhớ EEPROM, nếu cóthêm chữ A ở cuối là bộ nhớ FLASH(ví dụ 16F877 có bộ nhớ EEPROM, còn16F877A có bộ nhớ là FLASH)

Hình 1.1.a Vi điều khiền 18F4550 dạng PDIP 40 chân

Trang 8

Hình 1.1.b Vi điều khiền 18F4550 dạng TQFP 44 chân

Hình 1.1.a Vi điều khiền 18F4550 dạng QFN 44 chân

1.2 Tạo project trên phần mềm lập trình PIC C complier (CCS)

1.2.1 Lý thuyết liên quan

- Giới thiệu về phần mềm CCS

Trang 9

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC củahãng Microchip.

Chương trình là sự tích hợp của 3 trình biên dich riêng biết cho 3 dòngPIC khác nhau:

‐ PCB cho dòng PIC 12‐bit opcodes

‐ PCM cho dòng PIC 14‐bit opcodes

‐ PCH cho dòng PIC 16 và 18‐bit

Tất cả 3 trình biên dịch được tích hợp lại vào trong một chương trình baogồm cả trình soạn thảo và biên dịch là CCS

Giống như nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sửdụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án.Các chương trình điều khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả caothông qua việc sử dụng ngôn ngữ lạp trình cấp cao – Ngôn ngữ C

1.2.2 Trình tự thực hiện:

+ Bước 1: Khởi động chương trình làm việc PIC C Compiler Từ giao diện

chương trình chọn Project ‐> New ‐> PIC Wizard

+ Bước 2: Tạo một thư mục mới, vào thư mục đó và lưu tên files cần tạo

+ Bước 3: Thiết lập các thuộc tính của Project.

Trên cửa sổ New Project hiện ra Sổ này bao gồm nhiều Tab, mỗi Tab mô

tả về một vài tính năng của con PIC Ta sẽ chọn tính năng sử dụng tại các Tabtương ứng Các mục chọn này chính là đề cập đến các tính năng của một con

Trang 10

PIC, tùy theo từng loại mà sẽ có các Tab tương ứng Đối với từng dự án khácnhau, khi sử dụng tính năng nào ta sẽ chọn mục đó.

Tab General

Tab General cho phép ta lựa chọn loại PIC mà ta sử dụng và một số lựachọn khác như chọn tần số thạch anh dao động, thiết lập các bit CONFIG nhằmthiết lập chế độ hoạt động cho PIC

Device: Liệt kê danh sách các loại PIC 12F, 16F, 18F… Ta sẽ chọn tên Viđiều khiển PIC mà ta sử dụng trong dự án Lấy ví dụ chọn PIC16F877A

Oscilator Frequency: Tần số thạch anh ta sử dụng, chọn 20 MHz(tùy từngloại)

Fuses: Thiết lập các bit Config như: Chế độ dao động(HS, RC, Internal),chế độ bảo vệ Code, Brownout detected…

Chọn kiểu con trỏ RAM là 16‐bit hay 8‐bit

Tab Communications

Tab Communications liệt kê các giao tiếp nối tiếp mà một con PIC hỗ trợ,thường là RS232 và I2C, cùng với các lựa chọn để thiết lập chế độ hoạt độngcho từng loại giao tiếp

Giao tiếp RS232: Mỗi một Vi điều khiển PIC hỗ trợ một cổng truyềnthông RS232 chuẩn Tab này cho phép ta lựa chọn chân Rx, Tx, tốc độ Baud,Data bit, Bit Parity…

Giao tiếp I2C: Để sử dụng I2C ta tích vào nút chọn Use I2C, khi đó ta cócác lựa chọn: Chân SDA, SCL, Tốc độ truyền(Fast ‐ Slow), chế độ Master haySlave, địa chỉ cho Salve

Tab SPI and LCD

Tab này liệt kê cho người dùng các lựa chọn đối với giao tiếp nối tiếp SPI,chuẩn giao tiếp tốc độ cao mà PIC hỗ trợ về phần cứng

‐ Lựa chọn cổng vào tương tự

‐ Chọn chân điện áp lấy mẫu(Vref)

‐ Chọn độ phân giải: 8‐bit = 0 ~ 255 hay 10‐bit = 0~1023

‐ Nguồn xung đồng hồ cho bộ ADC(trong hay ngoài), từ đó mà ta cóđược tốc độ lấy mẫu, thường ta chọn làinternal 2‐6 us

‐ Khi không sử dụng bộ ADC ta chọn none

Trang 11

Tab Interrupts cho phép ta lựa chọn nguồn ngắt mà ta muốn sử dụng Tùyvào từng loại PIC mà số lượng nguồn ngắt khác nhau, bao gồm: ngắt ngoài0(INT0), ngắt RS232, ngắt Timer, ngắt I2C‐SPI, ngắt onchange PORTB.v.v…

Tab Drivers được dùng để lựa chọn những ngoại vi mà trình dịch đã hỗtrợ các hàm giao tiếp

+ Bước 4: Kết thúc tạo Project

Sau các bước chọn trên, ta nhấn OK để kết thúc quả trình tạo một Projecttrong CCS, một Files ten_project.c được tạo ra, chứa những khai báo cần thiếtcho PIC trong một Files ten_project.h

+ Các file project được lưu cùng 1 thư mục ◻

+ Các thuộc tính của Project đúng theo yêu cầu ◻

1.2.5 Câu hỏi ôn tập:

1 IC PIC 18F4550 dạng DIP có cấu tạo bao nhiêu chân?

2 IC PIC 18F4550 dạng DIP có bao nhiêu Port I/O?

1.3 Lập trình ứng dụng đơn giản

1.3.1 Lý thuyết liên quan

- Khái quát ngôn ngữ C:

VD: 9AF; 6BC …

Biến, hằng, mảng:

Biến:

Một biến được đặc trưng bởi 2 đặc tính: kiểu biến và tầm vực của biến

Biến: <kiểu dữ liệu> <tên biến> = <giá trị>;

(phần khai báo giá trị có thể có hoặc không)

Biến toàn cục:

Trang 12

+ Biến toàn cục là biến xuất hiện khi chương trình thực thi, tồn tại suốttrong thời gian chương trình thực thi chỉ được giải phóng khi chương trình kếtthúc.

+ Tất cả các hàm trong chương trình đều có thể truy xuất giá trị của biếntoàn cục

+ Biến toàn cục được khai báo đầu chương trình trong phần khai báo biến

Biến địa phương:

+ Biến địa phương là biến xuất hiện khi đoạn chương trình chứa biến địaphương thực thi, giải phóng khi đoạn chương trình đó kết thúc

+ Chỉ chương trình con, đoạn chương trình chưa biến địa phương mớiđược truy xuất biến

+ Biến địa phương được khai báo trong đoạn chương trình, chương trìnhcon

+ unsigned int

+ long int+ float+ double

VD: const int8 vidu[2] = {1,2};

- Khai báo biến mảng: Khai báo tương tự khai báo mảng hằng số Tuynhiên không có từ khóa const và không cần cài đặt giá trị cho các phần tử củamảng(mặc định giá trị đầu sẽ là giá trị mặc định của kiểu dữ liệu mảng)

Trang 13

Do stmt while(expr); Do {

Putc(c=getc());

}While(c!=0);

For(expr1; expr2; expr3) stmt; For(i=1;i<=10;++i)

Một hàm C phải bao gồm một kiểu trả về(kiểu đó trả về void nếu không

có giá trị trả về), một tên xác định, một danh sách các tham số để trong ngoặcđơn(nếu danh sách này không có tham số nào thì ghi là void bên trong dấungoặc), sau đó là khối các câu lệnh(hay khối mã) và/hay các câu lệnh return.(Nếu kiểu trả về là void thì mệnh đề này không bắt buộc phải có.Ngược lại, cũng không bắt buộc chỉ có một câu lệnh return mà tùy theo kỹthuật, người lập trình có thể dẫn dòng mã sao cho mọi hướng chẻ nhánh đềuđược trả về đúng kiểu.)

<kiểu_trả_về> tên_hàm(<danh sách tham số>)

{

<các_câu_lệnh>

return <biến(hay giá trị) có kiểu là kiểu_trả_về>; }

Trong đó, <danh sách tham số> của N biến thì được khai báo như

là kiểu dữ liệu và tách rời nhau bởi dấu phẩy, Toàn bộ danh sách này đượcđặt trong ngoặc đơn ngay sau tên_hàm

- Thí dụ:

Viết hàm add tính tổng hai số có kiểu integer, hàm abs tính trị tuyệt đốicủa số có kiểu integer, và chương trình(hàm main) hiển thị hai dòng 1 + 1 = 2 vàabsolute value of -2 is

Các kiểu truy xuất biến trong hàm

Khi thực hiện một lời gọi hàm ta phải cung cấp đầy đủ thông tin phù hợpvới hàm đó để hàm đó có thể thực hiện

VD:

void test(int8 n){}

test(x);

Ở đây n được gọi là tham số hình thức, chỉ mang tính hình thức.x là tham

số thực sự Việc gửi x vào cho hàm test thay thế cho n được gọi là truyền tham

Trang 14

số Với những hàm không có tham số thì không phải truyền Có 3 loại truyềntham số:

Truyền tham trị:

Giá trị của tham số thực sự được gửi đến cho hàm Khi thực hiện truyềntham số theo kiểu này thì hàm được gọi chỉ tác động lên bản sao của tham sốgốc, do vậy nó chỉ làm thay đổi giá trị của bản sao mà không ảnh hưởng đếntham số gốc

VD:

void test(int x){ x=x+10; }void main(){ int n=5;

test(n);

cout<<"Gia tri n ="<<n<<endl; }Kết quả sau khi thực hiện chương trình trên: Gia tri n = 5 Ở đây n vẫngiữ nguyên giá trị ban đầu mặc dù trong test có câu lệnh nhằm làm thay đổi nó.Truyền tham trị là cơ cấu mặc định trong truyền tham số

Truyền tham khảo(tham chiếu)

Về bản chất, truyền tham chiếu là ta gửi địa chỉ của tham số tới hàm đượcgọi Hàm được gọi sẽ tác động lên vùng nhớ có địa chỉ mà nó nhận được(chính

là tham số gốc) Bời vậy mọi thay đổi mà nó gây ra đều làm ảnh hưởng đếntham số gốc

Ví dụ: void test(int &x)

{ x=x+10; }void main(){ int n=5;

test(n);

cout<<"Gia tri n ="<<n<<endl; }Kết quả sau khi thực hiện chương trình trên: Gia tri n = 15 Ở đây n đã bịthay đổi.Việc gửi địa chỉ(tham chiếu) của tham số đến hàm được gọi, người tagọi đó là truyền tham chiếu Với hàm có cơ chế truyền tham chiếu thì nókhông có vùng nhớ riêng cho tham số đó, khi thực hiện lời gọi hàm, nó

sẽ gán cho tham số một bí danh(alias) - đó chính là tên của tham số hình thức và

- Có con trỏ null chứ không có tham chiếu null

- Con trỏ có thể trỏ đến nhiều đối tượng, trong khi tham chiếu chỉ có thểchỉ đến tham chiếu được tạo cho nó

- Cấu trúc và thực thi chương trình:

Trang 15

delay_ms(250); } // trễ 250ms}

b Output_bit(pin,value)

Hàm xuất giá trị 0 hoặc 1 trên chân pin

Ví dụ: chương trình tạo xung vuông chu kỳ 500ms

int1 x; // khai báo x = 0

main()

{

while(1) { output_bit( pin_B0, !x) ;

Trang 16

Delay_ms(250); }}

c Input(pin)

Hàm trả về giá trị 0 hoặc 1, giá trị của chân IC

1.3.2 Trình tự thực hiện

- Bước 1: Kết nối mạch nạp PICKIT2 giữa mô đun thực hành và máy tính

- Bước 2: Kiểm tra trạng thái kết nối

Trang 17

- Bước 5: Vận hành hoạt động của mô đun thực hành và chỉnh sửa chương trình

1.3.3 Thực hành:

Người học thực hiện viết chương trình xuất nhập cơ bản, sử dụng PICKIT

2 nạp chương trình vào vi điều khiển PIC 18F4550

Thiết bị thực hành:

- Máy vi tính PC;

- Mạch nạp PIC KIT 2;

- Mô đun thực hành PICKIT Training

1.3.4 Câu hỏi ôn tập:

1 Thực thi hàm “output_high(pin_B0)” chân B0 sẽ có trạng thái như thế nào?

2 Thực thi hàm “output_bit( pin_B0, 0)” chân B0 sẽ có trạng thái như thế nào?

Trang 18

BÀI 2: ĐIỀU KHIỂN HIỂN THỊ SỬ DỤNG VI ĐIỀU KHIỂN PIC

Mã bài: MĐ21 – 02

Thời gian: 30 giờ (LT: 05, TH: 14, Tự học: 10, KT: 01)

Mục tiêu:

- Trình bày được các phương pháp hiển thị dùng VĐK PIC

- Xây dựng được các chương trình hiển thị ra Led đơn, Led 7 đoạn và màn hình LCD từ VĐK PIC

Nội dung chính:

2.1 Lập trình điểu khiển hiển thị 1 Led đơn sáng tắt

2.1.1 Lý thuyết liên quan

- Lý thuyết về led đơn:

Có rất nhiều loại led đơn dùng để hiển thị Phương pháp đơn giản nhưsau:

Hình 2.1: Hiển thị led đơn

Các led này sáng khi được cấp áp cỡ 2 V, dòng 10-20mA

Nếu sử dụng một chân ra từ vi điều khiển để bật tắt led, phải dùng thêmđiện trở hạn dòng, hạn áp

Tính toán:

Muốn bật đèn, ta cho chân ra vi điều khiển lên mức cao nối với đầu vàocủa mạch trên Chân ra vi điều khiển ở mức logic cao có điện áp 5V

Cho điện áp rơi trên led là 2V, dòng qua là 15mA

Suy ra, điện áp rơi trên trở là 3V Dòng qua led chính là dòng qua điện trở

và bằng 15mA

Suy ra, điện trở cần dùng: R=3/15mA=200 Ω

Chọn điện trở tiêu chuẩn 220 Ω

- Các hàm xuất hiển thị led đơn

Output_low(pin), Output_high(pin): Được sử dụng để thiết lập trạng thái

mức cao(high, logic 1) hoặc mức thấp(low, logic 0) cho các chân ngõ ra của viđiều khiển

Output_bit(pin,value): Hàm xuất giá trị 0 hoặc 1 trên chân pin

2.1.2 Trình tự thực hiện

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

Trang 19

- Bước 2: Viết chương trình dựa trên lưu đồ thuật toán

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

- Mô đun thực hành PICKIT Training

2.2 Lập trình điểu khiển hiển thị 2 Led đơn sáng tắt luân phiên

2.2.1 Lý thuyết liên quan

Đọc mục 2.1.1

2.2.2 Trình tự thực hiện

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

Trang 20

- Bước 2: Viết chương trình dựa trên lưu đồ thuật toán

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

- Mô đun thực hành PICKIT Training

2.3 Lập trình điểu khiển hiển thị 8 Led đơn

2.3.1 Lý thuyết liên quan

Đọc mục 2.1.1

2.3.2 Trình tự thực hiện

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

Trang 21

- Bước 2: Viết chương trình dựa trên lưu đồ thuật toán

………

Trang 22

output_low(PIN_D7); // led 8 tắtdelay_ms(1000);// tạo thời gian trễ}

}

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

- Mô đun thực hành PICKIT Training

2.3.4 Câu hỏi ôn tập:

Câu 1: Viết tên hàm thiết lập ngõ ra ở mức logic 1(mức cao)

Câu 2: Viết tên hàm thiết lập ngõ ra ở mức logic 0(mức thấp)

Câu 3: Viết tên hàm tạo thời gian trễ ở 100 mili giây?

2.4 Lập trình điểu khiển hiển thị số trên 1 Led 7 đoạn

2.4.1 Lý thuyết liên quan:

- Cấu tạo của led 7 đoạn:

Cấu tạo led 7 đoạn

Có 2 loại:

- Chung catod: các đầu catod(cực âm) được nối chung với nhau và nối với0V, các đầu anod a,b,c,d,e,f,g,h được đưa ra ngoài(các chân) nhận tín hiệu điềukhiển Khi cấp điện áp 5V cho mỗi đầu anod, led tương ứng với đầu đó sẽ sáng

- Chung anod: các đầu anod(cực âm) được nối chung với nhau và nối vớinguồn 5V, các đầu catod a,b,c,d,e,f,g,h được đưa ra ngoài(các chân) nhận tín

Trang 23

hiệu điều khiển Muốn led đơn nào sáng đưa chân catod của led tương ứngxuống mức 0V.

- Sơ đồ kết nối trên mô đun thực hành:

Mạch hiển thị led 7 đoạn

Chọn led 7 đoạn hoạt động: chân RE0, RE1

RE1(bit 1) RE0(bit 0) Led hoạt động

Điều khiển hiển thị: chân RE2, RC0, RC1, RA4

RA4(bit 3) RC1(bit 2) RC0(bit 1) RE2(bit 0) Số hiển thị(hệ 10)

Trang 24

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

- Bước 2: Viết chương trình dựa trên lưu đồ thuật toán

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

2.4.3 Thực hành:

Trang 25

Người học thực hiện viết chương trình điều khiển hiển thị số trên 1 led 7nạp vào vi điều khiển PIC 18F4550.

Thiết bị thực hành:

- Máy vi tính PC;

- Mạch nạp PIC KIT 2;

- Mô đun thực hành PICKIT Training

2.4.4 Câu hỏi ôn tập:

Câu 1: Để cấp nguồn cho led A2 hoạt động, mức logic cấp 2 chân RE0 và RE1

là bao nhiêu?

Câu 2: Để led 7 đoạn hiện số 7 thì mức logic tại các chân cấp dữ liệu RE2, RC0,RC1, RA4 là bao nhiêu?

2.5 Lập trình điều khiển hiển thị số trên 2 led 7 đoạn

2.5.1 Lý thuyết liên quan

- Dùng phương pháp quét

Khi kết nối chung các đường dữ liệu của Led 7 đoạn (hình vẽ), ta khôngthể cho các Led này sáng đồng thời (do ảnh hưởng lẫn nhau giữa các Led) màphải thực hiện phương pháp quét, nghĩa là tại mỗi thời điểm chỉ sáng một Led vàtắt các Led còn lại Do hiện tượng lưu ảnh của mắt, ta sẽ thấy các Led sáng đồngthời

- Dùng phương pháp chốt

Khi thực hiện tách riêng các đường dữ liệu của Led, ta có thể cho phépcác Led sáng đồng thời mà sẽ không có hiện tượng ảnh hưởng giữa các Led ICchốt cho phép lưu trữ dữ liệu cho các Led có thể sử dụng là 74LS373, 74LS374

2.5.2 Trình tự thực hiện

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

Trang 26

- Bước 2: Viết chương trình dựa trên lưu đồ thuật toán

// cấp nguồn led A1output_low(PIN_E0);//E0=1output_low(PIN_E1);//E1=0// cấp dữ liệu hiển thị số 3output_high(PIN_E2); //A0 = 0output_low(PIN_C0); //A1 = 0output_low(PIN_C1); //A2 = 1output_high(PIN_A4); //A3 = 1delay_ms(50);}

}

Trang 27

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

- Mô đun thực hành PICKIT Training

2.5.4 Câu hỏi ôn tập:

Câu 1: Để cấp nguồn cho led A3 hoạt động, mức logic cấp 2 chân RE0 và RE1

là bao nhiêu?

Câu 2: Để led 7 đoạn hiện số 9 thì mức logic tại các chân cấp dữ liệu RE2, RC0,RC1, RA4 là bao nhiêu?

2.6 Lập trình điều khiển hiển thị ký tự trên Led ma trận 8x8

2.6.1 Lý thuyết liên quan

Trang 28

Sơ đồ kết nối led ma trận

Các chân RA0(out8), RA1(out9), RA2(out10) cấp nguồn cho các cột củaled ma trận

Trang 29

1 0 1 1 1 1 1 1 R7

2.6.2 Trình tự thực hiện

- Bước 1: Viết lưu đồ thuật toán theo yêu cầu kỹ thuật

Sử dụng phương pháp quét từng cột cho ma trận 8x8

Trang 31

- Bước 4: Vận hành, quan sát và chỉnh sửa

2.6.3 Thực hành:

Người học thực hiện viết chương trình hiển thị chữ A chạy ngang ma mànhình led ma trận 8x8 theo yêu cầu kỹ thuật như trên, nạp vào vi điều khiển PIC18F4550

Thiết bị thực hành:

- Máy vi tính PC;

- Mạch nạp PIC KIT 2;

- Mô đun thực hành PICKIT Training

2.6.4 Câu hỏi ôn tập:

Câu 1: Led ma trận 8x8 loại 3 màu có bao nhiêu chân?

Câu 2: Viết mã led ký tự “@” cho mô đun hiển thị trong bài thực hành trên?

2.7 Lập trình điều khiển hiển thị ký tự trên màn hình LCD 1602

2.7.1 Lý thuyết liên quan:

- R/W: =1: Vi điều khiển đọc dữ liệu từ LCD, =0: Vi điều khiển ghi dữliệu lên LCD

- E: Chân cho phép(Enable) Sau khi lệnh hoặc dữ liệu đã được chuẩn bịtrên đường dữ liệu, tạo xung mức cao-mức thấp sẽ bắt đầu quá trình LCD nhận

dữ liệu hoặc lệnh từ vi điều khiển

- D0-D7: các chân dữ liệu, nơi vi điều khiển truyền lệnh hoặc dữ liệu lênLCD

LCD có nhiều độ làm việc, có thể kể ra như sau:

+ Chế độ 1 dòng hay 2 dòng

+ Chế độ giao tiếp 4 bit hay 8 bit

+ Chế độ font 5*8 hoặc 5*10

Trang 32

+ Ngoài ra còn có thể thay đổi vị trí hiển thị kí tự v.v

Vì vậy, trước khi bắt đầu quá trình hiển thị một chuỗi kí tự nào đó, ta cầnquá trình khởi tạo để cài đặt các chế độ này Vi điều khiển thực hiện quá trìnhkhởi tạo này bắt cách ghi đến LCD một chuỗi các lệnh

Căn cứ vào chức năng của các chân vi điều khiển được giới thiệu ở trên,

ta đưa ra qui trình của việc gửi một lệnh từ Vi điều khiển đến LCD:

Cho chân R/W=0 để xác định đây là ghi xuống LCD(thông thường chânnày được nối đất, nên mặc định chân này ở mức 0, ta không cần quan tâm đếnnữa)

Cho chân RS=0 để xác định đây là lệnh mà vi điều khiển gửi xuốngLCD(phân biệt với RS=1, gửi kí tự hiển thị)

Gửi mã lệnh xuống LCD theo các đường dữ liệu(RD0-RD7 nếu dùng chế

độ 8 bit, R4-R7 nếu dùng chế độ 4 bit)

Đưa chân E(chân cho phép- Enable) lên mức cao, mức 1

Tạo trễ vài chu kì lệnh

Đưa chân E xuống mức thấp, mức 0

Mã lệnh như đã giới thiệu trong phần trên tùy thuộc vào từng lệnh, ở đấy

giới thiệu một số lệnh cơ bản như sau:

Trang 33

- Ghi kí tự lên LCD để hiển thị:

Sau khi thực hiện quá trình khởi tạo để gửi các lệnh cài đặt chế độ làmviệc cùa LCD, kí tự sẽ được hiển thị lên LCD bất kì khi nào vi điều khiển muốngửi

Quá trình gửi kí tự gồm các bước sau:

+ Cho chân R/W=0 để xác định đây là ghi xuống LCD(thông thường chânnày được nối đất, nên mặc định chân này ở mức 0, ta không cần quan tâm đếnnữa)

+ Cho chân RS=1 để xác định đây là kí tự mà vi điều khiển gửi xuốngLCD(phân biệt với RS=0, gửi lệnh)

+ Gửi mã ascii của kí tự cần hiển thị xuống LCD theo các đường dữliệu(RD0-RD7 nếu dùng chế độ 8 bit, R4-R7 nếu dùng chế độ 4 bit)

+ Đưa chân E (chân cho phép- Enable) lên mức cao, mức 1

+ Tạo trễ vài chu kì lệnh

+ Đưa chân E xuống mức thấp, mức 0

2.7.2 Trình tự thực hiện

- Bước 1: Kết nối mô đun LCD1602 với KIT thực hành PIC 18F4550

- Bước 2: Viết chương trình

- Bước 3: Kiểm tra và nạp chương trình qua PICKIT2

- Bước 4: Vận hành, quan sát và chỉnh sửa

2.7.3 Thực hành:

Ngày đăng: 28/06/2023, 21:11

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w