1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án mạch đo nhiệt độ dung LM35 và 89S52

46 3K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,88 MB

Nội dung

Mạch tạo xung clock cho ADC 0809: Xung nhịp cho ADC có thể được lấy từ nguồn bên ngoài như CPU clock hay có thể dùngcác mạch tạo dao động sau: 1.2.1Sử dụng mạch dao động dùng các cổng no

Trang 1

Chương 1: Giới thiệu linh kiện……… Trang 2

1 Giới thiệu ADC0809………Trang 2

Trang 3

PHẦN 1 GIỚI THIỆU ĐỀ TÀI

- Thiết kế mạch đo nhiệt độ 4 kênh trong dải từ 0 đến 140oC

- Đo và hiển thị đúng nhiệt độ hiện tại ở nơi đang khảo sát

- Cảnh báo nếu nhiệt độ vượt mức ngưỡng nguy hiểm( ở đề tài này chọn ngưỡng nguyhiểm là 50 độ C)

3 Phương án thực hiện:

Có nhiều phương án khác nhau để thực hiện việc đo và hiển thị nhiệt độ:

- Sử dụng IC các IC số hay vi điều khiển.

- Hiển thị trên led 7 đoạn, LCD, led ma trận…

Ở đây em sử dụng vi điều khiển và hiển thị trên LCD vì kỹ thuật vi xử lý hiện nay rấtphát triển, so với kỹ thuật sử dụng IC số thì vi điều khiển được tích hợp nhiều hơn, nhỏgọn hơn và quan trọng nhất là được lập trình để điều khiển Mạch sử dụng vi điều khiểnkhá đơn giản, không phức tạp, cồng kềnh như kỹ thuật dùng IC số và mang tính thực tếcao hơn

PHẦN 2 NỘI DUNG CHƯƠNG 1: GIỚI THIỆU LINH KIỆN

1 Giới thiệu ADC0809:

Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi từ tương tự sang số

8 bit, bộ chọn 8 kênh với một bộ logic điều khiển tương thích Bộ chuyển đổi ADC 8 bitnày dùng phương pháp chuyển đổi xấp xỉ tiếp Bộ chọn kênh có thể truy xuất bất kỳ kênhnào trong các ngõ vào tương tự một cách độc lập

Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểm 0 bên ngoài và khả năng điềuchỉnh tỉ số làm tròn ADC 0809 dễ dàng giao tiếp với các bộ vi xử lý

Trang 4

28 15

1 14 IN2 IN1 IN0 A B C ALE 2-1 2-2 2-3 2-4 2-8 REF 2-6

START

IN3 IN4 IN5 IN6 IN7 EOC 2-5 OE CLK VCC REF GND 2-7

1.1 Sơ đồ chân ADC 0809:

* Ý nghĩa các chân:

IN0 đến IN7 : 8 ngõ vào tương tự

A, B, C : giải mã chọn một trong 8 ngõ vào

Z-1 đến Z-8 : ngõ ra song song 8 bit

ALE : cho phép chốt địa chỉ

START : xung bắt đầu chuyển đổi

CLK : xung đồng hồ

REF (+): điện thế tham chiếu (Vref+)

REF (-) : điện thế tham chiếu (Vref-)

VCC : nguồn cung cấp

1.1.2 Các đặc điểm của ADC 0809:

Độ phân giải 8 bit

Trang 5

Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng.

Không cần điều chỉnh zero hoặc đầy thang

1.1.3 Nguyên lý hoạt động:

ADC 0809 có 8 ngõ vào tương tự, 8 ngõ ra 8 bit có thể chọn 1 trong 8 ngõ vào tương

tự để chuyển đổi sang số 8 bit

Các ngõ vào tương tự được chọn bằng cách giải mã Chọn 1 trong 8 ngõ vào tương tựđược thực hiện nhờ 3 chân ADDA , ADDB , ADDC như bảng trạng thái sau:

A B C Ngõ vào được chọn0

0001111

00110011

01010101

IN0IN1 IN2IN3IN4IN5IN6IN7

Trang 6

Sau khi kích xung start thì bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xungstart, ngõ ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tính từ cạnh xuống củaxung start) Lúc này bit có trọng số lớn nhất (MSB) được đặt lên mức 1, tất cả các bit cònlại ở mức 0, đồng thời tạo ra điện thế có giá trị Vref/2, điện thế này được so sánh với điệnthế vào Vin.

+ Nếu Vin > Vref/2 thì bit MSB vẫn ở mức 1

+ Nếu Vin < Vref/2 thì bit MSB vẫn ở mức 0

Tương tự như vậy bit kế tiếp MSB được đặt lên 1 và tạo ra điện thế có giá trị Vref/4 vàcũng so sánh với điện áp ngõ vào Vin Quá trình cứ tiếp tục như vậy cho đến khi xác địnhđược bit cuối cùng Khi đó chân EOC lên mức 1 báo cho biết đã kết thúc chuyển đổi.Trong suốt quá trình chuyển đổi chân OE được đặt ở mức 1, muốn đọc dữ liệu ra chân

ref IN

V V

V V N

Trong đó Vin: điện áp ngõ vào hệ so sánh

Vref(+): điện áp tại chân REF(+)

Vref(-): điện áp tại chân REF(-)

Nếu chọn Vref(-) = 0 thì N = 256

) ( +

ref

in

V V

Vref(+) = Vcc = 5V thì đầy thang là 256

- Gi trị bước nhỏ nhất

Trang 7

1 LSB = 2 1

5

8 −

= 0,0196 V/byteVậy với 256 bước Vin = 5V

Áp vào lớn nhất của ADC0809 là 5V

• Biểu đồ thời gian của ADC 0809

Hình 1.1 Biểu đồ thời gian của ADC 0809

1.2 Mạch tạo xung clock cho ADC 0809:

Xung nhịp cho ADC có thể được lấy từ nguồn bên ngoài như CPU clock hay có thể dùngcác mạch tạo dao động sau:

1.2.1Sử dụng mạch dao động dùng các cổng not để tạo dao động cho ADC như sau:

Trang 8

Vcc Vref + IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7

Tần số dao động của mạch là f = 3RC

1.Tần số dao động chuẩn là 640 kHz

Trang 9

0809

Hình 1.2 Sơ đồ kết nối mạch chuyển đổi ADC 0809

1.2.2.Mạch dao động RC tạo xung clock:

Ở đây tôi sử dụng mạch này để tạo dao động cho ADC làm việc

Hình 1-3: mạch dao động cho ADC0809

Tần số của mạch dao động: f =

RC

.8,01

Ta chọn các giá trị linh kiện R và C sao cho xung clock tạo được có tần số khoảng640kHz để chu kỳ chuyển đổi là 100us

Trang 10

PC5 PC4

PC2 PC1 PC0

PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

OE ALE Start

C B A D7 D6 D5 D4 D3 D2 D1 D0

Để thực hiện các việc chuyển đổi nhận dữ liệu từ ADC ta thực hiện các bước sau:

• Nhận dữ liệu từ ADC vào port tương ứng

2 Giới thiệu vi điều khiển AT89C52:

2.1 Giới thiệu:

Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có thểlập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnh củangười lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thờigian và tiến hành đóng mở một cơ cấu nào đó

Trong các thiết bị điện và điện và điện tử dân dụng, các bộ vi điều khiển, điều khiểnhoạt động của TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sảnxuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động Các hệthống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng

2.2.Lịch sử phát triển của các bộ vi điều khiển

Bộ vi điều khiển thực ra, là một loại vi xử lí trong tập hợp các bộ vi xử lý nóichung Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển

và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS Semiconductor) , mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày càngcao

(Metal-Oxide-Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instrumentsvừa là nơi phát minh vừa là nhà sản xuất Nhìn tổng thể thì bộ vi xử lí chỉ có chứa trênmột chip những chức năng cần thiết để xử lí chương trình theo một trình tự, còn tất cả bộphận phụ trợ khác cần thiết như : bộ nhớ dữ liệu , bộ nhớ chương trình , bộ chuển đổiAID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là những linhkiện nằm ở bên ngoài được nối vào bộ vi xử lí

Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics) Mới cho ra đời bộ viđiều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048 Bên cạnh bộ xử lí trung tâm

8048 còn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời gian các cổngvào và ra Digital trên một chip

Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit tương tự như

8048 và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48)

Trang 11

Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơnchip với tên gọi 8051 Và sau đó hàng loạt các vi điều khiển cùng loại với 8051 ra đời vàhình thành họ vi điều khiển MCS-51

Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết cáccông ty hàng dẫn hàng đầu thế giới chế tạo Đứng đầu là công ty INTEL và rất nhiềucông ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …

Ngoài ra còn có các công ty khác cũng có những họ vi điều khiển riêng như:

Họ 68HCOS của công ty Motorola

2.3 Khảo sát bộ vi điều khiển 8051 và 8031:

IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặt điểm sau :

- 4kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8051)

- 128 bit RAM

- 4port I10 8bit

- Hai bộ định thời 16bit

- Giao tiếp nối tiếp

- 64KB không gian bộ nhớ chương trình mở rộng

- 64 KB không gian bộ nhớ dữ liệu mở rộng

- Một bộ xử lí luận lí (thao tác trên các bit đơn)

- 210 bit được địa chỉ hóa

- Thanh ghi tích lũy A

- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia

- Đơn vị logic học (ALU : Arithmetic Logical Unit )

- Từ trạng thái chương trình (PSW : Prorgam Status Word)

- Bốn băng thanh ghi

- Con trỏ ngăn xếp

Trang 12

Hai bộ định thời 16 bit hoạt động như một bộ đếm.

Các cổng (port0, port1, port2, port3 ) Sử dụng vào mục đích điều khiển

Ơ cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bênngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn 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 Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng và được ấnđịnh bằng một bộ định thời

Trong vi điều khiển 8051 / 8031 có hai thành phần quan trọng khác đó là bộ nhớ vàcác thanh ghi :

Bộ nhớ gồm có bộ nhớ Ram và bộ nhớ Rom (chỉ có ở 8031) dùng để lưu trữ dữ liệu

và mã lệnh

Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí Khi CPU làm việc

nó làm thay đổi nội dung của các thanh ghi

Trang 13

19 12MHz

40

29 30

31 9

17 16 15 14 13 12 11 10

RD\WR\

T1 T0 INT1 INT0 TXD RXD

A15 A14 A13 A12 A11 A10 A9 A8

28 27 26 25 24 23 22 21

8 7 6 5 4 3 2 1

32 33 34 35 36 37 38 39

Po.7 Po.6 Po.5 Po.4 Po.3 Po.2 Po.1 Po.0

AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

30p

30p

XTAL1 XTAL2

2.3.2.Chức năng của các chân vi điều khiển

Hình 2 : Sơ Đồ Chân 8051

a.Port0 : là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ nhỏ

( không dùng bộ nhớ mở rộng ) có hai chức năng như các đường IO Đối với các thiết kế

cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh giữ a các bus )

b.Port1 : port1 là một port I/O trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1,

P1.2 … có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chức năng khác, vìvậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài

c.Port2 : port2 là một port công dụng kép trên các chân 21 – 28 được dùng như các

đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mởrộng

Trang 14

d.Port3 : port3 là một port công dụng kép trên các chân 10 – 17 Các chân của port

này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặc biệt của

8051 / 8031 như ở bảng sau :

Bảng : Chức năng của các chân trên port3 e.PSEN (Program Store Enable ) : 8051 / 8031 có 4 tín hiệu điều khiển

PSEN là tín hiệu ra trên chân 29 Nó là tín hiệu điều khiển để cho phép bộ nhớchương trình mở rộng và thường được nối đến chân OE (Output Enable) của mộtEPROM để cho phép đọc các bytes mã lệnh

PSEN sẽ ở mức thấp trong thời gian lấy lệnh Các mã nhị phân của chương trìnhđược đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã lệnh.Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động (mức cao)

f.ALE (Address Latch Enable ) :

tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí 8585,

8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các bus địachỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó : vừa là bus dữ liệuvừa là búyt thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bênngoài trong nữa đầu của chu kỳ bộ nhớ Sau đó, các đường port 0 dùng để xuất hoặc nhập

dữ liệu trong nữa sau chu kỳ của bộ nhớ

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thểđược dùng là nguồn xung nhịp cho các hệ thống Nếu xung trên 8051 là 12MHz thì ALE

có tần số 2MHz Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất Chânnày cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051

g.EA (External Access) :

Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp(GND) Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địa chỉthấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng Khi dùng

8031, EA luôn được nối mức thấp vì không có bộ nhớ chương trình trên chip Nếu EAđược nối mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và chương trình thihành từ EPROM mở rộng Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lậptrình cho EPROM trong 8051

h.SRT (Reset) :

Trang 15

Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này được đưa lên múccao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 8051 được tải những giá trị thíchhợp để khởi động hệ thống.

i.Các ngõ vào bộ dao động trên chip :

Như đã thấy trong các hình trên , 8051 có một bộ dao động trên chip Nó thườngđược nối với thạch anh giữa hai chân 18 và 19 Các tụ giữa cũng cần thiết như đã vẽ Tần

số thạch anh thông thường là 12MHz

j.Các chân nguồn :

8051 vận hành với nguồn đơn +5V Vcc được nối vào chân 40 và Vss (GND) đượcnối vào chân 20

2.3.3.Các thanh ghi chức năng đặc biệt:

Các thanh ghi nội của 8051/8031 được truy xuất ngầm định bởi bộ lệnh Ví dụlệnh “INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1 Tác động này được ngầmđịnh trong mã lệnh

Các thanh ghi trong 8051/8031 được định dạng như một phần của RAM trên chip

Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không có lợi khiđặt chúng vào trong RAM trên chip) Đó là lý do để 8051/0831 có nhiều thanh ghi Cũngnhư R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Rgister) ởvùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú ý rằng hầu hết 128 địa chỉ từ 80Hđến FFH không được định nghĩa Chỉ có 21 địa chỉ SFR là được định nghĩa

Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các SFR đượctruy xuất dùng địa chỉ trực tiếp chú ý rằng một vài SFR có thể được địa chỉ hóa bit hoặcbyte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví dụ lệnh sau:

SETB 0E0H

Sẽ Set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi Ta thấy rằng E0Hđồng thời là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng số nhỏ nhất trongthanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bit là có hiệuquả

D2HD1H

Cờ nhớ

Cờ nhớ phụ

Cờ 0Bit 1 chọn bank thanh ghiBit chọn bank thanh ghi

00=bank 0; địa chỉ 00H-07H01=bank 1: địa chỉ 08H-0FH10=bank 2:địa chỉ 10H-17H11=bank 3:địa chỉ 18H-1FH

Cờ tràn

Dự trữ

Trang 16

PSW.0 P D0H Cờ Parity chẵn.

Bảng : Từ trạng thái chương trình

 Cờ nhớ (CY) có công dụng kép Thông thường nó được dùng cho các lệnh toán học:

nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phéptrừ Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau:

ADD A,#1

Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW

Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trênbit Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ:

ANL C,25H

 Cờ nhớ phụ:

Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấp trongkhoảng 0AH đến 0FH Nếu các giá trị cộng được là số BCD, thì sau lệnh cộng cần có DAA( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hơn 9 trở về tâm từ 0÷9

Cờ 0 (F0)là một bit cờ đa dụng dành các ứng dụng của người dùng

 Các bit chọn bank thanh ghi

Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi được tích cực.Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần Ví dụ,

ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉbyte IFH) đến thanh ghi tích lũy:

SETB RS1

SETB RSO

MOV A,R7

Khi chương trình được hợp dịch các địa chỉ bit đúng được thay thế cho các ký hiệu

“RS1” và “RS0” Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H

 Cờ Tràn

Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán bị tràn Khicác số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác địnhxem kết qủa của nó có nằm trong tầm xác định không Khi các số không dấu được cộng,bit OV có thể được bỏ qua Các kết qủa lớn hơn +127 hoặc nhỏ hơn –128 sẽ set bit OV

Trang 17

như thanh ghi đệm đa dụng Nó được địa chỉ hóa ttừng bit bằng các địa chỉ bit FOH đếnF7H.

c. Con trỏ ngăn xếp:

Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ củabyte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các thaotác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngănxếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ dọc dữliệu và làm giảm SP Ngăn xếp của 8051/8031 được giữ trong RAM nội và được giới hạncác địa chỉ có thể truy xuất bằng địa chỉ gián tiếp chúng là 128 byte đầu của 8051/8031

Để khởi động lại SP với ngăn xếp bắt đầu tại 60H, các lệnh sau đây được dùng:

MOV SP,#%FH

Trên 8051/8031 ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trênchip là 7FH Sở dĩ cùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ lệu đầutiên

Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà để nólấy giá trị mặc định khi reset hệ thống Giá trị măc định đó là 07H và kết qủa là ngăn đầutiên để cất dữ liệu có địa chỉ 08H Nếu phần mềm ứng dụng không khởi động lại SP ,bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được dùnglàm ngăn xếp

Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu giữ tạm thời

và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con (ACALL,LACALL) và các lệnh trở về (RET,RETI) để cất và lấy lại bộ đếm chương trình

d. Con trỏ dữ liệu:

Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi 16bit ở địa chỉ 82H(DPL: byte thấp) và 83H (DPH:byte cao) Ba lệnh sau sẽ ghi 55H vàoRAM ngoài ở địa chỉ 1000H:

e. Các thanh ghi port xuất nhập:

Các port của 8051/8031 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90 H, Port 2

ở địa chỉ A0H và Port 3 ở địa chỉ B0H Tất cả các Port đều được địa chỉ hóa từng bit.Điều đó cung cấp một khả năng giao tiếp thuận lợi

f. Các thanh ghi timer:

8051/8031 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đếm

sự kiện Timer 0 ở địa chỉ 8AH (TL0:byte thấp) và 8CH (TH0:byte cao).Timer 1 ở địachỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao) việc vận hành timer được set bởithanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON) ởđịa chỉ 88H Chỉ có TCON được địa chỉ hóa từng bit

Trang 18

g. Các thanh ghi port nối tiếp:

8051/8031 chức một port nối tiếp trên chip dành cho việc trao đổi thông tin với cácthiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giaotiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch ) Một thanh ghi gọi là bộ đệm

dữ liệu nối tiếp (SBUF) ở địa chỉ 99H ssẽ giữ cả hai giữ liệu truyền và nhận Khi truyền

dữ liệu thì ghi lên SBUf, khi nhận dữ liệu thì đọc SBUF Các mode vận hành khác nhauđược lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được địa chỉ hóa từng bit)

ở địa chỉ 98H

h. Các thanh ghi ngắt:

8051/8031 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi reset

hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH

Cả hai thanh ghi được địa chỉ hóa từng bit

i. Các thanh ghi điều khiển công suất:

Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiều bit điều khiển.Chúng được tóm tắt trong bảng sau:

Bit gấp đôi tốc độ baud, nếu được set thì tốc

độ baud sẽ tăng gấp đôi trong các mode 1,2

và 3 của port nối tiếpKhông định nghĩaKhông định nghĩaKhông định nghĩaBit cờ đa dụng 1Bit cờ đa dụng 0Giảm công suất, được set để kích hoạt modegiảm công suất, chỉ thoá khi reset

Mode chờ, set để kích hoạt mode chờ, chỉthoát khi có ngắt hoặc reset hệ thống

Bảng :Thanh ghi điều khiển công suất (PCON)

Trang 19

Thanh ghi Nội dung

Đếm chương trìnhTích lũy

BPSWSPDPTRPort 0-3IPIECác thanh ghi định thờiSCON

SBUFPCON(HMOS)PCON(CMOS)

0000H00H00H00H07H0000HFFHXXX00000B0XX00000B00H

00H00H0XXXXXXB0XXX0000B

Bảng Trạng thái các thanh ghi sau khi reset

Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó đượcđặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địachỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H Nội dung của RAM trênchip không bị thay đổi bởi lệnh reset

2.3.5 Hoạt động của bộ định thời (timer)

a Giới thiệu.

Một định nghĩa đơn giản của timer là một chuỗi các flip-flop chia đôi tần số nốitiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp Ngõ ra của tần số cuối làmnguồn xung nhịp cho flip-flop báo tràn của timer (flip-flop cờ) Giá trị nhị phân trong cácflip-flop của timer có thể xem như số đếm số xung nhịp (hoặc các sự kiện) từ khi khởiđộng timer Ví dụ timer 16 bit sẽ đếm lên từ 0000H đến FFFFH Cờ báo tràn sẽ lên 1 khi

số đếm tràn từ FFFFH đến 0000H

8051/8031 có 2 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer

để : a) định khoảng thời gian, b) đếm sự kiện hoặc c) tạo tốc độ baud cho port nối tiếptrong 8051/8031

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở một khoảngđều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiệnmột tác động như kiểm tra trạng thái của các cửa ngõ vào hoặc gửi các sự kiện ra các ngõ

ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thờigian trôi qua giữa hai sự kiện (ví dụ : đo độ rộng xung)

Đếm sự kiện dùng để xác định số lần xẩy ra của một sự kiện Một “sự kiện” là bất

cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên một chân của8051/8031 Các timer cũng có thể cung cấp xung nhịp tốc độ baud cho port nối tiếp trong8051/8031.Truy xuất timer của 8051/8031 dùng 6 thanh ghi chức năng đặc biệt cho trongbảng sau:

Trang 20

TÊN MỤC ĐÍCH ĐỊA CHỈ Địa chỉ hóa từng bit

Byte thấp của timer1

Byte cao của timer0

Byte cao của timer1

88H89H8AH8BH8CH8DH

Có Không Không Không Không Không

Bảng : Thanh ghi chức năng đặc biệt dùng timer.

b Thanh ghi chế độ timer (TMOD)

Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0 và timer1

Bit Tên Timer Mô tả

7 GATE 1 Bit (Mở) cổng, khi lên 1 timer1 chỉ chạy khi INT1 ở

mức cao Gate = 0 thì timer hoạt động bình thường

6 C/T 1 Bit chọn chế độ counter/timer

1=bộ đếm sự kiện (đếm xung ngoại)

0=bộ định khoảng thời gian (đếm xung nội)

5 M1 1 Bit chọn mode của timer1

4 M0 1 Bit chọn mode của timer0

00: chế độ 0 : timer 13 bit01: chế độ 1 : timer 16 bit10: chế độ 2 : tự động nạp lại 8255A bit11: chế độ 3 : tách timer

3 GATE 0 Bit (mở) cổng (như trên)

2 C/T 0 Bit chọn counter/timer (như trên)

1 M1 0 Bit chọn mode của timer0

0 M0 0 Bit chọn mode của timer0

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

c Thanh ghi điều khiển timer (TCON)

Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer 1

TCON.7 TF1 8FH Cờ báo tràn timer 1 Đặt bởi phần cứng khi

tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lý chỉ đến chương trình

Trang 21

TLxTHx

(5 bit) (8 bit)

TFx

TCON.6 TR1 8EH Bit điều khiển timer 1 chạy/ngừng chạy

Đặt/xóa bằng phần mềm cho timer

chạy/ngưng.TR1 = 1 thì timer được phépđếm khi có xung TR1 = 0 thì timer

TCON.5 TF0 8DH Cờ báo tràn timer 0

TCON.4 TR0 8CH Bit điều khiển timer 0 chạy (như trên)

TCON.3 IE1 8BH Cờ cạnh ngắt 1 bên ngoài (INT1)

TCON.2 IT1 8AH Bit lựa chọn ngắt INT1 tác động bằng mức

hay cạnh

IT1 = 0 thì ngắt INT1 tác động bằng mức.IT1 = 1 thì ngắt INT1 tắc động bằng cạnh

xuống TCON.1 IE0 89H Giống như IE1 nhưng phục vụ cho ngắt

INT0

TCON.0 IT0 88H Giống IT1 nhưng phục vụ cho ngắt INT0

Bảng : Tóm tắt thanh ghi TCON

Hoạt động như timer 16 bit đầy đủ

Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phầm mềm

MSB của giá trị trong các thanh ghi timer là bit 7 của THx và LBS là bit 0 củaTLx Các thanh ghi timer (Tlx/THx) có thể được đọc hoặc ghi bất cứ lúc nào bằng phầmmềm

TFx

TLx THx (5 bit) (8 bit)

Trang 22

THx (8 bit)

Khi timer 0 ở chế độ 3, có thể cho timer 1 chạy và ngưng bằng cách chuyển nó ra ngoài

và vào chế độ 3 Nó vẫn có thể được sử dụng bởi port nối tiếp như bộ tạo tốc độ baundhoặc nó có thể được sử dụng bằng bất cứ cách nào không cần ngắt (vì nó không còn đượcnối với TF1)

e.Nguồn tạo xung nhịp.

Có hai nguồn tạo xung nhịp có thể có, đượ chọn bằng cách ghi vào bit C/T(counter/timer) trong TMOD khi khởi động timer Một nguồn tạo xung nhịp dùng chođịnh khoảng thời gian, cái khác cho đếm sự kiện

Crytal

TimerClock T0 or T1

pin

0=Up (Internal Timing)1=Down (Event Counting)

Trang 23

Nguồn xung tạo nhịp

- Định khoảng thời gian (interval timing)

Nếu C/T =0 hoạ t động timer liên tục được chọn và timer được dùng cho việc địnhkhoảng thời gian Lúc đó, timer lấy xung nhịp từ bộ dao động trên chip Bộ chia 12 đượcthêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho phần lớn các ứng dụng Nhưvậy thạch anh 12 MHz sẽ cho tốc độ xung nhịp timer 1 MHz Bóa tràn timer xảy ra saumột số (cố địng) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào các thanh ghitimer TLx/THx

- Đếm sự kiện (Event counting)

- Nếu C/T=1, timer lấy xung nhịp từ nguồn bên ngoài Trong hầu hết các ứng dụngnguồn bên ngoài này cung cấp cho timer một xung kh xảy ra một “sự kiện “, timer dùngđếm sự kiện được xác định bằng phần mềm bằng cách đọc các thanh ghi TLx/THx vì giátrị 16 bit trong các thanh ghi này tăng thêm 1 cho mỗi sự kiện

Nguồn xung nhịp ngoài có từ thay đổi chú7c năng của các chân port 3 Bit 4 củaport 3 (P3.4) dùng làm ngõ vào tạo xung nhịp bên trong timer 0 và được gọi là “T0” Vàp3.5 hay “T1” là ngõ vào tạo xung nhịp cho timer 1

f.Bắt đầu dừng và điều khiển các timer.

Phương pháp mới đơn giản nhất để bắt đầu (cho chạy) và dừng các timer là dùngcác bit điều khiển chạy :TRx trong TCON, TRx bị xóa sau khi reset hệ thống Như vậy,các timer theo mặc nhiên là bị cấm (bị dừng) TRx được đặt lên 1 bằng phần mềm để chocác timer chạy

Xung nhịp

Timer

Các thanh ghi timer

0=lên : timer dừng1=xuống : timer chạy cho chạy và dừng timer

Vì TRx ở trong thanh ghi TCON có địa chỉ bit, nên dễ dàng cho việc điều khiển các timer trong chương trình Ví dụ : cho timer 0 chạy bằng lệnh : SETB TR0 và dừng bằng lệnh SETB TR0

Trình biên dịch sẽ thực hiện việc chuyển đổi ký hiệu cần thiết từ “TR0” sang địa chỉ bit đúng SETB TR0 chính xác giống như SETB 8CH.

g.Khởi động và truy xuất các thanh ghi timer.

Thông thường các thanh ghi được khởi động một lần ở đầu chương trình để đặtchế độ làm việc cho đúng Sau đó trong thân chương trình các timer được cho chạy, dừng, các bit cờ được kiểm tra và xóa, các thanh ghi timer được đọc và cạp nhật theo đòi hỏicủa các ứng dụng

TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động Ví dụ

các lệnh sau khi khởi động timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ daođộng trên chíp cho việc địng khoảng thời gian

Ngày đăng: 15/03/2015, 21:06

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w