![]() |
mấy bác check giúp em chương trình Dem SP với
1 Attachment(s)
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 ^^
- ngắt timer hoạt động tốt, nhưng ngắt RB0 thì không - em thay 2 led thu phát = nút bấm, có phải nếu mắc thu phát thì con thu mắc ở chân RB0 - trong lúc ngắt timer có đếm k ? (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' ----------------------------- |
hiz, buồn nhỉ, 2 ngày mà chả có bác nào cho em tí ý kiến, nếu em post bài có chỗ nào các bác không rõ thì pm cho em để em điều chỉnh. Cái này so với các bác chắc " muỗi" nhưng với em là cả bài toán "bự" . Mong nhận đc ý kiến !!
|
Múi giờ GMT. Hiện tại là 04:35 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam