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

Đề tài thiết kế Voltmet điện tử sử dụng cổng nối tiếp

18 341 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 18
Dung lượng 873,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

+ Tiết kiệm đờng dẫn+ Có khả năng truyền đi xa Nhợc điểm của truyền tin nối tiếp: + Tốc độ chậm hơn các thiết bị thờng phải có khối chuyển đổi nối tiếp song song,và ngợc lại khi sử dụng

Trang 1

GIớI THIệU CHUNG Về GHéP NốI MáY TíNH

Sự phát triển của ghép nối máy tính đã mở rộng đáng kể các lĩnh vực máy tính, đặc biệt là đo lờng và điều khiển thực tế cho thấy trong các công

ty hay xí nghiệp đã ứng dụng kỹ thuật ghép nối máy tính rất nhiều,ví dụ:

điều khiển CNC, dây chuyền công nghệ sản xuất xi măng, điều khiển các thiết bị từ xa

Máy tính có thể giao tiếp với các thiết bị khác nhau nhờ những phần cứng và chơng trình do ngời sử dụng viết, ngôn ngữ có thể là Pascal, C++, Assembler, VisualBasic

Có khả năng ghép nối máy tính có tính chính xác cao, thời gian thu nhập số liệu ngắn và quan trọng là mức tự động hoá trong quá trình thu thập

số liệu và xử lý kết quả

Đề tài “ Thiết kế Voltmet điện tử sử dụng cổng nối tiếp” đã đợc

chúng em lựa chọn và đa vào bài tập đồ án môn ghép nối nhằm tìm hiểu sâu sắc và thực tế hơn về cấu trúc, lý thuyết môn học

Nhóm chúng em đã tìm hiểu và thực hiện đề tài này, rất mong đợc sự góp ý và chia sẻ hơn về kiến thức bộ môn từ phía thầy cô cùng các bạn

Nhóm sinh viên thực hiện

Đoàn Đình Cả

Trần Thị Tân Trơng Thị Hơng

Phần I GHéP NốI TRUYềN TIN NốI TIếP

I Khái niệm về truyền tin nối tiếp.

1 Khái niệm

Truyền tin nối tiếp là phơng thức truyền tin trong đó các bit mang thông tin đợc truyền kế tiếp nhau trên một đờng dẫn vật lý Tại một thời

điểm phía bên truyền và bên nhận chỉ có thể truyền (hoặc nhận) 1bit

Trang 2

+ Tiết kiệm đờng dẫn

+ Có khả năng truyền đi xa

Nhợc điểm của truyền tin nối tiếp:

+ Tốc độ chậm hơn các thiết bị thờng phải có khối chuyển đổi nối tiếp song song,và ngợc lại khi sử dụng phơng pháp này để trao đổi tin

2 Phơng thức truyền tin nối tiếp:

Có 3 phơng thức truyền tin nối tiếp:

+ Phơng thức đồng bộ: các byte chứa các bit thông tin đợc truyền liên tiếp trên đờng truyền và chỉ đợc ngăn cách(phân biệt) nhau bằng bit đồng

bộ khung(SYNC)

+ Phơng thức không đồng bộ: các byte chứa các bit thông tin đợc chứa trong một khung Một khung đợc bắt đầu bằng một bit start, tiếp theo là các bit mang thông tin, kế tiếp là các bit kiểm tra chẵn lẻ và kết thúc là 1 bit stop Khoảng cách giữa các khung là các bit dừng bất kì, khi đó đờng truyền đợc lấy lên mức cao

+ Phơng pháp lai: Đây là phơng pháp kết hợp của hai phơng pháp trên, trong đó các bit trong một khung đợc truyền theo phơng thức không đồng

bộ còn các byte đợc truyền theo phơng thức đồng bộ

ii cổng nối tiếp

1 Giới thiệu

Cổng nối tiếp RS232 là một giao diện phổ biến rộng rãi nhất, ta còn gọi là cổng COM1,COM2, để tự do trao đổi các ứng dụng khác nhau Giống nh cổng máy in, cổn nối tiếp RS232 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 RS232 đợc tiến hành theo cách nối tiếp, điều này có nghĩa là các bit dữ liệu đợc gửi nối tiếp trên một đờng dẫn

2 Cấu trúc cổng nối tiếp

DIP 9

(loại 9

chân)

DIP25

(loại 25 chân)

1

2

3

4

5

6

7

8

9

8 3 2 20 7 6 4 5 22

rcd rxd txd dtr gnd dsr rts ri

Lối vào Lối vào Lối ra Lối ra Lối vào Lối ra Lối vào Lối vào

Data Crrier Detect Receive Data Transmit Data Data Terminal Ready Nối đất

Data Set Ready Request to send Clear to send Ring indicator

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->+12v

Các bít dữ liệu đợc đảo ngợc lại Mức điện áp ở mức logic 1:

-12v đến -3v mức điện áp ở mức điện áp -12v bằng tốc độ baund 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

3 Địa chỉ các cổng sau:

COM1: địa chỉ cơ bản là: 3F8H

Trang 3

COM2: địa chỉ cơ bản là:2F8H

COM3: địa chỉ cơ bản là:3E8H

COM4: địa chỉ cơ bản là:2E8H

Sự trao đổi các đờng dẫn tín hiệu:

Trên máy tính các vi mạch đảm bảo truyền (nhận) dữ liệu thông qua cổng nối tiếp,vi mạch đó gọi là UART (bộ truyền nhận nối tiếp không đồng bộ).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 hoặc các thiết bị tiếp theo, nh 16C550, bộ UART có 10 thanh ghi để điều khiển tất cả cá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

4 Các thanh ghi điều khiển

a)Thanh ghi điều khiển Modem(3F8 +4)

D0=0:đa DTR=1

D1=1:đa RTS=0

D1=0:đa RTS=1

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

b)Thanh ghi trạng thái Modem(3F8 +6)

Thanh ghi này nhiệm vụ 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à:D4,D5,D6 chính là lối vào của các đờng dẫn CTS,DSR,RI đã đợc đảo

c)Thanh ghi điều khiển đờng truyền(3F8 +3)

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

00: 5 bit

01: 6 bit

10: 7 bit

11: 8 bit

C2: các bit dừng

0:1 bit dừng

1: 1,5 bit dừng

C3: bit kiểm tra chẵn lẻ

0: không kiểm tra

1: có kiểm tra

C4: loại chẵn lẻ

0: bit lẻ

1: bit chẵn

C5: Stick bit

0: không có Stick bit

1: Stick bit

C6: đặt break

0: Normal output

1: gửi 1 break

C7(DLAB): bit phân chia truy nhập cho các thanh ghi cùng địa chỉ

Trang 4

d)Thanh ghi trạng thái đờng truyền (3F8+5)

S0=1: khi có 1 byte mới nhận đợc

S1=1: khi ký tự trớc không đợc đọc ký tụ mới đến sẽ xoá ký tự cũ trong

bộ đệm

S2=1: khi có lỗi chẵn lẻ

S3=1: khi có lỗi khung truyền

S4=1: khi có gián đoạn đờng truyền

S5=1: khi bộ truyền rỗng cổng nối tiếp có thể truyền nhận

S6=1: khi bộ đệm truyền rỗng

S7=0: không sử dụng

e)Thanh ghi cho phép ngắt(3F8+1)

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

D1=1: cho phép ngăt khi bộ nhận 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 (3F8+2)

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 số chia của tốc độ baud, số chia tốc đô Baud tính theo công thức:

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

h)Thanh ghi chứa số chia tốc độ baud(byte cao -3F8+1)

Trang 5

Phần II

giới thiệu các linh kiện

I AT89C51

- Là 1 sản phẩm của hãng ATMEL có 256 bytes RAM, 8Kbytes ROM, 32 chân vào ra, 2 bộ định thời, 6 nguồn ngắt và 1 cổng nối tiếp

- Kiểu bộ nhớ NV-RAM là kiểu bộ

nhớ mà có khả năng nạp chơng trình

vào ROM trên chip trong khi nó vẫn

ở trong hệ thống mà không phải lấy

ra,ngoài ra kiểu bộ nhớ này còn có

tính u việt cho phép thay đổi nội

dung ROM theo từng byte trong khi

bộ nhớ kiểu FLASH và EPROM

