serial to parallel test with 74c595 and pic mcu

 





74hc595 က serial နည္းနဲ႔သြင္းလိုက္တဲ့  data ကို parallel အေနနဲ့ ျပန္ထုတ္ေပးပါတယ္။  serial data အတြက္ ၁ ငုတ္၊ shift clock  အတြက္ ၁ ငုတ္၊ latch (store ) clock  အတြက္ ၁ ငုတ္ ေပါင္း ၃ ငုတ္ရွိရံုနဲ့ အထြက္ parallel ၈ ခုပြားႏိုင္ပါတယ္။  အထြက္ ၈ ခုထက္ပိုလိုခ်င္ရင္ေတာ့ cascade လုပ္ျပီးသံုး ႏိုင္ပါတယ္။ ငုတ္ ၃ ငုတ္ရင္းျပီး လိုသေလာက္ ပြားလို႔ရတဲ့သေဘာေပါ့။
က်ေနာ္နားလည္သလိုပဲ ဆက္ေျပာမယ္ဗ်ာ။ သူ႔ မွာ serial နည္းနဲ့သြင္းလိုက္ထာကို shift clock ရဲ့ rising edge မွာ data bit တစ္ခုျခင္းေရႊ႔တယ္။
ကိုယ္သြင္းခ်င္တဲ့  data ကို shift clock rising edge ေပၚခ်ိန္နဲ့ ကိုကိျပီး data line ေပၚတင္ထားတာ။ clock 8 ခု အျပီးမွာ data ၈ ခု ကို သြင္းၿပီးသားျဖစ္ေနျပီ။
သြင္းထားတဲ့  data က output pin ၈ ခုမွာ မေပၚ ေသးဘူး။ အဲ့လိုေပၚဖို႔  store(latch) clock ကို တစ္ခ်က္ခုန္ေပးရတယ္။ store clock rising edge မွာ ခုနက သြင္းလိုက္တဲ့  data ေတြဟာ output port မွာ ေပၚလာေတာ့တယ္။
တစ္ခုထပ္လိုတာက. . . . .
  •  output enable (OE/ pin 13) ကို  ground ခ်ရမယ္။
  • master reset (ME/ pin 10) ကို supply 5v ေပးထားရမယ္။
  • serial data (SD/ pin 14) က pic ရဲ႕  data လႊတ္မယ့္ Pin နဲ႕ခ်ိတ္
  • shift clock (SH CP/ pin 11) က pic ရဲ႕  shift clock လႊတ္မယ့္ Pin နဲ႕ခ်ိတ္
  • store(latch) clock (ST CP/ pin 12) က pic ရဲ႕ store(latch) clock  လႊတ္မယ့္ Pin နဲ႕ခ်ိတ္
 code က သူမ်ား code ပါ။

#define SHIFT_CLOCK PORTD.F2
#define SHIFT_LATCH PORTD.F1   // store
#define SHIFT_DATA PORTD.F0
#define show       PORTD.F3

void shiftdata595(unsigned char _shiftdata)
{
unsigned int i;
unsigned char temp;
temp = _shiftdata;
i=0;
while (i<8)
{
if (temp.F7==0)
{
SHIFT_DATA = 0;
}
else
{
SHIFT_DATA = 1;
}
temp = temp<<1;
SHIFT_CLOCK = 1;
Delay_us(1);
SHIFT_CLOCK = 0;
i++;
}
}

void latch595()
{
SHIFT_LATCH = 1;
Delay_us(1);
SHIFT_LATCH = 0;
}

void main()
{
TRISD=0;
PORTD=0;
PORTC=0;
TRISC=0;
while(1)
{
shiftdata595(0xff);
latch595();
delay_ms(100);

shiftdata595(0xaa);
latch595();
delay_ms(100);

shiftdata595(0xD1);
latch595();
delay_ms(100);
}
}



Comments

Popular posts from this blog

ဆိုလာ စနစ္ရွိ BATTERY AMPACITY အား design ထုတ္တြက္ခ်က္ၿခင္း (1) watt hour ရယူၿခင္း