View Single Post
Old 15-10-2011, 10:09 PM   #5
ncthien09
Nhập môn đệ tử
 
Tham gia ngày: Feb 2011
Bài gửi: 5
:
Trích:
Nguyên văn bởi tdm View Post
PORTC=j+8; bạn đặt nó ngoài vào lặp For thì làm sao mà đúng được.
Code:
#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Ả.
}
     }
bạn xem lại dùm mình nhé, cho dù mình có đưa PORTC=j+8 vô vòng lặp for thì nó cũng đứng trơ trơ thôi, bực lắm rồi bạn ạ !
ncthien09 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn