bao cao bai tap lon

Màu nền
Font chữ
Font size
Chiều cao dòng

BÁO CÁO BÀI T¬P LÚN

MÔN Kø THU¬T VI Xì LÝ

À TÀI: ROBOT I THEO ¯ÜNG Kº DÙNG AVR

NHÓM: 05_T9

Các thành viên trong nhóm (#1 là nhóm tr°ßng):

#1 Hoàng Lê Minh Ký tên: & & & & Ngày: & & & & & &

#2 NguyÅn Thanh H£i Ký tên: & & & & Ngày: & & & & & &

#3 Hoàng ThË Miên Ký tên: & & & & Ngày: & & & & & &

#4 Ph¡m Xuân Thành Ký tên: & & & .. Ngày: & & & & & &

ánh giá báo cáo

NÙi dung / tiêu chí iÃm HÇ sÑ iÃm Tóm t¯t Á tài 0 1 2 3 4 5 6 7 8 9 10 X 1 GiÛi thiÇu vÁ Á tài và s¡ Ó khÑi cça hÇ thÑng 0 1 2 3 4 5 6 7 8 9 10 X 2 Các tiêu chí c§n ph£i ¡t °ãc 0 1 2 3 4 5 6 7 8 9 10 X 2 Mô t£ chi ti¿t hÇ thÑng 0 1 2 3 4 5 6 7 8 9 10 X 4 K¿t lu­n 0 1 2 3 4 5 6 7 8 9 10 X 1 Tài liÇu tham kh£o 0 1 2 3 4 5 6 7 8 9 10 X 1 Phå låc A: óng góp cça tëng các nhân 0 1 2 3 4 5 6 7 8 9 10 X 2 Phå låc B: Mã nguÓn 0 1 2 3 4 5 6 7 8 9 10 X 2 Vn phong khoa hÍc 0 1 2 3 4 5 6 7 8 9 10 X3 CD 0 1 2 3 4 5 6 7 8 9 10 X 2 TÕng

Nh­n xét:

I. Tóm t¯t Á tài 4 1.0 GiÛi thiÇu vÁ Á tài và sß Ó khÑi cça hÇ thÑng 4 2.0 Các tiêu chí c§n ph£i ¡t °ãc 5 3.0 Mô t£ chi ti¿t hÇ thÑng 5 3..0.1 KhÑi xí lý trung tâm 5 GiÛi thiÇu vÁ VK Atmega16 5 1. S¡ l°ãc vÁ vi iÁu khiÃn AVR Atmega16 5 2. C¥u trúc vi iÁu khiÃn Atmega16 6 3. TÕ chéc bÙ nhÛ cça Atmega16 9 4. Ch¿ Ù truy nh­p Ëa chÉ cça AVR 12 5. BÙ Timer/Counter và phåc vå ng¯t 12 6. GiÛi thiÇu chéc nng ADC cça vi iÁu khiÃn Atmega16 19 7. BÙ dao Ùng th¡ch anh 23 3.0.2 KhÑi c£m bi¿n 23 1. Ho¡t Ùng cça c£m bi¿n, 24 2. S¡ Ó m¡ch. 24 3. S¡ Ó bÑ trí c£m bi¿n. 25 3.0.3 KhÑi iÁu khiÃn Ùng c¡ 26 1. GiÛi thiÇu vÁ DC motor 26 2. iÁu khiÃn Ùng c¡ b±ng MC33886 27 3.0.4 KhÑi hiÃn thË LCD 29 3.0.5 iÁu xung PWM. iÁu chÉnh v­n tÑc cho Ùng c¡ 31 3.0.6 L°u Ó thu­t toán 32 II. K¿t lu­n 35 III. Tài liÇu tham kh£o 36 Phå låc A: óng góp cça tëng cá nhân 37 Phå låc B: Mã nguÓn 41 MäC LäC

Trang

I.TÓM T®T À TÀI

HiÇn nay vÛi sñ phát triÃn cça công nghÇ vi iÇn tí, các hÇ thÑng iÁu khiÃn d§n d§n °ãc tñ Ùng hoá. Ý t°ßng dùng robot à thay th¿ con ng°Ýi trong mÙt sÑ công viÇc ã °ãc ngh) tÛi. Do v­y v¥n Á nghiên céu và ch¿ t¡o robot cing không còn là v¥n Á xa l¡. Cing dña trên ý t°Ïng này mà hiÇn nay có r¥t nhiÁu cuÙc thi sáng t¡o robot cho sinh viên trong n°Ûc cing nh° quÑc t¿, mÙt trong nhïng cuÙc thi nh° th¿ là cuÙc thi Robocon ñoc tÕ chéc h±ng nm. Là mÙt sinh viên khoa iÇn tí ViÅn thông sau khi hÍc xong môn Vi xí lí chúng em thi¿t ngh) mình có thà làm mÙt sÑ éng dång nhÏ trong ó áp dång nhïng ki¿n théc Vi xí lí ã hÍc và các vi iÁu khiÃn thông dång. Á tài cça chúng em là thi¿t k¿ robot i theo °òng k» dung mÙt vi iÁu khiÃn khá thông dång là Atmega16.

Á tài cça chúng em co thà nói là không quá phéc t¡p , tuy nhiên trong quá trình xây dñng nó òi hÏi ng°Ýi thñc hiÇn ph£i n¯m khá rõ các ki¿n théc vÁ m¡ch iÇn tí, ki¿n trúc và l­p trình vi iÁu khiÃn AVR. M·c dù không quá phéc t¡p nh°ng të Á tài này chúng ta có thà t¡o ra nhïng robot vÛi nhiÁu éng dång khác trong thñc t¿. Trong quá trình thñc hiÇn Á tài chúng em ã r¥t cÑ g¯ng nh°ng do nhïng h¡n ch¿ vÁ thÝi gian tìm hiÃu cing nh° kinh nghiÇm thñc t¿ nên chúng em không tránh khÏi nhiÁu thi¿u sót. Chúng em r¥t mong nh­n °ãc nhiÁu ý ki¿n óng góp cça th§y cô và các b¡n à Á tài cça chúng em ngày càng hoàn thiÇn h¡n . Chúng em xin chân thành c£m ¡n th§y Ph¡m NgÍc Nam ã h¿t lòng giúp á chúng em hoàn thành Á tài này.

1.0 GiÛi thiÇu vÁ Á tài và s¡ Ó khÑi cça hÇ thÑng.

Á tài thi¿t kÁ robot i theo °Ýng k» dùng vi iÁu khiÃn à iÁu khiÃn, có kh£ nng iÁu khiÃn robot i th³ng, r½ ph£i , r½ trái tuó theo °Ýng k» mà chúng ta v½ ra. Bên c¡nh ó m¡ch c£m bi¿n có thà nh­n bi¿t °ãc các v¡ch tr¯ng trên sân. M¡ch c£m bi¿n ta dùng c·p led thu phát hÓng ngo¡i, ta ph£i iÁu chÉnh sao cho §u ra khi g·p v¡ch tr¯ng t°¡ng éng vÛi méc 1(méc iÇn áp 5v). Và không thà thi¿u °ãc là hÇ thÑng motor

.

S¡ Ó khÑi cça hÇ thÑng:

KHÐI IÀU KHIÂN

ØNG C

KHÐI C¢M BI¾N

KHÐI Xì LÝ

(ATMEGA16)

Trên ây là hình £nh vÁ vi iÁu khiÃn AVR

2.0 Các tiêu chí c§n ¡t °ãc.

Nhïng tiêu chi c§n ¡t °ãc Ñi vÛi s£n ph©m cuÑi cùng:

1.Robot c§n c£m bi¿n °ãc °Ýng k» trên sân.

2. Robot ph£i r½ ph£i , r½ trái °ãc theo °Ýng k» .

3. Tóc Ù cça robot có thà iÁu khiÃn °ãc.

4. Robot có kích th°Ûc vëa ph£i không quá lÛn à có thà di chuyÃn të n¡i này ¿n n¡i khác dÅ dàng .

5. Robot có giá thành không quá cao, tiêu thå nng l°ãng không nhiÁu.

3.0 Mô t£ chi ti¿t hÇ thÑng

3.0.1 KhÑi xí lý trung tâm:

GiÛi thiÇu vÁ vi iÁu khiÃn Atmega16

1. S¡ l°ãc vÁ vi iÁu khiÃn AVR Atmega16

a. MÙt vài dòng VK AVR:

Ï% Dòng ATtiny: ATtiny11, ATtiny12, ATtiny2313, &

Ï% Dòng 90S: AT90C8515, AT90S2313, AT90S8515, &

Ï% Dòng Mega: ATmega8515, ATmega8, ATmega16, ATmega32, ATmega128, ATmega256, &

b. Các ·c tính cçaVK Atmega16:

Ï% Atmega 16 là vi iÁu khiÃn 8 bit, có 32 thanh ghi a nng 8 bit.

Ï% TÑc Ù xí lý lên ¿n 8 triÇu lÇnh trên 1 giây ß t§n sÑ 8 MHZ. Có ngh)a là 1 chu kó máy t°¡ng éng vÛi 1 chu kó th¡ch anh.

Ï% BÙ nhÛ Flash 16KB l­p trình °ãc ngay trên hÇ thÑng, vÛi sÑ l§n ghi sÑ lên tÛi 10.000 l§n.

Ï% BÙ nhÛ SRAM 1KB.

Ï% BÙ nhÛ EEPROM 512 Byte l­p trình °ãc ngay trên hÇ thÑng, vÛi sÑ l§n ghi xóa lên tÛi 100.000 l§n.

Ï% L­p trình khóa à b£o m­t dï liÇu trong bÙ nhÛ ch°¡ng trình Flash và EEPROM.

Ï% C¥u trúc t­p lÇnh kiÃu RISC là kiÃu c¥u trúc có tÇp lÇnh rút gÍn:

- VÛi 131 lÇnh thñc hiÇn trong mÙt chu kó xung nhËp.

- 32*8 thanh ghi chéc nng chung.

- Ho¡t Ùng t)nh hoàn toàn.

Ï% Các ·c tính ngo¡i vi:

- Hai bÙ Ënh thÝi/¿m 8 bit vÛi bÙ chia t§n riêng và ch¿ Ù so sánh.

- MÙt bÙ timer/counter 16 bit vÛi bÙ chia t§n riêng, ch¿ Ù so sánh, và ch¿ Ù b¯t tín hiÇu Capture.

- BÙ ¿m thÝi gian thñc vÛi bÙ dao Ùng riêng cça nó.

- 4 kênh PWM.

- 8 kênh ADC 10 bit

- 8 kênh khuêch ¡i ¡n.

- 7 kênh khuêch ¡i vi sai

- 2 kênh khuêch ¡i vi sai vÛi hÇ sÑ khuêch ¡i là 1x, 10x, ho·c 200x.

- BÙ so sánh t°¡ng tñ có sµn trên chip.

- BÙ Ënh thÝi Watchdog l­p trình °ãc có sµn trên chip.

- UART nÑi ti¿p l­p trình °ãc.

- Giao ti¿p I2C.

- Giao ti¿p SPI.

Ï%Các tính nng ·c biÇt cça vi iÁu khiÃn:

- Ch¿ Ù tiêu thå ít nng l°ãng và ch¿ Ù làm gi£m nng l°ãng tiêu thå.

- Các nguÓn ng¯t bên trong và bên ngoài.

- BÙ dao Ùng RC chu©n bên trong

- Có 6 ch¿ Ù nghÉ: nhàn r×i, ch¿ Ù gi£m nhiÅu ADC, nguÓn l°u trï, Power-down, dñ phòng và mß rÙng dñ phòng.

Ï%Vào ra và óng vÏ:

- 32 chân vào ra l­p trình °ãc.

- óng vÏ PDIP 40 chân.

Ï% iÇn áp ho¡t Ùng: 2.7 EMBED Equation.DSMT4 5.5 V.

Ï% TÑc Ù: 0 8 MHz.

Ï% Méc tiêu thå nng l°ãng ß 1MHz, 3V, 25 EMBED Equation.DSMT4 :

- Ch¿ Ù ho¡t Ùng: 1.1mA

- Ch¿ Ù nhàn r×i: 0.35mA

- Ch¿ Ù Power- down: < EMBED Equation.DSMT4

2. C¥u trúc vi iÁu khiÃn Atmega16

S¡ Ó khÑi cça vi iÁu khiÃn Atmega16

Lõi AVR k¿t hãp mÙt t­p lÇnh giàu vÛi 32 thanh ghi chéc nng chung. T¥t c£ 32 thanh ghi này Áu nÑi trñc ti¿p tÛi ALU, cho phép 2 thanh ghi Ùc l­p °ãc truy nh­p trong mÙt lÇnh ¡n thñc hiÇn trong mÙt chu kó xung nhËp. K¿t qu£ ¡t °ãc là tÑc Ù xí lý nhanh g¥p 10 l§n so vÛi c¥u trúc kiÃu CISC truyÁn thÑng.

S¡ Ó chân Atmega16

Chéc nng các chân cça vi iÁu khiÃn Atmega16:

- VCC chân 10: chân nguÓn.

- GND chân 11: chân ¥t.

- PortA (các chân 33 EMBED Equation.DSMT4 40 ):

+ Port A phåc vå nh° nhïng §u vào t°¡ng tñ tÛi bÙ bi¿n Õi ADC.

+ Là cÕng vào ra 8 bit të PA0 EMBED Equation.DSMT4 PA7 vÛi iÇn trß kéo bên trong, n¿u bÙ bi¿n Õi ADC không sí dång.

- PortB (các chân 1 EMBED Equation.DSMT4 8 ): là cÕng vào ra 8 bit të PB0 EMBED Equation.DSMT4 PB7 vÛi iÇn trß kéo bên trong.

- PortC (các chân 22 EMBED Equation.DSMT4 29 ): là cÕng vào ra 8 bit të PC0 EMBED Equation.DSMT4 PC7 vÛi iÇn trß kéo bên trong.

- PortD (các chân 14 EMBED Equation.DSMT4 21):là các chân RXD, TXD truyÁn nh­n dï liÇu nÑi ti¿p, chân INT0, INT1 t°¡ng éng là ngõ vào cça ng¯t 0, và ng¯t 1. và các chân OC1A, OC1B, ICP1, OC2.

- RESET chân 9: là §u vào tín hiÇu Reset. Khi mÙt tín hiÇu méc th¥p ·t vào vÛi mÙt xung nhÏ s½ sinh ra méc Reset ngay c£ khi không có xung nhËp hÇ thÑng.

- XTAL1, XTAL2 (chân 12 và chân 13): là §u vào và §u ra à nÑi vÛi bÙ dao Ùng bên ngoài.

- AVCC chân sÑ 30: cung c¥p iÇn áp cho cÕng PortA và bÙ bi¿n Õi ADC. Nó nên nÑi ngoài tÛi VCC ngay c£ khi không dùng bÙ ADC. N¿u bÙ ADC °ãc sí dång thì nó nên nÑi tÛi chân VCC thông qua bÙ lÍc thông th¥p.

- AREF chân sÑ 32: là chân iÇn áp tham chi¿u t°¡ng tñ cho bÙ bi¿n Õi t°¡ng tñ sÑ ADC.

3. TÕ chéc bÙ nhÛ cça Atmega16.

AVR có c¥u trúc Harvard, có bÙ nhÛ và °Ýng bus riêng cho bÙ nhÛ ch°¡ng trình và bÙ nhÛ dï liÇu.

BiÃu Ó c¥u trúc MCU AVR

C¥u trúc AVR có hai không gian bÙ nhÛ: không gian bÙ nhÛ dï liÇu và bÙ nhÛ ch°¡ng trình. Ngoài ra, EEPROM cing là bÙ nhÛ dï liÇu. C£ ba không gian bÙ nhÛ trên Áu tuy¿n tính và bình ³ng.

a. BÙ nhÛ dï liÇu

BÙ nhÛ dï liÇu gÓm hai ph§n: bÙ nhÛ RAM và bÙ nhÛ EEPROM, trong ó không gian bÙ nhÛ RAM l¡i °ãc chia làm 3 ph§n: các thanh ghi chéc nng chung, các thanh ghi vào ra và cuÑi cùng là 512B bÙ nhÛ SRAM.

AVR có 32 thanh ghi chéc nng chung, chúng °ãc liên k¿t trñc ti¿p vÛi ALU, ây là mÙt iÃm khác biÇt cça AVR và do ó t¡o cho nó mÙt tÑc Ù xí lý cñc cao. Các thanh ghi °ãc ·t tên të R0 EMBED Equation.DSMT4 R31, và ·c biÇt c·p 6 thanh ghi cuÑi (të R26 EMBED Equation.DSMT4 R31) tëng ôi mÙt t¡o thành các thanh ghi 16 bit sí dång làm con trÏ trÏ tÛi bÙ nhÛ ch°¡ng trình và dï liÇu.Chúng l§n l°ãt có tên là X(X=R27:R26), Y(Y=R29:R28), Z(Z=R31:R30). Không gian các thanh ghi cÕng vào ra bao gÓm các thanh ghi dï liÇu và thanh ghi iÁu khiÃn cho cÕng vào ra. CuÑi cùng là bÙ nhÛ SRAM.

TÕ chéc bÙ nhÛ dï liÇu

C¥u trúc 32 thanh ghi måc ích chung

b. BÙ nhÛ ch°¡ng trình

Atmega16 chéa 16KB bÙ nhÛ Flash l­p trình °ãc cho bÙ nhÛ ch°¡ng trình. Të khi t¥t c£ các c¥u trúc cça AVR có Ù rÙng là 16 ho·c 32 bit, tÕ chéc cça bÙ nhÛ Flash là 8K*16. Vì sñ an toàn cça ph§n mÁm, không gian bÙ nhÛ ch°¡ng °ãc chia làm 2 vùng: vùng khßi Ùng ch°¡ng trình(the boot program) và vùng ch°¡ng trình éng dång(the application program). BÙ nhÛ Flash vÛi sÑ l§n ghi xóa lên tÛi 10,000 l§n. BÙ ¿m ch°¡ng trình PC cça Atmega16 có Ù rÙng 13bit, nh° v­y dùng 8K Ëa chÉ Ã ánh Ëa chÉ bÙ nhÛ ch°¡ng trình.

c. BÙ nhÛ EEPROM

Atmega16 chéa 512B dï liÇu bÙ nhÛ EEPROM. Nó °ãc tÕ chéc nh° mÙt không gian dï liÇu riêng biÇt. EEPROM chËu ñng 100.000 l§n chu kó ghi xóa. CPU truy nh­p vÛi EEPROM b±ng các xác Ënh các thanh ghi Ëa chÉ cça EEPROM, thanh ghi dï liÇu EEPROM và thanh ghi iÁu khiÃn EEPROM.

Thanh ghi Ëa chÉ EEPROM

Bit 15..9 Res: bit dñ trï, ây là nhïng bit dñ trï trong Atmega 16 và luôn luôn Íc là 0.

Bit 8..0 EEAR8..0: Ëa chÉ EEPROM

Thanh ghi Ëa chÉ EEPROM EEARH và EEARL xác Ënh Ëa chÉ EEPROM trong 512 byte không gian bÙ nhÛ EEPROM. Các Byte dï liÇu cça EEPROM °ãc ánh Ëa chÉ tuy¿n tính të 0 ¿n 511. Giá trË khßi §u cça EERA là không xác Ënh.

Giá trË thñc cça EEAR ph£i °ãc xác Ënh tr°Ûc khi truy nh­p EEPROM.

Thanh ghi dï liÇu EEPROM

Bit 7..0 EEDR7..0: dï liÇu EEPROM

à ghi vào EEPROM thì thanh ghi EEDR ph£i chéa dï liÇu c§n °ãc ghi tÛi

EEPROM trong Ëa chÉ °ãc °a ra bßi thanh ghi EEAR. Ã Íc EEPROM thì thanh ghi EEDR ph£i chéa dï liÇu Íc ra të EEPROM t¡i Ëa chÉ ghi bßi thanh ghi EEAR.

Thanh ghi iÁu khiÃn EEPROM

Bit 7..4 Res: bit dñ trï

ây là nhïng bit dñ trï trong Atmega 16 và luôn Íc là 0.

Bit 3 EERIE: CÝ báo EEPROM sµn sàng ho¡t Ùng.

Bit 2 EEMWE: ChÍn ch¿ Ù ghi Master (chç Ùng).

Bit 1 EEWE: cho phép ghi vào trong EEPROM.

Khi Ëa chÉ và dï liÇu ã °ãc thi¿t l­p chính xác, thì bit EEWE ph£i °ãc thi¿t l­p b±ng 1 Ã ghi giá trË vào trong EEPROM. Khi quá trình ghi k¿t thúc thì EEWE °ãc xóa vÁ 0 b±ng ph§n céng.

Bit 0 EERE: cho phép Íc EEPROM

Khi nào Ëa chÉ °ãc thi¿t l­p trong thanh ghi EEAR thì bit EERE °ãc thi¿t l­p lên méc logic 1 tÛi trigger Íc EEPROM.

4. Ch¿ Ù truy nh­p Ëa chÉ cça AVR

Trñc ti¿p, gián ti¿p, thông qua con trÏ&

5. BÙ Timer/Counter và phåc vå ng¯t

Atmega có 3 bÙ Ënh thÝi /bÙ ¿m: 8bit Timer0/Counter0, 16bit Timer1/ Counter1, 8bit Timer2/ Counter2.

a. Timer0/ Counter0

BÙ timer0/ counter0 có thà °ãc thi¿t l­p bßi nguÓn xung bên ngoài ho·c bên trong. NguÓn xung °ãc lña chÍn bßi sñ iÁu khiÃn cça bit CS02:0 trong thanh ghi iÁu khiÃn TCCR0 cça bÙ timer0/ counter0.

Khi không có nguÓn xung (CS02:0=0) (°ãc lña chÍn) timer bË dëng l¡i. Tuy nhiên, giá trË thanh TCNT0 có thà °ãc truy nh­p bßi CPU cho dù xung CLKT0 có hay không.

* Chu×i ¿m °ãc xác Ënh bßi sñ thi¿t l­p bit WGM01 và WGM01 trong thanh ghi iÁu khiÃn TCCR0.

Thanh ghi iÁu khiÃn TCCR0.

Bit7- FOC0 : Bit so sánh §u ra b¯t buÙc

Bit FOC0 chÉ ß méc cao khi bit WGM00 chÉ rõ ch¿ Ù PWM không dùng. Tuy nhiên, Ã £m b£o tính t°¡ng thích vÛi các thi¿t bË trong t°¡ng lai thì bit FOC0=0 khi thanh ghi TCCR0 ghi khi ho¡t Ùng trong ch¿ Ù PWM..Bit FOC0 luôn luôn Íc là 0.

Bit3,6- WGM01:0: Waveform Generation Mode

Hai bit này iÁu khiÃn chu×i ¿m cça bÙ Counter.

Ch¿ Ù ho¡t Ùng

Bit5:4- COM01:0: (Compare Match Output Mode)

Bit 2:0-CS02:0: 3 bit dùng à chÍn Clook

B£ng2: Mô t£ bit chÍn xung Clook.

* Thanh ghi Timer0/Counter0-TCNT0:

Thanh ghi TCNT0 °ãc truy nh­p trñc ti¿p cho c£ thao tác Íc và ghi, tÛi khÑi Timer/counter bÙ ¿m 8 bit.

Thanh ghi TCNT0

Thanh ghi so sánh §u ra - OCR0:

Thanh ghi OCR0

Thanh ghi OCR0 chéa giá trË 8 bit mà liên tåc °ãc so sánh vÛi giá trË bÙ ¿m(TCNT0).

* Thanh ghi TIMSK: thanh ghi MASK ng¯t

* Thanh ghi cÝ ng¯t - TIFR

b. Timer1/ Counter1

Timer1 có thanh ghi TCNT1, thanh ghi so sánh §u ra OCR1A/B và thanh ghi b¯t tín hiÇu §u vào ICR1 Áu là thanh ghi 16 bit, thanh ghi iÁu khiÃn TCCR1A/B là thanh ghi 8 bit.

* Thanh ghi TCNT1 °ãc truy nh­p d°Ûi d¡ng byte cao TCNT1H và byte th¥p là TCNTL. Khi ghi 16 bit lên thanh ghi thì byte cao ph£i °ãc ghi tr°Ûc byte th¥p. Còn khi Íc thì ng°ãc l¡i, byte th¥p ph£i °ãc Íc tr°Ûc byte cao.

Thanh ghi TCNT1

Thanh ghi TCNT1H và TCNT1L truy nh­p trñc ti¿p cho c£ ho¡t Ùng Íc và ghi, tÛi khÑi timer/counter 16 bit bÙ ¿m. Ã £m b£o r±ng c£ hai byte cao và byte th¥p °ãc Íc và ghi Óng thÝi khi CPU truy nh­p thanh ghi, sñ truy nh­p °ãc thñc hiÇn sí dång 8 bit t¡m thÝi thanh ghi byte cao. Thanh ghi t¡m thÝi này °ãc dùng chung bßi t¥t c£ các thanh ghi 16 bit khác.

* Thanh ghi iÁu khiÃn TCCR1A:

Thanh ghi TCCR1A

Bit 7:6 - COM1A1:0: so sánh ch¿ Ù §u ra cça kênh A.

Bit 5:4 - COM1B1:0: so sánh ch¿ Ù §u ra cça kênh B.

Các bit COM1A1:0 và COM1B1:0 iÁu khiÃn(kiÃm soát) hành vi nhïng chÑt so sánh §u ra (OC1A và OC1B t°¡ng éng). N¿u mÙt trong hai bit COM1A1:0 °ãc ghi lên 1, §u ra OC1A è lên nhïng chéc nng bình th°Ýng cça chÑt vào ra I/O °ãc nÑi tÛi. N¿u mÙt trong hai bit COM1B1:0 °ãc ghi lên 1, §u ra OC1B è lên các chéc nng bình th°Ýng cça chÑt I/O °ãc nÑi tÛi. Tuy nhiên, ph£i chú ý r±ng thanh ghi trñc ti¿p dï liÇu (Data Direction Register - DDR) bit t°¡ng éng vÛi chÑt OC1A và OC1B ph£i °ãc thi¿t l­p à cho phép iÁu khiÃn §u ra.

Khi OC1A ho·c OC1B °ãc nÑi tÛi chÑt, chéc nng cça nhïng bit COM1x1:0 phå thuÙc sñ thi¿t l­p cça nhïng bit WGM13:0.

Bit 3 FOC1A: so sánh §u ra b¯t buÙc cça kênh A.( Force Output Compare for Channel A)

Bit 2 FOC1B: so sánh §u ra b¯t buÙc cça kênh B.( Force Output Compare for Channel B)

