1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng màn hình tinh thể lỏng (LCD)

34 410 0

Đ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 34
Dung lượng 749,5 KB

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

Nội dung

Ở cổng 3 còn có thêm các đường dẫn điều khiển dùng để trao đổi với 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.. port2 : port2 là một port c

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Trang 2

NỘI DUNG

1 Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng màn hình tinh thể lỏng

(LCD)

Yêu cầu :

- Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng

- Sai số cho phép: ±1oC

- Thao tác điều khiển khống chế được mô phỏng bằng 3 LED: LED màu đỏ sáng khi nhiệt độ môi trường nhỏ hơn nhiệt độ khống chế; LED màu xanh sáng khi nhiệt

độ môi trường lớn hơn nhiệt độ khống chế; LED màu vàng sáng khi nhiệt độ môi trường bằng nhiệt độ khống chế

BÀI LÀM

A LÍ THUYẾT

I Giới thiệu về vi điều khiển 8051 ……… 3

II Cảm biến nhiệt độ LM335 ……… 22

III Bộ chuyển đổi ADC0804 ……… 23

IV Khối hiển thị LCD ……… 26

B MẠCH NGUYÊN LÝ ……… 27

C CODE ……… 27

D KẾT LUẬN……… 34

Trang 3

A LÍ THUYẾT

I Giới thiệu về vi điều khiển 8051:

IC vi điều khiển 89S52 có các đặc điểm sau :

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

- 128 byte RAM

- 4 port 8bit

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

- 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ý bít (thao tác trên các bit đơn)

- 210 bit được địa chỉ hóa và mỗi vị trí một bít

- Bộ nhân/chia 4s

1 CẤU TRÚC BÊN TRONG 89S52

Trang 4

1.1 Cấu tạo chân

Tuỳ theo khả năng của từng người (về kinh tế, kỹ thuật…) mà các nhà sản xuấtcác sản phẩm ứng dụng có thể chọn 1 trong 3 kiểu chân do ATMEL đưa ra

Trang 5

1.2 Sơ đồ khối :

Trang 6

Phần chính của vi điều khiển 89S52 là bộ xử lý trung tâm (CPU: centralprocessing unit ) bao gồm :

- Các thanh ghi chức năng đặc biệt (SFR)

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

- cổng vào ra (I/O)

- Bộ nhớ chương trình và bộ nhớ dữ liệu

Đơn vị xữ lý trung tâm nhận trực tiếp xung từ bộ giao động, ngoài ra còn có khảnăng đưa một tín hiệu giữ nhịp từ bên ngoài

Trang 7

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êntrong Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời, hoặccũ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 khiển

Ở cổng 3 còn có thêm các đường dẫn điều khiển dùng để trao đổi với 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ũng chứa một bộ truyền và 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 dải rộng và được ấnđịnh bằng một bộ định thời

Trong vi điều khiển 89S52 có hai thành phần quan trọng khác là bộ nhớ và thanhghi :

Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM 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àmviệc nó thay đổi nội dung của các thanh ghi

Hình dạng thật của AT89S52:

1 3 Mô tả chức năng các chân:

Trang 8

a port0 : là port có hai chức năng ở trên chân từ chân 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 I/O Đốivớ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 từ 1-8 Các chân có thể dùng

cho thiết bị ngoại vi nếu cần Port1 không có chức năng khác vì vậy chúng chỉ được dùngtrong giao tiếp 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 đến 28 được

dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ 16 bit đối với các thiết kếdùng bộ nhớ mở rộng hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài

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 riêng, các công dụng chuyển đổi có liên hệ với các đặctính đặc biệt của 8051/89S52 như ở bảng sau:

Trang 9

e PSEN (Program Store Enable ) : 89S52 có 4 tín hiệu điều khiển

PSEN là tín hiệu trên chân 29 Nó là tín hiệu điều khiển cho phép bộ nhớ chươngtrình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để chophép đọc các byte 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 89S52 để giải mã lệnh.Khi thi hành chương trình trong ROM nội (89S52) 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ớicác xữ lý

8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho việc giải mã 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à bus 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 chân ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và

có thể dùng làm nguồn xung nhịp cho các hệ thống Nếu xung trên chân 8051 là 12MHzthì 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 trình cho EPROM trong 8051

g EA (External Access) :

