Trích:
Nguyên văn bởi ncthien09
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 ạ !
|
chèn thêm delay_ms(1) ; xem trong code:
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 GU+?I DU+~ LIE^.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;
SET_TRIS_C(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);
}
OUTPUT_C(j+8);
DELAY_MS(1);thêm vào
}
// BI. LO^~I CHO^~ NÀY, ?ÁNG LE~ PHA?I ?U+A DU+~ LIE^.U RA PORT C MÀ NÓ KHÔNG ?U+A GÌ RA CA?.
}
}