nguyenducminh
23-01-2015, 05:35 PM
Không bít sai ở đâu mong mọi người giup đỡ
(16F877A >> 74HC595 >>chạy 8 led đơn)
code:
#include <16f877a.h>
#include <def_877a.h>
//#device *=16 ADC=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP,NOCPD, NOWRT
#use delay(clock=16000000)
#define dulieu rb5
#define xung rb6
#define chot rb7
void delay(unsigned char ms )
{
int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<125;j++);
}
}
void convert(unsigned char x)
{
int i,tam;
for(i=0;i<8;i++) // 8 lan dich de co 8 bit
{
tam=x;
tam=tam&0x80;
if(tam==0x80) dulieu=1;
else dulieu=0;
x=x<<1;
xung=0;
xung=1;
}
//chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
//chot=1;
}
void sangduoi()
{
int j;//00000001;00000010;00000100;00001000;000100000;0010 0000;01000000;10000000
unsigned char mang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0;
chot=1;
delay(1000);
}
}
void main()
{
while(1)
{
sangduoi();
}
}
(16F877A >> 74HC595 >>chạy 8 led đơn)
code:
#include <16f877a.h>
#include <def_877a.h>
//#device *=16 ADC=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP,NOCPD, NOWRT
#use delay(clock=16000000)
#define dulieu rb5
#define xung rb6
#define chot rb7
void delay(unsigned char ms )
{
int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<125;j++);
}
}
void convert(unsigned char x)
{
int i,tam;
for(i=0;i<8;i++) // 8 lan dich de co 8 bit
{
tam=x;
tam=tam&0x80;
if(tam==0x80) dulieu=1;
else dulieu=0;
x=x<<1;
xung=0;
xung=1;
}
//chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
//chot=1;
}
void sangduoi()
{
int j;//00000001;00000010;00000100;00001000;000100000;0010 0000;01000000;10000000
unsigned char mang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0;
chot=1;
delay(1000);
}
}
void main()
{
while(1)
{
sangduoi();
}
}