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

Vi điều khiển hiển thị nhiệt độ LCD

26 1,4K 3
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Tiêu đề Vi điều khiển hiển thị nhiệt độ lcd
Tác giả Lại Xuân Thành, Đỗ Thanh Tâm, Trần Sơn Tùng, Nguyễn Văn Chung, Nguyễn Thị Ngọc Hà, Dương Tiến Phượng
Người hướng dẫn Phan Trung Kiên
Trường học Trường Đại học Tây Bắc
Chuyên ngành Thiết bị ngoại vi & Công nghệ ghép nối
Thể loại Báo cáo bài tập lớn
Định dạng
Số trang 26
Dung lượng 3,51 MB

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

Nội dung

Vi điều khiển hiển thị nhiệt độ LCD

Trang 1

BAO CAO BAI TẬP LỚN

MON : THIET BI NGOAI VI &

CONG NGHE GHEP NOI

Nguyễn Thị Ngọc Hà Dương Tiến Phượng Giảng viên bộ môn:

Phan Trung Kiên

¬

Trang 2

MUC LUC

Lap trinh Pic ding CCS PCWH v4.023

6 Tới đây ta đã đủ công cụ để làm mạch hoàn c

LỜI CẢM ƠN

Trang 3

Sau một thời gian tìm hiểu nhóm I đã tìm hiểu, nghiên cứu và xây dựng VI

ĐIỀU KHIỂN HIỂN THỊ NHIỆT ĐỘ L.CD.Để hoàn thành tốt bài tập lớn

này chúng em xin chân thành cảm ơn thầy giáo Phan Trung Kiên trong thời

gian qua đã tận tình hướng dẫn chỉ bảo chúng em trong quá trình thực hiện bài tập lớn

Chúng em cũng xin chân thành cảm ơn thầy cô trong khoa Toán — Lý — Tin

trong thời gian qua đã dạy bảo, truyền thụ lại kiến thức cho chúng em

Chúng Em chân thành cảm ơn thầy cô!

LỜI NÓI ĐẦU

Trang 4

Ngày nay,các bộ vi điều khiển đang có Ứng dụng ngày càng rong rai va tham nhập ngày càng nhiều trong các lĩnh vực kĩ thuật và đời sống xã

hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn giản như thiết bị

điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều

có dùng các bộ vi điều khiển.Và một số Ứng dụng ứng dụng cơ bản nhất là

sử dụng LCD trong các bảng mạch đo điện áp, đo nhiệt độ, quang báo

Với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập

trình,nhóm chúng em xin trình bày một trong những ứng dụng đơn giản của

bộ vi điều khiển.Đó là lập trình cho Pic 16F877A để đo điện áp xoay chiều

Sơ lược về cấu trúc Pic 16F877A và các linh kiện sử dụng

Sơ đồ nguyên lý, chương trình phần mềm và nguyên lý hoạt động

Kết quả, Ứng dụng và hƯớng phát triển

I Giới thiệu phần cứng

1.Trước hết nhóm đã lên mạng tìm hiểu tổng quan về PIC để xem mình

nên bắt đầu từ đâu

Chủ yếu học từ diễn đàn www.picvietnam.com, tiện thể nhóm xin gửi lời cám ơn tới diễn đàn này

Trang 5

Nhom I đã tìm được 1 bài dẫn dắt về PIC của tác giả FALLEAE, và theo

đó thì để học PIC ta nên bắt đầu bằng việc tìm hiểu về các khái niệm và làm

Nhưng nếu search trên mạng với từ khoá PIC và các khái niệm này thì

có rất ít, thậm chí nhóm tìm không ra Lý do đơn giản vì các phần kiến thức

này đáng lễ phải được học trong các môn tiền đề cho PIC như kiến trúc máy

tính hay vi xử lý

Nhóm tìm tới hỏi các anh đi trước, và theo hướng dẫn của anh chị khóa trước thì nên tìm hiểu về vi điều khiển 8051 trước, và nên học lập trình bằng

ASM

Để tìm hiểu 8051, nhóm đã tìm đọc sách về 8051 của tác giả Tống Văn

On Chính trong sách này, nhóm đã hiểu được các khái niệm về thanh ghi,

định thời, và ngôn ngữ ASM (chỉ ở mức căn bản)

Nhóm I xin được nói về cách hiểu của mình về các khái niệm trên :

Thanh ghi

Trong một vi xử lý 8051 có rất nhiều thanh ghi (khoảng hơn trăm

thanh) mỗi thanh là một chuỗi các bit, mỗi bit có 2 giá trị là 1 hoặc 0 và có thể

được gán bởi người lập trình, Đa số thanh ghi có 8 bit, ngoài ra còn có các thanh 13 bit Mỗi thanh như thế có các chức năng riêng

Có thanh chỉ đơn thuần chỉ để nhớ một giá trị nào đó, thanh ghi 8 bit thì

chỉ nhớ được 2° =256 giá trị từ 0 tới 255

Có thanh dùng để điều khiển, ví dụ thanh ghi cho phép xuất hoặc nhập PORTB PORTB có 8 chân, mỗi chân được điều khiển là chân xuất hay nhập

bởi thanh ghi PORTB Nếu thanh ghi PORTB có giá trị 00000001b thì có nghĩa

là chân B0 là chân nhập dữ liệu, còn các chân B1-B7 là chân xuất dữ liệu

Gờ (flag)

Cờ cũng là 1bit, nhưng nó có chức năng đặc biệt hơn các bit khác nên người ta đặt tên cho nó Ta sẽ hiểu kỹ hơn về nó qua một ví dụ trong phần

timer

Trang 6

Dinh thoi (Timer)

Định thời là một chức năng không thể thiếu của các vi điều khiển, nó cho phép vi điều khiển đếm thời gian Tuy nhiên không thể đếm một cách trực tiếp như con người được, timer đếm thời gian thông qua việc đếm xung dao động Một vi điều khiển có khoảng vài timer

Bộ định thời cũng là các thanh ghi, chúng được điều khiển bởi bit định

thời Khi ta set bit định thời bằng 1 thì thanh ghi định thời bắt đầu nhảy số 0,

1, 10 cho đến khi thanh ghi định thời có giá trị 11111111 Bit 7 của thanh

ghi định thời là một cỜ, bình thường thì bit này bằng 0, cho đến khi thanh ghi

đã đếm lên tới giá trị max thì bit này mới bằng 1, và sau đó thanh ghi timer lại

trả về giá trị 0 và bắt đầu đếm lại, , và nó chỉ dừng khi bit định thời được gán

bằng 0 trở lại CỜ này như một cách đánh dấu một chu kỳ đếm, giữa 2 lần cờ này bằng 1 là 256 giá trị đã được đếm

Cũng có timer nhiều hơn 8bit

Hợp ngữ ASM

Vi điều khiển muốn hoạt động được phải có các chỉ dẫn cho nó làm

việc, đó là các file hex Mở một file hex ta thấy toàn những 0 với 1 Con

người sẽ mất rất nhiều thời gian để viết nên 1 chương trình toàn 0 với 1, vì vậy người ta xây dựng các ngôn ngữ lập trình Thay vì viết 1 dòng lệnh toàn 0 với 1 thì ta viết một dòng lệnh khác tương đương nhưng gần gũi hơn với ngôn ngữ con người Ngôn ngữ càng gần với con người thì có cấp càng cao

ASM là ngôn ngữ gần với file hex nhất Làm việc với ASM ta chủ yếu làm việc với các bit, như việc set bit bằng 1 hay di chuyển giá trị từ thanh ghi

này sang thanh ghi khác,

Khối mạch của chúng ta gồm 3 phần:

+"IN":LM35-dùng để đo nhiệt đỘ và xuất ra giá trị điện áp tương Ứng

+"Xử Lý":PIC16F877A-dùng để chuyển đổi giá trị điện áp được xuất ra từ LM35 bằng cách dùng bộ ADC của PIC

+Hién thi:LCD

Để đo nhiệt độ ta dùng bộ ADC trong PIC16F877A,mình sẽ trình bày cụ thể dưới đây:

2 Sau khi tìm hiểu qua sách vở những khái niệm này từ xong, nhóm bắt

đầu chính thức tìm hiểu về PIC.

Trang 7

Công cụ mô phỏng hữu hiệu là Proteus V7.7 SP2

Ngoài chương trình MPLAB IDE cũng được coi là phần mền lập trình biên dịch

khá mạnh cho Pic thì CCs cũng vậy

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng

Microchip

Chương trình là sự tích hợp của 3 trình biên dich riêng biết cho 3 dòng PIC khác nhau đó

là:

_ PCB cho dòng PIC 12 -bit opcodes

_ PCM cho dòng PIC 14-bit opcodes

Trang 8

PCH cho dong PIC 16 va 18-bit

Pee nz Pits dsded CilÐocum ldsdsd.c

overwrite (replace) existing } wemings | characters or are sorted

Trang 9

Sơ đồ chân của PIC16F877A :

—Ÿ-PRA4/TOCKI/C1OUT RB1 [32—D [——|RA5/AN4/SS/C2OUT RBO/NT Oo C-—24 REO/RDIANS voo +34

Để PIC hoạt động ta cần cấp nguồn cho PIC Ngoài ra có thể thêm vào

bộ dao động thạch anh, và nút nhấn reset:

Trang 10

R1

MCLR/VPP

RA0/AN0 RA1/AN1

RB7/PGD RB6/PGC $ RB5 RB4 RA2/AN2/VREF-/CVREF RB3/PGM RA3/AN3/VREF+

RA4/TOCKI/C1OUT RA5/AN4/SS/C2OUT

RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7

P RC2/CCP 1

P RC3/SCK/SCL RDO/PSPO RD1/PSP1

RB2 RB1 RBO/INT VDD GND RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4

RC7/RX/DT RCE6/TXICK 4 RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2

Trang 11

%—FPRMITOCKIC IOUT RBI + X——|RA5/AMISSC20UT — RBOINT

Trang 12

SƠ ĐỒ KHỐI ĐiỀU KHIỂN PIC16F877A

pred =m Hay Racianavearovner ANGNere

Trang 13

#use delay (clock=20000000)

void main()

{

//Thiet lap che do cho PORT B

Set_tris_b(0x00); //Tat ca PORT B deu la cong xuat du lieu

output_b(OxFF); //Mo het cac Led

While(TRUE) //Vong lap vo han

Trang 15

Cau tric LCD

Polarizing filter (BO lọc phân cực) Điều khiển ánh sáng ởi vào và thoát ra

» Glass substrate (Hợp chất thuỷ tinh đặc biệt) Lọc chặn điện từ các điện

+ Liquid crystals ( Các tinh thể lỏng )

+ Spacer ( Khoảng trống ) Duy trì khoảng cách đều giữa các tấm kính

« Color filter ( BỘ lọc mầu ) Mầu được lọc và thể hiện khi dùng các bộ

lọc R, G và B

+ Backlighting ( Ánh sáng phía sau ) Ánh sáng được chiếu tỪ phía sau màn hình

xuyên qua các lớp trên, ở màn hình điện thoại, người ta sử dụng ánh sáng chiếu tỪ xung quanh sau đó dùng lớp phản xạ để hƯớng ánh sáng chiếu thẳng góc với màn hình từ sau về phía trước

Đây là LCD 2 hàng, mỗi hang 16 ký tự

Để sử dụng LCD, ta hãy đọc file “LCD.C” trong thư viện Driver

của CCS Ở đó CCS hướng dẫn cách ta đi dây cho các chân của

LCD, đồng thời CCS viết sẵn cho ta các hàm thao tác cho LCD:

Sơ đồ chân LCD :

Trang 16

Các điện cực X và Y sắp xếp thành hàng và dãy, mỗi điểm giao nhau có một

Transistor trường, chân S đấu vào điện cực Y, chân G đấu vào

điện cực X, khi Transistor dẫn thì chân D sẽ có điện áp bằng điện cực Y tạo

ra một điện áp chênh lệch với đế trên của LCD Mỗi Transistor sẽ điều khiển một điểm mầu, các tín hiệu ngắt mở được đưa đến điện cực X, tín hiệu Video được đưa đến điện cực Y, điện áp chênh lệch giữa điện cực X

và Y sẽ làm Transistor dẫn tạo ra một điểm mầu có cường đỘ sáng nhất định

aot Ejiiaren See acme Khen [ch ne

veur |*È te rommrw -L "reas

Trang 17

II Chương trình chính

-_ PIC16E877 Driving LCD in 4-Bit Mode

CYỂ NEErI 06 NIET Bọ tUNG UEE giết 8i 182A

PIC16F877 driving LCD in 4-bit Mode

Labcenter | ssssar maesaeere

Fax: +0 1806250008 Tại: 04606088004 Electronics Emait_ngocchungcomputerdgmail WAM: http://w kASit net

Trang 18

Các hàm thông dụng

Icd_initQ) : là hàm phải có để báo rằng sẽ sử dụng LCD

Icd_putc( char c) : hàm để xuất ký tự ra LCD

Icd_gotoxy( BYTE x, BYTE y) : hàm cho phép con trỏ nhảy tới vị trí

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,

NOBROWNOUT, NOLVP, NOCPD, NOWRT

Trang 19

4 LM35

+

Đây là cảm biến nhiệt độ

LM35 có 3 chân : 2 chân cấp nguồn và 1 chân xuất điện áp ra tùy

Trang 20

Features

Calibrated directly in ° Celsius (Centigrade)

Linear + 10.0 mV/’C scale factor

0.5°C accuracy guaranteeable (at +25°C)

Rated for full -55° to +150°C range

Suitable for remote applications

Low cost due to wafer-level trimming

Operates from 4 to 30 volts

Less than 60 pA current drain

Low self-heating, 0.08°C in still air

Nonlinearity only +¥%°C typical

Low impedance output, 0.1 Q for 1 mA load

Mô phỏng bằng Proteus:

Trang 21

Nhiệt độ là 27C, điện áp xuất ra là V=0.27176 chứng tỏ sự tăng

10mV /C là khá chính xác

Khi mô phỏng Proteus, nếu khối LM35 không hoạt động, thì click chuột phải/ edit properties/ bỏ check exclude from Simulation di

5 Chức năng ADC của PIC16F877A

Chức năng ADC cho phép PIC nhận tín hiệu tương tự tỪ các chân có hỗ trợ ADC và chuyển tín hiệu đó sang tín hiệu số để xử lý

Các chân có hỗ trợ ADC của PIC16E877A là : A0 A1 A2 A3 A5 E0 E1 E2

Một số lệnh căn bản khi dùng ADC:

Muốn dùng ADC, ta phải khai báo #DEVICE cho biết dùng ADC may

bit, chẳng hạn #device*=16 ADC=8 cho biết dùng ADC 8 bit

.Value là ALL_ANALOGS : dùng tất cả các chân có hỗ trợ ADC

.Value là NO_LANALOG : khong ding ADC Value la ANi : dùng chân ANi là chân ADC Set_ADC_channel(channel) //chon chan dé doc gia tri analog bang 1€nh read_adc()

.Với PIC16F877A channel có 8 giá trị 0-7 tương ứng là các chân

A0-E2 như đã kể ở trên

.Để chính xác ta nên delay khoảng 10ms trước khi doc tín hiệu:

.Vd: set ADC_ channel(0);

delay_ms(10);

read = read_adc();

Sau đoạn code nay, read sẽ có giá trị bằng giá trị điện áp mà chân được

Trang 22

6 Tới đây ta đã đủ công cụ để làm mạch hoàn chỉnh

Mô phỏng bằng Proteus:

Kết quả :

Trang 23

PIC16F877 driving LCD in 4-bit Mode

GQDGG CÁO Cc==em son isis

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,

NOBROWNOUT, NOLVP, NOCPD, NOWRT

Trang 25

Khi dùng ADC 8bit, tín hiệu ADC đọc dugc tir chan ADC nhu sau:

Suy ra T = ADC*1000/10/51 = ADC * 1.960784314

Công thức này đã dùng ở đoạn code trên

TÀI LIỆU THAM KHẢO

Nguồn sách giáo trình và sách điện tử:

Ngày đăng: 02/03/2013, 17:00

HÌNH ẢNH LIÊN QUAN

Hình  2.2 Sơ đổ  khối  vi điểu  khiển  PIC16FR77A.. - Vi điều khiển hiển thị nhiệt độ LCD
nh 2.2 Sơ đổ khối vi điểu khiển PIC16FR77A (Trang 12)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w