PDA

View Full Version : Làm mạch đo nhiệt độ


apiker
09-09-2011, 07:59 PM
Em mới bắt đầu học pic, đang định làm cái mạch đo nhiệt độ dùng pic và lm35, hiển thị lên led 7 đoạn, viết bằng assembly.

Em có rất nhiều vấn đề còn thắc mắc về chương trình, như dùng adc trong pic... :|

Biết đây là 1 vấn đề đã quá quen thuộc nên trước khi lập thớt này, em cũng đã tìm trong diễn đàn nhưng ko thấy( rất có thể do em tìm chưa kỹ), mong các bác pót cho em một chương trình mẫu để em lấy làm mẫu, hoặc có thể chỉ cho em thớt có nói về vấn đề này.

Rất mong các bác giúp đỡ, khai sáng thêm cho em! Rất cảm ơn mọi người! :D

apiker
11-09-2011, 11:02 PM
hình như đợt này đang trung thu, các bác còn bận đi chơi nên chưa có thời gian rảnh thì phải!

HAI1817
12-09-2011, 01:51 PM
Em mới bắt đầu học pic, đang định làm cái mạch đo nhiệt độ dùng pic và lm35, hiển thị lên led 7 đoạn, viết bằng assembly.

Em có rất nhiều vấn đề còn thắc mắc về chương trình, như dùng adc trong pic... :|

Biết đây là 1 vấn đề đã quá quen thuộc nên trước khi lập thớt này, em cũng đã tìm trong diễn đàn nhưng ko thấy( rất có thể do em tìm chưa kỹ), mong các bác pót cho em một chương trình mẫu để em lấy làm mẫu, hoặc có thể chỉ cho em thớt có nói về vấn đề này.

Rất mong các bác giúp đỡ, khai sáng thêm cho em! Rất cảm ơn mọi người! :D

cái này có giúp được gì cho ban không http://www.picvietnam.com/forum/showthread.php?t=7186&highlight=%C4%91i%E1%BB%81u+khi%E1%BB%83n+motro+3+ pha

ladykiller
20-11-2011, 11:33 PM
ADC thì trong tài liệu hướng dẫn đã có ví dụ cụ thể mà
mình nghĩ cái khó trong đề tài của bạn là đổi BCD ( nhị phân sang thập phân) sau đó quét led

ladykiller
11-03-2012, 11:36 PM
đây là chương trình mình viết đo nhiệt độ với yêu cầu là Uc= VCC = 5v ( yêu cầy này khó hơn là Uc = 2.56v) và báo động quá nhiệt ở RD0 ( 70 độ) bạn có thể tham khảo
PROCESSOR 16F877A
#INCLUDE<P16F877A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;================================================= =======================
;KHOI TAO CAC BIEN
;================================================= =======================
CBLOCK 0X020
TRAM
CHUC
DONVI

DEM
DEM1
TAM
ENDC
;------------------------------------------------------------------------
ORG 0000H
;------------------------------------------------------------------------
;KHOI TAO CAC NGO RA
;------------------------------------------------------------------------
BANKSEL TRISB
CLRF TRISB
CLRF TRISE
BCF TRISD,0
BANKSEL PORTB
CLRF PORTB
CLRF PORTE
BCF PORTD,0
;================================================= =======================
MAIN
BSF PORTD,0
CALL DOC_ADC
CALL SOSANH
CALL BCD
CALL QUETLED
GOTO MAIN
;================================================= =======================
SOSANH

CLRF DONVI
CLRF CHUC
CLRF TRAM
CALL DOC_ADC
BANKSEL ADRESL
MOVF ADRESL,W
BANKSEL TAM
MOVWF TAM
BCF STATUS,0
RRF TAM
BCF STATUS,0
MOVLW D'70'
SUBWF TAM,0
BTFSC STATUS,0
GOTO ON

RETURN
;----------------------------------------------------------------------
ON
BCF PORTD,0
RETURN
;================================================= ======================
BCD

MOVLW D'10'
SUBWF TAM,1
BTFSS STATUS,0
GOTO THAP
INCF CHUC,1
MOVLW D'10'
XORWF CHUC,0
BTFSS STATUS,2
GOTO BCD
INCF TRAM,1
MOVLW D'0'
MOVWF CHUC
GOTO BCD
THAP
MOVLW D'10'
ADDWF TAM,0
MOVWF DONVI
RETURN
;----------------------------------------------------------------------
QUETLED
MOVLW B'011'
MOVWF PORTE
MOVF DONVI,W
CALL BANG
MOVWF PORTB
CALL DELAY

MOVLW B'101'
MOVWF PORTE
MOVF CHUC,W
CALL BANG
MOVWF PORTB
CALL DELAY

MOVLW B'110'
MOVWF PORTE
MOVF TRAM,W
CALL BANG
MOVWF PORTB
CALL DELAY

RETURN
;---------------------------------------------------------------------
BANG

ADDWF PCL,1
RETLW B'11000000'
RETLW B'11111001'
RETLW B'10100100'
RETLW B'10110000'
RETLW B'10011001'
RETLW B'10010010'
RETLW B'10000010'
RETLW B'11111000'
RETLW B'10000000'
RETLW B'10010000'
;================================================= ====================

DOC_ADC
BANKSEL PIR1
CLRF PIR1
BSF STATUS,5

BSF ADCON1,3
BSF ADCON1,2
BSF ADCON1,1
BCF ADCON1,0
BCF STATUS,5

BCF ADCON0,5
BCF ADCON0,4
BCF ADCON0,3

BCF ADCON0,7
BCF ADCON0,6
BSF STATUS,5
BSF ADCON1,6

BSF ADCON1,7

BCF STATUS,5
BSF ADCON0,0
BSF ADCON0,2
LOOP2
BCF STATUS,5
BTFSC ADCON0,2
GOTO LOOP2
RETURN
;================================================= ====================
DELAY
BANKSEL OPTION_REG
BCF OPTION_REG,3
BcF OPTION_REG,2
BCF OPTION_REG,1
BsF OPTION_REG,0
BCF STATUS,5
MOVLW D'7'
MOVWF DEM
LOOP1
MOVLW D'17'
MOVWF TMR0
BSF STATUS,5
BCF OPTION_REG,5
BCF STATUS,5
LOOP
BTFSS INTCON,2
GOTO LOOP
BCF INTCON,2
DECFSZ DEM,1
GOTO LOOP1
RETURN
END