PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 11-10-2009, 12:47 PM   #1
gautruc
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
Lightbulb giúp em chuơng trình cảm biến LM35 này với

em có đề tài dùng cảm biến dùng pic 16f877a và cảm biến nhiệt độ lm35 đo nhiệt độ hiển thị ra lcd nhưng viết bang mpasm ngôn ngữ này viết phức tạp quá(viết bằng C còn đỡ). em đang bị bí chuơng trình viết ra nhưng khi mô phỏng nó không chạy. không biết nó sai chỗ nào mong các huynh xem dùm em với
billion thanks
Code:
;========================================================================== 
; Ten chuong trinh :Mach do nhiet do dung cam bien LM35 hien thi LCD
; Mo ta phan cung  : Dung PIC16F628A - thach anh 20MHz 
;    :cam bien nhiet LM35 mac vao kenh AN0 cua port0
;    :LCD giao tiep 8 bit. 
;    :RS, RW, E mac vao 3 chan RD5, RD6 RD7
;========================================================================== 
   TITLE   "Mach Do Nhiet Dung Cam Bien LM35 Hien Thi LCD.asm" 
  PROCESSOR P16F877A 
  INCLUDE  <P16F877A.inc> 
  __CONFIG     _CP_OFF & _PWRTE_ON & _XT_OSC &_WDT_OFF & _HS_OSC & _BODEN_OFF & _LVP_OFF & _CPD_OFF
 
;========================================================================== 
    CBLOCK    0x020
    TRAM
    CHUC
    DVI
    SOBICHIA
    SOCHIA
    SODU
    THUONG
    KQCD
    ADC
    COUNT1
    COUNT2
    COUNT3
    COUNT4
    TICH
    SONHAN1
    SONHAN2
    A
    ENDC
;=========================================================================== 
   ORG 0x0000 
   GOTO     START 
     
   ORG         0x0005 
START 
    BANKSEL    TRISA
    CLRF    TRISB
    CLRF    TRISD    
    MOVLW    H'FF'
    MOVWF    TRISA            ;portA nhan du lieu ADC
    CLRF    ADCON1
    MOVLW    B'11001000'
    MOVWF    ADCON1
    BANKSEL    ADCON0
    BSF        ADCON0,    0        ;bat nguon cho ADC hoat dong
    BSF        ADCON0,    7        ;chon kenh AN0
    BCF        ADCON0,    5
    BCF        ADCON0,    4
    BCF        ADCON0,    3
    CALL    KTLCD
    CALL    DONG1
MAIN     
    CALL    TRANFER_ADC
    CALL    DELAY40MS
    CALL    DONG2
    CALL    DELAY40MS
    GOTO    MAIN 
;===========================================================================
;cac chuong trinh con
;===========================================================================

;--------------------------------------------------------------------------
;chuong trinh con chuyen doi ADC
;--------------------------------------------------------------------------
TRANFER_ADC
    CALL    DELAY12MS
    CALL    TRAN            ;goi chuong trinh con chuyen doi ADC
    MOVF    ADRESL,    0
    MOVWF    KQCD
    CALL    HEXTOASCII        ;giai ma ket qua chuyen doi
     RETURN
;--------------------------------------------------------------------------
;chuong trinh con ADC
;--------------------------------------------------------------------------
TRAN
    BSF        ADCON0,    2        ;set bit go/done cho phep chuyen doi
KT    BTFSC    ADCON0,    2        ;kiem tra chuyen doi xong chua, chua ve lam tiep
    GOTO    KT
    RETURN
;---------------------------------------------------------------------------
;chuong trinh con chuyen ma hex sang MA LCD
;---------------------------------------------------------------------------
HEXTOASCII
    BANKSEL    KQCD
    MOVF     KQCD,    0        ;nhiet do = ADC *100/ 51
    MOVWF    SONHAN1
    MOVLW    D'100'
    MOVWF    SONHAN2
    CALL    MUL
    MOVF     TICH,    0
    MOVWF    SOBICHIA
    MOVLW    D'51'
    MOVWF    SOCHIA
    CALL    DIVITE
    MOVF    THUONG, 0
    MOVWF    KQCD
    MOVLW    D'55'
    SUBWF    KQCD,    0        ;so sanh ket qua voi 55
    BTFSS    STATUS,    0        ;so sanh voi co c
    GOTO    NHIETAM            ;co C=0, tuc phep toan co kq <0
    GOTO    NHIETDUONG        ;co C=1, tuc phep toan co kq >0
NHIETAM                        ;giai ma nhiet do am tu -55 den -1 do C
    MOVLW    D'45'        
    MOVWF    TRAM            ;ma asscii cua dau '-'
    MOVF    KQCD,    0
    SUBLW    D'55'
    MOVWF    SOBICHIA
    MOVLW    D'10'
    MOVWF    SOCHIA
    CALL    DIVITE
    MOVF    SODU,    0
    ADDLW    0x30
    MOVWF    DVI
    MOVF    THUONG,    0
    ADDLW    0x30
    MOVWF    CHUC
    MOVF    CHUC,    0        ;kiem tra hang chuc de xoa so 0 vo nghia
    XORLW    D'48'            ;so sanh voi so 0
    BTFSS    STATUS,    Z
    GOTO    EXIT            ;thoat chuong trinh con neu chuc khac 0
    MOVLW    D'32'            ;neu chuc la 0 thi hien thi khoang trang
    MOVWF    CHUC
    GOTO    EXIT
NHIETDUONG
    MOVWF    SOBICHIA        ;sobichia = kqcd - 55
    MOVLW    D'10'            
    MOVWF    SOCHIA
    CALL    DIVITE
    MOVF    SODU,    0
    ADDLW    0x30
    MOVWF    DVI
    MOVF    THUONG,    0
    CALL    DIVITE
    MOVF    SODU,    0
    ADDLW    D'30'
    MOVWF    CHUC
    MOVF    THUONG,    0
    ADDLW    D'30'
    MOVWF    TRAM
    MOVF    TRAM,    0        ;kiem tra hang tram de xoa so 0 vo nghia
    XORLW    D'48'            ;so sanh voi so 0
    BTFSS    STATUS,    Z
    GOTO    EXIT            ;thoat chuong trinh con neu tram khac 0
    MOVLW    D'32'            ;neu tram la 0 thi hien thi khoang trang
    MOVWF    TRAM
    MOVF    CHUC,    0        ;kiem tra hang chuc de xoa so 0 vo nghia
    XORLW    D'48'            ;so sanh voi so 0
    BTFSS    STATUS,    Z
    GOTO    EXIT            ;thoat chuong trinh con neu chuc khac 0
    MOVLW    D'32'            ;neu chuc la 0 thi hien thi khoang trang
    MOVWF    CHUC
    GOTO    EXIT
EXIT
    RETURN
;----------------------------------------------------------------------
;chuong trinh con divide
;----------------------------------------------------------------------
DIVITE
    CLRF    THUONG
X    MOVF    SOCHIA,    0
    SUBWF    SOBICHIA,1        ;W=sodu-sochia, c=1 neu kq>=0 va nguoc lai
    BTFSC     STATUS,    C        ;bo qua lenh ke neu c=1, kq duong
    GOTO    EXIT1            ;thoat khoi chuong trinh con neu kq am
    INCF    THUONG,    1        ;tang thuong so len 1
    MOVF    SOBICHIA,0
    MOVWF    SODU
    GOTO    X
EXIT1
    RETURN
;----------------------------------------------------------------------
;chuong trinh con MUL
;----------------------------------------------------------------------
MUL
    CLRF  TICH
Y    MOVF  SONHAN1, 0
    ADDWF SONHAN1, 0
    MOVWF TICH
    DECFSZ SONHAN2, 1
    GOTO  Y
    RETURN

;----------------------------------------------------------------------
;chuong trinh con khoi tao LCD
;----------------------------------------------------------------------
KTLCD
    MOVLW    0x38            ;Set 8 bit mode, hien thi 2 hang, kieu ki tu 5x8
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY40MS
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY40MS
    MOVLW    0X0C
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY40MS
    MOVLW    0X01
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY40MS
    RETURN
GHIMADK
    MOVF    A,0
    MOVWF    PORTB
    BCF        PORTD,0
    BCF        PORTD,1
    BSF        PORTD,2
    BCF        PORTD,2
    RETURN
;-----------------------------------------------------------------------
;chuong trinh con hien thi chu dong 1
;-----------------------------------------------------------------------
DONG1
    MOVLW    0x80            
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY
    CLRF    COUNT4
LABEL3
    MOVF    COUNT4,    0
    CALL    TABLE2
    MOVWF    A
    CALL    GHIDL
    CALL    DELAY
    INCF    COUNT4,0
    XORLW    D'20'
    BTFSC    STATUS,    Z
    GOTO    EX1
    INCF    COUNT4,1
    GOTO    LABEL3
EX1    RETURN
;-----------------------------------------------------------------------
;chuong trinh con ghi nhiet do ra dong 2
;-----------------------------------------------------------------------
DONG2
    MOVLW    0xC1            ;ve dau dong thu hai
    MOVWF    A
    CALL    GHIMADK
    CALL    DELAY
L1    MOVF    TRAM,    0
    MOVWF    A
    CALL    GHIDL
    CALL    DELAY
    MOVF    CHUC,    0
    MOVWF    A
    CALL    GHIDL
    CALL    DELAY
    MOVF    DVI,     0
    MOVWF    A
    CALL    GHIDL
    CALL    DELAY
    CLRF    COUNT4
LABEL2
    MOVF    COUNT4,    0
    CALL    TABLE1
    MOVWF    A
    CALL    GHIDL
    CALL    DELAY40MS
    INCF    COUNT4,    1
    MOVF    COUNT4,    0
    XORLW    D'5'
    BTFSS    STATUS,    Z
    GOTO    LABEL2
    RETURN

;-----------------------------------------------------------------------
;bang ma ki tu cua tabel
;-----------------------------------------------------------------------
TABLE1
    ADDWF    PCL,    1
    DT        " DO C"
TABLE2
    ADDWF    PCL,    1
    DT        "NHIET DO DO DUOC LA:"
;-----------------------------------------------------------------------
;chuong trinh con ghi ki tu ra LCD
;-----------------------------------------------------------------------
GHIDL
    MOVF    A,0
    MOVWF    PORTB
    BSF        PORTD,0
    BCF        PORTD,1
    BSF        PORTD,2
    BCF        PORTD,2
    RETURN
;------------------------------------------------------------------------
;cac chuong trinh con delay
;------------------------------------------------------------------------
DELAY100MS
    MOVLW    D'100'        ;delay 100mS
    GOTO    D0
DELAY40MS
    MOVLW    D'50'        ;delay 50mS
    GOTO    D0
DELAY12MS
    MOVLW    D'12'
    GOTO    D0
DELAY
    MOVLW    0x05        ;delay 5.000 ms (4 MHz clock)
D0
    MOVWF    COUNT1
D1        
    MOVLW    d'199'        ;delay 1mS
    MOVWF    COUNT2
    MOVLW    0x01
    MOVWF    COUNT3
DELAY_0
    DECFSZ    COUNT2,    1
    GOTO    $+2
    DECFSZ    COUNT3,    1
    GOTO    DELAY_0
    DECFSZ    COUNT1,    1
    GOTO    D1
    RETURN
    END
đây là mạch mô phỏng proteus


huynh nào xem em sai chỗ nào chi dùm em với. em mới tìm hiểu về pic thôi nên gà lắm. mong các huynh giúp dùm em. chân thành cảm ơn

thay đổi nội dung bởi: phamminhtuan, 12-10-2009 lúc 10:19 AM. Lý do: Định dạng code
gautruc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:52 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam