You are on page 1of 50

HỌC VIỆN HÀNG KHÔNG VIỆT NAM

KỸ THUẬT VI XỬ LÝ – VI ĐIỀU KHIỂN

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


GV: Th.S Phương Hữu Công

1
Chương 2: Tổng quan về vi điều khiển
PIC
2.1. Sơ đồ khối
2.2. Một số đặc trưng
2.3. Hình dạng và sơ đồ chân
2.4. Cấu trúc Port

2
2.1. Sơ đồ khối

GPIO: Các chân I/O dùng cho


mục đích chung

Các module ngoại vi

MCLR: Chân reset


VDD, VSS: Chân cấp nguồn

Các chân kết nối thạch anh,


hoặc nhận xung bên ngoài

3
2.2. Một số đặc trưng
CPU:
• Tốc độ hoạt động: DC – 20MHz ngõ vào xung clock
DC – 200ns chu kỳ lệnh
• Flash Program Memory: 8K x 14 word
• Data Memory (RAM): 368 x 8 byte
• EEPROM Data Memory: 256 x 8 byte
• 28 pin, 40/44 pin

4
2.2. Một số đặc trưng
Ngoại vi:
• Timer0: 8-bit timer/counter với 8-bit bộ chia trước (prescaler)
• Timer1: 16-bit timer/counter với bộ chia trước.
• Timer2: 8-bit timer/counter với thanh ghi chu kỳ 8-bit, bộ chia
trước và bộ chia sau (prescaler và postscaler).
• 2 module Capture, Compare, PWM (CCP):
• Capture: 16-bit
• Compare: 16-bit
• PWM: tối đa 10-bit

5
2.2. Một số đặc trưng
Ngoại vi:
• SPI (Master Mode) và I2C (Master/Slave).
• USART - Universal Synchronous Asynchronous Receiver Transmitter
• PSP - Parallel Slave Port: 8-bit

6
2.2. Một số đặc trưng
Analog:
• 10-bit, 8 kênh ADC
• BOR – Brown-out Reset: Nếu điện áp cung cấp thấp hơn ngưỡng
trong hơn 100ms, thiết bị sẽ bị reset.
• Module so sánh analog: Có hai bộ so sánh analog

7
2.2. Một số đặc trưng
Công nghệ CMOS:
• Công nghệ Flash / EEPROM năng lượng thấp, tốc độ cao
• Dải điện áp hoạt động rộng (2.0V đến 5.5V)
• Phạm vi nhiệt độ phù hợp thương mại và công nghiệp
• Tiêu thụ ít điện năng

8
2.3. Hình dạng và sơ đồ chân

9
2.3. Hình dạng và sơ đồ chân
• PIN 1 - MCLR: Chân reset.
• Hoạt động ở mức thấp (luôn được cấp nguồn 5V,
nếu được cấp 0V thì vi điều khiển sẽ bị reset)
• Một nút nhấn và một điện trở được kết nối với
chân. Chân đã được cấp 5V. Khi muốn reset IC, chỉ
cần nhấn nút sẽ đưa chân MCLR về 0V, từ đó bộ
điều khiển được reset.

10
2.3. Hình dạng và sơ đồ chân
• PIN 2 – RA0/AN0: Có thể hoạt động ở 2 chế độ.
• RA0: Digital I/O, AN0: Analog input 0
• PIN 3 – RA1/AN1:
• RA1: Digital I/O, AN1: Analog input 1
• PIN 4 – RA2/AN2/VREF-/CVREF:
• RA2: Digital I/O, AN2: Analog input 2
• VREF-: Ngõ vào điện áp chuẩn (thấp) của bộ A/D
• CVREF: Điện áp tham chiếu ngõ ra bộ so sánh

11
2.3. Hình dạng và sơ đồ chân
• PIN 5 – RA3/AN3/VREF+:
• RA3: Digital I/O, AN3: Analog input 3
• VREF+: Ngõ vào điện áp chuẩn (cao) của bộ A/D
• PIN 6 – RA4/T0CKI/C1OUT:
• RA1: Digital I/O
• T0CKI: Ngõ vào xung clock bên ngoài cho Timer0
• C1OUT: Ngõ ra bộ so sánh 1
• PIN 7 – RA5/AN4/SS/C2OUT:
• RA2: Digital I/O, AN4: Analog input 4
• SS: SPI slave select input
• C2OUT: Ngõ ra bộ so sánh 2 12
2.3. Hình dạng và sơ đồ chân
• PIN 8 – RE0/RD/AN5:
• RE0: Digital I/O, AN5: Analog input 5
• RD: Điều khiển đọc port slave song song
• PIN 9 – RE1/WR/AN6:
• RE1: Digital I/O, AN6: Analog input 6
• WR: Điều khiển ghi port slave song song
• PIN 10 – RE2/CS/AN7:
• RE2: Digital I/O, AN7: Analog input 7
• CS: Điều khiển lựa chọn chip port slave song song
13
2.3. Hình dạng và sơ đồ chân

• PIN 11 và 32 – VDD: Cả hai chân này phải


được nối với 5V.
• PIN 12 và 31 – VSS: Cả hai chân này phải
được nối với 0V.

14
2.3. Hình dạng và sơ đồ chân
• PIN 13 – OSC1/CLKO: Ngõ vào dao động
thạch anh hoặc xung clock ngoài.
• PIN 14 – OSC2/CLKO: Ngõ ra dao động
thạch anh. Một thạch anh được nối giữa
hai chân 13 và 14 để cung cấp xung nhịp
bên ngoài cho vi điều khiển. Ở chế độ RC,
ngõ ra của OSC2 bằng ¼ tần số của OSC1,
chính là tốc độ của chu kì lệnh.

15
2.3. Hình dạng và sơ đồ chân
• PIN 15 – RC0/T1OSC/T1CKI:
• RC0: Digital I/O
• T1OSO: Ngõ ra dao động Timer1
• T1CKI: Ngõ vào clock ngoài Timer1
• PIN 16 – RC1/T1OSI/CCP2:
• RC1: Digital I/O
• T1OSI: Ngõ vào dao động Timer1
• CCP2: Ngõ vào Capture2, ngõ ra Compare2, ngõ ra PWM2

16
2.3. Hình dạng và sơ đồ chân
• PIN 17 – RC2/CCP1:
• RC2: Digital I/O
• CCP1: Ngõ vào Capture1, ngõ ra Compare1, ngõ ra PWM1
• PIN 18 – RC3/SCK/SCL:
• RC3: Digital I/O
• SCK: Clock đồng bộ nối tiếp vào/ra cho chế độ SPI
• SCL: Clock đồng bộ nối tiếp vào/ra cho chế độ I2C
• PIN 19,20,21,22,27,28,29,30: Các chân này thuộc PORT D, là các
chân Digital I/O hoặc là port slave song song khi giao tiếp với bus
bộ vi xử lý.
17
2.3. Hình dạng và sơ đồ chân
• PIN 23 – RC4/SDI/SDA:
• RC4: Digital I/O
• SDI: SPI data in
• SDA: I2C data I/O
• PIN 24 – RC5/SDO:
• RC5: Digital I/O
• SDO: SPI data out

18
2.3. Hình dạng và sơ đồ chân
• PIN 25 – RC6/TX/CK:
• RC6: Digital I/O
• TX: Chân truyền USART
• CK: Xung clock đồng
bộ USART
• PIN 26 – RC7/RX/DT:
• RC7: Digital I/O
• RX: Chân nhận USART
• DT: Dữ liệu đồng bộ USART

19
2.3. Hình dạng và sơ đồ chân
• PIN 33-40: Là các chân thuộc PORTB. Ngoài ra RB0 có thể được sử
dụng làm chân ngắt ngoài. RB3, RB6 và RB7 có thể được sử dụng
làm chân debug và lập trình điện áp thấp.

20
2.4. Cấu trúc Port

21
2.4. Cấu trúc Port
PORTA và thanh ghi TRISA
Là port hai chiều, độ rộng 6-bit (6 chân I/O), thanh ghi dữ liệu tương
ứng là TRISA.
Trước khi truy cập vào thanh ghi PORTA, chúng ta phải khai báo:
TRISA = 0xFF, tương ứng với các chân ở PORTA là input.
TRISA = 0x00, tương ứng với các chân ở PORTA là output.
VD: TRISA = 0x0F  TRISA = 0b00001111
TRISA = (1<<0) | (1<<1 | 1<<2))  TRISA = 0b00000111

22
2.4. Cấu trúc Port

THANH GHI CHỨC NĂNG THAY


PORT SỐ CHÂN
ĐIỀU HƯỚNG THẾ
PORTA TRISA 6 (PA0-PA5) ADC
PORTB TRISB 8 (PB0-PB7) Interrupts
PORTC TRISC 8 (PC0-PC7) UART, I2C, PWM
PORTD TRISD 8 (PD0-PD7) Parallel Slave Port
PORTE TRISE 3 (PE0-PE2) ADC

23
2.4. Cấu trúc Port
• Như trong bảng trên, nhiều chân I/O có 2-3 chức năng. Nếu một
pin được sử dụng cho chức năng khác thì nó có thể không được sử
dụng như một GPIO.
• Mặc dù các chân GPIO được nhóm thành các cổng 8 bit, chúng vẫn
có thể được cấu hình và truy cập riêng lẻ.
• Mỗi Port được liên kết với 2 thanh ghi cho cấu hình hướng
(Đầu vào/Đầu ra) và cho Đọc/Ghi.

24
Chương 2: Tổng quan về vi điều khiển
PIC (tt)
2.5. Mạch điều khiển thiết bị AC/DC
2.6. Mạch hiển thị dùng Led 7 đoạn
2.7. Mạch hiển thị dùng LCD
2.8. Mạch điều khiển chiều quay động cơ
2.9. Mạch điều khiển phím nhấn

25
2.5. Mạch điều khiển thiết bị AC/DC

26
2.5. Mạch điều khiển thiết bị AC/DC

27
2.5. Mạch điều khiển thiết bị AC/DC

28
2.5. Mạch điều khiển thiết bị AC/DC

29
2.5. Mạch điều khiển thiết bị AC/DC
Cách tìm giá trị điện trở 𝑅𝐵 để transistor NPN có thể kích được
mạch relay:
• Cho relay có điện áp cấp là A(vôn) và điện trở của cuộn cảm là
B(ôm) => Dòng kích cần là A/B = C(ampe)
=> Dòng 𝐼𝐶 = C(ampe) để relay có thể hoạt động.
• 𝛽 là độ lợi (hFE) của transistor.
• 𝑉𝑖𝑛 là điện áp ngõ ra của vi điều khiển khi ở mức cao.
• 𝑉𝐵𝐸 là điện áp ở chân B và chân E của transistor (thường là 0.7V).

30
2.5. Mạch điều khiển thiết bị AC/DC

• Tính 𝐼𝐵 : IC => Tính 𝑅𝐵 : Vin − VBE


IB = (mA) RB = ()
 IB
• Chọn 𝑅𝐵 phải nhỏ hơn giá trị vừa tính toán được! Dẫn đến 𝐼𝐵 sẽ
lớn hơn 𝐼𝐵 đã tính toán => 𝐼𝐶 lớn hơn dòng điện cần có để kích
relay => relay hoạt động.

31
2.5. Mạch điều khiển thiết bị AC/DC
• Ví dụ: Dòng kích để relay hoạt động là 400mA, độ lợi 𝛽 = 200.
Điện áp 𝑉𝑖𝑛 = 5V.
Tìm 𝑅𝐵 ?
400
1. Tính I B = = 2(mA)
200

5 − 0.7 4.3
2. Tính RB = −3
= = 2150 ()
2 10 0.002

=> chọn điện trở giá trị là 2.0k ôm

32
2.5. Mạch điều khiển thiết bị AC/DC
Bài tập: Sử dụng Proteus mô phỏng mạch điều khiển Led đơn với
yêu cầu như sau:
• Relay 12V, điện trở cuộn cảm = 30(ôm)
• Transistor 2N2222A, độ lợi hFE = 100
• Ngõ ra điện áp 𝑉𝑖𝑛 của vi điều khiển là 5V
• Tính toán để tìm giá trị điện trở 𝑅𝐵 giúp transistor phân cực và
kích relay hoạt động.

33
2.6. Mạch hiển thị dùng Led 7 đoạn

34
2.7. Mạch hiển thị dùng LCD

35
2.7. Mạch hiển thị dùng LCD
• GND: Chân nối đất (0V)
• VDD: Chân nối nguồn (5V)
• VEE: Chân điều chỉnh độ tương phản và độ sáng
• RS: Phân biệt lệnh và dữ liệu
HIGH: Gửi dữ liệu tới LCD
LOW: Gửi lệnh tới LCD
• RW: Dùng để kiểm soát xem đang đọc dữ liệu từ màn hình LCD
hay ghi dữ liệu vào màn hình LCD.
HIGH: Đọc dữ liệu từ LCD
LOW: Ghi dữ liệu vào LCD
36
2.7. Mạch hiển thị dùng LCD
• EN: Chân cho phép LCD gửi dữ liệu
• DATA: Các chân dữ liệu
• A-C (Anode & Cathode): Được dùng để điều khiển đèn nền

37
2.7. Mạch hiển thị dùng LCD

38
2.7. Mạch hiển thị dùng LCD
Trong CCS đã được tích hợp sẵn thư viện LCD. Để sử dụng chỉ cần gọi:
#include <lcd.c>
Thư viện hỗ trợ các hàm:
• lcd_init(): Hàm khởi tạo LCD
• lcd_putc(c): Xuất kí tự lên LCD
• lcd_gotoxy(x,y): Đặt ví trí con trỏ (vị trí cần xuất ký tự) tại cột x của
hàng y (y=1 hoặc y=2)
• lcd_getc(x,y): Đọc về giá trị tại x của dòng y
• lcd_cursor_on(int1 on): Bật ví trí con trỏ

39
2.7. Mạch hiển thị dùng LCD
• lcd_set_cgram_char(w, *p): Hàm này dùng khi xuất kí tự đặc biệt.
Ví dụ chữ́ có dấu vào CGRAM.
• Để xóa nội dung và đưa con trỏ về đầu dòng bạn xuất ký tự ‘\f’.
• Để về đầu dòng của dòng 2: ‘\n’.
• Về đầu dòng của dòng hiện tại: ‘\a’.
• Để lùi về con trỏ về 1 ví trí so với vị trí hiện tại: ‘\b’

40
2.7. Mạch hiển thị dùng LCD
• Chú ý: Trước khi sử dụng cần định nghĩa lại các chân cho thư viện
LCD_RS_PIN
LCD_RW_PIN
LCD_ENABLE_PIN
LCD_DATA4
LCD_DATA5
LCD_DATA6
LCD_DATA7
• Sau đó mới #include <lcd.c>

41
2.7. Mạch hiển thị dùng LCD
Bài tập: Sử dụng Proteus thiết kế mạch hiển thị LCD, dùng LCD
16x2 và PIC16F877A.

42
2.8. Mạch điều khiển chiều quay động cơ

43
2.8. Mạch điều khiển chiều quay động cơ
Bảng mô tả chức năng L298
CHÂN TÊN CHỨC NĂNG
Giữa chân này và đất được nối với điện trở để điều khiển dòng
1; 15 Sense A; Sense B
của tải. Nếu không sử dụng thì nối đất
2; 3 Out1; Out2 Ngõ ra của cầu A
Nguồn cấp cho ngõ ra.
4 𝑉𝑆
Điện trở 100nF phải được nối giữa chân này và đất
5; 7 Input1; Input2 Ngõ vào điều khiển cầu A
6; 11 Enable A; Enable B Chân cho phép
8 GND Nối đất
Cấp nguồn cho khối logic.
9 VSS
Điện trở 100nF phải được nối giữa chân này và đất
10; 12 Input1; Input2 Ngõ vào điều khiển cầu B
13; 14 Out3; Out4 Ngõ ra của cầu B 44
2.8. Mạch điều khiển chiều quay động cơ

Bảng mô tả trạng thái ngõ vào điều khiển

IN1; IN3 IN2; IN4 MÔ TẢ


0 0 Dừng
0 1 Quay thuận
1 0 Quay nghịch
1 1 Không dùng

45
2.8. Mạch điều khiển chiều quay động cơ
Bài tập: Dùng Proteus thiết kế mạch điều khiển 1 động cơ DC dùng
PIC16f877A và cầu H L298. Dùng LOGICSTATE gắn vào IN1, IN2
của cầu H và điều chỉnh trạng thái để xem chiều quay của động cơ.

46
2.9. Mạch điều khiển phím nhấn

Mạch điều khiển phím nhấn đơn

47
2.9. Mạch điều khiển phím nhấn

48
2.9. Mạch điều khiển phím nhấn

49
2.9. Mạch điều khiển phím nhấn
Bài tập:
1. Dùng Proteus thiết kế mạch điều khiển 1 phím nhấn dùng
PIC16f877A.
2. Dùng Proteus thiết kế mạch điều khiển phím nhấn 4x4 dùng
PIC16f877A.

50

You might also like