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

Đồ Án Đo Lường Và Điều Khiển Bằng Máy Tính

17 586 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 17
Dung lượng 362 KB

Nội dung

Việc truyền dữ liệu qua cổng RS 232 được tiến hành theo cỏch nối tiếp, nghĩa là cỏc bớt dữ liệu được gửi đi nối tiếp với nhau trờn một đường dẫn.. Sự trao đổi của cỏc đường dẫn dữ liệu

Trang 1

đồ án môn học: đo lờng và điều khiển bằng máy tính 1

đề tài:

Thiết kế đồng hồ hiển thị thời gian thực dùng LED 7 thanh ghép nối với máy tính qua công nối tiếp

Giáo viên hớng dẫn: vũ thị thu hơng

Nhóm SV thực hiện : Nguyễn Văn Đơng

Đặng Minh Chỉnh

Hoàng Mạnh Toàn

Thiết kế đồng hồ điện tử hiển thị thời gian thực dùng LED 7 thanh ghép nối qua cổng nối tiếp

Trang 2

đồ án môn học: đo lờng và điều khiển bằng máy tính 2

CHƯƠNG 1: TỔNG QUAN PHẦN CỨNG

1 Cổng nối tiếp

Cổng nối tiếp RS 232 là một loại giao diện phổ biến, rộng rói nhất Nú cũn cú tờn gọi khỏc là cổng COM 1, COM 2 để tự do cho cỏc ứng dụng khỏc nhau Giống như cổng song song, cổng nối tiếp RS 232 cũng được sử dụng rất thuận tiện trong việc ghộp nối mỏy tớnh với cỏc thiết bị ngoại vi Việc truyền

dữ liệu qua cổng RS 232 được tiến hành theo cỏch nối tiếp, nghĩa là cỏc bớt dữ liệu được gửi đi nối tiếp với nhau trờn một đường dẫn Loại đườn g truyền này

cú khả năng dựng cho những khoảng cỏch lớn hơn, bởi vỡ khả năng gõy nhiễu

là nhỏ đỏng kể hơn là khi dựng một cổng song song

1.1 Cấu trỳc cổng nối tiếp

Sơ đồ chõn phớch cắm RS232

í nghĩa cỏc chõn tớn hiệu như sau:

Mức tớn hiệu trờn cỏc chõn của cổng nối tiếp thường nằm trong khoảng -12V đến +-12V, cỏc bit dữ liệu được đảo ngược lại Mức điện ỏp ở mức logic 1 nằm trong khoảng -3V và -12V và mức logic 0 nằm trong khoảng từ +3V và +12V Trạng thỏi tĩnh trờn đường dẫn cú mức điện ỏp -12V

Thiết kế đồng hồ điện tử hiển thị thời gian thực dùng LED 7 thanh ghép nối qua cổng nối tiếp

Trang 3

đồ án môn học: đo lờng và điều khiển bằng máy tính 3

Bằng tốc độ baud, ta thiết lập tốc độ truyền dữ liệu cỏc giỏ trị thụng thường là

300, 600, 1200, 2400, 4800, 9600, 19200 baud.( Ký hiệu baud là số lượng bit truyền trong 1s)

Một vấn đề nữa cần quan tõm là khuụn mẫu (Format) truyền dữ liệu cần phải được thiết lập như nhau cả bờn gửi cũng như bờn nhận cỏc thụng số truyền cú thể được thiết lập trờn mỏy tớnh bằng cỏc cõu lệnh trờn DOS Ngày nay, Windows cũng cú cỏc chương trỡnh hỗ trợ, khi đú cỏc thụng số truyền dữ liệu như: tốc độ baud, số bit dữ liệu, số bit dừng, bit chẵn lẻ (parity) cú thể được thiết lập một cỏch rất đơn giản hơn

1.2 Sự trao đổi của cỏc đường dẫn dữ liệu

Cũng như ở cổng song song, cỏc đường dẫn tớn hiệu riờng biệt cũng cho phộp trao đổi qua lại cỏc địa chỉ trong mỏy tớnh, trong trường hợp này, người ta thường sử dụng những vi mạch cú độ tớch hợp cao để cú thể hợp nhất nhiều chức năng trờn 1 chip

Ở mỏy tớnh PC thường cú một bộ thu/ phỏt khụng đồng bộ vạn năng (UART)

để điều khiển sự trao đổi thụng tin giữa mỏy tớnh và cỏc thiết bị ngoại vi, phổ biến nhất là vi mạch 8250 của hóng NSC Bộ UART này cú 10 thanh ghi để điều khiển tất cả chức năng của việc nhập vào, xuất ra dữ liệu theo cỏch nối tiếp Chi tiết về từng thanh ghi đú như sau:

a Thanh ghi điều khiển Modem (Địa chỉ cơ sở + 4):

(LOOP) (OUT2)D3 (OUT1)D2 (RTS)D1 (DTR)D0 D0 =1 đưa DTR =0

D0 =0 đưa DTR =1

D1 =1 đưa RTS =0

D1 =0 đưa RTS =1

OUT1 và OUT2 điều khiển đầu ra phụ

b Thanh ghi trạng thỏi Modem (Địa chỉ cơ sở + 6):

Thanh ghi này cú chức năng thụng bỏo về trạng thỏi cỏc đường dẫn bắt tay Điều chỳ ý ở thanh ghi này là cú 3 bit D4, D5, D6, đõy chớnh là lối vào của cỏc đường dẫn CTS, DSR và R1 đó được đảo

c Thanh ghi điều khiển đường truyền (Địa chỉ cơ sở + 3):

- C1, C0: Đặt số bit trong mỗi từ:

C1C0 = 00- 5 bit

C1C0 = 01- 6 bit

C1C0 = 10- 7 bit

C1C0 = 11- 8 bit

- C2: cỏc bit dừng:

C2 =0: 1 bit dừng

C2= 1: 1,5 bit dừng

- C3: Bit parity

C3 = 0: Khụng kiểm tra chẵn lẻ

C3 = 1: Cú kiểm tra chẵn lẻ

Thiết kế đồng hồ điện tử hiển thị thời gian thực dùng LED 7 thanh ghép nối qua cổng nối tiếp

Trang 4

- C4: Loại parity

C4 = 0: Parity lẻ (kiểm tra tổng số bit 1 là lẻ)

C4 = 1: Parity chẵn (kiểm tra tổng số bit 1 là chẵn)

- C5: Stick bit (Thường không sử dụng)

C5 = 0: Không có stick bit

C5 = 1: Stick bit

- C6: Đặt break (bit nghỉ dừng)

C6 = 0: Normal Output- bình thường

C6 = 1: Gửi 1 break- dừng

-C7 (DLAB- Division Latch Access Bit)

C7 = 1:

Cho phép truy nhập thanh ghi chứa số chia tốc độ baud/ byte thấp (Địa chỉ 3F8)

Cho phép truy nhập thanh ghi chứa số chia tốc độ baud/ byte cao (Địa chỉ 3F9)

C7 = 0:

Cho phép truy nhập thanh ghi đệm đọc/ viết ( Địa chỉ 3F8)

Cho phép truy nhập thanh ghi cho phép ngắt (Địa chỉ 3F9)

d Thanh ghi trạng thái đường truyền (Địa chỉ cơ sở + 5):

S0: Đặt thành một dữ liệu nhận được

S1: Tín hiệu làm dừng được phát hiện

S2: Lỗi chẵn lẻ

S3: Lỗi khung truyền

S4: Lỗi tràn

S5: Đặt thành 1 ký tự được nạp vào bộ đệm truyền

S6: Đặt thành một bộ đệm truyền trống rỗng

S7 = 0

e Thanh ghi cho phép ngắt (Địa chỉ cơ sở +1):

D0 = 1: Cho phép ngắt khi nhận 1 ký tự

D1 = 1: Cho phép ngắt khi bộ đệm truyền rỗng

D2 = 1: Cho phép ngắt khi thay đổi trạng thái đường truyền

D3 = 1: Cho phép ngắt khi thay đổi trạng thái Modem

D4 = 0

D5 = 0

D6 = 0

D7 = 0

f Thanh ghi nhận dạng ngắt (Địa chỉ cơ sở + 2):

D7 = 0

D6 = 0

D5 = 0

D4 = 0

D3 = 0

Trang 5

đường nhận dữ liệu Đọc thanh ghitrạng thái

đường truyền

thanh ghi đệm

truyền rỗng

g Thanh ghi chứa số chia tốc độ baud (byte thấp - địa chỉ cơ sở):

Thanh ghi này gồm 8 bit, chứa phần thấp của số chia tốc độ baud Số chia tốc độ baud được tính theo công thức:

Số chia tốc độ baud = 1843200/(16x tốc độ baud cần thiết lập)

h Thanh ghi chứa số chia tốc độ baud ( byte cao- địa chỉ cơ sở + 1).

i Thanh ghi đệm đọc/ viết (địa chỉ sơ sở).

2 Module vào ra 8 bit dùng cổng nối tiếp

Hạt nhân của Module này là vi mạch CDP 6402 Vi mạch này có thể đảm nhiệm chức năng như một bộ thu phát không đồng bộ vạn năng (UART) Trong mạch thực tế, nhóm thực hiện đã sử dụng IC AT89S52 (trong cấu trúc IC này

có bộ UART) Ngoài ra, phần cứng của Module còn sử dụng vi mạch MAX

232 làm nhiệm vụ chuyển đổi mức từ TTL sang RS232 và ngược lại Chi tiết về

vi mạch 89S52 và MAX232 như trình bày dưới đây

2.1 Vi mạch MAX232

Vcc

+

+

C2

T2 IIN

10

R2 OUT

9

15

C3

+ T1 OUT

14

T2 OUT

7

8051 P3.1 TxD 11 P3.0 RxD 10

12

14 2 5

13 3

DB - 9

Sơ đồ bên trong MAX232 và sơ đồ ghép nối MAX232 với IC họ 8051.

MAX232 có hai bộ điều khiển đường truyền là nhận và truyền dữ liệu như hình trên Các bộ điều khiển đường truyền dùng cho TxD được gọi là T1 và T2 Trong nhiều ứng dụng thì chỉ có một cặp được dùng Ví dụ T1 và R1 được dùng với nhau cho trường hợp TxD và RxD của 8051, còn cặp R2 và T2 thì không dùng đến Bộ điều khiển T1 của MAX232 có gắn T1in và T1 out trên các chân

Trang 6

số 11 và 14 tương ứng Chân T1in là ở phía TTL và được nối tới chân RxD của

bộ điều khiển, còn T1out là ở phía RS232 được nối tới chân RxD của đầu nối

DB của RS232 Bộ điều khiển đường R1 cũng có gán R1in và R1out trên các chân số 13 và 12 tương ứng Chân R1in (chân số 13) là ở phía RS232 được nối tới chân TxD đầu nối DB của RS232 và chân R1out (chân số 12) là ở phía TTL

và được nối tới chân RxD của bộ vi điều khiển Nối ghép modem rỗng là nối ghép mà chân TxD bên phát được nối với RxD của bên thu và ngược lại

MAX 232 cần có 4 tụ điện giá trị từ 1 đến 22 uF.Giá trị thường dùng là 22uF

2.2 Vi mạch AT89S52

2.2.1 Chức năng các khối của AT89S52

Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:

-CPU bao gồm:

+Thanh ghi tích lũy A

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

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

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

+Bốn băng thanh ghi

