Là họ vi điều khiển 8 bit của Atmel.Tất cả các vi điều khiển AVR sử dụng chung tập lệnh và cấu trúc CPU kiểu Hardward.Có 32 thanh ghi đa dụng 8 bit.Hầu hết các lệnh thực hiện trong 1 clock.Được thiết kế làm việc hiệu quả với các chương trình C.
Trang 1HƯỚNG DẪN THỰC HÀNH TRÊN KIT
VI ĐIỀU KHIỂN AVR
Phạm Thế Duy ptduy@yahoo.com
Trang 2GIỚI THIÊÊU VỀ VI ĐIỀU
KHIỂN AVR
Trang 3AVR Microcontroller
• Là họ vi điều khiển 8 bit của Atmel.
• Tất cả các vi điều khiển AVR sử dụng chung tập lệnh và cấu trúc CPU kiểu Hardward.
• Có 32 thanh ghi đa dụng 8 bit.
• Hầu hết các lệnh thực hiện trong 1 clock.
• Được thiết kế làm việc hiệu quả với các chương trình C.
Trang 4LÀM VIỆC HIỆU QUẢ VỚI
NGÔN NGỮ C
• Xem đoạn mã lệnh C sau:
int max(int *array)
Trang 5KẾT QUẢ THỬ NGHIỆM CỦA
Trang 7• AVR nhỏ nhất là ATTiny11 với 1KB flash ROM, 0
byte RAM và 6 I/O.
Trang 8• Họ FPGA với lõi AVR.
• AVR hỗ trợ giao tiếp USB:AT43USB355 …
• AVR hỗ trợ truyền vô tuyến:AT86RF401 …
• AVR hỗ trợ BUS mạng công nghiệp CAN.
Trang 9AVR Microcontroller
Trang 10CẤU TRÚC AT90S8535
• Giới thiệu chung về vi điều khiển.
• Vi điều khiển AVR.
• Vi điều khiển AVR AT90S8535.
Trang 12ADC UART
SPI
AT90S8535
AVR AT90S8535
Trang 13AVR AT90S8535
ADC
• 8 kênh ngõ vào multiplex
• Các chế độ biến đổi 8 hoặc 10 bit
• Độ chính xác ± LSB
• Thời gian biến đổi 65 - 260µsec
• Có hai chế độ biến đổi Free run và single
• Có ngắt báo kết thúc quá trình biến đổi
• Có chế độ ngủ chống nhiễu
Trang 14AVR AT90S8535
UART
Trang 17• Chức năng PWM 10, 9 or 8-Bit
Trang 19Timer0 Timer1
• Chỉnh Time-Out 47ms - 6s.
• Reset bằng lệnh “WDR”.
AVR AT90S8535
Trang 20Timer0 Timer1
• Tự động xoá cờ ngắt
• Tự động cấm các chương trình ngắt bên trong.
Trang 21Timer0 Timer1
ADC UART
SPI D
8 Bit RISC MCU
Trang 22• Điều khiển điện trở Pull-Up
• Điều khiển 3 trạng thái cho
từng ngõ vào ra.
• Mỗi cổng có 03 thanh ghi:
AVR AT90S8535
Trang 23CÁC VẤN ĐỀ CHÍNH TRONG CÁC
BÀI THỰC HÀNH
• Cổng giao tiếp song song.
• Cổng giao tiếp nối tiếp.
• BôÊ định thời.
• ADC.
• Ngắt.
Trang 24CÁC BƯỚC THỰC HIÊÊN BÀI
THỰC HÀNH
• Thiết kế phần cứng trên Protues.
• Viết chương trình trên CodeVision AVR.
• Chạy thử hêÊ thống trên Protues.
• Hỏi đáp trên lớp.
• NôÊp chương trình protues đã chạy trên phòng thực hành.
• Chạy thử nghiêÊm trên KIT của phòng thực hành.
• Viết báo cáo thực hành
• Thi trắc nghiêÊm thực hành.
Trang 25MẠCH ĐIÊÊN PHẦN CỨNG KIT AVR
• Mạch vi điều khiển.
• Mạch lâÊp trình cho vi điều khiển.
• Mạch nguồn cung cấp.
• Mạch công tắc đơn.
• Mạch phím nhấn và công tắc đơn.
• Mạch hiển thị LED 7 đoạn.
• Mạch hiển thị LCD.
• Mạch biến trở cấp tín hiêÊu tương tự.
• Mạch tạo tín hiêÊu tương tự.
• Mạch đo nhiêÊt đôÊ.
Trang 26MẠCH VI ĐIỀU KHIỂN
A5
C1 A2
C2
D5
B1
A3 A0
D4
C2 miso A2
J6
1 2 3 4 5 6 7 8
D5
J2
1 2 3 4 5 6 7 8
mos i
C7 C0
B2 A7
D2
VCC
D3
VR1 Res is tor Va r
A0
B1
C5
A6 A4
11 13
12
32 31 30
40 39 38 37 36 35 34 33
1 2 3 4 5 6 7 8 22 23 24 25 26 27 28 29 14 15 16 17 18 19 20
VCC RESET GND XTAL1 XTAL2 AREF AGND AVCC
PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7)
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PD0 (RXD) PD1 (TXD) PD2 PD3 PD4 PD5 PD6
C3
J5
1 2 3 4 5 6 7 8
C0
s ck
C6 B0
D0
U4 TL431
D6
A1
C6
B4 B0
VCC_12
B3
C5 A6
J7
1 2 3 4 5 6 7
B2
mosi
A5 A4
R5 330K
Trang 27KẾT NỐI LẬP TRÌNH VI ĐIỀU KHIỂN QUA CỔNG MÁY IN
RST
R6 100K
U8
2 4 6 8
1
18 16 14 12 11
13 15 17
9 7 5 3 19
A1 A2 A3 A4
1OE
Y1 Y2 Y3 Y4 A5
A6 A7 A8
Y5 Y6 Y7 Y8 2OE
P6 P1
P7 P2 P3
J1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Trang 28MẠCH NẠP QUA USB
Trang 29MẠCH NẠP AVR QUA CỔNG USB
Trang 30MẠCH NGUỒN CUNG CẤP
D2
DIODE J22
J21
CONGTAC
1 2 3
D3 Power On
220uF
C11 104 R38 3R0
Trang 31L1
RL6 RL4
RL9
Trang 32MẠCH CÔNG TẮC ĐƠN
S5
SW1
R1 R
SW1
S3
Trang 33RESISTOR SIP 9
3 4 5 6 7 8 9
S2
KR4
J10
1 2 3 4 5
SW_18
S7 S2
SW_13
KR4
KR1 S5
Trang 34MẠCH HIỂN THỊ LED 7 ĐOẠN
CA2
Le 2 Lc1
Q3 PNP BCE
CA f g
R37
R R33
CA f g
R34
R
Ldp2 Lc2
Lb2
R46
R
J31 CON4A
1 3
2 4
J20 CON8
Ld1 Lf1
R
Trang 35Lc3
C
Lb1 C
Led7A-4
LED7A1
e d
CAc
dp
b a CA f g Led7A-3
LED7A1
e d
CAc
dp
b a CA f g
B
F
Ldp3 Lf3
D
DP
La 1
Q3 C1815
CAc
dp
b a CA f g
CA3
Q5 C1815
L7A2
D C
CAc
dp
b a CA f g
CA1
Ld4 Lb2
Trang 36MẠCH HIỂN THỊ LCD
DB4
J16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
DB1
RS
J17
1 2 3 4 5 6 7 8
J35
CON3
1 2 3
RD/WR
VCC VCC
DB7
DB3 DB5
DB0
DB2 DB6
A Ba ckLight
DB3 E
R16 LCD POT
RS VEE
DB0
Trang 37V5 VR4
VR7 VR5
V7
VCC
V6 V2
V4
Trang 381 2
Trang 39MẠCH ĐO NHIỆT ĐỘ
R13
R J11
1 2 3
R10
R
VCC
J9 CON4A
Q1 PNP BCE
Trang 40MẠCH GIAO TIẾP CÔNG
2
D9 DIODE
J12
CON3
1 2 3
18 17 16 15 14 13 12 11
COM
IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8
OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8
J13
CON9
1 2 3 4 5 6 7 8 9
J15
CON8
1 2 3 4 5 6 7 8
VCC-12
VCC-12
Trang 41MẠCH GIAO TIẾP NỐI TIẾP
C4 0.1uF
2 6
12
9
11 10
13 8 14 7
C1+
C2+
R1IN R2IN T1OUT T2OUT
RxD VCC
D1
U3
75176
1 2
7 6 3
4
R RE B A DE D
R3 470
J4
485Port
1 2 3 4 5 6
U5
75176
1 2
7 6 3
4
R RE B A DE D
RxD
VCC
VCC
R2 120 R1
470
Trang 42GIỚI THIÊÊU VỀ CodeVision
AVR
Đọc file: LaptrinhC.doc
Trang 43CÁC BÀI THỰC HÀNH
• Bài 1: Điều khiển công tắc đơn và LED đơn.
• Bài 2: Điều khiển hiển thị trên LED 7 đoạn.
• Bài 3: Điều khiển bàn phím ma trâÊn hiển thị lên LED
07 đoạn.
• Bài 4: Điều khiển hiển thị chữ trên LCD.
• Bài 5: Đọc ADC hiển thị lên LCD.
• Bài 6: Đo nhiêÊt đôÊ bằng Analog Compare hiển thị trên LED 7 đoạn.
• Bài 7: Tạo xung bằng DAC.
• Bài 8: Giao tiếp nối tiếp hai KIT vi điều khiển.
• Bài 9: Thực hiêÊn đồng hồ điêÊn tử trên KIT vi điều
khiển.
Trang 44BÀI SỐ 1: ĐIỀU KHIỂN CÔNG
TẮC ĐƠN VÀ LED ĐƠN
1 Mục đích: Sử dụng cổng vào ra song song
điều khiển các thiết bị vào ra cơ bản.
2 Yêu cầu thực hiêÊn:
1 Thực hiêÊn chương trình điều khiển các LED đơn
chớp tắt
2 Thực hiêÊn chương trình kiểm tra 8 công tắc đơn
Tương ứng với 1 công tắc ở mức 1, 8 LED sẽ sáng theo môÊt kiểu định trước:
Trang 45BÀI SỐ 1: ĐIỀU KHIỂN CÔNG
TẮC ĐƠN VÀ LED ĐƠN
• Công tắc 1: 1 LED sáng đuổi qua lại.
• Công tắc 2: 8 LED sáng dần sau đó tắt dần.
• Công tắc 3: 8 LED sáng từ hai bên vào sau đó tắt từ hai bên vào.
• Công tắc 4: 1 LED sáng chạy từ trái qua phải sau đó dừng lại sáng ở LED bên phải cho đến khi 8 LED
cùng sáng.
• Công tắc 5: 8 LED chớp tắt.
• Công tắc 6: các LED sáng tắt xen kẽ và ngược lại.
• Công tắc 7: 4 LED sáng 4 LED tắt và ngược lại.
Trang 46BÀI SỐ 1: ĐIỀU KHIỂN CÔNG TẮC ĐƠN
VÀ LED ĐƠN
• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối môÊt cổng tới LED đơn: PORTA
– Kết nối môÊt cổng tới công tắc đơn: PORTB
• Hướng dẫn lâÊp trình:
– Cổng kết nối tới LED phải được khởi đôÊng là OUT bằng cách gán thanh ghi định hướng DDRx=FFh (DDRA=FFh)
– Cổng kết nối tới công tắc phải được khởi đôÊng là IN bằng cách gán thanh ghi định hướng DDRx=00h (DDRB=00h)
– NhâÊp dữ liêÊu từ PORTB sau đó chọn kểu sáng tương ứng bằng cấu trúc lâÊp trình “Switch case”
Trang 47C1 A2
C2
D5
B1
A3 A0
D4
C2 miso A2
J6
1 2 3 4 5 6 7 8
C3
D4
C7 C3 33pF
D1 D2 D5
J2
1 2 3 4 5 6 7 8
mosi
C7 C0
B2 A7
D2
VCC
D3 VR1
D1
sck
A7
A3 rst
40 39 38 37 36 35 34 33
1 2 3 4 5 6 7 8 22 23 24 25 26 27 28 29 14 15 16 17 18
VCC RESET
PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7)
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PD0 (RXD) PD1 (TXD) PD2 PD3 PD4
C3
J5
1 2 3 4 5 6 7 8
C0 sck
C6 B0
D0 U4
TL431
miso C2 33pF
A1
C6
B4 B0
VCC_12
B3
C5 A6
J7
1 2 3 4 5
B2 mosi
A5 A4 R5 330K
DA8
L5
RL5
L8 L8 L6
DA1
L7
L5 L4
DA3
L1
RL6 RL4
RL9
S5
SW1
R1 R
SW1
SW
CON8
1 3 5 7
SW1
S3
BUS 8
BUS 8 MẠCH KẾT NỐI PHẦN CỨNG
Trang 48PB0/T0/XCK 1
PB1/T1 2 PB2/AIN0/INT2 3
PB3/AIN1/OC0 4
PB4/SS 5 PB5/MOSI 6
PB6/MISO 7
PB7/SCK 8
RESET 9
Trang 49BÀI SỐ 2: HIỂN THỊ TRÊN LED 7 ĐOẠN
1 Mục đích: Sử dụng cổng vào ra song song
hiển thị các số trên LED 7 đoạn.
2 Yêu cầu thực hiêÊn:
1 Thực hiêÊn chương trình hiển thị các số từ 1 đến 4
lên 4 LED 7 đoạn
2 Thực hiêÊn chương trình hiển thị các số từ 0 đến 9
chạy tuần tự từ phải qua trái
Trang 50• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối môÊt cổng tới ngõ vào dữ liêÊu của các LED: PORTC– Kết nối môÊt cổng tới ngõ vào chọn LED: PORTD
• Hướng dẫn lâÊp trình:
– Các cổng đều khởi đôÊng OUT
– Muốn đèn LED nào sáng cấp dữ liêÊu số tương ứng sau đó cấp bit chọn bằng 1 Như vâÊy tại môÊt thời điểm chỉ có môÊt LED sáng Nhưng nếu chương trình thực hiêÊn nhanh sẽ thấy tất cả các LED đều sáng
– Để số này không lem sang LED kế bên cần xoá toàn bôÊ các LED trước khi hiển thị số kế tiếp
– Giải thuâÊt sẽ là: cấp dữ liêÊu – chọn LED sáng – tắt tất cả các LED – cấp dữ liêÊu khác – chọn LED kế tiếp
– Để các LED chạy cần có biến cung cấp dữ liêÊu cho các LED
BÀI SỐ 2: HIỂN THỊ TRÊN LED 7 ĐOẠN
Trang 51File mô phỏng tại D:\Baigiangvixuly\slidetiengviet\led7doan
Trang 52Lc3
C
Lb1 C
Led7A-4
LED7A1
e d
CAc
dp
b a CA f g Led7A-3
LED7A1
e d
CAc
dp
b a CA f g
B
F
Ldp3 Lf3
D
Q3 C1815
CAc
dp
b a CA f g
CA3
Q5 C1815
L7A2
D C
Lg4 B
CAc
dp
b a CA f g
CA2 Ldp2
CA1
Ld4 Lb2
Trang 53PB0/T0/XCK 1
PB1/T1 2 PB2/AIN0/INT2 3
PB3/AIN1/OC0 4
PB4/SS 5 PB5/MOSI 6
PB6/MISO 7
PB7/SCK 8
RESET 9
Trang 54BÀI SỐ 3: ĐIỀU KHIỂN ĐỌC BÀN PHÍM MA
TRÂÂN HIỂN THỊ MÃ PHÍM TRÊN LED 7 ĐOẠN
1 Mục đích: Thực hiêÊn giải thuâÊt quét bàn phím
ma trâÊn.
2 Yêu cầu thực hiêÊn:
1 Thực hiêÊn chương trình đọc mã bàn phím hiển thị
lên 1 LED 7 đoạn
2 Thực hiêÊn chương trình đọc mã bàn phím ma trâÊn
hiêÊn thị lên 4 LED 7 đoạn, khi môÊt phím mới được nhấn, mã phím cũ sẽ chuyển qua LED bên trái môÊt vị trí, để mã phím mới hiêÊn lên trên LED bên phải
Trang 55• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối bôÊ hiển thị LED 7 đoạn tới các cổng AVR như trong bài 2: PORTC và PORTD
– Kết nối môÊt cổng tới bàn phím ma trâÊn: PORTA
• Hướng dẫn lâÊp trình:
– Các cổng PORTC và PORTD khởi đôÊng OUT như bài 2
– Cổng A khởi đôÊng các bit cao OUT để cấp dữ liêÊu quét hàng, các bít thấp IN để nhâÊn dữ liêÊu từ côÊt
– Để nhâÊn được phím nhấn lần lượt cấp mức 0 ra các hàng,
và đọc dữ liêÊu từ các côÊt vào Gọi vị trí bit 0 ở mã hàng là
x, vị trí bit 0 ở mã côÊt là y thì mã phím nhấn sẽ tính bằng:
BÀI SỐ 3: ĐIỀU KHIỂN ĐỌC BÀN PHÍM MA
TRÂÂN HIỂN THỊ MÃ PHÍM TRÊN LED 7 ĐOẠN
Trang 56Nguyên tắc quét bàn phím ma trâÊn
0 1 1 1
Trang 58BÀI SỐ 3: ĐIỀU KHIỂN ĐỌC BÀN PHÍM MA
TRÂÂN HIỂN THỊ MÃ PHÍM TRÊN LED 7 ĐOẠN
• Để các số hiển thị đẩy từ trái qua phải cần khai báo 4 biến chứa mã hiển thị Khi có môÊt số mới nhâÊp từ bàn phím giá trị mã hiển thị sẽ được chuyển đi môÊt vị trí, và mã mới nhâÊp sẽ được ghi vào biến bên phải, mã hiển thị bên trái sẽ bị mất.
Trang 59MẠCH KẾT NỐI PHẦN CỨNG
KEY-A
KC3
KEY-5 KEY-0
PORT A
Trang 60A B C D E F G D S S S S
A B C D E F G DP SL1 SL2 SL3 SL4 PB0/T0/XCK
1 PB1/T1 2 PB2/AIN0/INT2 3
PB3/AIN1/OC0 4
PB4/SS 5 PB5/MOSI 6
PB6/MISO 7
PB7/SCK 8
RESET 9
Trang 61BÀI SỐ 4: ĐIỀU KHIỂN HIỂN THỊ TRÊN
LCD
1 Mục đích: Tìm hiểu về màn hình LCD và cách
điều khiển hiển thị các ký tụ trên màn hình LCD.
2 Yêu cầu thực hiêÊn:
1 Hiển thị hai dòng chữ trên màn hình LCD
2 Hiển thị dòng chữ trôi trên màn hình LCD
Trang 62• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối màn hình LCD tới các cổng AVR: PORTC nối tới cổng dữ liêÊu (DB0 – DB7), PORTD cấp các tín hiêÊu E, RS, R/W#.
• Hướng dẫn lâÊp trình:
– Muốn hiển thị ký tự trên màn hình LCD trước hết phải khởi đôÊng nó bằng cách ghi giá trị 38H tới thanh ghi điều khiển của nó Chọn thanh ghi điều khiển bằng cách cấp RS=0, ghi bằng cách cấp R/W = 0 và cho
E lến mức 1 sau đó kéo xuống mức 0.
– Trước khi ghi dữ liêÊu tới hiển thị lên LCD cần kiểm tra trạng thái sẵn sàng của nó bằng cách đọc thanh ghi trạng thái (RS=0, R/W=1 và E = L-H-L) Nếu bit cao nhất của thanh ghi trạng thái bằng 1 thì LCD đã sẵn sàng nhâÊn dữ liêÊu Xem bit cao nhất của từ trạng thái, nếu = 1 thì LCD sẵn sàng.
– Để hiển thị ký tự trên LCD cần ghi mã ASCII của ký tự cần hiển thị tới
nó (RS=1, R/W=0, E = L-H-L, DB7-0=ASCII).
BÀI SỐ 4: ĐIỀU KHIỂN HIỂN THỊ KÝ TỰ TRÊN
MÀN HÌNH LCD.
Trang 63Các mã lêÊnh lâÊp trình cho LCD
Trang 64MẠCH KẾT NỐI PHẦN CỨNG
DB4
J16
LCD INTERFACE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
J35
CON3
1 2 3
RD/WR
VCC VCC
DB7
DB3 DB5
A Ba ckLight
DB3 E
R16
LCD POT
RS VEE
DB0
PORTC
PORTD
Trang 65PA0/ADC0 40
PA1/ADC1 39
PA2/ADC2 38
PA3/ADC3 37
PA4/ADC4 36
PA5/ADC5 35
PA6/ADC6 34
PB0/XCK/T0 1
PB1/T1 2 PB2/INT2/AIN0 3
PB3/OC0/AIN1 4
PB4/SS 5 PB5/MOSI 6
PB6/MISO 7
PB7/SCK 8
PA7/ADC7 33
RESET 9 XTAL1 13 XTAL2 12
Trang 66BÀI SỐ 5: ĐIỀU KHIỂN ĐỌC ĐIÊÊN ÁP DC
BẰNG ADC VÀ HIỂN THỊ LÊN LCD
1 Mục đích: Tìm hiểu bôÊ biến đổi tương tự sang
số (ADC – Analogue to Digital Converter) tích hợp trong AVR
2 Yêu cầu thực hiêÊn:
1 Đọc môÊt ngõ vào PORTA.0 và hiển thị giá trị HEXA
trên màn hình LCD
2 Đọc 8 kênh vào ADC và hiển thị giá trị điêÊn áp thực
trên màn hình LCD
Trang 67• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối màn hình LCD tới các cổng AVR: PORTD nối tới cổng dữ liêÊu (DB0 – DB7), PORTC cấp các tín hiêÊu E, RS, R/W# (Như trong bài số 4).
– Kết nối PORTA tới các biến trở để cung cấp điêÊn áp DC tới các ngõ vào ADC
• Hướng dẫn lâÊp trình:
– Tạo Project mới trong CodeVisionAVR dùng CodeWizard cho phép ADC ở chế đôÊ 8 bit, CodeWizard sẽ tự tạo ra chương trình con đọc ADC và trả về giá trị trong thanh ghi ADCH.
– Giá trị số trong thanh ghi ADCH sẽ tương ứng với giá trị điêÊn áp tương
tự ở ngõ vào PORTA của AVR.
– Cần phải biến đổi dữ liêÊu HEX trong ADCH thành số ASCII để hiển thị lên LCD.
BÀI SỐ 5: ĐIỀU KHIỂN ADC ĐỌC ĐIÊÂN ÁP DC
HIỂN THỊ TRÊN MÀN HÌNH LCD.
Trang 68VCC
V8 V6
V2
V4
PORTA KẾT NỐI MẠCH PHẦN CỨNG
Trang 69PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3
PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8
RESET 9
XTAL2
12 XTAL113
PD0/RXD 14PD1/TXD 15PD2/INT0 16PD3/INT1 17PD4/OC1B 18PD5/OC1A 19PD6/ICP1 20PD7/OC2 21
PC0/SCL 22PC1/SDA 23PC2/TCK 24PC3/TMS 25PC4/TDO 26PC5/TDI 27PC6/TOSC1 28PC7/TOSC2 29
AREF 32AVCC 30
Trang 70BÀI SỐ 6: ĐO NHIÊÂT ĐÔÂ VÀ HIỂN THỊ TRÊN LED 7 ĐOẠN DÙNG MẠCH SO SÁNH TƯƠNG
TỰ TÍCH HỢP TRONG AVR
1 Mục đích:
1 Tìm hiểu về ứng dụng của mạch so sánh tương tự
2 Tìm hiểu về IC cảm biến nhiêÊt đôÊ LM335
2 Yêu cầu thực hiêÊn:
1 Đọc thời gian nạp tụ điêÊn hiển thị trên LED 7 đoạn
2 Đổi thời gian nạp tụ thành giá trị điêÊn áp hiển thị
trên LED 7 đoạn
3 Đổi điêÊn áp trên tụ thành giá trị nhiêÊt đôÊ hiển thị
trên LED 7 đoạn
Trang 71• Hướng dẫn thực hiêÊn phần cứng:
– Kết nối bôÊ hiển thị LED 7 đoạn tới AVR giống như trong bài số 2.
– Cắm các Jumper để kết nối các mạch đo nhiêÊt đôÊ và mạch nạp tụ tới bôÊ so sánh tương tự PINB2 và PINB3 như hình phần cứng.
• Hướng dẫn lâÊp trình:
– Trước hết khởi đôÊng PORTB.3 là ngõ ra và cấp mức 0 tới ngõ ra này tạo trễ môÊt khoảng thời gian để tụ điêÊn xả hết.
– Cho phép mạch so sánh tương tự (Analogue Compare), khi đó PORTB.3 trở thành ngõ vào của mạch Op-Amp bên trong AVR (có tổng trở vào rất lớn), nên tụ điêÊn sẽ được nạp qua transistor.
– Tại thời điểm tụ bắt đầu nạp cho phép Timer hoạt đôÊng, khi điêÊn áp trên tụ bằng với điêÊn áp của mạch LM335 ngõ ra Analogue compare sẽ lên mức 1 Với giá trị bôÊ đếm Timer sẽ biết được thời gian nạp tụ.
– Tuỳ theo giá trị linh kiêÊn trong mạch nạp tụ sẽ tính được điêÊn áp trên tụ.
BÀI SỐ 6: ĐO NHIÊÂT ĐÔÂ VÀ HIỂN THỊ TRÊN LED 7
ĐOẠN DÙNG MẠCH SO SÁNH TƯƠNG TỰ CỦA AVR
Trang 72KẾT NỐI MẠCH PHẦN CỨNG
R13
R J11
LM335
1 2 3
R10
R
VCC
J9 CON4A
Q1 PNP BCE
VCC
R11
R B2
Trang 73PB0/T0/XCK 1
PB1/T1 2 PB2/AIN0/INT2 3
PB3/AIN1/OC0 4
PB4/SS 5 PB5/MOSI 6
PB6/MISO 7
PB7/SCK 8
RESET 9