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

Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A

85 497 0
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

Định dạng
Số trang 85
Dung lượng 640,2 KB

Nội dung

Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ

Đề tài :

ỨNG DỤNG KIT 8051 DÙNG ĐỂ CHUYỂN ĐỔI A/D & D/A

Sinh viên thực hiện : NGUYỄN VŨ ANH DUY

Giáo viên hướng dẫn : LÊ THANH ĐẠO

TPHCM, tháng 2-2000

Trang 2

LỜI CẢM ƠN

Để hoàn thành được luận án này, đầu tiên em xin được gửi lời cám ơn

đến Ban Giám Hiệu, các Thầy Cô đặc biệt là Thầy Cô trong bộ môn Điện tử

thuộc Khoa Điện – Điện Tử trường Đại Học Sư Phạm Kỹ Thuật TP.HCM, đã

tận tình chỉ dạy, truyền đạt kiến thức cũng như tạo điều kiện thuận lợi cho

em trong suốt quá trình học tập vừa qua

Em xin chân thành cảm ơn Thầy Lê Thanh Đạo đã quan tâm theo dõi,

tận tình hướng dẫn và động viên em để thực hiện tốt luận án tốt nghiệp này

Ngoài ra em cũng xin gửi lời cảm ơn đến tất cả các bạn bè cùng khóa

và người thân chung quanh đã giúp đỡ về vật chất và tinh thần để em đạt

được thành tích như ngày hôm nay

Trang 3

MỤC LỤC

PHẦN DẪN NHẬP

PHẦN I : GIỚI THIỆU TỔNG QUÁT

Chương I: Biến đổi tương tự số và số tương tự Trang 1

III – Giao tiếp phần mềm 11

IV – Giao tiếp phần cứng 11

II – Giao tiếp với vi xử lý 13

III – Chế độ hoạt động 17

Chương III: Tổng quan về họ vi điều khiển MCS-51 24

II – Sơ lược về các chân 25

III – Cấu trúc cổng xuất nhập 28

V – Các thanh ghi có chức năng đặc biệt 31

Chương V: Giới thiệu về KIT vi điều khiển 8051 53

I- Chức năng của các phím 53

II- Giới thiệu cấu trúc phần cứng kit vi điều khiển 55

PHẦN II: THIẾT KẾ

I – Mạch chuyển đổi AD 60

I – Lưu đồ giải thuật chương trình 68

PHẦN III: PHỤ LỤC

Trang 4

PHẦN DẪN NHẬP

I – ĐẶT VẤN ĐỀ:

Vào đầu những năm thập niên 60, kỹ thuật số đã đưa vào ứng dụng trong

thực tế nhưng ở phạm vi nhỏ Cho đến ngày hôm nay kỹ thuật số đã được phát triển

một cách mạnh mẽ và được ứng dụng vào mọi lãnh vực của cuộc sống Từ những

chiếc máy vi tính (computer), máy CD, máy VDC, truyền hình số … cho đến các

băng diã CD đã dần dần thay thế các máy và băng từ tín hiệu tương tự (analog) bởi

bộ phân giải rộng, độ chính xác cao và dễ dàng trong quá trình xử lý tín hiệu Tuy

nhiên trong cuộc sống hằng ngày chúng ta lại thường tiếp xúc với những tín hiệu

tương tự nhiều hơn vd: Điện thoại, sóng đài truyền hình, dòng điện sinh hoạt, âm

thanh … vì thế phải cần có một sự chuyển đổi từ tín hiệu tương tự (Analog) – số

(Digital) để xử lý dữ liệu, sau đó lại chuyển đổi ngược lại từ số (Digital) – tương tự

(Analog) để đưa vào điều khiển, khống chế thiết bị Đó là những lý do để em thực

hiện đề tài này

II – MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI

Có rất nhiều phương pháp để thực thi việc chuyển đổi A/D và D/A

 Sử dụng vi mạch số

 Sử dụng vi xử lý

 Sử dụng vi điều khiển

Với đề tài này em sử dụng vi điều khiển để thực hiện việc chuyển đổi A/D

và D/A

Mục đích: Chuyển đổi tín hiệu Analog – Digital để xử lý, sau đó chuyển đổi

ngược lại từ Digital – Analog để điều khiển, khống chế thiết bị

Yêu cầu: Hiểu rõ về kỹ thuật số, các quá trình chuyển đổi A/D và D/A bên

trong những vi mạch chuyên dụng (IC ADC 0809 và DAC 0808), nắm vững cách sử

dụng kết nối phần cứng và phần mềm của KIT 8051

III – GIỚI HẠN ĐỀ TÀI

Do sự chuyển đổi A/D và D/A để điều khiển và xử lý bằng KIT 8051 rất

phong phú và đa dạng mà kiến thức của em thì còn rất nhiều hạn chế đặt biệt đối

với vi điều khiển 8051 là phần không có trong chương trình giảng dạy của nhà

trường, chủ yếu là em tự tìm tòi học hỏi, nghiên cứu là chính Bên cạnh đó chỉ với

thời gian 6 tuần để tìm hiểu, viết luận văn và thi công thì đề tài này em xin được

trình bày và thực hiện một quá trình chuyển đổi A/D và D/A cơ bản nhất

Ngày 25 Tháng 02 Năm 2000

Sinh viên thực hiện Nguyễn Vũ Anh Duy

Trang 5

PHẦN I

GIỚI THIỆU TỔNG QUÁT

Trang 6

Chương I BIẾN ĐỔI TƯƠNG TỰ – SỐ VÀ SỐ – TƯƠNG TỰ

A – BIẾN ĐỔI TƯƠNG TỰ SỐ (ADC):

Biến đổi tương tự – số (analog – digital) là thành phần cần thiết trong việc

xử lý thông tin và các cách điều khiển sử dụng phương pháp số Tín hiệu thực ở

Analog Một hệ thống tiếp nhận dữ liệu phải có các bộ phận giao tiếp Analog –

Digital (A/D)

Các bộ chuyển đổi tương tự số, viết tắt là ADC thực hiện hai chức năng cơ

bản là lượng tử hóa và mã hóa Lượng tử hóa là gán cho những mã nhị phân cho

từng giá trị rời rạc sinh ra trong quá trình lượng tử hóa

I – TỔNG QUÁT

1 – Quan hệ In – Out:

Biến đổi AD có tính chất tỉ lệ Tín hiệu vào Analog được biến đổi thành một

phân số X bằng cách so sánh với tín hiệu tham chiếu Vref Đầu ra của bộ ADC là

mã của phân số này Bất kỳ một sai số tín hiệu Vref nào cũng sẽ dẫn đến sai số

mức ra, vì vậy người ta cố gắn giữ cho Vref càng ổn định càng tốt

Vref

Vin Digital output

Hình 2.1 Quan hệ vào ra các khối ADC

Nếu bộ ADC xuất mã ra gồm n bit thì số mức ra rời rạc là 2n Đối quan hệ

tuyến tính, tần vào được lượng tử hóa theo đúng mức này Mỗi mức như vậy là một

tín hiệu Analog được phân biệt với hai mã kế tiếp nhau, nó chính là kích thước của

LSB (Least Significant Bit)

FS

Q=LSB=

2N

Trong đó : Q : Lượng tử

LSB : bit có trọng số thấp nhất

FS : giá trị toàn thang

ADC

Trang 7

Tất cả các giá trị Analog của lượng tử Q được biểu diễn bởi mã số, mà mã

này tương ứng với giá trị trung bình của lượng tử (có thể hiểu là giữa khoảng LSB)

gọi là mức ngưỡng Các giá trị Analog nằm trong khoảng từ mức ngưỡng sai biệt đi

± ½ LSB vẫn được thể hiện bằng cùng một mãù, đó là sai số lượng tử hóa Sai số

này có thể sẽ giảm đi bằng cách tăng số bit trong mã ra bộ ADC

2 – Độ phân giải:

Là giá trị biến đổi nhỏ nhất của tín hiệu vào ra được yêu cầu để thay đổi mã

lên một mức Độ phân giải được đưa ra với giả thiết lý tưởng

3 – Độ chính xác:

Sự sai biệt giữa các giá trị điện áp tín hiệu vào so với giá trị FS tương đương

với mã xuất ra Thường có ghi trong đặc tính của các bộ ADC thương mại

4 – ADC:

Tùy theo công nghệ chế tạo mà bộ ADC có đầu vào đơn cực hay lưỡng cực,

đa số nằm trong khoảng 0…5V hoặc 0…10V đối với đơn cực và -5…+5V hoặc –

10V…+10V đối với ADC lưỡng cực Tín hiệu vào cần phù hợp với tầm vào xác định

cho từng bộ ADC Nếu đầu vào không hết thang sẽ tạo mã vô dụng ở đầu ra Vấn

đề này được giải quyết bằng cách chọn tầm đầu vào bộ ADC sau đó chỉnh độ lợi

thích hợp cho đầu vào của nguồn Analog

Khi sử dụng bộ ADC đơn cực mà có tín hiệu vào là lưỡng cực trong khoảng

±Vpp thì ta cần phải cộng điện áp vào Vi với một điện áp nền bằng +Vpp, khi đó

ta sẽ có Vi nằm trong khoảng 0 +2Vpp; tín hiệu này sẽ được đưa tới đầu vào bộ

ADC Nếu sử dụng ADC lưỡng cực thì không cần cộng tín hiệu và đầu ra ta sẽ

nhận được mã lưỡng cực

Trang 8

5 – Đầu ra bộ ADC:

Đa số các ADC có đầu ra 8 Bits, 16 Bits … dù vậy cũng có loại 3½ Digit, mã

BCD, 10 Bits, 14 Bits Đầu các bộ ADC thường là mã nhị phân tự nhiên hoặc có

dấu ADC dùng cho máy đo chỉ thị số đa dụng thường là mã BCD

5 – Tín hiệu tham chiếu Vr:

Vi+ (EOC) End of Convertion

Vi - OE (Output Enable)

Vr Start Digital Output Clock

Hình 2.3 Các ngõ vào, ra chính của bộ ADC

Hình vẽ cho thấy đầu vào và đầu ra của bộ ADC Mọi ADC đều yêu cầu có

tín hiệu Vr Bất kỳ một sai số nào trên Vr đều gây ra lỗi độ lợi ở đặc tính của AD

Vì vậy Vr là tín hiệu đảm bảo độ chính xác và ổn định của bộ AD Dùng IC ổn áp

có thể thỏa mãn điều này

7 – Tín hiệu điều khiển:

Mọi bộ ADC đều có tính xung Clock và tín hiệu điều khiển để hoạt động

Thiết bị ngoài giao tiếp với ADC sẽ khởi động quá trình AD bằng cách phát một

xung Start vào đầu vào Start của ADC, ADC sẽ nhận biết cạnh lên của xung Start

và ngay sau đó nó sẽ kéo đường EOC (End of Conversion) xuống thấp (không tích

cực) Lúc này ADC đang thực hiện quá trình biến đổi, tương ứng với mỗi xung

Clock đưa vào ADC sẽ thực hiện được một bước biến đổi, sau một bước nhất định

tùy theo bộ ADC, thì quá trình biến đổi hoàn thành Khi biến đổi xong, AD sẽ nâng

đường EOC lên mức cao, tín hiệu này có thể dùng để kích một ngắt cứng của máy

tính (nếu dùng giao tiếp với máy tính) Để đọc được dữ liệu đầu ra của bộ ADC thì

phải nâng đường OE (Output Enable) của ADC lên mức cao, sau khi đọc xong thì

lại trả đường này về mức thấp

ADC

Trang 9

II – CÁC KỸ THUẬT AD:

1 – ADC có Vr dạng nấc thang:

input Vi Reference

Comparateur

Digital output

Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang

Counter: Bộ đếm tạo đầu ra cho bộ ADC bằng hoặc lớn hơn giá trị vào Vi

Nó được reset tại mọi thời điểm bắt đầu thực hiện AD và đếm dần lên sau mỗi

xung Clock Cứ mỗi lần đếm bộ DAC lại nâng lên mỗi nấc thang (1 LSB) Bộ so

sánh sẽ dùng bộ đếm lại khi điện áp DAC (áp hồi tiếp) đạt tới giá trị vào Vi

Nhược điểm của phương pháp này là Tc (thời gian chuyển đổi) theo mức tín

hiệu vào và đôi khi rất lâu Tc=2ⁿ x Tclock đối với bộ DAC n bit khi biến đổi một

tín hiệu vào ở mức FS (Full Scale)

Một cải tiến của phương này là “tracking” hay “servo” sử dụng bộ đếm

thuận nghịch cho phép DAC đưa tín hiệu vào liên tục Bằng sự khống chế bộ đếm

từ bên ngoài tại một điểm nhất định ta dùng bộ DAC kiểu tracking như một bộ S &

H (Sample and Hold)

2 – ADC thăng bằng liên tục:

Sơ đồ khối giống như phương pháp trước, nhưng bộ đếm là bộ đếm thuận

nghịch

Về cơ bản cũng giống như phương pháp trên nhưng bộ đếm hoạt động được

ở chế độ thuận nghịch Khi tín hiệu Vht < Vi thì bộ đếm sẽ đếm lên, ngược lại thì

bộ đếm sẽ đếm xuống Quá trình xác lập ghi nhận được khi giá trị Vht dao động

xung quanh giá trị Vi Tc cũng phụ thuộc vào Vi và nhược điểm sai số cũng giống

phương pháp trên: sai số động phụ thuộc vào thời gian biến đổi và sai số tĩnh chủ

yếu ở bộ biến đổi DA và bộ so sánh

Control

DAC

Trang 10

3 – Phương pháp biến đổi AD hàm dốc tuyến tính: (Phuơng pháp tích phân một

độ dốc)

Về bản chất thực hiện biến đổi trung gian từ điện áp ra khoảng thời gian sau

đó đo khoảng thời gian theo phương pháp số Quá trình biến đổi sẽ xảy ra như sau:

Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính

Sau thời gian kích khởi, bộ đếm sẽ bắt đầu đếm lên và mạch quét sẽ bắt đầu

tạo ra tín hiệu tuyến tính thời gian Tín hiệu quét và tín hiệu vào Vi được so sánh

với nhau, khi hai tín hiệu này bằng nhau thì mạch so sánh sẽ đóng cổng không cho

xung tới bộ đếm nữa Như vậy nội dung của bộ đếm sẽ tỉ lệ với thời gian to, mà to

lại tỉ lệ thuận với giá trị Vi nên nội dung bộ đếm tỉ lệ với Vi

Gate Clock

CouteScan

Trang 11

Độ chính xác của phương pháp này phụ thuộc vào độ tuyến tính của tín hiệu

quét (sai số độ dốc càng nhỏ, độ chính xác càng cao), tín hiệu phụ thuộc vào tần số

của từng xung

Phương pháp này có tốc độ hoạt động cao hơn các phương pháp ban đầu, và

độ chính xác cũng cao hơn do không cần sử dụng bộ biến đổi DA

4 – ADC xấp xỉ liên tiếp:

Analog

Input Vi

Comparateur

Vref Reference

Digital output

Hình 2.8 ADC xấp xỉ liên tiếp

Phương pháp này được dùng trong kỹ thuật biến đổi AD tốc độ cao – trung

bình Nó cũng dùng một bộ DAC bên trong để tạo ra một điện áp bằng mức vào và

của tín hiệu sau đúng bằng n chu kỳ xung Clock cho trường hợp ADC n bit

Phương pháp này cho phép rút ngắn Tc rất nhiều và không phụ thuộc vào tín

hiệu vào Vi Kỹ thuật này phụ thuộc vào sự xấp xỉ tín hiệu vào với mã nhị phân,

SAR

Trang 12

sau đó thay đổi các bit trong mã này một cách liên tiếp cho đến khi đạt được mã

gần đúng nhất Tại mỗi bước của quá trình này, giá trị xấp xỉ của mã nhị phân thu

được sẽ được lưu vào SAR (Successive Approximate Register) Việc biến đổi luôn

được bắt đầu tại MSB (Most Significant Bit) của SAR khi đó được bật lên Bộ so

sánh sẽ so sánh đầu ra của ADC với Vi và ra lệnh cho bộ điều khiển ngắt MSB nếu

như giá trị ban đầu này vượt quá đầu vào AD Trong chu kỳ xung Clock kế tiếp,

MSB lại được phát trở lại Một lần nữa bộ so sánh sẽ quyết định lấy hay bỏ MSB

này Sự biến đổi này sẽ tiến dần đến sự đúng nhất so với tín hiệu vào xuất dữ liệu

Hình 2.10 Sơ đồ thay đổi mức logic

5 – ADC tích phân hai độ dốc:

Kỹ thuật này thấy rõ trên sơ đồ khối Ta thấy điện áp vào được tích phân

trong khoảng thời gian t1, đúng bằng lúc bộ đếm đếm hết Tại cuối t1, bộ đếm sẽ

reset và bộ tích phân chuyển qua mức tham chiếu âm, đầu ra của bộ tích phân sẽ

Trang 13

Control logic Clock

Coute

giảm tuyến tính về zero tại đó bộ đếm ngưng đếm và được reset Điện tích nạp tụ

trong khoảng thời gian t gần bằng điện tích xả trong khoảng thời gian t2:

t1 x V1 = t2 x V2  t2 = V1 = x

t1 V2

Tỉ số x cũng chính là tỉ số mà mã nhị phân của bộ đếm lớn nhất  giá trị

đếm được vào cuối t2 cũng là giá trị xuất ra Kỹ thuật này có một số ưu điểm, nhất

là chất lượng khử ồn Tín hiệu vào được tích phân qua một chu kỳ, do đó bất kỳ

mức ồn nào cũng có tần số là bội số của 1/t1 đều bị loại

Analog reference

+

Trang 14

Chú ý rằng, tần số xung Clock không ảnh hưởng gì đến độ phân giải Độ

phân giải của kỹ thuật này chỉ bị giới hạn bởi chất lượng mạch và không phụ thuộc

vào độ phi tuyến của bộ AD: Do đó đầu ra của bộ tích phân có thể nhảy cấp tự do

mà không sợ phát sinh mã lỗi ở đầu ra Vì vậy mà độ phân giải tốt rất dễ đạt được

và có thể thay đổi bằng cách chỉnh kích thước của vòng đếm và tần số xung Clock

Tần số thấp là nhược điểm duy nhất của phương pháp Phương pháp này

thường được dùng cho các đồng hồ hiện số, máy đo đa năng chỉ thị số, cảm biến

nhiệt độ và những ứng dụng có yêu cầu không cao về tần số lấy mẫu

6 – ADC dùng biến đổi V – F (điện áp – tần số):

Định thời Đếm

Digital output

Hình 2.13 Sơ đồ khối bộ biến đổi AD dạng VF

Hình trên cho thấy kỹ thuật này trong bộ biến đổi AD Áp vào Analog được

một bộ VF chính xác biến thành một dãy xung có tần số tỉ lệ với áp vào Một bộ

đếm sẽ đếm số xung này trong một khoãng thời gian nhất định rồi xuất số đếm cho

bộ AD Giống kỹ thuật tích phân độ dốc kép, kỹ thuật này có tần số thấp nhưng

khử nhiễu tốt Nếu thời gian Tc thấp ở mức có thể chấp nhận được thì phương pháp

VF cho phép đạt được độ phân giải cao với tín hiệu thay đổi chậm với giá thành hạ

Trang 15

Ưu điểm của phương pháp này là có khả năng điều khiển từ xa trong môi

trường ồn Có thể làm một bộ VF như một hàm truyền dữ liệu từ xa dưới dạng số

đến trạm kiểm soát, tại đây có bộ xử lý (tiếp nhận + bộ đếm + xuất dữ liệu) Điều

này tránh được việc truyền tín hiệu Analog qua môi trường nhiễu có khả năng làm

xấu tín hiệu Việc truyền bằng tín hiệu VF cũng có khả năng triệt nhiễu bằng cách

tạo sự cách ly giữa bộ biến đổi với thiết bị cảm biến, một yêu cầu quan trọng trong

các trạm kiểm soát và điều khiển các hệ thống điện cao áp Thực tế, kỹ thuật này

phụ thuộc vào các vi mạch VFC thông dụng, rẻ tiền, có chất lượng tốt (tuyến tính

và ổn định)

Trang 16

7 – ADC song song:

Hình 2.14 Sơ đồ khối AD song song

Được dùng trong kỹ thuật cần biến đổi AD tốc độ cao, như kỹ thuật Video,

kỹ thuật Radar, dao động ký số Trong kỹ thuật này tín hiệu vào được so sánh ngay

lập tức với tất cả các mức ngưỡng bằng cách dùng nhiều bộ so sánh Việc lượng tử

hóa do vậy thực hiện hoàn tất trong cùng một lúc Bộ giải mã nhanh lập tức đổi các

tín hiệu so sánh được tới đầu ra

ADC dùng phương pháp này có tần số lấy nẫu phụ thuộc vào tốc độ (thời

gian trễ) của các bộ so sánh Thông thuờng vi mạch so sánh có thời gian trễ trong

khoảng 10-12ns, vì vậy trên lý thuyết, tần số lấy mẫu của ADC có độ phân giải 8

Bits cần tới 2 8 – 1=255 bộ so sánh, do vậy kích thước vi mạch sẽ rất lớn

Encode

r

Trang 17

III – GIAO TIẾP PHẦN MỀM:

Dữ liệu truyền giữa ADC và vi xử lý có thể tổ chức trong phần mềm theo 3

cách:

1 – Memory – Mapped – Transfers (Truyền theo bản đồ nhớ):

Trong bản đồ bộ nhớ, ADC được chỉ định trong một vùng bộ nhớ thực sự

chưa sử dụng Bên cạnh việc sử dụng tối đa bộ nhớ, ta có dùng phần cứng giải mã

địa chỉ từ tối thiểu đến tối đa để không lãng phí không gian trong bộ nhớ

2 – Input / Output Mapped Tranfers (Truyền theo bản đồ I/O):

Một vài hệ thống tạo ra vùng I/O có địa chỉ rất riêng biệt, mà ở đó địa chỉ có

thể giống địa chỉ bộ nhớ, có thể phân biệt chúng với nhau bằng cách dùng tín hiệu

điều khiển đặc biệt IOR, IOW trên hệ thống Bus của IBM – PC Sự phân biệt giữa

I/O và 2 vùng bộ nhớ làm cho thiết kế hệ thống trở nên tốt hơn Nó cho phép giải

mã địa chỉ sử dụng phần cứng là tối thiểu, giải mã từ vùng IO đơn giản và tốt hơn

bộ nhớ có giá trị chưa sử dụng

3 – DMA (Direct Memory Access : truy mất trực tiếp bộ nhớ):

Khi chỉ có truyền dữ liệu đơn giản giữa bộ nhớ và ngoại vi được dùng tích

lũy trong quá trình chuyền làm chậm quá trình một cách không cần thiết

Bằng việc sử dụng kết hợp trong phần cứng trong dạng thiết bị phục vụ gọi

là “điều khiển DMA” Việc truyền trực tiếp có tác động nhanh hơn nhiều, hầu hết

các bộ vi xử lý cho phép DMA thực hiện đầy đủ bằng cách cấp điều khiển của Bus

hệ thống cho khoảng định trước Điều khiển DMA lấy địa chỉ yêu cầu và tín hiệu

điều khiển Tại cuối khoảng, điều khiển Bus quay lại vi xử lý Truyền dữ liệu hoàn

toàn có thể lấy nhiều chu kỳ DMA để thi hành

IV – GIAO TIẾP PHẦN CỨNG:

Thiết kế phần cứng theo mô hình dữ liệu song song hay nối tiếp

1 – Dữ liệu truyền song song:

Phần cứng cho giao tiếp dữ liệu song song hầu hết bao gồm ngõ ra đệm ba

trạng thái mà ADC nối với Bus dữ liệu của vi xử lý Địa chỉ giải mã và tín hiệu

điều khiển ghi đọc của cho phép đệm truyền dữ liệu ADC vào P Giải mã tương

ứng và tín hiệu điều khiển của P tạo thành lệnh bắt đầu cho bộ biến đổi Nó

không cần dùng điều khiển R/W riêng biệt, dù sao việc làm này cho phép địa chỉ

giống nhau cho việc gởi lệnh đến ADC và để đọc ngõ ra ADC

Các ADC mới hơn có bộ đệm ba trạng thái với mạch điều khiển của chúng

Những ADC này có thể nối trực tiếp với Bus dữ liệu của vi xử lý Giao tiếp nhiều

thiết bị, thì ta phải cung cấp giải mã và đôi khi phải một vài cổng quản lý tín hiệu

điều khiển Giao tiếp với hệ thống P thì đơn giản bởi vì P cung cấp địa chỉ Port

trực tiếp và việc giải mã địa chỉ là không cần thiết

2 – Mô hình dữ liệu nối tiếp :

Trang 18

Dùng trong việc truyền dữ liệu đi xa Truyền đồng bộ nối tiếp dùng cho

tuyến phục vụ hay tuyến điện thoại Thiết bị gọi là UART (truyền nhận không

hoàn toàn đồng bộ) UART nhận và truyền dữ liệu dạng tuần tự nhưng giao tiếp với

P dạng song song

B – BIẾN ĐỔI TƯƠNG TỰ SỐ (DAC) :

Biến đổi DA thường là giai đoạn cuối của một hệ thống xử lý số: Sau khi tín

hiệu tương tự ở đầu vào được mạch ADC biến đổi sang dạng số, nó được xử lý, lưu

trữ dưới dạng số bởi hệ xử lý trung tâm rồi kết quả xử lý sẽ được đưa đến mạch

DAC để xuất ra dữ liệu dạng tương tự Mạch DAC nhận ở đầu vào một giá trị số

nhị phân tự nhiên và xuất ra ở ngõ ra một điện áp dạng tương tự có giá trị tỉ lệ với

giá trị ngõ vào

I – TỔNG QUÁT:

1 – Quan hệ vào ra:

Vref

V0 (I0) DAC

Digital input

Hình 2.15 Quan hệ vào ra bộ DAC

Biến đổi DA có tính chất tỉ lệ Tín hiệu vào Digital N được biến đổi thành

một điện áp (hoặc dòng điện) có giá trị Q (phụ thuộc vào tín hiệu tham chiếu Vref)

bằng cách so sánh giá trị ở đầu vào với giá trị đầy thang của đầu vào Bất kỳ một

sai số tín hiệu Vref nào cũng sẽ dẫn tới sai số mức ra, vì vậy người ta cố gắng cho

Vref càng ổn định càng tốt

Thông thường, ở các bộ biến đổi DAC thương mại, ngõ ra sẽ xuất hiện dòng

điện, vì vậy ta phải mắc thêm một biến đổi dòng thành áp có thể nhận được điện

áp ra

2 – Đầu vào bộ DAC:

Đa số các bộ DAC có đầu vào 8 Bits, 10 Bits, 12 Bits, 16 Bits … Đầu vào các

bộ DAC thường là các mã nhị phân tự nhiên hoặc có dấu Nếu mã đầu vào đầu vào

có dấu thì tín hiệu tham chiếu Vref phải là tín hiệu lưỡng cực

Bộ DAC sẽ liên tục biến đổi số ở ngõ vào thành giá trị tương tự ở ngõ ra,

thời gian cho một lần biến đổi như vậy tùy theo bộ DAC Vì vậy để đảm bảo chính

xác, người ta mắc thêm ở ngõ vào bộ DAC một mạch chốt dữ liệu để tránh hiện

tượng bộ DAC xuất ra tín hiệu không xác định trong khoảng thời gian tự do giữa

hai lần cập nhật dữ liệu ở ngõ vào

Trang 19

3 – Đầu ra bộ DAC

Tùy theo công nghệ chế tạo mà đầu ra của bộ DAC có thể là dòng hoặc áp

4 – Tín hiệu điều khiển:

Hầu hết các bộ DAC đều không cần tín hiệu điều khiển

II – GIAO TIẾP DAC VỚI VI XỬ LÝ:

1 – Xuất dữ liệu tuần tự:

Khi có yêu cầu xuất một chuỗi dữ liệu ra cổng, phần mềm xử lý sẽ tuần tự

xuất từng Byte dữ liệu trong bộ đệm ra cổng Để tạo được tần số xuất theo mong

muốn, đầu tiên chương trình phải tính được tốc độ của CPU có thể xuất ra cổng

giao tiếp trong một dịch vụ thời gian (1 giây) Từ thông tin đó, phần mềm có thể

tính được thời gian trễ (Delay) giưã hai lần xuất dữ liệu để tạo ra tần số xuất theo

yêu cầu

Phương pháp này tạo ra tần số xuất dữ liệu rất cao (lên tới khoảng 40Khz

hoặc cao hơn tùy theo kiểu máy tính), nhưng tần số rất khó để có thể tạo ra một

cách chính xác Mặt khác CPU cũng sẽ bị bận trong suốt quá trình xuất dữ liệu

2 – Cài đặt một ngắt ngoại vi:

Phương pháp này sử dụng xung Start để mạch lấy mẫu ADC để kích hoạt

một chương trình phục vụ ngắt, chương trình phục vụ này sẽ làm nhiệm vụ xuất

một Byte dữ liệu ra cổng Xung Start ở được lợi dụng để tạo ra một tần số kích ngắt

bằng tần số lấy mẫu

3 – Sử dụng ngắt đồng hồ:

Ta biết rằng trong hệ thống của máy tính có ngắt số 8 là một ngắt có kích

hoạt định kỳ theo thời gian, gọi là ngắt đồng hồ, chu kỳ kích ngắt có thể có thể thay

đổi được bằng cách lập trình cho bộ định thì 8253 Lợi dụng ngắt có sẵn này, ta có

cài thêm một chương trình phục vụ ngắt của máy rồi lập trình cho bộ 8253 để tạo ra

một tần số kích ngắt theo mong muốn

Trang 20

Chương II

GIAO TIẾP NGOẠI VI 8255A

PPI 8255A (PROGRAMABLE PARALLEL INTERFACE)

I – TỔNG QUÁT:

1 – Bộ đệm truyền dữ liệu:

Bộ đệm 8 Bits, 2 chiều, 3 trạng thái dùng để giao tiếp 8255 với CPU

Dữ kiện được phát hay nhận bởi bộ đệm khi thực hiện lệnh IN, OUT bởi

CPU

Các từ điều khiển cũng truyền qua dữ kiện

I/O PA0-DA7 I/O PC4-PC7 I/O PC0-PO3 I/O

PB0-PB7

Hình 3.1 Cấu trúc khối của 8255

2 – Phần kiểm soát đọc ghi:

Chức năng của khối này là kiểm soát tất cả các sự truyền đạt bên trong và

bên ngoài của từ điều khiển và dữ kiện Nó nhận ngõ vào từ tuyến địa chỉ và sự

điều khiển của CPU, phát ra các lệnh cần thiết cho cả hai nhóm A và B

CS: ngõ vào = 0 cho phép truyền tin giữa 8255 và CPU

RD: = 0 cho phép 8255 gởi dữ kiện đến CPU trên tuyến dữ kiện chủ yếu là

cho phép CPU đọc dữ kiện từ 8255

WR=0 – CPU từ điều khiển hay dữ kiện ra 8255

Đệm

dữ

kiện

Điều khiển Nhóm A

Nhóm A Cửa A

Nhóm A Cửa C Phần cao

Nhóm B Cửa C Phần thấp

Nhóm B Cửa B

Trang 21

A0 A1 Chọn cửa

0 0 Cửa A

0 1 Cửa B

1 0 Cửa C

1 1 Cửa điều khiển

RESET: =1 xóa các thanh ghi bên trong gồm thanh ghi điều khiển và các

cửa A, B, C ở mode nhận

3 – Điều khiển nhóm A và B:

Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần mềm, chủ yếu là

CPU xuất phát từ điều khiển đến 8255 Từ điều khiển gồm các thông tin như chế

độ (mode), bit set, bit reset, v.v … sẽ khởi động cấu hình hoạt động của 8255 Thanh

ghi từ điều khiển chỉ có thể viết vào mà không đọc ra

4 – Các cửa A, B, C:

8255 gồm 3 cửa A, B và C Mỗi cửa gồm 8 bits Các cửa này có thể được lập

trình bởi phần mềm để có thể hoạt động ở chế độ thích hợp

Cửa A: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits

Cửa B: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits

Cửa C: đệm và cài ngõ ra 8 bits và đệm 8 bits ngõ vào (không cài)

Cửa C có thể chia làm 2 phần, mỗi phần 4 bits cho điều khiển mode

Mỗi phần được dùng kết hợp với cửa A hay B tạo nên các tín hiệu điều

khiển

II – MÔ TẢ CHI TIẾT:

1 – Chọn chế độ (Mode):

Có 3 chế độ hoạt động cơ bản thích hợp cho phần mềm:

Mode 0 : Vào/ra cơ bản

Mode 1 : Vào/ra “bắt tay” (chỉ cho phép 1 trong chiều)

Mode 2 : Truyền dữ kiện hai chiều

Khi RESET, tất cả các cửa được thiết lập ở chế độ nhập (input), tức là cả 24

đường đều ở 3 trạng thái Sau khi RESET 8255 có thể duy trì ở chế độ nhập mà

không cần khởi động gì thêm Trong khi thực hiện chương trình hệ thống, có thể

chọn bất kỳ mode nào bằng cách xuất đến 8255 từ điều khiển Điều này cho phép

chỉ cần một 8255 mà có thể phục vụ nhiều kiểu thiết bị ngoại vi

Các chế độ cửa A và B có thể định nghĩa riêng biệt Còn của C được chia

làm hai phần cho hai nhóm tùy yêu cầu định nghĩa chế độ cửa A và B Ta có từ

điều khiển cho 8255 như sau: (trang sau)

Trang 22

2 – Đặc tính xóa/thiết lập bit cho cửa C khi nó dùng làm tín hiệu trạng

thái/điều khiển cho cửa A/B:

Ta dùng lệnh OUT xuất ra từ một điều khiển, trong đó bit D7 = 0

Trang 23

D7 D6 D5 D4 D3 D2 D1 D0

Nhóm B 1:in Mode set flag Cửa C(phần thấp) 0: out

0:out Chọn chế độ 0:mode 0 1: mode 1 NhómA

Cửa C 1:in (phần cao) 0:out

Cửa A 1: in

0: out 00: mode 0

Chọn mode 01: mode 1

1X: mode 2

Hình 3.2

Khi chọn mode cho port A, các bit D3, D4, D5 không còn ý nghĩa nữa Lúc

đó cửa A là hai chiều, còn phần cao cửa C sẽ làm tín hiệu điều khiển và trạng thái

cho cửa A (Bitset và reset flag), phần còn lại của điều khiển có ý nghĩa như sau:

D7 D6 D5 D4 D3 D2 D1 D0

x x x Bit set / Reset

0: Reset

1:set Bit select

Bit set / Reset fleg

Mỗi lần xuất ra một từ điều khiển đến 8255 với D7 = 0, chỉ tác động đến 1

bit của cửa C (được chọn bởi Bit select)

3 – Chức năng kiểm soát ngắt quãng:

Trang 24

Khi 8255 được lập trình ở mode 1 hay 2, các tín hiệu điều khiển được cung

cấp có thể được dùng để yêu cầu ngắt quãng CPU Tín hiệu yêu cầu ngắt quãng

phát ra từ cửa C có thể bị cấm hay cho phép bằng cách set hay reset flip-flop INTE

tương ứng, dùng chức năng set/reset bit của cửa C

Chức năng này cho phép CPU cấm hay cho phép các thiết bị I/O đã xác định

ngắt quãng CPU mà không làm ảnh hưởng các thiết bị khác trong cấu trúc ngắt

quãng

III – CHẾ ĐỘ HOẠT ĐỘNG:

1 – Mode 0 (Vào/ra cơ bản)

Không có “bắt tay”, dữ kiện được ghi và đọc một cách dơn giản đến phức

tạp hay từ 1 cửa đã chỉ ra Các đặc tính cơ bản ở mode 0:

 2 cửa 8 bits và 2 cửa 4 bits

 Bất kỳ cửa nào cũng có thể là ra hay vào

 Ngõ ra được cài

 Ngõ vào không cài

 Cho phép 16 dạng vào / ra ở mode

Ví dụ : Từ điều khiển 83h xáx định cửa A ra, B vào

Phần cao của C : ra, phần thấp của C : vào

2 – Mode 1 (Vào/ra có bắt tay):

Ở mode 1, cửa A và B dùng những đường ở cửa C để phát hay nhận các tín

hiệu bắt tay

Định nghĩa các tín hiệu bắt tay cho phần nhập:

 STB (Strobe Input): mức thấp ở ngõ vào này nạp dữ liệu vào 8255

 IBF (Input Buffer Full): ngõ ra =1 để thông báo dữ kiện đã được nạp vào mạch

cài nhập

Nói cách khác, mức thấp của STB sẽ thiết lập IBF = 1, và IBF bị xóa bởi

cạnh lên RD

* INTR (Interput Request): ngõ ra = 1 để yêu cầu ngắt khoảng CPU, INTR

được set bởi STB = 1 và IBF = 1, INTR = 1

INTR bị reset bởi cạnh xuống RD

INTR A kiểm soát bởi bit set / reset PC 4

INTR B kiểm soát bởi bit set / reset PC 2

Trang 25

Hình 3.4

Trang 26

Định nghĩa tín hiệu điều khiển phần xuất:

 OBF (Output Buffer Full FF)

Ngã ra xuống 0 để báo là CPU đã ghi thông tin ra cửa xác định OBF FF được

set bởi cạnh lên của xung WR từ CPU và bị reset bởi ACK = 0 do ngoại vi (tức

là ở mức không tích cực)

*ACK (Acknowledge Input)

Mức thông báo cho 8255 biết thông tin từ cửa A hay B đã nhận bởi ngoại vi

*INTR (Interput Request)

Mức 1 ở ngõ ra dùng để yêu cầu ngắt quãng CPU khi ngoại vi đã nhận dữ kiện

phát bởi CPU

INTR set bởi ACK = 1, OBF = 1 và INTE = 1

INTR bị xóa bởi cạnh xuống xung WR

INTE A kiểm soát bởi bit set / reset PC 6

INTE B kiểm xoát bởi bit set / reset PC

Trang 27

Hình 3.5

Trang 28

Các kết hợp của mode 1:

Cửa A : vào, B : ra từ điều khiển

Cửa A : ra, B : vào từ điều khiển

3 – Mode 2 : Xuất nhập 2 chiều bắt tay

Các đặc tính cơ bản của mode 2:

* Chỉ dùng cho nhóm A

* 1 cửa 2 chiều 8 bits (A) và một cửa điều khiển 5 bits (C) cho cửa A

* Cả ra / vào đều có cài

Định nghĩa các tín hiệu điều khiển xuất nhập 2 chiều:

* INTR (Interput Request):

Mức 1 ở ngõ ra này báo cho CPU biết yêu cầu ngắt khoảng cho phép nhập hay

xuất (chung)

* Phép xuất :

OBF (Output Buffer Full FF) output

OBF xuống 0 để báo cho ngoại vi biết CPU đã ghi dữ kiện ra cửa ACK

(Acknowledge) Input

Mức 0 từ ngoại vi cho phép bộ đệm ra 3 trạng thái của cửa A mở để phát ra dữ

kiện, bộ đệm ra ở 3 trạng thái

INTE 1 (INTE FF liên quan với OBF)

Kiểm soát bởi bit set / reset PC 6

* Phép nhập:

STB: Mức thấp ở ngõ vào này cài data vào mạch cài ngõ nhập

IBF: (Input Buffer Full FF) output

Mức 1 thông báo cho CPU biết dữ kiện đã nhập vào mạch cài nhập

INTE 2 (liên quan với IBF)

Kiểm soát bởi bit set/reset PC 4

Trang 29

Hình 3.7

Kết hợp mode 2 và các mode khác:

Mode 2 và mode 0 (in) : từ điều khiển : 11 XXX 01 1/0

Mode 2 và mode 1 (out) : từ điều khiển : 11 XXX 01 1/0

Mode 2 và mode 1 (in) : từ điều khiển : 11 XXX 00 X

Mode 2 và mode 0 (in) : từ điều khiển : 11 XXX 10 X

Sự kết hợp các mode đặc biệt:

Có một số tổ hợp các mode mà không phải tất cả cửa C đều dùng làm điều

khiển hay trạng thái, các bit còn lại được dùng như sau:

Nếu lập trình là ngõ vào:

Các bit ở phần cao cửa C (C4-C7) phải được truy xuất riêng rẽ dùng chức

năng bit set / reset

Các bit ở phần thấp cửa C (C0-C3) có thể truy xuất dùng chức năng bit

set/reset thay truy xuất như nhóm 3 bằng cách ghi ra cửa C

4 – Đọc trạng thái cửa C:

Ở mode o, cửa C truyền dữ kiện đến hay từ ngoại vi 8255 được lập trình ở

mode 1 hay 2, cửa C trở nên các tính điều khiển bắt tay cho cửa A và C

Đọc nội dung cửa C cho phép người lập trình kiểm tra trạng thái của mỗi

thiết bị ngoại vi thay chiều chương trình tương ứng

Trang 30

Không có lệnh đặc biệt để đọc thông tin trạng thái từ C Phép đọc bình

thường của C dùng để thực hiện chức năng này

D7 D6 D5 D4 D3 D2 D1 D0 I/

O

I/

O IBFA INTEA INTRA INTEB IBFB INTRB

Trang 31

Chương III

TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN MCS-51

Họ vi điều khiển Mcs – 51 ra đời từ năm 1980 bởi hãng Intel, với sản phẩm

đầu tiên là 8051 Các IC này gọi là vi điều khiển vì chúng bao gồm cả ROM,

RAM, timer, các cổng nối tiếp và song song Đây là đặc điểm chính để ta phân biệt

giữa vi điều khiển và vi xử lý 8051 không được sử dụng trong máy tính nhưng được

sử dụng rộng rãi trong công nghiệp và trong sản phẩm máy móc tiêu dùng

Cùng họ với 8051 có một số vi điều khiển khác Về cơ bản chúng đều giống

nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ

dữ liệu và số timer Sự khác nhau đó được mô tả bằng bảng dưới đây

Vi điều khiển Vùng mã lệnh nội Vùng dữ liệu nội Số timer

Bảng 4.1 So sánh các IC của họ Msc-51 TM

I – CẤU TRÚC CỦA 8051:

Trung tâm của 8051 vẫn là vi xử lý trung tâm (CPU) Để kích thích cho toàn

bộ hệ thống hoạt động, 8051 có bộ tạo dao động nội với thạch anh được ghép bên

ngoài với tần số khoảng từ vài Mhz đến 12 Mhz Liên kết các phần tử với nhau là

hệ thống BUS nội, gồm có BUS dữ liệu, BUS địa chỉ và BUS điều khiển 8051 có

4K ROM, 128 bytes RAM và một số thanh ghi bộ nhớ … Nó giao tiếp với bên ngoài

qua 3 cổng song song và một cổng nối tiếp có thể thu, phát dữ liệu nối tiếp với tốc

độ lập trình được Hai bộ định thời 16 bit của 8051 còn có 2 ngắt ngoài cho phép nó

đáp ứng và xử lý điều kiện bên ngoài theo cách ngắt quãng, rất hiệu quả trong các

ứng dụng điều khiển Thông qua các chân điều khiển và các cổng song song 8051

có thể mở rộng bộ nhớ ngoài lên đến 64Kbs dữ liệu

Trang 32

II – SƠ LƯỢC VỀ CÁC CHÂN CỦA 8051

Mục này giới thiệu cấu trúc phần cứng của 8051 từ những chân được nhìn

thấy bên ngoài Dưới đây chỉ mô tả ngắn gọn chức năng của từng chân Trong 40

chân có đến 32 chân có chức năng như cổng xuất nhập, 24 trong số chúng được

dùng cho hai mục đích khác nhau Mỗi chân có thể là đường xuất nhập, đường điều

khiển hoặc là một phần của địa chỉ hay dữ liệu Thiết kế thường có bộ nhớ ngoài

hay các thiết bị ngoại vi sử dụng những port để xuất nhập dữ liệu Tám đường trong

mỗi port được dùng như một đơn vị giao tiếp song song như máy in, bộ biến đổi

tương tự số, v.v… Hoặc mỗi đường cũng có thể hoạt động một cách độc lập trong

giao tiếp với các thiết bị đơn bit như: transitor, LED, switch, solenoids …

Trang 33

 Port 0

Port 0 là cổng song song dùng cho hai mục đích, nó là các chân từ 32 đến 39

Trong những thiết kế nhỏ nó được dùng trong cổng xuất nhập bình thường Ở

những thiết kế có sử dụng bộ nhớ ngoài, nó vừa là bus dữ liệu vừa là byte

thấp của bus địc chỉ Nó còn dùng chứa bytes mã khi nạp ROM nội

Trang 34

 Port 1

Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thôi Nó

dùng để giao tiếp với các thiết bị ngoại vi theo từng bit hoặc byte Port 1

chiếm các chân từ 1 đến 8

 Port 2

Port 2 (chân 21  28) là port có hai chức năng Ngoài mục đích dành cho

xuất nhập thông thường nó còn dùng làm byte cao cho bus địa chỉ bộ nhớ ngoài

 Port 3

Port 3 (chân 10  17) là port hai chức năng Bên cạnh chức năng xuất nhập,

các bit của port 3 còn có chức năng điều khiển Chức năng các bit của port 3

và port 1 được mô tả trong bảng 4.2

 PSEN (cho phép nạp chương trình)

8051 có 4 chân tín hiệu điều khiển PSEN là tín hiệu điều khiển được xuất ra

ở chân 29 Tín hiệu điều khiển này cho phép lập trình ở bộ nhớ ngoài và thường

được nối với các chân OE của EPROM để đọc mã lệnh từ bộ nhớ ngoài vào thanh

ghi lệnh của 8051 Nó xuống mức thấp trong khi đọc lệnh Mã lệnh đọc từ EPROM,

qua bus dữ liệu, được chốt vào thanh ghi của 8051 Khi thi hành chương trình từ

ROM nội PSEN được giữ ở mức cao (trạng thái không tác động)

 EA (truy xuất vùng nhớ ngoài)

EA là một tín hiệu vào có thể ở mức cao hay thấp Nếu ở mức cao 8051 thi

hành chương trình ở ROM nội, 4K/8K chương trình Nếu ở mức thấp, chương trình

chỉ được thi hành từ bộ nhớ ngoài Đối với 8031/8231 EA phải được giữ ở mức thấp

vì chúng không có ROM nội EA cũng chính là chân nhận điện áp mức cao để nạp

EPROM nội

 ALE (cho phép chốt địa chỉ)

ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc với những ai đã từng làm

việc với vi xử lý 8085, 8086 của Intel 8051 dùng ALE để phân kênh cho bus địa

chỉ và bus dữ liệu Khi port 0 được dùng làm bus dữ liệu và byte thấp của bus địa

chỉ – ALE là tín hiệu dùng để chốt địa chỉ vào thanh ghi chốt bên ngoài trong nữa

đầu của một chu kỳ máy Sau đó Port 0 sẵn sàng để truy xuất dữ liệu trong nữa chu

kỳ còn lại

Xung ALE có tần số bằng 1/6 lần tần số bộ dao động nội và có thể dùng như một

xung clock cho mục đích nào đó khi hệ thống không làm việc Nếu tốc độ 8051 là

12 MHz thì tần số xung ALE là 2 MHz Một xung ALE bị mất khi có một lệnh

MOVX được thi hành

Trang 35

 Ngõ vào dao động nội

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

RXD TXD INT0 INT1 T0 T1

WR

RD T2 T2EX

Nhận dữ liệu Phát dữ liệu Ngắt ngoài 0 Ngắt ngoài 1 Ngõ vào của Timer / couter

0 Ngõ vào của Timer / couter

1 Đọc dữ liệu từ bộ nhớ ngoài Đọc dữ liệu vào bộ nhớ ngoài

Ngõ vào của Timer / couter

2

Bảng 4.2 Chức năng của các chân điều khiển

Ngõ vào dao động nội được mô tả như hình dưới đây, có một thạch anh được nối

với chân 19 (XTAL1) và 18 (XTAL2) Có thể mắc thêm tụ để ổn định dao động

Thạch anh 12 MHz thường dùng cho họ MCs-51, trừ IC 80C31BH có thể dùng

thạch anh lên đến 16 MHz Tuy nhiên, không nhất thiết phải dùng thạch anh mà ta

có thể dùng mạch dao động TTL tạo xung Clock đưa vào chân XTAL1 và lấy đảo

của nó đưa vào XTAL2

 RST (Reset)

Ngõ vào RST (chân 19) là chân master reset của 8051 Khi nó ở mức cao (trong

khoảng ít nhất 2 chu kỳ máy) các thanh ghi nội được nạp với giá trị tương ứng theo

thứ tự khởi động hệ thống

 Nguồn cung cấp

8051 sử dụng nguồn đơn 5V

III – CẤU TRÚC CỔNG XUẤT NHẬP

Mạch bên trong của một chân port mô tả ngắn gọn trong hình 4.3 Khi ghi lên một chân của cổng, dữ liệu được chốt vào bộ chốt Chốt lái một transitor

thường nối với chân của cổng Nhờ đó có thể kéo được 4 tải LS ở các cổng Port 1, 2

, 3 và 8 tải LS ở Port Lưu ý Port 0 có điện trở kéo lên, ngoại trừ khi dùng nó với

chức năng vừa là bus địa chỉ, vừa là bus dữ liệu ngoại Tùy theo đặc tính bên trong

của tải mà ta có thể thêm vào điện trở kéo lên bên ngoài

Trang 36

Chốt

Hình 4.3 Sơ đồ mạch port

Việc đọc chốt được phân biệt làm hai, đó là đọc từ chốt và đọc từ chân Sự phân biệt này nhằm chống trường hợp chập mạch do quá tải gây nên

Lệnh đọc một bit cổng (ví dụ MOV C, P1.1) sẽ đọc chân của cổng Trong trường

hợp này, chốt phải được giữ ở mức cao, nếu không FET sẽ dẫn và ngõ ra xuống

mức thấp Tất cả các chốt của port đều được set khi reset hệ thống Như vậy các

chân chốt đều được dùng như ngõ vào mà không cần phải set chốt Tuy nhiên, nếu

đã xóa chốt (ví dụ CLEAR P1.1) không thể đọc dữ liệu đúng từ chân port trừ khi

set chốt trở lại

IV – TỔ CHỨC BỘ NHỚ

Hầu hết các bộ nhớ các vi xử lý đều dựa theo cấu trúc Von Neuman về phân chia vùng nhớ cho chương trình và dữ liệu Điều này cho phép chương

trình được lưu giữ trong đĩa và chỉ load vào bộ nhớ mỗi khi thi hành Do đó dữ liệu

và chương trình đều nằm trong RAM Đối với vi điều khiển thì khác, CPU được coi

là hệ thống máy tính Nó là trung tâm của thiết bị điều khiển Nó bị giới hạn về bộ

nhớ Chương trình điều khiển nằm trong ROM

Vì lý do này mà bộ nhớ của vi điều khiển 8051 dựa theo cấu trúc Harvard để phân chia vùng chương trình (code mã lệnh) và dữ liệu Như đã mô tả ở

bảng 4.2 cả hai vùng mã lệnh và dữ liệu đều nằm ở bộ nhớ nội Tuy nhiên cả hai

cũng có thể mở rộng ra bộ nhớ ngoài, có thể lên đến 64Kb cho vùng địa chỉ

Bộ nhớ nội gồm có ROM nội (chỉ đối với 8051/8052) và RAM ngoại

RAM chia thành nhiều vùng: vùng dành cho mục đích nào đó, vùng có thể truy

xuất bit, các khối (bank) thanh ghi, và các thanh ghi đặc biệt

Có hai điều đáng lưu ý ở đây: (a) các thanh ghi và các cổng xuất nhập đều được phân chia địa chỉ và có thể truy xuất chúng như những vùng khác (b)

stack thường được phân chia vào RAM nội hơn là vùng nhớ ngoài Đây là một đặc

điểm của vi điều khiển

Trang 37

Hình 4.4 mô tả bộ nhớ của 8031 (không có ROM nội) Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội Các vùng nhớ được mô tả dưới đây

Vùng tổng quát

Vùng RAM này chiếm 80 bytes từ địa chỉ 30H đến địa chỉ 7FH Vùng nhớ 32 bytes bên dưới cũng có thể được dùng như vùng này mặc dù nó được dùng

cho mục đích khác

Bất kỳ vị trí nào trong vùng này đều có thể truy xuất tự do bằng địa chỉ trực tiếp hoặc gián tiếp Ví dụ để đọc nội dung byte nhớ nội của địa chỉ 5FH

vào thanh ghi ACC, ta dùng lệnh sau:

MOV A, 5FH ; Lệnh này chuyển một byte dữ liệu sử dụng địa chỉ trực tiếp để xác định địa chỉ nguồn (5FH)

RAM nội cũng có thể được truy xuất bằng địa chỉ gián tiếp thông qua R0 và R1 (chỉ hai thanh ghi này mà thôi) Ví dụ lênh sau sẽ thực hiện công việc

giống như ví dụ trên

MOV R0, 5FH ; MOV A, @R0 ; Lệnh đầu tiên nạp giá trị 5FH cho thanh ghi R0 Lệnh thứ hai dùng chuyển dữ liệu được chỉ ra bởi R0 và thanh ghi tích luỹ (ACC)

mã lệnh dữ liệu

Trang 38

Vùng nhớ có khả năng truy xuất bit:

8051 có tất cả 210 vị trí có thể truy xuất bit Trong đó có 128 bits (16 bytes) từ địa chỉ 20H đến 2FH và các bit thuộc các thanh ghi chức năng Khả năng

truy xuất bit bằng các phần mềm là một điểm mạnh của vi điều khiển Bits có thể

được set, clear, and, or, v.v… bằng một lệnh đơn

Vùng nhớ này có thể truy xuất như bytes hoặc bit Ví dụ để set bit 67H ta dùng lệnh sau:

SETB 67H ;

So với bộ nhớ bit là bit có trọng số lớn nhất của bytes 2CH, do đó ta cũng có thể set nó bằng lệnh sau:

MOV A, 2CH ; ORL A, #10000000B ; MOV 2CH, A ; Hơn thế nữa các I/O ports của 8051 có thể truy xuất bit, làm đơn giản việc xuất nhập từng bit Vùng nhớ này có thể xuất nhập từng byte tùy theo lệnh

Các ngăn thanh ghi (Register banks):

32 butyes nằm ở cuối vùng RAM nội là các ngăn thanh ghi Tập lệnh của 8051 chỉ truy xuất 8 thanh ghi trong vùng này, từ R0 đến R7

Tại một thời điểm chỉ truy xuất được một ngăn thanh ghi mà thôi Các thanh ghi này có địa chỉ mặc định 00H đến 07H khi reset hệ thống (bank 0) Lệnh

sau đây đọc nội dung byte nhớ có địa chỉ 05H vào thanh ghi tích luỹ

MOV A, R5 ; Lệnh trên chỉ chiếm một bute sử dụng địa chỉ thanh ghi Dĩ nhiên công việc trên có được thực hiện bằng một lệnh hai bytes sử dụng địa chỉ trực tiếp:

MOV A, 05H ; Rõ ràng lệnh sử dụng thanh ghi R0 đến R7 ngắn hơn và nhanh hơn so với lệnh tương đương sử dụng địa chỉ trực tiếp

Các ngăn thanh ghi có thể thay đổi bằng cách set lại thanh ghi trạng thái chương trình (PSW.3 PSW.4) trong chương trình Giả sử sau khi cho phép sử

dụng bank 3 thanh ghi R5 lúc này có địa chỉ 20H Lệnh sau ghi nội dung thanh ghi

ACC vào vị trí 18H(R3)

MOV R3, A;

V – CÁC THANH GHI CÓ CHỨC NĂNG ĐẶC BIỆT

Hầu hết các thanh ghi nội của các vi điều khiển đều có thể được truy xuất thông qua tên đã được định nghĩa Ví dụ INC A

Các thanh ghi nội của 8051 chiếm một phần của vùng nhớ nội, vì vậy mỗi thanh ghi đều có một địa chỉ Các thanh ghi chức năng (FSRs) nằm trong vùng

Trang 39

nhớ cao từ 80H đến FFH Lưu ý có một số bytes trong vùng này không được định

nghĩa Chỉ có 21 địa chỉ thanh ghi chức năng được định nghĩa (26 địa chỉ đối với

8052/8032)

Mặc dù có thể truy xuất các thanh ghi chức năng thông qua tên của nó, hầu hết các thanh ghi này được truy xuất bằng địa chỉ trực tiếp Một số thanh

ghi có thể truy xuất bằng byte hoặc bit Trong lập trình phải cẩn thận khi

truy xuất bit thông qua byte Ví dụ lệnh sau:

SETB 0E0H ; Set bit 0 trong thanh ghi ACC, các bit khác vẫn không thay đổi Lưu ý địa chỉ của một bit trong một thanh ghi chức năng luôn được xác định bởi 5 bit cao

của địa chỉ thanh ghi đó Ví dụ một bit trong thanh ghi P1 (90H hay 10010000B)

hay có địa chỉ 9xH hay 10010xxxB

Thanh ghi trạng thái chương trình (PSW) sẽ được mô tả chi tiết trong phần sau, các thanh ghi chức năng còn lại được mô tả ngắn gọn và sẽ được mô tả

chi tiết trong những chương sau

