PH N III
Vi đi u khi n H8/3069F
1. Gi i thi u chung v vi đi u khi n (micro controller)
Tr c khi nói v vi đi u khi n, chúng ta s xem xét l i th nào là máyướ ế
tính:
Máy tính nói chung là thi t b dùng đ x lý, thu nh n, l u tr ế ư
truy n t i d li u.
D li u có th là các ký t trong m t văn b n, hình nh, âm thanh…
hay cũng có th là các tr ng thái c a m t thi t b đi n t nh nhi t đ t ế ư
l nh, tr ng thái c a n i c m đi n… Nh ng dù d li u có là đ i l ng gì ơ ư ượ
đi n a thì t t c chúng đ u đ c l u tr trong máy tính d i d ng các ượ ư ướ
dãy s 0 và 1.
M t máy tính nói chung đ c c u t o b i các thành ph n nh d i đây: ượ ư ướ
B x lý (Processor): Ch u trách nhi m đi u khi n t t c ho t đ ng
c a h th ng nh x lý s li u, đóng ng t các c ng… ư
B nh ch ng trình (Program memory): L u tr các m nh l nh đ ươ ư
CPU có th bi t ph i làm gì. ế
B nh d li u (Data memory): Ch a các d li u t m th i trong quá
trình ho t đ ng.
Các c ng vào ra (I/O interface): Là n i đ máy tính có th giao ti p ơ ế
v i th gi i bên ngoài. ế
Th gi i máy tính có r t nhi u lo i, nh ng chúng ta có th nh n bi t 2ế ư ế
lo i l n.
Collection by Nguyen Van Kien Canon Viet Nam Co.,Ltd
Processor
(Pentium IV)
Program
Memory
(ROM, HDD)
Data
Memory
(RAM)
I/O interface
(USB port, COM
port)
1
Máy tính đ bàn: Đây là cái đ u tiên xu t hi n trong đ u khi b n nghe
nói đ n t máy tính. Nh ng th c t thì lo i này ch chi m m t phànế ư ế ế
nh trong th gi i máy tính. ế
Lo i th 2 là máy tính nhúng (embedded computer) – là nh ng máy
tính đ c tích h p vào trong các thi t b khác đ đ m nhi m vi cượ ế
đi u khi n, đo l ng… S l ng máy tính nhúng này l n h n r t ườ ượ ơ
nhi u so v i máy tính đ bàn, nh ng l i ít đ c bi t đ n h n. ư ư ế ế ơ
Do máy tính nhúng đ c tích h p vào m t s n ph m, và đ làm m tượ
tác v nh t đ nh, nên không c n ph i m nh. Nó c n ph i có giá r nh t
có th .
Thông th ng, đ gi m giá thành, máy tính nhúng đ c tích h p t t cườ ượ
các b ph n (CPU, RAM, ROM…) trong m t con chip. Th lo i máy tính
này th ng đ c g i d i m t tên khác là vi đi u khi n (microườ ượ ướ
controller).
Thông th ng, đ phát tri n ng d ng cho vi đi u khi n, ng i ta s vi tườ ườ ế
ch ng trình trên máy tính PC (dùng ngôn ng C ch ng h n). Sau đó, sươ
Collection by Nguyen Van Kien Canon Viet Nam Co.,Ltd
Máy tính đ bàn, th mà b n nghĩ đ n ế
khi nghe t “máy tính”Embedded computer: S l ng nhi u ượ
nh ng ít đ c bi t.ư ượ ế
All in one IC
2
d ng ch ng trình d ch đ d ch ra mã máy mà vđk có th hi u đ c. Các ươ ượ
mã máy đó s đ c ghi vào vđk và đ c vđk th c hi n. ượ ượ
2. Khái quát v vi đi u khi n H8/3069F
Vi đi u khi n H8/3069F là m t vđk thu c h H8/300H c a hãng
Renesas.
H CPU H8/300H có c u trúc trong 32 bit, bao g m 16 thanh ghi chung
16 bit. Các thanh ghi này có th đ c chia ra thành các thanh ghi 8 bit ho c ượ
k t h p l i thành thanh ghi 32 bit. ế
H8/300H có t p l nh g m 62 l nh, v i kh năng tình toán toán h c và
logic v i 8/16/32 bit cùng v i kh năng thao tác đ n bit (bit manipulation). ế
CPU này có th đ nh đ c 16MB đ a ch . ượ
Sau đây là m t s spec c a vđk H8/3069F
-T n s l n nh t: 25MHz
-Th c hi n các l nh trong 2 ho c 4 chu kỳ
-Có l nh nhân/chia 8/16/32 bit có d u.
-512KB ROM, 16KB RAM
-7 ng t ngoài, 36 ng t trong, 3 level ng t
-Có th đinh đ a ch t i 16MB, có th truy xu t b nh ngoài v i 8
đ ng CS riêng bi t. M i vùng có th truy xu t v i đ r ng 8ườ
ho c 16 bit.
-Có th truy xu t tr c ti p 8MB DRAM. ế
-3 timer 16 bit, 4 timer 8 bit.
-3 b truy n nh n n i ti p (SCI) ế
-8 kênh A/D 10 bit
-2 kênh D/A 8 bit
-70 c ng vào/ra và 9 c ng vào
H8/3069F có th ho t đ ng 6 mode khác nhau. Các mode đ c l a ượ
ch n d a vào các chân MD0-MD2. Các mode có không gian b nh khác
nhau.
Collection by Nguyen Van Kien Canon Viet Nam Co.,Ltd
3
3. B ng m ch AKI-H8 3069F
Trong khóa h c này, chúng ta s nghiên c u vđk H8/3069F dùng b n
m ch AKI-H8 3069F.
B n m ch này bao g m vđk H8/3069F và 2MB DRAM đ c n i v i ượ
chân CS2 c a vđk.
Chúng ta s s d ng b ng m ch này mode 5.
( đây ta ch gi i thi u s l c v các mode ho t đ ng c a H8/3069F. ơ ượ
Ho t đ ng c a nó s đ c nói rõ h n sau khi các b n hi u bi t c b n ượ ơ ế ơ
v vđk này)
4. L p trình đi u khi n các chân vào/ra
Trong ph n này, chúng ta s h c cách làm cho các chân c a vđk thành
m c logic cao/th p, hay đ c m c logic vào t các chân.
Nh ph n gi i thi u tr c chúng ta th y r ng H8/3069 có 79 chânư ướ
vào/ra. Nh ng m t ph n chúng đã đ c s d ng vào m c đích khác như ượ ư
bus đ a ch , ADC…
Cách truy xu t đ n các c ng vào/ra này là g n gi ng nh nhau. Do đó, ế ư
chúng ta s l y port P4 lam ví d .
Các chân vào/ra này đ c truy xu t thông qua các thanh ghi t ng ng.ượ ươ
Các thanh ghi này đ c truy xu t tr c ti p b ng đ a ch c a nó.ượ ế
Chúng ta thao tác đ n các chân c a port 4 thông qua các thanh ghi sau:ế
Collection by Nguyen Van Kien Canon Viet Nam Co.,Ltd
4
-P4DDR: Thanh ghi h ng – Đây là 1 thanh ghi có 8 bit, t ng ngướ ươ
v i 8 chân P4_0 -> P4_7 c a Port 4. N u bit là 0 thì chân t ng ế ươ
ng dùng đ đ c giá tr vào, và n u là 1 thì dùng đ xu t ra ế
-P4DR: Thanh ghi d li u – Dùng đ ghi giá tr c n xu t ra hay đ c
giá tr t pin t ng ng vào. ươ
-P4PCR: Thanh ghi xác đ nh đi n tr kéo lên c a các chân. N u bit ế
t ng ng là 1, thì chân đó s có 1 đi n tr n i lên d ngươ ươ
ngu n. N u là 0 thì đi n tr đó s không t n t i. ế
Thông th ng, các thanh ghi nh th này đã đ c đ nh nghĩa tr c, vàườ ư ế ượ ướ
ta ch vi c thay đôi thông qua vi c thao tác đ n tên c a nó. Trong tr ng ế ườ
h p c a chúng ta, các thanh ghi này đ c đ nh nghĩa file iodefine.h. ượ
Các thanh ghi này th ng đ c đ nh nghĩa theo d ng union nên chúngườ ượ
ta có th truy xu t đ n nó theo byte ho c bit r t d dàng. ế
Ví d đ i v i port 4:
union un_p4dr { /* union P4DR */
unsigned char BYTE; /* Byte Access */
struct { /* Bit Access */
unsigned char B7:1; /* Bit 7 */
unsigned char B6:1; /* Bit 6 */
unsigned char B5:1; /* Bit 5 */
unsigned char B4:1; /* Bit 4 */
unsigned char B3:1; /* Bit 3 */
unsigned char B2:1; /* Bit 2 */
unsigned char B1:1; /* Bit 1 */
unsigned char B0:1; /* Bit 0 */
} BIT; /* */
};
#define P4DDR (*(volatile union un_ddr *)0xFEE003) /* P4DDR
Address*/
Câu l nh trên đ nh nghĩa P4DDR là giá tr c a ô nh mà con tr ki u
union un_ddr có giá tr 0xFEE003 tr đ n, hay nói cách khác là giá tr c a ế
ô nh có đ a ch 0xFEE003.
Ví d : P4DDR.BYTE=0xF0; //Chân 7~4 là chân ra, 3~0 là chân vào.
#define P4DR (*(volatile union un_p4dr *)0xFFFFD3) /* P4DR
Address*/
Collection by Nguyen Van Kien Canon Viet Nam Co.,Ltd
5