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

Thiết kế hệ thống đo nhiệt độ phòng

50 380 1
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết kế hệ thống đo nhiệt độ phòng
Tác giả Trường Đại Học Bách Khoa Hà Nội, Bộ Giáo Dục Và Đào Tạo
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện tử và Điều khiển
Thể loại đồ án tốt nghiệp
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 50
Dung lượng 13,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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à hồn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS Metal-Oxide-Semiconductor , mức độ tích hợp

Trang 1

TRUONG DAI HOC BACH KHOA HA NOI

Giáo viên hướng dẫn

Sinh viên thực hiện

Lớp

HÀ NỘI, 6—2011

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 3

4 Các bản vẽ và đồ thị:

6 Ngày giao nhiệm vụ: .c 2Ÿ Ằ Sàn

7 Ngày hoàn thành nhiệm vụ: .-

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

SINH VIÊN ĐÃ HOÀN THÀNH

(Nộp toàn bộ bản thiết kế cho Khoa) Ngay thang nam 2011 (Ky và ghi rõ họ tên)

Trang 4

LỜI NÓI ĐẦU

Khái niệm về đo nhiệt độ đã có từ lâu, trong tất cả các đại lượng vật lý thì nhiệt độ được quan tâm đến nhiều nhất Nhệt độ là yếu tố ảnh hưởng trực tiếp đến tính chất của vật chất và

môi trường sống Trong công nghiệp sản xuất và trong lĩnh vực đo lường điều khiến, quá trình

đo nhiệt độ và xử lý kết quả giữ một vai trò quan trọng

Ngày nay khi nền công, nông nghiệp phát triển mạnh, việc kiểm soát nhiệt độ, độ 4m khi bảo quản, lưu trữ các sản phẩm công, nông nghiệp trong các kho chứa là rất quan trọng Thông

thường, với các loại hàng hóa được lưu trữ, nhiệt độ, độ âm trong kho phải luôn duy trì ở một

mức nhất định Ở nước ta, nhiều gian hàng bảo quản vẫn làm theo các phương pháp thủ công Khi mua thóc tươi đồ về kho, quá trình sinh hóa vẫn diễn ra, do đó nhiệt độ và độ âm tăng nhanh Đề kiểm tra nhiệt độ, độ ẩm trong kho thóc, hàng ngày phải dùng thiết bị đo gắn vào đầu một cái thuốn và chọc vào thóc ở các điểm khác nhau, rồi ghi vào số Với phương pháp thủ

công này, việc đo nhiệt độ, độ am không chính xác, không đo được nhiệt độ độ âm trong lòng

khối thóc, nhất là phía đáy, không theo dõi được nhiệt độ, độ ẩm thường xuyên

Vì vậy với yêu cầu đó em đã được thầy giao cho đề tài: “Thiết kế hệ thông đo

nhiệt độ phòng”

Em rất mong nhận được sự chỉ đạo và hướng dẫn của các thầy cô, cũng như ý kiến

đóng góp của các bạn sinh viên đề đề tài của em hoàn thiện hon

Em xm chân thành cảm ơn !

Hà Nội, ngày thang nam 2011

Trang 5

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ời gian 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ển

hoạt động của TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba Trong hệ thống sản xuấ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

ILLICH SU PHAT TRIEN CUA CAC BO VI DIEU 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ói chung 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à hồn thiện

về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-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àng cao

Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 đo công ty texas Instruments vừ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ên mộ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 tat 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 đồi AID, 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 linh kiện nằm ở bên

ngồi được nói vào bộ vi xử lí

Trang 6

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ông và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) Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơn

chip 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ác công ty hàng dẫn hàng dau thế giới chế tạo Đứng đầu là céng ty INTEL và rất nhiều công ty khác

như : AMD, SIEMENS, PHILIPS, DALLAS, OKI

Ngô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ư:

Ho 68HCOS cua cong ty Motorola

Họ ST62 của công ty SGS-THOMSON

Họ H§ của công ty Hitachi

Ho pic cua công ty Microchip

HI.KHẢO SÁT BỘ VI ĐIÊU KHIỂN 8051 VÀ 8031:

IC vi điều khiển 8051/8031 thuộc họ MCSS5I 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

- Aport 110 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 duge dia chi hoa

