|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
|
Ðiều Chỉnh | Xếp Bài |
09-09-2011, 07:59 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
Làm mạch đo nhiệt độ
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! |
11-09-2011, 11:02 PM | #2 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
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!
|
12-09-2011, 01:51 PM | #3 | |
Đệ tử 5 túi
Tham gia ngày: Feb 2010
Bài gửi: 94
: |
Trích:
|
|
20-11-2011, 11:33 PM | #4 |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
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 |
11-03-2012, 11:36 PM | #5 |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
đâ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 |
|
|