Tải bản đầy đủ - 0 (trang)
Hình 2.21: Dạng thứccủa thanh ghi MSR.

Hình 2.21: Dạng thứccủa thanh ghi MSR.

Tải bản đầy đủ - 0trang

46



OE: Overrun Error: (lỗi do thu đè): 1 – có hiện tượng thu đè (có thể do

CPU bị chậm), bit này bị xóa khi CPU đọc thanh ghi LSR.

PE: Parity Error (lỗi parity): 1 – có lỗi parity, bit này bị xóa khi CPU đọc

LSR.

FE: Framing Error (lỗi khung ): 1 – có lỗi khung, bit này bị xóa khi CPU

đọc thanh ghi LSR.

BI: Break Interrupt (có sự gián đoạn trong khi truyền): 1 – khi tín hiệu ở

đầu vào phần thu ở mức thấp lâu hơn thời gian dành cho một ký tự, bit này bị

xóa khi CPU đọc thanh ghi LSR.

THRE: Transmitter Holding Register Empty (thanh ghi giữ phát rỗng): 1 –

khi ký tự đã được truyền từ THR →TSR, bit này bị xóa khi CPU đưa ký tự tới

thanh ghi THR.

TSRE: transmitter Shift Register Empty (thanh ghi dịch phát rỗng): 1 – khi

một ký tự đã được phát đi, bit này bị xóa khi có một ký tự được chuyển từ

THR→TSR.

2.4.3. Các thanh ghi trong máy tính giao tiếp với UART8250A/ 16450:

Để giúp cho việc lập trình giao tiếp với các thiết bị bên ngoài qua cổng tuần

tự , máy tính định vị các địa chỉ thanh ghi trong máy để người lập trình thao tác

với UART.

- TD/RD Buffer Register (3F8h: COM1; 2F8h: COM2)

- Inrerupt Enable Register (3F9h; 2F9h )

- Interrupt Identification Register (3FAh; 2FAh )

- Line Control Register (3FBh; 2FBh )

- Modem Cotrol Register (3FCh; 2FCh )

- Line Status Register (3FDh; 2FDh )

- Modem Status regisret (3FEh; 2FEh )



47



Vì những tính năng ưu việt của 8250 nên ta chọn mạch UART 8250A

(16450) cho mạch thu phát bất đồng bộ.

2.5. Chọn chíp vi xử lý.

2.5.1. Vi xử lý AT89C51.

Vi xử lý AT89C51 được chế tạo bởi hãng ATMEL, về cơ bản nó có cấu tạo

bên trong, sơ đồ chân cũng như sử dụng tập lệnh tương thích với họ MCS_51

của hãng INTEL.

Các đặt điểm cơ bản của vi mạch AT89C51:

Đơn vị xử lý trung tâm 8 bit đã được tối ưu hóa để đáp ứng các chức năng

điều khiển.

Khối logic xử lý theo bit thuận tiện cho các phép toán Boole.

Bộ tạo dao động giữ nhịp bên trong (đến 12Mhz).

Tập lệnh rất phong phú.

GiaoCác

diện ngắt

nối tiếp có khả năng hoạt độngCác

songsự

cơng,

đồng

bộ (UART).

kiện

cần

ngồi

đếm

16 (32) đườngNguồ

dẫn vào/ra haiRAM

hướng và từng hướng có thể được định địa chỉ

nội

một cách tách biệt. n

SF

ngắt

Rưu tiên.

trong

Năm nguồn ngắt

với hai mức

Time

Time

128

Điều

Có thể mở

rộng bộ nhớ chương trình (ROM)r bên

ngồi

0

rlên

1 đến 64KB.

byte

khiể

RAM

Có thể mởn rộng dung lượng

bộ nhớ dữ liệu (RAM) bên ngoài lên đến

ngắt

64KB.

Hai bộ đếm/định

CPU thời 16 bit.

Bộ nhớ EEPROM nội 4KB.

Q

Bộ

Quả

Por

Porcó thểPor

Dung lượng bộ nhớ RAM nội,

nhiều nhất

lên đếnPor

128 byte.Cổng

dao

nuản

lý lý t0

t2

t1

t3

nối tiếp

bus

bus

động

2.5.2. Cấu trúc của bộ vi xử lý AT89C51 (Hình 2.23).

AL

XTAL

Địa chỉ Địa chỉ

1,2 PSE E thấp/dữ cao

N

liệu



48



Hình 2.23: Cấu trúc của bộ vi xử lý AT89C51

- Bốn bank thanh ghi.

- Con trỏ ngăn xếp (SP: Stack Pointer) cũng như con trỏ dữ liệu (DPTR:

Data Pointer) để định địa chỉ cho bộ nhớ dữ liệu bên ngồi.

Ngồi ra còn có: Bộ đếm chương trình (PC: Program Counter), bộ giải mã

lệnh, bộ điều kiển thời gian và logic.

Đơn vị xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được

lắp thêm vào, linh kiện phụ trợ có thể là một khung dao động bằng vật liệu gốm

hoặc một cộng hưởng bằng thạch anh. Ngồi ra, còn có khả năng đưa một tín

hiệu giữ nhịp từ bên ngồi vào. Chương trình đang chạy có thể cho dừng lại nhờ

một khối logic ngắt ở bên trong. Các nguồn ngắt có thể là: các biến cố ở bên

ngồi, sự tràn bộ đếm / định thời hoặc cũng có thể là giao diện nối tiếp. Bộ vi xử



49



lý AT89C51 có 4KB EEPROM nội cho phép người dùng có thể lập trình và xóa

bằng điện. Đây cũng là ưu điểm mạnh nhất của vi mạch này so với các họ vi xử

lý khác, nó cho phép đơn giản được phần cứng trong các ứng dụng nhỏ mà

khơng cần sử dụng ROM ngồi như khi dùng các họ khác. Ngồi ra nó còn cung

cấp 128 byte RAM nội để có thể xắp xếp dữ liệu và thông tin điều khiển.

Bộ vi xử lý AT89C51 chứa hai bộ định thời 16 bit, chúng cũng có thể được

dùng như là bộ đếm các sự kiện. Ngồi ra nó còn có 4 cổng (PORT) rộng 8 bit,

độc lập với nhau, các cổng này có thể được sử dụng cho những mục đích rất đa

dạng: Khi vi xử lý làm việc với bộ nhớ chương trình ngồi, cổng P0 dùng để

truyền nửa dưới của các địa chỉ nhớ được sử dụng giống như dùng cho các dữ

liệu 8 bit. Sau đó cổng P2 sẽ điển ra quá trình xuất ra nửa trên của các địa chỉ 8

bit. Cổng P1 và P3 có chứa mỗi cổng một cổng vào ra 8 bit, có thể sử dụng được

cho những mục đích điều khiển khác nhau. ở cổng P3 còn có thêm các đường

dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, để đấu nối giao diện

nối tiếp cũng như các đường dẫn ngắt bên ngoài.

Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ,

làm việc độc lập với nhau. Bằng cách đấu nối các bộ đệm thích hợp, ta có thể

hình thành một cổng nối tiếp RS_232 đơn giản. Tốc độ truyền qua cổng nối tiếp

có thể được đặt trong một vùng rộng và được ấn định bằng một bộ định thời.

2.5.2. Sự sắp xếp chân ra:

Cấu hình chân và vỏ thông dụng nhất của AT89C51 là DIP 40 (Dual In

39



21



P 0 . 0kiện

/ A D 0 như hình

P 2 . 0 2.24

/A 8

Package). Sơ đồ bố trí chân

3 8 linh

2: 2

P 0 .1 /A D 1

P 2 .1 /A 9

3

3

3

3

3

3



7

6

5

4

3

2



1

2

3

4

5

6

7

8

19

18

9

31



P

P

P

P

P

P



0

0

0

0

0

0



.2

.3

.4

.5

.6

.7



P

P

P

P

P

P

P

P



1

1

1

1

1

1

1

1



.0

.1

.2

.3

.4

.5

.6

.7



/A

/A

/A

/A

/A

/A



D

D

D

D

D

D



XTA L1

XTA L2

R S T

E A /V P P

A T89C 51



2

3

4

5

6

7



P

P

P

P

P

P



2

2

2

2

2

2



.2

.3

.4

.5

.6

.7



/A

/A

/A

/A

/A

/A



1

1

1

1

1

1



0

1

2

3

4

5



P 3 .0 /R XD

P 3 .1 /T XD

P 3 .2 /IN T O

P 3 .3 /IN T 1

P 3 .4 /T O

P 3 .5 /T 1

P 3 .6 /W R

P 3 .7 /R D

P S E N

A L E /P R O G



2

2

2

2

2

2



3

4

5

6

7

8



1

1

1

1

1

1

1

1



0

1

2

3

4

5

6

7



29

30



50



Hình 2.24: Sơ đồ bố trí chân linh kiện AT89C51

1)



Port 0: Là port hai chức năng trên các chân 32 – 39. Khi sử dụng bộ



nhớ trong thì nó như là một port I/O ( P0.0 → P0.7). Khi sử dụng bộ nhớ ngồi

thì nó đóng vai trò như một bộ MUX địa chỉ/ data:

A0→A7



MUX



AD0→AD7



D0→D7

Trong nửa chu kỳ đầu A0 →A7, trong nửa chu kỳ sau D0 → D7

2) Port 1: Là một port I/O trên các chân 1 – 8 (P1.0→ P1.7) nó chỉ được

dùng để giao tiếp với các thiết bị ngồi và khơng có các chức năng khác.

3) Port 2: Là một port cổng dụng kép trên các chân 21 – 28. Khi sử dụng

bộ nhớ trong thì nó như là một port I/O đa dụng (P2.0→P2.7), khi sử dụng bộ

nhớ ngồi thì port 2 chính là byte cao của các đường địa chỉ (A8→A15).

4) Port 3: Chiếm các chân từ 10 đến 17, ngồi chức năng chính là một I/O

port đa dụng (P3.0→P3.7), mỗi chân của port 3 còn có các chức năng khác nhau,

độc lập.

Bảng 4: Chức năng các chân port 3.

Chân

P3.0

P3.1

P3.2

P3.3



Ký hiệu

RXD

TXD

INT 0

INT 1



Mô tả

Ngõ vào cổng SIO (giao tiếp nối tiếp)

Ngõ ra cổng SIO

Ngõ vào interrupt 0

Ngõ vào interrupt 1



51



P3.4

P3.5



T0

T1



Ngõ vào CK ngoài timer 0

Ngõ vào CK ngoài timer 1



P3.6



WR



Xung WR ghi bộ nhớ ngoài



P3.7



RD



Xung RD đọc bộ nhớ ngồi



2) PSEN: (Program Store Enable): Chân 29, tích cực mức thấp trong chu

kỳ nhận lệnh, chỉ báo data trên dus là mã lệnh.

Trong trường hợp sử dụng bộ nhớ chương trình trong thì PSEN khơng tích

cực.



MCU



PSEN OE



ROM



6) ALE: (Address Latch Enable )

Chân 30, tích cực mức cao trong nửa chu kỳ đầu chỉ báo dữ liệu trên port

chính là địa chỉ byte thấp A0 ÷ A7.

P0

MCU

AD0 ÷ AD7



P2

7)



ALE

A8÷ A15



D



Q



A0

÷ A7



Chốt 8

bit

G



EA (External Acess): Chân 31, cho phép chọn bộ nhớ chương



trình trong hay ngồi.

+ EA = 0 : MCU sử dụng bộ nhớ chương trình ngồi

+ EA = 1: MCU sử dụng bộ nhớ chương trình trong.

8) RST (Reset):



52



Ngõ vào RST trên chân 9 là ngõ Reset của 8951, khi ngõ này lên mức cao

(trong ít nhất hai chu kỳ máy) các thanh ghi bên trong 8951 được đặt ở các giá

trị như bảng 5.

Bảng 5: Ngõ vào RST.

Thanh ghi

Đếm chương trình PC



Nội dung

0000H



Tích luỹ A



00H



B



00H



PSW



00H



SP



07H



DPTR



0000H



Port 0-3



FFH



IP



XXX00000B



IE



0XX00000B



Các thanh ghi định thời



00H



SCON



00H



SBUF



00H



PCON (HMOS)



0XXXXXXXB



PCON (CMOS)



0XXX0000B



9) Cấp dao động: 8951 có một bộ dao động trên chip, nó thường được nối

với thạch anh giữa hai chân18 và 19 và các tụ giữ, tần số thạch anh thông

thường là 12MHz.

10) Cấp nguồn: 8951 vận hành với nguồn đơn +5V. Vcc được nối vào chân

40 và Vss (GND) được nối vào chân 20.

2.5.3. Tổ chức bộ nhớ của AT89C51:

89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho

chương trình và dữ liệu. Cả chương trình và dữ liệu đều có thể ở bên trong, tuy

nhiên chúng có tthể được mở rộng bằng các thành phần bên ngoài lên tới 64Kb

bộ nhớ chương trình và 64 Kb bộ nhớ dữ liệu.



53



Bộ nhớ bên trong bao gồm EEPROM và RAM trên chip, RAM trên chip

bao gồm nhiều phần: phần lưu trữ đa dụng, phần địa chỉ hóa từng bit, các bank

thanh ghi và các thanh ghi chức năng đặt biệt:

Bộ nhớ RAM bên trong:

7Fh

...

30h

2Fh

...

20h

1Fh

...

18h

17h

...

10h

0Fh

...

08h

07h R7

...

00h R0



sử dụng tự do và ngăn xếp



các địa chỉ bit 0 . . . 7Fh



bank thanh ghi 3



bank thanh ghi 2



bank thanh ghi 1



bank thanh ghi 0



+ Vùng RAM đa dụng: Địa chỉ từ 30H÷ 7FH, chỉ truy xuất byte, khơng

truy xuất bit được, có thể định địa chỉ trực tiếp hoặc gián tiếp.

+Vùng RAM định vị bit: Địa chỉ từ 20H÷ 2FH, chứa 128 bit từ

00H÷ 7FH, cho phép truy xuất trực tiếp tên bit.

+ Vùng bank thanh ghi: địa chỉ từ 00H÷ 1FH bao gồm bốn bank thanh ghi

ký hiệu từ R0 đến R7, trong chương trình phải khai báo bank thanh ghi tích cực

hiện hành thông qua bit RS1, RS0 nằm trong thanh ghi PSW.

2.5.4. Các thanh ghi chức năng đặc biệt: (SFRS)

Vùng RAM nội địa chỉ từ 80H–FFH, trong vùng này bố trí khoảng 21 thanh

ghi đặc biệt , phụ trách một chức năng nào đó của MCU.



54



1) Thanh ghi PSW (Program status Word): Thanh ghi từ trạng thái

chương trình ở địa chỉ D0H chứa các cờ (các bit chức năng) trạng thái của hệ

thống:

Bảng 6: Chức năng thanh ghi PSW

Bit

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0



Ký hiệu



Địa chỉ



CY

AC

F0

RS1



D7H

D6H

D5H

D4H



RS0



D3H



OV

P



D2H

D1H

D0H



Ý nghĩa

Cờ nhớ

Cờ nhớ phụ

Cờ 0

Bit 1 chọn bank thanh ghi

Bit 0 chọn bank thanh ghi

00 : bank 0

01 : bank 1

10 : bank 2

11 : bank 3

Cờ tràn

Dự trữ

Cờ parity chẵn



2) Thanh ghi B: Địa chỉ F0H, truy xuất bit, ngồi chức năng là thanh ghi

đa dụng còn tham gia vào 2 phép toán nhân và chia.

3)



Thanh ghi SP (Stack Poiter): Địa chỉ 81H, vùng ngăn xếp nằm trong



RAM nội về nguyên lý dung lượng tối đa là 128 byte. Trước khi cất vào stack

nội dung SP tăng lên 1 rồi mới cất (nội dung SP là con trỏ địa chỉ), khi lấy dữ

liệu ra khỏi stack nội dung SP giảm đi 1 sau khi lấy data.

4) Thanh ghi DPTR (Data Poiter): Sử dụng làm con trỏ địa chỉ bộ nhớ dữ

liệu ngoài.

Chia làm hai thanh ghi:

DPL (địa chỉ 82H) chứa byte thấp.

DPH (địa chỉ 83H) chứa byte cao.

5) Các thanh ghi cổng ngoại vi: Các lệnh liên quan đến xuất nhập ngoại vi

đều thông qua các thanh ghi cổng.

Port 0: Thanh ghi P0 (địa chỉ 80H)



55



Port 1: Thanh ghi P1 ( địa chỉ 90H)

Port 2: Thanh ghi P2 ( địa chỉ A0H)

Port 3: thanh ghi P3 (địa chỉ B0H)

6) Các thanh ghi timer: TMOD (địa chỉ 89H): Chọn mode làm việc timer.

TCON (địa chỉ 88H): điều khiển timer

TL0 (địa chỉ 8AH): byte thấp timer 0

TH0 (địa chỉ 8CH): byte cao timer 0

TL1 (địa chỉ 8BH): byte thấp timer 1

TH1 (địa chỉ 80H): byte cao của timer 1

7) Các thanh ghi SIO: SCON (98H): Khởi động mode và điều khiển SIO.

SBUF ( 99H): Chuyển dữ liệu từ nối tiếp thành song song và ngược lại.

8) Các thanh ghi phục vụ ngắt: Có 5 nguồn ngắt với 2 cấp ưu tiên:

+Thao tác trên thanh ghi IE (A 8H): Cho phép / cấm ngắt.

+Thao tác trên thanh ghi IP (B8H): Cấp ưu tiên ngắt.

9)Thanh ghi điều khiển công suất (PCON): Địa chỉ 87H, không truy xuất

bit được, các bit của thanh ghi này được dùng trong việc tác động lên tốc độ

baud (SMOD) trong truyền thông nối tiếp, đưa vi mạch vào mode tạm nghỉ hay

mode hạ nguồn.

2.5.5. Hoạt động của Timer:

1) Giới thiệu: 8951 có 2 bộ timer 16 bit on chip: Timer 0 và timer 1.

-



Đặt mode làm việc và điều khiển bằng mềm.



-



Các timer tương đương như là bộ đếm cứng.



-



Những thanh ghi phục vụ cho timer:



• Thanh ghi TMOD: Đặt mode làm việc

• Thanh ghi TCON: Điều khiển timer.

• TH0, TL0:Bộ timer 0

• TH1, TL1: Bộ timer 1



56



2) Thanh ghi TMOD: Có địa chỉ 89H, là thanh ghi 8 bit, đặc các mode làm

việc cho timer.

Tóm tắt thanh ghi TMOD:

Bảng 7: Tóm tắt thanh ghi TMOD.

Bit

7



Tên

Gate



Timer

1



Mơ tả

Bit cổng. Gate=1 timer chỉ đếm khi INT1=1

Bit chọn Timer/Counter. C/ T =1 counter đếm bẵng



6



C/ T



1



xung ck ngoài ngõ vào T1



5

4

3

2

1



M1

M0

Gate

C/T

M1



1

1

0

0

0



C/ T =0 timer, xung ck trong từ dao động nội

Bit 1 chọn mode

Bit 0 chọn mode

Bit cổng (timer 0)

Bit chọn timer/counter

Bit 1 chọn mode



0



M0



0



Bit 0 chọn mode



Bảng 8: Bảng chọn mode.

M1

0

0

1

1



M0

0

1

0

1



Mode

0

1

2

3



Mô tả

Timer 13 bit

Timer 16 bit

Timer 8 bit

Timer tách biệt



3) Thanh ghi TCON: Địa chỉ 88H , truy xuất bit được, là thanh ghi 8 bit

Bảng 9: Tóm tắt thtanh ghi TCON:

Bit



Ký hiệu



Địa chỉ

bit



Mô tả

Cờ báo tràn timer 1, phần cứng đặt



TCON.7



TF1



8FH



TF1=1 khi timer tràn, xóa bằng

mềm hoặc cứng.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 2.21: Dạng thứccủa thanh ghi MSR.

Tải bản đầy đủ ngay(0 tr)

×