برنامه زیر برای فرستادن دیتای سریال به 74595 نوشته شده در پروتیوس خروجی درست نشون داده نمیشه اما روی اسیلوسکوپ درست نشون داده میشه .دلیلش چیه .از طرفی وقتی متغیر ها رو خارج حلقه while تعریف می کنیم جواب نمیده . اگر بخاهیم یک 595 دیگه رو با اولی سری کنیم باید در برنامه چه تغیری بدیم .و نحوه بستن چطوره .
یک سوال دیگه اینه که 595دوم دیتای 595 اول رو نشون میده یا روی 595 دوم میشه دیتای دیگه ای نشون داد .
define s_data(14) PORTD.0
#define sh_clk(11) PORTD.1
#define la_clk (12) PORTD.2
#define reset (10) PORTD.3
while (1)
{
unsigned char data;
int i;
data=0b11111111;
la_clk=0;
reset=0;
PORTD=PORTD&0b11111000;
la_clk=0;
reset=1;
for(i=7;i>=0;i--)
{
sh_clk=0;
s_data=((data & (1 << i)) >> i);
sh_clk=1;
}
la_clk=1;
};
}
یک سوال دیگه اینه که 595دوم دیتای 595 اول رو نشون میده یا روی 595 دوم میشه دیتای دیگه ای نشون داد .
define s_data(14) PORTD.0
#define sh_clk(11) PORTD.1
#define la_clk (12) PORTD.2
#define reset (10) PORTD.3
while (1)
{
unsigned char data;
int i;
data=0b11111111;
la_clk=0;
reset=0;
PORTD=PORTD&0b11111000;
la_clk=0;
reset=1;
for(i=7;i>=0;i--)
{
sh_clk=0;
s_data=((data & (1 << i)) >> i);
sh_clk=1;
}
la_clk=1;
};
}
دیدگاه