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

Bài giảng Thực hành Vi xử lý

98 5 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 đề Bài Giảng Thực Hành Vi Xử Lý
Người hướng dẫn TS. Ngô Quang Vĩ
Trường học Trường Đại Học Thủy Lợi
Chuyên ngành Điện – Điện Tử
Thể loại bài giảng
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 98
Dung lượng 2,68 MB

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

Nội dung

 Trong kiến trúc Harvard, bộ nhớ dữ liệu và bộ nhớ chương trình nằm riêng biệt, do đó CPUcó thể làm việc trực tiếp với cả hai bộ nhớ dữ liệu và bộ nhớ chương trình cùng một lúc, làm cho

Trang 1

THỰC HÀNH VI XỬ LÝ

Giảng viên biên soạn: TS Ngô Quang Vĩ

Hà Nội: 2/2021

TRƯỜNG ĐẠI HỌC THỦY LỢI

Khoa Điện – Điện tử

BÀI GIẢNG

Bộ môn: KTĐK&TĐH

Trang 2

CHƯƠNG 1 TÌM HIỂU KIT dsPIC

Trang 3

VI ĐIỀU KHIỂN

 PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General Instrument

 PIC bắt nguồn là chữ viết tắt của

"Programmable Intelligent Computer" (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instrument đặt cho dòng sản phẩm đầu tiên của họ là PIC1650

Trang 4

 CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600

 PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động)

Trang 5

 Năm 1985 General Instrument bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời

 PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình Ngày nay rất nhiều dòng PIC được xuấ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

Trang 6

 8/16 bit CPU, xây dựng theo kiến trúc 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 ports) (mức logic thường

từ 0V đến 5.5V, ứng với logic 0 và logic 1)

 8/16 Bit Timer

 Công nghệ Nanowatt

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ưng chúng ta có thể điểm qua một vài nét như sau:

Trang 7

 Các chuẩn Giao Tiếp Ngoại vi nối

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

 Bộ so sánh điện áp (Voltage Comparators)

 MSSP Peripheral dùng cho các giao tiếp I²C, SPI,

và I²S

Trang 8

 Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần FLASH (dùng cho bộ nhớ chương trình) có thể

ghi/xóa 10.000 lần (tiêu biểu)

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

 Hỗ trợ giao tiếp USB

 Hỗ trợ điều khiển Ethernet

 Hỗ trợ giao tiếp CAN

Trang 9

 Hỗ trợ giao tiếp LIN

 Hỗ trợ giao tiếp 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)

Trang 11

 dsPIC33F

 Bộ điều khiển xử lý tín hiệu số 32-bit (PIC32)

 PIC32 (công bố ngày 05/11/2007)

 Kiến trúc Harvard của vi điều khiển PIC

Trang 12

 PIC được tổ chức phần cứng theo kiến trúc

instruction set computer )

 Trong kiến trúc Harvard, bộ nhớ dữ liệu và bộ

có thể làm việc trực tiếp với cả hai bộ nhớ dữ

cho tốc độ xử lý nhanh hơn

 Việc bộ nhớ chương trình và bộ nhớ dữ liệu được tách riêng, do đó, tập lệnh trong kiến trúc Harvard có thể được tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển

Trang 13

 Bằng chứng, độ dài lệnh của dòng PIC16 luôn luôn là 14 bit Trong khi đó, độ dài lệnh của các vi điều khiển kiến trúc von-Neumann là bội số của 1 byte (8 bit)

 PIC là một Vi điều khiển RISC, tập lệnh của PIC chỉ có 35 lệnh , phần lớn các lệnh này chỉ thực hiện trong một chu kỳ máy Chính nhờ kiến trúc phần cứng tiên tiến, PIC tỏ ra vượt trội so với các loại Vi điều khiển 8 bít khác về

Trang 14

Cấu trúc Harvard

Trang 15

Giới thiệu về Kit DSPIC80

Trang 16

 Đây là Board phát triển 16-bit cho dsPIC 8 0-pin, phù hợp với dsPIC30F6014A , PIC24FJ96GA008, dsPIC33FJ128GP708 và các chip có chân tương thích với 3 dòng chíp trên

 Các thành phần ngoại vi nhiều và thiết kế theo hướng mở rộng linh hoạt , là công cụ hỗ trợ rất tốt cho các kỹ sư lập trình Microchip 16-bit MCU

Dễ sử dụng và phát triền cho người mới bắt đầu cũng như các kỹ sư giàu kinh nghiệm

Trang 17

Tài nguyên Board:

1) Mô-đun cấp nguồn, Nhảy chọn VDD cho 5V hoặc 3.3V 2) Mô-đun chip điều khiển chính

3) Cổng ICSP Connect, nó có thể kết nối icd2 / icd3 /

pickit2 cho chương trình hoặc gỡ lỗi

4) Chọn chip điều khiển chính ICSP I / O Chân chọn

Trang 18

9) Mô-đun nhiệt kế kỹ thuật số DS18B20

10) Mô-đun đồng hồ thời gian thực của PCF8583 11) LCD 16 * 2 ký tự

Trang 19

17) Mô-đun bus CAN của mcp2551

18) Mô-đun RS232 B

19) Mô-đun RS232 A

20) Mô-đun giao tiếp RS-485 và RS-422 của

MAX489E

21) Mô-đun Ethernet của ENC28J60

22) Bộ giải mã băng tần Si3000 với giắc cắm MIC vào / loa.

23) Tất cả các chân được lấy ra trên đầu nối IDC10

để làm cho chúng có sẵn cho các kết nối tiếp theo

Trang 20

Giới thiệu về dòng vi xử lý DSPIC 30F6014

DSPIC30F6014A là một chip vi xử lý được sử dụng

phổ biến của dòng DSPIC30 ( bên cạnh còn có DSPIC30F6014 và DSPIC30F6010A cũng được sử dụng nhiều) Các đặc trưng cơ bản của DSPIC30F6014A:

 CPU RISC được sửa đổi hiệu suất cao:

 Kiến trúc Harvard sửa đổi

 Kiến trúc tập lệnh tối ưu hóa trình biên dịch C

 84 hướng dẫn cơ bản với các chế độ địa chỉ linh hoạt

Trang 21

 Mảng thanh ghi làm việc 16 x 16 bit

 Hoạt động lên đến 30 MIP

 Đầu vào xung nhịp bên ngoài DC đến 40

 Đầu vào FRC bên trong với PLL đang

hoạt động (4x, 8x, 16x)

Trang 22

DSPIC30F6014A

Trang 23

 Đầu vào bộ dao động 4 MHz-10 MHz với PLL hoạt động (4x, 8x, 16x)

 10 MHz - Đầu vào bộ dao động 20 MHz

ở HS / 2 hoặc HS / 3 với PLL đang hoạt động (4x, 8x, 16x)

 Nguồn ngắt ngoại vi và bên ngoài

 8 mức độ ưu tiên có thể lựa chọn của

người dùng cho mỗi ngắt

Trang 24

 4 ngoại lệ bộ xử lý và bẫy phần mềm

 Bảng vectơ ngắt chính và thay thế

 Các tính năng của động cơ DSP

 Modulo và chế độ địa chỉ đảo ngược bit

 Hai bộ tích lũy rộng 40 bit với logic bão hòa tùy chọn

 17-bit x 17-bit chu kỳ đơn chu kỳ nhân phần cứng / số nguyên

 Hoạt động một chu kỳ Nhân tích lũy

(MAC)

Trang 25

Sơ đồ chân DSPIC30F6014

Trang 28

 Mô-đun SPI ™ 3 dây (hỗ trợ 4 chế độ Khung hình)

 Mô-đun I2C ™ hỗ trợ chế độ Multi-Master/Slave và định địa chỉ 7-bit/10-bit

 Mô-đun UART có thể định địa chỉ với bộ đệm FIFO

và các chân có thể lựa chọn

 Giao diện chuyển đổi dữ liệu (DCI) hỗ trợ các giao thức Codec âm thanh phổ biến, bao gồm I2S và

AC'97

Trang 30

 Nhiều tùy chọn sắp xếp theo trình tự chuyển đổi

 Các tính năng đặc biệt của vi điều khiển:

 Bộ nhớ chương trình Flash nâng cao

 10.000 chu kỳ xóa / ghi (tối thiểu) cho dải nhiệt độ công nghiệp, 100K (điển hình)

 Bộ nhớ EEPROM dữ liệu:

Trang 31

Các chức năng chính của DSPIC30F6014A

Trang 32

 100.000 chu kỳ xóa / ghi (tối thiểu) cho dải nhiệt

độ công nghiệp, 1M (điển hình)

 Tự lập trình lại dưới sự kiểm soát của phần mềm

 Khởi động lại nguồn (POR), Bộ hẹn giờ bật nguồn (PWRT) và Bộ hẹn giờ khởi động bộ tạo dao động (OST)

 Bộ định thời gian giám sát linh hoạt (WDT) với

bộ dao động RC công suất thấp trên chip cho hoạt động đáng tin cậy

Trang 33

Chức năng và sơ đồ từng bộ phận của chip PIC30F6014A

Trang 34

 Hoạt động theo dõi đồng hồ không an toàn

 Phát hiện lỗi xung nhịp và chuyển sang bộ tạo dao động RC công suất thấp trên chip

 Bảo vệ mã có thể lập trình

 Lập trình nối tiếp trong mạch ™ (ICSP ™)

 Tạo ra phát hiện và thiết lập lại màu nâu có thể lập trình

 Các chế độ quản lý năng lượng có thể lựa chọn

Trang 35

 Các chế độ quản lý năng lượng có thể lựa chọn

 Chế độ Ngủ, Chờ và Đồng hồ thay thế

 Công nghệ CMOS:

 Công nghệ đèn flash tốc độ cao, công suất thấp

 Dải điện áp hoạt động rộng (2,5V đến 5,5V)

 Phạm vi nhiệt độ công nghiệp và mở rộng

 Tiêu thụ ít điện năng

Trang 36

Cấu hình phần cứng bộ dsPIC

Hình 1 Sơ đồ mạch dsPIC

Trang 38

Sơ đồ mạch Vi điều khiển dsPIC theo Hình 1

 Khe cắm vi điều khiển có thể tương thích các dòng vi điều khiển của dsPIC bao gồm (dsPIC 24XXXX, dsPIC30XXXX, dsPIC33XXXX)

 Với KIT mạch dsPIC80 chúng ta tìm hiểu thì bao gồm (mạch Reset, Mạch dao động 10M, Các Port (A,B,C,D,F,G), Mạch dao động theo thời gian thực (Real time clock PCF8583), Mạch nạp (ICSP)

Trang 39

Mạch nguồn

 Nguồn đầu vào với điện áp là 9-12V một chiều

 IC ổn áp L7805 cho nguồn ổn định ở điện áp 5V

 IC ổn áp AMS1117 - 3,3V cho nguồn ổn định ở điện

áp 3,3V

Trang 40

CÁC ĐẦU RA CỦA dsPIC80

Trang 41

CÁC PORT CỦA dsPIC80

Trang 42

LED ĐƠN

Trang 43

MẠCH LCD

Trang 45

NÚT NHẤN SWITCH

Trang 46

CẢM BIẾN NHIỆT DS18B20 & ADC INPUT

Trang 47

MẠCH MIC-IN & SPK-OUT

Trang 48

MẠCH MMC/SD CARD

Trang 49

MẠCH PS2 & CAN

Trang 50

MẠCH RS232 A-B

Trang 51

MẠCH RS485/422

Trang 52

MẠCH ENC28J60 SPI-ETHERNET

Trang 53

1.2 Ngôn ngữ lập trình

 Phần mềm CCS PIC

 Phầm mềm Micro C for PIC

 Phần mềm MPLap x IDE

Trang 54

Phần mềm CCS PIC

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hã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òng PIC khác nhau đó là:

 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 dich này đuợc tích hợp lại vào trong một chương trình bao gồm cả trình soạn thảo và biên dịch là CCS, phiên bản mới nhất là PCWH Compiler

Trang 55

Chương trình CCS

Trang 56

VIẾT CHƯƠNG TRÌNH TRONG CCS

Trang 57

}

#INT_TIMER1

Void xu_ly_ngat_timer ( ) {

Trang 58

Phầm mềm Micro C for PIC

 Ngoài CCS for PIC ta cũng có thể sử dụng Micro C

để lập trình cho PIC;

 Trình biên dịch mikroC là một công cụ khá mạnh để

hỗ trợ lập trình cho các thiết bị sử dụng vi điều khiển

Trang 59

Phần mềm Micro Pic C

Trang 60

Phần mềm MPLap x IDE

sử dụng để phát triển các ứng dụng cho vi điều khiển MicroChip và bộ điều khiển tín hiệu số của hãng Công cụ phát triển này được gọi là Môi trường phát triển tích hợp, hay IDE, bởi vì nó cung cấp một môi trường tích hợp duy nhất để phát triển code cho các

bộ vi điều khiển nhúng

năng được tích hợp, cho phép các kỹ sư tập trung hoàn thành ứng dụng mà không bị gián đoạn các công cụ riêng biệt và các chế độ hoạt động khác nhau

Trang 61

Phần mềm Mplab

Trang 62

Phần mềm CCS

 Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm ứng dụng cho việc lập trình cho con vi điều khiển đó Vi điều khiển chỉ hiểu và làm việc với hai con số 0 và 1 Ban đầu để việc lập trình cho VĐK là làm việc với dãy các con số 0 và 1 Sau này khi kiến trúc của Vi điều khiển ngày càng phức tạp, số luợng thanh ghi lệnh nhiều lên, việc lập trình với dãy các số 0 và 1 không còn phù hợp nữa, đòi hỏi

ra đời một ngôn ngữ mới thay thế Và ngôn ngữ lập trình Assembly Ở đây ta không nói nhiều đến Assmebly Sau này khi lập trình cho Vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự ra đời của ngôn ngữ C ra đời, nhu cầu dùng ngôn ngữ C

đề thay cho ASM trong việc mô tả các lệnh nhiều chương trình soạn thảo và biên dịch C cho Vi điều khiển : Keil C, HT‐PIC, MikroC,CCS…

Trang 63

CCS là một công cụ lập trình C mạnh cho Vi điều khiển PIC Những ưu và nhược điểm của CCS sẽ được đề cập đến trong các phần dưới đây

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hã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òng PIC khác nhau đó là:

 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

Trang 64

 Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình bao gồm cả trình soạn thảo và biên dịch là CCS , phiên bản mới nhất là PCWH Compiler Ver 3.227

 Giống như nhiều trình biên dich 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 diều khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc

sử dụng ngôn ngữ lạp trình cấp cao – Ngôn ngữ C.Tài liệu hướng dẫn sử dụng có rất nhiều, nhưng chi tiết nhất chính là bản Help đi kèm theo phần mềm (tài liệu Tiếng Anh) Trong bản trợ giúp nhà sản xuất đã mô tả rất nhiều về hằng, biến, chỉ thị tiền xủa lý, cấu trúc các câu lệnh trong chương trình, các hàm tạo sẵn cho người sử dụng…

Trang 65

Lập trình CCS

Trang 66

Tạo file project và giao diện của CCS

Trang 67

Rebuil cho phần mềm CCS

Trang 68

MẠCH NẠP PICKIT3

Trang 69

Mạch nạp PICKIT3

 Kết nối với PC qua cổng USB

 Chức năng Programmer/Debugger

 Tự động giám sát và điều chỉnh điện áp nạp

thích hợp với từng loại PIC

 Cập nhật thường xuyên Firmware cho các PIC mới

Trang 70

1.3 Ngắt

#int_timer1 FAST Void xu_ly ( )

{

}

#int_timer2 HIGH Void dinh_thi () {

}

#int_timer5 HIGH Void vong_lap() {

}

Trang 71

//Clock Switching is enabled, fail

Safe clock monitor is enabled

while(TRUE) {

output_high(PIN_D0); output_high(PIN_D1); delay_ms(1000);

output_low(PIN_D0);

output_low(PIN_D1);

delay_ms(1000);

} }

Bài 1: Chương trình xuất dữ liệu ra chân D0 và D1

Trang 72

output_d(255); Delay_ms(250); output_d(0); Delay_ms(250); }

for(y=0;y<10;y++) {

output_d(100); Delay_ms(250); output_d(50); Delay_ms(250); }

} }

Bài 2: Chương trình xuất dữ liệu ra portd

Trang 73

//int8 const led[]={1,2,4,8,16,32,64,128},a; int8 const led[]={1,2,3,4,5,6,7,8},a;

set_tris_d(0x0000);

while(TRUE) {

for(a=0;a<8;a++) {

portd=led[a];

delay_ms(500);

} //TODO: User Code }

}

Bài 3: Chương trình xuất các giá trị 0,1,2,3,4,5,6,7,8

ở dạng nhị phân ra portd của vi điều khiển

Trang 74

output_d(255);

delay_ms(200);

} else output_d(0);

delay_ms(200);

} }

Bài 4: Chương trình nhấn switch của porta & portc đưa kết quả ra các Led của portd

Trang 76

Bài 5: Chương trình nhấn switch của porta&portc đưa các kết quả 1,3,7,15,31,63,127,255 ở dạng nhị phân, và được xuất ra các Led của portd

output_d(7);

delay_ms(200);

} if(RA15) {

output_d(15);

delay_ms(200);

} if(RC1) {

output_d(31);

delay_ms(200);

} if(RC2) {

output_d(63);

delay_ms(200);

}

if(RC3) {

output_d(127);

delay_ms(200);

} if(RC4) {

output_d(255);

delay_ms(200);

} else output_d(0);

delay_ms(200);

} }

Trang 77

Bài 6: Chương trình điều khiển động cơ 1

DC sử dụng PWM thông qua nút nhấn

#include <30F6014A.h>

#FUSES NOWDT //No Watch Dog Timer

#FUSES CKSFSM //Clock Switching is

enabled, fail Safe clock monitor is

enabled

#FUSES NOPUT //No Power Up Timer

#FUSES NOBROWNOUT //No brownout

set_pwm_duty(1, 0);

while(true) {

if (input(pin_a12)==1) pwm=pwm+30;

else

if (input(pin_a13)==1) pwm=pwm-30;

if (pwm>2499) pwm=2499;

else

if (pwm<0) pwm=0;

set_pwm_duty(1,pwm);

delay_ms(200);

} }

Trang 78

Chương 3 – Lập trình hiển thị LCD & Lập trình bộ ADC

 Lập trình với LCD

 Lập trình với ADC với chiết áp

Trang 79

Sơ đồ cấu tạo bên trong module A/D

Trang 80

KHAI BÁO THƢ VIỆN VÀ CẤU HÌNH

Bài 7: Xuất dữ liệu “DAI HOC THUY LOI” và “KHOA DIEN-DIENTU” ra LCD

Trang 81

KHAI BÁO THƢ VIỆN LCD

#define LCD_ENABLE_PIN PIN_B6

#define LCD_RS_PIN PIN_B4

#define LCD_RW_PIN PIN_B5

#define LCD_DATA4 PIN_D4

#define LCD_DATA5 PIN_D5

#define LCD_DATA6 PIN_D6

#define LCD_DATA7 PIN_D7

#include<lcd.c>

Ngày đăng: 03/01/2024, 13:24

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân DSPIC30F6014 - Bài giảng Thực hành Vi xử lý
Sơ đồ ch ân DSPIC30F6014 (Trang 25)
Hình 1. Sơ đồ mạch dsPIC - Bài giảng Thực hành Vi xử lý
Hình 1. Sơ đồ mạch dsPIC (Trang 36)
Hình 1. Sơ đồ mạch dsPIC Mạch Reset - Bài giảng Thực hành Vi xử lý
Hình 1. Sơ đồ mạch dsPIC Mạch Reset (Trang 37)
Sơ đồ mạch Vi điều khiển dsPIC theo Hình 1 - Bài giảng Thực hành Vi xử lý
Sơ đồ m ạch Vi điều khiển dsPIC theo Hình 1 (Trang 38)
Sơ đồ cấu tạo bên trong module A/D - Bài giảng Thực hành Vi xử lý
Sơ đồ c ấu tạo bên trong module A/D (Trang 79)
Sơ đồ mạch điện - Bài giảng Thực hành Vi xử lý
Sơ đồ m ạch điện (Trang 91)

TỪ KHÓA LIÊN QUAN

w