Bit FOC1A/FOC1B chÉ ß méc tích cñc khi bit WGM13:0 chÉ rõ ch¿ Ù không PWM. Tuy nhiên, Ã £m b£o tính t°¡ng thích vÛi thi¿t bË t°¡ng lai, thì nhïng bit này ph£i °ãc thi¿t l­p ß méc 0 khi TCCR1A ghi khi ho¡t Ùng trong ch¿ Ù PWM. Khi méc logic 1 tÛi bit FOC1A/FOC1B,( an immediate compare match is forced on the Waveform Generation unit). §u ra OC1A/OC1B thay Õi theo sñ thi¿t l­p cça nhïng bit COM1x1:0. Chú ý r±ng nhïng bit FOC1A/FOC1B °ãc thñc hiÇn nh° nhïng xung. Do ó nhïng giá trË hiÇn t¡i trong các bit COM1x1:0 xác Ënh hiÇu éng cça sñ so sánh b¯t buÙc(the forced compare.). Xung trên FOC1A/FOC1B(FOC1A/FOC1B strobe) s½ không phát sinh b¥t kó ng¯t nào mà cing không xóa timer trong Clear Timer trên ch¿ Ù Compare match (CTC) sí dång OCR1A nh° là TOP.

Bit FOC1A/FOC1B luôn luôn Íc là zero.

Bit 1:0 WGM11:0: ch¿ Ù phát sóng.

* Thanh ghi iÁu khiÃn TCCR1B

Thanh ghi TCCR1B

* Thanh ghi so sánh §u ra- 1A: OCR1AH, OCR1AL

* Thanh ghi so sánh §u ra - 1B:OCR1BH, OCR1BL

Thanh ghi OCR1A, OCR1B chéa giá trË 16 bit liên tåc °ãc so sánh vÛi giá trË bÙ ¿m(TCNT1). A match có thà °ãc sí dång à sinh ra mÙt ng¯t so sánh §u ra, ho·c sinh ra mÙt sóng §u ra trên chÑt OC1x. à £m b£o r±ng c£ hai byte cao và th¥p °ãc ghi Óng thÝi khi CPU ghi tÛi nhïng thanh ghi này, sñ truy nh­p °ãc thñc hiÇn sí dång 8 bit t¡m thÝi thanh ghi byte cao. Thanh ghi t¡m thÝi này °ãc sí dång chung cho t¥t c£ các thanh ghi 16 bit khác.

* Thanh ghi INPUT CAPTURE ICR1H, ICR1L

The input capture °ãc c­p nh­t vÛi m×i l§n giá trË bÙ ¿m (TCNT1) x£y ra mÙt sñ kiÇn trên chân chÑt ICP1. Thanh ghi input caputre là 16 bit. Ã £m b£o c£ hai byte cao và th¥p Áu °ãc Íc Óng thÝi khi CPU truy nh­p các thanh ghi này, sñ truy nh­p °ãc thñc hiên sí dång 8 bit thanh ghi byte cao t¡m thÝi (TEMP). Thanh ghi t¡m thÝi này °ãc dùng chunng cho t¥t c£ các thanh ghi 16 bit khác.

c. Timer2/ Counter2

Là bÙ Ënh thÝi 8 bit vÛi thanh ghi truy nh­p là TCNT2 và thanh ghi iÁu khiÃn TCCR2, Áu là thanh ghi 8 bit.

d. Các Vector ng¯t và các hàm phåc vå ng¯t

Vector No. Program

Address Source Interrupt Definition 1 $000(1) RESET External Pin, Power-on Reset, Brown-out

Reset, Watchdog Reset, and JTAG AVR

Reset 2 $002 INT0 External Interrupt Request 0 3 $004 INT1 External Interrupt Request 1 4 $006 TIMER2 COMP Timer/Counter2 Compare Match 5 $008 TIMER2 OVF Timer/Counter2 Overflow 6 $00A TIMRE1 CAPT Timer/Counter1 Capture Event 7 $00C TIMER1 COMPA Timer/Counter1 Compare Match A 8 $00E TIMER1 COMPB Timer/Counter1 Compare Match B 9 $010 TIMER1 OVF Timer/Counter1 Overflow 10 $012 TIMER0 OVF Timer/Counter0 Overflow 11 $014 SPI, STC Serial Transfer Complete 12 $016 USART, RXC USART, Rx Complete 13 $018 USART, UDRE USART Data Register Empty 14 $01A USART, TXC USART, Tx Complete 15 $01C ADC ADC Conversion Complete 16 $01E EE_RDY EEPROM Ready 17 $020 ANA_COMP Analog Comparator 18 $022 TWI Two-wire Serial Interface 19 $024 INT2 External Interrupt Request 2 20 $026 TIMER0 COMP Timer/Counter0 Compare Match 21 $028 SPM_RDY Store Program Memory Ready

B£ng reset và vector ng¯t

Các hàm ng¯t cça Atmega16:

· timer0_ovf_isr : tràn Timer0/counter0

· timer0_compa_isr: for timer/counter output compare A match

· timer0_compb_isr: for timer/counter output compare B match.

· timer1_ovf_isr: tràn timer1/counter1

· timer1_comp_isr or timer1_compa_isr, timer1_compb_isr and timer1_copmc_isr for timer/counter output compare match

· timer1_capt_isr: for timer/counter input capture

· timer2_ovf_isr : tràn Timer2/counter2

· timer2_comp_isr: for timer/counter output compare match

Truy nh­p hÇ thÑng ng¯t cça AVR °ãc thñc hiÇn bßi të khóa Interrupt.

VD.

Interrupt [ ] void timer0_ovf_isr(void)

Trình phåc vå ng¯t.

Khi có tín hiÇu báo ng¯t, CPU s½ t¡m dëng mÍi công viÇc ang thñc hiÇn l¡i và l°u vË trí ang thñc hiÇn ch°¡ng trình(con trÏ PC) vào ngn x¿p. Sau ó trÏ tÛi vector phåc vå ng¯t và thñc hiÇn ch°¡ng trình phåc vå ng¯t, cho tÛi khi g·p lÇnh RETI(return from interrupt) thì CPU l¡i l¥y PC të ngn x¿p ra và ti¿p tåc thñc hiÇn công viÇc mà tr°Ûc khi có ng¯t nó ang thñc hiÇn.

Trong tr°Ýng hãp có nhiÁu ng¯t yêu c§u cùng mÙt thì CPU s½ l°u các cÝ báo ng¯t ó l¡i và thñc hiÇn l§n l°ãt các ng¯t theo méc °u tiên.

6. GiÛi thiÇu chéc nng ADC cça vi iÁu khiÃn ATmega16.

a. ·c iÃm:

Ï% Ù phân gi£i 10bit.

Ï% Sai sÑ o không tuy¿n tính là 0.5 LSB.

Ï% Ù chính xác tuyêt Ñi là ± 2LSB.

Ï% ThÝi gian bi¿n Õi là 13 260 uS.

Ï% Có thà lên tÛi 76.9 kSPS (Lên tÛi 15kSPS ß Ù phân gi£i tÑi a.).

Ï% 8 §u vào kênh ¡n.

Ï% 7 kênh vi sai.

Ï% 2 kênh vi sai vÛi hÇ sÑ khuy¿ch ¡i là 10x và 200x.

Ï% Tùy chÍn iÁu chÉnh Ù lÇch trái cho k¿t qu£ ADC.

Ï% D£i iÇn áp §u vào cho ADC là të 0 Vcc.

Ï% iÇn áp tham chi¿u bên trong 2.56V .

Ï% Ch¿ Ù chuyÃn Õi ¡n ho·c bi¿n Õi tñ do.

Ï% Ng¯t x£y ra khi hoàn thành bi¿n Õi ADC.

Ï% Có thÝi gian trÅ Ã lo¡i nhiÅu.

ATmega16 sí dång ADC theo kiÃu x¥p xÉ liên ti¿p 10 bit. Nó cing có các kiÃu k¿t hãp khác nhau và t¡o ra 16 §u vào khác nhau. Hai trong sÑ các §u vào này (ADC1, ADC0 và ADC3,ADC2) vÛi t§ng khuy¿ch ¡i có thà l­p trình °ãc, cung c¥p các b°Ûc khu¿ch ¡i 0dB (1x), 20dB (10x), ho·c 46dB (200x) ß iÇn áp vi sai tr°Ûc khi bi¿n Õi ADC. 7 kênh §u vào khu¿ch ¡i vi sai cùng chia s» §u âm chung (ADC1), trong khi các §u vào ADC khác có thà chÍn làm §u vào d°¡ng. N¿u hÇ sÑ 1x ho·c 10x °ãc sí dång thì Ù phân gi£i 8bit °ãc sí dång. N¿u hÇ sÑ là 200x thì Ù phân gi£i 7bit °ãc sí dång.

ADC có mÙt mÙt nguÓn riêng c¥p à ho¡t Ùng à £m b£o Ù chính xác, ó là chân AVCC. Và chân này không °ãc khác ± 0.3V so vÛi iÇn áp cung c¥p cho vi iÁu khiÃn Vcc.

iÇn áp tham chi¿u 2.56V ho·c AVCC °ãc cung c¥p ngay trên chip. Và ta có thà chÍn iÇn áp tham chi¿u tách riêng ra ß chân AREF bßi mÙt tå à chÑng nhiÅu.

b. Ho¡t Ùng.

ADC bi¿n Õi mÙt iÇn áp t°¡ng tñ §u vào thành giá trË sÑ 10 bit thông qua ph°¡ng pháp x¥p xÉ liên ti¿p. Giá trË th¥p nh¥t là giá trË ¥t GND và giá trË cao nh¥t là iÇn áp ß chân AREF (téc chân iÇn áp tham chi¿u) trë i 1 LSB. Có thà lña chÍn iÇn áp tham chi¿u là AVCC ho·c 2.56V s½ °ãc nÑi tÛi chân AREF, và có thà sí dång mÙt iÇn áp tham chi¿u bên ngoài bßi nÑi tÛi chân AREF nh°ng thông qua mÙt tå iÇn à chÑng nhiÅu. ADC bi¿n Õi thành giá trË 10 bit và °ãc chéa ß thanh ghi dï liÇu. BÙ ADC có mÙt ng¯t riêng và s½ °ãc kích ho¡t khi mÙt bi¿n Õi °ãc hoàn thành.

c. Các kênh §u vào ADC.

Khi thay Õi kênh °ãc chÍn, ng°Ýi sí dång nên xét theo nguyên t¯c à ch¯c ch¯n là kênh úng °ãc lña chÍn:

Trong ch¿ Ù Single Conversion luôn luôn chÍn kênh tr°Ûc khi b¯t §u bi¿n Õi. Kênh °ãc chon bË thay Õi 1 chu kó xung nhËp ADC sau khi ghi nó tÛi ADSC. Tuy nhiên, ph°¡ng pháp ¡n gi£n nh¥t là chÝ cho sñ bi¿n Õi °ãc hoàn thành tr°Ûc khi thay Õi kênh °ãc chÍn.

Trong ch¿ Ù Free Running luôn chÍn kênh tr°Û khi b¯t §u chuyÃn Õi §u tiên. Kênh °ãc chon bË thay Õi 1 chu kó xung nhËp ADC sau khi ghi nó tÛi ADSC. Tuy nhiên, ph°¡ng pháp ¡n gi£n nh¥t là chÝ cho sñ bi¿n Õi °ãc hoàn thành, và sau ó thay Õi kênh °ãc chÍn. Khi l§n chuyÃn Õi ti¿p theo °ãc tñ Ùng b¯t §u, k¿t qu£ s½ trß l¡i kênh chÍn. Sñ chuyÃn Õi ti¿p theo s½ trß l¡i kênh chÍn mÛi.

d. iÇn áp tham chi¿u ADC.

iÇn áp tham chi¿u ADC (VREF) chÉ ra d£i bi¿n Õi cho ADC. VÛi ch¿ Ù bi¿n Õi kênh ¡n thì thì giá trË v°ãt quá VREF s½ sinh ra k¿t qu£ §u ra là 0x3FF. VREF có thà lña chÍn là AVCC, iÇn áp tham chi¿u trong 2.56V, ho·c iÇn áp ngoài thông qua chân AREF.

e. Ch¿ Ù chÑng nhiÅu ADC.

·c tính chÑng nhiÅu cho phép bi¿n Õi trong ch¿ Ù ngç Ã gi£m nhiÅu të CPU và các thi¿t bË ngo¡i vi khác.

f. Ù chính xác cça ADC.

VÛi bi¿n Õi ¡n n bit mÙt iÇn áp tuy¿n tính giïa GND và VREF trong 2n b°Ûc thì giá trË th¥p nh¥t ß §u ra là 0 và cao nh¥t là 2^n -1.

Vài thông sÑ mô t£ Ù lÇch të tr¡ng thái lí t°ßng:

Offset (bù) : Ù lÇch cça bi¿n Õi §u tiên (0x000 tÛi 0x001) so vÛi bi¿n Õi lý t°ßng (ß 0.5 LSB). Giá trË lý t°ßng: 0 LSB.

Sai sÑ khu¿ch ¡i: Sau khi iÁu chÉnh Ù lÇch (Offset), sai sÑ khu¿ch ¡i làm lÇch chuyÃn Õi cuÑi cùng (0x3FE tÛi 0xFF) so vÛi chuyÃn Õi lý t°ßng (ß 1.5 LSB d°Ûi giá trË cñc ¡i). Giá trË cñc ¡i: 0 LSB.

Ù không tuy¿n tính tích phân (INL): Sau khi iÁu chÉnh cho giá trË Ù lÇch và sai sÑ khu¿ch ¡i, thì Ù không tuy¿n tính tích phân là Ù lÇch cñc ¡i cça mÙt chuyÃn Õi thñc so vÛi chuyÃn Õi lý t°ßng. Giá trË lý t°ßng là: 0 LSB.

Ù không tuy¿n tính vi sai (DNL): Ù sai lÇch cñc ¡i cça Ù rÙng giá trË th­t (kho£ng cách giïa hai l§n chuyÃn Õi liÁn kÁ ) të Ù rÙng giá trË lý t°ßng (1 LSB). Giá trË lý t°ßng: 0 LSB.

