1

MÔN HC
#ng d&ng Vi (i)u khi,n
(Microcontroller Applications)
By Trn V#n Hùng
Mechatronics Dept
http://www.ntu.edu.vn/
Email: tvh42th@gmail.com
Tài li.u tham kh/o
1. Microprofessors and microcpmputers hardware and softwware, Ronaid J.Tocci, Frank J.Ambrosio,
Prentice Hall, 2003
2. Interfacing Sensors To The Pc, Willis J.Tompkin, Jonh G.webster, Prentice Hall, 1998
3. Vi x% lý, V#n Th( Minh, NXB Giáo D+c.
4. H. vi 0i1u khi2n 8051, T4ng V#n On.
5. K5 thu8t Vi 0i1u khi2n AVR, T4ng V#n On.
2
N2i dung ch45ng trình
n Ch01: Các h9 0(m và mã hoá
n Ch02: H9 th4ng vi x% lý
n Ch03: B: nh;
n Ch04: H. vi 0i1u khi2n AVR
n Ch05: Ngôn ng> l8p trình CodevisionAVR
n Ch06: Input/Output
Các bài toán
1. Thi(t k( m?ch 0i1u khi2n ánh sáng theo ch&<ng trình 0@nh tr&;c
2. Thi(t k( m?ch trang trí bBng 0èn LED
3. Thi(t k( m?ch nh8n d?ng 0i2mph+c v+ (thêm ít nht 2IC)
4. Thi(t k( m?ch 0o l&Cng m&a
5. Thi(t k( m?ch 0i1u khi2n nhi9t 0: không khí
6. Thi(t k( m?ch 0i1u khi2n nhi9t 0: dung d@ch
7. Thi(t k( m?ch 0Dng hD 0i9n t%
8. Thi(t k( m?ch tính thEi gian cho các môn 0i1n kinh
9. Thi(t k( bGng quang báo
10. Thi(t k( m?ch khoá 0i9n t%
11. Thi(t k( m?ch 0i1u khi2n thi(t b@ bBng remote
12. K(t n4i bàn phím máy tính v;i VXL, hi2n th@ ký tH lên LCD
13. Thi(t k( m?ch 0i1u khi2n Robot ch?y theo qIy 0?o (sd motor b&;c)
14. Thi(t k( m?ch 0i1u khi2n t4c 0: 0:ng c< DC
15. Thi(t k( m?ch 0i1u khi2n góc quay cJa môt<, Kn t4c cho motor.
1
Ch&<ng 1: Các h9 0(m và mã hoá
n Các h9 0(m dùng trong máy tính
n Các phép toán s4 h.c 04i v;i h9 hai
n Mã ASCII
1.1 Các h9 0(m dùng trong máy tính
1.1.1 H9 m&Ei và h9 hai
n Con ng&Ei thì quen dùng h9 c< s4 m&Ei (h9 m&Ei)
1234,56 = 1.10
3
+ 2.10
2
+ 3.10
1
+ 4.10
0
+ 5.10
-1
+ 6.10
-2
n Máy tính thì chL làm vi9c v;i h9 c< s4 hai (h9 hai)
1011,01 = 1.2
3
+ 0.2
2
+ 1.2
1
+ 1.2
0
+ 0.2
-1
+ 1.2
-2
n Nibble gDm 4 bit
n Byte gDm 8 bit
n Word gDm 16 bit
0 3
7 0
15 0
MSB LSB
2
1.1.1 Chuy2n 0Ki gi>a h9 m&Ei và h9 hai
n NKi h9 hai sang h9 m&Ei
1011,01
2
= 1.2
3
+ 0.2
2
+ 1.2
1
+ 1.2
0
+ 0.2
-1
+ 1.2
-2
= 11,25
10
n NKi h9 m&Ei sang h9 hai
46
10
= 101110
2
Hình 1. M:t cách 0Ki h9 m&Ei sang h9 hai
0
1
46 2
23 2
11 2
5 2
2 2
1 2
0
1
1
0
1
1.1.1 Chuy2n 0Ki gi>a h9 m&Ei và h9 hai (ti$p)
n NKi s4 th8p phân h9 m&Ei sang h9 hai
0,125
10
= 0,001
2
n S4 BCD (s4 h9 m&Ei mã hoá bBng h9 hai)
S4 BCD thích hCp cho các thi( b@ 0o có hi2n th@ s4 O 0u ra.
1234
10
= 0001 0002 0003 0004
BCD
n H9 m&Ei sáu
1234
10
= 0100 1101 0010
2
= 4D2
16
0,125 x 2 =
0,250 x 2 =
0,500 x 2 =
,250
,500
,000
0
0
1
3
1.2 Các phép toán s4 h.c 04i v;i h9 hai
1.2.1 Phép c:ng
a
n
a
(n-1)
... a
2
a
1
a
0
+ b
m
b
(m-1)
... b
2
b
1
b
0
= c
k
c
(k-1)
... c
2
c
1
c
0
(h9 c< s4 x)
c
i =
(a
i
+ b
i
+ (a
i-1
+ b
i-1
)%x )/x
Ví d+ c:ng h9 hai
1.2.2 Phép trP và s4 bù hai
a. Phép trP
a
n
a
(n-1)
... a
2
a
1
a
0
- b
m
b
(m-1)
... b
2
b
1
b
0
= c
k
c
(k-1)
... c
2
c
1
c
0
(h9 c< s4 x)
c
i =
(a
i
– B
i-1
) – b
i
(n(u (a
i
– B
i-1
) >= b
i
và B
i
= 0)
c
i =
(a
i
– B
i-1
+ x) – b
i
(n(u (a
i
– B
i-1
) < b
i
và B
i
= 1)
Ví d+ trP h9 hai
1101 1001
0001 1011
1111 0100
+
1101 1001
0001 1011
1011 1110
-
1.2.2 Phép trP và s4 bù hai (ti$p)
b. S4 bù hai
Ta có th2 thay phép trP bBng phép c:ng: c:ng s4 b@ trP v;i 04i s4 cJa s4 trP.
N2 tìm s4 bù hai cJa m:t s4 A ta làm theo các b&;c sau:
+ Bi2u diQn s4 A s4 h9 hai cJa nó.
+ Tìm s4 bù m:t (bù logic) cJa s4 0ó (&'o bít).
+ C:ng m:t vào s4 bù m:t O trên 02 nh8n 0&Cc s4 bù hai cJa A.
1.2.3 Phép nhân
Ví d+ nhân 2 s4 h9 hai có 0: dài 4 bít
BGng 1. Quy tSc phép nhân
a.b b a
1
0
0
0
1 1
0 1
1 0
0 0
1 0 1 1
0 0 0 0
1 1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
4
1.2.2 Phép chia
b. Chia trHc ti(p
Ví d+: 35/5 = 7
b. Chia gián ti(p
LTy s4 b@ chia trP 0i s4 chia, k(t quG sU là s4 b@ chia cJa phép toán
ti(p theo, lVp l?i 0(n khi s4 b@ chia nhW h<n s4 chia hoVc bBng 0.
0
1 0 1
1
0
1
1
1
1 0 1
1 1 1
1
0
0
0
0
0
1
0
0
1
1 1
0
1 0 1
1
0 1
0 0
1
Ch&<ng 2: H9 th4ng vi x% lý
n Xu và nh&Cc 0i2m h9 nhúng
n Vi x% lý, vi 0i1u khi2n
n Các h. vi 0i1u khi2n
n NgSt và x% lý ngSt
2.1 T?i sao l?i s% d+ng h9 nhúng?
2.1.1 Xu 0i2m
n KhG n#ng thích nghi cao
n Tính linh 0:ng
n KhG n#ng thay 0Ki dQ dàng
n KhG n#ng tái s% d+ng tài nguyên (th& vi9n,…)
n Giá thành rY
n . . .
2.1.2 Nh&Cc 0i2m
n T4c 0: phGn Zng ch8m
n N: Kn 0@nh thTp
n Không x% lý 0&Cc gía tr@ liên t+c
n . . .
2
2.2 Vi 0i1u khi2n, vi x% lý
CPU
General-
Purpose
Micro-
processor
RAM ROM
I/O
PORT
Timer,
Wdg,
ADC,
DAC,

USB,
UARST,
I
2
C,…
!"! $%&
'(()*&& $%&
TERMINOLOGY
n Microcontroller vs. Microprocessor vs. Microcomputer
n A microprocessor is a central processing unit on a
single chip.
n A microprocessor combined with support circuitry ,
peripheral I/O components and memory (RAM & ROM)
used to be called a “microcomputer.”
n A microprocessor where all the components mentioned
above are combined on the same single chip that the
microprocessor is on, is called a microcontroller.
3
2.3 Ki(n trúc vi 0i1u khi2n
n N<n v@ s% lý s4 h.c (ALU)
n B: nh;
n Input
n Output
n N<n v@ 0i1u khi2n
2.3.1 N<n v@ x% lý s4 h.c (ALU)
n ThHc hi9n phép toán và phép logic trên d> li9u
n D> li9u có th2 lTy trên b: nh; hoVc I/O
n K(t quG có th2 0&Cc 0&a ra ngoài hoVc vào b: nh;
(k(t quG 0&Cc l&u l?i)
General
Purpose
Registrers
ALU
4
2.3.2 B: nh;
n L&u tr> l9nh hay d> li9u
n Có th2 02 l&u tr> d> li9u t?m thEi
n Có th2 ghi/0.c 0&Cc bOi b: 0i1u khi2n
Program Flash
(4K x 16)
Program Memory
$000
$FFF
32 Gen. Purpose
Working Resisters
64 I/O Resisters
Internal SRAM
(512 x 8)
$025F
$005F
$0060
$001F
$0020
$0000
Data Memory
EEPROM
(512 x 8)
Data Memory
$000
$1FF
2.3.3 Input
n Thi(t b@ cho phép thông tin và d> li9u vào bên trong
b: vi 0i1u khi2n
n Ví d+: ADC, I
2
C, UART, …
2.3.4 Output
n Thi(t b@ chuy2n 0Ki thông tin và d> li9u tP b: nh; ra
thi(t b@ ngo?i vi.
n Thi(t b@ ngo?i vi: LED, LCD, máy in, …
5
2.3.5 N<n v@ 0i1u khi2n
n Cung cTp xung nh@p và 0i1u khi2n tín hi9u
n Tìm n?p l9nh và d> li9u
n Chuy2n d> li9u t;i/tP I/O
n GiGi mã l9nh
n ThHc hi9n phép tính s4 h.c/logic
n Náp Zng tín hi9u ngoài (Reset/NgSt)
2.3.6 M:t s4 h. vi 0i1u khi2n
n Vi 0i1u khi2n 8051
n 8051, 89Cxx, 89Sxx, 89Dxx,…
n Vi 0i1u khi2n AVR
n AVR 8 bít, AVR 16 bít,…
n Vi 0i1u khi2n PIC
n PIC 8 bít, PIC 16 bít,…
n Vi 0i1u khi2n MCUs cJa Philips
n P8xCxx,…
n …
6
2.3.6 Các h. vi 0i1u khi2n (ti$p – so sánh)
n T4c 0: x% lý (clock, clock cycle execution)
n KhG n#ng tích hCp (ADC, DAC, UART, I
2
C,…)
n DGi 0i9n áp ho?t 0:ng (Operating Voltages)
n Công suTt 0u ra (DC current per I/O pin)
n KhG n#ng ch4ng nhiQu (Noise Reduction)
n T8p l9nh (Instruction)
n Công suTt IC (Power consumption)
n . . .
2.4 NgSt và x% lý ngSt (Interrupt)
2.4.1 Khái ni9m
n NgSt là sH dPng thHc hi9n ch&<ng trình chính (CTC) 02
thHc hi9n ch&<ng trình con ph+ v+ ngSt(ctc)
n: IRQ
i
n + 1:
m: IRQ
j
m + 1:
Main Prog
ISR
i
ISR
j
iret
iret
7
2.4.2 CTu trúc ngSt
n XuTt hi9n không 0&Cc báo tr&;c
n Ph+c v+ gn gi4ng ch&<ng trình con
n Tích hCp nhi1u lo?i ngSt
n Có &u tiên ngSt
2.4.3 X% lý ngSt
n XuTt hi9n và cho phép ngSt
n Hoàn thành l9nh hi9n t?i
n L&u tr> 0@a chL l9nh ti(p theo vào ng#n x(p
n N?p 0@a chL ISR vào PC
n ThHc hi9n ISR
n K(t thúc ISR là l9nh RETI
n Khôi ph+c 0@a chL l9nh ti(p theo trong ng#n x(p,
ch&<ng trình ti(p t+c thHc hi9n
8
2.4.4 Phân lo?i ngSt
n NgSt m1m (software interrupt)
Là vi9c g.i 1 ctc (Subroutine) 0&Cc xây dHng riêng mà ctc
này còn có th2 0&Cc g.i bOi thi(t b@ ngo?i vi
n NgSt cZng (hardware interrupt)
Do port phát tín hi9u 0(n CPU
n NgSt trong (internal interrupt)
Trong m:t s4 CPU 02 b[y/x% lý các sH ki9n trong khi thHc
hi9n
n Ngo?i l9 (exceptions)
Là vTn 01 hay 0i1u ki9n 02 CPU dPng công vi9c 0ang thHc
hi9n, tìm 0@a chL và thHc hi9n 1 ctc, 0&Cc thi(t k( 02 x% lý sH
ki9n này.
1
Ch&<ng Ch&<ng 3: B 3: B: : nh nh; ;
n n B B: : nh nh; ; b bá án d n d[ [n n
n n Gi GiG Gi mã 0 i mã 0@ @a ch a chL L cho b cho b: : nh nh; ;
n n Ph Ph4 4i gh i ghé ép b p b: : nh nh; ;
n n M MO O r r: :ng b ng b: : nh nh; ;
3.1 B 3.1 B2 2 nh nh6 6 b bá án d n d7 7n n
n n C Cá ác nh c nhó óm t m tí ín hi n hi9 9u u
n n ROM ( ROM (read only memory read only memory) )
n n RAM ( RAM (random access memory random access memory) )
ROM
Read
Only
Memory
RAM
Radom
Access
Memory
PROM
EPROM
EEPROM
Programmable ROM
Erasable PROM
Electrically EPROM
SRAM
Static RAM
DRAM
Dynamic RAM
CACHE
L
1
, L
2
, L
3
Memory
2
3.1.1 C 3.1.1 Cá ác nh c nhó óm t m tí ín hi n hi. .u u
A
0
A
1
A
2
A
n
.
.
.
D
0
D
1
D
2
D
m
.
.
.
CS
WE
OE
RD
WR
Select IC
Address
Data
Hình 3. S< 0D kh4i cJa b: nh;
a. Nh a. Nhó óm t m tí ín hi n hi. .u ( u (9 9a ch a ch; ;
n n C Có ó t tá ác d c d+ +ng ch ng ch. .n ra m n ra m: :t ô nh t ô nh; ; c c+ + th th2 2
n n S S4 4 0& 0&E Eng 0 ng 0@ @a ch a chL L s sU U quy quy( (t 0 t 0@ @nh c nh có ó t t4 4i 0a bao nhiêu ô i 0a bao nhiêu ô
nh nh; ;. V . Ví í d d+ + c có ó m 0& m 0&E Eng 0 ng 0@ @a ch a chL L v v8 8y th y thì ì t t4 4i 0a i 0a 2 2
m m
ô nh ô nh; ;. .
b. Nh b. Nhó óm t m tí ín hi n hi. .u d u d= = li li. .u u
n n Th& Th&E Eng l ng là à 0 0 u ra c u ra cJ Ja ROM v a ROM và à l là à v và ào/ra o/ra 0 04 4i v i v; ;i RAM i RAM
n n C Cá ác m c m? ?ch nh ch nh; ; th& th&E Eng c ng có ó 0 0 u v u và ào/ra l o/ra là à 3 tr 3 tr? ?ng th ng thá ái. i.
n n S S4 4 0& 0&E Eng dây d ng dây d> > li li9 9u quy u quy( (t 0 t 0@ @nh 0 nh 0: : d dà ài t i tP P nh nh; ; c cJ Ja a
m m\ \i ô nh i ô nh; ;. .
3
c. Nh c. Nhó óm t m tí ín hi n hi. .u ch u ch? ?n vi m n vi m@ @ch ch
n n Ch Ch. .n vi m n vi m? ?ch s ch sU U trao 0 trao 0K Ki d i d> > li li9 9u. u.
n n C Cá ác t c tí ín hi n hi9 9u n u nà ày th& y th&E Eng 0& ng 0&C Cc n c n4 4i v i v; ;i 0 i 0 u ra c u ra cJ Ja b a b: :
gi giG Gi mã 0 i mã 0@ @a ch a chL L. .
n n Vi m Vi m? ?ch không 0& ch không 0&C Cc ch c ch. .n th n thì ì bus d bus d> > li li9 9u c u cJ Ja n a nó ó b b@ @
treo ( treo (O O tr tr? ?ng th ng thá ái tr i trO O kh khá áng cao). ng cao).
d. Nh d. Nhó óm t m tí ín hi n hi. .u (i u (i) )u khi u khi, ,n n
n n Cho ph Cho phé ép d p d> > li li9 9u ra bus. u ra bus.
n n Bus d Bus d> > li li9 9u b u b@ @ treo n treo n( (u không c u không có ó t tí ín hi n hi9 9u 0i u 0i1 1u khi u khi2 2n. n.
n n M M? ?ch th& ch th&E Eng ch ng chL L c có ó m m: :t t t tí ín hi n hi9 9u 0i u 0i1 1u khi u khi2 2n 0 n 0. .c/ghi. c/ghi.
3.1.2 ROM 3.1.2 ROM
n n B B: : nh nh; ; c có ó n n: :i dung 0ã ghi s i dung 0ã ghi s] ]n ch n chL L 0 02 2 0 0. .c ra c ra
n n Ch ChL L n n? ?p v p và ào m o m: :t l t l n duy nh n duy nhT Tt t
n n Không b Không b@ @ m mT Tt thông tin khi m t thông tin khi mT Tt 0i t 0i9 9n n
A
0
A
1
A
2
A
n
.
.
.
D
0
D
1
D
2
D
m
.
.
.
CS
WE
OE
RD
WR
Select IC
Address
Data
Hình 3. B: nh; ROM
4
3.1.3 ROM c 3.1.3 ROM có ó th th, , l lA Ap tr p trì ình (4 nh (4B Bc c
a. PROM ( a. PROM (Programmable ROM Programmable ROM) )
n n Th ThE Ei gian truy c i gian truy c8 8p nhanh 120 p nhanh 120- -250ns 250ns
n n Ch ChL L n n? ?p m p m: :t l t l n duy nh n duy nhT Tt b t bB Bng c ng cá ác 0 c 04 4t ch t chá áy c y cá ác c c c u ch u chì ì
n n Ni Ni9 9n n á áp khi l p khi l8 8p tr p trì ình kho nh khoG Gng 10 ng 10- -13V 13V
A0
D0
Address
decoder
Address
Bus
A1
A2
VCC
D2 D1
b. EPROM ( b. EPROM (erasable PROM erasable PROM) )
n n Th ThE Ei gian truy c i gian truy c8 8p kho p khoG Gng 120 ng 120 – – 450 450 ns ns
n n Ni Ni9 9n n á áp l p l8 8p tr p trì ình kho nh khoG Gng 10 ng 10- -25V 25V
n n N Nó ó c có ó th th2 2 0& 0&C Cc xo c xoá á to toà àn b n b: : b bB Bng tia c ng tia cH Hc t c tí ím. m.
n n Th ThE Ei gian l i gian l8 8p tr p trì ình cho m nh cho m: :t ô nh t ô nh; ; lâu (kho lâu (khoG Gng 50ms) ng 50ms)
5
c. EEPROM ( c. EEPROM (electrically EPROM electrically EPROM) )
n n Xo Xoá á t tP Png 0<n v ng 0<n v@ @ nh nh; ; b bB Bng 0i ng 0i9 9n, không c n, không c n tia c n tia cH Hc t c tí ím. m.
n n Th ThE Ei gian l i gian l8 8p tr p trì ình cho m nh cho m: :t ô nh t ô nh; ; kho khoG Gng 5ms. ng 5ms.
d. Flash memory d. Flash memory
n ThEi gian truy c8p nhanh (khoGng 120ns).
n ThEi gian ghi nhanh 10µs
n Xóa tPng kh4i nh;
6
3.1.4 RAM 3.1.4 RAM
n B@ mTt d> li9u khi mTt 0i9n.
n ThEi gian truy c8p nhanh (có lo?i 15ns).
Register 62 Register 62
Register 63 Register 63
. .
. .
. .
Register 2 Register 2
Register 1 Register 1
Register 0 Register 0
Decoder
6 line to 64 line
A
d
d
r
e
s
s

i
n
p
u
t
R/W
Input buffers
Output buffers
CS
Hình 3. CTu t?o bên trong cJa 64 x 4 RAM
3.1.4 RAM ( 3.1.4 RAM (ti ti$ $p p) )
n SRAM (static RAM)
n Ch( t?o 0<n giGn
n DQ dàng bGo trì
n Th&Eng 0&Cc s% d+ng trong h9 th4ng có b: nh; nhW
n DRAM(dynamic RAM)
n Giá thành thTp
n Nòi hWi m?ch ph+ trC
n PhGi làm t&<i (refresh) th&Eng xuyên
n Th&Eng 0&Cc s% d+ng trong h9 th4ng có b: nh; l;n
7
3.2 Gi 3.2 Gi/ /i mã ( i mã (9 9a ch a ch; ; cho b cho b2 2 nh nh6 6
n n Phân 0 Phân 0@ @nh không gian t nh không gian tK Kng th ng th2 2 th thà ành c nh cá ác v c vù ùng nh ng nh; ; kh khá ác nhau c nhau
n n N NG Gm b m bG Go t o tí ính 0<n tr nh 0<n tr@ @ c cJ Ja xung ch a xung ch. .n n
n n Khi thi Khi thi( (t k t k( ( th& th&E Eng c ng có ó d dH H phòng ( phòng (spare spare) ) 0 02 2 c có ó th th2 2 m mO O r r: :ng ng
m mà à không ph không phG Gi thi i thi( (t k t k( ( l l? ?i m i m? ?ch. ch.
M?ch giGi
mã 0@a chL
Tín hi9u 0@a chL
Tín hi9u 0i1u khi2n
Các tín hi9u chon chip
Hình 3. M?ch giGi mã 0@a chL
3.2.1 Gi 3.2.1 Gi/ /i mã b i mã bC Cng c ng cá ác m c m@ @ch NAND ch NAND
n n M M? ?ch gi ch giG Gi mã 0 i mã 0@ @a ch a chL L 0<n gi 0<n giG Gn v n v; ;i 0 i 0 u ra h u ra h? ?n ch n ch( (
Memory
A
0
– A
10
D
0
- D
7
A
11
– A
19
IO/M
CE OE
RD
Hình 3. M?ch giGi mã 0<n giGn dùng NAND
8
3.2.2 Gi 3.2.2 Gi/ /i mã b i mã bC Cng c ng cá ác m c m@ @ch 74138 ch 74138
n n L Là à m m? ?ch gi ch giG Gi mã 3 i mã 3 0 0 u v u và ào, o, 8 8 0 0 u ra u ra
Memory
A
0
– A
12
D
0
– D
7
A
13
– A
15
IO/M
CE OE
RD
74LS138
A
B
C
G1
6
G2A
4
G2B
5
Y0
15
Y1
14
Y2
13
Y3
12
Y4
11
Y5
10
Y6
9
Y7
7
A
19
A
16
– A
18
Hình 3. S< 0D giGi mã dùng 74LS138
3.2.2 Gi 3.2.2 Gi/ /i mã b i mã bC Cng c ng cá ác m c m@ @ch 74138 ch 74138 ( (ti ti$ $p p) )
n n M MZ Zc t c tí ích c ch cH Hc l c là à m mZ Zc 0 c 0
n n Ch ChL L duy nh duy nhT Tt m t m: :t 0 t 0 u ra u ra O O m mZ Zc t c tí ích c ch cH Hc c
9
3.2.3 Gi 3.2.3 Gi/ /i mã d i mã dù ùng ROM ng ROM
n n C Cù ùng m ng m: :t ch t chZ Zc n#ng nh& c n#ng nh& 74138 74138
n n Gi GiG Gm thi m thi2 2u s u s4 4 m m? ?ch ph ch ph+ + tr trC C
Memory
A
0
– A
12
D
0
– D
7
A
13
– A
19
IO/M
CE OE
RD
G1
Y0
15
Y1
14
Y2
13
Y3
12
Y4
11
Y5
10
Y6
9
Y7
7
A0
A1
A2
A3
A4
A5
A6
A7
Hình 3. S< 0D giGi mã dùng PROM
3.2.3 Gi 3.2.3 Gi/ /i mã d i mã dù ùng ROM ( ng ROM (ti ti p p) )
n n Ch ChL L s s% % d d+ +ng 8 ng 8 byte 0 byte 0 u tiên, c u tiên, cá ác byte kh c byte khá ác 0 c 01 1u ch u chZ Za c a cù ùng ng
m m: :t gi t giá á tr tr@ @ FFh FFh
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 C Cá ác 0 c 0@ @a ch a chL L kh khá ác c 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
O O
0 0
O O
1 1
O O
2 2
O O
3 3
O O
4 4
O O
5 5
O O
6 6
O O
7 7
A A
0 0
A A
1 1
A A
2 2
A A
3 3
A A
4 4
A A
5 5
A A
6 6
A A
7 7
G G
C Cá ác 0 c 0 u ra u ra C Cá ác 0 c 0 u v u và ào o
10
RD
IO/M
Memory
A
0
– A
11
A
12
– A
14
74LS138
A
B
C
G1
6
G2A
4
G2B
5
Y0
15
Y1
14
Y2
13
Y3
12
Y4
11
Y5
10
Y6
9
Y7
7
+Vcc
A
15
– A
19
D
0
– D
7
FF000-FFFFF
F8000-F8FFF
Hình 3. Ph4i ghép b: nh;
B t$o xung tr&
Ready
CS
3.3 Gh 3.3 Ghé ép n p nE Ei b i b2 2 nh nh6 6
n n N N@ @nh 0 nh 0@ @a ch a chL L c cá ác ô nh c ô nh; ;. .
n n Dung l& Dung l&C Cng b ng b: : nh nh; ;. .
n n T T4 4c 0 c 0: : b b: : nh nh; ; ko 0 ko 0á áp p Z Zng 0&<c t ng 0&<c t4 4c 0 c 0: : VNK th VNK thì ì ta ph ta phG Gi c i có ó
m m? ?ch t#ng thêm chu k ch t#ng thêm chu k^ ^ 0 0C Ci i
CE OE
3.3 Gh 3.3 Ghé ép n p nE Ei b i b2 2 nh nh6 6 ( (ti ti$ $p p) )
n n S S% % d d+ +ng b ng b: : d dD Dn kênh 0 n kênh 02 2 gi giG Gm s m s4 4 chân chân, , t#ng dung l& t#ng dung l&C Cng b ng b: :
nh nh; ; lên lên
128 x 128
Cell array
R/W
Data in
Data out
Column address decoder
7 bit
Column address register
Row
address
decoder
7 bit
Row
address
register
A
0
A
1
A
2
A
3
A
4
A
5
A
6
A
7
A
8
A
9 A
10
A
11
A
12
A
13
-----------
|
|
|
|
|
|
|
|
A
0
/ A
7
– A
6
/A
13
A
0
/A
7
-------
A
6
/A
13
RAS
CAS
Hình 3. Ki(n trúc cJa b: nh; 4116
11
3.4 M 3.4 MG G r r2 2ng b ng b2 2 nh nh6 6
3.4.1 M 3.4.1 MG G r r2 2ng k ng kí ích th4 ch th46 6c ô nh c ô nh6 6
Hình 3. K(t hCp hai b: nh; 16 x 4 thành 16 x 8
Address bus (AB
0
– AB
3
)
Data bus (DB
0
– DB
7
)
RAM-0
16 x 4
R/W
CS
I/0
3
I/0
2
I/0
1
I/0
0
A
3
A
2
A
1
A
0
RAM-1
16 x 4
R/W
CS
I/0
3
I/0
2
I/0
1
I/0
0
A
3
A
2
A
1
A
0
R/W
CS
3.4.1 M 3.4.1 MG G r r2 2ng k ng kí ích th4 ch th46 6c ô nh c ô nh6 6 ( (ti ti$ $p p) )
Hình 3. K(t hCp b4n b: nh; 2K x 8 thành 2K x 32
Address bus (AB
0
– AB
10
)
Data bus (DB
0
– DB
31
)
RAM-0
2K x 8
I/0
0
- I/0
7
R/W
CS
RAM-1
2K x 8
I/0
8
- I/0
15
R/W
CS
RAM-2
2K x 8
I/0
16
- I/0
23
R/W
CS
RAM-3
2K x 8
I/0
24
- I/0
31
R/W
CS
12
3.4.2 M 3.4.2 MG G r r2 2ng dung l4 ng dung l4B Bng nh ng nh6 6
Hình 3. K(t hCp hai b: nh; 16 x 4 thành 32 x 4
Address bus (AB
0
– AB
3
)
Data bus (DB
0
– DB
3
)
RAM-0
16 x 4
R/W
CS
I/0
3
I/0
2
I/0
1
I/0
0
A
3
A
2
A
1
A
0
RAM-1
16 x 4
R/W
CS
I/0
3
I/0
2
I/0
1
I/0
0
A
3
A
2
A
1
A
0
R/W
AB
4
1
Ch&<ng 4: H. vi 0i1u khi2n AVR
n Gi;i thi9u chung
n Các chZc n#ng 0i1u khi2n
n T8p l9nh và ngôn ng> l8p trình
4.1 Gi;i thi9u chung
n AVR - Ki(n trúc RISC
n KhoGng h<n 100 l9nh, hu h(t thHc hi9n m:t chu k^ máy
n 32 thanh ghi 0a n#ng 8 bit
n Có th2 lên t;i 16 MIPS t?i tn s4 16MHz
n B: nh; :
n 8..256K Flash Mem cho ch&<ng trình, ghi/xoá 0&Cc 10.000
ln
n 512..4K Byte EEPROM, ghi/xoá 100.000
n 512…8K Byte SRAM
2
4.1 Gi;i thi9u chung (ti$p)
n Các modul vào ra (I/O moduls)
n ADC 10bit và tP 8..16 kênh Analog
n 1 0(n 2 Programmable UART
n Master/Slave ISP Serial Interface
n 3..4 Timer/Counter: 1 x 16 bit, 2 x 8 bit
n WatchDog Timer
n Analog Comparator
n PWM
n Công suTt (Power Management):
- 3 ch$ &) ngh, (Sleep Mode):
n Idle : 1.9 mA
n Power-Down: <1µA
n PowerSave
n (ch( 0: ch?y bình th&Eng: 6mA)
4.1 Gi;i thi9u chung (ti$p)
– .i0n áp làm vi0c :
n Vcc 4.0-6.0V v;i AT90S8535
n Vcc 2.7-6.0V v;i AT90LS8535
– T1n s2 CLOCK
n 0-8MHz v;i AT90S8535
n 0-4MHz v;i AT90LS8535
n 0-16MHz v;i Atmegaxx
3
4.1 Gi;i thi9u chung (ti$p)
4.1.1 Các b: nh;
Program Flash
(4K x 16)
Program Memory
$000
$FFF
32 Gen. Purpose
Working Resisters
64 I/O Resisters
Internal SRAM
(512 x 8)
$025F
$005F
$0060
$001F
$0020
$0000
Data Memory
EEPROM
(512 x 8)
Data Memory
$000
$1FF
4
4.1.1 Các b: nh; (ti$p)
Data Address Space
$001F
$001E

$0001
$0000
$005F
$005E

$0021
$0020
Internal SRAM
$085F
$085E

$0061
$0060
Register File
R31
R30

R2
R1
I/O Register
$3F
$3E

$01
$00
ZL
ZH
SRAM Organization
4.1.2 Các thanh ghi 0a n#ng
a. Các thanh ghi 0a n#ng
n Bao gDm 32 thanh ghi 8 bit
n N&Cc thHc hi9n trHc ti(p tP ALU
n Các cVp thanh ghi R
26
,
27
; R
28
,
29
; R
30
,
31
t?o thành các thanh
ghi 16 bit
5
b. Các thanh ghi ng#n x(p
n N2 l&u tr> d> li9u tam thEi, v@ trí bi(n và 0@a chL trO
v1 sau khi ph+c v+ ch&<ng trình con ngSt và ch&<ng
trình con
n Luôn trW vào 0Lnh cJa ng#n x(p
n Ng#n x(p luôn bSt 0u tP v@ trí cao cJa b: nh;
c. Các thanh ghi tr?ng thái
n ChZa thông tin hi9n t?i cJa CPU
n Có 8 bit chZa thông tin
n Thông tin có th2 b@ thay 0Ki khi có ch&<ng trình con
ph+c v+ ngSt
6
d. Thanh ghi che ngSt và cE ngSt
n Cho phép hay không cho phép m:t ngSt bTt k^
n Thông báo khi có ngSt, n(u ngSt 0ó 0ã 0&Cc phép
n Thanh ghi che ngSt 0&Cc thi(t l8p bBng phn m1m
e. Thanh ghi 0i1u khi2n
n Cho phép 0i1u khi2n toàn b: vi 0i1u khi2n
n ChZc n#ng này gDm:
n Truy c8p b: nh; SRAM
n Ch( 0: ngJ
n Ch( 0: ngSt ngoài
7
f. M:t s4 thanh ghi khác
n Thanh ghi tr?ng thái b: x% lý
n Các thanh ghi 0i1u khi2n timer/counter0
n Các thanh ghi 0i1u khi2n timer/counter1
n Thanh ghi 0i1u khi2n Watchdog
n Các thanh ghi 0i1u khi2n vào ra EEPROM
n Các thanh ghi 0i1u khi2n SPI
n Các thanh ghi 0i1u khi2n UART
n Các thanh ghi 0i1u khi2n b: ADC
4.1.3 NgSt và x% lý ngSt
Store Program Memory Ready SPM_RDY $028 21
Two-wire Serial Interface TWI $026 20
Analog Comparator ANA_COMP $024 19
EEPROM Ready EE_RDY $022 18
ADC Conversion Complete ADC $020 17
USART, Tx Complete USART, TXC $01E 16
USART Data Register Empty USART, UDRE $01C 15
USART, Rx Complete USART, RXC $01A 14
Serial Transfer Complete SPI, STC $018 13
Timer/Counter0 Overflow TIMER0 OVF $016 12
Timer/Counter0 Compare Match TIMER0 COMP $014 11
Timer/Counter1 Overflow TIMER1 OVF $012 10
Timer/Counter1 Capture Match B TIMER1 COMPB $010 9
Timer/Counter1 Capture Match A TIMER1 COMPA $00E 8
Timer/Counter1 Capture Event TIMER1 CAPT $00C 7
Timer/Counter2 Overflow TIMER2 OVF $00A 6
Timer/Counter2 Compare Match TIMER2 COMP $008 5
External Interrupt Request 2 INT2 $006 4
External Interrupt Request 1 INT1 $004 3
External Interrupt Request 0 INT0 $002 2
External Pin, Power-on Reset, Brown-out Reset,
Watchdog Reset and JTAG AVR Reset
Reset $000 1
Interrupt Difinition Source ProgramAddress Vector No.
8
4.1.3 NgSt và x% lý ngSt (ti$p)
n 16 vect< ngSt (2 Byte)
n TP 0@a chL $000 trong b: nh; ch&<ng trình
n NgSt có chL s4 thTp, 0: &u tiên càng cao
n M\i ngSt có m:t bít cho phép ngSt riêng
n N2 s% d+ng m:t ngSt thì bit này phGi thi(t l8p cùng
v;i cE I (Global Interrupt Enable) trong thanh ghi
SREG 0&Cc thi(t l8p
n MTt 4 chu k^ 0Dng hD 02 vào (hoVc ra khWi) ch&<ng
trình con phHc v+ ngSt
4.1.3 NgSt và x% lý ngSt (ti$p)
n I – Global Interrupt Enable
n T – Bit Copy Storage
n H – Haft Carry Flag
n S – Sign Bit S = N_V
n V – Overflow Flag
n N – Negative Flag
n Z – Zero Flag
n C – Carry Flag
0 0 0 0 0 0 0 0 Initial Value
R/W R/W R/W R/W R/W R/W R/W R/W Read/Write
SREG C Z N V S H T I $3F ($5F)
0 1 2 3 4 5 6 7 Bit
9
4.2 Các chZc n#ng 0i1u khi2n
n Timer/Counter
n WatchDog Timer
n Các cKng vào ra
n ADC
n UART
n EEPROM
4.2.1 Timer/Counter
Có 3 b: 0(m/0@nh thEi gian
n T/C0 :
n 8 bit
n NguDn 0Dng hD tP m?ch chia thEi gian hoVc tP chân T0
(theo s&En lên/xu4ng)
n NgSt tràn
n T/C1:
n 16 bit
n NguDn 0Dng hD tP m?ch chia thEi gian hoVc tP chân T1
(theo s&En lên/xu4ng)
n Có ngSt tràn, ngSt thích Zng so sánh và ngSt cho phép bSt
tín hi9u tP chân ICP
10
4.2.1 Timer/Counter (ti$p)
n T/C2:
n 8 bit
n NguDn 0Dng hD tP m?ch chia thEi gian hoVc tP dao 0:ng
bên ngoài (chân TOSC1 và TOSC2 n4i v;i t+ th?ch
anh 32768Hz)
n Có ngSt tràn và ngSt thích Zng so sánh
n Cho phép 0&a tín hi9u ra chân OC2 khi có tín hi9u thích
Zng so sánh
4.2.2 WatchDog Timer
Processor
Watchdog Timer
Clock
Restart
Reset
11
4.2.2 WatchDog Timer (ti$p)
n Ho?t 0:ng tP b: dao 0:ng 0:c l8p trên chip
n L9nh WDR 02 Reset l?i WatchDog Timer
n Sau khoGng thEi gian > time_out ch&<ng trình sU b@
Reset l?i
n Thanh ghi 0i1u khi2n: WDTCR
0 0 0 0 0 0 0 0 Initial Value
R/W R/W R/W R/W R/W R R R Read/Write
WDTCR WDP0 WDP1 WDP2 WDE WDTOE ` ` ` $21 ($41)
0 1 2 3 4 5 6 7 Bit
4.2.2 WatchDog Timer (ti$p)
n WDP2, WDP1, WDP0 : xác 0@nh thEi gian time_out
2.1s 2.2s 2M 1 1 1
1.0s 1.1s 1M 0 1 1
0.52s 0.55s 512K 1 0 1
0.26s 0.27s 256K 0 0 1
0.13s 0.14s 128K 1 1 0
65ms 68.5 64K 0 1 0
32.5ms 34.3ms 32K 1 0 0
16.3ms 17.1ms 16K 0 0 0
Typical Time_out
at V
cc
= 5.0V
Typical Time_out
at V
cc
= 3.0V
Number of WDT
Oscillator Cycles
WDP0 WDP1 WDP2
12
4.2.2 Các cKng vào ra
4.2.2 Các cKng vào ra (ti$p)
n Có 4 cKng vào ra 8 bit PA, PB, PC, PD
n M\i cKng 01u có 3 thanh ghi (8 bit), ví d+ cKng A :
n Thanh ghi d> li9u : PORTA
n Thanh ghi 0i1u khi2n h&;ng d> li9u : DDRA
n Thanh ghi 0@a chL các chân vào : PINA
n Cho phép thao tác vào ra trên tPng bít (m:t cKng có
th2 vPa có bit vào vPa có bit ra)
n bit DDRAi=1, chân PAi là chân ra ( = PORTAi)
n bit DDRAi=0, chân PAi là chân vào (= PINAi)
13
4.2.2 Các cKng vào ra (ti$p)
n PhGi 0@nh nghaa cKng tr&;c khi s% d+ng
n KhG n#ng ch@u tGi cao (I
sink
khoGng 20mA/Pin)
n Vào ra ba tr?ng thái
n Có khG n#ng vào t&<ng tH
n Pull_up, I = 33µA÷160µA
4.2.3 ADC
n NVc 0i2m:
n N: phân giGi t4i 0a 10 bit, xTp xL liên ti(p
n N: chính xác tuy9t 04i 0(n ±2 LSB
n ThEi gian chuy2n 0Ki: 65-260 µs, 13 chu k^ cho m:t ln
chuy2n 0Ki
n 2 ch( 0: ho?t 0:ng: chuy2n 0Ki 0<n và chuy2n 0Ki tH do
n Các thanh ghi
n Thanh ghi d> li9u: ADCL, ADCH
14
4.2.3 ADC (ti$p)
n Thanh ghi ch.n kênh : ADMUX
n Thanh ghi 0i1u khi2n tr?ng thái: ADCSRA
0 0 0 0 0 0 0 0 Initial Value
R/W R/W R/W R/W R/W R/W R/W R/W Read/Write
ADMUX MUX0 MUX1 MUX2 MUX3 MUX4 ADLAR REFS0 REFS1 $21 ($41)
0 1 2 3 4 5 6 7 Bit
0 0 0 0 0 0 0 0
Initial
Value
R/W R/W R/W R/W R/W R/W R/W R/W Read/Write
ADCSRA ADPS0 ADPS1 ADPS2 ADIE ADIF ADATE ADSC ADEN $21 ($41)
0 1 2 3 4 5 6 7 Bit
4.2.4 USART
n NVc 0i2m:
n Truy1n song công
n Truy1n 0Dng b: hoVc không 0Dng b:
n Master hoVc Slave cTp xung nh@p
n Khuân d?ng d> li9u 0a d?ng (5=>9 bit d> li9u, 1 hoVc 2
bít dPng)
n Ki2m tra bit ch]n lY bBng phn cZng
n TH phát hi9n l\i tràn d> li9u, khung d> li9u l\i
n KhG n#ng l.c nhiQu
n 3 ngSt truy1n, nh8n và truy1n h(t
n Nhi1u ch( 0: k(t n4i
n KhG n#ng nhân 0ôi t4c 0: truy1n thông
15
4.2.4 USART (ti$p)
n Các thanh ghi
n Thanh ghi t4c 0: Baud : UBRR
n VD: fck = 4MHz,cn t4c 0: 14400bps
n UBRR =16 (16.3), t4c 0: thHc t( là 14705bps, l\i 2.1%
n Không nên s% d+ng t4c 0: có l\i > 1%
16 * (UBRR + 1)
F
clk
BaudRate =
4.2.4 USART (ti$p)
n Thanh ghi d> li9u: UDR (gDm hai thanh ghi 0:c l8p có cùng
0@a chL vào ra): chZa d> li9u nh8n và truy1n
n Thanh ghi 0i1u khi2n và tr?ng thái: UCSR
(Control and Status Register)
0
R/W
MPCM
0
UCSRA
0 0 0 0 1 0 0 Initial Value
R/W R R R R R/W R Read/Write
U2X PE DOR FE UDRE TXC RXC $0B ($2B)
1 2 3 4 5 6 7 Bit
0
R/W
TXB8
0
UCSRB
0 0 0 0 0 0 0 Initial Value
R R/W R/W R/W R/W R/W R/W Read/Write
RXB8 UCSZ2 TXEN RXEN UDRUE TSCIE RXCIE $0A ($2A)
1 2 3 4 5 6 7 Bit
16
4.2.4 USART (ti$p)
Ho?t 0:ng:
n Thi(t l8p t4c 0: truy1n, 8/9 bit d> li9u, truy1n/nh8n
hoVc cG hai, có s% d+ng ngSt hay không?
n Truy1n d> li9u:
n N&a byte d> li9u cn truy1n vào UDR
n NCi 0(n khi UDRE = 1 (hoVc s% d+ng ngSt) thì truy1n t(p
byte ti(p theo
4.2.4 USART (ti$p)
n Nh8n d> li9u:
n NCi 0(n khi cE RXC=1 (hoVc s% d+ng ngSt) báo hi9u nh8n
0&Cc byte d> li9u
n Ki2m tra cE FE và OR
n N.c byte d> li9u tP UDR
St (St/IDLE) Sp1 [Sp2] [P] [8] [7] [6] [5] 4 3 2 1 0 (IDLE)
17
4.2.5 EEPROM
n EERIE (EEPROM Ready Intr En)
n EEMWE (EEPROM Master Write En) : cho phép ghi. Bit này
sU tH 0:ng b@ xoá sau 4 chu k^ 0Dng hD
n EEWE (EEPROM Write En) : khi bit này 0&Cc thi(t l8p và
EEMWE=1 thì thao tác ghi m;i 0&Cc thHc hi9n
n EERE (EEPROM Read En): cho phép 0.c
n EEPROM. Khi 0.c xong, bit này sU tH 0:ng b@ xoá và CPU sU
dPng 4 chu k^ 0Dng hD tr&;c khi l9nh ti(p theo 0&Cc thHc hi9n
4.2.5 EEPROM (ti$p)
n Quy trình ghi:
n NCi 0(n khi EEWE=0
n Ghi 0@a chL m;i vào EEARL và EEARH
n Ghi d> li9u m;i vào EEDR
n Ghi mZc logic 1 vào bit EEMWE và mZc logic 0 vào
EEWE 0Dng thEi
n Trong vòng 4 chu k^ 0Dng hD sau ghi giá tr@ logic 1 vào
EEWE
18
4.2.6 SPI (Serial Peripheral Interface)
4.2.6 SPI (Serial Peripheral Interface – ti$p)
n Truy1n song công
n Ch.n ch( 0: chJ hoVc t;
n Bit cao hoVc bit thTp truy1n tr&;c
n BGy bít thi(t l8p t4c 0: truy1n
n CE ngSt truy1n h(t
n CE bGo v9 xung 0:t ghi
n Nánh thúc tP ch( 0: nghL
n Ch( 0: nhân 0ôi t4c 0:
19
4.2.7 So sánh tín hi9u t&<ng tH (Analog Comparator)
n M?ch so sánh tín hi9u t&<ng tH: so sánh tín hi9u
analog gi>a hai chân AIN1 và AIN2
S1
Reset
+5V
Reset
MOSI
C4 22p
+5V
+5V
CON8
R1
10K
+5V
SCK
J5
Program
1
2
3
4
5
6
MISO
U1
ATMEGA32
1
2
3
4
5
6
7
8
9
10
11 12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PB0/XCK/T0
PB1/T1
PB2/INT2/AIN0
PB3/OC0/AIN1
PB4/SS
PB5/MOSI
PB6/MISO
PB7/SCK
RESET
VCC
GND XTAL2
XTAL1
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/OC1B
PD5/OC1A
PD6/ICP
PD7/OC2
PC0/SCL
PC1/SDA
PC2/TCK
PC3/TMS
PC4/TDO
PC5/TDI
PC6/TOSC1
PC7/TOSC2
AVCC
AGND
AREF
PA7/ADC7
PA6/ADC6
PA5/ADC5
PA4/ADC4
PA3/ADC3
PA2/ADC2
PA1/ADC1
PA0/ADC0
Y1
8MHz
Reset
C5
22p
MISO
+ C3
4.7u
MOSI
SCK
4.1 Gi6i thi.u chung (tip)
20
4.3 T8p l9nh và ngôn ng> l8p trình
4.3.1 T8p l9nh
n 109 l9nh
n Toán h.c và logic (22)
n L9nh rU nhánh (34)
n L9nh chuy2n 0Ki d> li9u (31)
n L9nh bít và ki2m tra bít (31)
4.3.1 T8p l9nh (ti$p)
Các ch( 0: 0@nh 0@a chL
n N@a chL trHc ti(p (Direct Addressing)
n N@a chL qua chL s4 (Indexed Addressing)
n N@a chL tZc thEi (Immediate Addressing)
n N@a chL t&<ng 04i (Relative Addressing)
n ….
21
4.3.2 M:t s4 ngôn ng> l8p trình
n AVR Assembler
n AVR Edit 3.5 (l3p trình C)
n CodeVisionAVR (l3p trình C)
1
Ch&<ng Ch&<ng 5: CodevisionAVR 5: CodevisionAVR
n n IDE ( IDE (Integrated Development Environment Integrated Development Environment) )
n n Tr Trì ình d nh d@ @ch ( ch (Compiler Compiler) )
n n H Hà àm th& vi m th& vi9 9n ( n (Library Functions) Library Functions)
n n T TH H 0 0: :ng sinh mã ( ng sinh mã (Automatic Program Generator Automatic Program Generator) )
Hình 5. Giao di9n chính cJa CodevisionAVR
2
5.1 IDE 5.1 IDE
5.1.1 File 5.1.1 File
n n T T? ?o file o file
n n M MO O file file
n n Ch ChL Lnh s nh s% %a a
n n L&u L&u
5.1.2 Project 5.1.2 Project
n n T T? ?o m o m: :t project t project
n n M MO O Project Project
n n Thêm ch Thêm chú ú th thí ích/di ch/diQ Qn gi n giG Gi i
n n C CT Tu h u hì ình cho Project nh cho Project
n n Quan s Quan sá át ch&<ng trr t ch&<ng trrì ình d nh d@ @ch ch
3
5.1.3 Công c 5.1.3 Công c+ +
n n G Gb b r r4 4i ( i (debugger debugger) )
n n L L8 8p tr p trì ình ( nh (programmer programmer) )
n n Terminal Terminal
n n C CT Tu h u hì ình ( nh (Configuring Configuring) )
5.1.4 Thi 5.1.4 Thi( (t l t l8 8p môi tr& p môi tr&E Eng ng
n n T TK Kng quan ng quan
n n So So? ?n th n thG Go o
n n Hi Hi9 9n l n l\ \i i
n n N& N&E Eng d ng d[ [n tr n trì ình g nh gb b l l\ \i i
n n C CT Tu h u hì ình n nh n? ?p p
4
5.2 Tr 5.2 Trì ình d nh d@ @ch ch
n Ti1n x% lý
n Chú thích
n TP khoá
n D> li9u chucn, d> li9u tH 0@nh nghaa
n HBng, bi(n
n Chuy2n ki2u
n Phép toán
n Hàm
n Con trW
n Thanh ghi I/O
n Truy c8p EEPROM
n NgSt
n Assembly
5.3 H 5.3 Hà àm chu m chuc cn n
n n H Hà àm IO chu m IO chuc cn n
n n char char getchar getchar(void) (void)
Returns a character received by the UART, using polling. Returns a character received by the UART, using polling.
n n void void putchar putchar(char c) (char c)
Transmits the character c using the UART, using polling. Transmits the character c using the UART, using polling.
n n … …
n n H Hà àm to m toá án h n h. .c c
n n unsigned char unsigned char cabs cabs(signed char x) (signed char x)
returns the absolute value of the byte x. returns the absolute value of the byte x.
n n unsigned int unsigned int abs abs(int x) (int x)
returns the absolute value of the integer x. returns the absolute value of the integer x.
n n … …
5
n n LCD LCD
n n void void lcd_write_byte lcd_write_byte (unsigned char addr, unsigned char data) (unsigned char addr, unsigned char data)
write a byte to the LCD character generator or display RAM write a byte to the LCD character generator or display RAM
n n unsigned char unsigned char lcd_read_byte lcd_read_byte(unsigned char addr); (unsigned char addr);
read a byte from the LCD character generator or display RAM read a byte from the LCD character generator or display RAM
n n void void lcd_gotoxy lcd_gotoxy(unsigned char x, unsigned char y); (unsigned char x, unsigned char y);
set the LCD display position x=0..39 y=0..3 set the LCD display position x=0..39 y=0..3
n n . . . . . .
n n I I
2 2
C C
n n void void i2c_init i2c_init(void) (void)
this function initializes the I2C bus. this function initializes the I2C bus.
n n unsigned char unsigned char i2c_start i2c_start (void) (void)
issues a START condition. Returns 1 if bus is free or 0 if the I issues a START condition. Returns 1 if bus is free or 0 if the I2C bus is 2C bus is
busy. busy.
n n void void i2c_stop i2c_stop (void) (void)
issues a STOP condition. issues a STOP condition.
n n . . . . . .
5.4 T 5.4 TH H 0 0: :ng sinh mã ng sinh mã
n n C Cà ài 0 i 0V Vt c t cá ác thông s c thông s4 4
n n Thi Thi( (t l t l8 8p RAM ngo p RAM ngoà ài i
n n Thi Thi( (t l t l8 8p c p cK Kng v ng và ào ra o ra
n n Thi Thi( (t l t l8 8p ng p ngS St t
n n Thi Thi( (t l t l8 8p b p b: : 0 0( (m m/ /0 0@ @nh th nh thE Ei i
n n Thi Thi( (t l t l8 8p UART/USART p UART/USART
n n Thi Thi( (t l t l8 8p b p b: : so s so sá ánh t&<ng t nh t&<ng tH H
n n Thi Thi( (t l t l8 8p ADC p ADC
n n Thi Thi( (t l t l8 8p SPI p SPI
n n Thi Thi( (t l t l8 8p USI p USI
n n Thi Thi( (t l t l8 8p I p I
2 2
C C
n n Thi Thi( (t l t l8 8p LCD p LCD
n n . . . . . .
1
Ch&<ng Ch&<ng 6: Input/Output 6: Input/Output
n n T TK Kng ng quan quan
n n M M: :t t s s4 4 v ví í d d+ + v và ào/ra o/ra
n n L L8 8p p tr trì ình nh 0i 0i1 1u u khi khi2 2n n thi thi( (t t b b@ @
n n Thi Thi( (t t b b@ @ v và ào o ra ra chu chuc cn n
T TH Hng ng quan quan
n n V Và ào o ra ra s s4 4
V Và ào o n n4 4i i ti ti( (p p
V Và ào o ra ra song song song song
n n V Và ào o ra ra t&<ng t&<ng t tH H
ADC ADC
DAC DAC
2
V Và ào o ra ra c cI Ia a 8051 8051
V Và ào o ra ra c cI Ia a AVR AVR
3
B Bà àn n ph phí ím m 4x4 4x4
S932
K3
S921
K5
S934
S922 S924
S902
S913
S933
S901
K2
S911
S903
S914
K6
K7
S904
K0
K4
S912
S931
K1
S923
B Bà àn n ph phí ím m 4x4 4x4
n n N N. .c c b bà àn n ph phí ím m
n n Ch Ch4 4ng ng rung rung
4
Key Board Key Board
Key Board Key Board
n n AT keyboard AT keyboard go go m m mo mo t t ma ma tra tra n n lo lo n n ca ca c c ph phí ím m, , ta ta t t ca ca
du duo o c c gia gia m m sa sa t t bo bo i i mo mo t t bo bo x xu u ly ly on on- -board. board. Bo Bo x xu u ly ly
kha kha c c bie bie t t nhau nhau t tu u ba ba n n ph phí ím m na na y y d de e n n ba ba n n ph phí ím m
kha kha c c( chip ( chip thong thong du du ng ng go go m m 8048, 8049, 6868 8048, 8049, 6868 va va
6805) 6805) nh nhu ung ng ta ta t t chu chu ng ng co co ba ba n n la la m m gio gio ng ng mo mo t t vie vie c c : :
Gia Gia m m sa sa t t nh nhu ung ng ph phí ím m du duo o c c nha nha n n / / tha tha va va go go i i d du u
lie lie u u t tu uong ong x xu u ng ng to to i i ma ma y y chu chu . . Bo Bo x xu u ly ly na na y y cham cham
so so c c ta ta t t ca ca d du u lie lie u u ra ra va va d de e m m ba ba t t c cu u d du u lie lie u u na na o o va va o o
bo bo d de e m m 16 16- -byte byte cu cu a a no no ne ne u u ca ca n n. . Ta Ta t t ca ca vie vie c c giao giao
tie tie p p gi giu ua a ma ma y y chu chu va va ba ba n n ph phí ím m du du ng ng PS/2 protocol. PS/2 protocol.

Sign up to vote on this title
UsefulNot useful