hi, em thanks bác rất nhiều, giờ em lại đang gặp trục trặc với cái bài sau.
em định cho ma trận led hiển thị chữ A-I bằng ma trạn 8x8 em quét hàng bằng portC và đưa dữ liệu ra cột bằng portB, tuy nhiên vì áp rơi trên led cao hơn so với chân ra nên em phải dùng mấy con NPN để đưa áp vào, hình vẽ dưới
em code và dịch ra ko vđề gì, but khi cho nó chạy mô phỏng thì hỡi ôi toàn bị thông báo là over flow, chả hiểu đc.
Code:
processor 16f877a ;khai bao vdk
#include "p16f877a.inc" ;header file dinh kem
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_OFF&_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF
;khai bao configuration
;------------------------------------------------------
;khai bao bien
;------------------------------------------------------
count equ 0x23
COUNT1 EQU 0X20 ;dung cho delay
COUNTA EQU 0X21 ;dung cho delay
COUNTB EQU 0X22 ;dung cho delay
org 0x000
goto START
START
BCF STATUS,RP1
bcf STATUS,RP0
clrf PORTB
CLRF PORTC
bsf STATUS,RP0
movlw 0x00
movwf TRISB
MOVWF TRISC
BCF STATUS,RP0
MOVLW B'11111110'
MOVWF PORTC
loop
clrf count
loop1
movwf count
RRF PORTC,1
call table
movwf PORTB
call DELAY100MS
incf count,0
xorlw d'8'
btfsc STATUS,Z
goto loop
incf count,1
goto loop1
table
addwf PCL,1
retlw b'00111111'
RETLW B'01010000'
RETLW B'10010000'
RETLW B'01010000'
RETLW B'00111111'
RETLW B'00000000'
RETLW B'11111111'
RETLW B'00000000'
DELAY100MS
MOVLW D'200'
MOVWF 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
RETURN
end
em ko gửi đc cái file của proteus nên chỉ chụp đc hình thôi, các bác xem họ em nhé ^^