Sai sÑ l°ãng tí: do l°ãng tí cça iÇn áp §u vào là mÙt sÑ xác Ënh, mÙt d£i iÇn áp §u vào (rÙng 1 LSB) s½ có cùng giá trË. Luôn luôn là ±0.5 LSB.

Ù chính xác tuyÇt Ñi: Sai sÑ cñc ¡i cça mÙt chuyÃn Õi thñc (không iÁu chÉnh ) so vÛi chuyÃn Õi thñc, ó là sñ k¿t hãp cça t¥t c£ sai sÑ các y¿u tÑ trên. Giá trË lý t°ßng: ±0.5 LSB.

g. K¿t qu£ bi¿n Õi:

Sau khi mÙt bi¿n Õi hoàn thành , k¿t qu£ s½ °ãc chéa trong thanh ghi dï liÇu. VÛi bi¿n Õi ¡n k¿t qu£ là:

Trong ó: VIN là iÇn áp §u vào và VREF là iÇn áp tham chi¿u. 0x000 là giá trË ¥t và 0x3FF là giá trË iÇn áp tham chi¿u trë i 1 LSB.

N¿u kênh k0Hnpr¤¦¨ºæ ( x ² º Â Ê Ò Ô ö ø

:

f

l

óêÞÕÞÊ¿Ê·©Ê·óê'ˆsg[OChíFŒh

5CJaJhÌ-mh

6CJaJhÌ-mhNN_6CJaJhíFŒhš4x5CJaJhíFŒhnU²5CJaJhnU²5CJaJhNN_5CJaJhíFŒhfy5CJaJhíFŒhNN_5CJaJhíFŒhü8c56CJ(aJ( híFŒCJaJ híFŒh>/CJaJ híFŒhü8cCJaJh))5CJ(aJ(híFŒhü8c5CJ(aJ(híFŒ5CJaJhíFŒhü8c5CJaJræx Ô Ö ø ú ü þ

f

h

î

ð

þ

ˆ

Š

Ž

÷òéééééééééééáááááááááá××

ÆÁgd)) $a$gd))

Ægd))gd)) $a$gd))¨lrmýý

¢

Ä

ô

,

H

x

Ð

Þ

à

þ

8

:

@

Z

j

ˆ

Š

Œ

Ž

²

'

À

v

ª

" $ ® ° ,.óçÛóçóçÛóçÛóÏóÆçóçÛóÏó绳«ç€r»rg»r»r»r híFŒhÃ#rCJaJhíFŒhNN_5CJ\aJhíFŒhNN_56CJ\aJhÌ-mh

56CJaJhÌ-mhNN_56CJaJ h$XCJaJ hwCJaJ híFŒhNN_CJaJhw5CJaJhíFŒhfy5CJaJhíFŒh·O²5CJaJhíFŒhNN_5CJaJhíFŒh

5CJaJ(

'

À

è

ò

þ

õõééééKžkd$$If-l4Ö ""Ö\"ÿ¸§,"{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4

$$Ifa$gd))

ÆÁgd))

j

v

Ö

óçççIçççžkdÑ$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4

$$Ifa$gd))

$$Ifa$gd)) " $ b ¤ ¬ ® óUóóóóžkd¢$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4

$$Ifa$gd))® ° à "*,aUUUU

$$Ifa$gd))žkds$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4,.@‚ŠŒaUUUU

$$Ifa$gd))žkdD$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4.ŒŽšœ‚„ÖØÚæèê

026¤¦ªöøü:<@DJVZnˆŠŽ¢ª®ºÄàæèìT õçõçõçõçõçõçõÛçÏõĸ­Ä¸­Ä¸­Ä¸­Ä¡•¡¸¡¸­Ä¡•Ä‰¸‰¸­Ä~ híFŒh yvCJaJhíFŒh yv5CJaJhíFŒh‹]5CJaJhíFŒhÃ#r5CJaJ híFŒh(p°CJaJhíFŒhŠlR5CJaJ híFŒhŠlRCJaJhíFŒhNN_5CJaJhíFŒhNN_6CJaJhíFŒhNN_5CJ\aJ híFŒhNN_CJaJ0ŒŽ'öþaUUUU

$$Ifa$gd))žkd$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4N˜šaUIII

$$Ifa$gd))

$$Ifa$gd))žkdæ$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4šœÄ aUUUU

$$Ifa$gd))žkd·$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf48z€‚aUUUU

$$Ifa$gd))žkdˆ$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4‚„ŠÌÔÖaUUUU

$$Ifa$gd))žkdY $$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4ÖØÚäæaULU $Ifgd))

$$Ifa$gd))žkd*$$If-l4Ö ""Ö\"ÿ¸§,"€{€©

€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö

laöf4æèìtj[

ÆÁ$Ifgd))

ÆÁgd))‹kdû$$If-l4Ö "°ÖF"ÿ¸§,"€$ÿÿÿÿÿÿÿÿ€ï€...Ö0ÿÿÿÿÿÿ ö6ööÖ

ÿÿÿÖ

ÿÿÿÿÿÿÖ

ÿÿÿÿÿÿÖ

ÿÿÿ4Ö

laöf4

04˜ŽŽŽ{h$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))

ÆÁgd))gkdÄ $$If-lÖ "| Ö"ÿ,"˜"

tàÖ0ÿÿÿÿÿÿ ö6öÖÿÖÿÖÿÖÿ4Ö4Ö

laö46¤¨ªö©-ƒ--Ukd‡

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))Ukd

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laööúü:>@ì-ƒì-Ukd}

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))Ukd

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))@ˆŒŽæêìÙƒìÙUkdø

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))êì' d f Î ©-ƒ--Ukdî

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))Ukds

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laöT ^ ' b f „ ˆ Œ Ž Ì Î Ð ü 468¨ª¬ Lv¨'¶º $JLNPTlõêßêÓêÓŹӱê¹êßê߱ꦱ깚Žê±ê±êÓ‚vÓß±êk híFŒh:L¬CJaJhíFŒh:L¬5CJaJhíFŒh‹]5CJaJhíFŒhÃ#rCJ\aJhíFŒh:L¬CJ\aJ híFŒhÃ#rCJaJ h$XCJaJhíFŒhŠlRCJ\aJhíFŒhŠlR5CJ\aJhíFŒhŠlR5CJaJ híFŒh(p°CJaJ híFŒhŠlRCJaJ híFŒh‡2UCJaJ&Î Ò Ô 6:<ì-ƒì-Ukdä

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))Ukdi

$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))<¨®°"ìÙƒìÙUkd_ $$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))"$¶¼¾ ©-ƒ--UkdU$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))UkdÚ $$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö LRTì-ƒì-UkdK$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))UkdÐ$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))l¨ª¬®²îðôøJLPTX\-˜œ ¤Àòôø

'bfjr| ¢¦ª²¼õêß×êõê×êõê×êÌÁµê×ꩵÌê×êÌê×ê'...y×n'bhíFŒh

5CJaJ híFŒh

{CJaJhíFŒh

{5CJaJhíFŒhIh5CJaJhíFŒh‡2U5CJaJhíFŒh‹]5CJaJhíFŒhŠlR5CJaJhíFŒhFg5CJaJ híFŒh‹]CJaJ híFŒhFgCJaJ h$XCJaJ híFŒh(p°CJaJ híFŒhŠlRCJaJ híFŒh÷ CJaJ&Tª°²ðöìÙƒìÙUkdÆ$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))öøLRT˜©-ƒ--Ukd¼$$If-l "VÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))UkdA$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö˜ž ôúüì-ƒì-Ukd²$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))Ukd7$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))übhj¢¨ìÙƒìÙUkd-$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))¨ª ž‹x$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))akd¨$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laöpÖ ÿÿÿÿÿÿÿÿÿÿÿÿ"*4XZ\^bz|€„²'¸¼

468:˜¬¼=?If¢°óèàÕɽ±óèàÕ¥óàÕ¥™àŽ¥™àŽ¥™èàŽƒwŽlŽƒlƒa híFŒh‡2UCJaJ híFŒhIhCJaJhÌ-mh®m5CJaJ híFŒh®mCJaJ híFŒhŠlRCJaJhíFŒhŠlR5CJaJhíFŒhkE»5CJaJhíFŒhv3 5CJaJhíFŒh‡2U5CJaJhíFŒh‹]5CJaJ híFŒh

{CJaJ h$XCJaJ híFŒh(p°CJaJhíFŒh

{5CJaJ% "Z'ž‹x$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))akd: $$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laöpÖ ÿÿÿÿÿÿÿÿÿÿÿÿ'b|‚ž‹x$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))akdÌ $$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laöpÖ ÿÿÿÿÿÿÿÿÿÿÿÿ‚„'ºž‹x$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))akd^$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laöpÖ ÿÿÿÿÿÿÿÿÿÿÿÿº¼

6©-ƒ--Ukdk$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))$$„

&P#$/„'Ifa$gd))Ukdð$$If-l "åÖ0"ÿY-Ë!€Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö6<>¼>¿? 8$

*0,ì-Œ„Œ„Œsfff

$

ÆÁa$gd))$

ÆÁ„'^„'a$gd)) $a$gd))

ÆÁgd))Ukdæ$$If-l "åÖ0"ÿY-Ë!Å-r

6P"

"' ö6ööÖÿÿÖÿÿÖÿÿÖÿÿ"'4Ö

laö$$„

&P#$/„'Ifa$gd))

°¹¾¿? 4<Rhþ-$!¼!¾!8$à&ä&R'6)8):)<)**

*

*h*~* +Æ+Î+,,2,øêÜÑŹ®£˜®˜®˜£˜£‚w‚w‚w‚w‚w‚w£‚wkÅ_híFŒhÆx5CJaJhÌ-mhs5CJaJ híFŒhsCJaJ híFŒh9ÏCJaJ híFŒh\*¶CJaJ híFŒh¡ 'CJaJ híFŒhÚ@uCJaJ híFŒhÆxCJaJhÌ-mh¡ '5CJaJhÌ-mhÆx5CJaJ híFŒh®mCJaJhÌ-mhŠlR56CJaJhÌ-mhIh56CJaJ h(#-CJaJ#0,2,„/ˆ/À/Â/È/Ê/ê/ú/ü/òòòäÚÚÄ«««$

Æ¢$„„M& #$/„'Ifa$gd))

Æ¢$„„M& #$/„'Ifgd))

ÆÁgd))

Æ„Lÿ^„Lÿgd))

$

ÆÁa$gd))

2,¤,Ä,Ê,Þ,à,-z-,/‚/„/†/ˆ/Ž/¼/¾/Â/È/Ê/è/ê/ò/ö/ú/ü/þ/0000&0õêõêõêõêßÔßõȼȼ°¥™„{„o¥¼c™M™+jhíFŒhfy5CJUaJmHnHuhíFŒhÆx5CJaJhíFŒh vÐ5CJaJh vÐ5CJaJh vÐh vÐ5CJaJhfy5CJaJhíFŒhfy5CJaJ híFŒhfyCJaJhíFŒhgeˆ5CJaJhíFŒh˜f45CJaJhíFŒh‹]5CJaJ híFŒh9ýCJaJ híFŒhˆ&šCJaJ híFŒh ¯CJaJ híFŒhðCJaJü/þ/00$0Œ‚gg$

ÆÁ$„¹„*& #$/„'Ifa$gd))

ÆÁgd))skd[$$If-lÖ "åÖ"ÿ

6 ""M"'Ö0ÿÿÿÿÿÿ ö6ööÖÿÖÿÖÿÖÿ"'4Ö4Ö

laö$0&0*0@0V0Œsss$

Æ¢$„'„9& #$/„'Ifa$gd))skd»$$If-lÖ "vÖ"ÿ

6 "¹"*"'Ö0ÿÿÿÿÿÿ ö6ööÖÿÖÿÖÿÖÿ"'4Ö4Ö

laö&0(0V0X0Z0\0b0d0j0†0Ú0Ü011Š1æ1è1'3b3l3n3z3|3~3 4ðäÙÍÁ¶§¶™ui^SiSHSHSHSH híFŒh³2§CJaJ híFŒh5~ CJaJ híFŒhUaÐCJaJhíFŒhUaÐ5CJaJhÌ-mhUaÐ5CJaJhíFŒh˜f46CJaJhíFŒhUaÐ6CJaJhíFŒhfy56CJaJj{híFŒhUaÐCJUaJ híFŒhgeˆCJaJhíFŒhgeˆ5CJaJhíFŒh˜f45CJaJ híFŒhfyCJaJhíFŒhfy5CJaJjhíFŒhíFŒCJUaJV0X0Z0\0^0'0b0f0j0Ü01Œ‚‚}}}}lcc

Æ¢gd))

Æ¢„h„˜þ^„h'„˜þgd))gd))

ÆÁgd))skd$$If-lÖ "mÖ"ÿ°

6 "'"9"'Ö0ÿÿÿÿÿÿ ö6ööÖÿÖÿÖÿÖÿ"'4Ö4Ö

laö

1Š1è1V2²2~3 44H4€4Ì45Z5¼56¶6

77†8óóóóßóóÖÖÖÖʺºª¢ªª $a$gd))$„ЄLÿ^„Ð'„Lÿa$gd))$„8„äý^„8'„äýa$gd))

$„Ò^„Òa$gd))

Æ¢gd))$

Æ¢„'„Lÿ^„''„Lÿa$gd))

$

Æ¢a$gd)) 44|4~4€4‚45(5V5X5Z5^5¼5À566¶6È67

7

7Ž77'7„8†8ˆ8Š899D9F9H9j9n92:4:6:\:õéÝÑÝÑÃ'蜜œÃ'„ÄÄœxÄjÄahíFŒCJ\aJhíFŒh \‰6CJ\aJhíFŒh‡2UCJ\aJhíFŒh \‰CJ\aJhíFŒh³2§CJ\aJhíFŒhfyCJ\aJhíFŒh³2§6CJaJhíFŒh³2§56CJ\aJhíFŒh³2§6CJ\aJhíFŒh³2§5CJaJhíFŒh‹]5CJaJhÌ-mh³2§5CJaJ híFŒh yvCJaJ&†8F9l94:Ò:Z;Ä;<@<r<þ<È=P>ˆ>Ì>?l?ïßïïÏ¿¿¿³§§-----$„ „¬ù^„ '„¬ùa$gd))

$„Ð^„Ða$gd))

$„'„a$gd))$„ „0ý^„ '„0ýa$gd))$„ÿ„^„ÿ'„a$gd))$„ ÿ„ ^„ ÿ'„ a$gd))$„ЄLÿ^„Ð'„Lÿa$gd))\:|:º:¼:Ð:Ò:Ô:@<D<²<ò<J=|=È=ä=P>l>ˆ>¤>Ì>è>ì>??6?:?l?ˆ?Œ?Ê?

@@2@‚@ž@A,AlAˆAªAÆAèAêA<B>BZB^BèBêBìBCVCXCtC'C¶C'D"DºDØDE8E>EhElEšEóêÞóÐÄó¸óÞó¸óêóêóêóêÄóÄêÄóêÄóÄóêóêóêóêóêóÄó¬ê¬ó¬óêó¬êó¬ó¬óêóê¬ó¬óhíFŒhš;CJ\aJhíFŒhfyCJ\aJhíFŒh÷"¶CJ\aJhíFŒh³2§6CJ\aJhíFŒh \‰CJ\aJhíFŒCJ\aJhíFŒh³2§CJ\aJAl?@‚@AlAªAèA>BêBXC¶C'DºDEhEàE

F"FêÚÚÚÚÚʺºº®ÊÚšÊÊÊ$

ÆЄ „¬ù^„ '„¬ùa$gd))

$„Ð^„Ða$gd))$„8„ û^„8'„ ûa$gd))$„8„äý^„8'„äýa$gd))$„ „¬ù^„ '„¬ùa$gd))$

Æì „ „¬ù^„ '„¬ùa$gd))šEœEÊEÌEÎEÐEàEäE

F FZF\FŠFŒFŽFF"F²F¸FæFG8GVG†GˆG¶G¸GºG¼G¾GïãѾïã²ã²ãïã ïㄲã„ã„ãïãr_ïShíFŒhU%ðCJ\aJ$jû„híFŒh³2§CJEHöÿU\aJ#j»ZÏK

híFŒh³2§CJUVaJh'zCJ\aJ$j1‚híFŒh³2§CJEHúÿU\aJ#j7ZÏK

híFŒh³2§CJUVaJhíFŒhš;CJ\aJ$j~híFŒh³2§CJEHúÿU\aJ#jSVÐK

híFŒh³2§CJUVaJhíFŒh³2§CJ\aJ jhíFŒh³2§CJU\aJ"FæF8G¾GHH¸H.KDKFKHKtKvKxKzK|K~K€K‚K„K†KˆKŠKŒKŽKïïïïçççççÛçÒÒÒÒÒÒÒÒÒÒÒÒÒ

Æ¢gd))

$„ ^„ a$gd)) $a$gd))$„ „¬ù^„ '„¬ùa$gd))¾GÈGHHH

H¸H.K0KDKFKHKjKrKtKvKK KL~L€L‚L„LˆLŽLL¦L¨LMòæÚæÄæ¹£-ŒÚŒ¹Œ¹-xoxcxcxcxWIhíFŒhÞ&×6CJ\aJh'zhËvš5CJaJh'zh'z5CJaJhËvš5CJaJh'z5CJaJ híFŒh³2§CJaJ híFŒhµ>„CJaJhíFŒhÞ&×5CJaJ+jhíFŒhÞ&×5CJUaJmHnHu híFŒhÞ&×CJaJ+jhíFŒhÞ&×CJU\aJmHnHuhíFŒhµ>„CJ\aJhíFŒhµ>„5CJaJhíFŒhµ>„5CJ\aJŽKK¢K¤KLLL¦L¨LMLMŽM

N'NŠO¤PÀQNSˆTBUæVšWöîîîîîîîîÞÞÞÒƺºººººº

$„Lÿ^„Lÿa$gd))

$„^„a$gd))

$„†^„†a$gd))$„Lÿ„Æý^„Lÿ'„Æýa$gd)) $a$gd))

Æ¢gd))MM MMJMZMŒMœMÈMÊMøMúMüMþM

N N'N˜N¶N¸NÎNÐNþNOOOˆOŠO'O¶OäOæOèOêOòäÖʾʾʭʛˆ­Ê¾Ê|Ê|Ê­Ê›i­Ê¾Ê­Ê›V­$j>híFŒhÞ&×CJEHüÿU\aJ$jŠhíFŒhÞ&×CJEHüÿU\aJhíFŒh^0CJ\aJ$jà‡híFŒhÞ&×CJEHüÿU\aJ#jR^ÏK

híFŒhÞ&×CJUVaJ jhíFŒhÞ&×CJU\aJhíFŒh+CJ\aJhíFŒhÞ&×CJ\aJhíFŒhÞ&×6CJ\aJhíFŒh+6CJ\aJhíFŒhÞ&×5CJ\aJ!êOPP.P0P^P'PbPdP¢P¤PÎPÐPþPQQQ2Q4QJQLQzQ|Q~Q€Q¾QÀQêQìQRRR RLSNSPS†TóçóÖóıÖó¥óÖóÄ'ÖóçóÖóÄÖó¥óÖóÄlÖó¥^óhíFŒhÞ&×5CJ\aJ$jú-híFŒhÞ&×CJEHüÿU\aJ$jK•híFŒhÞ&×CJEHüÿU\aJ$jœ'híFŒhÞ&×CJEHüÿU\aJhíFŒhc0bCJ\aJ$jíhíFŒhÞ&×CJEHüÿU\aJ#jR^ÏK

híFŒhÞ&×CJUVaJ jhíFŒhÞ&×CJU\aJhíFŒh^0CJ\aJhíFŒhÞ&×CJ\aJ$†TˆT@UBUäVæV˜WšW¢WÚWÜWðWÐXÒXY(YZY\Y^YÖZÚZøZúZóçóçóçÛÍÁµ©µÁƒÁzncUG9híFŒh®m56CJaJhíFŒh yv56CJaJhíFŒhÉ\Û56CJaJ híFŒh yvCJaJhíFŒhÖÆ5CJaJhÞ&×5CJaJhíFŒhÃ#r5CJaJ2j©šhíFŒh yvB*CJOJQJU^JaJphhíFŒhc0b5CJaJhíFŒh yvCJ\aJhíFŒh yv5CJaJhíFŒh yv5CJ\aJhíFŒhU%ðCJ\aJhíFŒhÞ&×CJ\aJhíFŒhc0bCJ\aJšWÜW²XÐXÔX\Y^YÖZúZ"\JaNaPaØaÚaæaèatb¢b²f'f¸fÜf

ióóëßÖÖÆóóóëëëëëóëóóëëóó$„Lÿ„^„Lÿ'„a$gd))

Æ¢gd))

$„†^„†a$gd)) $a$gd))

$„Lÿ^„Lÿa$gd))úZ˜\œ\^^F^H^J^L^¨^ª^Ø^Ú^Ü^Þ^JaLaPa‚aªaØaÚaâaäaèa*btbvbõéõÚõÈ·ÚõÚõȦÚõ-õ‹s‹ébé‹sThíFŒhÉ\Û56CJaJ j;híFŒh yv5CJUaJhíFŒhÉ\Û6CJaJhíFŒhÃ#r5CJaJhíFŒhÉ\Û5CJaJjÎühíFŒh yvCJUaJ!júhíFŒh yvCJEHüÿUaJ!jn÷híFŒh yvCJEHüÿUaJ#jêžÐK

híFŒh yvCJUVaJjhíFŒh yvCJUaJhíFŒh yv5CJaJ híFŒh yvCJaJvbzb¢b'f¶f¸f¾fÜfii>i@iriºl¼lôl&m:o<o>o¬oÂpÄp&q(q:tòäÙŶ¨äÙ™ÙÙrÙÙcÙÙ¶ÙKÙ/híFŒh yv5B*CJOJQJ\^JaJphÿjßÆhíFŒh yvCJUaJjû·híFŒh yvCJUaJhíFŒh yv6CJaJhíFŒh¢9>*CJaJj

híFŒh yvCJUaJhíFŒhÉ\Û56CJaJhíFŒh yvB*CJaJphÿ&jþshíFŒh yvB*CJUaJphÿ híFŒh yvCJaJhíFŒh yv56CJaJhíFŒh^056CJaJ

i iri*jrj0lºlÀl&mnmn:o>o@o¬oâobpÄp(q‚qs÷÷ëëÛÏ÷÷ë¿ë÷÷÷ë÷ë¯ëë$„Lÿ7$8$H$^„Lÿa$gd))$„Lÿ„Ð^„Lÿ'„Ða$gd))

$„Ð'„Ða$gd))$„Lÿ„^„Lÿ'„a$gd))

$„Lÿ^„Lÿa$gd)) $a$gd)) sJs:t‚tØt uöu0vÐw*yöy"zžzðzÒ|&}'}-}~j~n~v~óßó×óóóóóó××óóÇ×»»Ç»»

$7$8$H$a$gd))$„Lÿ7$8$H$^„Lÿa$gd)) $a$gd)) $„Lÿ„Ð7$8$H$^„Lÿ'„Ða$gd))

$„Lÿ^„Lÿa$gd)):t†tØt u(uXuZu²u'uàuâuöuøuþu vv0vTvXvºw¼wy

yöyøyfzšzðzòz"|-|ô|$}&}óèóàèàèàèàèóÒĹÄèàèàè­èžè'è‡èàèmV,híFŒhÉ\ÛCJOJPJQJ^JaJnHtH2híFŒhÉ\Û5CJOJPJQJ\^JaJnHtH híFŒhÒ

'CJaJhíFŒhÉ\Û6CJaJjé×híFŒh¢9CJUaJhíFŒhÉ\ÛCJH*aJ hÖÆ56CJaJhíFŒhÉ\Û56CJaJhíFŒhû7È56CJaJ hÖÆCJaJ híFŒhÉ\ÛCJaJhíFŒhÉ\Û5CJaJ!&}'}"}°}ì}~0~4~h~j~l~r~t~v~x~z~Ì~Î~Fl€n€p€¨€ú€õæõÛÏõÁ³Á¤õ•õ†õzizõXIõÛjéhíFŒhÉ\ÛCJUaJ híFŒhÉ\ÛCJOJQJ^JaJ jÒhíFŒhÉ\ÛCJU\aJhíFŒhÉ\ÛCJ\aJjíšhíFŒhÉ\ÛCJUaJj$fhíFŒhÉ\ÛCJUaJj4:híFŒhÉ\ÛCJUaJhíFŒhÉ\Û6CJ\aJhíFŒhÉ\Û5CJ\aJhíFŒhÉ\Û6CJaJ híFŒh¢9CJaJj!êhíFŒhÉ\ÛCJUaJ híFŒhÉ\ÛCJaJv~z~Ì~Ð~HŽn€r€¨€fnêš‚ê‚î‚(ƒ,ƒTƒ¼„„†ˆ†¾†6‡óßóóóóóóóóóóÏóóóóóóóÇÇÇ $a$gd))$„Lÿ7$8$H$^„Lÿa$gd)) $„Lÿ„'7$8$H$^„Lÿ'„'a$gd))

$7$8$H$a$gd))ú€jlnÆêê‚ì‚î‚ò‚"ƒ(ƒ*ƒ,ƒ0ƒ@ƒBƒTƒ„†††¾†‡6‡vŠxŠzŠóèÙèÎóè¿è³è³¢³"†x†èiè^RèCèjjohíFŒhÉ\ÛCJUaJhíFŒhu>Y6CJaJ híFŒhu>YCJaJjì]híFŒhÉ\ÛCJUaJhíFŒh‡2U56CJaJhíFŒhÉ\Û56CJaJhíFŒh¢956CJaJ jßJhíFŒhÉ\Û5CJUaJhíFŒhÉ\Û5CJaJjÕ7híFŒhÉ\ÛCJUaJ híFŒh¢9CJaJj)híFŒhÉ\ÛCJUaJ híFŒhÉ\ÛCJaJhíFŒh¢96CJaJ6‡

