View Single Post
Old 12-02-2009, 02:49 PM   #1
OHayNhi
Đệ tử 1 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 12
:
Talking Các bạn xem giúp mình làm sai chỗ nào

Mình thấy cai proteus hay hay. Lên làm một chương trình chạy thử . Mình delay lâu(mắt thường có thể thấy được hiện tượng quét) thì thấy nó chạy đúng. Nhưng delay nhanh thì lại sai bét nhè . Nhức đầu quá nên nhờ các bạn tư vấn (
Code:
TITLE		"P16F877A_REG1"
PROCESSOR	P16F877A
INCLUDE		<P16F877A.INC>
__CONFIG	_CP_OFF & _CPD_OFF & _WRT_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC
delay_reg1		equ		0x20
delay_reg2  	             equ	            0x21
delay_reg3		equ		0x22
constant	buflength = 8
variable	j = 0
cblock		0x23			; bo dem du lieu hien thi ra man hinh
			bodem : buflength
endc
#define			clock		   PORTB,0 ; xung kick hoat
#define			dieukhien_quetcot	   PORTB,1 ; dieu khien xung quet cot


org 0x0000
goto Main
;org 0x0005
Main
	banksel	             TRISB
	bcf		TRISB,0
	bcf		TRISB,1
	banksel PORTB
	bcf		clock
	bcf		dieukhien_quetcot
	banksel TRISD 
	clrf	TRISD
	banksel   PORTD
	clrf         PORTD
; Dam bao an toan truoc khi di ^_^		
	j		= 0 
	while	             j < 8
	bcf		dieukhien_quetcot
	bsf		clock
	bcf		clock
	j		+= 1
	endw
; Xoabodem
	j		= 0 
	while		j<buflength
	clrf	             bodem+j
	j		+= 1
	endw
;Load du lieu vao bo dem	
	j		= 0
	while		j < buflength
	movlw	j
	call	Table0
	movwf	bodem+j
	j		+= 1
	endw


Hienthi
	clrw
	bsf		dieukhien_quetcot
	j		= buflength-1
	while	             j>=0
	movf	             bodem+j,W		
	movwf	             PORTD
	call	             Delay_10ms
	bsf		clock
	call	             Delay_10ms
	bcf		dieukhien_quetcot	
	bcf		clock
	j		-= 1
	endw
	goto	Hienthi
Delay_10ms						
	movlw	d'1'
	movwf	delay_reg1
Loop1
	movlw	0xc7
	movwf	delay_reg2
	movlw	0x01
	movwf	delay_reg3
Loop2
	decfsz	delay_reg2,1
	goto	Loop2
	decfsz	delay_reg3,1
	goto	Loop2
	decfsz	delay_reg1,1	
	goto	Loop1
	return
;org 0xc0
;Table1
;	addwf	PCL,1
;	retlw	b'11100111'
;	retlw	b'11110011'
;	retlw	b'11111001'
;	retlw	b'00000000'
;	retlw	b'00000000'
;	retlw	b'00000000'
;	retlw	b'00000000'
;	retlw	b'00000000'
org	0xe0
Table0
	addwf	PCL,1
	retlw	b'11111111'
	retlw	b'10000001'
	retlw	b'00000000'
	retlw	b'00111100'
	retlw	b'00000000'
	retlw	b'10000001'
	retlw	b'11111111'
	retlw	b'11111111'
end
File Kèm Theo
File Type: rar DISPLAY_MATRIX.rar (102.9 KB, 32 lần tải)

thay đổi nội dung bởi: namqn, 12-02-2009 lúc 07:11 PM.
OHayNhi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn