MÔN HỌC

Ứng dụng Vi điều khiển (Microcontroller Applications)

By Trần 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 điều khiển 8051, Tống Văn On. 5. Kỹ thuật Vi điều khiển AVR, Tống Văn On.

1

Nội dung chương trình

n Ch01: Các hệ đếm vàmã hoá n Ch02: Hệ thống vi xử lý n Ch03: Bộ nhớ n Ch04: Họ vi điều khiển AVR n Ch05: Ngôn ngữ lập trình CodevisionAVR n Ch06: Input/Output

Các bài toán 1. Thiết kế mạch điềukhi ểnánhsángtheoch ươngtrình địnhtr ước 2. Thiết kế mạchtrangtrí b ằng đènLED 3. Thiết kế mạchnh ận dạng điểmph ục vụ (thêm ít nhất 2IC) 4. Thiết kế mạch đo lượng mưa 5. Thiết kế mạch điềukhi ểnnhi ệt độ không khí 6. Thiết kế mạch điều khiển nhiệt độ dung dịch 7. Thiết kế mạch đồng hồ điện tử 8. Thiết kế mạch tính thời gian cho các môn điền kinh 9. Thiết kế bảng quang báo 10. Thiết kế mạch khoá điện tử 11. Thiết kế mạch điều khiển thiết bị bằng remote 12. Kết nối bàn phím máy tính với VXL, hiển thị ký tự lên LCD 13. Thiết kế mạch điều khiển Robot chạy theo qũy đạo (sd motor bước) 14. Thiết kế mạch điều khiển tốc độ động cơ DC 15. Thiết kế mạch điều khiển góc quay của môtơ, ổn tốc cho motor.

2

Chương 1: Các hệ đếm vàmã hoá

n Các hệ đếm dùng trong máy tính n Các phép toán số học đối với hệ hai n Mã ASCII

1.1 Các hệ đếm dùng trong máy tính

1.1.1 Hệ mười và hệ hai

n Con người thìquen dùng h ệ cơ số mười (hệ mười)

n Máy tính thìch ỉ làm việc với hệ cơ số hai (hệ hai) 1011,01 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2

MSB

LSB

n Nibble gồm 4 bit

3

0

n Byte gồm 8 bit

7

0

n Word gồm 16 bit

15

0

1

1234,56 = 1.103 + 2.102 + 3.101 + 4.100 + 5.10-1 + 6.10-2

1.1.1 Chuyển đổi giữa hệ mười và hệ hai

n Đổi hệ hai sang hệ mười

n Đổi hệ mười sang hệ hai

1011,012 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 = 11,2510

46 2 0

23 2 1

11 2 1

5 2 1

2 2 0

1 2 0 1

4610 = 1011102

1.1.1 Chuyển đổi giữa hệ mười và hệ hai (tiếp)

n Đổi số thập phân hệ mười sang hệ hai

Hình 1. Một cách đổi hệ mười sang hệ hai

0,125

x

2

=

0

,250

0,250

x

2

=

0

,500

0,500

x

2

=

1

,000

n Số BCD (số hệ mười mã hoá bằng hệ hai)

0,12510 = 0,0012

Số BCD thích hợp cho các thiế bị đo cóhi ển thị số ở đầu ra.

n Hệ mười sáu

123410 = 0001 0002 0003 0004BCD

2

123410 = 0100 1101 00102 = 4D216

1.2 Các phép toán số học đối với hệ hai

1.2.1 Phép cộng

ana(n-1) ... a2a1a0 + bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x)

1101 1001

+

0001 1011

1111 0100

1.2.2 Phép trừ và số bùhai

a. Phép trừ

ci = (ai + bi + (ai-1 + bi-1)%x )/x Ví dụ cộng hệ hai

ana(n-1) ... a2a1a0 - bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x)

1101 1001

-

0001 1011

1011 1110

1.2.2 Phép trừ và số bùhai ( tiếp)

b. Số bùhai

ci = (ai – Bi-1) – bi ci = (ai – Bi-1 + x) – bi (nếu (ai – Bi-1) >= bi và Bi = 0) (nếu (ai – Bi-1) < bi và Bi = 1) Ví dụ trừ hệ hai

Ta cóth ể thay phép trừ bằng phép cộng: cộng số bị trừ với đối số của số trừ.

Để tìm số bùhai c ủa một số A ta làm theo các bước sau:

+ Biểu diễn số A số hệ hai của nó.

+ Tìm số bù một (bùlogic ) của số đó (đảo bít).

1.2.3 Phép nhân

+ Cộng một vào số bù một ở trên để nhận được số bùhai c ủa A.

Ví dụ nhân 2 số hệ hai có độ dài 4 bít

1 1 1 0 0 0 0 ba 00 10 01 11 a.b 0 0 0 1 1 1 0 1 1 1 0 0 0 0000

3

1011 1 0 1 1 1 0 1 Bảng 1. Quy tắc phép nhân

1.2.2 Phép chia

b. Chia trực tiếp

Ví dụ: 35/5 = 7 1 1 0 1 0 0 1 1 1 1

b. Chia gián tiếp

Lấy số bị chia trừ đi số chia, kết quả sẽ là số bị chia của phép toán

tiếp theo, lặp lại đến khi số bị chia nhỏ hơn số chia hoặc bằng 0.

4

01 0 00 0 01 0 0 1 1 0 111 101 1 0 1 101 0

Chương2: H ệ thốngvi x ử lý

n Ưu vành ược điểm hệ nhúng

n Vi xử lý, vi điềukhi ển

n Các họ vi điềukhi ển

n Ngắtvà x ử lýng ắt

2.1 Tạisao l ại sử dụng hệ nhúng?

2.1.1 Ưu điểm

n Khả năngthíchnghicao n Tínhlinh động n Khả năngthay đổi dễ dàng n Khả năngtái s ử dụngtàinguyên(th ư viện,…) n Giáthành r ẻ n . . .

2.1.2 Nhược điểm

n Tốc độ phản ứngch ậm n Độ ổn địnhth ấp n Không xử lý đượcgíatr ị liên tục n . . .

1

2.2 Vi điềukhi ển, vi xử lý

Data bus

CPU

General- Purpose Micro- processor

Address bus

RAM ROM I/O PORT USB, UARST, I2C,… Timer, Wdg, ADC, DAC, …

TERMINOLOGY

single chip.

n Microcontroller vs. Microprocessor vs. Microcomputer n A microprocessor is a central processing unit on a

peripheral I/O components and memory (RAM & ROM) used to be called a “microcomputer.”

n A microprocessor combined with support circuitry ,

2

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.

2.3 Kiếntrúcvi điềukhi ển

n Đơn vị sử lý số học(ALU)

n Bộ nhớ

n Input

n Output

2.3.1 Đơn vị xử lý số học (ALU)

ữ liệu

n Đơn vị điềukhi ển

(kếtqu ảđượ c lưu lại)

General Purpose Registrers

ALU

3

n Thựchi ệnphéptoánvàphéplogic trên d n Dữ liệucóth ể lấytrên b ộ nhớ hoặcI/O n Kếtqu ả cóth ểđượ c đưarangoàiho ặcvào b ộ nhớ

2.3.2 Bộ nhớ

Program Memory

Data Memory

$000

$000

Program Flash

Data Memory 32 Gen. Purpose Working Resisters

$0000 $001F $0020

(4K x 16)

EEPROM (512 x 8)

64 I/O Resisters

$005F $0060

$1FF

Internal SRAM (512 x 8)

$025F

$FFF

2.3.3 Input

n Lưu trữ lệnhhay d ữ liệu n Cóth ểđể lưutr ữ dữ liệu tạmth ời n Cóth ể ghi/đọc được bởi bộ điềukhi ển

bộ vi điềukhi ển

n Thiết bị chophépthôngtin và d ữ liệuvàobêntrong

2.3.4 Output

n Ví dụ: ADC, I2C, UART, …

thiết bị ngoạivi.

n Thiết bị chuyển đổithôngtin và d ữ liệu từ bộ nhớ ra

4

n Thiết bị ngoạivi: LED, LCD, máyin, …

2.3.5 Đơn vị điềukhi ển

n Cung cấpxungnh ịpvà điềukhi ểntínhi ệu

n Tìm nạp lệnhvà d ữ liệu

n Chuyển dữ liệu tới/từ I/O

n Giảimã l ệnh

n Thựchi ệnphéptính s ố học/logic

2.3.6 Một số họ vi điềukhi ển

n Đáp ứngtínhi ệungoài(Reset/Ng ắt)

n 8051, 89Cxx, 89Sxx, 89Dxx,…

n Vi điềukhi ển8051

n AVR 8 bít, AVR 16 bít,…

n Vi điềukhi ểnAVR

n PIC 8 bít, PIC 16 bít,…

n Vi điềukhi ểnPIC

n P8xCxx,…

n Vi điềukhi ểnMCUs c ủaPhilips

5

n …

2.3.6 Các họ vi điềukhi ển (tiếp–so sánh )

n Tốc độ xử lý (clock, clock cycle execution)

n Khả năngtích h ợp (ADC, DAC, UART, I2C,…)

n Dải điệnápho ạt động (Operating Voltages)

n Công suất đầura ( DC current per I/O pin)

n Khả năngch ốngnhi ễu (Noise Reduction)

n Tập lệnh (Instruction)

n Công suấtIC ( Power consumption)

2.4 Ngắtvà x ử lýng ắt (Interrupt)

2.4.1 Kháini ệm

n Ngắtlà s ự dừngth ựchi ệnch ươngtrìnhchính(CTC) để

thựchi ệnch ươngtrìnhcon ph ụ vụ ngắt(ctc)

Main Prog

ISRj

ISRi

n: IRQi n + 1:

m: IRQj m + 1:

iret

iret

6

n . . .

2.4.2 Cấutrúcng ắt

n Xuấthi ệnkhông đượcbáotr ước

n Phục vụ gầngi ốngch ươngtrìnhcon

n Tích hợpnhi ềulo ạing ắt

2.4.3 Xử lýng ắt

n Có ưutiênng ắt

ắt

n Xuấthi ệnvàchophépng

n Hoànthành l ệnhhi ện tại

n Lưu trữđị ach ỉ lệnhti ếptheovàong ăn xếp

n Nạp địach ỉ ISR vàoPC

n Thựchi ệnISR

n KếtthúcISR là l ệnhRETI

chươngtrìnhti ếp tụcth ựchi ện

7

n Khôi phục địach ỉ lệnhti ếptheotrongng ăn xếp,

2.4.4 Phânlo ạing ắt

Làvi ệc gọi1 ctc(Subroutine) đượcxây d ựngriêngmàctc nàycòncóth ểđượ c gọi bởithi ết bị ngoạivi

n Ngắt mềm (software interrupt)

Trong một số CPU để bẫy/xử lýcác s ự kiệntrongkhith ực hiện

n Ngắt cứng (hardware interrupt) Do port pháttínhi ệu đếnCPU n Ngắttrong ( internal interrupt)

Là vấn đề hay điềuki ện để CPU dừngcôngvi ệc đangth ực hiện, tìm địach ỉ vàth ựchi ện1 ctc, đượcthi ết kếđể xử lý sự kiệnnày.

8

n Ngoại lệ (exceptions)

Chương 3: B3: Bộộ nhnhớớ Chương

nn BBộộ nhnhớớ bbáán dn dẫẫnn

nn GiGiảải mã đ

i mã địịa cha chỉỉ cho b

cho bộộ nhnhớớ

nn PhPhốối ghi ghéép bp bộộ nhnhớớ

nn MMởở rrộộng bng bộộ nhnhớớ

3.1 B3.1 Bộộ nhnhớớ bbáán dn dẫẫnn nn CCáác nhc nhóóm tm tíín hin hiệệuu nn ROM ( nn RAM (

read only memory)) ROM (read only memory RAM (random access memory random access memory)) Memory

RAM

Radom Access Memory

ROM

Programmable ROM

Read Only Memory

SRAM Static RAM

DRAM Dynamic RAM

Erasable PROM

PROM EPROM EEPROM

Electrically EPROM

1

CACHE L1, L2, L3

3.1.1 Cáác nhc nhóóm tm tíín hin hiệệuu 3.1.1 C

Address

Data

A0 A1 A2 ... An

D0 D1 D2 ... Dm

WR

WE

CS

OE

Select IC

RD

Hình 3. Sơ đồ khối của bộ nhớ

a. Nhóóm tm tíín hin hiệệu đu địịa cha chỉỉ a. Nh

ng chọọn ra m

n ra mộột ô nh

t ô nhớớ ccụụ ththểể

i đa bao nhiêu ô nn SSốố đư đườờng đng địịa cha chỉỉ ssẽẽ quyquyếết đt địịnh cnh cóó ttốối đa bao nhiêu ô

nhnhớớ. V. Víí ddụụ ccóó m đư

m đườờng đng địịa cha chỉỉ vvậậy thy thìì ttốối đa

i đa 22mm ô nhô nhớớ..

nn CCóó ttáác dc dụụng ch

b. Nhóóm tm tíín hin hiệệu du dữữ liliệệuu b. Nh

u ra củủa ROM v

a ROM vàà llàà vvàào/rao/ra đ đốối vi vớới RAMi RAM

nn ThưThườờng lng làà đ đầầu ra c

ch nhớớ thư thườờng cng cóó đ đầầu vu vàào/ra l

o/ra làà 3 tr3 trạạng th

ng tháái.i.

ng dây dữữ liliệệu quy

u quyếết đt địịnh đnh độộ ddàài ti từừ nhnhớớ ccủủa a

nn CCáác mc mạạch nh

mmỗỗi ô nh

2

nn SSốố đư đườờng dây d i ô nhớớ..

c. Nhóóm tm tíín hin hiệệu chu chọọn vi mn vi mạạchch c. Nh trao đổổi di dữữ liliệệu.u.

ng đượợc nc nốối vi vớới đi đầầu ra c

u ra củủa ba bộộ

gigiảải mã đ

bus dữữ liliệệu cu củủa na nóó bbịị

i mã địịa cha chỉỉ.. nn Vi mVi mạạch không đư treo (ởở trtrạạng th treo (

ch không đượợc chc chọọn thn thìì bus d ng cao). ng tháái tri trởở khkhááng cao).

nn ChChọọn vi mn vi mạạch sch sẽẽ trao đ nn CCáác tc tíín hin hiệệu nu nàày thưy thườờng đư

u khiểểnn

d. Nhóóm tm tíín hin hiệệu điu điềều khi d. Nh u ra bus. Cho phéép dp dữữ liliệệu ra bus.

treo nếếu không c

u không cóó ttíín hin hiệệu điu điềều khi

u khiểển.n. c/ghi. u khiểển đn đọọc/ghi.

ng chỉỉ ccóó mmộột tt tíín hin hiệệu điu điềều khi

nn Cho ph nn Bus dBus dữữ liliệệu bu bịị treo n ch thườờng ch nn MMạạch thư

3.1.2 ROM 3.1.2 ROM

i dung đã ghi sẵẵn chn chỉỉ đ đểể đ đọọc rac ra

n duy nhấấtt t thông tin khi mấất đi Không bịị mmấất thông tin khi m

t điệệnn

Address

Data

D0 D1 D2 ... Dm

A0 A1 A2 ... An

WR

WE

CS

OE

RD

Select IC

Hình 3. Bộ nhớ ROM

3

nn BBộộ nhnhớớ ccóó nnộội dung đã ghi s nn ChChỉỉ nnạạp vp vàào mo mộột lt lầần duy nh nn Không b

3.1.3 ROM cóó ththểể llậập trp trìình đư 3.1.3 ROM c

nh đượợcc