phải đợc xoá hết trớc khi lập trình

lại

-Vùng nhớ FLASH ROM có thể nạp

xoá khoảng 1000 lần

II IC MAX232:(dùng giao tiếp

với VĐK và máy tính)

Dùng để thực hiện giao tiếp với vi

điều khiển,ta phải chuyển mức logic

từ TTL=> 232 và ngợc lại

Tuy nhiên khi sử dụng mạch chuyển mức logic dùng vi mạch(232) thì phải dùng chung GND giữa máy tính và vi mạch

Điều này dẫn đến một trờng hợp có khả năng làm hỏng cổng nối tiếp khi xảy ra chập mạch ở mạch ngoài.Do đó,ta có thể dùng thêm opto 4N335 để cách ly về điện

Trang 6

IC Max232

III ADC0804

Chip ADC804 là bộ chuyển đổi tơng tự số thuộc họ ADC800 của hãng National Semiconductor Chip này cũng đợc nhiều hãng khác sản xuất Chip có điện áp nuôi +5V và độ phân giải 8 bit Ngoài độ phân giải thì thời gian chuyển đổi cũng là một tham số quan trọng khi đánh giá bộ ADC Thời gian chuyển đổi đợc định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tơng tự thành một số nhị phân Đối với ADC0804 thời gian chuyển đổi phụ thuộc vào tần số đồng hồ đợc cấp tới chân CLK và CLK IN và không bé hơn 110s

Trang 7

Các chân của ADC0804 có chức năng nh sau:

a) CS (Chip Select) - chọn chip

Là chân chọn chip, đầu vào tích cực mức thấp đợc sử dụng để kích hoạt chip ADC804 Để truy cập ADC0804 thì chân này phải ở mức thấp

b) RD (Read) - đọc

Đây là một tín hiệu vào, “tích cực mức thấp” Các bộ ADC chuyển đổi đầu

vào tơng tự thành số nhị phân và giữ nó ở một thanh ghi trong RD đợc sử dụng để có dữ liệu đợc đã chuyển đổi tới đầu ra của ADC0804 Khi CS = 0 nếu có một xung cao-xuống-thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit đợc đa tới các chân dữ liệu D0 - D7 Chân RD còn đợc coi là cho phép

đọc

c) WR (Write) - ghi

Thực ra, tên chính xác là “Bắt đầu chuyển đổi” Đây là chân vào “tích cực

mức thấp” đợc dùng để báo cho ADC0804 bắt đầu quá trình chuyển đổi.

Nếu CS = 0 khi WR tạo ra xung cao-xuống-thấp thì bộ ADC0804 bắt đầu

thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đa đến chân CLK IN và CLK R Khi việc chuyển đổi dữ liệu đợc hoàn tất thì chân INTR đợc ADC0804 hạ xuống thấp

d) CLK IN và CLK R

CLK IN là chân vào, đợc nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài đợc sử dụng để tạo thời gian Tuy nhiên 0804 cũng có một bộ tạo xung đồng hồ trên chip Để dùng đồng hồ trong (cũng còn đợc gọi là đồng

hồ riêng) của 804 thì các chân CLK IN và CLK R đợc nối tới một tụ điện

và một điện trở nh chỉ ra ở hình 12.5 Trong trờng hợp này tần số đồng hồ

đợc xác định bằng biểu thức:

RC

f

1 , 1

1

Giá trị thông thờng của các đại lợng trên là R = 10k, C= 150pF và tần

số nhận đợc f = 606kHz, còn thời gian chuyển đổi sẽ là 110s

e) Ngắt INTR (Interrupt)

Trang 8

Ngắt hay còn gọi là “kết thúc việc chuyển đổi’ Đây là chân ra tích cực mức thấp Bình thờng, chân này ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu đợc chuyển đổi

đã sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao-xuống-thấp tới chân RD để đa dữ liệu ra

f) V in (+) và V in (-)

sẽ đợc chuyển đổi về dạng số

g) V CC

Là chân nguồn nuôi +5v Chân này còn đợc dùng làm điện áp tham chiếu

Chân 9 là điện áp đầu vào đợc dùng làm điện áp tham chiếu Nếu chân này

hở (không đợc nối) thì điện áp đầu vào tơng tự cho ADC804 nằm trong dải

các điện áp đầu vào có dải khác với 0 - 5V Ví dụ, nếu dải đầu vào tơng tự

Quan hệ điện áp V ref/2 với V in

Ghi chú: - VCC = 5V

* Khi V ref /2 hở thì đo đợc ở đó khoảng 2,5V

- Kích thớc bớc (độ phân dải) là sự thay đổi nhỏ nhất mà ADC có thể phân biệt đợc.

i) D0 - D7

D0 - D7 là các chân ra dữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp nhất LSB) Các chân này đợc đệm ba trạng thái và dữ liệu đã đợc chuyển

đổi chỉ đợc truy cập khi chân CS = 0 và chân RD đa xuống mức thấp Để tính điện áp đầu ra ta có thể sử dụng công thức sau:

buoc thuoc kich

V

out

tự và kích thớc bớc (độ phân dải) là sự thay đổi nhỏ nhất đợc tính bằng

Trang 9

Từ những trình bày trên, có thể tóm tắt các bớc khi ADC0804 thực hiện chuyển đổi dữ liệu là:

1 Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển

đổi

2 Duy trì kiểm tra chân INTR Nếu INTR xuống thấp thì việc chuyển đổi

đợc hoàn tất và có thể chuyển sang bớc tiếp theo Nếu INTR còn ở mức cao thì tiếp tục thăm dò cho đến khi nó xuống thấp

3 Sau khi chân INTR xuống thấp, bật CS = 0 và gửi một xung cao-xuống-thấp đến chân RD để nhận dữ liệu từ chip ADC0804

Phần III Sơ Đồ Mạch Nguyên lý

Trang 10

Sơ đồ mạch in

Đề tài: Voltmet điện tử sử dụng cổng nối tiếp Trang

U 3

A D C 0 8 0 4

+ I N 6

- I N 7

A G N D 8

G N D

1 0

D B 7 1 1

D B 6 1 2

D B 5 1 3

D B 4 1 4

D B 3 1 5

D B 2 1 6

D B 1 1 7

D B 0 1 8

C L K R

C L K I N 4

I N T R 5

C S 1

R D 2

W R 3

D 0

D 2

D 4

D 6

W R

R D

D 7

I N T R

R 2

1 0 K

C 8

1 5 0 p F

U 1

A T 8 9 C 5 1

R S T 9

X T A L 2

1 8 X T A L 1

1 9

P S E N 2 9

A L E / P R O G 3 0

E A / V P P

3 1

P 1 0 1

P 1 1 2

P 1 2 3

P 1 3 4

P 1 4 5

P 1 5 6

P 1 6 7

P 1 7 8

P 2 0 / A 8 2 1

P 2 1 / A 9 2 2

P 2 2 / A 1 0 2 3

P 2 3 / A 1 1 2 4

P 2 4 / A 1 2 2 5

P 2 5 / A 1 3 2 6

P 2 6 / A 1 4 2 7

P 2 7 / A 1 5 2 8

P 3 0 / R X D 1 0

P 3 1 / T X D 1 1

P 3 2 / I N T 0 1 2

P 3 3 / I N T 1 1 3

P 3 4 / T 0 1 4

P 3 5 / T 1 1 5

P 3 6 / W R 1 6

P 3 7 / R D 1 7

P 0 0 / A D 0

3 9

P 0 1 / A D 1

3 8

P 0 2 / A D 2

3 7

P 0 3 / A D 3

3 6

P 0 4 / A D 4

3 5

P 0 5 / A D 5

3 4

P 0 6 / A D 6

3 3

P 0 7 / A D 7

3 2

C 6

1 0 u F

C 7

1 0 u F

Y 1

1 1 0 5 9 2 M h z

C 1

3 3 P

C 2

3 3 P

V C C

V C C

S W 1

R E S E T

C 3

1 0 u F

R 1

1 0 K

V C C

U 2

M A X 2 3 2

C 1 + 1

C 1 -3

C 2 + 4

C 2 -5

V C C 1 6

G N D 1 5

V + 2

V - 6

R 1 O U T

1 2

R 2 O U T 9

T 1 I N

1 1

T 2 I N

1 0

R 1 I N

1 3 T 1 O U T R 2 I N 8

1 4

T 2 O U T 7

P 1

C O M 1

5 4 3 2 1

C 4

1 0 u F

C 5

1 0 u F

V C C

D 0

D 2

D 4

D 6

R 8

1 0 K R 91 0 K

R D

R X

T X

R X

T X

R 3

1 0 K

R 4

1 0 K

R 5

2 2 K

R 6

4 7 K

J 1

C O N 2

1

W R

J 2

C O N N J A C K P W R

3 1

I N T R

C 9

2 2 0 u F / 1 6 V C 1 01 0 4

S W 2

S W R O T A R Y 2 P - 3 W D 1

L E D

V C C

V I N

V I N

R 7

2 2 0

V C C

V C C

T 2 5 V

T 2 5 V

T 2 5 V

T 2 5 V

Trang 11

Giao diÖn ch¬ng tr×nh

Trang 12

LËp tr×nh

1 LËp tr×nh cho vi ®iÒu khiÓn

#include<reg52.h>

#include<stdio.h>

unsigned long x,volt;

sbit INTR_ADC = P3^3;

sbit WR_ADC = P3^4;

sbit RD_ADC = P3^5;

sbit t1 = P2^0;

Đề tài: Voltmet điện tử sử dụng cổng nối tiếp Trang

Trang 13

sbit t2 = P2^1;

//cac chuong trinh con

//tao tre ngan

void tre(unsigned char t)

{

unsigned char i;

for(i=0;i<t;i++);

}

//ghi so thuc

void ghisothuc(unsigned long number)

{

int j,n;

unsigned char M[4]; //khai bao mang de luu cac gia tri

j=0;

while(number!=0)

M[j] = number%10; //gan chu so hang dv, chuc, tram, nghin cho ca phan tu mang

number/= 10;

j++;

}

n=j-1; //sau cau lenh cuoi cung j da tang them 1 DV nua nen phai -1 de lay dung gia tri

for(j=n; j>=0; j ) //gui 5 phan tu cua mang ra

putchar(M[j]+ 0x30); //gui cac phan tu cua mang len may tinh

if(t1 == 0)

putchar('A');

if(t2 == 0)

putchar('B');

}

//////////////////////////////////////////

// chuong trinh chinh

void main()

{

unsigned long s;

unsigned int dem;

TR1=1;

RD_ADC = 0; //cho phep co the doc du lieu tu ADC moi luc WR_ADC = 1; //dat chan ADC o muc cao

Trang 14

INTR_ADC = 1; //dat INT o muc cao

while(1)

{

for (dem=0;dem<500;dem++) //doc du lieu tu ADC 500 lan

{

WR_ADC = 0;

tre(10);

WR_ADC = 1;

while (!INTR_ADC);

x=P1;

s=s+x;

}

x=s/500; //tinh trung binh cong cua 500 lan doc

dem=s=0; //xoa bien

if(t1 == 0) //neu thang do la 2.5V

{

volt =x*100*5/255; //nhan dien ap len 100 lan de phuc vu cho ham ghisothuc

}

if(t2 == 0) //neu thang do la 25V

{

volt =x*10*500/255; //nhan 10 lan vi da phan ap chia 10 lan

}

ghisothuc(volt);

}

}

2 LËp tr×nh giao diÖn

Option Explicit ' khai bao bien toan cuc

Dim x As String

Dim temp As Integer

Dim dienap As Single

Dim X1 As Integer

Dim Y1 As Integer

Dim counter1 As Integer

Dim array_x(10000) As Integer

Dim array_y(10000) As Integer

Dim ve As Boolean

Dim mo As Boolean

Const GWL_EXSTYLE = (-20)

Const WS_EX_LAYERED = &H80000

Const LWA_ALPHA = &H2

Private Declare Function GetWindowLong Lib "user32" Alias

"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Đề tài: Voltmet điện tử sử dụng cổng nối tiếp Trang

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

HÌNH ẢNH LIÊN QUAN

Sơ đồ mạch in - Đề tài thiết kế Voltmet điện tử sử dụng cổng nối tiếp
Sơ đồ m ạch in (Trang 10)

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