em chỉ viết một chương trình đơn giản là cho môt led sáng chạy từ portc sang portd thôi,nhưng mà mô phỏng bằng Proteus thì led chỉ chạy ở portc thôi,còn portd thì sáng loạn lên,bác nào chỉ hộ cho em với!
Hic! chỉ một cái đơn giản mà viết không xong!
Code:
;========================================================
TITLE "Ledchay"
PROCESSOR P16F877A
INCLUDE <P16F877A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF & _LVP_OFF
;==========================================================
;Khai bao bien :
count1 equ 0x20
counta equ 0x21
countb equ 0x22
DEM EQU 0x23
;============================================================
;Chuong trinh chinh:
;============================================================
ORG 0x0000
GOTO MAIN
ORG 0x0005
MAIN
BANKSEL TRISC
CLRF TRISC
CLRF TRISD
BANKSEL PORTC
CLRF DEM
LOOP
MOVLW B'1000000'
MOVWF PORTC
CALL delay_200ms
RLF PORTC,1
CALL delay_200ms
INCF DEM,1
MOVLW DEM
XORLW D'7'
BTFSS STATUS,Z
GOTO $-6
CLRF DEM
CLRF PORTC
MOVLW B'1000000'
MOVWF PORTD
CALL delay_200ms
RLF PORTD,1
CALL delay_200ms
INCF DEM,1
MOVLW DEM
XORLW D'7'
BTFSS STATUS,Z
GOTO $-6
CLRF DEM
GOTO LOOP
;================================================================
;Chuong trinh con
;================================================================
;Delay 200ms
;-----------------------------------------------------------------
delay_200ms ; label bat dau chuong trinh con
MOVLW d'200' ; doan code cho chuong trinh con delay 100 ms
MOVWF count1
d1
MOVLW d'199'
MOVWF counta
MOVLW d'1'
MOVWF countb
delay_0
DECFSZ counta,1
GOTO $+2
DECFSZ countb,1
GOTO delay_0
DECFSZ count1,1
GOTO d1
RETURN ;ket thuc chuong trinh con, tro ve chuong trinh chinh
END
Mà dạo này không ai hoc Pic6f877a nữa à?Để mình em solo vậy