a. PROM (Programmable ROM Programmable ROM)) a. PROM ( i gian truy cậập nhanh 120

250ns p nhanh 120--250ns

n duy nhấất bt bằằng cng cáác đc đốốt cht chááy cy cáác cc cầầu chu chìì

nn ThThờời gian truy c nn ChChỉỉ nnạạp mp mộột lt lầần duy nh nn ĐiĐiệện n ááp khi l

p khi lậập trp trìình kho

nh khoảảng 10

ng 10--13V13V

VCC

A0

A1

Address Bus

Address decoder

A2

D2

D1

D0

erasable PROM)) b. EPROM (erasable PROM b. EPROM (

ng 120 –– 450

p khoảảng 120

i gian truy cậập kho

450 nsns

nh khoảảng 10

ng 10--25V25V

ng tia cựực tc tíím.m.

i gian lậập trp trìình cho m

nh cho mộột ô nh

t ô nhớớ lâu (kho

ng 50ms) lâu (khoảảng 50ms)

4

nn ThThờời gian truy c nn ĐiĐiệện n ááp lp lậập trp trìình kho nn NNóó ccóó ththểể đư đượợc xoc xoáá totoààn bn bộộ bbằằng tia c nn ThThờời gian l

electrically EPROM)) c. EEPROM (electrically EPROM c. EEPROM (

ng đơn vịị nhnhớớ bbằằng đi

ng điệện, không c

n, không cầần tia c

n tia cựực tc tíím.m.

nn XoXoáá ttừừng đơn v

i gian lậập trp trìình cho m

nh cho mộột ô nh

ng 5ms. t ô nhớớ khokhoảảng 5ms.

nn ThThờời gian l

d. Flash memory d. Flash memory

n Thời gian truy cập nhanh (khoảng 120ns).

n Thời gian ghi nhanh 10µs

5

n Xóa từng khối nhớ

3.1.4 RAM 3.1.4 RAM

n Bị mất dữ liệu khi mất điện. n Thời gian truy cập nhanh (cólo ại 15ns).

R/W

Input buffers

Decoder

CS

t u p n i

6 line to 64 line

s s e r d d A

Output buffers

Hình 3. Cấu tạo bên trong của 64 x 4 RAM

Register 0 Register 0 Register 1 Register 1 Register 2 Register 2 .. .. .. Register 62 Register 62 Register 63 Register 63

3.1.4 RAM (titiếếpp)) 3.1.4 RAM (

n Chế tạo đơn giản

n Dễ dàng bảo trì

n Thường được sử dụng trong hệ thống có bộ nhớ nhỏ

n SRAM (static RAM)

n Giáthành th ấp

n Đòi hỏi mạch phụ trợ

n Phải làm tươi (refresh) thường xuyên

n Thường được sử dụng trong hệ thống có bộ nhớ lớn

6

n DRAM (dynamic RAM)

3.2 Giảải mã đ 3.2 Gi

i mã địịa cha chỉỉ cho b

cho bộộ nhnhớớ

nn Phân đ

Phân địịnh không gian t

nh không gian tổổng th

ng thểể ththàành cnh cáác vc vùùng nh

c nhau ng nhớớ khkháác nhau

nn ĐĐảảm bm bảảo to tíính đơn tr

nh đơn trịị ccủủa xung ch

a xung chọọnn

phòng (spare

nn Khi thi

Khi thiếết kt kếế thư thườờng cng cóó ddựự phòng ( mmàà không ph

i thiếết kt kếế llạại mi mạạch.ch.

không phảải thi

Tín hiệu địa chỉ

Các tín hiệu chon chip

Mạch giải mã địa chỉ

Tín hiệu điều khiển

Hình 3. Mạch giải mã địa chỉ

spare) ) đđểể ccóó ththểể mmởở rrộộng ng

3.2.1 Giảải mã b 3.2.1 Gi nn MMạạch gi

ch NAND i mã bằằng cng cáác mc mạạch NAND đơn giảản vn vớới đi đầầu ra h

i mã địịa cha chỉỉ đơn gi

ch giảải mã đ

u ra hạạn chn chếế

A0 – A10

D0 - D7

Memory

CE

OE

A11 – A19

RD

IO/M

Hình 3. Mạch giải mã đơn giản dùng NAND

7

3.2.2 Giảải mã b 3.2.2 Gi nn LLàà mmạạch gi

ch 74138 i mã bằằng cng cáác mc mạạch 74138 i mã 3 đ đầầu vu vàào, o, 8 8 đđầầu rau ra ch giảải mã 3

A0 – A12

Memory

D0 – D7

CE

OE

74LS138

15

A

Y0

14

Y1

B

A13 – A15

13

Y2

C

12

6

Y3

G2A

A16 – A18

11

RD

Y4

10

Y5

5

G2B

9

IO/M

Y6

4

7

Y7

G1

A19

Hình 3. Sơ đồ giải mã dùng 74LS138

3.2.2 Giảải mã b 3.2.2 Gi

i mã bằằng cng cáác mc mạạch 74138

ch 74138 ((titiếếpp))

duy nhấất mt mộột đt đầầu ra

u ra ởở mmứức tc tíích cch cựựcc

8

nn MMứức tc tíích cch cựực lc làà mmứức 0c 0 nn ChChỉỉ duy nh

3.2.3 Giảải mã d 3.2.3 Gi

ng ROM i mã dùùng ROM c năng như 74138 nn CCùùng mng mộột cht chứức năng như 74138 ch phụụ trtrợợ nn GiGiảảm thim thiểểu su sốố mmạạch ph

A0 – A12

Memory

D0 – D7

CE

OE

15

Y0

A0

14

Y1

A1

13

Y2

A2

12

Y3

A3

A13 – A19

11

RD

Y4

A4

10

Y5

A5

9

Y6

A6

7

Y7

A7

G1

IO/M

Hình 3. Sơ đồ giải mã dùng PROM

i mã dùùng ROM (

ng ROM (titiếếpp))

ng 8 byte đ

byte đầầu tiên, c

u tiên, cáác byte kh

c byte kháác đc đềều chu chứứa ca cùùng ng

3.2.3 Giảải mã d 3.2.3 Gi nn ChChỉỉ ssửử ddụụng 8 t giáá trtrịị FFhFFh

mmộột gi

CCáác đc đầầu vu vààoo AA66 AA44 AA22 00 11 11

CCáác đc đầầu rau ra OO55 OO22 11 11

GG 00 AA77 00 AA11 00 AA00 00 AA55 11 AA33 11 OO77 00 OO66 11 OO44 11 OO33 11 OO11 11 OO00 11

00 00 00 00 11 11 11 11 11 11 00 11 11 11 11 11 11

00 00 00 11 00

11 11 11 11 11 11 11 11 11 11 11 11 00 11 11 00 11 11 11 11 11 11 11 11

00 00 00 00 00 11 11 00 11 00 11 11 11 11 11 11 11 11 00 11 11 11

00 00 11 00 11 11 11 11 11 11 11 11 11 11 00 11 11

00 00 11 11 00 11 11 11 11 11 11 11 11 11 11 00 11

00 00 11 11 11 11 11 11 11 11 11 11 11 11 11 00

9

00 11 CCáác đc địịa cha chỉỉ khkháác c 11 11 11 11 11 11 11 11

3.3 Ghéép np nốối bi bộộ nhnhớớ 3.3 Gh nn ĐĐịịnh đnh địịa cha chỉỉ ccáác ô nh c ô nhớớ.. Dung lượợng bng bộộ nhnhớớ.. nn Dung lư nn TTốốc đc độộ bbộộ nhnhớớ ko đ

ko đááp p ứứng đươc t

ng đươc tốốc đc độộ VĐK th

VĐK thìì ta ph

ta phảải ci cóó

mmạạch tăng thêm chu k

ch tăng thêm chu kỳỳ đ đợợii

A0 – A11

D0 – D7

Bộ tạo xung trễ

Memory

Ready

CS

CE

OE

74LS138

F8000-F8FFF

15

A

Y0

14

B

Y1

A12 – A14

A15 – A19

13

C

Y2

12

6

Y3

G2A

11

RD

Y4

10

Y5

5

IO/M

G2B

9

Y6

4

7

FF000-FFFFF

G1

Y7

+Vcc

Hình 3. Phối ghép bộ nhớ

3.3 Ghéép np nốối bi bộộ nhnhớớ ((titiếếpp)) 3.3 Gh nn SSửử ddụụng bng bộộ ddồồn kênh đ

n kênh đểể gigiảảm sm sốố chân

chân, , tăng dung lư

tăng dung lượợng bng bộộ

nhnhớớ lênlên

-------

A0/A7 A6/A13

CAS

7 bit Column address register A7 A8 A9 A10 A11 A12 A13

RAS

Column address decoder

-----------

R/W

A0/ A7 – A6/A13

128 x 128 Cell array

Data in

Row address decoder

| | | | | | | |

7 bit Row address register

A0 A1 A2 A3 A4 A5 A6

Data out

Hình 3. Kiến trúc của bộ nhớ 4116

10

3.4 M3.4 Mởở rrộộng bng bộộ nhnhớớ

3.4.1 M3.4.1 Mởở rrộộng kng kíích thư

ch thướớc ô nh

c ô nhớớ

Address bus (AB0 –AB 3)

R/W

CS

A3

A2

A1

A0

A3

A2

A1

A0

R/W

R/W

RAM-0 16 x 4

RAM-1 16 x 4

CS

CS

I/03

I/02

I/01

I/00

I/03

I/02

I/01

I/00

Data bus (DB0 –DB 7)

Hình 3. Kết hợp hai bộ nhớ 16 x 4 thành 16 x 8

3.4.1 M3.4.1 Mởở rrộộng kng kíích thư

ch thướớc ô nh

c ô nhớớ ((titiếếpp))

Address bus (AB0 –AB 10)

R/W

R/W

R/W

R/W

RAM-0 2K x 8

RAM-1 2K x 8

RAM-2 2K x 8

RAM-3 2K x 8

CS

CS

CS

CS

I/00 -I/0 7

I/08 -I/0 15

I/016 -I/0 23

I/024 -I/0 31

Data bus (DB0 –DB 31)

Hình 3. Kết hợp bốn bộ nhớ 2K x 8 thành 2K x 32

11

3.4.2 M3.4.2 Mởở rrộộng dung lư

ng dung lượợng nh

ng nhớớ

Address bus (AB0 –AB 3)

R/W

AB4

A3

A2

A1

A0

A3

A2

A1

A0

R/W

R/W

RAM-0 16 x 4

RAM-1 16 x 4

CS

CS

I/03

I/02

I/01

I/00

I/03

I/02

I/01

I/00

Data bus (DB0 –DB 3)

Hình 3. Kết hợp hai bộ nhớ 16 x 4 thành 32 x 4

12

Chương 4: Họ vi điều khiển AVR

n Giới thiệu chung n Các chức năng điều khiển n Tập lệnh vàngôn ng ữ lập trình

4.1 Giới thiệu chung

n Khoảng hơn 100 lệnh, hầu hết thực hiện một chu kỳ máy n 32 thanh ghi đa năng 8 bit n Cóth ể lên tới 16 MIPS tại tần số 16MHz

n AVR -Ki ến trúc RISC

n 8..256K Flash Mem cho chương trình, ghi/xoá được 10.000

lần

n 512..4K Byte EEPROM, ghi/xoá100.000 n 512…8K Byte SRAM

1

n Bộ nhớ :

4.1 Giới thiệu chung (tiếp)

n Các modul vào ra (I/O moduls)

n ADC 10bit và từ 8..16 kênh Analog n 1 đế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 suất (Power Management): -3 ch ế độ nghỉ (Sleep Mode):

n Idle : 1.9 mA n Power-Down: <1µA n PowerSave n (chế độ chạy bình thường: 6mA)

4.1 Giới thiệu chung (tiếp) – Điện áp làm việc : n Vcc 4.0-6.0V với AT90S8535 n Vcc 2.7-6.0V với AT90LS8535 – Tần số CLOCK n 0-8MHz với AT90S8535 n 0-4MHz với AT90LS8535 n 0-16MHz với Atmegaxx

2

4.1 Giới thiệu chung (tiếp)

4.1.1 Các bộ nhớ

Program Memory

Data Memory

Data Memory

$000

$000

$0000

32 Gen. Purpose Working Resisters

Program Flash

$001F $0020

(4K x 16)

EEPROM (512 x 8)

64 I/O Resisters

$005F $0060

$1FF

Internal SRAM (512 x 8)

$025F

$FFF

3

4.1.1 Các bộ nhớ (tiếp)

ZL ZH

Register File R1 R2 … R30 R31

Data Address Space $0000 $0001 … $001E $001F

I/O Register $00 $01 … $3E $3F

$0020 $0021 … $005E $005F

Internal SRAM $0060 $0061 … $085E $085F

4.1.2 Các thanh ghi đa năng a. Các thanh ghi đa năng n Bao gồm 32 thanh ghi 8 bit n Được thực hiện trực tiếp từ ALU

n Các cặp thanh ghi R26, 27; R28, 29; R30, 31 tạo thành các thanh

ghi 16 bit

4

SRAM Organization

b. Các thanh ghi ngăn xếp

về sau khi phục vụ chương trình con ngắt và chương trình con

n Để lưu trữ dữ liệu tam thời, vị tríbi ến và địa chỉ trở

c. Các thanh ghi trạng thái

n Luôn trỏ vào đỉnh của ngăn xếp n Ngăn xếp luôn bắt đầu từ vị trícao c ủa bộ nhớ

phục vụ ngắt

5

n Chứa thông tin hiện tại của CPU n Có8 bit ch ứa thông tin n Thông tin có thể bị thay đổi khi có chương trình con

d. Thanh ghi che ngắt và cờ ngắt

e. Thanh ghi điều khiển

n Cho phép hay không cho phép một ngắt bất kỳ n Thông báo khi cóng ắt, nếu ngắt đó đã được phép n Thanh ghi che ngắt được thiết lập bằng phần mềm

n Truy cập bộ nhớ SRAM n Chế độ ngủ n Chế độ ngắt ngoài

6

n Cho phép điều khiển toàn bộ vi điều khiển n Chức năng này gồm:

f. Một số thanh ghi khác

4.1.3 Ngắt và xử lý ngắt

Vector No.

ProgramAddress

Source

Interrupt Difinition

1

$000

Reset

2 3 4 5 6 7 8 9 10 11 12

$002 $004 $006 $008 $00A $00C $00E $010 $012 $014 $016

INT0 INT1 INT2 TIMER2 COMP TIMER2 OVF TIMER1 CAPT TIMER1 COMPA TIMER1 COMPB TIMER1 OVF TIMER0 COMP TIMER0 OVF

External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset and JTAG AVR Reset External Interrupt Request 0 External Interrupt Request 1 External Interrupt Request 2 Timer/Counter2 Compare Match Timer/Counter2 Overflow Timer/Counter1 Capture Event Timer/Counter1 Capture Match A Timer/Counter1 Capture Match B Timer/Counter1 Overflow Timer/Counter0 Compare Match Timer/Counter0 Overflow

13

$018

SPI, STC

Serial Transfer Complete

14 15 16

$01A $01C $01E

USART, RXC USART, UDRE USART, TXC

USART, Rx Complete USART Data Register Empty USART, Tx Complete

17

$020

ADC

ADC Conversion Complete

18

$022

EE_RDY

EEPROM Ready

19

$024

ANA_COMP

Analog Comparator

20

$026

TWI

Two-wire Serial Interface

21

$028

SPM_RDY

Store Program Memory Ready

7

n Thanh ghi trạng thái bộ xử lý n Các thanh ghi điều khiển timer/counter0 n Các thanh ghi điều khiển timer/counter1 n Thanh ghi điều khiển Watchdog n Các thanh ghi điều khiển vào ra EEPROM n Các thanh ghi điều khiển SPI n Các thanh ghi điều khiển UART n Các thanh ghi điều khiển bộ ADC

4.1.3 Ngắt và xử lý ngắt (tiếp)

n 16 vectơ ngắt (2 Byte) n Từ địa chỉ $000 trong bộ nhớ chương trình n Ngắt cóch ỉ số thấp, độ ưu tiên càng cao n Mỗi ngắt có một bít cho phép ngắt riêng n Để sử dụng một ngắt thìbit này ph ải thiết lập cùng với cờ I (Global Interrupt Enable) trong thanh ghi SREG được thiết lập

trình con phực vụ ngắt

4.1.3 Ngắt và xử lý ngắt (tiếp)

6

5

4

3

2

1

0

7

n Mất 4 chu kỳ đồng hồ để vào (hoặc ra khỏi) chương

T

H

S

V

N

Z

C

I

SREG

Bit

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

$3F ($5F)

0

0

0

0

0

0

0

0

Read/Write

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

8

Initial Value

4.2 Các chức năng điều khiển

n Timer/Counter

n WatchDog Timer

n Các cổng vào ra

n ADC

n UART

4.2.1 Timer/Counter

Có3 b ộ đếm/định thời gian n T/C0 : n 8 bit n Nguồn đồng hồ từ mạch chia thời gian hoặc từ chân T0

(theo sườn lên/xuống)

n Ngắt tràn

n EEPROM

n 16 bit n Nguồn đồng hồ từ mạch chia thời gian hoặc từ chân T1

(theo sườn lên/xuống)

n Cóng ắt tràn, ngắt thích ứng so sánh vàng ắt cho phép bắt

tín hiệu từ chân ICP

9

n T/C1:

4.2.1 Timer/Counter (tiếp)

n 8 bit

n Nguồn đồng hồ từ mạch chia thời gian hoặc từ dao động bên ngoài (chân TOSC1 vàTOSC2 n ối với tụ thạch anh 32768Hz)

n Cóng ắt tràn vàng ắt thích ứng so sánh

n Cho phép đưa tín hiệu ra chân OC2 khi cótín hi ệu thích

ứng so sánh

4.2.2 WatchDog Timer

Reset

Watchdog Timer

Processor

Restart

Clock

10

n T/C2:

4.2.2 WatchDog Timer (tiếp)

Reset lại

n Hoạt động từ bộ dao động độc lập trên chip n Lệnh WDR để Reset lại WatchDog Timer n Sau khoảng thời gian > time_out chương trình sẽ bị

7

6

5

4

3

2

1

0

Bit

WDTOE

WDE

WDP2

WDP1

WDP0

WDTCR

$21 ($41)

R

R

R

R/W

R/W

R/W

R/W

R/W

Read/Write

0

0

0

0

0

0

0

0

Initial Value

4.2.2 WatchDog Timer (tiếp)

n Thanh ghi điều khiển: WDTCR

WDP2

WDP1

WDP0

Number of WDT Oscillator Cycles

0

0

0

16K

Typical Time_out at Vcc = 3.0V 17.1ms

Typical Time_out at Vcc = 5.0V 16.3ms

0

0

1

32K

34.3ms

32.5ms

0

1

0

64K

68.5

65ms

0

1

1

128K

0.14s

0.13s

1

0

0

256K

0.27s

0.26s

1

0

1

512K

0.55s

0.52s

1

1

0

1M

1.1s

1.0s

1

1

1

2M

2.2s

2.1s

11

n WDP2, WDP1, WDP0 : xác định thời gian time_out

4.2.2 Các cổng vào ra

4.2.2 Các cổng vào ra (tiếp)

n Thanh ghi dữ liệu : PORTA n Thanh ghi điều khiển hướng dữ liệu : DDRA n Thanh ghi địa chỉ các chân vào : PINA

n Có4 c ổng vào ra 8 bit PA, PB, PC, PD n Mỗi cổng đều có3 thanh ghi (8 bit), ví d ụ cổng A :

thể vừa cóbit vào v ừa 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)

12

n Cho phép thao tác vào ra trên từng bít (một cổng có

4.2.2 Các cổng vào ra (tiếp)

4.2.3 ADC

n Phải định nghĩa cổng trước khi sử dụng n Khả năng chịu tải cao (Isink khoảng 20mA/Pin) n Vào ra ba trạng thái n Cókh ả năng vào tương tự n Pull_up, I = 33µA÷160µA

n Độ phân giải tối đa 10 bit, xấp xỉ liên tiếp n Độ chính xác tuyệt đối đến ±2 LSB n Thời gian chuyển đổi: 65-260 µs, 13 chu kỳ cho một lần

chuyển đổi

n 2 chế độ hoạt động: chuyển đổi đơn vàchuy ển đổi tự do

n Đặc điểm:

n Thanh ghi dữ liệu: ADCL, ADCH

13

n Các thanh ghi

4.2.3 ADC (tiếp)

n Thanh ghi chọn kênh : ADMUX

7

6

5

4

3

2

1

0

Bit

REFS1

REFS0

ADLAR

MUX4

MUX3

MUX2

MUX1

MUX0

ADMUX

$21 ($41)

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Read/Write

0

0

0

0

0

0

0

0

Initial Value

n Thanh ghi điều khiển trạng thái: ADCSRA

5

4

3

2

1

0

7

6

Bit

ADEN

ADSC

ADATE

ADIF

ADIE

ADPS2

ADPS1

ADPS0

ADCSRA

$21 ($41)

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Read/Write

0

0

0

0

0

0

0

0

Initial Value

4.2.4 USART n Đặc điểm:

n Truyền song công n Truyền đồng bộ hoặc không đồng bộ n Master hoặc Slave cấp xung nhịp n Khuân dạng dữ liệu đa dạng (5=>9 bit dữ liệu, 1 hoặc 2

bít dừng)

n Kiểm tra bit chẵn lẻ bằng phần cứng n Tự phát hiện lỗi tràn dữ liệu, khung dữ liệu lỗi n Khả năng lọc nhiễu n 3 ngắt truyền, nhận vàtruy ền hết n Nhiều chế độ kết nối n Khả năng nhân đôi tốc độ truyền thông

14

4.2.4 USART (tiếp) n Các thanh ghi

n Thanh ghi tốc độ Baud : UBRR

BaudRate =

Fclk 16 * (UBRR + 1)

n VD: fck = 4MHz,cần tốc độ 14400bps n UBRR =16 (16.3), tốc độ thực tế là14705bps, l ỗi 2.1% n Không nên sử dụng tốc độ có lỗi > 1%

4.2.4 USART (tiếp)

n Thanh ghi dữ liệu: UDR (gồm hai thanh ghi độc lập cócùng

địa chỉ vào ra): chứa dữ liệu nhận vàtruy ền

n Thanh ghi điều khiển vàtr ạng thái: UCSR

(Control and Status Register)

7

6

5

4

3

2

1

0

Bit

RXC

TXC

UDRE

FE

DOR

PE

U2X

MPCM

UCSRA

$0B ($2B)

R/W

R

R/W

R

R

R

R

R/W

Read/Write

0

0

0

1

0

0

0

0

Initial Value

7

6

5

4

3

2

1

0

Bit

RXCIE

TSCIE

UDRUE

RXEN

TXEN

UCSZ2

RXB8

TXB8

UCSRB

$0A ($2A)

R

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Read/Write

0

0

0

0

0

0

0

0

Initial Value

15

4.2.4 USART (tiếp)

Hoạt động:

hoặc cả hai, có sử dụng ngắt hay không?

n Thiết lập tốc độ truyền, 8/9 bit dữ liệu, truyền/nhận

n Đưa byte dữ liệu cần truyền vào UDR

n Đợi đến khi UDRE = 1 (hoặc sử dụng ngắt) thìtruy ền tếp

byte tiếp theo

4.2.4 USART (tiếp)

n Truyền dữ liệu:

(IDLE)

Sp1 [Sp2]

(St/IDLE)

n Nhận dữ liệu:

n Đợi đến khi cờ RXC=1 (hoặc sử dụng ngắt) báo hiệu nhận

được byte dữ liệu

n Kiểm tra cờ FE và OR

n Đọc byte dữ liệu từ UDR

16

St 0 1 2 3 4 [5] [6] [7] [8] [P]

4.2.5 EEPROM

n EERIE (EEPROM Ready Intr En)

n EEMWE (EEPROM Master Write En) : cho phép ghi. Bit này

sẽ tự động bị xoásau 4 chu k ỳ đồng hồ

n EEWE (EEPROM Write En) : khi bit này được thiết lập và

EEMWE=1 thìthao tác ghi m ới được thực hiện

n EERE (EEPROM Read En): cho phép đọc

n EEPROM. Khi đọc xong, bit này sẽ tự động bị xoávàCPU s ẽ dừng 4 chu kỳ đồng hồ trước khi lệnh tiếp theo được thực hiện

4.2.5 EEPROM (tiếp)

n Đợi đến khi EEWE=0

n Ghi địa chỉ mới vào EEARL vàEEARH

n Ghi dữ liệu mới vào EEDR

n Ghi mức logic 1 vào bit EEMWE và mức logic 0 vào

EEWE đồng thời

n Trong vòng 4 chu kỳ đồng hồ sau ghi giátr ị logic 1 vào

EEWE

17

n Quy trình ghi:

4.2.6 SPI (Serial Peripheral Interface)

4.2.6 SPI (Serial Peripheral Interface –ti ếp)

n Truyền song công

n Chọn chế độ chủ hoặc tớ

n Bit cao hoặc bit thấp truyền trước

n Bảy bít thiết lập tốc độ truyền

n Cờ ngắt truyền hết

n Cờ bảo vệ xung đột ghi

n Đánh thúc từ chế độ nghỉ

n Chế độ nhân đôi tốc độ

18

4.2.7 So sánh tín hiệu tương tự (Analog Comparator) n Mạch so sánh tín hiệu tương tự: so sánh tín hiệu

analog giữa hai chân AIN1 vàAIN2

4.1 Giới thiệu chung (tiếp)

U1

J5

+5V

MOSI MISO SCK Reset

1 2 3 4 5 6

MOSI MISO SCK

1 2 3 4 5 6 7 8

40 39 38 37 36 35 34 33

Program

PB0/XCK/T0 PB1/T1 PB2/INT2/AIN0 PB3/OC0/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK

PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7

14 15 16 17 18 19 20 21

22 23 24 25 26 27 28 29

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

C4

22p

11

12

GND

XTAL2

CON8

10

Y1 8MHz

C5

+5V

VCC

13

XTAL1

+5V

22p

R1 10K

30

AVCC

S1

Reset

9

RESET

+5V

31

AGND

Reset

+

C3 4.7u

32

AREF

ATMEGA32

19

4.3 Tập lệnh vàngôn ng ữ lập trình

4.3.1 Tập lệnh n 109 lệnh

n Toán học vàlogic (22) n Lệnh rẽ nhánh (34) n Lệnh chuyển đổi dữ liệu (31) n Lệnh bít vàki ểm tra bít (31)

4.3.1 Tập lệnh (tiếp)

Các chế độ định địa chỉ

20

n Địa chỉ trực tiếp (Direct Addressing) n Địa chỉ qua chỉ số (Indexed Addressing) n Địa chỉ tức thời (Immediate Addressing) n Địa chỉ tương đối (Relative Addressing) n ….

4.3.2 Một số ngôn ngữ lập trình nAVR Assembler nAVR Edit 3.5 (lập trình C) nCodeVisionAVR (lập trình C)

21

5: CodevisionAVR Chương 5: CodevisionAVR Chương

nn IDE (

Integrated Development Environment)) IDE (Integrated Development Environment

Compiler)) nn TrTrìình dnh dịịch (ch (Compiler

nn HHààm thư vi

m thư việện (n (Library Functions) Library Functions)

nn TTựự đ độộng sinh mã (

Automatic Program Generator)) ng sinh mã (Automatic Program Generator

Hình 5. Giao diện chính của CodevisionAVR

1

5.1 IDE 5.1 IDE

5.1.1 File 5.1.1 File

o file nn TTạạo file

nn MMởở filefile

nn ChChỉỉnh snh sửửaa

5.1.2 Project 5.1.2 Project

t project nn TTạạo mo mộột project

Project nn MMởở Project

nn LưuLưu

Thêm chúú ththíích/di

ch/diễễn gin giảảii

nh cho Project nn CCấấu hu hìình cho Project

nn Thêm ch

Quan sáát chương trr

t chương trrìình dnh dịịchch

2

nn Quan s

5.1.3 Công cụụ 5.1.3 Công c

debugger)) nn GGỡỡ rrốối (i (debugger

programmer)) nn LLậập trp trìình (nh (programmer

Terminal nn Terminal

Configuring)) nn CCấấu hu hìình (nh (Configuring

5.1.4 Thiếết lt lậập môi trư 5.1.4 Thi

p môi trườờngng

ng quan nn TTổổng quan

nn SoSoạạn thn thảảoo

nn HiHiệện ln lỗỗii

nn ĐưĐườờng dng dẫẫn trn trìình gnh gỡỡ llỗỗii

3

nn CCấấu hu hìình nnh nạạpp

5.2 Trìình dnh dịịchch 5.2 Tr n Tiền xử lý n Chúthích n Từ khoá n Dữ liệu chuẩn, dữ liệu tự định nghĩa n Hằng, biến n Chuyển kiểu n Phép toán n Hàm n Con trỏ n Thanh ghi I/O n Truy cập EEPROM n Ngắt n Assembly

5.3 H5.3 Hààm chum chuẩẩnn

m IO chuẩẩnn char getchar

nn HHààm IO chu nn char

(void) getchar(void)

nn void

void putchar

Returns a character received by the UART, using polling. Returns a character received by the UART, using polling.

(char c) putchar(char c)

nn ……

Transmits the character c using the UART, using polling. Transmits the character c using the UART, using polling.

nn unsigned char

unsigned char cabs

nn unsigned int

nn HHààm tom toáán hn họọcc

(signed char x) cabs(signed char x) returns the absolute value of the byte x. returns the absolute value of the byte x. (int x) unsigned int absabs(int x) returns the absolute value of the integer x. returns the absolute value of the integer x.

nn ……

4

nn LCDLCD

(unsigned char addr, unsigned char data) lcd_write_byte (unsigned char addr, unsigned char data)

nn void

nn unsigned char

nn void

void lcd_write_byte write a byte to the LCD character generator or display RAM write a byte to the LCD character generator or display RAM unsigned char lcd_read_byte (unsigned char addr); lcd_read_byte(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 void lcd_gotoxy (unsigned char x, unsigned char y); lcd_gotoxy(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

. . . nn . . .

nn void

void i2c_init

unsigned char i2c_start

nn unsigned char

nn II22CC

(void) i2c_init(void) this function initializes the I2C bus. this function initializes the I2C bus. (void) i2c_start (void) 2C bus is issues a START condition. Returns 1 if bus is free or 0 if the I2C bus is issues a START condition. Returns 1 if bus is free or 0 if the I

nn void

busy. busy. (void) i2c_stop (void) void i2c_stop issues a STOP condition. issues a STOP condition.

nh thờờii

so sáánh tương t

nh tương tựự

ng sinh mã 5.4 T5.4 Tựự đ độộng sinh mã c thông sốố nn CCàài đi đặặt ct cáác thông s p RAM ngoààii nn ThiThiếết lt lậập RAM ngo nn ThiThiếết lt lậập cp cổổng vng vàào rao ra nn ThiThiếết lt lậập ngp ngắắtt nn ThiThiếết lt lậập bp bộộ đ đếếmm//đđịịnh th nn ThiThiếết lt lậập UART/USART p UART/USART nn ThiThiếết lt lậập bp bộộ so s p ADC nn ThiThiếết lt lậập ADC nn ThiThiếết lt lậập SPI p SPI nn ThiThiếết lt lậập USI p USI nn ThiThiếết lt lậập Ip I22CC nn ThiThiếết lt lậập LCD p LCD . . . nn . . .

5

. . . nn . . .

6: Input/Output Chương 6: Input/Output Chương

nn TTổổngng quanquan nn MMộộtt ssốố vvíí ddụụ vvàào/rao/ra nn LLậậpp trtrììnhnh điđiềềuu khikhiểểnn thithiếếtt bbịị nn ThiThiếếtt bbịị vvààoo rara chuchuẩẩnn

TTổổngng quanquan

nn VVààoo rara ssốố

VVààoo nnốốii titiếếpp VVààoo rara song nn VVààoo rara tương

song song song tương ttựự

ADCADC DACDAC

1

8051 VVààoo rara ccủủaa 8051

VVààoo rara ccủủaa AVRAVR

2

4x4 BBàànn phphíímm 4x4

S901

S902

S903

S904

K0

K1

K2

K3

K4

S911

S912

S913

S914

K5

S921

S922

S923

S924

K6

S931

S932

S933

S934

K7

BBàànn phphíímm 4x44x4

nn ĐĐọọcc bbàànn phphíímm rung nn ChChốốngng rung

3

Key Board Key Board

Key Board Key Board

( chip thoâng

nhau ttöøöø babaøønn phphíímm nanaøøyy ññeeáánn babaøønn phphíímm thoâng duduïïngng gogoààmm 8048, 8049, 6868

8048, 8049, 6868 vavaøø

byte cucuûûaa nonoùù neneááuu cacaàànn. . TaTaáátt cacaûû vievieääcc giaogiao

AT keyboard gogoààmm momoäätt ma ma tratraäänn lôlôùùnn cacaùùcc phphíímm, , tataáátt cacaûû ñöñöôôïïcc giagiaùùmm sasaùùtt bôbôûûii momoäätt boboää xxöûöû lylyùù onon--board. board. BoBoää xxöûöû lylyùù khakhaùùcc biebieäätt nhau khakhaùùcc( chip 6805) nhnhööngng tataáátt chuchuùùngng côcô babaûûnn lalaøømm giogioáángng momoäätt vievieääcc : : 6805) GiaGiaùùmm sasaùùtt nhnhööõngõng phphíímm ñöñöôôïïcc nhanhaáánn / / thathaûû vavaøø gôgôûûii ddööõõ lielieääuu ttööôngông xxöùöùngng tôtôùùii mamaùùyy chuchuûû. . BoBoää xxöûöû lylyùù nanaøøyy chaêmchaêm sosoùùcc tataáátt cacaûû ddööõõ lielieääuu rara vavaøø ññeeäämm babaáátt ccöùöù ddööõõ lielieääuu nanaøøoo vavaøøoo boboää ññeeäämm 1616--byte PS/2 protocol. tietieáápp gigiööõaõa mamaùùyy chuchuûû vavaøø babaøønn phphíímm duduøøngng PS/2 protocol.

4

nn AT keyboard