Trang 10

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ứcthấp (GND) Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địachỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng Khidù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 89S52 sẽ bị cấm và chương trìnhthi 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 khilập trình cho EPROM trong 89S52

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ênmúc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 89S52 đượ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 , 89S52 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 :

89S52 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 TỔ CHỨC BỘ NHỚ.

Trang 11

89S52 có bộ nhớ theo cấu trúc Harvard : có những vùng cho bộ nhớ riêng biệt chochương trình, dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên trong89S52, dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối đa 64Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu.

Bộ nhớ bên trong bao gồm ROM (89S52) và RAM trên chip, RAM trên chip baogồm nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanhghi và các thanh ghi chức năng đặc biệt

Trang 12

Chi tiết về bộ nhớ RAM trên chip :

Như ta đã thấy trên hình sau, RAM bên 89S52 được phân chia giữa các bankthanh ghi (00H - 1FH), RAM địa chỉ hóa từng bit (20H -2FH), RAM đa dụng (30H -7FH) và cac thanh ghi chức năng đặc biệt (80H - FFH)

AT89S52 có 21 thanh ghi chức năng ở vùng trên của RAM nội từ địa chỉ80H đến FFH

Thanh ghi trạng thái chương trình : thanh ghi trạng thái của chương trình ởđịa chỉ DOH chứa các bit như sau :

Các thanh ghi port xuất nhập : Các port của AT89S52 bao gồm port 0 ở địa chỉ90H,port 2 ở địa chỉ A0H,và port 3 ở địa chỉ B0H.Tất cả các port này đều có thể truy xuấttừng bit nên rất thuận tiện cho khả năng giao tiếp

Các thanh ghi Timer : AT89S52 có chứa 2 bộ định thời/đếm 16 bit được dùngcho việc định thời hoặc đếm sự kiện.Timer 0 ở địa chỉ 8AH(TL0 : byte thấp) và8DH(TH1 : byte cao).Việc khởi động timer được set bởi 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óatừng bit

Các thanh ghi port nối tiếp : AT89S52 chứa một port nối tiếp 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 giao tiếp nối tiếp với các

Trang 13

IC khác Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2

dữ liệu truyền và dữ liệu nhận.Khi truyền dữ liệu thì đọc SBUF.Các mode vận hành khácnhau được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở địa chỉ 98H

Các thanh ghi ngắt : AT89S52 có cấu trúc 6 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ỉ A8H,cả 2 thanh ghi được địa chỉ hóa từng bit

Tín hiệu Reset :

AT89S52 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu

kỳ , sau đó xuống mức thấp để nó bắt đầu làm việc RST có thể được kick bằng tay bởimột nút bấm thông thường

V C C

Trang 14

AT89S52 có một bộ chia tần số bên trong chip,bộ này sẽ cung cấp xung clockcho các khối trên chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và XTAL2.

3 HOẠT ĐỘNG ĐỊNH THỜI CỦA AT89S52

Trong các ứng dụng định hoảng thời gian,timer được lập trình sao cho sẽ trànsau một khoảng thời gian và thiết lập cờ tràn bằng 1.Cờ tràn được sử dụng bởi chươngtrình để thực hiện một hành động tương ứng như kiểm tra trạng thái của các ngõ vào hoặcgửi các sự kiện cho các ngõ ra

Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện.Trong ứng dụngnày người ta tìm cách quy các sự kiện thành sự chuyển mức từ 1 xuống 0 trên cá chân T0hoặc T1 hoặc T2 để dùng các timer tương ứng đếm các sự kiện đó

CÁC THANH GHI CỦA BỘ ĐỊNH THỜI

Các thanh ghi của Timer 0 và Timer 1

Thanh ghi chế độ định thời(TMOD)

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

Trang 15

Thanh ghi TMOD

7 6 5 4 3 2 10

M1

GATE0

C/

#T0

M1

M0

cổng Khi set lên 1, bộđịnh thời chỉ hoạt độngtrong khi INT1 ở mức cao

năng đếm hoặc định thời

1= đếm sự kiện 0= định thời trongmột khoảng thời gian

-01: chế độ 1 –timer 16 bit

10: chế độ 2 - 8

Trang 16

11: chế độ 3 –tách timer

thứ 2 cho bộ định thời 0

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 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1TCON.0

T

F1

TR1

TF0

TR0

IE1

IT1

IE0

IT0 B

it

Kíhiệu

TF1 Cờ tràn của bộ định thời 1 Cờ này được set bởi

phần cứng khi có tràn, được xóa bởi phần mềm, hoặc phầncứng khi bộ vi xử lí trỏ đến trình phục vụ ngắt

TCO

N.6

TR1 Bit điều khiển hoạt động của bộ định thời 1 Bit

này được set hay xóa bằng phần mềm để điều khiển bộđinh thời hoạt động hay ngưng

Trang 17

IE1 Cờ ngắt bên ngoài 1(kích khởi cạnh) Cờ này được

set bởi phần cứng khi có cạnh âm xuất hiện trên chânINT1, được xóa bởi phần mềm, hoặc phần cứng khi contrỏ đến trình phục vụ ngắt

TCO

N.2

IT1 Cờ ngắt bên ngoài 1(kích khởi cạnh hoặc mức) Cờ

này set hay xóa bởi phần mềm khi xảy ra cạnh âm hoặcmức thấp ở chân ngắt ngoài

IT0 Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức)

4 CÁC CHẾ ĐỘ ĐỊNH THỜI CỦA TIMER 0 VÀ 1

1 Chế độ 0 : là chế độ định thời 13 bit , chế độ này tương thích với các bộ viđiều khiển trước đó , trong các ứng dụng hiện nay chế độ này không còn thích hợp

Trong chế độ này bộ định thời dùng 13 bit(8 bit cua TH và 5 bit cao của TL) đểchứa giá trị đếm ,3 bit thấp của TL không được sử dụng

2 Chế độ 1 : Trong chế độ này , bộ timer dùng cả 2 thanh ghi TH và TL đểchứa giá trị đếm , vì vậy chế độ này còn được gọi là chế độ định thời 16 bit Bit MSB sẽ

là bit D7 của TH còn bit LSB là D0 của TL

3 Chế độn 2 : Trong chế độ 2 , bộ định thời dùng TL để chứa giá trị đếm và

TH để chứa giá trị nạp lại vì vậy chế độ này còn gọi là chế độ tự nạp lại 8 bit.Sau khi đếm

255 sẽ xảy ra tràn,khi đó TF được đặt bằng 1 đồng thời giá trị của timer tự động được nạplại bằng nội dung của TH

4 Chế độ 3 : Trong chế độ 3 , Timer 0 được tách thành 2 bộ Timer hoạt độngđộc lập , chế độ này sẽ cung cấp cho bộ vi điều khiển thêm một Timer nữa

Bộ timer thứ nhất với nguồn xung clock được lấy từ bộ chia tần trên chip hoặc

từ bộ tạo xung bên ngoài qua chân T0 tùy thộc vào giá trị của bit C-/T0.Việc điều khiển

Trang 18

hoạt động của bộ thứ nhất do bit GATE , bit TR0 và mức logic trên chân INT0 (giốngchế độ 0 , 1 ,2).Giá trị đếm của Timer được chứa trong TL0 , khi xảy ra tràn cờ TF0 đượcđặt bằng một và gây ngắt do Timer 0 (nếu được đặt).

Bộ Timer thứ hai với nguồn xung clock lấy từ bộ chia tần trên chip Việc hoạtđộng của bộ thứ hai chỉ là việc đặt giá trị của bit TR0.Giá trị đếm của Timer được chứatrong TH0,khi xảy ra tràn cờ TF1 được đặt bằng một và gây ra ngắt do Timer 1 (nếu đượcđặt)

Khi Timer 0 được tách thành 2 Timer 8 bit thì Timer 1 vẫn có thể hoạt độngbình thường ở các chế độ 0 , 1 , 2 ,tuy nhiên khi xảy ra tràn cờ TF1 không được thiết lậpbằng một NHư vậy trong trường hợp này Timer 1 chỉ có thể sử dụng cho những ứngdụng không cần đến ngắt (TF1 = 1),chẳng hạn như tốc độ baud cho port nối tiếp

Tổ chức ngắt ở AT89S52

AT89S52 chỉ có 6 nguồn ngắt:

- Ngắt ngoài đến từ chân #INT0

- Ngắt ngoài đến từ chân #INT1

- Ngắt ngoài do bộ Timer 0

- Ngắt ngoài do bộ Timer 0

- Ngắt ngoài do bộ Timer 0

- Ngắt do Port nối tiếp

Bảng tóm tắt các ngắt trong AT89S52 như sau:

ST

T

Tênngắt

Môtả

Cờngắt

Thanhghi chứa cờ

Vectorngắt

t ngoài 0khi có tínhiệu tíchcực theo

N

0x0003

Trang 19

kiểu đãchọn

từ giá trịmax

N

0x000B

t ngoài 1khi có tínhiệu tíchcực theokiểu đãchọn

1 tràn từgiá trị max

N

0x001B

Port

Ngắ

t cổng nốitiếp khi viđiều khiểnnhận hoặctruyềnxong 1 byte

TI,RI

SCON

TX

2 hoặcEXF2

T2Con

002BH

Trang 20

Mỗi ngắt được dành cho một vector ngắt kéo dài 8byte Về mặt lý thuyết, nếuchương trình đủ ngắn, mã tạo ra chứa đủ trong 8 byte, người lập trình hoàn toàn cóthể đặt phần chương trình xử lý ngắt ngay tại vector ngắt Tuy nhiên trong hầu hếtcác trường hợp, chương trình xử lý ngắt có dung lượng mã tạo ra lớn hơn 8byte nêntại vector ngắt, ta chỉ đặt lệnh nhảy tới chương trình xử lý ngắt nằm ở vùng nhớ khác.Nếu không làm vậy, mã chương trình xử lý ngắt này sẽ lấn sang, đè vào vector ngắt

Trang 21

sẽ tự động đặt lên bằng 1 khi có sự kiện gây ngắt xảy ra, bất kể sự kiện đó có đượccho phép ngắt hay không Do vậy, trước khi cho phép một ngắt, ta nên xóa cờ củangắt đó để đảm bảo sau khi cho phép, các sự kiện gây ngắt trong quá khứ không thểgây ngắt nữa Ví dụ trước khi cho phép ngắt timer0 mà timer 0 đã chạy và tràn (dù làtràn một hay nhiều lần) thì cờ TF0 sẽ bằng 1, nếu sau đó ta cho phép ngắt timer0 thì

sẽ gây ra ngắt ngay do cờ tràn đang bằng 1 (sự kiện tràn gây ngắt trong trường hợpnày là tràn trong quá khứ, không phải sự kiện ta quan tâm đến) Vì vậy hãy xóa cờTF0 trước khi cho phép ngắt tràn timer0 Ngoại trừ cờ của của ngắt nối tiếp và cờcủa ngắt timer2, các cờ ngắt khác đều tự động được xóa khi CPU thực hiện chươngtrình ngắt

Nói đến ngắt không thể không nói đến mức ưu tiên của ngắt Mức ưu tiêncủa ngắt ở đây có thể được hiểu là sự phân bậc, quyết định xử lý ngắt nào khi haihay nhiều ngắt xảy ra

Ngắt ngoài (External Interrupt)

Như đã nói ở trên, AT89S52 có 2 ngắt ngoài là INT0 và INT1 Ngắt ngoàiđược hiểu là ngắt được gây ra bởi sự kiện mức lôgic 0 (mức điện áp thấp, gần 0V)hoặc sườn xuống (sự chuyển mức điện áp từ mức cao về mức thấp) xảy ra ở chânngắt tương ứng (P3.2 với ngắt ngoài 0 và P3.3 với ngắt ngoài 1) Việc lựa chọn kiểungắt được thực hiện bằng các bit IT (Interrupt Type) nằm trong thanh ghi TCON Đây

là thanh ghi điều khiển timer nhưng 4 bit LSB (bit0 3) được dùng cho các ngắt ngoài

Khi bit ITx = 1 thì ngắt ngoài tương ứng được chọn kiểu là ngắt theo sườnxuống, ngược lại nếu bit ITx = 0 thì ngắt ngoài tương ứng được sẽ có kiểu ngắt là ngắttheo mức thấp Các bit IE là các bit cờ ngắt ngoài, chỉ có tác dụng trong trường hợpkiểu ngắt được chọn là ngắt theo sườn xuống

Khi kiểu ngắt theo sườn xuống được chọn thì ngắt sẽ xảy ra duy nhất một lầnkhi có sườn xuống của tín hiệu, sau đó khi tín hiệu ở mức thấp, hoặc có sườn lên,hoặc ở mức cao thì cũng không có ngắt xảy ra nữa cho đến khi có sườn xuống tiếp

Ngày đăng: 06/09/2015, 17:49

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w