Em đang tìm hiểu về dữ liệu bảng. Các bác giúp em chương trình bên dưới sai và thiếu những gì mà không thể chạy đc. Xin chân thành cảm ơn.
code:
Code:
;=============================================================================
TITLE "Mach test LED"
PROCESSOR P=16F877a
INCLUDE <P16F877A.inc>
__CONFIG _CP_OFF &_PWRTE_ON &_WDT_OFF &_HS_OSC &_LVP_OFF
;=============================================================================
;======================== Date 02/02/2009 ====================================
count1 EQU 0x20
counta EQU 0x21
countb EQU 0x22
count EQU 0x23
;======================= CHUONG TRINH CHINH ==================================
ORG 0x0000 ; Dia chi bat dau chuong trinh
GOTO START
ORG 0x0005
START BCF STATUS,RP1 ;RP1=0 /
BCF STATUS,RP0 ;RP0=1/chon BANK 0
CLRF PORTB ;xoa PORTB
BSF STATUS,RP0 ;chon BANK1
MOVLW 0X00
MOVWF TRISB
BCF STATUS,RP0
LOOP1
CLRF count ;clear thanh ghi chua gia tri dem
LOOP2
MOVF count,0 ;dua gia tri dem vao thanh ghi W
CALL Table ;goi chuong trinh con Table
MOVLW PORTB ;Xuat gia tri chua trong W ra PortB
CALL Delay100ms
INCF count,0 ;tang gia tri thanh ghi count va chua trong W
XORLW d'8' ;so sanh thanh ghi W voi gia tri 8
BTFSC STATUS,Z ;kiem tra bit Z (Zero)
GOTO LOOP1 ;nhay ve label LOOP1 neu W=0
INCF count,1 ;thuc thi lenh nay neu W khac 0
GOTO LOOP2
Table
ADDWF PCL,1 ;cong gia tri thanh W vao thanh ghi PCL ke
;ket qua chua trong PCL
RETLW b'10000000'
RETLW b'01000000'
RETLW b'00100000'
RETLW b'00010000'
RETLW b'00001000'
RETLW b'00000100'
RETLW b'00000010'
RETLW b'00000001'
;========================= CHUONG TRINH CON =================================
Delay100ms
MOVLW d'100'
MOVLW count1
d1
MOVLW 0xC7
MOVWF counta
MOVLW 0x01
MOVWF countb
delay_0
DECFSZ counta,1
GOTO $+2
DECFSZ countb,1
GOTO delay_0
DECFSZ count1,1
GOTO d1 ;Delay100ms
RETURN
END