Các a xem dùm e đoạn code ccs này bị lỗi gì với, em muốn điên rồi !
E ĐANG LÀM ĐỀ TÀI QUANG BÁO, THỬ VIẾT HÀM GỬI DỮ LIỆU CHO 74595, HÀM THÌ CHẠY TỐT RỒI, NHƯNG EM LỒNG VÔ HÀM FOR THÌ NÓ CỨ BỊ LỖI, KHÔNG HIỆN GÌ LÊN LED MA TRẬN HẾT. EM DÙNG 74138 QUÉT HÀNG. 74595 3 CON NỐI TIẾP ĐƯA DỮ LIỆU RA CỘT. CODE E BỊ LỖI PHẦN 74138 MÔ PHỎNG KHÔNG CÓ TÍN HIỆU GÌ HẾT, CHỖ LỆNH PORTC=J+8 ẤY. CÁC A GIÚP DÙM E PHÁT VỚI, MẤY NGÀY NAY MÒ HOÀI MÀ KHÔNG BIẾT BỊ GÌ, MUỐN ĐIÊN RỒI. HIC. EM CHÂN THÀNH CẢM ƠN RẤT NHIỀU !
ĐÂY LÀ CODE CỦA E, E CÓ GỬI LUÔN FILE MÔ PHỎNG PROTUES CHO CÁC A XEM GIÚP.
#include<18f4431.h>
#include<def_4431.h>
#fuses hs,nowdt,nolvp
#use delay(clock=12M)
#define DATA RB1
#define CLOCK RB2
#define LATCH RB4
int8 send,i,j;
void send_595(int8 send){ // HÀM GỬI DỮ LIỆU RA 74595
for(i=0;i<=7;i++)
{
if(bit_test(send,7))
DATA=1;
else
DATA=0;
CLOCK=0; // TAO XUNG CLOCK DICH DATA VAO 74595
CLOCK=1;
send=send<<1;
}
LATCH=0; // CHOT DU LIEU RA 74595
LATCH=1;
}
void main(void) {
TRISB=0x00;
TRISC=0x00;
CLOCK = 1;
LATCH = 1;
WHILE(1){
for (j=0;j<=7;j++)
{
if (j&1) {
send_595(0x55);
send_595(0x55);
send_595(0x55);
}
else{
send_595(0xAA);
send_595(0xAA);
send_595(0xAA);}
}
PORTC=j+8; // BỊ LỖI CHỖ NÀY, ĐÁNG LẼ PHẢI ĐƯA DỮ LIỆU RA PORT C MÀ NÓ KHÔNG ĐƯA GÌ RA CẢ.
}
}
MỤC ĐÍCH EM MUỐN NÓ HIỆN NHƯ HÌNH BÊN DƯỚI, NHƯNG KHÔNG DÙNG HÀM FOR THÌ LÀM ĐƯỢC, CÒN LỒNG VÔ LÀM FOR THÌ NÓ KHÔNG ĐƯA DỮ LIỆU RA 74138.
|