Professional Documents
Culture Documents
Chương 1: Nguyên Lí Hoạt Động Của Hệ Thống Vi Điều Khiển
Chương 1: Nguyên Lí Hoạt Động Của Hệ Thống Vi Điều Khiển
Đ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
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
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
Ư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
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Ế