تحياتتي لجميع المشاركين.
كود:
//Define Matrix Character Information as 8 byte array
//#include "font.h"
char row_select[8]={1,2,4,8,16,32,64,128};
char i ;
//===============================
void SH_OUT(unsigned char d)
{
short j;
for(j=0;j<8;j++) // Shift out 8 bits
{
PORTC.B0= d & 1 ; // test least significant bit if its 1 --data
PORTC.B1=1;PORTC.B1=0; // clock
d=d >> 1; // shift bits to right by 1 to get next bit
}
}
//=========================================
void main ()
{
TRISB=0;
TRISC=0;
PORTB=0;
PORTC=0;
while(1)
{
for(i=0 ; i<8 ; i++)
{
PORTB=row_select[i]; //select row as array element
SH_OUT(~font['t'-32][i]); // shift out character as 8 byte ,8-bit each
PORTC.B2=1;PORTC.B2=0; // Pulse the latch pin ---store
delay_ms(5); // short delay
}
}
}
هاذان الجزءان من الكود لم أفمهما رغم عدة محاولات، اطلب من ذي خبرة أن يعطي لي فكرة.
PORTC.B0= d & 1
المشكل كما أعرف أن PORTC.B0 هو بيت واحد فقط ، كيف يمكن وضع عدة بتات في بيت واحد
كذلك الدالة void SH_OUT(unsigned char d)
ولكم جزيل الشكر