kakalevanhoi
28-08-2010, 10:44 AM
chào mọi người...mình có chút théc méc mong mọi người giúp đỡ..
minh vừa mới bắt đầu học bít nên gặp chút khó khen,có gì không đúng mong mọi người chỉ giáo.minh viết 1 c.trinh cho led,nó chạy thì ok rồi,nhưng ma` khi mô phỏng sao lại thấy ko chạy như ý mình.
LIST P=16F877A ; LIST DIRECTIVE TO DEFINE PROCESSOR
#INCLUDE <P16F877A.INC> ; PROCESSOR SPECIFIC VARIABLE DEFINITIONS
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
; CP: code protect (o che do off de co the nap nhieu lan)
; WDT: WATCHDOG TIMER
; PWRTE:POWER UP ENABLE
; BODEN:...
; XT: THACH ANH <4 MHZ
; HS: 20MHZ > THACH ANH >4 MHZ
; RC: RES(10K) + CAP (33pF)
;================================================= =============
;==========KHAI BAI BIEN CHO HAM DELAY=========================
;
DELAY_VARIABLE UDATA
D_VAL1 RES 2
D_VAL2 RES 2
;================================================= =============
ORG 0x00
NOP
GOTO MAIN
;================================================= =============
ORG 0x0004
;GOTO INTER_GLOBAL (NHAY DEN VUNG NGAT)
;================================================= =============
ORG 0x0005 ;DIA CHI la`m VIEC BAN DAU CUA HAM MAIN
MAIN ;CHUONG TRINH CHINH
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
MOVLW 0x00
LOOP MOVWF PORTB
CALL LOOP_DELAY
RRF PORTB,1
BTFSS PORTB,0
GOTO LOOP
;================================================= ===========
DELAY ; DELAY FUNCTION
BANKSEL D_VAL1
MOVLW D'127'
MOVWF D_VAL1 ;D_VAL1 = 127
MOVLW D'127'
MOVWF D_VAL2 ;D_VAL2 = 127
LOOP_DELAY
DECFSZ D_VAL1, F
GOTO LOOP_DELAY
MOVLW D'127'
MOVWF D_VAL1 ;D_VAL1 = 127
DECFSZ D_VAL2, F
GOTO LOOP_DELAY
RETURN ; EXIT DELAY FUNCTION
;================================================= =========================
END
mình dùng lệnh RRF ở PORTB.ban đầu ở portb la` 0000 0000
sau khi dùng RRF thi sẽ la` 1000 0000 va` tip tục la` 0100 0000 va` 0010 0000........
thì đáng lẽ led ban đầu sẽ sáng chân RB7,sau đó la` RB6 va` tip tục ..vậy ma` nó nháy theo kỉu gì đâu ko như ý minh.
con cái này nữa la` sao?khi mình bỏ lệnh BTFSS thi nó chỉ có led RB7 sáng.mong mọi người giúp đỡ
minh vừa mới bắt đầu học bít nên gặp chút khó khen,có gì không đúng mong mọi người chỉ giáo.minh viết 1 c.trinh cho led,nó chạy thì ok rồi,nhưng ma` khi mô phỏng sao lại thấy ko chạy như ý mình.
LIST P=16F877A ; LIST DIRECTIVE TO DEFINE PROCESSOR
#INCLUDE <P16F877A.INC> ; PROCESSOR SPECIFIC VARIABLE DEFINITIONS
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
; CP: code protect (o che do off de co the nap nhieu lan)
; WDT: WATCHDOG TIMER
; PWRTE:POWER UP ENABLE
; BODEN:...
; XT: THACH ANH <4 MHZ
; HS: 20MHZ > THACH ANH >4 MHZ
; RC: RES(10K) + CAP (33pF)
;================================================= =============
;==========KHAI BAI BIEN CHO HAM DELAY=========================
;
DELAY_VARIABLE UDATA
D_VAL1 RES 2
D_VAL2 RES 2
;================================================= =============
ORG 0x00
NOP
GOTO MAIN
;================================================= =============
ORG 0x0004
;GOTO INTER_GLOBAL (NHAY DEN VUNG NGAT)
;================================================= =============
ORG 0x0005 ;DIA CHI la`m VIEC BAN DAU CUA HAM MAIN
MAIN ;CHUONG TRINH CHINH
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
MOVLW 0x00
LOOP MOVWF PORTB
CALL LOOP_DELAY
RRF PORTB,1
BTFSS PORTB,0
GOTO LOOP
;================================================= ===========
DELAY ; DELAY FUNCTION
BANKSEL D_VAL1
MOVLW D'127'
MOVWF D_VAL1 ;D_VAL1 = 127
MOVLW D'127'
MOVWF D_VAL2 ;D_VAL2 = 127
LOOP_DELAY
DECFSZ D_VAL1, F
GOTO LOOP_DELAY
MOVLW D'127'
MOVWF D_VAL1 ;D_VAL1 = 127
DECFSZ D_VAL2, F
GOTO LOOP_DELAY
RETURN ; EXIT DELAY FUNCTION
;================================================= =========================
END
mình dùng lệnh RRF ở PORTB.ban đầu ở portb la` 0000 0000
sau khi dùng RRF thi sẽ la` 1000 0000 va` tip tục la` 0100 0000 va` 0010 0000........
thì đáng lẽ led ban đầu sẽ sáng chân RB7,sau đó la` RB6 va` tip tục ..vậy ma` nó nháy theo kỉu gì đâu ko như ý minh.
con cái này nữa la` sao?khi mình bỏ lệnh BTFSS thi nó chỉ có led RB7 sáng.mong mọi người giúp đỡ