Số tín chỉ : 03Ngành đào tạo: Công nghệ kỹ thuật Điều khiển và Tự động hóa Trình độ đào tạo: Đại học GV: Mai Văn Duy Email: mvduy@uneti.edu.vn... Mục tiêu- Sinh viên nắm được sơ đồ chân
Trang 1Số tín chỉ : 03
Ngành đào tạo: Công nghệ kỹ thuật Điều khiển và Tự động hóa
Trình độ đào tạo: Đại học
GV: Mai Văn Duy
Email: mvduy@uneti.edu.vn
Trang 2NXB Đại học quốc gia thành phố Hồ Chí Minh, 2017.
Datasheet PIC18F4550
Tài liệu Vi điều khiển ứng dụng trong đo lường và điều khiển ,
ĐH Kinh tế - Kỹ thuật Công nghiệp
Trang 31.1 Tổng quan về vi điều khiển
1.3 Giới thiệu về các phần mềm
1.4 Ngôn ngữ lập trình C
Trang 4Mục tiêu
- Sinh viên nắm được sơ đồ chân và chức năng của vi điều khiển PIC18F4550
- SV nắm được ngôn lập trình C, sử dụng các phần mềm Proteus, CCS
Yêu cầu:
- SV có máy tính cá nhân cài đặt sẵn phần mềm CCS, Proteus
- SV lấy tài liệu học tập trên LMS
Trang 6thể hoạt động với một vàu linh kiện phụ trợ bên ngoài
Trang 7tiêu khác nhau Một cách phân loại thường gặp nhất là dựa vàotập lệnh và một chỉ tiêu quan trọng là số lượng các lệnh Theocách đó vi điều khiển được phân ra:
Máy tính có tập lệnh phức tạp CISC (complex instruction set computer),
Máy tính có tập lệnh rút gọn RISC (reduced instruction set computer), và
Máy tính có tập lệnh tối thiểu MISC (minimal instruction set computer).
Một cách phân loại khác là dựa trên cách thức truy cập bộ nhớ
dữ liệu và bộ nhớ chương trình Nếu chúng hợp nhất thành bộnhớ duy nhất thì gọi là kiến trúc Princeton hay kiến trúc VonNeumann Ngược lại nếu chúng được tách rời nhau thì gọi làkiến trúc Harvard
Trang 8nhớ, dùng chung một Bus dữ liệu
Trang 9chương trình riêng biệt Lợi thế về hiệu năng chính của kiểu kiếntrúc này là nó có 2 bus dữ liệu riêng biệt hoạt động đồng thờiphục vụ cho bộ nhớ dữ liệu và bộ nhớ chương trình.
Trang 10 Vi điều khiển của Microchip: PIC
Vi điều khiển của Cypress
Vi điều khiển của Hitachi
Vi điều khiển của Motorola
Vi điều khiển của Maxim
Vi điều khiển của STMicroelectronics: STM8S (8-bit), ST10(16-bit) và STM32 (32-bit)
Trang 12Sơ đồ chân PIC18F4550 loại 28 chân
Trang 13Sơ đồ chân PIC18F4550 loại 40 chân
Trang 14- AN2: ngõ vào tương tự của kênh thứ 2.
- VREF-: ngõ vào điện áp chuẩn (thấp) của bộ ADC.
- CVREF: điện áp tham chiếu VREF ngõ ra bộ so sánh
Trang 15Chức năng các chân PIC 18F4550:
5 Chân RA3/AN3/VREF+
- RA3: xuất/nhập số
- AN3: ngõ vào tương tự kênh thứ 3.
- VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D.
6 Chân RA4/T0CKI/C1OUT/RCV
- RA4: xuất/nhập số – mở khi được cấu tạo là ngõ ra.
- TOCKI: ngõ vào xung clock từ bên ngoài cho Timer0.
- C1OUT: ngõ ra bộ so sánh 1.
7 Chân RA5/AN4/SS/HLVDIN/C2OUT
- RA5: xuất/nhập số.
- AN4: ngõ vào tương tự kênh thứ 4.
- SS : ngõ vào chọn lựa SPI phụ.
Trang 16- OSC1: ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài.
Ngõ vào có mạch Schmitt Trigger nếu sử dụng dao động RC
- CLKI: ngõ vào nguồn xung bên ngoài.
Trang 17Chức năng các chân PIC 18F4550:
14 Chân OSC2/CLKO/RA6: ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
- OSC2: ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộ cộng
- T1OSO: ngõ ra của bộ dao động Timer1.
- T13CKI: ngõ vào xung clock từ bên ngoài Timer1 và Timer 3
16 Chân RC1/T1OSI/CCP2/UOE
- RC1: xuất/nhập số.
- T1OSI: ngõ vào của bộ dao động Timer1.
- CCP2: ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2
Trang 1817 Chân RC2/CCP1/P1A
- RC2: xuất/nhập số
- CCP1: ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1
18 Chân VUSB : chân nguồn USB
Trang 19Chức năng các chân PIC 18F4550:
- INT0: ngõ vào nhận tín hiệu ngắt ngoài.
- SDI: dữ liệu vào SPI.
- SDA: xuất/nhập dữ liệu I2C
Trang 2034 Chân RB1/AN10/INT1/SCK/SCL
- SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI.
- SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ I2C
Trang 21Cấu hình PIC 18F4550:
- PIC 18F4550 có 40/44 chân với cấu trúc như sau:
- Có 5 port xuất/ nhập
- Có 13 kênh chuyển đổi A/D
- Có port giao tiếp song song
Trang 231.3.1 Phần mềm CCS
1.3.2 Phần mềm Proteus
Trang 24Bước 2: Khởi tạo chương trình CCS
Giao diện phần mềm CCS
Trang 25Bước 3: Tiến hành chọn biểu tượng open, rồi chọn mục “New” và chọn “New source”
Tạo file mới.
Trang 26Chọn new và chọn thư mục để lưu file nguồn
Đặt tên file mới và đường dẫn.
Trang 27Bước 3: Tiến hành chọn biểu tượng open, rồi chọn mục “New” và chọn “New source”
Màn hình soạn thảo
Giao diện sau xuất hiện và trong file chưa có gì
Trang 28phù hợp và nên chọn là 14 và chọn mục Bold (số 5), tất cả theo trình tự từ 1 đến 5.
Màn hình thay đổi font
Trang 29Bước 5: Sau khi điều chỉnh xong thì tiến hành biên soạn chương trình
- Tiến hành đánh các lệnh của chương trình trong hình vuông vào (số 1).
- Sau khi đánh xong thì nhấn tổ hợp “ctrl” và “S” để lưu file
Màn hình của
chương trình
Trang 30Tiến hành biên dịch bằng cách chọn tab “Compile” (số 2) và chọn “Build All” (số 3)
Màn hình của
chương trình
Trang 31Bước 5:
Sau khi biên dịch sẽ xuất hiện của sổ thông báo kết quả biên dịch
- Do lập trình đúng nên khi biên dịch thông báo “0 error …” và cho biết phần trăm bộ nhớ đã sử dụng.
- Nếu sai cú pháp thì biên dịch không thành thì phải hiệu chỉnh cho hết lỗi.
- Trong thông báo còn cho biết 2 thông tin dung lượng bộ nhớ ROM và RAM đã sử dụng.
- Có thể tắt màn hình thông báo bằng cách nhấn phím “ESC”.
- Sau khi biên dịch xong thì sẽ được file chứa các số hex để nạp vào bộ nhớ của vi điều khiển.
- Bước theo sau sẽ hướng dẫn nạp file hex vào bộ nhớ của vi điều khiển
Trang 32phỏng và thiết kế mạch điện Gói phần mêm gồm có phần mềm chính :
- ISIS dùng để vẽ sơ đồ nguyên lý và mô phỏng
- ARES dùng để thiết kế mạch in.
Trang 32
Trang 33STT Ký hiệu Ý nghĩa
1 Section mode: Chức năng nay để chọn linh kiện
2 Component mode: Dùng để lấy linh kiện trong thư viện linh kiện
3 Đặt lable cho wire
5 Terminal: Chứa Power, Ground
6 Graph: Dùng để vẽ dạng sóng, datasheet, trở kháng
7 Generator Mode: Chứa các nguồn điện, nguồn xung, nguồn dòng
8 Voltage Probe Mode: Dùng để đo điện thế tại 1 điểm trên mạch,
đây là 1 dụng cụ chỉ có 1 chân và không có thật trong thức tế
9 Curent Probe mode: Dùng để đo chiều và độ lớn của dòng điện tại
1 điểm trên wire
10 Virtual Instrument Mode: Chứa các dụng cụ đo dòng và áp, các
dụng cụ này được mô phỏng như trong thực tế
Trang 33
Một số ký hiệu cơ bản
Trang 34Trang 34
- Bấm vào biểu tượng Component Mode
- Sau đó bấm vào chữ P hoặc ấn phím tắt P trên bàn phím
Trang 35Trang 35
Khung chương trình Pick Devices hiện ra
Trang 36Trang 36
2 Là các nhóm linh kiện liên quan đến từ khóa cần tìm
Trang 37Trang 37
3 Là nhóm con của linh kiện
4 Là ký hiệu (Schematic) trên sơ đồ nguyên lý
Trang 38Trang 38
6.Là kết quả của việc tìm
kiếm linh kiện
Double Click vào
linh kiện cần lấy, lập
tức linh kiện sẻ được
bổ sung vào “bàn làm
việc” là vùng màu trắng
phí bên trái Xem hình
dưới
Trang 40giúp cho việc soạn thảo chương trình nguồn C trước khi biêndịch
# include
Trang 41 Định nghĩa:
#define Tên ĐịaChỉ
Trang 4419 September 2021 Trang 44
Trang 4519 September 2021 Trang 45
Trang 46trình, tuy nhiên giá trị của nó không thể thay đổi được sau khikhởi tạo.
Khai báo hằng:
const Kiểu_dữ_liệu Tên_hằng = Giá_trị_hằng;
Kiểu_dữ_liệu Const Tên_hằng = Giá_trị_hằng;
Trang 47 Mảng là một tập hợp các biến có cùng tính chất và cùng kiểu dữliệu.
Trang 48/ Phép chia không lấy phần dư
% Kết quả phần dư của phép chia
Trang 5119 September 2021 Trang 51
Cú pháp Phép toán Ví dụ Mô tả
>= Lớn hơn hoặc bằng a>=5 Nếu a lớn hơn hoặc bằng 5
<= Nhỏ hơn hoặc bằng a<=b Nếu a nhỏ hơn hoặc bằng b
!= Không bằng a!=b Nếu a không bằng b
Trang 55Cấu trúc: IF, IF-ELSE
Đoạn chương trình 1;
} else { Đoạn chương trình 2 }
Trang 56Đoạn chương trình 1;
} else { Đoạn chương trình 2 }
Trang 58}
while(1) {
Các câu lệnh;
}
Trang 61[giá trị trả về] [tên hàm(biến truyền vào hàm)];
Ví dụ:
vào hàm là a,b;hàm trả về kiểu int
{ //Các lệnh xử lý ở đây }
Ví dụ: Hàm không có biến truyền vào:
int Tên_hàm (void) {
}
Trang 62void Tên_hàm (type dữ_liệu1, type dữ_liệu2, );
Trang 63interrupt(type) void Tên_Hàm (void)
Trang 6419 September 2021 64
Trang 65 Cấu hình vi điều khiển: Tần số dao động, reset, watchdog, …
Khai báo biến, hằng toàn cục (nếu có)
Các chương trình con (nếu có)
Chương trình chính
Chương trình ngắt (nếu có)
Các chú thích (nếu có)