MỤC LỤC
I. GIỚI THIỆU HỆ THỐNG-------------------------------------------------------------------------------------------------2
II. MÔ TẢ CÁC THÀNH PHẦN CỦA HỆ THỐNG----------------------------------------------------------------------4
1. DIP SWITCH (DIPSW)--------------------------------------------------------------------------------------------4
-----------------------------------------------------------------------------------------------------------------------------------4
2. JUMPERs-------------------------------------------------------------------------------------------------------------5
2. MCU SOCKETs-----------------------------------------------------------------------------------------------------6
3. POWER SUPPLY---------------------------------------------------------------------------------------------------8
4. ON-BOARD PROGRAMMER----------------------------------------------------------------------------------9
5. REAL TIME CLOCK (RTC) DS1307-------------------------------------------------------------------------10
6. RS-232 COMMUNICATION -----------------------------------------------------------------------------------11
7. USB COMMUNICATION---------------------------------------------------------------------------------------12
8. PS/2 COMMUNICATION---------------------------------------------------------------------------------------13
9. DS1820 DIGITAL THERMOMETER-------------------------------------------------------------------------14
10. A-D CONVERTER INPUT------------------------------------------------------------------------------------15
11. DIRECT PORT ACCESS---------------------------------------------------------------------------------------16
PHẦN II: THỰC HÀNH-----------------------------------------------------------------------------------------------------17
Bài thực hành số 1-----------------------------------------------------------------------------------------------------------17
SỬ DỤNG PHẦN MỀM WINPIC800 -------------------------------------------------------------------------------------17
TRUY CẬP CỔNG VÀO RA SỐ VÀ ĐIỀU KHIỂN LED 7 DOẠN----------------------------------------------------17
I. MỤC ĐÍCH---------------------------------------------------------------------------------------------------------17
II. CHUẨN BỊ---------------------------------------------------------------------------------------------------------17
III. THỰC HÀNH----------------------------------------------------------------------------------------------------17
Bài thực hành số 2-----------------------------------------------------------------------------------------------------------25
BIẾN ĐỔI ADC, ĐO ĐIỆN ÁP, NHIỆT ĐỘ ----------------------------------------------------------------------------25
HIỂN THỊ TRÊN LED VÀ TRUYỀN THÔNG QUA RS232-------------------------------------------------------------25
I. MỤC ĐÍCH---------------------------------------------------------------------------------------------------------25
II. CHUẨN BỊ---------------------------------------------------------------------------------------------------------25
III. THỰC HÀNH----------------------------------------------------------------------------------------------------25
Bài thực hành số 3-----------------------------------------------------------------------------------------------------------29
ĐỌC PHÍM BẤM, ĐIỀU KHIỂN RELAY --------------------------------------------------------------------------------29
chân của các port này dùng làm ngõ vào Analog vì làm ảnh hưởng đến mức điện áp
đầu vào. Khi các chân của PORTA và PORTE sử dụng như digital inputs/outputs thì
những điện trở pull-up/down lại thích hợp và được cho phép.
Sáu switches đầu của DIPSW2 cho phép kết nối tới PortA để điều khiển 6 LED 7
đoạn (7-Segment display). Nếu không cần 7-seg Display trong bài tập thì các SW này
cần phải OFF.
Hai switches đầu của SW2 cho phép kết nối DS1307 đến chân RC4 và RC3 của
PIC. Khi không có nhu cầu sử dụng DS1307 thì nên đưa các SW này về vị trí OFF.
Hình 1.3 - Dip switch
THỰC HÀNH VI ĐIỀU KHIỂN PIC
4
2. JUMPERs
Jumpers cũng giống như switches, có thể ngắt hoặc nối hai điểm với nhau. Bên
trong vỏ bọc nhựa của jumper là một lá kim loại dùng để tiếp xúc. Nó sẽ nối (dẫn
điện) nếu jumper này được gắn vào hai pin đang bị ngắt.
Ví dụ: Hai biến trở trong mạch ADC được ngắt rời với RA2 và RA3. Để nối
chúng với nhau cần sử dụng jumper.
Hình 1.4 - Jumper như một Switch
Các jumper cũng thường được sử dụng để lựa chọn giữa hai kết nối. Như minh
họa trong hình dưới, điểm giữa được nối với bên phải hoặc bên trái tuỳ thuộc vào vị
trí của jumper.
Hình 1.5 – Lựa chọn kết nối với jumper
THỰC HÀNH VI ĐIỀU KHIỂN PIC
5
2. MCU SOCKETs
PIC.TS được thiết kế sử dụng cho các loại vi điều khiển PIC 16F và 18F. Người
sử dụng có thể dùng các PIC khác nhau thích hợp cho công việc của mình có các kiểu
chân phù hợp với socket DIP40, DIP28, DIP18.
Hình 1.6 - MCU socket
Chú ý: Tất cả các sockets trên được nối song song với nhau, vì vậy trong cùng
Không cần sử dụng bất kỳ mạch nạp nào khác, PIC.TS có riêng một mạch nạp
on-board rất tiện lợi và dễ sử dụng. Bạn chỉ cần cắm cáp kết nối đến PC qua cổng
LPT.
Hình 1.11 –Mạch nạp
Đây là mạch nạp giao tiếp qua cổng máy in sử dụng phần mềm WinPIC800 có
độ ổn định cao, tốc độ nhanh, hỗ trợ rất nhiều PIC.
THỰC HÀNH VI ĐIỀU KHIỂN PIC
9
Mạch nạp cho PIC trên PIC.TS Cáp kết nối
5. REAL TIME CLOCK (RTC) DS1307
PIC.TS sử dụng đồng hồ thời gian thực DS1307 giao tiếp chuẩn I2C với vi điều
khiển PIC. Hai chân SCL và SDA nối với RC3 và RC4 qua SW2. Pin CMOS dùng
nuôi DS1307 khi ngắt nguồn.
Hình 1.12 – Sơ đồ kết nối DS1307
THỰC HÀNH VI ĐIỀU KHIỂN PIC
10
RTC DS1307 Pin Cmos
RS-232 communiction
6. RS-232 COMMUNICATION
Truyền thông RS-232 cho phép truyền dữ liệu điểm tới điểm. RS232 thường
được dùng trong các ứng dụng giao tiếp truyền thông giữa giữa vi điều khiển và máy
tính. Mức điện áp giữa vi điều khiển và
máy tính không thích hợp nhau. Do vậy
bộ đệm Max-232 được sử dụng. Để sử
dụng linh hoạt hơn, trên PIC.TS vi điều
khiển được nối tới Max232 qua cặp
jumper JP_TX và JP_TD. Jumper JP_RX
được sử dụng để nối tới đường Rx tới
RC7, RB2 hoặc RB1. Jumper JP_TX
được sử dụng để nối tới đường Tx tới
Hình 1.15 – Sơ đồ kết nối PS/2 với vi điều khiển
THỰC HÀNH VI ĐIỀU KHIỂN PIC
13
9. DS1820 DIGITAL THERMOMETER
DS1820 là IC cảm biến nhiệt độ dạng số rất tốt cho việc đo nhiệt độ môi trường
với dải nhiệt độ đo rộng -55
O
C đến 125
O
C với độ chính xác +/- 0.5
O
C. Nó phải được
đặt chính xác trong socket 3 chân và đúng chiều với hình vẽ in trên PIC.TS. Nếu
không DS1820 có thể bị hỏng. Chân data của DS1820 có thể nối tới pin RA5 hoặc
RE2 của vi điều khiển PIC bởi jumper JP14.
Hình 1.16 – Sơ đồ kết nối DS18b20 với vi điều khiển
THỰC HÀNH VI ĐIỀU KHIỂN PIC
14
10. A-D CONVERTER INPUT
Board phát triển Kit phát triển Vi điều khiển PIC có 2 biến trở để làm việc với
Analog to Digital converter – ADC. Biến trở P1 thì hoạt động khi Jumper JP 15 được
chọn gắn vào cho tín hiệu analog đến chân RA2 của Microcontroller. Biến trở P2 thì
hoạt động khi jumper JP16 được chọn gắn vào cho tín hiệu analog đến chân RA3 của
microcontroller. Cả 2 đầu ra analog của biến trở trong phạm vi 0V đến 5V.
Hình 1.17 - ADC Converter input
Để đo tín hiệu tương tự các jumper pull-up/down của PORTA cần phải được loại
bỏ. Các chân của PORTA không kết nối tới bất cứ các thành phần thiết bị nào khác.
Ứng dụng chuyển đổi tương tự - số khác nhau, vi điều khiển nhận tín hiệu tương
tự từ chân đầu vào và chuyển nó thành tín hiệu số. Về cơ bản, bạn có thể đo bất kỳ tín
hiệu tương tự nào trong phạm vi 0 ÷ 5V
- Lý thuyết về lập trình C, lập trình C cho PIC trên CCS, HT-PIC…
- Giải mã và hiển thị với led 7 thanh.
III. THỰC HÀNH
1. Nạp chương trình cho PIC bằng phần mềm WinPIC
Trên PIC.TS được thiết kế sẵn một mạch nạp do đó sẽ không cần bất kỳ mạch
nạp nào từ bên ngoài. Mặt khác với mạch nạp sẵn có này bạn không cần phải tháo
chip nhiều lần tránh các phiền phức và hư hỏng vật lý.
Phần mền WinPIC800 đi cùng không cần cài đặt có thể sử dụng ngay rất tiện lợi.
Nhấn dúp vào biểu tượng WinPIC800 trên desktop hoặc file WinPIC800.exe trong
thư mục WinPIC800. Cửa sổ chương trình WinPIC800 hiện lên:
Hình 2.1 – Giao diện WinPIC800
THỰC HÀNH VI ĐIỀU KHIỂN PIC
17
Nhấn vào menu Settings ->Hardware để chọn cấu hình sử dụng WinPIC800 cho
PIC.TS như sau:
Hình 2.2 – Cầu hình cho WinPIC800
Lưu ý:
- Nếu không hiện lên bảng như hình trên thì nhấp chuột vào ô tròn số 1
- Nhấp vào ô tròn số 2 để bật các chức năng chọn cấu hình
Cài đặt cấu hình cho WinPIC800 chính xác như hình sau:
Hình 2.3 – Cấu hình WinPIC800 để sử dụng cho PIC.TS
THỰC HÀNH VI ĐIỀU KHIỂN PIC
18
Nhấn vào nút Apply edits để xác nhận cài đặt.
Kết nối với PIC.TS:
- Chuyển chuyển mạch nguồn sang chế độ nguồn từ kit (lên trên).
- Bật Công tắc nguồn – Đèn Power sáng.
- Nối cable programmer vào cổng LPTx của PC và bo mạch.
Kiểm tra kết nối:
Sau khi kết nối phần cứng, chạy phần mềm WinPIC800. Nhấn vào Icon Detect
7 8
9 10
JP2
1 2
3 4
5 6
7 8
9 10
JP3
1 2
3 4
5 6
7 8
9 10
JP4
1 2
3 4
5 6
7 8
9 10
JP5
VCC VCC VCC VCC
D8 D9 D10 D11 D12 D13 D14 D15
D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 D32
R8 R9 R10 R11 R12 R13 R14 R15
R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31 R32
A0 A1 A2 A3 A4 A5 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1
C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2
A0 A1
A2 A3
- Sửa lại chương trình để có được chu chình led sáng theo ý muốn.
Có thể chạy thử chương trình mẫu: PORT_TEST.C có sẵn ở thư mục .../sample/
PORT_TEST/ để tham khảo hoặc kiểm tra các module có chạy tốt hay không trước
khi viết một chương trình cho riêng mình.
3. Điều khiển led 7 đoạn
Nhiệm vụ: Tìm hiểu led 7 đoạn, PIC16F877A trong điều khiển và giải mã hiển
thị các số. Viết được chương trình giải mã hiển thị các số theo yêu cầu trên led 7
đoạn.
R0 R1 R2 R3 R4 R5
D0 D1 D2 D3 D4 D5
1 2
3 4
5 6
7 8
9 10
JP1
VCC
1 2
3 4
5 6
7 8
9 10
JP2
1 2
3 4
5 6
7 8
9 10
JP3
1 2
R29
R30 R31 R32
A0 A1 A2 A3 A4 A5
B0
B1
B2
B3
B4 B5 B6 B7
C0
C1
C2
C3
C4
C5
C6
C7
D0
D1
D2
D3
D4
D5
D6
D7
E0 E1 E2
A0 A1
A2 A3
A4 A5
B0 B1
B2 B3
A
8
DIGIT1
f
9
g
10
e
1
d
2
A
3
c
4
DP
5
b
6
a
7
A
8
DIGIT2
VCC
F1 F2 F3 F4
1
2
3
JPVCC
VCC
1 2
3 4
5 6
7 8
9 10
JP2
1 2
3 4
5 6
7 8
9 10
JP3
1 2
3 4
5 6
7 8
9 10
JP4
1 2
3 4
5 6
7 8
9 10
JP5
VCC VCC VCC VCC
D10 D11 D12 D13
D30 D31 D32
R10 R11 R12 R13
R14
D0
D1
D2
D3
D4
D5
D6
D7
E0 E1 E2
A0 A1
A2 A3
A4 A5
B0 B1
B2 B3
B4 B5
B6 B7
C0 C1
C2 C3
C4 C5
C6 C7
D0 D1
D2 D3
D4 D5
D6 D7
E0 E1
E2
f
9
g
10
5
b
6
a
7
A
8
DIGIT2
VCC
F1 F2 F3 F4
1
2
3
JPVCC
Hình 2.8 – Sơ đồ nguyên lý PIC.TS03
THỰC HÀNH VI ĐIỀU KHIỂN PIC
22
Nguyên lý hoạt động:
Trong PIC.TS03 sử dụng các led catot chung. Anot của mỗi thanh led của led 7
đoạn được nối đến cổng vi điều khiển PIC thông qua điện trở 100ohm nhằm hạn
dòng. Catot của mỗi led 7 đoạn được nôi xuống đất. Khi cổng đó xuất giá trị là “1” thì
thành led sáng và ngược lại xuất “0” thì tắt. Chữ số bên phải nối với cổng PC, chữ số
bên trái nối với cổng PD. Các thanh a, b, c, d, e, f, g của mỗi chữ số tương ứng nối
với các bit b0, b1, b2, b3, b4, b5, b6 của mỗi cổng.
Các đèn led xanh, đỏ và vàng cũng được nối đến các cổng của vi điều khiển
PIC thông qua trở 100ohm. Khi vi điều khiển xuất giá trị “1” ra cổng đó thì đèn tương
ứng sáng ngược lại nếu xuất giá trị “0” đèn sẽ tắt. Các đèn led và led 7 đoạn được nối
với vi điều khiển PIC theo như bảng sau:
Bảng 1
LED Tên cổng Gi chú
Mở rộng, nếu có thể hãy viết chương trình dùng các phím F để thay đổi thời
gian lưu thông của các luồng.
THỰC HÀNH VI ĐIỀU KHIỂN PIC
24
Bài thực hành số 2
BIẾN ĐỔI ADC, ĐO ĐIỆN ÁP, NHIỆT ĐỘ
HIỂN THỊ TRÊN LED VÀ TRUYỀN THÔNG QUA RS232
I. MỤC ĐÍCH
Làm quen với bộ biến đổi tương tự số ADC có sẵn trên vi điều khiển
PIC16F877A. Tìm hiểu chuẩn 1 dây và truyền thông không đồng bộ UART. Viết
chương trình biến đổi ADC, đo điện áp, giao tiếp vơi cảm biến nhiệt độ DS18B20.
II. CHUẨN BỊ
- Máy tính có cài chương trình WinPIC800, trình dịch CCS, HT-PIC.
- PIC.TS và các module, vi điều khiển PIC16F877A, đồng hồ đo, cáp nguồn, cáp
kết nối.
- Lý thuyết về lập trình C, lập trình C cho PIC trên CCS, HT-PIC…
- Lý thuyết về chuẩn 1 dây, truyền thông không đồng bộ UART.
III. THỰC HÀNH
1. Biến đồi ADC và hiển thị trên led
Nhiệm vụ: Tìm hiểu và sử dụng bộ biến đổi ADC của vi điều khiển
PIC16F877A
1
2
JP_ADC1
1
2
JP_ADC2
VCC
RA2 RA3
1