Bộ thực hành lập trình vi điều khiển AVR
LỜI MỞ ĐẦU
A.
Giới thiệu về công ty
Công ty thiết bị Điện – Tự động hóa (TDP - Electric) là một công ty trực thuộc
tập đoàn Tiến Đại Phát, với đội ngũ nhân viên chuyên viên kỹ thuật có trình độ,
sáng tạo, giàu kinh nghiệm và một mạng lưới nhà cung cấp nổi tiếng trên toàn Thế
giới về mọi lĩnh vực. TDP – Electric cam kết sẽ mang đến cho khách hàng những
sản phẩm và dịch vụ tốt nhất, đáp ứng đầy đủ mọi nhu cầu của khách hàng. Đặc
biệt, TDP – E chuyên tư vấn, sản xuất các thiết bị Giáo dục cho các trường Đại học,
Cao đẳng, Trung cấp nghề.
Sản phẩm của chúng tôi được sử dụng trong trường học nói chung, trong các/
trường dạy nghề, các viện nghiên cứu chuyên môn giáo dục và đào tạo đại học.
Một phương thức sản xuất hiện đại và có phạm vi lớn với sự kết hợp của hệ
thống quản lý chất lượng cao theo tiêu chuẩn ISO 9001 : 2008 đảm bảo chất lượng
phù hợp kéo dài tuổi thọ của các sản phẩm của chúng tôi.
TDP – E đảm bảo rằng sẽ tư vấn giải pháp Công nghệ cho đối tác, tư vấn xây
dựng phòng thí nghiệm một cách hợp lý nhất trong các lĩnh vực: Điện Công
Nghiệp, Kỹ thuật lắp đặt và Điều khiển công nghiệp, Đo lường Điện, Vận hành máy
điện, Kỹ thuật máy lạnh và điều hòa không khí....
B. Giới thiệu về module thực hành
Kỹ thuật vi điều khiển với tốc độ phát triển nhanh đã và đang mang đến những
thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày.
Ngày nay, các thiết bị máy móc ngày càng trở nên thông minh hơn, các công việc
được thực hiện với hiệu quả cao hơn, đó cũng là nhờ một phần vi điều khiển.
Kỹ thuật vi điều khiển là kỹ thuật của tương lai, là chìa khóa đi vào công nghệ
hiện đại. Đối với sinh viên chuyên ngành điện tử, đây là một lĩnh vực hứa hẹn và
mở ra nhiều triển vọng. Để góp phần tạo nền tảng ban đầu cho việc học tập, tìm
hiểu kỹ thuật vi điều khiển, chúng tôi xin cung cấp một mô hình cơ bản để học tập
và thực hành vi điều khiển.
Trong quá trình thực hiện, chúng tôi không thể tránh khỏi những thiếu sót. Rất
mong nhận được sự góp ý, phê bình của bạn đọc.
Chúng tôi xin trân thành cảm ơn!
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
MỤC LỤC
LỜI MỞ ĐẦU....................................................................................................................1
A. Giới thiệu về công ty.................................................................................................1
B.Giới thiệu về module thực hành.................................................................................1
MỤC LỤC..........................................................................................................................2
I. TỔNG QUAN VỀ MÔ HÌNH THÍ NGHIỆM................................................................3
1.1 Mục tiêu thực hiện mô hình.....................................................................................3
1.2 Mô hình có thể thực hiện được những bài thực hành sau:.......................................3
1.4 Chức năng các khối trên mô hình thí nghiệm..........................................................4
1.5 Lưu ý quy trình thực hiện các bài thực hành............................................................5
II. HƯỚNG DẪN SỬ DỤNG PHẦN MỀM......................................................................6
2.1 Phần mềm KeilC......................................................................................................6
Bạn có thể viết code của mình vào giữa hai dấu ngoặc { .......... }.................................8
2.2 Phần mềm nạp Khazama..........................................................................................9
III. CÁC BÀI TẬP THỰC HÀNH VỚI MODUL ỨNG DỤNG......................................9
3.1 Thực hành hiển thị led đơn.......................................................................................9
3.2 Thực hành hiển thị led 7 đoạn................................................................................12
3.3 Thực hành hiển thị LCD 16x2................................................................................14
3.4 Thực hành hiển thị led matrix................................................................................15
3.5 Thực hành nhận biết phím đơn...............................................................................17
3.6 Thực hành nhận biết phím ma trận 4x4..................................................................18
3.7 Thực hành xử lý ngắt ngoài INT............................................................................20
3.8 Thực hành với bộ Timer/Counter...........................................................................22
3.9 Thực hành giao tiếp ADC......................................................................................24
3.10 Thực hành giao tiếp DAC....................................................................................26
3.11 Thực hành điều khiển động cơ một chiều............................................................28
3.12 Thực hành điều khiển động cơ bước....................................................................30
3.13 Thực hành giao tiếp với RAM..............................................................................32
3.14 Thực hành giao tiếp với ROM..............................................................................34
3.15 Thực hành giao tiếp IC thời gian thực DS1307....................................................36
3.16 Thực hành hiển thị GLCD 128x64.......................................................................38
3.17 Thực hành giao tiếp với máy tính qua cổng COM/RS232...................................40
TÀI LIỆU THAM KHẢO................................................................................................42
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
I. TỔNG QUAN VỀ MÔ HÌNH THÍ NGHIỆM
1.1 Mục tiêu thực hiện mô hình
Học xong bài học này học viên có năng lực:
- Phân tích được nguyên lý và khả năng làm việc của modul.
- Khảo sát được hoạt động của các modul.
- Lắp ráp và khảo sát các mạch, mô hình, dây truyền sản xuất thực tế.
- Kiểm tra khắc phục được sự cố trong quá trình khảo sát.
1.2 Mô hình có thể thực hiện được những bài thực hành sau:
- Bài thực hành số 1: Thực hành hiển thị led đơn.
- Bài thực hành số 2: Thực hành hiển thị led 7 đoạn.
- Bài thực hành số 3: Thực hành hiển thị LCD 16x2.
- Bài thực hành số 4: Thực hành hiển thị led matrix.
- Bài thực hành số 5: Thực hành nhận biết phím đơn.
- Bài thực hành số 6: Thực hành nhận biết phím matrix 4x4.
- Bài thực hành số 7: Thực hành xử lý ngắt ngoài INT.
- Bài thực hành số 8: Thực hành với bộ Timer/Counter.
- Bài thực hành số 9: Thực hành giao tiếp ADC.
- Bài thực hành số 10: Thực hành giao tiếp DAC.
- Bài thực hành số 11: Thực hành điều khiển động cơ DC.
- Bài thực hành số 12: Thực hành điều khiển động cơ bước.
- Bài thực hành số 13: Thực hành giao tiếp với RAM.
- Bài thực hành số 14: Thực hành giao tiếp với ROM.
- Bài thực hành số 15: Thực hành giao tiếp với IC thời gian thực DS1307.
- Bài thực hành số 16: Thực hành hiển thị màn hình GLCD 128x64.
- Bài thực hành số 17: Thực hành giao tiếp máy tính qua cổng RS232.
Mô hình thí nghiệm bao gồm các khối sau:
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
Tổng quan về mô hình thực hành vi điều khiển.
1.4 Chức năng các khối trên mô hình thí nghiệm
TT
Tên khối
Chức năng khối
1 LED 7 SEG
- Có 4 Led bảy thanh dùng để hiển thị số và ký tự.
- Cọc nối “Scan” quét cột .
2
LCD 16x2
- Cọc “Data” quét dữ liệu hàng .
- Có 1 LCD dùng để hiển thị ký tự, số hiêu.
- Cọc nối “control LCD ” hiển thị dữ liệu 8 bit hoặc 4bit.
3
4
5
6
7
8
9
10
11
12
13
14
15
LED
SIGNED
LED
MATRIX
PHÍM
MATRIX
RTC DS1307
RAM
NGOÀI
- Có 16 Led đơn dùng để hiển thị, có 2 cổng điều khiển.
- Có cọc nối dữ liệu.
- Có 2 led matrix 8x8 dùng để hiển thị chữ.
- Có cọc nối dữ liệu và điều khiển.
- Bàn phím 4x4 dùng để giao tiếp bàn phím hexa.
- Có cọc nối dữ liệu
- Giao tiếp I2C, đọc thời gian thực.
- Có cọc nối điều khiển
- Thực hiện giao tiếp bộ nhớ Ram ngoài.
PHÍM ĐƠN
ANALOG
- Có cọc nối dữ liệu, địa chỉ và điều khiển.
- Có 8 phím đơn và cọc nối dữ liệu.
- Dùng để đọc và tính toán giá trị điện áp.
DAC0808
- Có cọc kết nối dữ liệu
- Chuyển đổi số sang tương tự.
STEP
MOTOR
- Có cọc kết nối dữ liệu
- Khối tải là động cơ bước.
DC MOTOR
- Có cọc nối điều khiển.
- Khối tải là động cơ DC.
ROM
- Có cọc nối điều khiển.
- Giao tiếp với bộ nhớ ROM ngoài theo chuẩn I2C.
UART
- Có cọc nối để giao tiếp.
- Giao tiếp UART với máy tính, hoặc giữa các VĐK với
nhau.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
- Có cọc nối để giao tiếp.
1.5 Lưu ý quy trình thực hiện các bài thực hành
1.5.1 Quy trình thực hiện
a. Cấp nguồn.
Sử dụng nguồn điện 220V AC/DC qua dây nguồn, nếu nguồn cấp đúng, đèn
LED báo nguồn sẽ sáng, các linh kiện không bị nóng, ngược lại bạn đã cấp không
đúng nguồn; cần ngắt nguồn ngay lập tức và kiểm tra lại nguồn.
b. Cắm IC nạp.
IC cần được cắm đúng chiều chân như trên đế. Nguồn cấp cho có thế được
cấp hoặc không tùy thuộc vào răm cấp nguồn từ mạch nạp.
c. Lắp cable dữ liệu.
- Cắm cáp usb của mạch nạp vào máy tính.
-
Nạp chương trình cho IC Vi Điều Khiển.
d. Vận hành.
Mô đun cho phép bạn sử dụng VĐK để ghép nối và điều khiển nhiều board
mở rộng (Được thiết kế tương thích và có khả năng ghép nối với Mô đun này). Quy
trình vận hành khối :
-
Lắp ghép Board mở rộng vào đúng Slot .
-
Kiểm tra chế độ làm việc thiết lập cho Vi Điều Khiển.
-
Lắp IC vào khay cắm (không cần nếu như sử dụng mạch nạp isp).
- Cấp điện cho Mô đune: Chương trình trong Vi Điều Khiển sẽ tự động
chạy nếu bạn sử dụng Mạch Reset tự động trên board. Nếu không sử dụng mạch
này bạn cần nhấn nút Reset để khởi động Vi Điều Khiển. Trong trường hợp điện
nguồn đã được cấp từ trước. (không khuyến khích cách vận hành này), bạn cần
nhấn nút Reset sau mỗi lần lắp IC (có thể reset ngay trên phân mềm nạp).
1.5.2 Lưu ý
-Ngắt điện khi tháo lắp IC
-Tránh chạm vào chân IC hoặc làm cong, gãy chân IC.
-Thiết bị phải được đặt trên mặt phẳng, vững chắc, tránh những va đập cơ học.
-Nguồn cấp cho thiết bị là nguồn xoay chiều 1 fa 220V.
-Trước khi cấp nguồn, đo kiểm tra nguồn đủ điện áp 220V mới cấp.
-Cần có thói quen kiểm tra an toàn trước khi dùng thiết bị (thử rò điện ở vỏ, xem
dây dẫn phích cắm có đảm bảo cách điện không…)
-Nếu thấy đường dây bị trầy, phích cắm bị hỏng, bọ hở… phải sửa chữa ngay hoặc
thay thế mới.
-Không sử dụng thiết bị nếu phích cắm, dây điện nguồn hoặc chính thiết bị có dấu
hiệu hư hỏng nhìn thấy được hoặc nếu thiết bị đã bị rơi.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
-Không thay thế dây chảy cầu chì bằng dây điện.
-Thao tác xong phải ngắt nguồn vào thiết bị.
Các module thực hành phải được gá đúng chiều, chặt trẽ, thực hành xong phải xếp
lại ngăn lắp vào trong tủ đựng.
-Có kế hoạch vệ sinh, bảo dưỡng cho các thiết bị trong mô hình.
II. HƯỚNG DẪN SỬ DỤNG PHẦN MỀM
Hiện nay, song song với việc sản xuất chíp Vi điều khiển, các hãng lớn trên thế
giới cũng đưa ra thị trường các phần mềm lập trình, biên dịch và mô phỏng chương
trình cho Vi điều khiển.
2.1 Phần mềm KeilC
Khởi động phần mềm MikroC PRO for Pic: Vào Start >> Programs >>
Mikroelektronika >> MikroC PRO for PIC hoặc double click vào shortcut trên màn
hình\Desktop.
- Sau khi khởi động phần mềm, giao diện sẽ xuất hiện như sau:
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
Ban đầu phần mềm sẽ load một ví dụ có sẵn trong thư mục cài đặt, ta có thể tắt
project này bằng cách click vào Tab menu Project >> Close Project.
- Tạo một project mới cho việc lập trình: Vào lại Tab menu Project >> New Project.
Sau khi nhấp chọn để tạo project mới cửa sổ sau sẽ xuất hiện:
Đây là cửa sổ thiết lập các thông số project
+ Ở ô đầu tiên Project Name: các bạn đặt tên cho project của mình (tùy ý), chẳng hạn đặt
tên là " Vi du 1".
+ Ở ô Project Folder: chọn đường dẫn để lưu project, để kiểm soát dữ liệu cho công việc
các bạn nên tạo một folder mới cho mỗi project.
+ Ô Device Name: chọn dòng vi điều khiển, nếu bạn sử dụng ATMEGA 8 để lập trình
thì tìm đúng tên của nó là " ATMEGA 8" trong hộp combo box khi ấn nút xổ xuống.
+ Device clock: chọn tần số hoạt động cho vi điều khiển, tần số này chính là tần số thạch
anh sử dụng cho vi điều khiển.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
Cuối cùng nhấn Next để chuyển qua bước tiếp theo. Khi đó cửa sổ sau xuất hiện:
Trong bước này, các bạn để trong và tiếp tục nhấn Next sẽ đến bước sau:
Trong cửa sổ này, bạn stick vào nút có dòng chữ " Include None (Advaned)" rồi
nhấn nút Next. Trong bước cuối cùng bạn cứ để mặc định và nhấn nút Finish khi đó
cửa sổ lập trình sẽ xuất hiện, sẵn sàng cho bạn viết code.
Bạn có thể viết code của mình vào giữa hai dấu ngoặc { .......... }
Sau đó bạn nhấp vào nút Build hoặc nhấn tổ hợp phím Ctrl + F9 để tạo file hex.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
2.2 Phần mềm nạp Khazama
Sau khi đã có file hex do phần mềm viết code tạo ra ta tiến hành nạp chương trình
vào chip.
Bước 1: kết nối mạch nạp với chíp và máy tính.
Bước 2: mở phần mềm nạp Khazama.
III. CÁC BÀI TẬP THỰC HÀNH VỚI MODUL ỨNG DỤNG
Ghi chú: phần mềm code và file hex được cấp trong đĩa CD đính kèm.
3.1 Thực hành hiển thị led đơn.
a) Sơ đồ nguyên lý
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page
Bộ thực hành lập trình vi điều khiển AVR
D1
5V
1
1
VCC
D2
R1
470
1N4001
GND
1
U1
T0 RB0
T1 RB1
INT2 RB2
RB3
CS RB4
SDO RB5
SDI RB6
SCK RB7
1
2
3
4
5
6
7
8
RX RD0
TX RD1
INT0 RD2
INT1 RD3
PWM2
RD4
PWM_DC RD5
ROLE1 RD6
ROLE2 RD7
14
15
16
17
18
19
20
21
RST
9
MOSI
MISO
SCK
VCC
R2
10K
S1
Y1
1
RESET
C3
RST
104
PD0 (RXD)
PD1 (TXD)
PD2 (INT0)
PD3 (INT1)
PD4 (OC1B)
PD5 (OC1A)
PD6 (ICP)
PD7 (OC2)
12
13
2
11.0592Mhz
C4
22p
GND
PB0 (XCK/T0)
PB1 (T1)
PB2 (AIN0/INT2)
PB3 (AIN1/OC0)
PB4 (SS)
PB5 (MOSI)
PB6 (MISO)
PB7 (SCK)
PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA3 (ADC3)
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
PC0 (SCL)
PC1 (SDA)
PC2 (TCK)
PC3 (TMS)
PC4 (TDO)
PC5 (TDI)
PC6 (TOSC1)
PC7 (TOSC2)
RESET
VCC
AVCC
AREF
XTAL2
XTAL1
GND
GND
40
39
38
37
36
35
34
33
RA0
RA1
RA2
RA3
RA4
RA5
RA6
RA7
22
23
24
25
26
27
28
29
RC0 SCL
RC1 SDA
RC2
RC3
RC4
RC5
RAM_WE
RC6
RAM_OE
RC7
RAM_ALE
VCC
10
30
32
L1
100uH
C1
104
31
11
C2
104
GND
ATmega16-16PC
C5
22p
GND
MOSI
RST
SCK
MISO
P1
1
3
5
7
9
VCC
2
4
6
8
10
RC0
RC1
RC2
RC3
RC4
NAP ISP
RA0
RA1
RA2
RA3
RA4
RB0
RB1
RB2
RB3
RB4
ROLE1
ROLE2
PWM_DC
PWM2
GND
P6
1
2
3
4
5
RA5
RA6
RA7
6
7
8
9
10
PORTA
P11
1
2
3
4
5
RB5
RB6
RB7
6
7
8
9
10
RD0
RD1
RD2
RD3
RD4
RE0
RE1
RE2
PORTB
P14
1
2
3
4
5
6
7
8
9
10
SCK
SDI
SDO
CS
P2
1
2
3
4
5
RC5
RC6
RC7
6
7
8
9
10
PORTC
P7
1
2
3
4
5
1
2
3
4
5
RD5
RD6
RD7
6
7
8
9
10
PORTD
P12
6
7
8
9
10
2
4
6
8
1
2
3
4
5
6
7
8
9
10
VCC
RA0
RA1
RA2
RA3
RA4
RA5
RA6
RA7
I2C
1
2
3
4
5
6
7
8
9
10
VCC
UART
P13
T0
1
2
3
4
5
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
T1
6
7
8
9
10
TIMER
P16
SCK
SDI
SDO
CS
INT0
INT1
INT2
SPI
MOTOR DC
P3
P8
RX
TX
RE0 RAM_WE
RE1 RAM_OE
RE2 RAM_ALE
CONTROL RAM
P15
1
3
5
7
SCL
SDA
1
2
3
4
5
P4
VCC
1
2
3
4
5
6
7
8
9
P9
10K
VCC
1
2
3
4
5
6
7
8
9
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
10K
6
7
8
9
10
P5
1
2
3
4
5
6
7
8
9
RC0
RC1
RC2
RC3
RC4
RC5
RC6
RC7
10K
P10
1
2
3
4
5
6
7
8
9
10K
INTERRUP
MODULE MCU AVR
Sơ đồ nguyên lý mạch CPU 89xx.
LED10
D_LED1
R36
D_LED9
GND
470R
R37
LED12
R38
D_LED5
D_LED4
D_LED3
D_LED2
D_LED1
LED14
D_LED3
D_LED10 R39
470R
GND
470R
R40
GND
470R
D_LED13
D_LED12
D_LED11
D_LED10
D_LED9
D_LED2
D_LED11 R41
470R
LED16
R42
R44
GND
470R
P13
DATA
6
7
8
9
10
6
7
8
9
10
D_LED8
D_LED7
D_LED6
LED18
D_LED5
1
2
3
4
5
1
2
3
4
5
P12
DATA
D_LED12 R43
470R
GND
470R
D_LED16
D_LED15
D_LED14
D_LED4
D_LED13 R45
470R
LED20
D_LED6
R46
470R
GND
D_LED14 R47
470R
GND
D_LED15 R49
470R
GND
D_LED16 R51
470R
LED22
D_LED7
R48
470R
LED24
D_LED8
R50
470R
LED11
VCC
470R
LED13
VCC
LED15
VCC
LED17
VCC
LED19
VCC
LED21
VCC
LED23
VCC
LED25
VCC
MODULE LED SINGLE
Sơ đồ nguyên lý Mô đune LED đơn.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 10
Bộ thực hành lập trình vi điều khiển AVR
b) Nguyên lý hoạt động
Mạch gồm 16 led đơn, các led nối chung đường nguồn. Vi điều khiển
thực hiện xuất dữ liệu vào các chân led điều khiển led sáng dần tắt dần.
c) Sơ đồ kết nối bài tập trên mô hình
Sơ đồ kết nối hiển thị led đơn.
d) Trình tự thao tác
Bước 1: Kết nối PORTA và PORTB với modul led đơn.
Bước 2: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-led don/led don.hex)
e) Kết quả khảo sát
Hai hàng led nhấp nháy thay phiên nhau.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình điều khiển led sáng dần, tắt dần từ hai đầu vào.
Bài tập 2: Viết chương trình tạo các hiệu ứng nháy led.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 11
Bộ thực hành lập trình vi điều khiển AVR
3.2 Thực hành hiển thị led 7 đoạn.
a) Sơ đồ nguyên lý
Q1
A1015
LED2 R22 100
LED1
LED2
LED3
LED4
L1
P7
1
2
3
4
5
Q2
A1015
3
LED3 R23 100
1
Q3
A1015
3
2
3
2
LED1 R21 100
LED4 R24 100
L2
Q4
A1015
3
2
1
EN 3
1
VCC LED
2
2
1
1
VCC
L3
L4
DATA
STR
CLK
6
7
8
9
10
CONTROL
U6
VDD
CLK
STR
11
12
10
13
VCC LED
GND
DATA
14
8
GND
SFTCLK QA
LCHCLK QB
QC
RST
QD
OE
QE
QF
QG
QH
SDI
SDO
VCC LED
16
15
1
2
3
4
5
6
7
9
LED9
P8
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
A
B
C
D
E
F
G
DOT
R25
R26
R27
R28
R29
R30
R31
R32
100
100
100
100
100
100
100
100
L1
L2
L3
L4
SWITCH
GND
74HC595
1
2
3
4
5
a
b
c
d
e
f
g
dot
Led 1
Led 2
Led 3
Led 4
LED4
LED3
LED2
LED1
LED7
P6
A
B
C
D
E
11
7
4
2
1
10
5
3
6
8
9
12
6
7
8
9
10
F
G
DOT
DATA
MODULE LED 7 SEGMENT
Sơ đồ nguyên lý Module hiển thị Led 7 thanh.
b) Nguyên lý hoạt động
Mạch gồm 4 led 7 đoạn, các led nối chung đường dữ liệu. Vi điều khiển thực
hiện xuất dữ liệu vào các chân dữ liệu của led, và quét cấp nguồn cho từng led
thông qua transistor thuận.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 12
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối hiển thị led 7 thanh.
d) Trình tự thao tác
Bước 1: Nối DATAvào PORTB.
Bước 2: Nối phần CONTROL vào PORTB.
Bước 3: Gạt switch cấp nguồn cho led.
Bước 4: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-led 7/led7.hex)
e) Kết quả khảo sát
Trên led 7 sẽ hiển thị các số 0000-9999.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình hiển thị giá trị điện áp lên led 7.
Bài tập 2: Viết chương trình hiển thị thời gian thực lên led 7.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 13
Bộ thực hành lập trình vi điều khiển AVR
3.3 Thực hành hiển thị LCD 16x2.
a) Sơ đồ nguyên lý
1
VCC
LCD1
VLCD
2
TIEN DAI PHAT
LCD 16 x 2
C5
104
A
15
D7
D6 14
D5 13
12
D4 11
D3 10
D2
D1 9
D0 78
EN
RW 56
RS 4
VEE 3
GND 1
K
16
VLCD
1
GND
P4
VLCD
VCC
2
LCD_D0
LCD_D1
LCD_D2
LCD_D3
LCD_D4
1
2
3
4
5
6
7
8
9
10
LCD_D5
LCD_D6
LCD_D7
DATA LCD
R20
47R/1W
P5
LCD_RS
LCD_RW
LCD_EN
2
LCD_D7
LCD_D6
LCD_D5
LCD_D4
LCD_D3
LCD_D2
LCD_D1
LCD_D0
3
LCD_EN
LCD_RW
LCD_RS
VR2
10K
VLCD
EN 2
1
2
3
4
5
6
7
8
9
10
CONTROL LCD
MODULE LCD 16 X 2
Sơ đồ nguyên lý Modul LCD.
b) Nguyên lý hoạt động
Vi điều khiển thực hiện ghi lệnh và dữ liệu vào LCD để hiển thị thông tin.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 14
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối hiển thị LCD 16x2.
d) Trình tự thao tác
Bước 1: Kết nối CONTROL vào PORTA.
Bước 2: Kết nối DATA vào PORTB.
Bước 3: Gạt switch cấp nguồn LCD.
Bước 4: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-lcd16x2 /lcd 16x2.hex)
e) Kết quả khảo sát
Trên LCD hiển thị thông tin cần ghi ra.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình đọc thời gian thực hiển thị LCD.
Bài tập 2: Viết chương trình đọc giá trị ADC hiển thị LCD.
3.4 Thực hành hiển thị led matrix.
a) Sơ đồ nguyên lý
VCC MT
CC1
CC2
CC3
CC4
CC5
P2
1
2
3
4
5
6
7
8
9
10
CC6
CC7
CC8
CC1
R1
VCC MT
Q1
A1015
1K
CC2
R2
1K
H1
SCAN
VCC MT
Q2
A1015
CC3
R3
Q3
A1015
1K
H2
VCC MT
CC4
R4
Q4
A1015
1K
H3
VCC MT
CC5
R5
1K
H4
VCC MT
Q5
A1015
CC6
R6
Q6
A1015
1K
H5
VCC MT
R7
CC7
1K
H6
Q7
A1015
VCC MT
CC8
R8
Q8
A1015
1K
H7
H8
P1
6
7
8
9
10
1
2
3
4
5
CLK
STR
DATA
VCC MT VCC MT VCC MT VCC MT
DATA
VCC
C1
104
D1
1N4007
GND
C2
104
GND
C3
104
GND
C4
104
U1
VCC MT
U3
VDD
CLK
STR
11
12
10
VCC MT
13
GND
DATA
14
8
GND
SFTCLK QA
LCHCLK QB
QC
RST
QD
QE
OE
QF
QG
QH
SDI
SDO
VCC MT
GND
10
13
DATA1 14
8
GND
U4
VDD
CLK
STR
11
12
10
VCC MT
13
GND
9
14
8
MC74HC595
GND
VDD
11
12
C1
C2
C3
C4
C5
C6
C7
C8
GND
U7
CLK
STR
VCC MT
16
15
1
2
3
4
5
6
7
SFTCLK QA
LCHCLK QB
QC
RST
QD
QE
OE
QF
QG
QH
SDI
SDO
VCC MT
16
15
1
2
3
4
5
6
7
C17
C18
C19
C20
C21
C22
C23
C24
SFTCLK QA
LCHCLK QB
QC
RST
QD
QE
OE
QF
QG
QH
SDI
SDO
11
12
10
VCC MT
13
GND
9
14
8
GND
15
1
2
3
4
5
6
7
C9
C10
C11
C12
C13
C14
C15
C16
H1
H2
H3
H4
H5
H6
H7
H8
9
14
8
12
1
7
2
5
R1
R2
R3
R4
R5
R6
R7
R8
C1
C2
C3
C4
C5
C6
C7
C8
13
3
4
10
6
11
15
16
C1
C2
C3
C4
C5
C6
C7
C8
H1
H2
H3
H4
H5
H6
H7
H8
9
14
8
12
1
7
2
5
R1
R2
R3
R4
R5
R6
R7
R8
C1
C2
C3
C4
C5
C6
C7
C8
13
3
4
10
6
11
15
16
C9
C10
C11
C12
C13
C14
C15
C16
13
3
4
10
6
11
15
16
C25
C26
C27
C28
C29
C30
C31
C32
9 DATA1
MC74HC595
VDD
CLK
STR
VCC MT
16
MT8X8 R-ACHUNG
MT8X8 R-ACHUNG
U5
U6
GND
U8
GND
MC74HC595
U2
GND
SFTCLK QA
LCHCLK QB
QC
RST
QD
QE
OE
QF
QG
QH
SDI
SDO
VCC MT
16
15
1
2
3
4
5
6
7
C25
C26
C27
C28
C29
C30
C31
C32
H1
H2
H3
H4
H5
H6
H7
H8
9
14
8
12
1
7
2
5
R1
R2
R3
R4
R5
R6
R7
R8
C1
C2
C3
C4
C5
C6
C7
C8
13
3
4
10
6
11
15
16
C17
C18
C19
C20
C21
C22
C23
C24
H1
H2
H3
H4
H5
H6
H7
H8
9
14
8
12
1
7
2
5
R1
R2
R3
R4
R5
R6
R7
R8
C1
C2
C3
C4
C5
C6
C7
C8
9
GND
MC74HC595
MT8X8 R-ACHUNG
MT8X8 R-ACHUNG
MODULE LED MATRIX
Sơ đồ nguyên lý Led ma trận 8x8.
b) Nguyên lý hoạt động
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 15
Bộ thực hành lập trình vi điều khiển AVR
Vi điều khiển xuất dữ liệu vào hàng và quét cấp nguồn cho các cột của led.
c) Sơ đồ kết nối bài tập trên mô hình
Sơ đồ kết nối hiển thị led ma trận 8x8.
d) Trình tự thao tác
Bước 1: Kết nối COTROL với PORTC.
Bước 2: Kết nối DATA với PORTB.
Bước 3: Gạt switch cấp nguồn.
Bước 4: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-ledmatrix-vali /led matrix.hex)
e) Kết quả khảo sát
Trên led matrix chạy chữ từ A-Z.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình chạy một dòng chữ bất kỳ.
Bài tập 2: Viết chương trình cài đặt chữ hiện thị thông qua máy tính.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 16
Bộ thực hành lập trình vi điều khiển AVR
3.5 Thực hành nhận biết phím đơn.
a) Sơ đồ nguyên lý
GND
GND
GND
SW1
R4
470R
CLK
RST
4
GND
1
11
LED1
Q
2
D1
D2 9
SW2
D SET
Q
470R
Q
SW5
R9
10K
R11
470R
CLK
RST
4
GND
1
11
LED5
Q
2
D5
D6 9
SW6
4013
U3B
Q
13 SW6
R7
10K
R12
470R
SW4
LED6
Q
D4 9
11
CLK
12 D6
4013
U2B
D SET
Q
13 SW4
470R
RST
4013
LED4
Q
12 D4
4013
GND
GND
GND
GND
GND
GND
R10
CLK
GND
GND
GND
3
D SET
Q
1
SW7
R14
10K
R15
470R
CLK
4
RST
11
LED7
Q
2 D7
D8 9
SW8
GND
U4B
D SET
Q
4013
13 SW8
R16
470R
CLK
RST
10
D7 5
U4A
8
VCC
6
VCC
GND
2 D3
GND
D SET
RST
GND
LED3
Q
GND
10
Q
SW3 R6
470R
VCC
8
6
U3A
D SET
1
GND
GND
10
SW5
SW7
RST
GND
4013
VCC
3
Q
CLK
GND
GND
R13
10K
SW3
U2A
D SET
GND
VCC
D5 5
D3 5
3
LED2
12 D2
GND
GND
R8
10K
R3
10K
R5
CLK
RST
GND
4013
13 SW2
6
Q
4
SW1
D SET
U1B
8
3
VCC
R2
10K
8
D1 5
U1A
10
R1
10K
VCC
6
VCC
LED8
Q
12 D8
P1
1
2
3
4
5
6
7
8
9
10
SW6
SW7
SW8
BUTTON
4013
GND
GND
SW1
SW2
SW3
SW4
SW5
GND
GND
MODULE BUTTON
Sơ đồ nguyên lý Mô đune phím đơn.
b) Nguyên lý hoạt động
Vi điều khiển quét nhận biết phím bấm và hiển thị trên led đơn.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 17
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối nhận biết phím đơn.
d) Trình tự thao tác
Bước 1: Kết nối BUTTON với PORTB.
Bước 2: Kết nối led đơn với PORTA.
Bước 3: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-phim don-vali/phim+led don.hex)
e) Kết quả khảo sát
Khi bấm các phím sẽ có 1 led sáng.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình tạo hiệu ứng nháy led theo từng phím bấm.
Bài tập 2: Viết chương trình cài đặt dùng phím bấm.
3.6 Thực hành nhận biết phím ma trận 4x4.
a) Sơ đồ nguyên lý
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 18
Bộ thực hành lập trình vi điều khiển AVR
SW1
1
SW2
2
1
SW3
SW4
3
2
4
3
VCC
/
A
P3
SW5
SW6
SW7
4
5
6
A
SW8
*
B
B
SW9
SW10
SW11
SW12
7
8
9
-
SW13
SW14
SW15
SW16
ON/C
0
=
+
P1
1
2
3
4
5
6
7
8
9
1
2
3
4
A
B
C
D
10K x 8
GND
C
C
1
2
3
4
A
P2
1
2
3
4
5
6
7
8
9
10
B
C
D
D
MODULE KEY MATRIX
Sơ đồ nguyên lý phím ma trận 4x4.
b) Nguyên lý hoạt động
Vi điều khiển thực hiện quét các phím và nhận biết phím nào đã được bấm.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 19
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối nhận biết phím ma trận 4x4.
d) Trình tự thao tác
Bước 1: Kết nối CONTROL LCD vào PORTA.
Bước 2: Kết nối DATA LCD vào PORTB.
Bước 3: Kết nối KEYBOARD vào PORTC.
Bước 4: Gạt switch cấp nguồn.
Bước 6: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-key matrix 4x4-vali/key matrix.hex)
e) Kết quả khảo sát
Khi bấm các phím, trên màn hình LCD sẽ hiện lên: “phím vừa bấm: 0-F”, led
đơn hiển thị theo phím bấm.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình tạo hiệu ứng nháy led theo từng phím bấm.
Bài tập 2: Viết chương trình tính toán cộng, trừ, nhân, chia.
3.7 Thực hành xử lý ngắt ngoài INT.
a) Sơ đồ nguyên lý
VCC I2C
D1
VCC
R1
470R
VCC I2C
1N4007
VCC I2C
D2
5mm
INT1
R2
1K
VCC I2C
R3
1
330R
U2
2
Q1
C1815
3
4
SENSOR
GND
P3
GND
GND
1
2
3
4
5
INT1
INT2
VCC I2C
R8
470R
6
7
8
9
10
Header 5X2A
VCC I2C
D4
5mm
INT2
R9
1K
VCC I2C
R10
1
330R
U4
2
3
Q2
C1815
4
SENSOR
GND
GND
GND
MODULE SENSOR
Sơ đồ nguyên lý modul sensor.
b) Nguyên lý hoạt động
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 20
Bộ thực hành lập trình vi điều khiển AVR
Thực hiện nhận biết sự tác động vào cảm biến thông qua chân ngắt của vi
điều khiển.
c) Sơ đồ kết nối bài tập trên mô hình
Sơ đồ kết nối sensor.
d) Trình tự thao tác
Bước 1: Kết nối SENSOR với INTERRUP.
Bước 2: Kết nối CONTROL LCD với PORT2.
Bước 3: Kết nối DATA LCD với PORT1.
Bước 4: Gạt switch cấp nguồn .
Bước 5: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-int-8051 /sw-INT.hex)
e) Kết quả khảo sát
Khi tác động vào cảm biến, trên màn LCD sẽ hiển thị biến đếm số lần tác
động.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình đọc phím bấm sử dụng ngắt.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 21
Bộ thực hành lập trình vi điều khiển AVR
Bài tập 2: Viết chương trình đo tần số sử dụng ngắt.
3.8 Thực hành với bộ Timer/Counter.
a) Sơ đồ nguyên lý
VCC
VR1
P2
R19
THR
TRIG
NE555N
6
2
OUT
3
PULSE
R18
330
6
7
8
9
10
PULSE
PULSE
D1
C1
104
P3
1
2
3
4
5
1
3
5
2
4
6
100
DISC
VCC
GND
VCC
CVOLT
7
U5
1
5
R17
4
8
200k
1k
SELECT
GND
C2
1uF
GND
C3
0.1uF
GND
GND
C4
10uF
GND
MODULE FREQUENCY
Sơ đồ nguyên lý modul Frequency.
b) Nguyên lý hoạt động
Thực hiện đo tần số của bộ phát tần số tạo ra sử dụng bộ Timer của vi điều
khiển. Tần số đo được hiển thị lên LCD.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 22
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối Frequency.
d) Trình tự thao tác
Bước 1: Kết nối FREQUENCY với TIMER.
Bước 2: Kết nối DATA LCD với PORT1.
Bước 3: Kết nối CONTROL LCD với PORT2.
Bước 4: Gạt switch cấp nguồn.
Bước 5: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: dotanso+lcd/dotanso+lcd.hex)
e) Kết quả khảo sát
Tần số đo được hiển thị lên màn LCD.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình tạo thời gian trễ dùng Timer.
Bài tập 2: Viết chương tạo xung tần số 100Hz.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 23
Bộ thực hành lập trình vi điều khiển AVR
3.9 Thực hành giao tiếp ADC.
a) Sơ đồ nguyên lý
VCC ADC
D2
VCC
VCC ADC
1N4007
ADC_D0
ADC_D1
ADC_D2
ADC_D3
ADC_D4
ADC_RD
ADC_WR
ADC_INT
P2
1
2
3
4
5
6
7
8
9
10
DATA ADC
P3
1
2
3
4
5
6
7
8
9
10
20
ADC_D5
ADC_D6
ADC_D7
ADC_INT
5
ADC_D0
ADC_D1
ADC_D2
ADC_D3
ADC_D4
ADC_D5
ADC_D6
ADC_D7
18
17
16
15
14
13
12
11
C2
104
U1
VCC
CS
RD
WR
INTR
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
CLK IN
CLKOUT
REF/2
IN+
IN AGND
DGND
1
2
3
ADC_RD
ADC_WR
4
19
9
6
7
C3
R28 10K
IN_ADC
VCC ADC 150p
VR2
20k
8
10
GND
ADC0804
GND
VCC ADC
IN_ADC
VR1
20k
ADC1
VCC ADC
8
CONTROL ADC
GND
P5
6
7
8
9
10
OUT ADC
VCC ADC U3 GND
1
+VS
VO
GND
2
P4
2 ADC2
1
2
3
4
Header 2X2
3
1
U2A
LM358
1
4
1
2
3
4
5
3
ADC1
ADC2
LM35DZ
GND
GND
MODULE ADC
Sơ đồ nguyên lý Mô đun ADC.
b) Nguyên lý hoạt động
Dùng biến trở để thay đổi giá trị điện áp từ 0-5v. ADC0804 sẽ chuyển giá trị
điện áp thành giá trị số từ 0-255, vi điều khiển đọc giá trị này và hiển thị lên LCD.
c) Sơ đồ kết nối bài tập trên mô hình
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 24
Bộ thực hành lập trình vi điều khiển AVR
Sơ đồ kết nối giao tiếp ADC.
d) Trình tự thao tác
Bước 1: Kết nối CONTROL LCD với PORT2.
Bước 2: Kết nối DATA LCD với PORT1.
Bước 3: Kết nối DATA ADC với PORT0, CONTROL ADC với PORT3.
Bước 4: Gạt switch cấp nguồn
Bước 5: Kết nối mạch nạp và nạp chương trình cho chíp.
(File hex ở folder: sw-adc-8051/adc 8051.hex)
Bước 6: Chỉnh biến trở để thay đổi giá trị ADC.
e) Kết quả khảo sát
Trên LCD hiển thị giá trị ADC đọc được.
Bài tập cho sinh viên:
Bài tập 1: Viết chương trình hiển thị giá trị điện áp lên led 7 và led đơn.
Bài tập 2: Viết chương trình đọc giá trị ADC và suất ra DAC.
Công ty cổ phần Thiết bị điện – Tự động hóa TDP – E
Page 25