Báo cáo đồ án thiết kế kỹ thuật căn bản về pic16F887A, đo nhiệt độ dùng LM35, hiển thị lên LCD - Pdf 18

Báo cáo đồ án thiết
kế kỹ thuật căn bản
về pic16F887A, đo
nhiệt độ dùng
LM35, hiển thị lên
LCD
MỤC LỤC
 !"#$%&'()*#+, 
$.+#.+ /
01+01230456785989:56;<5+=4>4?@A7+21467B52C,D4E#$%&67F456G#H4
#+, %
-5IJKLMN)*MO"PM'Q"RSA7+'TUMMV*WXYZ[\]
^Y _[```-USM-Ma'LMT"b)cMdK _[[] %
/-eSPM'RSfgh"M[]YT"LMWXijPM'A7+- &
%-eb k"#+,5+l/ 
m-#$%& /
&-+j",+\SA7+ m
-5KZ]SN\n"k')[MMO[o 
-#[MMOpq 
BÁO CÁO ĐỒ ÁN THIẾT KẾ KỸ THUẬT
CĂN BẢN VỀ PIC16F877A
ĐO NHIỆT ĐỘ DÙNG LM35, HIỂN THỊ LÊN LCD
Sau đây là qui trình tìm hiểu về PIC của nhóm
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, và 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.
Nhóm đã tìm được 1 bài dẫn dắt về PIC của tác giả FALLEAF, 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 các công việc
-Thanh ghi-register
-Cờ-flag
-Định thời-Timer

đ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,…
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.
Công cụ mô phỏng hữu hiệu là Proteus
Ngôn ngữ lập trình là CCS, học từ Tutorial của anh Trần Xuân Trường K2001 ĐHBK
Nhóm tìm hiểu về PIC thông qua tutorial của tác giả Nguyễn Trung Chính trên diễn đàn
picvietnam, xin cám ơn anh Chính đã viết một tutorial rất hay và căn bản và xin phép lấy các
hình ảnh minh hoạ từ tutorial này
Sơ đồ chân của PIC16F877A :
Để 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:
class="bi x5 y53 w6 hd"
Và đây là mạch nháy Led PortB:

làm sao thì ra Nhật Tảo mua
- Các dụng cụ cơ bản;
Test board
Board đục lỗ
Mỏ hàn, chì, nhựa thông
Mũi khoan
Hút chì
- Các linh kiện cho nguồn 5V:
Board đục lỗ
Biến áp cách ly-còn gọi là tăng phô
7805- dùng để xén 5V (7806 thì xén 6V), có thêm nhôm tản nhiệt
Domino
Cầu diod
Tụ 1000 uF 35V
Tụ 10uF 50V5
Tụ kẹo 104
Sơ đồ mạch nguồn 5V
3. Sử dụng LCD TC1602A
Đâ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:
Cách nối dây:
// As defined in the following structure the pin connection is as follows:
// D0 enable
// D1 rs
// D2 rw
// D4 D4
// D5 D5
// D6 D6

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 đi.
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 PIC16F877A 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 mấy bit, chẳng hạn
#device*=16 ADC=8 cho biết dùng ADC 8 bit
Setup_ADC(mode)
.Mode là ADC_OFF : tắt chức năng ADC
.Mode là ADC_CLOCK_INTERNAL : thời gian lấy mẫu bằng xung clock
.Mode là ADC_CLOCK_DIV_2 : gian lấy mẫu bằng xung clock /2
Setup_ADC_ports(value) //Xác định chân lấy tín hiệu Analog và điện thế chuẩn
.Value là ALL_ANALOGS : dùng tất cả các chân có hỗ trợ ADC
.Value là NO_ANALOG : không dùng ADC
.Value la ANi : dùng chân ANi là chân ADC
Set_ADC_channel(channel) //chọn chân để đọc giá trị analog bằng lệ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 truớc khi đọc tín hiệu:
.Vd: set_ADC_channel(0);
delay_ms(10);
read = read_adc();
Sau đoạn code này, read sẽ có giá trị bằng giá trị điện áp mà chân được
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ả :
Code:
#define <16f877a.h>

read=read_adc();
read =read*1.960784314;
printf(lcd_putc,"\rNhiet do: %u",read);
delay_us(20);
}
}
Khi dùng ADC 8bit, tín hiệu ADC đọc được từ chân ADC như sau:
1V 2V 3V 4V 5V
51 102 153 204 255
Tức là nếu điện áp vào 1V thì tín hiệu digital tăng 51
1V  ADC=51
1C10mVADC=10*51/1000
Suy ra T ADC = T*10*51/1000
Suy ra T = ADC*1000/10/51 = ADC * 1.960784314
Công thức này đã dùng ở đoạn code trên
7. Làm mạch thực tế:
Vẽ mạch in dùng chức năng ARES trong Proteus:
Xin cám ơn bạn Thái Thiện đã hướng dẫn tôi cách sử dụng ARES
Sau khi vẽ xong sơ đồ nguyên lý như trên, ta chọn nút ARES để chuyển qua mạch vẽ
mạch in, sau khi sắp xếp, bổ sung, đi dây mạch và in ra PDF (dùng chương trình in
máy in ảo “Virtual PDF Printer” ta có được một sơ đồ như sau:
Có thể xem ở chế độ 3D :
Đem mạch in trên ra tiệm in Laser (in phun không được), chú ý các xem bản in có
vừa với chân PIC không, nếu không thì phải in lại với tỉ lệ thích hợp. Thông thường
in lên giấy kiếng, nhưng in lên giấy A4 thường cũng được
Mua board đồng và đặt bản in lên, dùng bản ủi ủi qua lại khoảng 5ph, lúc đầu cứ
nghĩ ủi lâu sẽ ăn mực, nhưng không phải vậy. Đợi board đồng nguội rồi gỡ ra, nếu
dùng giấy A4 thường thì nên thấm thêm ít nước để mực dễ bám vào đồng
Mua thêm cây viết vẽ mạch in, nếu mực chỗ nào chưa bám tốt thì đồ lên.
Đem board đồng ngâm vào dung dịch FeCl3 mua ở chợ, vớt lên xem nếu đồng đã bị


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status