با سلام ...
از ایسی 74hc595 و میکرو مگا128 و نرم افزار کدویژن استفاده می کنم .
می خواهم متن را به راست و چپ حرکت دهم .. ولی ظاهرا کار سختی است ..لطفا راهنمایی فرمایید ...
کتابخانه مورد استفاده ایسی 74hc595
[code=c]#ifndef clock
#define clock PORTB.0
#define strobe PORTB.1
#define data PORTB.2
#endif
//-----------------------------------------------------------------------------------------
void ic74595_init() //صفر کردن پایه ها
{
clock=0;
strobe=0;
data=0;
}
//-----------------------------------------------------------------------------------------
void ic74595_load_reg(void) //نمایش کدها
{
strobe=1;
delay_us(1);
strobe=0;
}
//-----------------------------------------------------------------------------------------
void ic74595_send_byte(unsigned char dt)
{
unsigned char i;
for(i = 0; i <8; i++) // Send 8 bits
{
if(dt & 0x80)
{
data=1;
delay_us(1);
}
else
{
data=0;
delay_us(1);
}
clock=1; //Clock
delay_us(1);
clock=0;
dt <<= 1; // Get next bit into MSB position
}
}
//-----------------------------------------------------------------------------------------
void ic74595_shift_send(char *d,char size)
{
int i=0;
for(i=size;i>=0;i--)
ic74595_send_byte(d[i]);
delay_us(1);
ic74595_load_reg(); //نمایش دادن کدها
}
//-----------------------------------------------------------------------------------------[/code]
اگر چیزی دیگری هم نیاز است بفرمایید تا قرارش بدهم..
باتشکر.
از ایسی 74hc595 و میکرو مگا128 و نرم افزار کدویژن استفاده می کنم .
می خواهم متن را به راست و چپ حرکت دهم .. ولی ظاهرا کار سختی است ..لطفا راهنمایی فرمایید ...
کتابخانه مورد استفاده ایسی 74hc595
[code=c]#ifndef clock
#define clock PORTB.0
#define strobe PORTB.1
#define data PORTB.2
#endif
//-----------------------------------------------------------------------------------------
void ic74595_init() //صفر کردن پایه ها
{
clock=0;
strobe=0;
data=0;
}
//-----------------------------------------------------------------------------------------
void ic74595_load_reg(void) //نمایش کدها
{
strobe=1;
delay_us(1);
strobe=0;
}
//-----------------------------------------------------------------------------------------
void ic74595_send_byte(unsigned char dt)
{
unsigned char i;
for(i = 0; i <8; i++) // Send 8 bits
{
if(dt & 0x80)
{
data=1;
delay_us(1);
}
else
{
data=0;
delay_us(1);
}
clock=1; //Clock
delay_us(1);
clock=0;
dt <<= 1; // Get next bit into MSB position
}
}
//-----------------------------------------------------------------------------------------
void ic74595_shift_send(char *d,char size)
{
int i=0;
for(i=size;i>=0;i--)
ic74595_send_byte(d[i]);
delay_us(1);
ic74595_load_reg(); //نمایش دادن کدها
}
//-----------------------------------------------------------------------------------------[/code]
اگر چیزی دیگری هم نیاز است بفرمایید تا قرارش بدهم..
باتشکر.
دیدگاه