Tải bản đầy đủ (.pptx) (31 trang)

đo nhiệt độ dùng cảm biến lm35 với pic16f877a dùng ngôn ngữ assembly

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 (6.4 MB, 31 trang )



TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA ĐiỆN – ĐiỆN TỬ
ĐỀ TÀI :
ĐO NHIỆT ĐỘ DÙNG CẢM BiẾN LM35 VỚI PIC 16F877A
DÙNG NGÔN NGỮ ASSEMBLY
TRÌNH BÀY : NHÓM 9
BÁO CÁO VI XỬ LÍ 2


LƯU ĐỒ VÀ
CHƯƠNG TRÌNH
LƯU ĐỒ VÀ
CHƯƠNG TRÌNH
THANH GHI VÀ
TRÌNH BIÊN DỊCH
THANH GHI VÀ
TRÌNH BIÊN DỊCH
BỘ CHUYỂN ĐỔI
ADC
BỘ CHUYỂN ĐỔI
ADC
NGUYÊN LÝ MẠCH
VÀ MÔ PHỎNG
NGUYÊN LÝ MẠCH
VÀ MÔ PHỎNG
TỔNG QUAN
TỔNG QUAN
NỘI DUNG
NỘI DUNG


LIÊN HỆ
LIÊN HỆ
PHÂN CÔNG
NHIỆM VỤ
PHÂN CÔNG
NHIỆM VỤ
QUÁ TRÌNH HOẠT
ĐỘNG
QUÁ TRÌNH HOẠT
ĐỘNG
TỔNG KẾT RÚT KINH
NGHIỆM
TỔNG KẾT RÚT KINH
NGHIỆM
THÀNH VIÊN
THÀNH VIÊN
THÔNG TIN
CHUNG
THÔNG TIN
CHUNG
 

!"#$%&"'#(&")*
 

!"#$%&"'#(&")*
TRANG LIÊN KẾT

+
THÀNH VIÊN

THÔNG TIN NHÓM:

Trương Quang Phúc (C) 06117054

Huỳnh Minh Khả 06117029

Hà Thị Thu Hòa 06117026

Nguyễn Trí Luân 06117042

Phan Hiếu Nhân 06117049


PHÂN CÔNG NHIỆM VỤ
Nhiệm vụ của từng thành viên :

Phúc(trưởng nhóm): giới thiệu tổng quan về đề tài báo cáo , giới thiệu cấu trúc PIC 16F877A và cảm biến nhiệt
LM35.

Khả (TV): Giới thiệu sơ lược các thanh ghi cần dùng và một số cấu trúc lệnh quan trọng sử dụng trong chương
trình.

Hòa (TV): Trình bày sơ lược về bộ chuyển đổi ADC trong PIC

Luân (TV): Trình bày nguyên lý mạch ứng dụng và mô phỏng hoạt động của mạch trên Proteus .

Nhân (TV): Giải thích lưu đồ và chương trình nạp cho PIC để điều khiển mạch .

,
QUÁ TRÌNH HOẠT ĐỘNG

Giai đoạn đầu : thu thập tài liệu , nghiên cứu lý thuyết
Giai đoạn giữa : triển khai đề tài ,soạn thảo nội dung , viết báo cáo
Giai đoạn cuối : check lỗi , tập dược chuẩn bị cho mọi tình huống .

*
 /01234523
678
( (
ỨNG DỤNG

9
Một số đặc tính PIC
(programmable intelligent computer)

Là CPU 8/16 bit xây dựng theo kiến trúc Havard có sửa đổi

Có bộ nhớ Flash và Rom có thể tùy chọn 256byte đến 256Kbyte.

Có các cổng xuất nhập (I/O ports)

Có timer 8/16 bit

Có các chuẩn giao tiếp nối tiếp đồng bộ /không đồng bộ

Có hỗ trợ điều khiển Ethernet

Có hỗ trợ giao tiếp CAN

:
Một số đặc tính PIC

(programmable intelligent computer)

Các bộ chuyển đổi ADC 10/12 bit

Có các bộ so sánh điện áp (Voltage comparators)

Có các khối Capture /Compare/PWM

Có hỗ trợ giao tiếp LCD

Có MSSP peripheral dùng cho giao tiếp I2C ,SP
và I2S.

Có khối điều khiển động cơ và đọc encoder

Có hỗ trợ giao tiếp USB

;
Một số đặc tính PIC
(programmable intelligent computer)
Đặc điểm thực thi tốc độ cao CPU RISC của họ VĐK PIC 16F87XA:

Gồm 35 lệnh đơn

Tất cả các lệnh là 1 chu kỳ ,chương trình con là 2 chu kỳ

Tốc độ hoạt động DC - 20MHz ngõ vào xung clock DC - 200ns chu kì lệnh

Dung lượng của bộ nhớ chương trình Flash 8Kx14 words


Dung lượng của bộ nhớ dữ liệu RAM là 368x8bytes

Dung lượng của bộ nhớ dữ liệu EEPROM 256x8bytes


Một số đặc tính PIC
(programmable intelligent computer)
Các đặc tính về tương tự:

Có 8 kênh chuyển đổi tín hiệu tương tự thành tín hiệu số 10 bit

Có reset BOR (Brown – on reset )

Khối so sánh điện áp tương tự

Hai bộ so sánh tương tự

Khối tạo điện áp chuẩn Vref tích hợp bên trong có thể lập trình

Đa hợp ngõ vào lập trình từ ngõ vào của CPU với điện áp chuẩn bên trong .

Các ngõ ra của bộ so sánh có thể truy xuất từ bên ngoài.



SƠ ĐỒ CHÂN
PIC 16F877A
(2) RA0 :xuất/ nhập số
AN0 : ngõ vào tương tự của kênh thứ 0
(3) RA1 :xuất/ nhập số

AN1:ngõ vào tương tự của kênh thứ 1
(4) RA2 :xuất/ nhập số
AN2:ngõ vào tương tự kênh thứ 2
Vref- : ngõ vào điện áp chuẩn thấp của bộ A/D
CVref:điện áp tham chiếu Vref ngõ ra bộ so sánh
(5) RA3 :xuất/ nhập số
(7)RA5: xuất/ nhập số
AN4:Ngõ vào tương tự kênh thứ 4
(8)AN5: Ngõ vào tương tự 5
(9)AN6: Ngõ vào tương tự 6
(10)AN7:Ngõ vào tương tự 7



CẤU TRÚC PIC16F877A

+
CẢM BIẾN NHIỆT ĐỘ LM35
+ Điện áp cung cấp:4V20V
+ Điện áp ngõ ra : -1V +6V
+ Dòng ngõ ra : 10mA
Gồm :
LM35 ,LM35A : -55°C 150°C
LM35C,LM35CA:
-40°C110°C
LM35D :0°C 100°C


Hoạt Động Chuyển Đổi Và Kết Nối LM35


Hoạt động chuyển đổi :

Chuyển đổi sang °C

Mức chuyển đổi tuyến tính tương ứng 10mV/°C

Điện áp hoạt động từ 4  30V

Không tuyến tính ở mức ±¼°C

Trở kháng ngõ ra 0.1Ω đối với 10mA

,
Kết Nối LM35
Thang nhiệt độ cơ bản
Toàn thang nhiệt độ
<6=6.>82>3>?@AB>C26=6DE.6>@A:F.
DE.GHDE.HDE.)
>#IJ.>KDE.I.LM23123N<DE.2>OP
>#IJ.>KDE.I.LM23123N<DE.IAQ.
<.>82>3>6>18:F..>QP678.>82>3>F-?RS6>LM23
.EK2>&-4A23.>82>3>6T.>C?U6V<3>?LW6
<.>82>3>6>18:F..>QP678.>82>3>F-?RS6>LM23
.EK2>&-4A23.>82>3>6T.>C?U6V<3>?LW6
>82>3>PCLXProgram Counter Least Signicant ByteY

*
CÁC THANH GHI LIÊN QUAN
>82>3>PIR1
>82>3>ADCON1

>82>3>ADRESH & ADRESL
<6=6.>82>3>TRISB, TRISC, TRISD
>82>3>PIE1
>82>3>.EZ23.>=XStatus RegisterY
>82>3>ADCON0

9
THANH GHI TRẠNG THÁI
Thanh ghi trạng thái (Status register) :

Có địa chỉ lần lượt là 03h, 83h,103h, 183h tại 4 bank thanh ghi.

TGTT chứa trạng thái của khối ALU, trạng thái reset và các bit chọn Bank
bộ nhớ dữ liệu.
IRP RP1 RP0 T0 PD Z DC C
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-X R/W-X R/W-X
RP1 RP0 C
=6G.6>U2G82B.>82>3>
=6G.6>U2G82B.>82>3>
G.6[.E<2X4\236>D())]!H())]HG]!HG]Y
JB>BR.^A_P>`P.D=26T.E<2
JB>BR.^A_P>`P.D=2B>a23.E<2
G.6[.E<2X4\236>D())]!H())]HG]!HG]Y
JB>BR.^A_P>`P.D=26T.E<2
JB>BR.^A_P>`P.D=2B>a23.E<2
Chọn bank thanh ghi
 G82B+X:>b!!>Y
 G82BX>b9!>Y
 G82BX:>b!!>Y
 G82BX>b9!>Y


:
Thanh ghi PIE1 : Địa chỉ 8Ch
Là thanh ghi chứa các bit cho phép ngắt độc lập cho các ngắt ngoại vi
PSPIE RCIE TXIE SSPIE CCP1IE
TMR2IE TMR1IE
ADIE
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
G.9$6>DP>`P23c.?U63>dPDE.2>=2>/D23/D23
J6>DP>`P23c.?U63>
JB>a236>DP>`P23c.?U63>
G.9$6>DP>`P23c.?U63>dPDE.2>=2>/D23/D23
J6>DP>`P23c.?U63>
JB>a236>DP>`P23c.?U63>
TXIE
CCP1IE
TMR1IE
RCIE
SSPIE
PSPIE
TMR2IE
G.*$6>DP>`P23c.F-6>AeC2?f()
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.*$6>DP>`P23c.F-6>AeC2?f()
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.,$6>DP>`P23c.2>O24gNhA(#
J6>DP>`P23c.
JB>a236>DP>`P23c.

G.,$6>DP>`P23c.2>O24gNhA(#
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c.P>=.4gNhA(#
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c.P>=.4gNhA(#
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.+$6>DP>`P23c.PDE.20iRP?j23F-
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.+$6>DP>`P23c.PDE.20iRP?j23F-
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c.
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c.
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c..LM23.>k6>123#Vl#
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c..LM23.>k6>123#Vl#
J6>DP>`P23c.
JB>a236>DP>`P23c.
G.$6>DP>`P23c..E<2#
J6>DP>`P23c.#.E<2
JB>a236>DP>`P23c.#.E<2

G.$6>DP>`P23c..E<2#
J6>DP>`P23c.#.E<2
JB>a236>DP>`P23c.#.E<2
THANH GHI PIE1
G.,$6[F=D23c.2>O2(#
J(#2>O2ID23
J(#2>O26>L8ID23
G.,$6[F=D23c.2>O2(#
J(#2>O2ID23
J(#2>O26>L8ID23
G.$6[F=D23c..EAe@2(#
J.EAe@2?hS678(#6m2.E023
J.EAe@2?hS678(#?ne
G.$6[F=D23c..EAe@2(#
J.EAe@2?hS678(#6m2.E023
J.EAe@2?hS678(#?ne
G.+$6[F=D23c.PDE.20iRP?j23F-
G.+$6[F=D23c.PDE.20iRP?j23F-
G.$6[F=D23c.
>R?-68P.AEo$
J.>82>3>Fc.2>pP#6TI_eE8XIT8Fq23P>n2S@SY
J.>82>3>Fc.2>pP#B>a23I_eE8
>R?-/D/=2>$
J.>k6>123/D/=2>.>82>3>#6TI_eE8
J.>k6>123/D/=2>.>82>3>#B>a23I_eE8
G.$6[F=D23c.
>R?-68P.AEo$
J.>82>3>Fc.2>pP#6TI_eE8XIT8Fq23P>n2S@SY
J.>82>3>Fc.2>pP#B>a23I_eE8
>R?-/D/=2>$

J.>k6>123/D/=2>.>82>3>#6TI_eE8
J.>k6>123/D/=2>.>82>3>#B>a23I_eE8
G.$6[F=D23c..LM23.>k6>#Vl#
J#.LM23.>k6>Vl#XIT8Fq23P>n2S@SY
J#B>a23.LM23.>k6>Vl#
G.$6[F=D23c..LM23.>k6>#Vl#
J#.LM23.>k6>Vl#XIT8Fq23P>n2S@SY
J#B>a23.LM23.>k6>Vl#
G.$[F=D23c..E<2#
J.>82>3>#?r.E<2
J.>82>3>#B>a23.E<2
G.$[F=D23c..E<2#
J.>82>3>#?r.E<2
J.>82>3>#B>a23.E<2

;
Thanh ghi PIR1 : Địa chỉ 0Ch
Là thanh ghi chứa các bit cờ cho các ngắt ngoài
PSPIE RCIE TXIE SSPIE CCP1IE
TMR2IE TMR1IE
ADIF
R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0
G.9$6[F=D23c.PDE.2>=2>/D23/D23?U63>
J>DZ.?-23?U6>Ds63>?LW6.>t6.>
J>DZ.?-23?U6>Ds63>B>a23I_eE8
G.9$6[F=D23c.PDE.2>=2>/D23/D23?U63>
J>DZ.?-23?U6>Ds63>?LW6.>t6.>
J>DZ.?-23?U6>Ds63>B>a23I_eE8
TXIF
CCP1IF

TMR1IF
RCIF
SSPIF
PSPIF
TMR2IF
G.*$6[F=D23c.F-6>AeC2?f()
J6>AeC2?f()?r?LW6>D<2.><2>
J6>AeC2?f()6>L8?LW6>D<2.><2>
G.*$6[F=D23c.F-6>AeC2?f()
J6>AeC2?f()?r?LW6>D<2.><2>
J6>AeC2?f()6>L8?LW6>D<2.><2>
THANH GHI PIR1
Thanh ghi ADCON0(A/D Control Register 0) :

Địa chỉ 1Fh

Điều khiển hoạt động của khối ADC.
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0
G.Sd23Aj26>D()>DZ.?-23
J6>AeC2?f()?LW6Sd23Aj2
JB>0()?LW6.c.23Aj2?C3_S6a23/AQ.iuA.>5
G.Sd23Aj26>D()>DZ.?-23
J6>AeC2?f()?LW6Sd23Aj2
JB>0()?LW6.c.23Aj2?C3_S6a23/AQ.iuA.>5
G.F=D.EZ23.>=6>AeC2?f()
J>AeC2?f()?8234v2E8
J6>AeC2?f()B>a234v2E8
G.F=D.EZ23.>=6>AeC2?f()
J>AeC2?f()?8234v2E8
J6>AeC2?f()B>a234v2E8

=6G.Nt86>U2Bu2>.LM23.t
=6G.Nt86>U2Bu2>.LM23.t
=6G.Nt86>U2IA236>AeC2?f()
=6G.Nt86>U2IA236>AeC2?f()
ADCS1
RP1 RP0
CHS1 CHS0
GO/
DONE
C


THANH GHI ADCON0
ADCS0
CHS2
ADON
ADCS0ADCS1
CHS2 CHS1 CHS0
"
)"'
ADCON1
<ADCS2>
ADCON0
<ADCS1:ADCS0>
Clock Conversion
  !D/6
  !D/6:
  !D/6+
  !E6XND6B4oEVo4wDES2.oE28N()#"/6NN8.DEY
  !D/6

  !/6*
  !D/6*
  !E6
000 Kênh 0(AN0)
 u2>X(Y
 u2>X(Y
 u2>+X(+Y
 u2>X(Y
 u2>,X(,Y
 u2>*X(*Y
 u2>9X(9Y
ADCS1
RP1 RP0
CHS1 CHS0
C


THANH GHI ADCON1
Thanh ghi ADCON1(A/D Control Register 1) :

Có địa chỉ 9Fh

Thiết lập chức năng cho các chân của Port là các ngõ vào nhận tương tự
hoặc các chân xuất nhập IO.
R/W-0 R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
ADCS0

PCFG0
ADCS2ADFM
PCFG3 PCFG2

PCFG1
bb
G.?@AB>C2()
G.?@AB>C2()
G.Nt86>U2IA236ND6B6>D6>AeC2?f()
XR.>WPVl6=6F.()V<()d.>82>3>()"Y
G.Nt86>U2IA236ND6B6>D6>AeC2?f()
XR.>WPVl6=6F.()V<()d.>82>3>()"Y
G.Nt86>U2?p2>4Z23BR.^A_()
J82>N@P>_H()#'JxIIy
J82>N@.E=H()#'JxIIy
G.Nt86>U2?p2>4Z23BR.^A_()
J82>N@P>_H()#'JxIIy
J82>N@.E=H()#'JxIIy
PCFG<3:0> AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 Vref+ Vref- C/R
 ( ( ( ( ( ( ( ( ))  :
 ( ( ( ( Eowz ( ( ( (+  9
 ) ) ) ( ( ( ( ( ))  ,
 ) ) ) ( Eowz ( ( ( (+  +
 ) ) ) ) ( ) ( ( ))  +
 ) ) ) ) Eowz ) ( ( (+  
{ ) ) ) ) ) ) ) ) bb bb 
 ( ( ( ( Eowz Eowb ( ( (+ ( *
 ) ) ( ( ( ( ( ( ))  *
 ) ) ( ( Eowz ( ( ( (+  ,
 ) ) ( ( Eowz Eowb ( ( (+ ( 
 ) ) ) ( Eowz Eowb ( ( (+ ( +
 ) ) ) ) Eowz Eowb ( ( (+ ( 
 ) ) ) ) ) ) ) ( ))  
 ) ) ) ) Eowz Eowb ) ( (+ ( 



THANH GHI ADRESH VÀ ADRESL
(địa chỉ 1Eh,9Eh)
G.BR.^A_
G.BR.^A_


2 1 0 77
0


0 7 6 5
7
0
ADRESH ADRESL ADRESH ADRESL
10 Bit kết quả
10 Bit kết quả
Canh trái
Canh phải
ADFM=1 ADFM=0
Lưu kết quả chuyển đổi ADC
8.>82>3>2<eB>a23Fp_2>>Ld23Fd#''N|66QP?h2
>?TH4gNhA.ED23.>82>3>N<B>a23I=6?p2>
KHỐI CHUYỂN ĐỔI A/D
Mộtsốđặcđiểm:

Có 8 kênh ngõ vào,mỗi kênh là 10 bit.

Các chân điện áp thấp và cao có thể lập trình bằng phần mềm.


Có thể hoạt động khi vi điều khiển ở chế độ sleep với điều kiện chọn xung cung cấp là RC.

Được điều khiển chủ yếu bằng 4 thanh ghi ADRESH,ADRESL, ADCON0 và ADCON1.

Khi reset PIC, khối ADC tắt và hủy bỏ quá trình ADC đang chuyển đổi.

Thời gian chuyển đổi 1 bit là T
AD
. Để chuyển đổi chính xác chọn T
AD
=1.6US.



,
h2>NooP
h2>NooP
Go=0
Go=0
Chế độ
Sleep
Chế độ
Sleep
Chọn kênh ngõ vào
Chọn kênh ngõ vào
Chuyển đổi xongGo=0
ADIF=1
Chờ 2T
AD

>[
()
Chuyển đổi xong Go=0
ADIF=1
Chuyển đổi xong Go=0
ADIF=1
}2/NooPH.c.23Aj2()
}2/NooPH.c.23Aj2()
Pic được đánh
thức?
Pic được đánh
thức?
>[
()
ADON=0
ADON=0
Chờ 1 chu kì lệnh
Chờ 1 chu kì lệnh
Hủy chuyển đổi
Go=0
ADIF=1
Hủy chuyển đổi
Go=0
ADIF=1
Sleep
tắt A/D
Sleep
tắt A/D
ADCLK=RC
ADCLK=RC

Đ
S
Đ
Đ
S
S
Đ
S
S
Đ
S
ADON=0
Đ
LƯU ĐỒ HOẠT ĐỘNG CHUYỂN ĐỔI A/D
THIẾT LẬP CHUYỂN ĐỔI A/D
CácbướcthiếtlậpquátrìnhchuyểnđổiADC:
Bước 1: Thiết lập cấu hình ADC

Định cấu hình cho các chân tương tự/điện áp chuẩn và xuất/nhập số (ADCON1).

Chọn lựa kênh ngõ vào ADC (ADCON0)

Chọn lựa xung clock cho chuyển đổi ADC (ADCON0).

Mở điện cho ADC (ADCON0)
Bước 2: Thiết lập cấu hình ngắt ADC (nếu có)

Xóa bit ADIF

Set bit ADIE


Set bit GIE

Set bit PEIE
Bước 3: Chờ hết thời gian nhận giá trị thiết lập (2T
ad
)
Bước 4: Bắt đầu chuyển đổi: set bit GO/DONE
Bước 5: Chờ chuyển đổi xong

Kiểm tra liên tục bit GO/DONE về 0 hay chưa hoặc ADIF bằng 1 hay không.

Chờ ngắt adc xảy ra
Bước 6: Đọc cặp thanh ghi kết quả (ADRESH:ADRESL).
Bước 7: Thực hiện chuyển đổi kế tiếp, chuyển đến bước 1 hoặc 2 tùy theo yêu cầu.

*

×