ŠPŠzŠüŠh‹Ô‹øúþ'''¸'|'z˜Ð˜™™.™r™t™x™z™ö™Xšóëëëëëëóëëëëëßßßëëëëëëëëëß

$7$8$H$a$gd)) $a$gd))

$„Ð'„Ða$gd))zŠ'ŠúŠüŠFúüþ'''''n'''¶'¸''d'z'|'-"óçóÜÄܵܦ'¦~¦o[oJo[oJo híFŒhÉ\ÛCJOJQJ^JaJ&híFŒhÉ\Û5CJOJQJ\^JaJhíFŒhÉ\ÛB*CJaJph&j®4híFŒhÉ\ÛB*CJUaJphÿ&jD¼híFŒhÉ\ÛB*CJUaJphÿhíFŒhÉ\ÛB*CJaJphÿj›híFŒhÉ\ÛCJUaJ/híFŒhÉ\Û6B*CJOJQJ]^JaJph híFŒhÉ\ÛCJaJhíFŒhu>Y6CJaJhíFŒhÉ\Û6CJaJ-" •ê--B-f-ì-˜˜<˜‚˜™™p™r™t™v™z™Ô™ö™ú™VšXšZšÀšÂšxž'žïàïàïàïÕïÕàÁà²àžàŒ{ïÕïlÕ]ÕQhíFŒhÉ\Û6CJaJjµ"híFŒhÉ\ÛCJUaJjk€híFŒhÉ\ÛCJUaJ híFŒhu>Y6B*CJaJph#híFŒhu>Y6CJOJQJ^JaJ&jnhíFŒhÉ\ÛB*CJUaJphhíFŒhÉ\ÛB*CJaJphÿÿ&j®híFŒhÉ\ÛB*CJUaJph híFŒhÉ\ÛCJaJhíFŒhÉ\ÛB*CJaJph híFŒhÉ\ÛCJOJQJ^JaJXš\šÀšÄšÎšXž'ž¶žºž¼žÚ¡¢ì¢B£D£Z£j£z£ˆ£²£óóóóóóóëóëëëßÓǶÇÇÇ$$7$8$H$Ifa$gd))

$$Ifa$gd))

$„h^„ha$gdbCS

$„<^„<a$gdbCS $a$gd))

$7$8$H$a$gd))'ž"ž°ž'ž¶ž¸žºž¼žÆžèžêžÚ¡Þ¡î¡ð¡¢è¢ì¢ò¢@£ðåðåÑ­ž'žå€n_nÂN?nhbCS56B*CJaJph híFŒhÉ\Û5B*CJaJphhÖÆ56B*CJaJph#híFŒhÉ\Û56B*CJaJph#híFŒhu>Y56B*CJaJphhíFŒhÉ\Û6CJaJhíFŒhÉ\ÛB*CJaJphÿÿ)híFŒhÉ\ÛB*CJOJQJ^JaJphhíFŒhÉ\ÛB*CJaJph&jò¦híFŒhÉ\ÛB*CJUaJph híFŒhÉ\ÛCJaJhíFŒhÉ\ÛB*CJaJphÿ@£B£D£X£Z£x£z£†£ˆ£°£²£¸£À£Æ£Q§'§›§»§É§¨4¨h¨à¨4©ðÞÐÄÐÄÐÄÐĹª›¹¹n]Lª=híFŒhÉ\ÛB*CJaJphÿÿ híFŒhÉ\Û6B*CJaJph híFŒhÉ\Û>*B*CJaJph híFŒh&M·5B*CJaJph híFŒhÉ\Û5B*CJaJph híFŒh&M·CJaJhíFŒhÉ\ÛB*CJaJphÿhíFŒhÉ\ÛB*CJaJph híFŒhÉ\ÛCJaJhíFŒhÉ\Û6CJaJhíFŒhÉ\Û6CJ\aJ#híFŒhbCS56B*CJaJphhÉ\Û56B*CJaJph²£'£¸£È£Ô£¤6¤<¤^RRRAAR$$7$8$H$Ifa$gd))

$$Ifa$gd)) kdº$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö <¤=¤?¤D¤I¤f¤^RRRR

$$Ifa$gd)) kd¨º$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöf¤g¤i¤n¤s¤¤^RRRR

$$Ifa$gd)) kd3»$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö¤'¤"¤˜¤¤¤Á¤^RRRR

$$Ifa$gd)) kd¾»$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöÁ¤Â¤Ä¤É¤Ô¤ì¤^RRRR

$$Ifa$gd)) kdI¼$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöì¤í¤ï¤ô¤¥¥^RRRR

$$Ifa$gd)) kdÔ¼$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö¥¥ ¥%¥2¥Q¥^RRRR

$$Ifa$gd)) kd_½$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöQ¥R¥T¥Y¥f¥...¥^RRRR

$$Ifa$gd)) kdê½$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö...¥†¥ˆ¥¥˜¥°¥^RRRR

$$Ifa$gd)) kdu¾$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö°¥±¥'¥¹¥Ä¥Ü¥^RRRR

$$Ifa$gd)) kd¿$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöܥݥà¥å¥î¥ ¦^RRRR

$$Ifa$gd)) kd‹¿$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö ¦¦

¦¦¦.¦^RRRR

$$Ifa$gd)) kdÀ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö.¦/¦2¦7¦C¦]¦^RRRR

$$Ifa$gd)) kd¡À$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö]¦^¦a¦f¦q¦„¦^RRRR

$$Ifa$gd)) kd,Á$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö„¦...¦ˆ¦¦'¦©¦^RRRR

$$Ifa$gd)) kd·Á$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö©¦ª¦­¦²¦¹¦Æ¦^RRRR

$$Ifa$gd)) kdBÂ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöƦǦʦϦئê¦^RRRR

$$Ifa$gd)) kdÍÂ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöê¦ë¦î¦ó¦÷¦§^RRRR

$$Ifa$gd)) kdXÃ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö§§§§-§<§^RRRR

$$Ifa$gd)) kdãÃ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö<§=§@§E§Q§n§^RRRR

$$Ifa$gd)) kdnÄ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laön§o§r§w§§š§^RRRR

$$Ifa$gd)) kdùÄ$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laöš§›§œ§4¨j¨¼¨6©²©ª^VNNNNNN $a$gd)) $a$gd)) kd„Å$$If-lÖÖ\"ÿç èp&S èˆ

tàÖ0ÿÿÿÿÿÿ öÜ&6ööÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö4Ö

laö4©^©®©<ª@ªQªxª‹ªªªæª

««¬4­<­b­d­x±¦±æ±è±ì±þ±²²².²2²€²„²È²ðáðÒðáðáðáÇáÇ»­ŸÇ'ƒ'te'ZOÇOÇOÇ híFŒh·ICJaJ híFŒhÆïCJaJhíFŒhÉ\Û56CJ\aJhíFŒhu>Y56CJ\aJhíFŒhu>Y5CJ\aJhíFŒhÉ\Û5CJ\aJhíFŒhÉ\Û56CJaJhíFŒhu>Y56CJaJhíFŒhÉ\Û6CJaJ híFŒhÉ\ÛCJaJhíFŒh&M·B*CJaJphhíFŒhÉ\ÛB*CJaJphÿÿhíFŒhÉ\ÛB*CJaJphªxª«ªÓª«"¬'¬4­d­^°x±è±².²€²È²³š³Æ³è³T'¼'µdµëããããããããããã×ËËËËËËËËËË

$„S^„Sa$gd))

$„„'„„a$gd)) $a$gd))$

ƄЄ0ý^„Ð'„0ýa$gd))Ȳ̲³³š³ž³Æ³Ê³è³ì³T'X'¼'À'µµdµhµ¾µÂµ ¶¶|½€½‚½"½-½˜½ÂÂFÂHÂPÈTÈVȂȄȆȸȾÈjÉpɼÉÂɆʊʲʸʺʼÊ-˚˜ËÆËÈË>ÌDÌTÌVÌ:ÎõêõêõêõêõêõêõêõêõêõêõêÜÎܶêõÜÂêÜÎܶêªêªêªêÜÎܶêÜÎÜÎêªêžêhíFŒhÉ\ÛCJH*aJhíFŒhÉ\ÛCJH*aJhíFŒhÉ\Û5CJaJhíFŒhu>Y5CJaJhíFŒhÉ\Û56CJaJhíFŒhu>Y56CJaJ híFŒhÉ\ÛCJaJ híFŒh·ICJaJ;dµ¾µ ¶X¶òºöºF¼|½˜½ÂJÂ"Ã6ÅPȆȆʼÊ-ËÈËØÌ>Í8ÎóóóãÛÏÏÛÏÛÃÃÃÛÃÛÃÛÃø

$

Fa$gd))

$„h'„ha$gd))

$„Ð'„Ða$gd)) $a$gd))$„h„^„h'„a$gd))

$„S^„Sa$gd))8Î:Î>ÎÚÏÞϬѰÑ(Ó,ÓVÔÐÕúÕÔÖØÖì×\¢'¢º£¼£"¤$¤(¤*¤\¤óóèóèóèóèèàÔàÔÔÈÔÔÔÔààà

$„h'„ha$gd))

$„Ð'„Ða$gd)) $a$gd))

$

Fa$gd))

$„S^„Sa$gd)):Î<ÎÚÏÜϬѮÑ(Ó*ÓÐÕÔÕúÕÔÖÖÖîÖòÖ"×(×Ø¢\¢^¢v¢|¢¬¢²¢££$¤ëàËà¶à¡à"...àpàdàdàbàMàdàdàdà(j'híFŒhÉ\ÛCJUaJmHnHuUhíFŒhÉ\ÛCJH*aJ(j?ˆhíFŒhU%ðCJUaJmHnHuhíFŒhÉ\Û56CJaJhíFŒhu>Y56CJaJ(jÄ[híFŒhÉ\ÛCJUaJmHnHu(jÎ'híFŒhÉ\ÛCJUaJmHnHu(jóhíFŒhÉ\ÛCJUaJmHnHu híFŒhÉ\ÛCJaJ(jÆhíFŒhÉ\ÛCJUaJmHnHuhu¿ch ¡i vi sai °ãc sí dång thì k¿t qu£ là:

Trong ó: VPOS là iÇn áp §u d°¡ng, VNEG là iÇn áp §u âm, GAIN là hÇ sÑ khu¿ch ¡i, và VREF là iÇn áp tham chi¿u. K¿t qu£ có hai d¡ng: të 0x200 (-512) ¿n 0x1FF(+511).

B£ng t°¡ng quan giïa iÇn áp §u vào và mã §u ra:

7. BÙ dao Ùng th¡ch anh

XTAL1 và XTAL2 là §u vào và §u ra cça bÙ dao Ùng th¡ch anh. CKOPT Fuse lña chÍn giïa hai ch¿ Ù cça bÙ dao Ùng. Khi khi l­p trình voié CKOPT, thì §u ra bÙ dao Ùng s½ dao Ùng trong toàn bÙ chu kó, ch¿ Ù này có mÙt kho£ng t§n sÑ rÙng h¡n, t§n sÑ th¡ch anh tÑi a khi ó là 16MHz. Ng°ãc l¡i, khi không l­p chình vÛi ch¿ Ù CKOPT thì kho£ng t§n sÑ s½ h¹p h¡n, khi ó t§n sÑ th¡ch anh tÑi a là 8MHz.

C£ hai lo¡i bÙ dao Ùng gÑm và tinh thà th¡ch anh Áu có thà sí dång. Trong hai tr°Ýng hãp ó êu b¯t buÙc ph£i có tå C1 và C2

S¡ Ó nÑi cho bÙ dao Ùng th¡ch anh

3.0.2 KhÑi c£m bi¿n

BÙ c£m bi¿n là thi¿t bË có tác dång chuyÃn Õi các ¡i l°ãng v­t lí nh° nhiÇt Ù , ánh sáng , tÑc Ù & thành các tín hiÇu iÇn. Phå thuÙc vào bÙ c£m bi¿n mà §u ra có thà là là tín hiÇu d¡ng iÇn áp , dòng , trß kháng hay dung kháng C£m bi¿n dò °Ýng trong robot th°Ýng sí dång là c£m bi¿n hÓng ngo¡i, ngoài ra chúng ta có thà dùng led Ï ho·c cing có thà dùng t¿ bào quang iÇn. Khi dùng §u phát và thu hÓng ngo¡i thì giá thành không ¯t l¯m (d°Ûi 15000) và dÅ dàng giao ti¿p vÛi vi iÁu khiÃn. Do v­y chúng em quy¿t Ënh dùng bÙ c£m bi¿n hÓng ngo¡i.

1.Ho¡t Ùng cça c£m bi¿n.

C£m bi¿n dò °Ýng là lo¡i c£m bi¿n có thà phát hiÇn Ù t°¡ng ph£n (sñ khác nhau) giïa các bÁ m·t g§n. Ví då nh° sñ khác nhau vÁ màu s¯c, sñ nh¥p nhô cça bÁ m·t (Ù nhám) hay có thà là tình ch¥t të& ¡n gi£n nó s½ phát hiÇn sñ khác nhau vÁ màu s¯c , ví då nh° bÁ m·t màu en và màu tr¯ng.Chúng ta s½ xem xét ho¡t Ùng cça c£m bi¿n dò °Ýng à phát hiÇn bÁ m·t màu en và tr¯ng. Khi ánh sáng chi¿u vào bÁ m·t màu tr¯ng, h§u h¿t ánh sáng s½ bË ph£n x¡ l¡i. Trong khi ánh sáng chi¿u ¿n các bÁ m·t màu en s½ bË h¥p thå h¿t. Vì th¿ trong khi èn chi¿u vào các bÁ m·t và có 1 c£m bi¿n à phát hiÇn ánh sáng. Sñ khác biÇt giïa màu en và màu tr¯ng có thà phát

hiÇn °ãc.

Sí dång nhïng hiÃu bi¿t vÁ ánh sáng và bÁ m·t en tr¯ng. Chúng em sí dång 6 c·p phát thu à dò °Ýng , 6 c·p phát thu °ãc sí dång à giï cho robot ch¡y theo°Ýng line. M×i tín hiÇu ra cça c£m bi¿n s½ °ãc kiÃm tra à quy¿t Ënh vË trí t°¡ng Ñi cça robot trên °Ýng line. à robot dò °Ýng úng thì vË trí cça °Ýng line ph£i n±m giïa 4 c£m bi¿n bên ngoài

2.S¡ Ó m¡ch

D°Ûi ây là §u phát và §u thu cça c£m bi¿n hÓng ngo¡i.

D°Ûi ây là s¡ Ó cho 1 c·p phát, thu.S¡ Ó 2 c·p còn l¡i cing t°¡ng tñ

M×i §u thu thì °ãc ghép vào vi iÁu khiÃn thông quacÕng analog. §u ra cça các §u thu c£m bi¿n giá trË có thà thay Õi trong d£i t°¡ng Ñi lÛn à nh­n bi¿t °ãc các bÁ m·t en và tr¯ng

3. S¡ Ó bÑ trí c£m bi¿n.

.

3.0.3 KhÑi iÁu khiÃn Ùng c¡.

1. GiÛi thiÇu vÁ DC motor

Ùng c¡ °ãc nhóm chúng em sí dång là Ùng c¡ 1 chiÁu (DC motor). Ùng c¡ 1 chiÁu có c¥u t¡o të 2 bÙ ph­n: bÙ ph­n éng yên c¥u t¡o të nam châm v)nh cíu °ãc gÍi là stato và bÙ ph­n quay °ãc c¥u t¡o të mÙt nam châm nhân t¡o bao gÓm 1 cuÙn dây Óng có lõi là mÙt thanh kim lo¡i °ãc gÍi là roto.

Xét ho¡t Ùng cça DC motor:

Xem hình bên trên ta th¥y r±ng khi cho dòng iÇn 1 chiÁu (tuyÇt Ñi không dùng dòng xoay chiÁu) i qua motor s½ khi¿n cho motor quay nh° trên hình. Nh°ng n¿u ta thay Õi chiÁu dòng iÇn thì motor s½ quay theo chiÁu ng°ãc l¡i.

Ùng c¡ DC cho dòng iÇn mÙt chiÁu ch¡y qua và làm quay ph§n roto d«n ¿n motor quay, n¿u ta Õi chiÁu dòng iÇn thì motor s½ quay theo chiÁu ng°ãc l¡i. Do ó có thà iÁu chÉnh °ãc h°Ûng quay cça DC motor. ·c tính k) thu­t cça h§u h¿t Ùng c¡ DC là tÑc Ù quay (vòng/ phút) cao và moment ng«u lñc th¥p. Nh°ng mà h§u h¿t robot c§n tÑc Ù quay ch­m và moment ng«u lñc cao. Do ó mÙt hÙp sÑ có thà °ãc l¯p vào DC motor nh±m gi£m tÑc Ù quay và tng moment ng«u lñc. Trên hÙp sÑ th°Ýng ghi rõ tÉ sÑ truyÁn Ùng giïa tr°Ûc và sau hÙp sÑ, ví då tÑc Ù quay cça 1 DC motor là 1000 vòng/phút °ãc g¯n vào 1 hÙp sÑ 1000:1 có ngh)a là tÑc Ù quay cça §u ra hÙp sÑ°ãc 1/1000 cça tÑc Ù DC motor khi ch°a g¯n hÙp sÑ, do ó v­n tÑc hÙp sÑ =v­n tÑc DC motor/1000=8000/1000=8 vòng /phút.

2. iÁu khiÃn Ùng c¡ dùng MC 33886

D°Ûi ây là hình £nh vÁ MC 33886

S¡ Ó chân cça MC 33886

Sí dång MC 33886 vÛi nhiÁu °u iÃm s½ giúp cho robot ch¡y Õn Ënh, m¡ch khá gÍn và dÅ làm, MC 33886 chËu °ãc dòng khá cao (lên tÛi t­n 5A-theo giÛi thiÇu cça nhà s£n xu¥t).

D°Ûi ây là s¡ Ó m¡ch cça MC33886

D°Ûi ây là s¡ Ó m¡ch ghép nÑi giïa MC33886 và DC motor

Và s¡ Ó layout cça MC33886

3.0.4 KhÑi hiÃn thË LCD

KhÑi này làm nhiÇm vå nh­n dï liÇu xu¥t ra të vi iÁu khiÃn và hiÃn thË.

Màn hình LCD

Màn hiÃn thË LCD:

a. GiÛi thiÇu chung:

Màn hiÃn thË LCD (liquid crystal display) là màn hình hiÃn thË các ma tr­n iÃm sáng, dùng à hiÃn thË không nhïng là sÑ, kí tñ, chï mà còn có thà dùng à hiÇn thË các biÃu t°ãng. M×i LCD có mÙt bÙ iÃu khiÃn có ROM,Ram trong và RAM cho viÇc hiÃn thË dï liÇu. T¥t c£ các chéc nng Áu có thà thñc hiÇn d°ãc b±ng các kÇnh thñc hành giao ti¿p.

b. ·c iÃm và ho¡t Ùng:

Có thà sí dång LCD linh ho¡t h¡n r¥t nhiÁu so vÛi hiÃn thË LED 7 thanh. Sau ây là thé tñ chân:

Chân 1 2 3 4 5 6 7 14 15 16 Tên Vss Vdd Vee RS R/W E D0 - D7 A K C/n GND VCC C R/S R/W E Data A K Trong ó:

Chân1: Vss 0V

Chân2 : Chân Vdd +5V

Chân3 : V0 iÁu chÉnh Ù t°¡ng ph£n

Chân 4 :RS là lña chÍn ghi Íc.

RS=0: thñc hiÇn lÇnh lên LCD

RS=1: ghi và Íc dï liÇu lên và të LCD.

Chân 5 R/W : chân iÁu khiÃn ghi Íc.

R/W=1: Íc të LCD.

R/W = 0: Ghi vào LCD.

Chân 6 E :Chân cho phép chÑt dï liÇu. C§n mÙt xung cao xuÑng th¥p à ghi dï liÇu vào LCD.Còn khi muÑn Íc dï liÇu të LCD thì c§n mÙt xung të th¥p lên cao ß chân này.

Chân 7 - 14 là 8 chân dï liÇu. Dï liÇu có thà chuyÃn tÛi ho·c të màn hình hiÃn thË, c£ trong hai tr°Ýng hãp là sí dång 8bit ho·c hai nhóm 4 bit. sídång hiÃn thË 4 bit thì chÉ 4 bit të D4 ¿n D7 °ãc sí dång, vÛi kiÃu dùng à hiÃn thË 4 bít này r¥t c§n thi¿t trong các éng dång khi ma c§n ti¿t kiÇm chân vi iÁu khiÃn.

Chân 15-16 là chân A, K dùng c¥p nguÓn cho èn nÁn sáng.

à hiÇn thË các chï cái và các con sÑ, chúng ta gíi các mã ASCII cça các chï cái të A ¿n Z, A ¿n f và các con sÑ të 0-9 ¿n các chân này khi b­t RS= 1.

Cing có các mã lÇnh mà có thà °ãc gíi tÛi LCD à xoá màn hình ho·c °a con trÏ vÁ §u dòng ho·c nh¥p nháy con trÏ.

Chúng ta cing sí dång RS=0 à kiÃm tra bít cÝ b­n à xem LCD có sµn sàng nh­n thông tin . CÝ b­n là D7 và có thà °ãc Íc khi R/W=1 và RS=0 nh° sau: N¿u R/W=1, RS=0 khi D7=1 (cÝ b­n 1) thì LCD b­n bßi các công viÇc bên trong và s½ không nh­n b¥t kì thông tin mÛi nào. Khi D7=0 thì LCD sµn sàng nh­n thông tin mÛi. L°u ý chúng ta nên kiÃm tra cÝ b­n tr°Ûc khi ghi b¥t kì dï liÇu nào lên LCD.

D°Ûi ây là s¡ Ó cça LCD

3.0.5 iÁu xung PWM, iÁu chÉnh v­n tÑc cho Ùng c¡

iÁu xung PWM (Pulse With Moduration) là mÙt khâu quan trÍng trong thi¿t k¿ robocon. Qua ó có thà iÁu khiÃn tÑc Ù linh ho¡t cho DC Motor të ó có thà dùng làm các hàm v­n tÑc à cho robot có thà bám theo v¡ch tr¯ng mà i.

a. Ënh ngh)a

- iÁu xung nói chung là cách b­t t¯t nguÓn iÇn cça motor liên tåc làm cho motor lúc nh­n °ãc iÇn lúc m¥t iÇn. Khi t§n sÑ ç cao Motor s½ quay Õn Ënh ß 1 tÑc Ù nhÝ moment quay cça bánh xe.

- Xung vuông là mÙt Ó thË biÃu diÅn tr¡ng thái cça nguÓn iÇn. NguÓn °ãc mß thì motor ho¡t Ùng, lúc này xung vuông ang ß tr¡ng thái cao và nguÓn t¯t thì motor dëng lúc này xung vuông ß tr¡ng thái th¥p. TÑc Ù cça motor phå thuÙc vào Ù dài cça xung vuông. D°Ûi ây là hình biÃu diÅn mÙt xung vuông gÓm xung 20%, xung 50% và xung 80%, chúng ta cùng xem sñ khác biÇt cça nó.

- Ta xem các xung trên, m×i xung dù là 20%, 50% hay 80% Áu có 2 tr¡ng thái là 12V và 0V, 12V °ãc gÍi là tr¡ng thái cao ß tr¡ng thái này motor s½ quay, còn 0V là tr¡ng thái th¥p ß trang thái này motor s½ có iÇn áp dëng. Trong mÙt biÃu Ó xung tÕng % cça tr¡ng thái cao và tr¡ng thái th¥p là 100% và con sÑ xung 20%, 50% và 80% là xung cao. Cho nên % xung th¥p=100% - xung cao. N¿u xung cao càng dài thì tÑc Ù motor càng cao. Do ó ta có motor ¡t °ãc tÑc Ù cao nh¥t khi motor ñ¡c gíi ¿n xung 100%và motor dëng khi có xung 0% °ãc gíi tÛi.

b. V­y làm th¿ nào à iÁu xung cho motor?

- Chúng ta chÉ có thà iÁu xung cho 1 motor khi dùng 1 con vi iÁu khiÃn có h× trã kênh iÁu xung mà thôi. Các con vi iÁu khiÃn có kênh iÁu xung có r¥t nhiÁu nh°ng ß ây nhóm em chÍn vi iÁu khiÃn Amega16. M×i chip khác nhau thì cách l¯p ch¿ Ù iÁu xung cho chip cing khác nhau.

3.0.6 L°u Ó thu­t toán

M¡ch dò °Ýng °ãc thi¿t k¿ dùng 6 sensor à nh­n bi¿t °Ýng bÑ trí phía §u xe. Tín hiÇu do sensor truyÁn vÁ khi g·p v¡ch tr¯ng là 1, ngoài v¡ch tr¯ng là méc logic 0. Dùng cÕng PA à thu nh­n nhóm tín hiÇu này. Do chÉ có 6 tín hiÇu truyÁn vÁ nên ß ây có 2 chân cça PA không dùng ¿n. Cách bÑ trí:

PORTA 0 1 2 3 4 5 6 7 Sensor X X X X X X - -

BÑ trí trên m¡ch iÇn të trái qua ph£i:

PortA 0 1 2 3 4 5

Sensor x x x x x x

Të thñc t¿ ta có b£ng tín hiÇu éng vÛi các tr°Ýng hãp lÇch v¡ch tr¯ng cça robot nh° sau

PORTA TR NG THÁI ROBOT 0 1 2 3 4 5 6 7 0 0 1 1 0 0 - - i úng 0 0 1 1 1 0 - - LÇch trái 1 0 0 0 1 1 0 - - LÇch trái 2 0 0 0 1 1 1 - - LÇch trái 3 0 0 0 0 1 1 - - LÇch trái 4 0 1 1 1 0 0 - - LÇch ph£i 1 0 1 1 0 0 0 - - LÇch ph£i 2 1 1 1 0 0 0 - - LÇch ph£i 3 1 1 0 0 0 0 - - LÇch ph£i 4

B£ng tÕng k¿t

Ho¡t Ùng cça Robot ChiÁu quay cça Ùng c¡ Ùng c¡ 1 (bánh trái) Ùng c¡ 2 (bánh ph£i) Ti¿n Ti¿n Ti¿n Lùi Lùi Lùi Xoay sang trái Lùi Ti¿n Xoay sang ph£i Ti¿n Lùi Dëng Dëng Dëng

II. NHîNG K¾T LU¬N

Qua viÇc thñc hiÇn bài t­p lÛn, nhóm chúng em ã thu °ãc nhïng k¿t qu£ áng khích lÇ, ¡t °ãc yêu c§u Á ra cça môn hÍc.

VÁ m·t ki¿n théc chúng em ã thu °ãc nhïng kinh nghiÇm quý giá vÁ cách théc làm viÇc theo nhóm, nhïng ki¿n théc vÁ vi iÁu khiÃn, vÁ c£m bi¿n , vÁ Ùng c¡ mÙt chiÁu cing nh° viÇc hiÃn thË trên màn hình LCD. M×i thành viên trong nhóm Áu tích cñc tham gia vào công viÇc thi¿t k¿ ph§n céng, l­p trình ph§n mÁm và hoàn thiÇn °ãc các k) nng vÁ thi¿t k¿ m¡ch in, vÁ l­p trình cho vi iÁu khiÃn.

Robot do nhóm chúng em t¡o ra ã ¡t °ãc các tiêu chu©n Á ra ban §u ó là: Robot ph£i c£m bi¿n °ãc v¡ch tr¯ng trên nÁn và r½ ph£i , r½ trái theo v¡ch tr¯ng ó, tÑc Ù cça robot có thà iÁu chÉnh °ãc, robot có kích th°Ûic khá nhÏ gÍn dÅ dàng di chuyÃn. Robot mà chúng em t¡o ra khá ¡n gi£n chÉ có chéc nng chính là dò °Ýng nh°ng të 1 con robot ¡n gi£n này chúng ta có thà t¡o ra nhïng con robot vÛi nhïng chéc nng cao h¡n, phéc t¡p h¡n à có thà éng dång rÙng rãi h¡n trong thñc t¿. Tuy nhiên do thÝi gian có h¡n và ây cing là project §u tiên chúng em làm nên không thà trành khÏi nhïng thi¿u sót. Nhóm chúng em hi vÍng s½ °ãc góp ý nhiÁu à Á tài cça chúng em ngày càng hoàn thiÇn h¡n.Nhóm em cing xin gíi lÝi c£m ¡n chân thành tÛi th§y Ph¡m NgÍc Nam ã t­n tình giúp á à chúng em hoàn thành Á tài này.

TÀI LIÆU THAM KH¢O

Quách Tu¥n NgÍc, Ngôn ngï l­p trình C, Nhà xu¥t b£n thÑng kê nm 2003

NguyÅn M¡nh Giang, L­p trình b±ng ngôn ngï ASSEMBLY cho máy tính PC, Nhà xu¥t b£n giáo dåc nm 2000.

× Xuân Ti¿n, Kù thu­t vi xí lý & l­p trình assembly cho hÇ vi xí lý, Nhà xuát b£n khoa hÍc và kù thu­t.

http//www.alldatasheet.com/

DiÅn àn: dientuvietnam.net, luÓng tëng b°Ûc ch¿ t¡o robot

DiÅn àn: dientuvietnam.net, luÓng tài liÇu thi¿t k¿ robot( r¥t hay).

DiÅn àn: dientuvietnam.net, luÓng m¡ch dò °Ýng.

Tr°¡ng TrÍng To¡i, C£m bi¿n dò °Ýng cho robot.

9. Thi¿t k¿ và thi công làm robocon

PHä LäC A: óng góp cça tëng cá nhân

A.1: óng góp cça Hoàng Lê Minh

VÛi vai trò là nhóm tr°ßng b¡n Minh ã thñc hiÇn các công viÇc sau:

Cùng các thành viên khác trong nhóm v½ s¡ Ó khÑi hÇ thÑng cho Á tài, lña chÍn gi£ pháp thñc hiÇn dña trên các tài liÇu tham kh£o và các ki¿n théc vÁ vi iÁu khiÃn. Sau ó cùng các thành viên khác trong nhóm lña chÍn gi£i pháp thñc hiÇn: lña chÍn lo¡i vi iÁu khiÃn, lña chÍn lo¡i c£m bi¿n phù hãp làm c¡ sß Ã thñc hiÇn các b°Ûc ti¿p theo.

Phân công nhiÇm vå cho các thành viên khác trong nhóm. ThÝi gian §u b¡n ã cùng các thành viên khác trong nhóm tìm hiÃu vÁ các dòng vi diÁu khiÃn, ·c biÇt là vi iÁu khiÃn Atmega 16.

Vi¿t l­p trình code cho s£n ph©m trên c¡ sß ph§n modul cça b¡n và các modul cça các thành viên khác trong nhóm. Tham gia hàn m¡ch, test m¡ch và iÁu chÉnh m¡ch

A.2: óng góp cça NguyÅn Thanh H£i

VÛi vai trò là mÙt thành viên trong nhóm b¡n ã hoàn thành °ãc nhïng công viÇc sau:

Cùng các thành viên khác trong nhóm v½ s¡ Ó khÑi hÇ thÑng cho Á tài, lña chÍn gi£ pháp thñc hiÇn dña trên các tài liÇu tham kh£o và các ki¿n théc vÁ vi iÁu khiÃn. Sau ó cùng các thành viên khác trong nhóm lña chÍn gi£i pháp thñc hiÇn: lña chÍn lo¡i vi iÁu khiÃn, lña chÍn lo¡i c£m bi¿n phù hãp làm c¡ sß Ã thñc hiÇn các b°Ûc ti¿p theo.

Cùng các thành viên khác trong nhóm tìm hiÃu vÁ các lo¡i vi iÁu khiÃn, chç y¿u t­p trung vào vi iÁ khiÃn Atmega 16.

Viét 1 ph§n code à cùng vÛi các modul cça các b¡n khác t¡o thành 1 bài code hoàn chÉnh. Tham gia hàn m¡ch, test m¡ch và iÁu chÉnh m¡ch

A.3: óng góp cça Hoàng ThË Miên

VÛi vai trò là mÙt thành viên trong nhóm em ã hoàn thành °ãc nhïng công viÇc sau:

Cùng các thành viên khác trong nhóm v½ s¡ Ó khÑi hÇ thÑng cho Á tài, lña chÍn gi£ pháp thñc hiÇn dña trên các tài liÇu tham kh£o và các ki¿n théc vÁ vi iÁu khiÃn. Sau ó cùng các thành viên khác trong nhóm lña chÍn gi£i pháp thñc hiÇn: lña chÍn lo¡i vi iÁu khiÃn, lña chÍn lo¡i c£m bi¿n phù hãp làm c¡ sß Ã thñc hiÇn các b°Ûc ti¿p theo.

Cùng các thành viên khác trong nhóm tìm hiÃu vÁ các lo¡i vi iÁu khiÃn, chç y¿u t­p trung vào vi iÁ khiÃn Atmega 16.

Vi¿t 1 ph§n code, tham gia hàn m¡ch, test m¡ch và vi¿t báo cáo.

A.4: óng góp cça Ph¡m Xuân Thành

VÛi vai trò là mÙt thành viên trong nhóm b¡n ã hoàn thành °ãc nhïng công viÇc sau:

- Cùng các thành viên khác trong nhóm v½ s¡ Ó khÑi hÇ thÑng cho Á tài, lña chÍn gi£ pháp thñc hiÇn dña trên các tài liÇu tham kh£o và các ki¿n théc vÁ vi iÁu khiÃn. Sau ó cùng các thành viên khác trong nhóm lña chÍn gi£i pháp thñc hiÇn: lña chÍn lo¡i vi iÁu khiÃn, lña chÍn lo¡i c£m bi¿n phù hãp làm c¡ sß Ã thñc hiÇn các b°Ûc ti¿p theo.

- Cùng các thành viên khác trong nhóm tìm hiÃu vÁ các lo¡i vi iÁu khiÃn, chç y¿u t­p trung vào vi iÁ khiÃn Atmega 16

- B¡n có 1 óng góp r¥t quan trÍng trong viÇc thi¿t k¿ m¡ch nguyên lý, thi¿t k¿ m¡ch in. hàn m¡ch và hiÇu chÉnh ph§n céng. B¡n cing tham gia vi¿t 1 ph§n code cho m¡ch.

PHä LäC B: MÃ NGUÒN

/*****************************************************

This program was produced by the

CodeWizardAVR V2.03.4 Standard

Automatic Program Generator

© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 5/20/2009

Author :

Company :

Comments:

Chip type : ATmega16L

Program type : Application

Clock frequency : 8.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega16.h>

#include <delay.h>

#include <lcd.c>

#define dk1 PORTD.7//di voi OCR1A dong co 1

#define dk2 PORTD.6//di voi OCR1B dong co 2

//dinh nghia 3 nut bam chon chuong trinh

#define OK PINC.7

#define INC PINA.6

#define DEC PINA.7

bit r1,r2,r3,l1,l2,l3;

unsigned char vantoc[8]={100,150,190,210,100,150,190,210};

unsigned char adc_low[6],adc_high[6];

eeprom unsigned char adc_level[6]={101,126,92,108,101,94};

#define FIRST_ADC_INPUT 0

#define LAST_ADC_INPUT 5

unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];

#define ADC_VREF_TYPE 0x20

// ADC interrupt service routine

// with auto input scanning

interrupt [ADC_INT] void adc_isr(void)

{

static unsigned char input_index=0;

// Read the 8 most significant bits

// of the AD conversion result

adc_data[input_index]=ADCH;

// Select next ADC input

if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))

input_index=0;

ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion

ADCSRA|=0x40;

}

void setsensor()

{

unsigned char i,level=50;

lcd_clear();

lcd_putsf("SENSOR LOW ok?");

do

{

if(!OK)level--;

else level=50;

delay_ms(5);

}while(level>0);

while(!OK);

level=50;

do

{

if(OK)level--;

else level=50;

delay_ms(3);

}while(level>0);

for(i=0;i<6;i++)

{

adc_low[i]=adc_data[i];

}

delay_ms(100);

lcd_clear();

lcd_putsf("SENSOR HIGH ok?");

do

{

if(!OK)level--;

else level=50;

delay_ms(3);

}while(level>0);

while(!OK);

level=50;

do

{

if(OK)level--;

else level=50;

delay_ms(3);

}while(level>0);

for(i=0;i<6;i++)

{

adc_high[i]=adc_data[i];

}

for(i=0;i<6;i++)

{

adc_level[i]=adc_low[i]/2+adc_high[i]/2;

}

}

void sensor() //ma hoa gia tri adc doc dc tu sensor

{

if (adc_data[0]>adc_level[0]) {r3=1;}//1=trong vach

else r3=0;//0=ngoai vach

if (adc_data[1]>adc_level[1]) {r2=1;}

else r2=0;

if (adc_data[2]>adc_level[2]) {r1=1;}

else r1=0;

if (adc_data[3]>adc_level[3]) {l1=1;}

else l1=0;

if (adc_data[4]>adc_level[4]) {l2=1;}

else l2=0;

if (adc_data[5]>adc_level[5]) {l3=1;}

else l3=0;

}

void display_adc() //dung cho LCD nguyen

{

unsigned char i;

while(OK)

{

lcd_clear();

for(i=0;i<3;i++)

{

lcd_putnum(adc_data[i]);

lcd_putchar(' ');

}

lcd_gotoxy(1,0);

for(i=3;i<6;i++)

{

lcd_putnum(adc_data[i]);

lcd_putchar(' ');

}

delay_ms(200);

}

}

void display_adc_level()

{ unsigned char flag=1,i=1;

while(1)

{

if (!INC) {i++;if (i>6) i=1;delay_ms(10);flag=1;}

if (!DEC) {i--;if (i<1) i=6;delay_ms(10);flag=1;}

if(flag)

{lcd_clear();lcd_putsf("Sensor");lcd_putnum(i);lcd_putsf(": ");

lcd_gotoxy(1,0);

lcd_putnum(adc_level[i-1]);

}

flag=0;

delay_ms(50);

if(!OK) {delay_ms(80);break;}

}

}

void move(unsigned char vtt,unsigned vtp)

{

//OCR1AL:trai;OCR1BL:phai; 1: tien;0: lui

//OCR1AH=0x00;OCR1BH=0x00;

OCR1AL=vtt;OCR1BL=vtp;

dk1=0;dk2=0;

}

void doduong(unsigned char *vantoc)

{

if (r1&&l1) //giua vach

{

move(vantoc[3],vantoc[7]);

return;

}

if ((!l1)&&(!r2)&&r1) //lech trai 1

{

move(vantoc[3],vantoc[6]);

return;

}

if ((!r1)&&l1&&(!l2)) //lech phai 1

{

move(vantoc[2],vantoc[7]);

return;

}

if (r1&&r2) //lech trai 2

{

move(vantoc[3],vantoc[5]);

return;

}

if (l1&&l2) //lech phai 2

{

move(vantoc[1],vantoc[7]);

return;

}

if ((!r1)&&r2&&(!r3)) //lech trai 3

{

move(200,vantoc[4]);

return;

}

if((!l1)&&l2&&(!l3)) //lech phai 3

{

move(vantoc[0],200);

return;

}

if(r2||r3) //lech trai 4

{

move(200,0);

return;

}

if(l2||l3) //lech phai 4

{

move(0,200);

return;

}

}

void chonmode()

{

unsigned char flag=1,slm=4,mode=1;

while(1)

{

if(!OK) {delay_ms(50);break;}

if(!INC) {mode++;if(mode>slm) mode=1;flag=1;}

if(!DEC) {mode--;if(mode<1) mode=slm;flag=1;}

if(flag==1)

{

lcd_clear();

switch (mode)

{

case 1: lcd_putsf("Setsensor khong ?");break;

case 2: lcd_putsf("Display_adc khong ?");break;

case 3: lcd_putsf("Display_adc_level khong ?");break;

case 4: lcd_putsf("Do duong khong ?");break;

default: lcd_clear();lcd_putsf("Chon MODE :");break;

}

flag=0;

delay_ms(100);

}

}

switch(mode)

{

case 1: setsensor();break;

case 2: display_adc();break;

case 3: display_adc_level();break;

case 4: doduong(vantoc);break;

}

}

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0xC0;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTB=0x00;

DDRB=0xFF;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0xC0;

DDRC=0x07;

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In

// State7=0 State6=0 State5=0 State4=0 State3=T State2=T State1=T State0=T

PORTD=0x04;

DDRD=0xF0;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=FFh

// OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: 125.000 kHz

// Mode: Fast PWM top=00FFh

// OC1A output: Non-Inv.

// OC1B output: Non-Inv.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer 1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0xA1;

TCCR1B=0x0B;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped

// Mode: Normal top=FFh

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 125.000 kHz

// ADC Voltage Reference: AREF pin

// ADC Auto Trigger Source: Free Running

// Only the 8 most significant bits of

// the AD conversion result are used

ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);

ADCSRA=0xEE;

SFIOR&=0x1F;

// Global enable interrupts

#asm("sei")

lcd_init();

lcd_clear();

while (1)

{

// Place your code here

chonmode();

};

}

S¡ Ó layout m¡ch chính

S¡ Ó nguyên lý

Nhóm SV05_T9. Robot i theo °Ýng k» dùng AVR

PAGE

PAGE 5

Hà NÙi 12/5/2009

Bạn đang đọc truyện trên: Truyen2U.Pro