Mình đang tập tành với PIC6f877A.
mình code thử cho bài mạch đếm,thì khi nạp vào mô phỏng thì chương tình không chậy ?
code của mình đây
mình thử debug rồi, thì phát hiện, không hiểu xao, chương trình không thoát khỏi bảng mã chứa mã hiển thị (mình dùng phương pháp bảng) (và nó báo lỗi tràn stack).
các bạn vào giúp mình vấn đề này cái.
thank.
mình code thử cho bài mạch đếm,thì khi nạp vào mô phỏng thì chương tình không chậy ?
code của mình đây
Code:
;=======================================================================================================;
; ten chuong trinh : mach dem gio phut giay ;
; nguoi thuc hien : nguyen huu tho ;
; phien ban 1 : bai thuc hanh dau tien voi dang nay, dung pic ;
;=======================================================================================================;
;=======================================================================================================;
; khoi tao pic ;
;=======================================================================================================;
TITLE "MACH DONG HO GIO PHUT GIAY"
PROCESSOR P16F877A
INCLUDE <P16F877A.INC>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC
;=======================================================================================================;
; KHAI BAO MOT SO MACRO ;
;=======================================================================================================;
GIAY_DV EQU 0X30
GIAY_CHUC EQU 0X31
PHUT_DV EQU 0X32
PHUT_CHUC EQU 0X33
GIO_DV EQU 0X34
GIO_CHUC EQU 0X35
TRE_TG_1 EQU 0X36
TRE_TG_2 EQU 0X37
BIEN_GIAY_DV EQU 0X38
BIEN_GIAY_CHUC EQU 0X39
BIEN_PHUT_DV EQU 0X3A
BIEN_PHUT_CHUC EQU 0X3B
BIEN_GIO_DV EQU 0X3C
BIEN_GIO_CHUC EQU 0X3D
;=======================================================================================================;
; CHUONG TRINH CHINH ;
;=======================================================================================================;
ORG 0x0000
GOTO MAIN ; NHAY DEN CHUONG TRINH CHINH
;-------------------------------------------------------------------;
; CHUONG TRINH CHINH ;
;-------------------------------------------------------------------;
ORG 0x0010
MAIN
;-------------------------------------------------------------------;
; CAU HINH CHO CAC PORT ;
;-------------------------------------------------------------------;
BANKSEL TRISB ; HIEU NGAM LA CHON BANK1
CLRF TRISB ; DAT TAT CA CAC PIN CUA PORTB LAM CONG RA
BANKSEL TRISD ; CHON BANK CHUA TRISB
CLRF TRISD ; DAT TAT CA CAC PIN CUA PORTD LAM CONG RA
;-------------------------------------------------------------------;
; KHOI TAO GIA TRI BAN DAU CHO CAC BIEN ;
;-------------------------------------------------------------------;
MAIN_1
MOVLW B'00000000'
MOVWF BIEN_GIAY_DV ; DAT HANG DON VI CUA GIAY VE 0
MOVLW B'00000000'
MOVWF BIEN_GIAY_CHUC ; DAT HANG CHUC CUA GIAY VE 0
MOVLW B'00000000'
MOVWF BIEN_PHUT_DV ; DAT HANG DON VI CUA PHUT VE 0
MOVLW B'00000000'
MOVWF BIEN_PHUT_CHUC ; DAT HANG CHUC CUA PHUT VE 0
MOVLW B'00000000'
MOVWF BIEN_GIO_DV
MOVLW B'00000000'
MOVWF BIEN_GIO_CHUC
BCF STATUS,RP0
BCF STATUS,RP1 ; CHON QUAY TRO LAI BANK0 DE DE THAO TAC TRONG HAM HIEN_THI
;-------------------------------------------------------------------;
; CHUONG TRINH GOI CAC HAM CON XU LY ;
;-------------------------------------------------------------------;
MAIN_0
CALL GIAI_MA
CALL HIEN_THI
;-------------------------------------------------------------------;
; PHAN TANG CAC BIEN THOI GIAN ;
;-------------------------------------------------------------------;
INCF BIEN_GIAY_DV,1
MOVF BIEN_GIAY_DV,0
XORWF D'10',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_GIAY_DV
INCF BIEN_GIAY_CHUC,1
MOVF BIEN_GIAY_CHUC,0
XORWF D'6',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_GIAY_CHUC
INCF BIEN_PHUT_DV,1
MOVF BIEN_PHUT_DV,0
XORWF D'10',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_PHUT_DV
INCF BIEN_PHUT_DV,1
MOVF BIEN_PHUT_DV,0
XORWF D'6',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_PHUT_CHUC
INCF BIEN_GIO_DV,1
MOVF BIEN_GIO_DV,0
XORWF D'10',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_GIO_DV
INCF BIEN_GIO_CHUC,1
MOVF BIEN_GIO_CHUC,0
XORWF D'6',1
BTFSS STATUS,Z
GOTO MAIN_0
CLRF BIEN_GIO_CHUC
GOTO MAIN_0
;-------------------------------------------------------------------;
; CHUONG TRINH CON GIAI MA ;
;-------------------------------------------------------------------;
GIAI_MA
MOVF BIEN_GIAY_DV,0 ; GAN NOI DUNG CUA BIEN GIAY VAO THANH GHI W
CALL BANG_MA ; NHAY DEN BANG MA
MOVWF GIAY_DV ; GIAY_DV CHUA MA HIEN THI CUA BIEN GIAY RA 7-SEG
MOVF BIEN_GIAY_CHUC,0
CALL BANG_MA
MOVWF GIAY_CHUC
MOVF BIEN_PHUT_DV,0
CALL BANG_MA
MOVWF PHUT_DV
MOVF BIEN_PHUT_CHUC,0
CALL BANG_MA
MOVWF PHUT_CHUC
MOVF BIEN_GIO_DV,0
CALL BANG_MA
MOVWF GIO_DV
MOVF BIEN_GIO_CHUC,0
CALL BANG_MA
MOVWF GIO_CHUC
RETURN
;-------------------------------------------------------------------;
; CHUONG TRINH CON HIEN THI ;
;-------------------------------------------------------------------;
HIEN_THI
MOVF GIAY_DV,0 ; NAP NOI DUNG CUA GIAY_DV VAO THANH GHI W
MOVWF PORTB ; DI CHUYEN NOI DUNG TREN RA PORTB
MOVLW B'00100000' ;------------------
MOVWF PORTD ; CHO PIN0 CUA PORTD TICH CUC DE SANG GIAY_DV
CALL DELAY ; TAO TRE DE QUAN SAT DUOC
CLRF PORTD ; XOA PORTD DE CHONG LEM
MOVF GIAY_CHUC,0
MOVWF PORTB
MOVLW B'00010000'
MOVWF PORTD
CALL DELAY
CLRF PORTD
MOVF PHUT_DV,0
MOVWF PORTB
MOVLW B'00001000'
MOVWF PORTD
CALL DELAY
CLRF PORTD
MOVF PHUT_CHUC,0
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTD
CALL DELAY
CLRF PORTD
MOVF GIO_DV,0
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTD
CALL DELAY
CLRF PORTD
MOVF GIO_CHUC,0
MOVWF PORTB
MOVLW B'00000001'
MOVWF PORTD
CALL DELAY
CLRF PORTD
RETURN
;-------------------------------------------------------------------;
; CHUONG TRINH CON DELAY ;
;-------------------------------------------------------------------;
DELAY
MOVLW D'30'
MOVWF TRE_TG_1
DELAY_1
MOVLW D'20'
MOVWF TRE_TG_2
DECFSZ TRE_TG_2,1
GOTO $-1
DECFSZ TRE_TG_1,1
GOTO DELAY_1
RETURN
;-------------------------------------------------------------------;
; DUNG PHUONG PHAP BANG DE LAY MA LED 7-SEG ;
;-------------------------------------------------------------------;
BANG_MA
addwf PCL, f
retlw 0xc0
retlw 0xf9
retlw 0xa4
retlw 0xb0
retlw 0x99
retlw 0x92
retlw 0x82
retlw 0xf8
retlw 0x80
retlw 0x90
;=======================================================================================================;
; KET THUC CHUONG TRINH ;
;=======================================================================================================;
END
các bạn vào giúp mình vấn đề này cái.
thank.