- b6 nhan/ chia 4s

1.Cấu trúc bên trong của 8051 / 8031 :

Trang 7

- 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

- Don vi logic hoc (ALU : Arithmetic Logical Unit )

- Tir trang thai chuong trinh (PSW : Prorgam Status Word)

- Bốn băng thanh ghi

-_ Con trỏ ngăn xếp

- Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiến thời gian và logic Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ giao động, ngồi ra còn có khả năng

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

khối điều khiển 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 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

Trang 8

khiển ngoài ra có thêm các đường dẫn điều khiển ding để trao đồi với một bộ nhớ bên

ngoà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

I2MHz[— _] XTALI Po6 —3#—— AD6

Po2 + 32— AD2 Pol C—Ỷ—— ADI

P24 P23

Trang 9

PortI 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 cd thể dùng cho các thiết bị ngồi néu can Portl không có chức năng khác, vì vay

chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài

c.port2 :

Port 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ế đùng bộ nhớ mở rong

d.Port3 :

Port3 là một port công dụng kép trên các chan 10 — 17 Cac 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 :

Bit Ten Chức năng chuyên đôi

P34 TO Ngõ vào của timer/counter 0

P3.5 Tl Ngé vao cua timer/counter |

P3.6 WR Xung ghi bộ nhớ dữ liệu ngồi

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ột EPROM đề 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 ) :

Trang 10

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 địa chỉ

và dữ liệu khi port 0 được dùng trong chế độ chuyên đổi của nó : vừa là bus dữ liệu vừ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ên ngồ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ân này cũng được làm ngõ vào cho xung lập trinh 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 thi hà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ập trình cho EPROM trong 8051

h.SRT (Reset) :

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úc cao - (trong ít nhât 2 chu kỳ máy ), các thanh ghi trong 8051 được tải những giá trị thích hợ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 van hanh 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

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 dé 8051/0831 cé nhiéu thanh ghi

Cũng như 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 hau hết 128 dia chi tir 80H

Trang 11

đến FFH không được định nghĩa Chỉ có 21 địa chỉ SER là được định nghĩa Ngoại trừ

tich lity (A) có thé duge truy xuat ngầm như đã nói, đa số các SFR được truy 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ặc byte

Người thiết kế phải thận trọng khi truy xuat bit va 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 ddi Ta thay rang 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 trong thanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bít là có hiệu quả

Chế độ nghĩ

Ở chế độ nghỉ, CPU được đặt ở chế độ ngủ trong khi tất cả bộ phận ngoại vi vẫn hoạt

động Chế độ này được gọi ra bởi phần mềm Nội dung của các thanh ghi trong RAM va tat

cả các giá trị trong thanh ghi đặc biệt cũng sẽ không đôi ở ché độ này Ché độ nghỉ có thể

bị dừng lại bất kì khi nào có sự kích hoạt hay thay đổi nào đó, hoặc được reset bằng phần

cứng

Các P1.0 va P1.1 nên được thiết lập ở mức "L" nếu bên ngoài-up không được sử dụng, hoặc thiết lập ở mức "H" nếu bên ngoài pull-up được sử dụng

Cần lưu ý răng khi “nghỉ ”là kết thúc bằng một phần cứng Tài liệu thực hiện chương trình

từ đâu nó lại tắt, lên tới hai chu kỳ máy trước khi các nguyên tắc điều khiển bên trong thiết

lập lại Trên chíp phần cứng quyết định quyền truy cập vào bộ nhớ trong RAM trong trường hợp này, nhưng truy cập vào các port không thể quyết định được Đề loại trừ khả

năng này xảy ra một cách bắt ngờ viết cho một port khi chế độ nghỉ được lặp lại, ta không

nên việt tới một Port hay bộ nhớ ngoài

Chế độ power-down

Ö chế độ power-down, bộ dao động ngừng, và chương trình sẽ gọi power-down và lệnh cuối cùng được thực hiện Trên chíp nội dung RAM và tất cả các giá trị trong thanh ghi đặc biệt cũng sẽ không đôi ở chế độ này cho đến khi chế độ này kết thúc Chế độ power-down chỉ thoát ra khi reset lại phần cứng Thiết lập lại giá trị các SFR ( thanh ghi

có chức năng đặc biệt) nhưng trên RAM vẫn giữ nguyên

Chú ý: Không nên reset lại trước khi VCC được phục hồi lại hoạt động bình thường và phải được giữ mức tích cực đủ dài, để cho phép bộ giao động khởi động lại và làm việc ôn định

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

Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ D0H chứa các bit trạng thai nhu bang tom tat sau:

Trang 12

PSW4 | RSI D4H Bit | chọn bank thanh ghi

PSW.3 | RSO D3H Bit chọn bank thanh ghỉ

00=bank 0; địa chỉ 00H-07H O1=bank |: địa chỉ I§H-0FH

1I=bank 3:địa chỉ I§H-IFH

ADD A#1

Sẽ trả về thanh ghi tich liiy két quia 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ên bit

Vi 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

* Co nho phu:

Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qua của 4 bit thấp trong

khoả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ó DA

A( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hon 9 trở về tâm từ 0+9

* Cod

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

5 Các bit chọn bank thanh ghi

Cac bit chon bank thanh ghi (RSO va RSI) 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 RSI

SETB RSO

Trang 13

MOV A,R7

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

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

* Co Tran

Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép tốn bị tràn Khi các số

có đầu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết qủa của nó có năm tron; 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

b Thanh ghi B:

Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các phép tốn nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dau 8 bit trong A và B roi tra vé két qua 16 bit trong A (byte thấp) và B (byte cao) Lệnh DIV AB sẽ chia A cho B rồi trả về kết qủa nguyên trong A và phần dư trong B Thanh ghi B cũng có thể được xem như thanh ghi đệm đa dụng Nó được địa chỉ hóa ttừng bit bằng các địa chỉ bit FOH đến F7H

c Con trỏ ngăn xếp:

Con trỏ ngăn xếp (SP) là một thanh ghi 8 bít ở địa chỉ 81H Nó chứa địa chỉ của byte 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 thao tá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 đữ liệu vào ngăn xếp sẽ làm

tăng

SP trước khi ghi dữ liệu, và lệnh lấy đữ 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ạn các địa chỉ có thé truy xuất bằng địa chỉ gián tiếp chung 1a 128 byte dau 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ên chip

là 7FH Sở đĩ cùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte đữ lệu đầu tiê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 ma dé nó lấy giá trị mặc định khi reset hệ thống Giá tri mac dinh đó là 07H và kết qủa là ngăn đầu tiê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 I (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được dùng là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 va 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à lay 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ớ ngồi là một thanh ghi 16 bit ở

dia chi 82H(DPL: byte thấp) va 83H (DPH:byte cao) Ba lệnh sau sẽ ghi 55H vào RAM

Trang 14

Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy, lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào con trỏ dữ liệu

Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến RAM ngồi ở địa chỉ được chứa trong DPTR (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 ở dia chi AOH va Port 3 6 dia chi BOH Tat cả các Port đêu được địa chỉ hóa từng bít Đ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ỉ §AH (TL0:byte thấp) và §CH (TH0:byte cao).Timer 1 ở địa chỉ

§BH (TLI:byte thấp) va 8DH (THI: byte cao) viée vận hành timer được set bởi thanh ghi

Timer Mode (TMOD) 6 dia chỉ 89H và thanh ghi điều khién timer (TCON) ở địa chi 88H

Chỉ có TCON được địa chỉ hóa từng bit

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

§051/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ác thiế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ó giao tiế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 SBUE 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 ngat (IE) 6 dia chi 8AH Ca hai thanh ghi được địa chỉ hóa từng bit

i Cac thanh ghi điều khiến công suất:

Thanh ghỉ đ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 tat trong bang sau:

Trang 15

SMOD Bit gap đô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ệp Không định nghĩa

2 GFO Giảm công suât, được set đê kích hoạt mode giảm công

1 PD suat, chi thé khi reset

Mode chờ, set để kích hoạt mode chờ, chỉ thốt khi có ngắt

0 IDL hoặc reset hệ thông

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

4 Lệnh reset

8051/8031 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy

và trả nó về múc thâp RST có thê được kích khi câp điện dùng một mạch R-C

^

R1 10k

Trang 16

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 ở địa chỉ đầu

tiên trong bộ nhớ trong chương trình: địa chỉ 0000H Nội dung của RAM trên chip không

bị thay đôi bởi lệnh reset

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ói tiế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àm nguồn xung nhip cho flip-flop bao tran của timer (flip-flop cờ) Giá trị nhị phân trong các flip-flop ctia timer có thể xem như số đếm số xung nhịp (hoặc các sự kiện) từ khi khởi động timer

Vi du 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ếp trong 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ện mộ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ời gian 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ứ

Trang 17

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

SFR |MỤCĐÍCH ĐỊACHỈ | Địchỉhúatingbit

TCON | Điểukhiểntimer 88H Có

TMOD | Ché dé timer 89H Không

TLO | Bytethép cua timer |§AH Không

TLI | Byte thap ciia timer 1 |§BH Không

THO —_| Byte cao cua timer 0 8CH Khong

THI Byte cao cua timer | 8DH Khong

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ế độ lam viéc cho timer 0 va timer 1

W GATE 1 Bịt (Mở) công, khi lên 1 timer chỉ chạy khi INT] 6 mite cao

6 C/T 1 Bit chon ché độ counter/timer

1=bộ đếm sự kiện

0Ebộ định khoảng thời gian

4 M0 l Bit 0 của chế độ

00: chê độ 0 : timer 13 bit

Ol: chế độ I : timer 16 bit 10: chế độ 2 : tự động nạp lại 8255A bit

11: chê độ 3 : tách timer

2 CT 0 Bit chon counter/timer

Trang 18

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 va timer 1

Bit Ky hieu Dia chi Mo ta

TCON.7 TF] §FH Cổ bảo trần timer 1 Dat 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 phục vy ngất

TCON.6 TRI 8EH Bit điều khiển tỉmer 1 chạy Đặxóabằng phân mẻm cho timer

chay/ngung

TCON.§ TFO 8DH Co bao tran timer 0

TCON4 TRO 8CH Bit điều khiển timer 0 chạy

TCON.3 IE] §BH Cờ cạnh ngắt 1 bên ngồi, đặc bởi

TCON.2 II §AH Cờ kiểu ngắt một bên ngôi phản cứng khi phát hiện một cạnh

xuống ở INTI, xóa bằng phân mém hoặc phân cứng khi CPU chỉ đến chương trình phục vụ ngắt.Đặt xóa bằng phản mẻm đẻ ngất ngồi tích cực cạnh xuống/mức thấp

TCON.1 IE0 §9H Cờ cạnh ngất ( bên ngôi

TCON.0 ITO 88H Cờ kiểu ngắt 0 bén ngôi

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

d Các chế độ timer

» Chế độ 0, chế độ timer 13 bit

Để tương thích với 8048 (có trước 8051)

Ba bít cao của TLX (TL0 và/hoăc TLI) không dùng

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 cua gia trị trong các thanh ghi timer là bít 7 của THx và LBS là bit 0 của TLx

Trang 19

Các thanh ghi timer (TIx/THx) có thể được đọc hoặc ghi bat cu lic nao bằng phầm mềm

§M) | WMj —>

Timer 1 ngung 6 chế độ 3, nhưng có thể được khởi động bằng cách chuyển sang chế

độ khác Giới hạn duy nhất là cờ báo tràn TF1 khong con bi tac dong khi timer | bi tran vi

nó đã được nói tới TH0

Khi timer 0 ở chế độ 3, có thé cho timer 1 chay va ngung bang cach chuyén nó ra ngồ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 độ baund hoặ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 được nói

với T1)

Trang 20

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 vao bit C/T

(counter/timer) trong TMOD khi khởi động timer M6t nguon tao xung nhip ding cho dinh

khoảng thời gian, cái khác cho đêm sự kiện

CIT 0=Up (Internal Timing)

I=Down (Event Counting)

Nguồn xung tạo nhịp

- Dinh khoang thoi 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 định khoảng thời gian Lúc đó, timer lấy xung nhịp từ bộ đao động trên chip Bộ chia 12 được thê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 nhip timer 1 MHz Boa tràn timer xảy ra sau một

số (có địng) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào các thanh ghi timer TLx/THx

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

Trang 21

- Nếu C/T=I, timer lay xung nhịp từ nguồn bên ngồi Trong hau hết các ứng dụng

nguồn bên ngồ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á tri 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 ngồi có từ thay đổi chú7c năng của các chân port 3 Bit 4 của port 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

®TI” là ngõ vào tạo xung nhịp cho timer Ì

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ùng các bít điêu khiên chạy zTRx trong TCON, TRx bị xóa sau khi reset hệ thông Như vay, cac timer theo mặc nhiên là bị câm (bị dừng) TRx được đặt lên I băng phan mém dé cho cac timer

cho chay va dimg timer

cho chạy và dừng timer

Vì TRx ở trong thanh ghi TCON có địa chỉ bịt, nên dé dang cho việc điều khién cac 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

Trình biên dịch sẽ thực hiện việc chuyên đôi ký hiệu cân thiệt từ “TRO” sang dia chi bit đúng

SETB TRO 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 để đặt chế độ

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ỏi củ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 I như timer 16 bít (chê độ 1) có xung nhịp từ bộ dao động

trên chíp cho việc địng khoảng thời gian

MOV TMOD,#00010000B

Trang 22

Lệnh này sẽ đặt MI=0 vả M0=I cho chế độ 1, C/T=0 và GATE=0 cho xung nhịp nội

và xóa các bit chế độ timer 0 Dĩ nhiên timer thật sự không bắt đầu định thời cho đến khi

bit điều khiển chạyy TRI được đặt lên 1

Nếu cần số đếm ban đầu, các thanh ghi timer TLI/TH1 cũng phải được khởi động Nhớ lại

là các timer đếm lên và đặt cờ báo tràn khi có sự truyền tiếp

FFFFH sang 0000H

- Doc timer đang chạy

Trong một số ứng dụng cần đọc giá trị trong các thanh ghi timer đang chạy Vì phải đọc 2 thanh ghi timer “sai pha” có thể xây ra nếu byte thap tràn vào byte cao giữa hai lần đọc Giá trị có thê đọc được không đúng Giải pháp là đọc byte cao trước, kê đó đọc byte thấp rồi đọc byte cao lại một lần nữa Nếu byte cao đã thay đổi thì lập lại các hoạt động đọc

h Các khoảng ngắn và các khoảng dài

Dãy các khoảng thời gian có thê định thời là bao nhiêu ? vấn đề này được khảo sát với 8051/8031 hoạt động với tần số 12MHz như vậy xung nhịp của các timer có tần số lá I

MHz Khoảng thời gian ngắn nhất có thê có bị giới hạn không chỉ bởi tần số xung nhịp của

timer ma con béi phần mềm Do ảnh hưởng của thời khoảng thực hiện một lệnh Lệng ngắn

nhất 8051/8031 là một chu ky may hay Ips Sau đây là bảng tóm tắt các kỹ thuật dé tao

những khoảng thời gian có chiều dài khác nhau (với giả sử xung nhịp cho 8051/8031 có tần

sẽ không bị mát Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port nối tiếp là :

SBUF và SCON Bộ đếm port nói tiếp (SBUF) ở đại chi 99H thật sự là hai bộ đếm Viết

vào SBUF đề truy xuất dữ liệu thu được Đây là hai thanh ghi riêng biệt thanh ghi chỉ ghi

để phát và thanh ghi đề thu

Thanh ghi điều khiển port nói tiếp (SCON) ở địa chỉ 98H là thanh ghi có địa chỉ bit

chứa các bịt trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho

port nỗi tiếp, và các bít trạng thái báo cáo kết thúc việc phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể được lập trình để tạo ngắt Tần số làm việc của port nối tiếp còn gọi là tốc độ baund có thể có định (lấy từ

bộ giao động của chip) Nếu sử dụng tốc độ baud thay déi, timer 1 sẽ cung cấp xung nhịp tốc độ baud và phải được lập trình

Trang 23

b Thanh ghi điều khiến port nối tiếp

„ Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ port

ni tiệp (SCON) 6 dia chi 98H Sau đây các bảng tóm tắt thanh ghi SCON và các chê độ

của port nôi tiệp :

SCON.7 SMO 9FH Bit 0 của chế độ port nói tiếp

SCON.6 SMI 9EH Bit 1 của chế độ port nối tiếp

SCON.5 SM2 9DH Bit 2 của chế độ 2 nói tiếp

cho phép truên thông đã xử lý trong các chế độ 2 và 3 :RI sé không bị tác

động nếu bit thứ 9 thu được là 0

SCON.4 REN 9CH Cho phép bộ thu phai dat lén 1 dé

thu (nhận) các ký tự

SCON.3 TBS 9BH Bit 8 phat, bit thir 9 được phát các

chế độ 2 và 3; được đặt và xóa

bằng phần mềm

SCON.2 RB§ 9AH Bit 8 thu, bit thir 9 thu duge

SCON.I TI 99H Cờ ngắt phát Đặt lên I khi kết thúc

phát ký tự; được xóa phần mềm SCON.0 RI 9§H Cờ ngắt thu Đặt lên I khi kết thúc thu

ký tự: được xóa bằng phần mềm

Bảng :Tóm tắt thanh ghi chế độ port nói tiếp SCON

Trước khi sử dụng port nói tiếp, phải khởi động SCON cho đúng chế độ Ví dụ ,lệnh

khi khởi động công nối tiếp, timer Có thể thực hiện việc này theo hai cách Lệnh :

Trang 24

» Bit dữ liệu thứ 9:

Bit dữ liệu thứ 9 cần phát trong các chế độ 2 và 3, phải được nạp vào trong TB§ bằng

phần mềm Bit dữ liệu thứ 9 thu được đặt ở RBS Phần mềm có thể cần hoặc không cần bit

dữ liệu thứ 9, phụ thuộc vào các đặc tính kỹ thuật của thiết bị nói tiếp sử dụng (bit dữ liệu

thứ 9 cũng đóng vai một trò quan trọng trong truyền thông đa xử lý)

s Thêm | bit parity:

Thuong str dung bit dữ liệu thứ 9 đề thêm parity vào ký tự Như đã xét ở các chương trước, pit P trong từ trạng thái chương trình (PSW) được đặt lên I hoặc bị xóa bởi chu kỳ

máy đề thiết lập kiểm tra chẵn với 8 bit trong thanh tích lũy

5 Các cờ ngắt:

Hai cờ ngắt thu và phat (RI va TI) trong SCON dong m6t vai trò quan trọng truyền

thông nói tiếp dùng 8051/8031 Cả hai bit được đặt lên 1 bằng phần cứng, nhưng phải được

xóa bằng phần mềm

d Tốc độ baud port nối tiếp

"Như đã nói, tốc độ baud có định ở các chế độ 0 và 2 Trong chế độ 0 nó luôn luôn là

tân sô dao động trên chip được chia cho 12 Thông thường thạch anh ân định tân sô dao động trên chip của 8051/8031 nhưng cũng có thê sử dụng nguôn xung nhịp khác Giả sử với tân sô dao động danh định là 12 MHz, tìm tôc độ baud chê độ 0 là I MHz

Trang 25

b Chế d6 1 và 3

Các nguồn tạo xung nhịp cho port nối tiếp

Mặc nhiên, sau khi reset hệ thống, tốc độ baud chế độ là 2 tần số bộ dao động chia cho

64 Tốc độ baud cũng ảnh hưởng bởi l bit trong thanh ghi điều khiến nguôn cung cấp

(PCON) Bit 7 của PCON là bit SMOD Đặt bít sMOD lên một làm gắp đôi tốc độ baud

trong chế độ 1,2 và 3 Trong chế độ 2, tốc độ baud co thé bi gap đôi từ giá trị mặc nhiên của 1/64 tần số đao động (SMOD=0) đến 1/32 tần số dao động (SMOD=I)

Vì PCON không được định địa chỉ theo bit, nên dé dat bit SMOD lên 1 can phai theo các lệnh sau:

MOV A,PCON lay gia tri hién thoi của PCON

SETB ACC.7 dat bit 7 (SMOD) lén 1

MOV PCON,A ghi giá trị ngược về PCON

Các tốc độ baud trong các chế độ 1 và 3 được xác định bằng tốc độ tràn của timer I

Vì timer hoạt động ở tần số tương đối cao, tràn timer được chia thêm cho 32 (hay l6 nếu SMOD=I) trước khi cung cấp xung nhịp tốc độ baud cho port nói tiếp

Ngày đăng: 03/08/2014, 16:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w