با سلام خدمت دوستان عزیز
من میخوام یک سون سگمنت رو با میکرو راه اندازی کنم. تو سایت سرچ کردم خیلی چیزا دستم اومد. ولی چند تا سوال برام مونده:
یکی اینکه این آی سی هایی مثل 7448، 7447، 4055، 4054، MAX7221، MAX7219 فرقی نداره سون سگمنت آند مشترک باشه یا کاتد مشترک؟ واسه هر دوتاش جواب میده؟
و اینکه اگه سون سگمنت آندمشترک باشه، و مثلا با پورت B بخواهیم رو سون سگمنت بنویسیم، اون پایه هایی از سون سگمنت که باید خاموش باشه باید یک بنویسیم روش؟ چون تو اند مشترک پایه های a,b,.. با صفر فعال میشن پس باید یک بنویسیم؟
یه برنامه ساده هم نوشتم که کارش اینه: اگه پایه یک پورت c یک شد رو سون سگمنت عدد صفر، اگه پایه دو این پورت یک شد عدد 1، اگه پایه سه یک شد عدد 2 و اگر پایه چهار یک شد عدد 3 بنویسه. وقتی کار میکنه، با تاخیر عددها رو سون سگمنت مینویسه، مثلا فرض کنید پایه 1 پورت C یک هست و عدد صفر رو سون سگمنت نوشته شده، حالا وقتی این پایه رو صفر میکنم و پایه 2 رو یک میکنم با تاخیر زیادی عدد 1 نوشته میشه. مشکل از کجاست؟
#
من میخوام یک سون سگمنت رو با میکرو راه اندازی کنم. تو سایت سرچ کردم خیلی چیزا دستم اومد. ولی چند تا سوال برام مونده:
یکی اینکه این آی سی هایی مثل 7448، 7447، 4055، 4054، MAX7221، MAX7219 فرقی نداره سون سگمنت آند مشترک باشه یا کاتد مشترک؟ واسه هر دوتاش جواب میده؟
و اینکه اگه سون سگمنت آندمشترک باشه، و مثلا با پورت B بخواهیم رو سون سگمنت بنویسیم، اون پایه هایی از سون سگمنت که باید خاموش باشه باید یک بنویسیم روش؟ چون تو اند مشترک پایه های a,b,.. با صفر فعال میشن پس باید یک بنویسیم؟
یه برنامه ساده هم نوشتم که کارش اینه: اگه پایه یک پورت c یک شد رو سون سگمنت عدد صفر، اگه پایه دو این پورت یک شد عدد 1، اگه پایه سه یک شد عدد 2 و اگر پایه چهار یک شد عدد 3 بنویسه. وقتی کار میکنه، با تاخیر عددها رو سون سگمنت مینویسه، مثلا فرض کنید پایه 1 پورت C یک هست و عدد صفر رو سون سگمنت نوشته شده، حالا وقتی این پایه رو صفر میکنم و پایه 2 رو یک میکنم با تاخیر زیادی عدد 1 نوشته میشه. مشکل از کجاست؟
#
include <mega8.h>
#include <delay.h>
// Declare your global variables here
void main(void)
{
DDRB=0xFF;
PORTB=0xFF;
DDRC=0x00;
PORTC=0x00;
while (1)
{
if(PINC.0==1)
{
PORTB=0;
}
if(PINC.1==1)
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=1;
PORTB.3=0;
PORTB.4=1;
PORTB.5=1;
PORTB.6=1;
PORTB.7=0;
}
if (PINC.2==1)
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTB.4=0;
PORTB.5=0;
PORTB.6=1;
PORTB.7=0;
}
if (PINC.3==1)
{
PORTB.5=0;
PORTB.7=0;
PORTB.4=0;
PORTB.3=0;
PORTB.2=0;
PORTB.1=1;
PORTB.0=1;
PORTB.6=1;
}
}
}
با تشکر از لطف دوستان :smile:
#include <delay.h>
// Declare your global variables here
void main(void)
{
DDRB=0xFF;
PORTB=0xFF;
DDRC=0x00;
PORTC=0x00;
while (1)
{
if(PINC.0==1)
{
PORTB=0;
}
if(PINC.1==1)
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=1;
PORTB.3=0;
PORTB.4=1;
PORTB.5=1;
PORTB.6=1;
PORTB.7=0;
}
if (PINC.2==1)
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTB.4=0;
PORTB.5=0;
PORTB.6=1;
PORTB.7=0;
}
if (PINC.3==1)
{
PORTB.5=0;
PORTB.7=0;
PORTB.4=0;
PORTB.3=0;
PORTB.2=0;
PORTB.1=1;
PORTB.0=1;
PORTB.6=1;
}
}
}
دیدگاه