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 15-03-2011, 04:46 PM   #1
romantics892005
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 10
:
mấy bác check giúp em chương trình Dem SP với

tình hình là em hì hụi viết cả buổi chiều, kiểm tra từng bước, nhưng cuối cùng nó không chạy được ( build succeeded) , em post hình chạy proteus và code các bác xem cho em với, thanks các bác nhiều nhiều ^^
(pm : em chả thấy khung nhập code ở đâu hết, mod edit giùm em )
----------------------------------

list p=16f877a ; list directive to define processor
#include <p16f877a.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF


ORG 0X00
GOTO MAIN
ORG 0X04
GOTO NGAT

MAIN

;KHOI TAO CAC BIEN

CBLOCK 0X20
HC
HDV
W_SAVE
FSR_SV
STAT_SV
PCH_SV
ENDC



; CAI DAT PORT VA TIMER

BANKSEL TRISD
CLRF TRISD ; PORTD LA OUTPUT
MOVLW b'00000001'
MOVWF TRISB ; RB0 LA INPUT
BANKSEL PORTB
CLRF PORTB
CLRF PORTD
BSF INTCON, GIE ; CAT DAT NGAT TOAN CUC
BSF INTCON, TMR0IE ; CAI DAT NGAT TIMER0
BSF INTCON, INTE ; CAI DAT NGAT RB0
BANKSEL OPTION_REG ;
BCF OPTION_REG, T0CS ; CHON CHE DO TIMER
BCF OPTION_REG, 6 ; NGAT THEO SUON XUONG
BSF OPTION_REG, 2 ;
BSF OPTION_REG, 1 ; CHON BO CHIA 1:256
BSF OPTION_REG, 0 ;
BANKSEL PORTD ;
MOVLW d'180' ; TIMER0 = 180 , 20ms
MOVWF TMR0 ;
CLRF HC
CLRF HDV

; CHUONG TRINH CHINH

MOVLW HC ; HIEN THI HANG CHUC
CALL TABLE
MOVWF PORTD


MOVLW HDV ; HIEN THI HANG DON VI
CALL TABLE
MOVWF PORTD

; CHUONG TRINH NGAT

NGAT

; PHAN KHOI DAU NGAT
MOVWF W_SAVE ;W_SAVE(bank unknown!) = W
SWAPF STATUS, W
CLRF STATUS ; force bank 0 for remainder of handler
MOVWF STAT_SV ; STAT_SV = swap_nibbles( STATUS )
; STATUS = 0
MOVF PCLATH, W
MOVWF PCH_SV ; PCH_SV = PCLATH
CLRF PCLATH ; PCLATH = 0
MOVF FSR, W
MOVWF FSR_SV ; FSR_SV = FSR
; 10 cycles from interrupt to here!

;NOI DUNG CHUONG TRINH NGAT

BTFSC INTCON, TMR0IF
GOTO NGAT_TIMER
GOTO NGAT_RB0

;NGAT TIMER0 SAU 20MS

NGAT_TIMER

BCF INTCON, GIE
BCF INTCON, TMR0IF
BTFSS PORTB, 1
GOTO TATLED2
GOTO TATLED1

TATLED1
BCF PORTB, 1
BSF PORTB, 2
MOVLW d'180'
MOVWF TMR0
GOTO THOATNGAT
TATLED2
BCF PORTB, 2
BSF PORTB, 1
MOVLW d'180'
MOVWF TMR0
GOTO THOATNGAT

; NGAT RB0

NGAT_RB0
BCF INTCON, GIE
BCF INTCON, INTF

INCF HDV,1
MOVLW HDV
XORLW d'10'
BTFSS STATUS, C
GOTO THOATNGAT
CLRF HDV
INCF HC,1
MOVLW HC
XORLW d'10'
BTFSS STATUS, C
GOTO THOATNGAT
CLRF HC
GOTO THOATNGAT

;KET THUC CHUONG TRINH NGAT

THOATNGAT


MOVF FSR_SV, W
MOVWF FSR ; FSR = FSR_SV
MOVF PCH_SV, W
MOVWF PCLATH ; PCLATH = PCH_SV
SWAPF STAT_SV, W
MOVWF STATUS ; STATUS = swap_nibbles( STAT_SV )
SWAPF W_SAVE, F
SWAPF W_SAVE, W ; W = swap(swap( W_SAVE ))(no change Z bit)
BSF INTCON, GIE ; SET LAI NGAT TOAN CUC

RETFIE
TABLE
ADDWF PCL,1 ; sang maõ LED 7 ñoaïn
RETLW 0xC0
RETLW 0xF9
RETLW 0xA4
RETLW 0xB0
RETLW 0x99
RETLW 0x92
RETLW 0x82
RETLW 0xF8
RETLW 0x80
RETLW 0x90

goto $
END ; directive 'end of program'



-----------------------------
Hình Kèm Theo
File Type: jpg Capture.JPG (142.7 KB, 1 lần tải)
romantics892005 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à 06:16 AM.


Đượ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