You are on page 1of 34

CHƯƠNG 1: NGUYÊN LÍ HOẠT ĐỘNG CỦA HỆ THỐNG VI

ĐIỀU KHIỂN

1.1 Xây dựng mục tiêu và sơ đồ khối của hệ thống dùng vi điều khiển PIC
Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm 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à “Thiết kế hệ
thống đo nhiệt độ và độ ẩm hiển thị trên LCD dùng vi điều khiển”.
1.2 Sơ đồ khối của hệ thống dùng vi điều khiển PIC

1.3 Nguyên lí hoạt động của hệ thống


 Nhiệt độ, độ ẩm từ môi trường được quy đổi trực tiếp thành tín hiệu tương tự từ
cảm biến nhiệt độ & độ ẩm DHT11.
 Cảm biến DHT11 đưa trực tiếp tín hiệu tương tự vừa đo được vào bộ ADC tích
hợp sẵn trong vi điều khiển PIC và vi điều khiển chuyển đổi thành tín hiệu số.
 Theo chương trình đã được lập trình sẵn, vi điều khiển sẽ xử lí tín hiệu số được lấy
từ cảm biến, tính toán để thực hiện các hành động mà người dùng mong muốn.
 Vi điều khiển sẽ hiển thị thông tin về nhiệt độ, độ ẩm cho người dùng trên LCD
16x2.
 Khi các thông số vượt ngưỡng trên hay vượt ngưỡng dưới do ta cài đặt trước thì sẽ
được cảnh báo đến người dùng như sau :
+ Khi nhiệt độ, độ ẩm vượt ngưỡng trên thì đèn LED đỏ sáng.
+ Khi nhiệt độ, độ ẩm vượt ngưỡng dưới thì đèn LED vàng sáng.
+ Khi nhiệt độ, độ ẩm ở mức ổn định thì đèn LED xanh sáng.
CHƯƠNG 2: TÍNH CHỌN LINH KIỆN SỬ DỤNG TRONG HỆ
THỐNG

2.1 Giới thiệu linh kiện trong hệ thống


a) AMT1001 – cảm biến nhiệt độ và độ ẩm

Thông số kỹ thuật:
 Nguồn cấp: 4.45~5.25VDC
 Tín hiệu đầu ra độ ẩm: 0,6 ~ 2,7 VDC
 Phần tử cảm biến độ ẩm: điện trở polymer
 Cảm biến nhiệt độ: nhiệt điện trở NTC 10K.
 Phạm vi hoạt động: 20-95% RH; nhiệt độ 0 ~ 60 độ
 Độ ẩm chính xác: ±5% rh
 Độ phân giải hoặc độ nhạy độ nhạy: 1% rh; nhiệt độ 1 độ C.
 Giá trị suy giảm (nhiệt độ) <0,1 ° C / năm
 Giá trị suy giảm (độ ẩm) <0,5% rh / năm
 Thời gian đáp ứng: 10 giây (trung bình)
 Cảm biến tụ điện độ ẩm chất lượng cao
 Chất liệu vỏ nhựa ABS
 Trao đổi khả năng: hoán đổi cho nhau
Relvant Humidity 0 10 20 30 40 50 60 70 80 90 100
Voltage Output 0 0,3 0,6 0,9 1,2 1,5 1,8 2,1 2,4 1,7 3,0
Từ bảng số liệu trên, ta suy ra mối liên hệ giữa độ ẩm và điện áp đầu ra quy đổi từ độ ẩm
×(2¿¿ n−1)
là: giátrị chuyển đổi =3 ¿
100. ¿ ¿
3× 1023
¿ . độ ẩm =10,23 × độ ẩm
100.3

Trong đó V REF+¿=V DD ¿ và V REF−¿=V SS ¿

Relvant Humidity 0 10 20 30 40 50 60
Điện trở (k) 27,9 18,22 12,12 8,31 5,8 4,12 3

Từ đường đặc tính, ta suy ra:


0,6.(2n −1)
giá trị chuyển đổi =
60 × ¿ ¿
0,6.1023
¿ × nhiệt độ
60.0,6
¿ 17,05 ×nhiệt độ

Trong đó V REF+¿=V DD ¿ và V REF−¿=V SS ¿

Ưu điểm: Tiêu thụ điện năng thấp, kích thước nhỏ, bù nhiệt độ, hiệu chuẩn đầu ra tuyến
tính SCM, dễ sử dụng, chi phí thấp, có thể thay thế hoàn toàn, khoảng cách truyền tín
hiệu cực dài, hiệu chuẩn chính xác.
Ứng dụng: HVAC, máy tạo độ ẩm, máy hút ẩm, thông tin liên lạc, giám sát môi trường
khí quyển, kiểm soát quá trình công nghiệp, nông nghiệp, dụng cụ đo lường và các ứng
dụng khác.
b) Màn hình LCD 16x2

Vss: tương đương với chân GND – cực âm


Vdd: tương đương với VCC- cực dương
Enable/pin: cho phép ghi vào LCD
D0-D7: 8 chân dữ liệu
Backlight (Anode và Cathode): bật tắt màn hình LCD
Sơ đồ kết nối chân với PIC:

Bảng 2. Sơ đồ nối dây AMT1001


LCD1602 PIC 18F4520A
Vss GND
Vdd 5V
Vee RV1
RS C0
R/W C1
E C2
D0 D0
D1 D1
D2 D2
D3 D3
D4 D4
D5 D5
D6 D6
D7 D7
A 5V
K GND

c) Vi điều khiển PIC18F4520


PIC là một họ vi điều khiển được sản xuất bởi công ty Microchip Technology. PIC là viết
tắt của “Programmable Intelligent Computer” bộ điều, là khiển giao tiếp ngoại vi.
Hiện nay PIC 18F4520A được sử dụng rộng rãi với ưu thế ứng dụng ngôn ngữ c/c++ dễ
sử dụng cho người lập trình, giúp học sinh/ sinh viên có thể tiếp cận trực tiếp, Hơn thế
nữa việc truyền nhận dữ liệu trên PIC đơn giản với các giao tiếp thông dụng như UART,
I2C,…mà vẫn đáp ứng được nhu cầu của người sử dụng.
Ý nghĩa của 18F4520A: 18xxx là độ dài lệnh 16bit và F là có bộ nhớ flash.
Các đặc điểm cơ bản của vi điều khiển PIC:
Có MSSP Peripheal dùng cho các giao tiếp I2C, SPI và I2S.
Có bộ nhớ nội EEPROM-có thể ghi/xóa lên tới 1 triệu lần.
Có khối điều khiển động cơ, đọc encoder.
Có hỗ trợ giao tiếp USB
Sơ đồ chân
PIC18F4520A có tất cả 40 chân như hình, 40 chân trên 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 RESET mạch.
5 port của PIC18F4520A có tên gọi A, B, C, D, E bao gồm lần lượt 8, 8, 8, 8, 3 chân.
Cấu trúc bộ nhớ chương trình:
Bộ nhớ chương trình của vi điều khiển PIC18F4520A là bộ nhớ flash có dung lượng 32K
word (1 word = 14 bit).
Đặc tính PIC18F4520
Tần số làm việc DC – 40MHz
Bộ nhớ chương trình(bytes) 32768
Bộ nhớ chương trình(lệnh) 16384
Bộ nhớ dữ liệu 1536
Bộ nhớ dữ liệu EEPROM 256
Nguồn ngắt 20
Các cồng I/O Cổng A, B, C, D, E
Bộ định thời 4
Các module/compare/PWM 1
giao tiếp nối tiếp MSSP, USART
Giao tiếp song song Có
Module A/D 10bit 13 kênh ngõ vào
2.2 Tính toán linh kiện
a) Mạch nguồn
Sử dụng IC ổn áp 7805 để tạo điện áp ổn định +5V ngoài ra sử dụng diode 1N1111 và
các tụ hóa 1000μF, 100μF và tụ gốm 100nF để ổn định giá trị điện áp.
b) Điện trở cho đèn LED
Vì điện áp nguồn là 5V, cường độ dòng điện định mức là 20mA
5−2,1
I= =20 mA => R2=145 . Chọn trở 200 .
R
5−2,1
Tính lại dòng điện I = = 14.5 mA.
200

c) Công suất tiêu thụ của mạch


- công suất AMT1001: P ATM =5.2 .10−3=0,01(W ).
- công suất LCD 16x2: P LCD=5.1 .10−3=0,005(W ).
- công suất PIC18F4520: P PIC =0,025 × ( số chân ) × ( V DD−V sụt áp )
¿ 0,025 ×15 ×(5−0,7)=1,62(W ).

