Tải bản đầy đủ (.docx) (29 trang)

Thiết Kế Chế Tạo Mạch Đo Và Hiển Thị Cường Độ Từ Trường Trên LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (767.62 KB, 29 trang )

ĐỒ ÁN TÍCH HỢP I
Tên đề tài: Thiết kế chế tạo mạch đo và hiển thị cường độ từ trường trên LCD
Giáo viên hướng dẫn:

Vũ Đình Đạt

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

Lớp

: Đ_ĐTK10.1

Khoá học: 2012 – 2016
Ngành đào tạo: Tự Động Hóa Công Nghiệp
Nội dung cần hoàn thành:
1. Thiết kế, tính toán và chế tạo mạch điện đo hiển thị cường độ từ trường trên

LCD.
2. Sản phẩm của đề tài phải đảm bảo kỹ thuật, mỹ thuật.
3. Quyển thuyết minh.

1


MỤC LỤC
PHẦN I. GIỚI THIỆU…………………………………………………………………5
1. Lời nói đầu………………………...…………………………………..................5
2. Giới thiệu chung về mạch……………………...………………………………...6
PHẦN II. NỘI DUNG…………………………………………………………………7
Chương I. Các linh kiện sử dụng ………………………..………………………..….7
1.1. Giới thiệu về LCD 16TC2A………………………………………...………….7


1.2. Giới thiệu về PIC 16F877A……………………………………………..….…10
1.3. Cảm biến từ trường A1302………………………………………………...….14
Chương II. Thiết kế tính toán và chế tạo………………………………….…….......17
2.1. Thiết kế sơ đồ mạch……………………..……………………………….……17
2.1.1. Sơ đồ khối mạch………………………………..…………………………...17
2.1.2. Khối nguồn………………………………………..……………………..….17
2.1.3. Khối cảm biến……………………………………………………………….17
2.1.4. Khối hiển thị…………………………………………………………...……17
2.1.5. Khối điều khiển………….……... ………………………………..…………18
2.1.6. Sơ đồ nguyên lý của mạch……………………………………..……………20
2.1.7. Sơ đồ board mạch……………………………………………………….…..22
2.1.8. Tính toán cường độ từ trường…………………………………………...…..22
2.2. Chương trình……………………………………………………….………….23
2.2.1. Lưu đồ thuật toán……………………………………………………………23
2.2.2. Thư viện LCD…………………………………………………………….…23
2.2.3. Chương trình điều khiển…………………………………………….....……26

2


Chương III. Kiểm thử sản phẩm…...………………………………...…...……….…27
PHẦN III. KẾT LUẬN………………………………………………………….……28
3.1. Ưu điểm…………………………………………………………………………28
3.2. Nhược điểm……………………………………………………………………..28
3.3. Lời cảm ơn……………………………………………………………........……29

3


PHẦN I. GIỚI THIỆU

LỜI NÓI ĐẦU
Trong những thập niên gần đây công nghiệp hoá hiện đại hoá ngày càng phát
triển mạnh mẽ. Kỹ thuật điện tử đã có những bước phát triển mạnh đặc biệt là trong
kỹ thuật điều khiển tự động, kỹ thuật vi điều khiển.
Ở nước ta hiện nay, việc lập trình ghép nối máy tính sử dụng vi điều khiển đã
và đang là công cụ được ứng dụng rộng rãi trong lĩnh vực tự động hoá. Nó phát triển
nhanh chóng, đã mang lại những thay đổi to lớn trong công nghệ cũng như trong đời
sống hàng ngày.
Sau một thời gian tìm hiểu và nghiên cứu, cùng với những lời đóng góp ý kiến
chân thành từ các Thầy(Cô) giáo cùng các bạn sinh viên, đặc biệt được sự hướng dẫn
nhiệt tình của thầy Vũ Đình Đạt nhóm đồ án chúng em đã quyết định chọn và thực
hiện đề tài:
“Thiết kế chế tạo mạch đo và hiển thị cường độ từ trường trên LCD”
Tuy nhiên, để có được sản phẩm có tính ổn định cao, đảm bảo về chất lượng là
tương đối khó khăn. Vì thời gian để hoàn thành đồ án này cũng có hạn, và tầm hiểu
biết của nhóm thực hiện vẫn còn hạn chế nên đề tài khó tránh khỏi những thiếu sót,
những khuyết điểm không mong muốn. Nhóm đồ án chúng em rất mong có được
những ý kiến đóng góp quý báu, chân thành của quý thầy cô cùng các bạn sinh viên
để đề tài này được hoàn thiện hơn.

4


2. GIỚI THIỆU CHUNG VỀ MẠCH
2.1. Chức năng của mạch:
“ Mạch đo và hiển thị cường độ từ trường trên LCD" có các chức năng sau:


Đo cường độ từ trường .




Hiển thị nhiệt độ trên màn hình LCD.

2.2. Các thành phần chính của “ mạch đo và hiển thị cường độ từ trường “.
1: LCD 16x2_R2.
2: Cảm biến từ trường A1302.
3: Vi điều khiển PIC 16F877A.
4: Các nút nhấn,điện trở, tụ điện, …..
2.3. Yêu cầu thiết kế:


Mạch hoạt động đúng chức năng của đề tài.



Mạch hoạt động có độ ổn định và chính xác cao.



Thiết kế gọn nhẹ.



Giá thành phù hợp.

5


PHẦN II. NỘI DUNG

CHƯƠNG I. CÁC LINH KIỆN SỬ DỤNG
1.1. Giới thiệu về LCD 16TC2A
LCD (Liquid Crytal Direct) TC16C2 là màn hình hiển thị thể lỏng gồm có:
+ LCD
+Bộ Driver (Mạch điều khiển )
Màn hình LCD và bộ Driver đã được thiết kế tích hợp sẵn với nhau bởi nhà sản
xuất,khi sử dụng chỉ cần giao tiếp với bộ Driver qua các chân. LCD TC16C2.
Là loại màn hình hiển thị được 16 kí tự x2 dòng, bao gồm tất cả các kí tự chuẩn
và một số kí tự đặc biệt nhưng không có kí tự có dấu tiếng Việt.
1.1.1.

Sơ đồ chân của LCD 16TC2A:

Hình 2.1: Sơ đồ chân của LCD 16TC2A
1.1.2. Chức năng và nhiệm vụ của các chân:

STT chân
1

Kí hiệu
Vss

Chức năng chân
Chân nối đất cho LCD, khi thiết kế mạch ta nối
chân này với GND của mạch điều khiển

2

Vdd


Chân cấp nguồn cho LCD, khi thiết kế mạch ta
nối chân này với VCC=5V của mạch điều khiển

6


3

Vee

4

RS

Lựa chọn độ tương phản của màn hình
Chân chọn thanh ghi (Register select). Nối chân
RS với logic “0” (GND) hoặc logic “1” (VCC) để
chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh
IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ
đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ
liệu DR bên trong LCD.

5

R/w

Chân chọn chế độ đọc/ghi (Read/Write). Nối
chân R/W với logic “0” để LCD hoạt động ở chế độ

ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6

E

Chân cho phép (Enable). Sau khi các tín hiệu
được đặt lên bus DB0-DB7, các lệnh chỉ được chấp
nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển
vào(chấp nhận) thanh ghi bên trong nó khi phát hiện
một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0DB7 khi phát hiện cạnh lên (low-to-high transition) ở
chân E và được LCD giữ ở bus đến khi nào chân E
xuống mức thấp.

7

D0

Tám đường của bus dữ liệu dùng

thông tin với MPU. Có 2 chế độ sử dụn
này :

+ Chế độ 8 bit : Dữ liệu được truyền trê
7


với bit MSB là bit DB7.


+ Chế độ 4 bit : Dữ liệu được truyền trê
DB4 tới DB7, bit MSB là DB7
8

D1

9

D2

10

D3

11

D4

12

D5

13

D6

14

D7


15

Vdd

Nguồn dương cho đèn nền

16

Vss

GND cho đèn nền

Bảng 2.1: Chức năng và nhiệm vụ của các chân

1.1.3. Giá trị điện áp:
Kí

Điều

hiệu

kiện

Điện áp
vào

Vdd

Giá trị chuẩn


Đơn

Min

Typ

Max

Vdd = +5v

4,7

5

5,3

Vdd= +3v

2,7

3

5,3

Vdd= 5V

-

vị


V

Dòng
cung cấp
hiện thời

Điện áp
ở nhiệt

Idd

Vdd

1,2

3
-

-200C

-

-

00C

4.2

4.8


5.1

250C

3,8

4,2

4,6

mA

8


độ bình

-

thường

Vo

500C

3,6

4,0


4,4

700C

-

-

-

4,2

4,6

V

Điện áp
led màn

VF

hình

250C

-

V

LCD


2.2: Bảng giá trị điện áp của màn hình LCD
1.2. Giới thiệu về PIC 16F877A
1.2.1. Sơ đồ chân và sơ đồ nguyên lí của PIC16F877A
Sơ đồ chân



đồ

nguyên lý :

1.2.2. Nhận xét
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau:
-

PIC16F877A có tất cả 40 chân.

-

40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2
chân thạch anh và một chân dùng để RESET vi điều khiển.
9


-

5 port của PIC16F877A bao gồm :
+ PORTA : 6 chân
+ PORTB : 8 chân

+ PORTD : 8 chân
+ PORTC : 8 chân
+ PORT E : 3 chân

1.2.3. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A
PORTA :
PORTA gồm có 6 chân. Các chân của PortA, ta lập trình để có thể thực hiện được
chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ
ngoại vi vào vi điều khiển.
Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051. Ở tất cả các PORT của
PIC16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập. Để
chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải xử lý bằng
phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào là chức năng
xuất.
Trong kiến trúc phần cứng của PIC16F877A, người ta sử dụng thanh ghi TRISA ở
địa chỉ 85H để điều khiển chức năng I/O trên. Muốn xác lập các chân nào của PORTA
là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA. Ngược lại,
muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA.
Điều này hoàn toàn tương tự đối với các PORT còn lại
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
10


- Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang
Digital
- Ngõ vào điện thế so sánh
- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các
nhiệm vụ đếm xung thông qua Timer0…
- Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
PORTB:

PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2
chức năng : input và output. Hai chức năng trên được điều khiển bới thanh ghi TRISB.
Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong thanh ghi
TRISB, ngược lại muốn chân nào là output thì ta clear bit tương ứng trong TRISB.
Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điều khiển được bằng
chương trình.
PORTC:
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự
điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên.
Ngoài ra PORTC còn có các chức năng quan trọng sau :
- Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng.
- Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử
dụng trong điều khiển tốc độ và vị trí của động cơ v.v….
- Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART.
PORTD:
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 chức năng input và output của
PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp
song song PSP (Parallel

Slave Port).
11


PORTE:
PORTE có 3 chân. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân
của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của
chuẩn giao tiếp PSP.
1.3. Giới thiệu về cảm biến từ trường A1302

Hình 2.2: sơ đồ chân của cảm biến từ trường A1302

Một thiết bị hiệu ứng Hall tạo ra một điện áp khi được đặt trong một từ trường . Dưới
đây là một số mã đơn giản để sử dụng một cảm biến hiệu ứng A1301 hoặc A1302
Hall, trong đó cung cấp đầu ra tỷ lệ thuận với cường độ trường. ( Cảm biến hiệu ứng
Hall khác có thể là đơn giản và chỉ cần chuyển đổi hoặc tắt khi từ trường vượt quá
một giá trị nhất định ) .
Nếu không có từ trường áp dụng các kết quả đầu ra cảm biến khoảng một nửa số
điện áp cung cấp , thường là 2.5V , giả sử việc cung cấp là 5V . Sản lượng giảm tới
0V hoặc tăng đối với 5V, theo phân cực từ, với tốc độ 2.5mV / Gauss cho A1301 ,
hoặc 1.3mV / Gauss cho A1302.
12


Hướng dẫn lựa chọn:

Absolute maximum ratings(xếp hạng tối đa tuyệt đối):

Pin out drawings(Pin ra bản vẽ):

Danh sách đầu ra:

13


Đặc điểm thiết bị:

14


CHƯƠNG II. THIẾT KẾ TÍNH TOÁN


2.1. Thiết kế sơ đồ mạch
2.1.1. Sơ đồ khối của mạch

Khối nguồn

Khối cảm
biến

Khối điều
khiển

Khối hiển thị
LCD

2.1.2. Khối nguồn

Chức năng: Biến đổi dòng điện xoay chiều thành dòng một chiều 5V cấp cho chân
vào của PIC 16F877A.
15


X2-1~x2-2: Cấp nguồn 12v xoay chiều.
Cầu chỉnh lưu B1: Biến đổi từ dòng xoay chiều thành dòng một chiều.
Tụ C1: san phẳng điện áp.
IC7805: chuyển dòng điện về 5V.
Tụ gốm C2: loại bỏ thành phần sóng nhiễu của điện áp xoay chiều.
Tụ C3: san phẳng dòng điện.
LED1 : báo có dòng diện.
Nguyên lý hoạt động: Dòng điện 12V xoay chiều qua cầu chỉnh lưu làm biến đổi từ
dòng xoay chiều thành dòng một chiều rồi sẽ được san phẳng qua tụ C1. Khi qua IC

ổn áp 7805 sẽ cho dòng điện có điện áp 5V ổn định. Sau đó điện áp 5V được cho qua
tụC3 để san phẳng điện áp. IC ổn áp 7805 mắc song với một tụ gốm để loại bỏ thành
phần sóng nhiễu của điện áp xoay chiều. IC 7805ta mắc song song với một led để báo
mạch điều khiển có nguồn.
2.1.3. Khối cảm biến
Cảm biến từ trường A1302: Chân 1 là Vout,chân 2 là GND,chân 3 là Vcc. Dữ liệu
chân 1 sẽ được đưa vào bộ đọc và chuyển đổi ADC được tích hợp trong bộ xử lý
thông qua kênh AN0.
2.1.4. Khối hiển thị

16


Khối hiển thị LCD, gồm 1 LCD 16x2. LCD được truyền dữ liệu 4 bít từ vi điều khiển
qua các chân D4, D5, D6, D7. Còn lại D0, D1, D2, D3 không xử dụng được nối GND.
Ta cấp nguồn cho led màn hình LCD thông qua chân 15 và 16 của LCD.

2.2.5. Khối điều khiển
Khối điều khiển là pic16f877a:

17


2.1.6. Sơ đồ nguyên lý của mạch

18


19





Nguyên lý làm việc của mạch: Khi bộ xử lý được cấp nguồn, vi xử lý sẽ khởi
tạo truyền dữ liệu cho LCD hiển thị. Tiếp theo bộ vi xử lý sẽ đọc dữ liệu gửi về
từ cảm biến A1302. Dữ liệu này sẽ được xử lý và tính toán theo thuật toán mà
người viết đã lập trình. Sau khi được xử lý, bộ xử lý sẽ gửi kết quả ra màn hình
LCD.



Nguyên lý hoạt động của mạch:
-

Nút nhấn S1 là nút reset: 1 đầu nối GND, đầu còn lại nối với trở treo tạo
mức lên Vcc và nối vào chân MCLR/Vpp của vi xử lý. Khi chưa tác động
chân MCLR/Vpp ở mức cao, bộ vi xử lý hoạt động bình thường. Khi được
tác động thì chân MCLR/Vpp được đưa xuống mức thấp, bộ xử lý ngay lập
tức được reset nhảy về thực hiện câu lệnh ở ngăn nhớ đầu tiên của bộ nhớ.

-

A1302: Chân 1 là Vout,chân 2 là GND,chân 3 là Vcc. Dữ liệu chân 1 sẽ
được đưa vào bộ đọc và chuyển đổi ADC được tích hợp trong bộ xử lý
thông qua kênh AN0.

-

Khối tạo dao động: gồm thạch anh 20MHz và 2 tụ đất 33pF


-

Khối hiển thị LCD, gồm 1 LCD 16x2. LCD được truyền dữ liệu 4 bít từ vi
điều khiển qua các chân D4, D5, D6, D7. Còn lại D0, D1, D2, D3 không xử
dụng được nối GND. Ta cấp nguồn cho led màn hình LCD thông qua chân
15 và 16 của LCD.
Ở mạch này ta chỉ xử dụng chức năng ghi dữ liệu lên LCD lên chân RW
ta nối GND.
Biến trở tinh chỉnh R4 có tác dụng điều chỉnh độ tương phản cho LCD

-

Khối mạch nạp: Gồm có chân 1 chân Reset, chân 2 là chân Vcc, chân 3 là
chân nối GND, chân 4 là chân PGD, chân 5 là chân PGC ( chân PGD và
PGC dùng để truyền dữ liệu từ máy tính thông qua mạch nạp vào IC.

20


2.1.7. Sơ đồ board mạch:
Sơ đồ board mạch điều khiển:

Hình 2.3. Sơ đồ board mạch
2.1.8. Tính toán cường độ từ trường


Đối với A1302: 1.3mV = 1Gauss




Chọn chế độ ADC 10 bit ( nghĩa là ADC có giá trị từ 0 đến 1023 )
1024 bước tương tự = 5V



Để đọc được giá trị ADC ta dùng hàm red_adc();



Từ giá trị ADC đọc được ta quy đổi lại từ cường độ từ trường :1 giá trị ADC =
3756mG

21


2.2. Chương trình
2.2.1. Lưu đồ thuật toán:

Bắt đầu

Đọc dữ liệu A1302

Tính toán với giá trị đọc được từ A1302 rồi hiển
thị ra LCD

Kết thúc
Hình 2.2. Sơ đồ lưu đồ thuật toán
2.2.2. Chương trình điều khiển.

#include <16F877A.h>

#device *=16 adc=10
#FUSES
NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,N
OCPD,NOWRT
#use delay(clock=20000000) // DUNG THACH ANH 20MHz
#include <lcd_lib_4bit.c> // LCD 4 BIT
#byte porta=0x05

// KHAI BAO DIA CHI TRONG PHAN CUNG

#byte portb=0x06
22


#byte portc=0x07
#byte portd=0x08
#byte porte=0x09

// Thu vien ham cho LCD

unsignedintnghin, tram,chuc,donvi; //BIEN SO
float value;

//BIEN TU TRUONG DO ADC

//========================================================
========;
voidhien_thi_so(unsigned char x); //HAM NGUYEN MAU
voidhien_thi_so(unsigned char x) //HAM HIEN THI SO LEN LCD
{

nghin=x/1000; x=x%1000;
tram =x/100; x= x%100;
chuc =x/10;
donvi =x%10;
nghin = nghin + 0x30; // CHUYEN DOI DE GUI LEN LCD
tram = tram +0x30;
chuc = chuc + 0x30;
donvi = donvi + 0x30;
LCD_Putchar(nghin); //GUI LEN LCD GIA TRI NGHIN TRAM CHUC DON
VI
LCD_Putchar(tram);
LCD_Putchar(chuc);
LCD_Putchar(donvi);
}
void main()
23


{
set_tris_a(0xFF); //KHAI BAO PORTA LA DAU VAO
LCD_init();

//GOI HAM KHOI TAO LCD

//=========== Khoitaoche do chobo
ADC=====================================
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
while (true)
{

set_adc_channel(0);

//CAI DAT ADC 0

value = read_adc();

//DOC GIA TRI TU ADC 0

value=value-512; //TRU DI 512 DE LAY GIA TRI GOC CUA A1302
delay_ms(10);
value=value*3,756;
TRUONG

// TINH TOAN CHUYEN SANG CUONG DO TU

LCD_Putcmd(0x80);
LCD

//CHUYEN CON TRO VE DONG DAU TIEN

LCD_Putchar("DO TU TRUONG"); //VIET CHU LEN LCD
LCD_Putcmd(0xc0);
LCD

//CHUYEN CON TRO VE DAU DONG THU 2

LCD_Putchar("T= ");

//VIET CHU


hien_thi_so(value);

//HIEN THI GIA TRI TU TRUONG LEN LCD

LCD_Putchar(" GAUSS");

//VIET CHU

delay_ms(100);
}
}
24


CHƯƠNG III. KIỂM THỬ SẢN PHẨM
Hình ảnh sản phẩm:

-Phần mềm chạy ổn định .
- Đo được cường độ từ trường và hiển thị trên LCD.

25


×