الامر سهل
ال
shift Registier
هى الحل
وبارك الله فى اخى احمد سمير
عرض لنا هنا موضوع عن هذا الامر
ابحث عنه
|
عندي هذاالموضوع ولكن لم استطع الدمج فيه وفي برنامج البيك ١٨ف٤٥٥٠ المتصل باليو اس بي
char data[80]
char x;
void main()
{
trisb=0;
portb=0;
for(x=0;x<80;x++)
{
portb.f0=data[x].f0;
portb.f1=0;portb.f1=1;
}
portb.f2=0;portb.f2=1;
}
|
#include "C:\Program Files\Mikroelektronika\mikroC\Examples\EasyPic4\ex tra_examples\HID-library\USBdsc.c"
unsigned char Read_buffer[64];
unsigned char Write_buffer[64];
unsigned char num;
//
// Timer interrupt service routine
//
void interrupt()
{
HID_InterruptProc(); // Keep alive
TMR0L = 100; // Re-load TMR0L
INTCON.TMR0IF = 0; // Re-enable TMR0 interrupts
}
//
// Start of MAIN program
//
void main()
{
ADCON1 = 0xFF; // Set PORTB to digital I/O
TRISB = 0; // Set PORTB to outputs
PORTB = 0; // Clear all outputs
//
// Set interrupt registers to power-on defaults
// Disable all interrupts
//
INTCON=0;
INTCON2=0xF5;
INTCON3=0xC0;
RCON.IPEN=0;
PIE1=0;
PIE2=0;
PIR1=0;
PIR2=0;
//
// Configure TIMER 0 for 3.3ms interrupts. Set prescaler to 256
// and load TMR0L to 100 so that the time interval for timer
// interrupts at 48MHz is 256 (256-100) 0.083 = 3.3ms
//
// The timer is in 8-bit mode by default
//
T0CON = 0x47; // Prescaler = 256
TMR0L = 100; // Timer count is 256-156 = 100
INTCON.TMR0IE = 1; // Enable T0IE
T0CON.TMR0ON = 1; // Turn Timer 0 ON
INTCON = 0xE0; // Enable interrupts
//
// Enable USB port
//
Hid_Enable(&Read_buffer, &Write_buffer);
Delay_ms(1000);
Delay_ms(1000);
//
// Read from the USB port. Number of bytes read is in num
//
for( ; ; ) // do forever
{
num=0;
while(num != 4) // Get 4 characters
{num = Hid_Read();
}
if(Read_buffer[0] == 'P' && Read_buffer[1] == '=' && Read_buffer[3] == 'T')
{
PORTB = Read_buffer[2];
}
}
Hid_Disable();
}
|