+Con trỏ ngăn xếp

-Bộ nhớ chương trình (Bộ nhớ Rom) gồm 8 Kb Flash.

-Bộ nhớ dữ liệu (Bộ nhớ Ram) gồm 256 bytes.

-Bộ UART : chức năng truyền nhận nối tiếp Nhờ khối này, AT89S52 có thể giao

tiếp với cổng COM máy tính

-Ba bộ Timer/ Counter 16 bit thực hiện các chức năng định thì và đếm sự kiện -WDT (Watch Dog Timer).

-Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong.

-Bộ lập trình (ghi chương trình lên Flash Rom) cho phép người sử dụng có thể

nạp các chương trình cho chip mà không cần các bộ nạp chuyên dụng

-Bộ chia tần số với hệ số chia là 12.

-Bốn Port xuất nhập với 32 chân.

Trang 7

2.2.2 Sơ đồ và chức năng các chân AT89S52

- Port 0 (P0.0- P0.7):

Port 0 gồm 8 chân, ngoài chức năng xuất nhập ra, nó còn là Bus đa hợp dữ liệu

và địa chỉ (AD0- AD7), chức năng này sẽ được sử dụng khi AT89S52 giao tiếp với các thiết bị ngoài có cùng kiến trúc bus

- Port 1 (P1.0- P1.7):

Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập, cũng như các Port khác, Port1 có thể xuất nhập theo bit và theo byte

Riêng dòng 89Sxx, 4 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2

- Port 2:

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

- Port 3:

Mỗi một chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau:

Trang 8

- PSEN (Program Store Enable):

Chức năng của chân này là điều khiển để cho phép bộ nhớ chương trình mở rộng

và thường được kết nối đến chân /OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh

PSEN sẽ ở mức thấp trong thời gian đọc 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 bộ vi điều khiển để giải mã lệnh Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức thụ động (mức cao)

- ALE (Address Latch Enable):

ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoà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àm nguồn xung nhịp cho các hệ thống Nếu xung thạch anh dùng cho chip là 12 MHz thì ALE có tần số 2 MHz

- EA (External Access):

EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao,

bộ vi điều khiển thi hành chương trình từ ROM nội Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng

- RST (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 bộ vi điều khiển được tải những giá trị thích hợp để khởi động hệ thống

- XTAL1, XTAL2:

AT89S52 có một bộ dao động trên chip, nó thường được nối với bộ dao động thạch anh có tần số lớn nhất là 33 MHz, thông thường là 12MHz

- Vcc, GND.

2.2.3 Hoạt động định thời

a.Giới thiệu:

AT89S52 có 3 bộ định thời (Timer) 16 bit, mỗi bộ định thời có 4 chế độ hoạt động Người ta sử dụng các bộ định thời để: Định khoảng thời gian, đếm sự kiện, tạo tốc độ baud cho port nối tiếp trong

b Các thanh ghi của bộ định thời

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

+ Thanh ghi chế độ Timer (TMOD):

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

và Timer 1

cao

C/T =1: bộ đếm sự kiện

C/T =0: bộ định khoảng thời gian

của Timer 1

của Timer 1

Trang 9

2 C/T 0 Bit chọn Counter/Timer của Timer 0.

M1M0 =00: chế độ 0: Timer 13 bit

M1M0 =01: chế độ 1: Timer 16 bit

M1M0 =10: chế độ 2: tự động nạp lại 8 bit

M1M0 =11: chế độ 3: tách Timer

+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

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 vụ ngắt

mềm cho Timer chạy / dừng

+ Các thanh ghi chứa giá trị của các bộ định thời:

Các Timer 0 và Timer 1 đều là các Timer 16 bit, mỗi Timer có 2 thanh ghi 8 bit dùng để chứa giá trị khởi tạo hoặc giá trị hiện thời của các Timer Cụ thể, Timer

0 có TH0 và TL0; Timer 1 có TH1 và TL1 Điểm cần chú ý là các thanh ghi này không định địa chỉ bit

Timer 0 Timer 1

2.2.4 Port nối tiếp

a Giới thiệu:

AT89S52 có một Port nối tiếp trong chip có thể hoạt động ở nhiều chế độ khác nhau, nhiều tốc độ khác nhau Chức năng chủ yếu của Port nối tiếp là thực hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song song với dữ liệu nhập để có thể giao tiếp với máy tính qua cổng nối tiếp hoặc các thiết bịn tương tự

Port nối tiếp có thể hoạt động song công ( thu và phát đồng thời) và đệm lúc thu cho phép một ký tự sẽ được thu và được giữ trong khi ký tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu đầy đủ thì dữ liệu

sẽ không bị mất

b Các thanh ghi của Port nối tiếp

Có 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

+ Thanh ghi điều khiển Port nối tiếp (SCON- Serial Controller):

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

Trang 10

địa chỉ bit, chứa các bit trạng thái và các bit điều khiển liên quan tới port nối tiếp Các bit điều khiển đặt chế độ hoạt động cho Port nối tiếp, các bit trạng thái báo cáo kết thúc việc phát hoặc thu một 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

chế độ cho port nối tiếp

chế độ cho port nối tiếp

00:chế độ 0 01:chế độ 1 10:chế độ 2 11:chế độ 3

tiếp Bit này cho phép truyền thông đa xử lý

được đặt bằng 1 để cho phép nhận các ký tự

chế độ UART 9 bit

độ UART 9 bit

đặt bằng 1 khi kết thúc việc truyền 1 ký tự, TI được xóa bằng phần mềm

bằng 1 khi kết thúc việc nhận 1 ký tự, RI được xóa bằng phần mềm

Trang 11

Trước khi sử dụng Port nối tiếp phải khởi động SCON để chọn đúng chế độ.

+ Thanh ghi đệm truyền nhận ở Port nối tiếp (SBUF- Serial Buffer):

Thanh ghi này có chức năng đệm các ký tự khi chúng được nhận về từ port nối tiếp hoặc được truyền đi từ port nối tiếp, việc truyền nhận qua port nối tiếp thực chất là việc truy xuất thanh ghi này

c Trao đổi dữ liệu qua port nối tiếp

Thao tác trao đổi dữ liệu qua port nối tiếp bao gồm 3 thao tác chính sau:

- Khởi tạo cổng nối tiếp: Thao tác này bao gồm các việc như:

+ Truy xuất SCON để đặt các thông số như chế độ hoạt động, cho phép thu + Thiết lập hoặc xóa bit SMOD của thanh ghi PCON để đặt hệ số chia của tốc

độ baud

+ Truy xuất các thanh ghi của các bộ Timer 1 và Timer 2 để đặt tốc độ baud cho port nối tiếp (chỉ với chế độ 1 và 3)

- Kiểm tra cờ TI (khi truyền) và kiểm tra cờ RI (khi nhận)

- Ghi/ đọc byte dữ liệu ở SBUF

2.2.5 Xử lý ngắt

AT89S52 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 do bộ Timer 0

- Ngắt do bộ Timer 1

- Ngắt do bộ Timer 2

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

6 nguồn ngắt này được xóa khi Reset và được đặt riêng bằng phần mềm bởi các bit trong các thanh ghi cho phép ngắt (IE), thanh ghi ưu tiên ngắt (IP)

- Thanh ghi cho phép ngắt IE (Interrupt Enable):

- Thanh ghi ưu tiên ngắt (IP):

Mỗi nguồn ngắt được lập trình riêng để đặt vào một trong hai mức ưu tiên qua thanh ghi chức năng đặc biệt được địa chỉ bit IP (Interrupt Priority: ưu tiên ngắt)

ở địa chỉ B8H

Ngày đăng: 16/05/2016, 21:00

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w