- công suất 3 đèn LED: P LED=3.2,1 .14,5 .10−3=0,09135(W ).


- Tổn hao khác trên mạch như dây dẫn, nút nhấn, rò rỉ điện: Pth =1 W

- Tổng công suất tiêu thụ trên toàn mạch: P=2,72635 W


CHƯƠNG 3: MÔ PHỎNG HỆ THỐNG

3.1 Thiết kế mạch nguyên lý


3.2 Lưu đồ thuật toán
 Chương trình chính:
 Lưu đồ thuật toán phép chia:
 Lưu đồ thuật toán tách số:
 Lưu đồ thuật toán phần kiểm tra ngưỡng nhiệt độ và độ ẩm
3.3 Chạy mô phỏng chương trình bằng phần mềm ứng dụng Proteus

 Khi giá trị nhiệt độ và độ ẩm nằm trong ngưỡng bình thường

 Khi giá trị nhiệt độ và độ ẩm vượt quá ngưỡng cao:


 Khi giá trị nhiệt độ và độ ẩm xuống quá ngưỡng thấp:

3.4 Chương trình điều khiển

PROCESSOR PIC18F4520
#include <p18f4520.inc>
CONFIG WDT=OFF ;tat watch dog timer
CONFIG BOREN=OFF ;khoi dong lai khi nguon cap thap hon muc yeu cau
CONFIG OSC=HS ;dung thach anh ngoai
CONFIG LVP=OFF ;
CONFIG MCLRE=ON ;dung nut reset
CONFIG PWRT = OFF ;Power-up Timer Enable bit (PWRT disabled)
CBLOCK 0x20
DVD1L, DVD1H, DVS1L, DVS1H, QU1L, QU1H, RE1L, RE1H
DVD2L, DVD2H, DVS2L, DVS2H, QU2L, QU2H, RE2L, RE2H
RESULT1L, RESULT1H
RESULT2L, RESULT2H
COUNT, COUNT1, COUNT2
TEN1, UNIT1, DEC1, TEN2, UNIT2, DEC2

ENDC

#DEFINE RS PORTC,0
#DEFINE RW PORTC,1
#DEFINE E PORTC,2
ORG 0X00

MAIN
CLRF TRISC
CLRF TRISD
CLRF TRISB
CALL INIT_LCD ;cau hinh LCD
CALL PRE_LINE ;khoi dong LCD
CALL INIT_ADC_1 ;cau hinh ADC1
CALL START_ADC_1 ;bat module ADC
CALL XU_LY_PT_NHIET_DO ;tinh toan nhiet do
CALL XU_LY_KQ_NHIET_DO ;tach so
CALL INIT_ADC_2 ;cau hinh ADC0
CALL START_ADC_2 ;bat module ADC
CALL XU_LY_PT_DO_AM ;tinh toan do am
CALL XU_LY_KQ_DO_AM ;tach so
CALL HIEN_THI_LCD ; hien thi 2 ket qua len LCD
CALL KT_NGUONG_NHIETDO ;kiem tra nguong nhiet do
CALL KT_NGUONG_DOAM ;kiem tra nguong do am
GOTO MAIN

INIT_ADC_1
CLRF ADRESL
CLRF ADRESH
MOVLW 0XFF
MOVWF TRISA
MOVLW 0X05
MOVWF ADCON0; AD On va dung channel 1
MOVLW 0X0D
MOVWF ADCON1 ;dien ap tham chieu la VDD, VSS va cau hinh chan la analog
MOVLW 0XAE
MOVWF ADCON2 ;chon tan so bang tan so thach anh chia 64
RETURN

INIT_ADC_2
CLRF ADRESL
CLRF ADRESH
MOVLW 0XFF
MOVWF TRISA
MOVLW 0X01
MOVWF ADCON0; AD On va dung channel 0
MOVLW 0X0D
MOVWF ADCON1 ;dien ap tham chieu la VDD, VSS va cau hinh chan la analog
MOVLW 0XAE
MOVWF ADCON2 ;chon tan so bang tan so thach anh chia 64
RETURN
START_ADC_1
BSF ADCON0,1
WAIT_CON_1
BTFSC ADCON0,1
BRA WAIT_CON_1
RETURN

START_ADC_2
BSF ADCON0,1
WAIT_CON_2
BTFSC ADCON0,1
BRA WAIT_CON_2
RETURN

INIT_LCD
MOVLW 0X38
CALL SEND_CMD ;cau hinh LCD 8-bit bus, 2-line display, 5x11 dots format
MOVLW 0X0C
CALL SEND_CMD ;dieu khien man hinh ON/OFF
RETURN

SEND_CMD
BCF RS
MOVWF PORTD
CALL ALLOW
CALL DELAY
RETURN
SEND_DATA
BSF RS
MOVWF PORTD
CALL ALLOW
CALL DELAY
RETURN

PRE_LINE
MOVLW 0X80
CALL SEND_CMD
MOVLW 'N'
CALL SEND_DATA
MOVLW 'H'
CALL SEND_DATA
MOVLW 'I'
CALL SEND_DATA
MOVLW 'E'
CALL SEND_DATA
MOVLW 'T'
CALL SEND_DATA
MOVLW 'D'
CALL SEND_DATA
MOVLW 'O'
CALL SEND_DATA
MOVLW ':'
CALL SEND_DATA
MOVLW 0x8E
CALL SEND_CMD
MOVLW B'11011111'
CALL SEND_DATA
MOVLW 'C'
CALL SEND_DATA
MOVLW 0XC0
CALL SEND_CMD
MOVLW 'D'
CALL SEND_DATA
MOVLW 'O'
CALL SEND_DATA
MOVLW 'A'
CALL SEND_DATA
MOVLW 'M'
CALL SEND_DATA
MOVLW ':'
CALL SEND_DATA
MOVLW 0xCF
CALL SEND_CMD
MOVLW '%'
CALL SEND_DATA
RETURN
DIV1
MOVLW 0XFE
CPFSGT QU1L
GOTO SUBL1
INCF QU1H,F
SUBL1
INCF QU1L
MOVF DVS1L,W
SUBWF DVD1L, F
BTFSS STATUS,C
DECF DVD1H,F
SUBH1
MOVF DVS1H,W
SUBWF DVD1H,F
BNN DIV1
DECF QU1L,F
MOVLW D'1'
CPFSLT QU1H
DECF QU1H, F
REMAINDER1
MOVF DVD1L, W
ADDWF DVS1L, W
MOVWF RE1L
BTFSC STATUS, C
INCF RE1H, F
MOVF DVS1H, W
ADDWF DVD1H, W
MOVWF RE1H
RETURN

DIV2
MOVLW 0XFE
CPFSGT QU2L
GOTO SUBL2
INCF QU2H, F
SUBL2
INCF QU2L
MOVF DVS2L,W
SUBWF DVD2L, F
BTFSS STATUS,C
DECF DVD2H,F
SUBH2
MOVF DVS2H,W
SUBWF DVD2H,F
BNN DIV2
DECF QU2L, F
MOVLW D'1'
CPFSLT QU2H
DECF QU2H, F
REMAINDER2
MOVF DVD2L, W
ADDWF DVS2L, W
MOVWF RE2L
BTFSC STATUS, C
INCF RE2H, F
MOVF DVS2H, W
ADDWF DVD2H, W
MOVWF RE2H
RETURN

XU_LY_PT_NHIET_DO
CALL CLEAR_DIV1
MOVLW 0X00
MOVWF DVS1H
MOVLW 0X0A
MOVWF DVS1L
MOVF ADRESL,W
MOVWF DVD1L
MOVF ADRESH,W
MOVWF DVD1H
CALL DIV1
MOVFF QU1L, RESULT1L
MOVFF QU1H, RESULT1H
RETURN

XU_LY_PT_DO_AM
CALL CLEAR_DIV2
MOVLW 0X00
MOVWF DVS2H
MOVLW 0X0A
MOVWF DVS2L
MOVF ADRESL,W
MOVWF DVD2L
MOVF ADRESH,W
MOVWF DVD2H
CALL DIV2
MOVFF QU2L, RESULT2L
MOVFF QU2H, RESULT2H
RETURN
XU_LY_KQ_NHIET_DO
MOVF RE1L, W
MULLW D'10'
CALL CLEAR_DIV1
MOVFF PRODH, DVD1H
MOVFF PRODL, DVD1L
MOVLW 0x0A
MOVWF DVS1L
MOVLW 0x00
MOVWF DVS1H
CALL DIV1
MOVFF QU1L, DEC1
CALL CLEAR_DIV1
MOVFF RESULT1H, DVD1H
MOVFF RESULT1L, DVD1L
MOVLW 0x00
MOVLW DVS1H
MOVLW 0x0A
MOVLW DVS1L
CALL DIV1
MOVFF QU1L, TEN1
MOVFF RE1L, UNIT1
RETURN

XU_LY_KQ_DO_AM
MOVF RE2L, W
MULLW D'10'
CALL CLEAR_DIV2
MOVFF PRODH, DVD2H
MOVFF PRODL, DVD2L
MOVLW 0x0A
MOVWF DVS2L
MOVLW 0x00
MOVWF DVS2H
CALL DIV2
MOVFF QU2L, DEC2
CALL CLEAR_DIV2
MOVFF RESULT2H, DVD2H
MOVFF RESULT2L, DVD2L
MOVLW 0x00
MOVLW DVS2H
MOVLW 0x0A
MOVLW DVS2L
CALL DIV2
MOVFF QU2L, TEN2
MOVFF RE2L, UNIT2
RETURN

HIEN_THI_LCD
MOVLW D'48'
ADDWF TEN1, F
ADDWF UNIT1, F
ADDWF DEC1, F
ADDWF TEN2, F
ADDWF UNIT2, F
ADDWF DEC2, F
MOVLW 0X89
CALL SEND_CMD
MOVF TEN1, W
CALL SEND_DATA
MOVF UNIT1, W
CALL SEND_DATA
MOVLW '.'
CALL SEND_DATA
MOVF DEC1, W
CALL SEND_DATA
MOVLW 0XCA
CALL SEND_CMD
MOVF TEN2, W
CALL SEND_DATA
MOVF UNIT2, W
CALL SEND_DATA
MOVLW '.'
CALL SEND_DATA
MOVF DEC2, W
CALL SEND_DATA
RETURN

KT_NGUONG_NHIETDO
MOVLW D'45'
SUBWF RESULT1L, W
CLRF WREG
SUBWFB RESULT1H, W
BC BAT11
MOVLW D'25'
SUBWF RESULT1L, W
CLRF WREG
SUBWFB RESULT1H, W
BNC BAT21
BCF PORTB, 0
BSF PORTB, 1
BCF PORTB, 2
GOTO OUT1
BAT11 BSF PORTB, 2
BCF PORTB, 1
BCF PORTB, 0
GOTO OUT1
BAT21 BSF PORTB, 0
BCF PORTB, 1
BCF PORTB, 2
GOTO OUT1
OUT1 RETURN

KT_NGUONG_DOAM
MOVLW D'70'
SUBWF RESULT2L, W
CLRF WREG
SUBWFB RESULT2H, W
BC BAT12
MOVLW D'40'
SUBWF RESULT2L, W
CLRF WREG
SUBWFB RESULT2H, W
BNC BAT22
BCF PORTB, 3
BSF PORTB, 4
BCF PORTB, 5
GOTO OUT2
BAT12 BSF PORTB, 5
BCF PORTB, 4
BCF PORTB, 3
GOTO OUT2
BAT22 BSF PORTB, 3
BCF PORTB, 4
BCF PORTB, 5
GOTO OUT2
OUT2 RETURN

CLEAR_DIV1
CLRF QU1L
CLRF QU1H
CLRF RE1L
CLRF RE1H
RETURN
CLEAR_DIV2
CLRF QU2L
CLRF QU2H
CLRF RE2L
CLRF RE2H
RETURN

ALLOW
BSF E
NOP
BCF E
RETURN

DELAY
MOVLW D'100'
MOVWF COUNT
DEL1
MOVLW D'199'
MOVWF COUNT1
MOVLW D'1'
MOVWF COUNT2
DEL2
DECFSZ COUNT1, 1
GOTO $+2
DECFSZ COUNT2, 1
GOTO DEL2
DECFSZ COUNT, 1
GOTO DEL1
RETURN

END
Chương 4: CHẾ TẠO MẠCH THỰC TẾ

4.1 Thiết kế mạch in

4.2 Lắp đặt thiết bị và hoàn thiện mạch

You might also like