Thanh ghi trạng thái chương trình:

Thanh ghi trạng thái chương trình có địa chỉ 0Dh, chứa các bit trạng thái chương trình

Các bit trạng thái được mô tả như sau:

* Cờ Carry:

Cờ carry có hai chức năng:

+ Được dùng trong các phép toán số học thông thường Nó là cờ nhớ của phép tính cộng và cờ mượn của phép tính trừ Ví dụ các thanh ghi ACC có nội

dugn FFH thì lệnh “ADD A, #1” làm cho ACC bằng 00H và cờ nhớ được set

+ Cờ carry còn được dùng như “thanh ghi tích luỹ 1 bit” cho các phép toán luận lý trên bit Ví dụ lệnh sau AND bit 25H với cờ carry và đặc kết quả vào

cờ carry: “ANL C,25H ;”

* Cờ nhớ phụ (auxiliary carry – AC) :

Khi cộng các giá trị BCD, cờ AC được set nếu bit thứ ba tràn hay 4 bit thấp có giá trị từ 0AH đến 0FH Khi cộng số BCD, sau phép cộng phải dùng lệnh

DA A (decimal adjust accumulator) để chỉnh kết quả cộng về dạng BCD

* Cờ 0:

Cờ này dành cho người sử dụng trong các ứng dụng lập trình

* Bit chọn ngăn thanh ghi:

Hai bit RS0 và RS1 dùng để cho ngăn thanh ghi, chúng được xóa khi reset hệ thống và có thể thay đổi bằng phần mềm Ví dụ các lệnh sau sẽ chọn nhăn

thanh ghi thứ ba và ghi nội dung R7 (địa chỉ 1FH) vào ACC

SETB RS0 ; SETB RS1 ;

Trang 40

MOV A, R7 ;

* Cờ tràn (Overflow – OV):

Cờ tràn được set kết quả bị tràn (số học) sau phép tính cộng hoặc trừ

Đối với phép toán cộng và trừ số có dấu, phần mềm có thể xét bit này để kiểm tra

kết quả có vượt quá giới hạn hay không Khi cộng số không dấu ta không quan tâm

đến bit này Như vậy kết quả của phép tính cộng hay trừ lớn hơn 127 hoặc nhỏ hơn

–128 sẽ set cờ tràn Ví dụ OV sẽ set sau phép tính cộng sau:

C F

0 RS1 RS0

O

V

P

D7h D6h D5h D4h D3h

D2h D1h D0h

Cờ nhớ Cờ nhớ phụ Cờ Zero Chọn thanh ghi dự trữ 1 Chọn thanh ghi dự trữ 2 00=bank0, địa chỉ 00h-07h 01=bank1, địa chỉ 08h-0Fh 10=bank2, địa chỉ 10h-17h 11=bank3, địa chỉ 18h-1Fh Cờ tràn

Dự trữ Cờ chẵn lẽ

Bảng 4.3 Thanh ghi PSW

* Bit parity:

Bit Parity được tự động set hoặc xóa trong mỗi chu kỳ máy để tạo nên parity chẵn đối với thanh ghi tích luỹ Số bit 1 trong thanh ghi ACC cộng với P luôn

Ngày đăng: 24/04/2013, 15:04

HÌNH ẢNH LIÊN QUAN

Hình 2.3 Các ngõ vào, ra chính của bộ ADC - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.3 Các ngõ vào, ra chính của bộ ADC (Trang 8)
Hỡnh 2.3 Cỏc ngừ vào, ra chớnh của bộ ADC - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
nh 2.3 Cỏc ngừ vào, ra chớnh của bộ ADC (Trang 8)
Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang (Trang 9)
Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang (Trang 9)
Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính (Trang 10)
Hình 2.8 ADC xấp xỉ liên tiếp - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.8 ADC xấp xỉ liên tiếp (Trang 11)
Hỡnh 2.8 ADC xaỏp xổ lieõn tieỏp - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
nh 2.8 ADC xaỏp xổ lieõn tieỏp (Trang 11)
Hình 2.9 Đồ thị dạng sóng của mạch - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.9 Đồ thị dạng sóng của mạch (Trang 12)
Hình 2.9   Đồ thị dạng sóng của mạch - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.9 Đồ thị dạng sóng của mạch (Trang 12)
Hình 2.11 Sơ đồ khối ADC tích phân hai độ dốc - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.11 Sơ đồ khối ADC tích phân hai độ dốc (Trang 13)
Hình 2.11 Sơ đồ khối ADC tích phân hai độ dốc - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.11 Sơ đồ khối ADC tích phân hai độ dốc (Trang 13)
Hình 2.14 Sơ đồ khối AD song song - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.14 Sơ đồ khối AD song song (Trang 16)
Hình 2.14   Sơ đồ khối AD song song - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 2.14 Sơ đồ khối AD song song (Trang 16)
Hình 3.1 Cấu trúc khối của 8255 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 3.1 Cấu trúc khối của 8255 (Trang 20)
Hình 3.1 Caáu truùc khoái cuûa 8255 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 3.1 Caáu truùc khoái cuûa 8255 (Trang 20)
Hình 3.3 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 3.3 (Trang 23)
Hình 3.2 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 3.2 (Trang 23)
Hình 3.6 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 3.6 (Trang 28)
Bảng 4.1 So sánh các IC của họ Msc-51TM - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.1 So sánh các IC của họ Msc-51TM (Trang 31)
Bảng 4.1 So sánh các IC của họ Msc-51 TM - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.1 So sánh các IC của họ Msc-51 TM (Trang 31)
Bảng 4.2 Chức năng của các chân điều khiển - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.2 Chức năng của các chân điều khiển (Trang 35)
Bảng 4.2 Chức năng của các chân điều khiển - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.2 Chức năng của các chân điều khiển (Trang 35)
Hình 4.3 Sơ đồ mạch port - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.3 Sơ đồ mạch port (Trang 36)
Hình 4.3  Sơ đồ mạch port - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.3 Sơ đồ mạch port (Trang 36)
Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các vùng nhớ được mô tả dưới đây.  - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các vùng nhớ được mô tả dưới đây. (Trang 37)
Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các vùng nhớ được  mô tả dưới đây. - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các vùng nhớ được mô tả dưới đây (Trang 37)
Bảng 4.3 Thanh ghi PSW - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.3 Thanh ghi PSW (Trang 40)
Bảng 4.3   Thanh ghi PSW - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.3 Thanh ghi PSW (Trang 40)
Bảng 4.4 Tóm tắt thanh ghi PCON - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.4 Tóm tắt thanh ghi PCON (Trang 44)
Bảng 4.4   Tóm tắt thanh ghi PCON - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.4 Tóm tắt thanh ghi PCON (Trang 44)
Hình 4.9 Mạch tạo nên sự chồng lắp hai vùng nhớ - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.9 Mạch tạo nên sự chồng lắp hai vùng nhớ (Trang 48)
Hình 4.9 Mạch tạo nên sự chồng lắp hai vùng nhớ - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Hình 4.9 Mạch tạo nên sự chồng lắp hai vùng nhớ (Trang 48)
Bảng 4.5 Giá trị các thanh sau khi reset hệ thống - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng 4.5 Giá trị các thanh sau khi reset hệ thống (Trang 49)
 Kít vi điều khiển có tất cả là 26 phím nhấn như hình 1 được chia thành các nhóm như sau:  - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
t vi điều khiển có tất cả là 26 phím nhấn như hình 1 được chia thành các nhóm như sau: (Trang 60)
7 LED6 LED5 LED4 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
7 LED6 LED5 LED4 (Trang 64)
Bảng đồ nhớ của 2 IC 8255 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
ng đồ nhớ của 2 IC 8255 (Trang 64)
Bảng đồ nhớ của 2 IC 8255 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
ng đồ nhớ của 2 IC 8255 (Trang 64)
7 LED6 LED5 LED4 - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
7 LED6 LED5 LED4 (Trang 66)
* Chú ý: nếu muốn xóa hết màn hình 8 led thì gởi 8 byte 00h liên tiếp ra A000h.  - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
h ú ý: nếu muốn xóa hết màn hình 8 led thì gởi 8 byte 00h liên tiếp ra A000h. (Trang 66)
Bảng mã các phím số: - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng m ã các phím số: (Trang 67)
Bảng mã các phím số: - Ứng dụng Kit 8051 dùng để chuyển đổi A/D và D/A
Bảng m ã các phím số: (Trang 67)

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